C语言程序设计复习题库(答案在最后)
一、单项选择题
1. 下列合法的常量是( )
A.1e-5 B.3.0e3.0 C.1e5.0 D.e10
2. 下列合法的变量名是( )
A.int
B._int
C.2c
D.c-d
3. 下列不属于C语言基本数据类型的是( )
A.字符型
B.浮点型
C.整型
D.逻辑型
4. 转义字符“反斜杠”的正确表示是( )
A.'\\'
B.'\\\\'
C.\
D.\
5. 以下运算符为单目运算符的是( )
A.!
B.&&
C. %
D.?:
6.对于一个正常运行的C程序,以下叙述中正确的是( ) A. 程序的执行总是从main函数开始,在main函数结束 B. 程序的执行总是从程序的第一个函数开始,在main函数结束 C. 程序的执行总是从main函数开始,在程序的最后一个函数中结束 D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 7.若有定义:int a=8; float x=1.5; 则表达式x+a/3的值是( ) A. 4.500000 B. 4.166667 C.3.500000 D. 0.000000 8.以下不能正确计算代数式
11sin2()值的C语言表达式是( ) 32??A.1/3*sin(1/2)*sin(1/2) B.sin(0.5)*sin(0.5)/3
? C.pow(sin(0.5),2)/3 D.1/3.0*pow(sin(1.0/2),2) 9.下列条件语句中,功能与其他语句不同的是( ) A. if(a) printf(\else printf(\B. if(a==0) printf(\else printf(\C. if (a!=0) printf(\else printf(\D. if(a==0) printf(\else printf(\ 10.变量已正确定义,有以下程序段,其输出结果是 ( )
第 1 页 共 1 页
A. 程序段有语法错 B. 1,2,1 C. 1,2,2 D. 1,2,3 int a=1,b=2,c=3; if(a>b) a=b; c=a;
if(c!=a) c=b;
printf(\
11.有宏定义:#define f(x) x*x,则表达式f(2+2)/f(1+1)的值为( )
A.2
B.10
C.3
D.4
12.C语言中while和do-while循环的主要区别是( ) A. do-while的循环体至少无条件执行一次
B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句
13.在C程序中用做用户标识符的一组标识符是 ( ) A. and _2011
B. Date y-m-d C. Hi Dr.Tom
D. default Bigl
14.设有程序段int k=10; while(k=0) k=k-1;则下面叙述中正确的是( A. while循环执行10次
C.循环是无限循环
B. 循环体语句一次也不执行
D.循环体语句执行一次
15.函数调用语句func((exp1,exp2),(exp3,exp4,exp5))含有实参个数(
A.1
B. 2
C. 4
D. 5
16.在C语言中,以下正确的描述是( )
A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的调用均可以嵌套 17.以下对一维整型数组a的正确定义是( ) A. int a(10);
B. int n=10,a[n];
C. int n; D. #define N 10
scanf(\ int a[N]; int a[n]; 18.下面是对字符数组s的初始化,其中不正确的是( )
第 2 页 共 2 页
) )
A. char s[5]={\C.char s[5]=\
D.char s[]=\
19.下选项中,合法的一组C语言常量是 ( ) A. 027 5e-3 ‘\\\\’ B. 12 “ABC” 4.5e0 C.4c1.5 177 Oabc D. 0x8A 10,000 3.e5 20.断字符串a和b是否相等,应当使用( )
A. if(a==b) B. if(a=b) C. if(strcpy(a,b)) D.if(strcmp(a,b)) 21.如下语句 int a=10,b=20,*p1,*p2; p1=&a; p2=&b; 若要让p1也指向b,可 选用的赋值语句是( ) A. *p1=*p2;
B. p1=p2;
C. p1=*p2;
D. *p1=p2;
22.计算表达式48/3的值是( )
A.1.25
B.1
C.1.0
D.2
23.正确表示逻辑关系:“a≥10或 a≤0”的C语言表达式是( )
A.a>=10 or a<=0 C.a>=10 && a<=0
B.a>=10| a<=0 D.a>=10||a<=0
24.有定义语句:int x;float y;,则正确的输入语句是( )
A.scanf(\C.scanf(\
25.十进制整数-1的补码表示为( )
A. 1111111111111111 B. 1000000000000001 C. 0000000000000001 D. 1111111111111110 26.下列常量中合法的是( )
A . 1e4.0 B. 0xabc C. 0128 D. ∏ 27.若有以下结构体定义,则下列哪项引用是正确的( )
struct info { int m; int n; }v;
A. v.m=10;v.n=20; B.v={10,20}; C.v=10,20; D.v->m=10;v->n=20; 28.设有定义语句:char c1=7,c2=7;则以下表达式中值为零的是( )
第 3 页 共 3 页
B.scanf(\D.scanf(\
A. c1^c2
B. c1&c2
C. ~c2
D. c1|c2
29.定义 int x;float y; 正确的输入语句是( )
A. scanf(\C. scanf(\30. 在C语言中,int型数据在内存中以( )形式存放
A.补码
B.BCD码 C.反码
D.原码
31. 在C语言中,用关键字( )定义无符号型变量。
A.unsigned
B.signed
C.sign
D.unsign
32.定义语句 double a,b; int w; long c;变量已正确赋值,则错误的是( )
A.a=a+b=b++
B.w%(int)(a+b)
C.(c+w)%(int)a D.w=a==b
33. 以下不正确的用户标识符是( )
A._char
B.Double C.*m
D._0_
34. 在C语言的if语句中,用作判断的表达式为( )
A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 35 printf( )函数的格式说明符中,要输出单个字符应使用说明符( )
A.%d
B.%f
C.%s
D.%c
36.下列语句是判别变量x、y的大小,若x A.可能一次也不执行 C.由循环条件决定循环次数 B.至少要被执行一次 D.任意多次 38. 在C语言中while语句与do-while语句的主要区别是( ) A.do-while的循环体至少无条件执行一次 B.do-while允许从外部转到循环体内 C.do-while的循环体不能是复合语句 D.while的循环控制条件比do-while的循环控制条件严格 39. 以下不正确的数值常量是 ( ) A.0.23E1 B.2.3e-1 C.1E3.6 D.2.3e0 40. C语言中主函数的个数是( ) 第 4 页 共 4 页 A.1个 B.2个 C. 6个 D.任意多个 41. 下列函数定义中正确的是 ( ) A.double add(double x,y) { return x+y;} B.minus(double x,double y) { return x-y;} C.double div(double x,double y) D.double multiply(double x,double y) { return x%y;} { return x*y;} 42. 若有宏定义:#define f(x) x*x,则表达式f(4+4)/f(2+2)的值为( ) A.3 B.4 C.16 D.28 43. 若有定义int a,*b; 表达式( )可以使指针b指向变量a A.b=*a B.b=a C.b=&a D.*b=&a 44. 定义int n1=0,n2,*p=&n2,*q=&n1;下列与n2=n1;语句等价的是( ) A.*p=*q; B.p=q; C.*p=&n1; D.p=*q; 45.以下对数组元素的初始化,错误的是( ) A.float weight[5]={67.5,34}; C.int a[]={1,2,2}; B.float a[]={0}; D.int a[5]={}; 46. 若要定义a为3*4的二维数组,正确的定义语句是( ) A.float a(3,4); B.float a[1+2][2+2]; C.float a(3)(4); D.float a[3,4]; 47. 能正确判断字符串s1大于字符串s2的是( ) A. if(s1>s2) B. if(strlen(s1)>strlen(s2)) C. if(strcmp(sl,s2)>0) D. if(strcmp(s1,s2)==0) 48.以下能正确定义一维数组的选项是( ) A.int a[5]={0,1,2,3,4,5}; C.int a[2+3]={}; B.int a[]={0,1,2,3,4,5}; D.int x=5,a[x]={0}; 49. 若要定义b为5*10的二维数组,正确的定义语句为( ) A.float b(5,10) B.float b[5,10] C.float [5][10] D.float b[5][10] 50. 若有以下说明和语句,则输出结果是 ( ) char str[]=\ 第 5 页 共 5 页