MOOC C语言程序设计(A)【张亚红等】(桂林航天工业学院)1452750170 最新慕课完整章节测试答案
第2周计算
小测验
1、填空题:
写出以下代码执行后,t1和t2的值,以空格隔开:int a=14;int t1 = a++;int t2 = ++a;
答案: 【 14 16】
2、填空题:
写出以下表达式的结果,结果之间间隔一个空格:6 + 5 / 4 - 22 + 2 * (2 * 2 - 2) % 2 / 310 + 9 * ((8 + 7) % 6) + 5 * 4 % 3 * 2 + 3 1 + 2 + (3 + 4) * ((5 * 6 % 7 / 8) - 9) * 10
答案: 【 5 2 44 -627】
第2周测试
1、单选题:
C语言中最简单的数据类型包括:
选项:
A: 整型、实型、逻辑型
B: 整型、实型、字符型
C: 整型、字符型、逻辑型
D: 整型、实型、逻辑型、字符型
答案: 【 整型、实型、字符型】
2、单选题:
请选出作为C语言用户标识符的一组标识符:
选项:
A: void , define , WORD
B: a3_b3 , _123 , IF
C: For , -abc , Case
D: 2a , DO , sizeof
答案: 【 a3_b3 , _123 , IF】
3、单选题:
C语言中的标识符只能是由字母、数字和下划线三种字符组成,且第一个字符
选项:
A: 必须是字母
B: 必须为下划线
C: 必须为字母或下划线
D: 可以是字母、数字或下划线中任一种字符
答案: 【 必须为字母或下划线】
4、单选题:
若已定义x和y为double类型 ,则表达式:x=1 ,y=x+3/2的值是
选项:
A: 1
B: 2
C: 2.0
D: 2.5
答案: 【 2.0】
5、单选题:
下面程序的输出是: void main() { int x=10 ,y=3 ; printf("%dn",y=x/y); }
选项:
A: 0
B: 1
C: 3
D: 不确定的值
答案: 【 3 】
6、单选题:
设有如下定义:int x=10 ,y=3 ; 则语句 printf("%d,%dn",x%y,x/y); 的输出结果是:
选项:
A: 1,3
B: 0,3
C: 1,3.3
D: 3,3
答案: 【 1,3 】
7、单选题:
C语言中,运算对象必须是整型数的运算符是
选项:
A: %
B:
C: %和
D: * *
答案: 【 % 】
8、单选题:
以下程序的输出结果是 void main() { int x=10 ,y=10 ; printf("%d %dn",x-- ,--y) ; }
选项:
A: 10 10
B: 9 9
C: 9 10
D: 10 9
答案: 【 10 9】
9、单选题:
设有 int x=11 ; 则表达式 (x++ * 1/3) 的值是
选项:
A: 3
B: 4
C: 11
D: 12
答案: 【 3】
10、单选题:
若变量已正确定义并赋值,下面符合C语言语法的表达式是
选项:
A: a:=b+1
B: a=b=c+2
C: int 18.5%3
D: a=a+7=c+b
答案: 【 a=b=c+2 】
11、单选题:
设 int a=12 ,则执行完语句 a+=a-=a*a后 ,a的值是
选项:
A: 552
B: 264
C: 144
D: -264
答案: 【 -264】
12、单选题:
设有如下的变量定义: int i=8 ,k ,a ,b ; double x=1.42 ,y=5.2 ;则以下符合C语言语法的表达式是
选项:
A: a+=a-=(b=4)*(a=3)
B: x%(-3)
C: a=a*3=2
D: y=float(i)
答案: 【 a+=a-=(b=4)*(a=3)】
13、单选题:
设a、b、c为整型数 ,且a=2 ,b=3 ,c=4 ,则执行完以下语句: a*=16+(b++)-(++c);后,a的值是:
选项:
A: 28
B: 26
C: 29
D: 27
答案: 【 28】
14、单选题:
以下说法正确的是:
选项:
A: 输入项可以为一个实型常量,如scanf("%f ",3.5);
B: 只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
C: 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scanf("% 4.2f ",&f);
D: 当输入数据时,必须指明变量的地址,如scanf("%f ",&f);
答案: 【 当输入数据时,必须指明变量的地址,如scanf("%f ",&f);】
15、单选题:
有如下程序 void main() { int y=3 ,x=3 ; printf(" %d %dn",++x ,y++); } 运行该程序的输出结果是:
选项:
A: 3 4
B: 4 2
C: 4 3
D: 3 3
答案: 【 4 3】
16、单选题:
下列程序的运行结果是 void main() { int a=2 ,c=5 ; printf("a=%d,b=%dn",a,c); }
选项:
A: a=%2,b=%5
B: a=2,b=5
C: a=d, b=d
D: a=%d,b=%d
答案: 【 a=2,b=5】
17、单选题:
下列程序的输出结果是 void main() { double d=3.2 ; int x ,y ; x=1.2 ; y=(x+3.8)/5.0; printf("%d n", d*y);}
选项:
A: 3
B: 3.2
C: 0
D: 3.07
答案: 【 0】
18、单选题:
下列程序执行后的输出结果是(小数点后只写一位) void main() { double d ; float f ; long l ; int i ; i=f=1=d=20/3 ; printf("%d %ld % .1f % .1f n",i ,l ,f ,d); }
选项:
A: 6 6 6.0 6.0
B: 6 6 6.7 6.7
C: 6 6 6.0 6.7
D: 6 6 6.7 6.0
答案: 【 6 6 6.0 6.0 】
19、单选题:
若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是 int a,b; scanf("a=%d,b=%d",&a,&b);
选项:
A: a=1,b=2
B: 1,2
C: a=5 b=6
D: 1 2
答案: 【 a=1,b=2 】
20、单选题:
若想通过以下输入语句使a=5.0 ,b=4 ,c=3 ,则输入数据的形式是 …int b ,c ; float a ; scanf("a=%f,b=%d,c=%d",&a,&b,&c); …
选项:
A: a=1,b=2,c=3
B: a=5,b=4,c=3
C: 5,4,3
D: a=5 b=4 c=3
答案: 【 a=5,b=4,c=3】
21、单选题:
以下程序段的输出结果是int a=1234;printf("%2dn",a);
选项:
A: 12
B: 34
C: 1234
D: 提示出错、无结果
答案: 【 1234 】
22、单选题:
已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是:
选项:
A: scanf(“%2d%2d%2d”,&i,&j,&k);
B: scanf(“%d %d %d”,&i,&j,&k);
C: scanf(“%d,%d,%d”,&i,&j,&k);
D: scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
答案: 【 scanf(“%d,%d,%d”,&i,&j,&k);】
第3周判断与循环
小测验
1、单选题:
以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
选项:
A: for ( i=0; i<10; i++ ) {...}
B: for ( i=0; i<10; ++i ) {...}
C: for ( i=0; i++<10; ) {...}
D: for ( i=0; i<=9; i++ ) {...}
答案: 【 for ( i=0; i++<10; ) {...}】
2、判断题:
while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了
选项:
A: 正确
B: 错误
答案: 【 错误】
3、填空题:
以下代码片段执行结束后,变量i的值是多少?int i =10;
while ( i>0 ) {
i /=2;
}
答案: 【 0】
4、填空题:
以下代码片段执行结束后,变量i的值是多少?int i = 1;
do {
i += 5;
} while (i<17);
答案: 【 21】
5、填空题:
以下代码段的输出是什么?for ( int i=10; i> 1; i /=2 ) {
printf("%d ", i++);
}
答案: 【 10 5 3 2】
第三周测试
1、单选题:
能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是
选项:
A: a>=10 or a<=0
B: a>=0|a<=10
C: a>=10 &&a<=0
D: a>=10‖a<=0
答案: 【 a>=10‖a<=0】
2、单选题:
设 a=5 , b=6 , c=7 , d=8 , m=2 , n=2 , 执行(m=a>b)&&(n=c>d)后n的值为
选项:
A: 0
B: 1
C: 2
D: 7
答案: 【 2 】
3、单选题:
下面程序的输出是void main() { int a= -1 ,b=4 ,k ; k=(a++<=0)&&(!(b--<=0)); printf("%d%d%dn",k ,a ,b); }
选项:
A: 003
B: 012
C: 103
D: 112
答案: 【 103 】
4、单选题:
设int A=3 ,B=4 ,C=5;,则下列表达式中,值为0的表达式是
选项:
A: A&&B
B: A<=B
C: A││B+C&&B
D: !((A<B)&&!C││1)
答案: 【 !((A<B)&&!C││1)】
5、单选题:
有以下程序 void main() { int a ,b ,c=246 ; a=c/100%9 ;b=(-1)&&(-1) ; printf("%d ;%dn" ,a ,b) ; } 输出结果是
选项:
A: 2 ;1
B: 3 ;2
C: 4 ;3
D: 2 ;-1
答案: 【 2 ;1 】
6、单选题:
设 int x=1, y=1; 表达式(!x||y--)的值是
选项:
A: 0
B: 1
C: 2
D: -1
答案: 【 1】
7、单选题:
以下关于运算符优先顺序的描述中正确的是
选项:
A: 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符
B: 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符
C: 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符
D: 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符
答案: 【 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符】
8、单选题:
若int K=3;,且有下面的程序片段: if (K<=0) printf ("####"); else printf ("&&&&"); 上面程序片段的输出结果是
选项:
A: ####
B: &&&&
C: ####&&&&
D: 有语法错误,无输出结果
答案: 【 &&&&】
9、单选题:
有如下程序 void main() { int a=2 ,b=-1 ,c=2 ; if(a<b) if(b<0) c=0; else c++ ; printf(“%dn”,c); }该程序的输出结果是
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 2】
10、单选题:
两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 void main( ) { int x; scanf("%d",&x); if(x + +> 5)printf("%d",x); else printf("%dn",x - -); }
选项:
A: 7和5
B: 6和3
C: 7和4
D: 6和4
答案: 【 7和5 】
11、单选题:
有如下程序 void main() { int x=1 ,a=0 ,b=0 ; switch(x){ case 0: b++; case 1: a++ ; case 2: a++;b++; } printf(" a=%d,b=%dn",a,b); }该程序的输出结果是
选项:
A: a=2,b=1
B: a=1,b=1
C: a=1,b=0
D: a=2,b=2
答案: 【 a=2,b=1】
12、单选题:
有以下程序