智慧树知到《计算机程序设计(C语言)》章节测试答案
智慧树知到《计算机程序设计(C语言)》章节测试答案
第一章单元测试
1、一个C程序可以有()个主函数。
A.1
B.2
C.3
D.多个
正确答案:1
2、C语言是函数式的语言。
A.正确
B.错误
正确答案:正确
3、C语言是高级语言。
A.正确
B.错误
正确答案:正确
4、Visual C++不支持C语言。
A.正确
B.错误
正确答案:错误
5、C语言是编译式的语言。
A.正确
B.错误
正确答案:正确
第二章单元测试
1、double x;scanf(";%lf";,&;x);不可以赋值给x变量的常量是().
A.123
B.100000
C.A'
D.";abc"
正确答案:";abc"
2、下列程序段的输出结果为().float x=213.82631;printf(";%3d";,(int)x)。
A.213.82
B.213.83
C.213
D.3.8
正确答案:213
3、下列程序的输出结果是().main(){char c1=97,c2=98;printf(";%d %c";,c1,c2);}
A.97 98
B.97 b
C.a 98
D.a b
正确答案:97 b
4、以下标识符中,不能作为合法的C用户定义标识符的是().
A.a3()b3
B.void
C.()123
D.IF
正确答案:void
5、以下标识符中,不能作为合法的C用户定义标识符的是().
A.answer
B.to
C.signed
D.()if
正确答案:signed
第三章单元测试
1、逻辑运算低于关系运算.。
A.正确
B.错误
正确答案:正确
2、x*=y+8 等价于 x=x*(y+8).。
A.正确
B.错误
正确答案:正确
3、关系运算高于算术运算.。
A.正确
B.错误
正确答案:错误
4、若 a=3,b=2,c=1 则关系表达式";(ab)==c"; 的值为";真";.。
A.正确
B.错误
正确答案:正确
5、若给定条件表达式(M)?(a++):(a--),则其中表达式M().
A.和(M==0)等价
B.和(M==1)等价
C.和(M!=0)等价
D.和(M!=1)等价
正确答案:和(M!=0)等价
第四章单元测试
1、结构化程序设计所规定的三种基本控制结构是().
A.输入、处理、输出
B.树形、网形、环形
C.顺序、选择、循环
D.主程序、子程序、函数
正确答案:顺序、选择、循环
2、C语言中用于结构化程序设计的三种基本结构是().
A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
正确答案:顺序结构、选择结构、循环结构
3、int a=7,b=9,t;t=(ab)?
A.b;t的值为7.。
A.正确
B.错误
正确答案:错误
4、赋值语句中的赋值运算符的左侧只能是唯一的变量。
A.正确
B.错误
正确答案:正确
5、int a=10;printf(";%d";,a++);输出11.。
A.正确
B.错误
正确答案:错误
第五章单元测试
1、在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().
A.只能用逻辑表达式
B.只能用关系表达式
C.只能用逻辑表达式或关系表达式
D.可用任意表达式
正确答案:可用任意表达式
2、int a=3,b=2,c=1;if(abc)a=b;else a=c;则a的值为().
A.3
B.2
C.1
D.0
正确答案:1
3、a=1;b=2;c=3;if(a<;c) b=a;a=c;c=b;则c的值为()
A.1
B.2
C.3
D.0
正确答案:1
4、以下不正确的if语句形式是().
A.if(xy&;&;x!=y)
B.if(x==y) x+=y
C.if(x!=y) scanf(";%d";,&;x) else scanf(";%d";,&;y)
D.if(x<;y) {x++;y++;}
正确答案:if(x!=y) scanf(";%d";,&;x) else scanf(";%d";,&;y)
5、下面程序的输出结果是main(){int x,y,z;x=1;y=2;z=3if(xy)if(xz) printf(";%d";,x);else printf(";%d,y);printf(";%d\n";,z);}
A.3
B.13
C.23
D.无输出
正确答案:3
第六章单元测试
1、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为";真";或";假";.哪个数作为逻辑";假";值()
A.-1
B.1
C.非零的数
D.0
正确答案:0
2、以下程序的运行结果是().main(){ int n; for(n=1;n<;=10;n++) { if(n%3==0) continue; printf(";%d";,n); }}
A.12457810
B.369
C.12
D.1234567890
正确答案:12457810
3、C语言中 while 和 do-while 循环的主要区别是().
A.do-while 的循环体至少无条件执行一次
B.while的循环控制条件比 do-while的循环控制条件更严格
C.do-while 允许从外部转到循环体内
D.do-while 的循环体不能是复合语句
正确答案:do-while 的循环体至少无条件执行一次
4、以下叙述正确的是().
A.do-while语句构成的循环不能用其它语句构成的循环来代替.
B.do-while语句构成的循环只能用break语句退出.
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环.
D.用do-while语句构成的循环,在while后的表达式为零时结束循环
正确答案:用do-while语句构成的循环,在while后的表达式为零时结束循环
5、语句while(!E);中的表达式!E等价于().
A.E==0
B.E!=1
C.E!=0
D.E==1
正确答案:E==0
第七章单元测试
1、static char str[10]=";China";数组元素个数为().
A.5
B.6
C.9
D.10
正确答案:6
2、在C语言中,一维数组的定义方式为:类型说明符数组名().
A.[常量表达式]
B.[整型表达式]
C.[整型常量]或[整型表达式]
D.[整型常量]
正确答案:[整型常量]
3、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().
A.2
B.3
C.4
D.无确定值
正确答案:3
4、如果有一个字符串,其中第十个字符为';\n';,则此字符串的有效字符为9个.。
A.正确
B.错误
正确答案:错误
5、若有char s1[]=";abc";,s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是().
A.if(strcmp(s1,s1)0)puts(s2)
B.if(strcmp(s2,s1)0)puts(s2)
C.if(strcmp(s2,t)0)puts(s2)
D.if(strcmp(s1,t)0)puts(s2)
正确答案:if(strcmp(s1,t)0)puts(s2)
第八章单元测试
1、下列定义不正确的是().
A.#define PI 3.141592
B.#define S345
C.int max(x,y); int x,y; { }
D.static char c
正确答案:int max(x,y); int x,y; { }
2、以下程序的输出结果为().main(){int a=1,b=2,c=3,d=4,e=5; printf(";%d\n";,func((a+b,b+c,c+a),(d+e)));}int func(int x,int y) { return(x+y); }
A.15
B.13
C.9
D.函数调用出错
正确答案:13
3、下列程序运行结果为:()#define P 3#define S(a) P*a*amain(){int ar; ar=S(3+5); printf(";\n%d";,ar);}
A.192
B.29
C.27
D.25
正确答案:29
4、以下函数调用语句中实参的个数是().func((e1,e2),(e3,e4,e5))。
A.2
B.3
C.5
D.语法错误
正确答案:2
5、以下函数调用语句中实参的个数是().exce((v1,v2),(v3,v4,v5),v6)。
A.3
B.4
C.5
D.6
正确答案:3
第九章单元测试
1、对结构体类型的变量的成员可以象普通变量一样参与各种运算.。
A.正确
B.错误
正确答案:正确
2、static struct {int a1;float a2;char a3;}a[10]={1,3.5,';A';};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是().
A.a[1]
B.a[-1]
C.a[0]
D.a[10]
正确答案:a[0]
3、共用体类型变量不能被初始化.。
A.正确
B.错误
正确答案:正确
4、union u{char ch;int i;float f;};定义了共用体变量.。
A.正确
B.错误
正确答案:错误
5、对枚举类型名的定义enum a {sum=9,mon=-1,tue};是正确的.。
A.正确
B.错误
正确答案:正确
第十章单元测试
1、若有int *p,a; p=&;a,下列说法不正确的是().
A.&;*p==&;a
B.*&;a==a
C.(*p)++==a++
D.*(p++)==a++
正确答案:*(p++)==a++
2、若有下列定义,则对a数组元素地址的正确引用是().int a[5],*p=a。
A.&;a[5]
B.p+2
C.a++
D.&;a
正确答案:p+2
3、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是().
A.&;t[3][2]
B.t[3]
C.&;t[1]
D.t[2]
正确答案:t[2]
4、若有下列定义,则对a数组元素地址的正确引用是().int a[5],*p=a。
A.*(p+5)
B.*p+2
C.*(a+2)
D.*&;a[5]
正确答案:*(a+2)
5、char h,*s=&;h;可将字符H通过指针存入变量h中的语句是().
A.*s=H
B.*s=';H'
C.s=H
D.s=';H'
正确答案:*s=';H'