C试卷复习题
- 格式:doc
- 大小:89.00 KB
- 文档页数:8
C语言复习题
一、单项选择题
1、 C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A.”.c” B.“.obj” C.“.exe” D.“.bas”
2、 以下选项中不正确的整型常量是( C )。
A. 12L B. -10 C. 1,900 D. 123U
3、 表达式( C )的值是0。
A.3%5 B.3/5.0 C.3/5 D.3<5
4、 表达式 !(x>0||y>0) 等价于( D )。
A.!x>0||!y>0 B.!(x>0)||!(y>0) C.!x>0&&!y>0 D.!(x>0)&&!(y>0)
5、 若变量已正确定义并赋值,表达式( D )不符合C语言语法。
A.4&&3 B.+a C.a=b=5 D.int(3.14)
6、 下列格式符中,可以用于以16进制形式输出整数的是( D )
A. %d B. %o C. %ld D. %x
7、 若变量已正确定义,执行语句scanf("%d%d%d ",&k1,&k2,&k3);时,( B )_是正确的输入。
A.2030,40 B.20 30 40 C.20, 30 40 D.20, 30,40
8、 设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有( B )个元素。
A.12 B.13 C.14 D.15
9、 设变量定义为“int b[2]={1,3}, *p=&b[0]+1;”,则*p的值是( B )。
A.2 B.3 C.4 D.&b[0]+1
10、 设 int x=1, y=1; 表达式(!x||y--)的值是( C )
A.-1 B.0 C.1 D.2
11、 下面能正确进行字符串赋值操作的语句是 (A.
A. char s[]={ “ABCDE“}; B. char s[5]={'a','b','c','d’,'e',’\0’};
C. char *s;s=“ABCDEF“; D. char *s;scanf(“%s“,s);
12、 若变量已正确定义并赋值,表达式 -k++ 等价于( A )。
A.-(k++) B.(-k)++ C.-(k+1) D.-(++k)
13、 在C 语言程序中,在函数内部定义的变量称为( D )。
A.全局变量 B.全程变量 C.外部变量 D.内部变量
14、 下面运算符优先级最低的是(B)
A. <= B. = C. % D. &&
15、 执行语句“for(s=0,i=1;i<=10;i=i+3) s+=i;”后,变量s、i的当前值是( A )
A. 22,13 B. 12,10 C. 22,10 D. 12,13
16、 若x是整型变量,表达式 (x=10.0/4.0) 的值是( D ) 。
A.2.5 B. 2.0 C. 3 D.2
17、 以下能正确定义二维数组的是( D )
A. int b[][3]; B. int b[][3]=2{2*3};
C. int b[][3]={}; D. int b[3][2]={{1},{2},{3,4}};
18、 下列运算符中,优先级从高到低依次为( D )。
A.&&,!,|| B.||,&&,! C.&&,||,! D. !,&&,||
19、 以下选项中,非法的字符常量是 (C)
A. ‘\t’ B. ‘\17’ C)“n” D. ‘\xaa’
20、 下列条件语句中,功能与其他语句不同的是 (D)
A. if(a) printf("%d\n",x); else printf("%d\n",y);
B. if(a==0) printf("%d\n",y); else printf("%d\n",x); C. if(a!=0) printf("%d\n",x); else printf("%d\n",y);
D. if(a==0) printf("%d\n",x); else printf("%d\n",y);
21、 以下程序的输出结果是 (C)
main()
{ int i, b[10];
for(i=9;i>=0;i--) b[i]=10-i;
printf(“%d%d%d”,b[2],b[5],b[8]);
}
A. 258 B. 741 C. 852 D. 369
22、 以下程序的输出结果是(B)
main()
{ char st[20]= “hello\0\t\\”;
printf(%d %d \n”,strlen(st),sizeof(st));
}
A. 9 9 B. 5 20 C. 13 20 D. 20 20
23、 以下程序的输出结果是 (D)
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; }
}
printf(“%d\n”,A.;
}
A. 101 B. 6 C. 5 D. 4
24、 以下程序段的输出结果是 (A.
char s[]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A. 9 B. 12 C. 13 D. 14
25、 若变量c为char类型,则能正确判断出c为小写字母的表达式是( D )。
A. 'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z')
C. ('a'<=C.and ('z'>=C. D. (c>= 'a')&&(c<= 'z')
26、 _( D )是合法的用户自定义标识符。
A. b-b B.float C.123a D. _isw
27、 若变量已正确定义并赋值,表达式( B )_不符合C语言语法。
A.a*b/c; B.3.14%2 C.2, b D.a/b/c
28、 ___C__是不正确的字符常量。
A.'n' B.'1' C."a" D.'101'
29、 在 C 程序中,用( B )表示逻辑值“真”。
A.1 B.非 0 的数 C.非 1 的数 D. 大于 0 的数
30、 ( C )把x、y定义成float类型变量,并赋同一初值3.14。
A.float x, y=3.14; B.float x, y=2*3.14;
C.float x=3.14, y=x=3.14; D.float x=y=3.14;
31、 若变量已正确定义,语句“if(a>B. k=0; else k=1;”和( C )等价。
A.k=(a>B.?1:0; B.k=a>b;
C.k=a<=b; D.a<=b ? 0 : 1;
32、 设变量定义为“int a, b;”,执行下列语句时,输入_D____,则a和b的值都是10。
scanf("a=%d, b=%d",&a, &B.; A.10 10 B.10, 10 C.a=10 b=10 D.a=10, b=10
33、 下列程序的输出结果是( D )。
fun(int a, int b, int C.
{ c =a*b; }
void main( )
{ int c;
fun(2,3,C.;
printf(”%d\n”,C.;
}
A.0 B.1 C.6 D.无法确定
34、 在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。
A.int B.double C.void D.char
35、 表达式 strlen(”hello”) 的值是_( B )。
A. 4 B. 5 C. 6 D. 7
36、 设变量定义为“int b[4];”,则表达式( D )不符合C语言语法。
A.*a B.b[0] C.a D.a++
37、 有以下定义和语句
int b[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=b[1];
则*(p[0]+1)所代表的数组元素是(C)
A. b[0][1] B. b[1][0] C. b[1][1] D. b[1][2]
38、 下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的( B )
A. float d,*p=d; B. float d,*p=&d; C. float d,p=d; D. float *p=&d,d;
39、 定义函数时,缺省函数的类型声明,则函数类型取缺省类型( D )
A. void B. char C. float D. int
40、 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( D )
A. 称为函数的直接递归调用 B. 称为函数的间接递归调用
C. 称为函数的循环调用 D. C语言中不允许这样的递归调用
41、 下列程序执行后的输出结果是(B)
A. 6 B. 8 C. 10 D. 12
#define MA(x) x*(x-1)
main()
{ int a=1,b=2; printf("%d \n",MA(1+a+b)); }
42、 设变量定义为“int x, *p=&x;”,则&*p相当于__A___。
A.p B.*p C.x D.*&x
43、 有如下程序
int runc(int a,int b)
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
}
该程序的输出的结果是 (D)