大学MOOC C语言程序设计(2)(江汉大学文理学院)1450014167 最新慕课完整章节测试答案
第5周选择结构程序设计
文章目录
随堂测试
1、单选题:
下列符合c语法的if语句是:
选项:
A: if 3>5 then printf("Ok!");
B: if 3>5 printf("Ok!")
C: if (3>5) then printf("Ok!");
D: if (3>5) printf("Ok!");
答案: 【 if (3>5) printf("Ok!");】
2、单选题:
在c语言中,叙述正确的是:
选项:
A: if语句可以不以 分号;结尾
B: if语句必须要有else
C: if后面小括号里可以加分号;
D: if语句不一定要有else
答案: 【 if语句不一定要有else】
3、单选题:
下列符合c语法的if语句是:
选项:
A: if (3>5;) printf("Ok!");
B: if (3>5) then printf("Ok!");
C: if (3>5) printf("Ok!")
D: if (3>5) printf("Ok!");
答案: 【 if (3>5) printf("Ok!");】
随堂测试5.1关系运算符和关系表达式
1、单选题:
下列运算符中优先级最高的是:
选项:
A: =
B: +
C: ++
D: <
答案: 【 ++】
2、单选题:
下列运算符中优先级最低的是:
选项:
A: =
B: +
C: ++
D: >
答案: 【 =】
3、单选题:
下列运算符中结合方向与其他不同的是:
选项:
A: =
B: +
C: <=
D: >
答案: 【 =】
随堂测试5.2
1、单选题:
下列运算符中优先级最高的是:
选项:
A: =
B: +
C: *
D: &&
答案: 【 *】
2、单选题:
下列运算符中优先级最低的是:
选项:
A: ==
B: +
C: ++
D: ||
答案: 【 ||】
3、单选题:
下列运算符中结合方向与其他不同的是:
选项:
A: !
B: &&
C: ||
D: +
答案: 【 !】
随堂测试5.4switch语句
1、单选题:
在c语言中,叙述正确的是:
选项:
A: switch语句可以没有default分支
B: switch语句必须有default分支
C: switch语句每个分支必须执行
D: case与冒号之间可以是条件表达式
答案: 【 switch语句可以没有default分支】
2、判断题:
case与冒号之间可以是浮点类型数据
选项:
A: 正确
B: 错误
答案: 【 错误】
3、判断题:
switch语句每个分支必须执行
选项:
A: 正确
B: 错误
答案: 【 错误】
随堂测试5.5条件运算符和条件表达式
1、单选题:
下列运算符中优先级最低的是:
选项:
A: ==
B: +
C: ++
D: ? :
答案: 【 ? :】
2、单选题:
下列运算符中结合方向与其他不同的是:
选项:
A: ? :
B: +
C: &&
D: ||
答案: 【 ? :】
3、判断题:
条件运算符符可以嵌套使用。
选项:
A: 正确
B: 错误
答案: 【 正确】
随堂测试5.6选择结构程序举例
1、单选题:
以下代码输出结果是:if(3>2>1)printf("ok");else printf("no");
选项:
A: ok
B: no
C: 不确定
D: 代码错误,不能输出
答案: 【 no】
2、单选题:
以下代码输出结果是:int x=10,y=20,z=30;if(x||(y=50)>z)printf("y=%d",y);else printf("y=%d",y);
选项:
A: y=20
B: y=50
C: 不确定
D: 代码错误,不能输出
答案: 【 y=20】
3、单选题:
以下代码输出结果是:char x='f';if('A'<x<'Z')printf("ok");else printf("no");
选项:
A: ok
B: no
C: 不确定
D: 代码错误,不能输出
答案: 【 ok】
第6周循环结构程序设计
第1次单元测验
1、单选题:
下列程序的输出结果是__ 。int main(){ int t=98765,x; while(t!=0) { x=t%10; printf("%d",x); t/=10; } return 0;}
选项:
A: 98765
B: 56789
C: 57689
D: 程序不停机
答案: 【 56789】
2、单选题:
下列程序的输出结果是__ 。int main(){ int t=98765,x; do { x=t%10; printf("%d",x); t/=10; }while(t!=0); return 0;}
选项:
A: 98765
B: 56789
C: 57689
D: 程序不停机
答案: 【 56789】
3、单选题:
以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
选项:
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; ) {...}】
4、单选题:
下列程序段的输出结果是__int k=12;for(;k>8;k--);if(k%2==0) printf("%d",k);
选项:
A: 1210
B: 12
C: 8
D: 无限循环
答案: 【 8】
5、单选题:
以下代码段的输出是__int i,b,k=0;for(i=1;i<=5;i++ ){ b=i%2; while(b-->=0) k++;}printf("%d,%d", k,b);
选项:
A: 3,-1
B: 8,-1
C: 3,0
D: 8,-2
答案: 【 8,-2】
6、单选题:
下列程序段的输出结果是__int a,b,m;for(a=5;a>=1;a--){ m=0; for(b=a;b<=5;b++) m=m+a*b;}printf("%dn",m);
选项:
A: 30
B: 15
C: 20
D: 10
答案: 【 15】
7、单选题:
下面代码段的输出是__int c=5,k;for(k=1;k<3;k++) switch(k) { default:c+=k; case 2: c++;break; case 4: c+=2;break; }printf("%dn",c);
选项:
A: 10
B: 8
C: 6
D: 12
答案: 【 8】
8、单选题:
关于双重循环的执行过程,以下说法正确的是__。
选项:
A: 外层循环的循环体执行一次,内层循环执行一遍。
B: 外层循环的循环体执行一次,内层循环执行一次。
C: 外层循环的循环体执行一遍,内层循环执行一次。
D: 外层循环的循环体执行一遍,内层循环执行一遍。
答案: 【 外层循环的循环体执行一次,内层循环执行一遍。】
9、单选题:
9、计算1!+2!+3!+4!+5!编程如下,程序中下划线处应填写__。#include <stdio.h>void main( ){int i;int t=__,s=__;for(i=1;i<6;i++){ t=t*i; s=s+t;}printf("1!+2!+3!+4!+5!=%dn",s);}
选项:
A: 0 0
B: 1 0
C: 0 1
D: 1 1
答案: 【 1 0】
10、单选题:
下面代码段的输出是__int k,m;for(k=0;k<10;k++ ){ m=k*k; if(m>50) break;}printf("%d,%dn",k,m);
选项:
A: 8,64
B: 9,81
C: 10,64
D: 10,81
答案: 【 8,64】
11、单选题:
下面代码段的输出是__int k,m;for(k=0;k<10;k++ ){ if(m>50) continue; m=k*k;}printf("%d,%dn",k,m);
选项:
A: 8,64
B: 9,81
C: 10,64
D: 10,81
答案: 【 10,64】
12、单选题:
假设有定义:int k;下面程序段编译运行的情况是___。for (k=1; k; k++) printf ("%d ", k);
选项:
A: 能运行, 是死循环
B: 能运行, 正常结束
C: 编译错误
D: 以上说法都不对
答案: 【 能运行, 是死循环】
13、单选题:
for(表达式1;;表达式3)可理解为____。
选项:
A: for(表达式1;0;表达式3)
B: for(表达式1; 表达式1;表达式3)
C: for(表达式1; 表达式3;表达式3)
D: for(表达式1;1;表达式3)
答案: 【 for(表达式1;1;表达式3)】
14、单选题:
以下哪个for语句是错误的__
选项:
A: for(i=0;j<10;j++);
B: for(i=0;j=0;i<10;i++);
C: for(i=0;i<10;i--);
D: for(;;);
答案: 【 for(i=0;j=0;i<10;i++);】
15、单选题:
while(x%3) a++;中的表达式x%3等价于____
选项:
A: x%3!=0
B: x%3==1
C: x%3==2
D: x%3==0
答案: 【 x%3!=0】
16、单选题:
while (!x&&!y)中的循环条件表达式等价于__
选项:
A: !(x!=0||y!=0)
B: x=0 && y=0
C: !(x==0 && y==0)
D: !(x==0 || y==0)
答案: 【 x=0 && y=0】
17、单选题:
在代码:while(!e)中,!e等价于__
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e == 0】
18、单选题:
对于以下代码:int i;for(i=0;i<10;i++) printf("%d",i);for循环结束后,i的值是__
选项:
A: i不再存在了
B: 11
C: 10
D: 9
答案: 【 10】
19、单选题:
以下代码片段的输出是__int i,j=4;for(i=j; i<=2*j; i++ ){ switch ( i/j ) { case 0: case 1: printf("*"); break; case 2: printf("#"); }}
选项:
A: ****#
B: ***#
C: *#
D: ****##
答案: 【 ****#】
20、单选题:
对于以下代码:int i=6;do{ printf("%d", i--);}while(0);正确的是__
选项:
A: 打印不出东西
B: 打印出5
C: 因为while(0),无法编译
D: 打印出6
答案: 【 打印出6】
21、单选题:
对于以下代码:int i=6;do{ printf("%d", i--);}while(i--);正确的是__
选项:
A: 输出642
B: 输出6420
C: 输出6420-2
D: 输出6420-2-4...,程序无法停机
答案: 【 输出6420-2-4...,程序无法停机】
22、单选题:
对于以下代码:int i=6;do{ printf("%d", i--);}while(i);最后一个输出的值是__
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 1】
23、单选题:
以下代码片段的输出是__int i,j=4;for(i=j; i<=2*j; i++ ){ switch ( i%j ) { case 0: case 1: printf("*"); break; case 2: printf("#"); }}
选项:
A: ****#
B: ***#
C: **#*
D: ****##
答案: 【 **#*】
24、单选题:
在代码:while(e)中,e等价于__
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e!=0】
25、单选题:
在代码:while(e==0)中,e等价于__
选项:
A: e != 1
B: e == 1
C: e!=0
D: !e
答案: 【 !e 】
26、单选题:
在代码:while(e||0)中,e等价于__
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e!=0】
27、单选题:
在代码:while(e&&1)中,e等价于__
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e!=0】
28、单选题:
在代码:while(e||1)中,e等价于__
选项:
A: e取任何值
B: e == 1
C: e!=0
D: e == 0
答案: 【 e取任何值】
29、单选题:
若int k;while(k%4)中,使循环条件不成立的是__
选项:
A: k=0
B: k=1
C: k=2
D: k=3
答案: 【 k=0】
30、单选题:
设有程序段int k=5; while(k=0) k=k-1;则下面描述中正确的是__
选项:
A: while循环执行5次
B: 循环是无限循环
C: 循环体语句一次也不执行
D: 循环体语句执行一次
答案: 【 循环体语句一次也不执行】
31、单选题:
设有程序段int k=5; do k=k-1; while(k=0);则下面描述中正确的是___
选项:
A: while循环执行5次
B: 循环是无限循环
C: 循环体语句一次也不执行
D: 循环体语句执行一次
答案: 【 循环体语句执行一次】
32、单选题:
有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);则
选项:
A: 运行程序段后输出0
B: 运行程序段后输出1
C: 程序段中的控制表达式是非法的
D: 程序段执行无限次
答案: 【 运行程序段后输出1】
33、单选题:
下面程序段的运行结果是int a,b,c;a=1;b= 2;c=2; while(--b,c--,a--) printf("%d,%d,%d",a,b,c);
选项:
A: 1,2,0
B: 2,1,0
C: 1,2,1
D: 0,1,1
答案: 【 0,1,1】
34、单选题:
下面程序段的运行结果是: x=y=0; while(x<15) y++,x+=++y; printf("%d,%d",y,x);
选项:
A: 20,7
B: 6,12
C: 20,8
D: 8,20
答案: 【 8,20】
35、单选题:
下面程序段的运行结果是int n=0; while(n++<=2);printf("%d",n);
选项:
A: 2
B: 3
C: 4
D: 有语法错
答案: 【 4】
36、单选题:
下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空:int a,b,t; scanf("%d%d",&a,&b);while( ___ ) { if(a>b) {t=a;a=b;b=t;} printf("%d,%d",a,b); scanf("%d%d",&a,&b);}
选项:
A: !a=b
B: a!=b
C: a==b
D: a=b
答案: 【 a!=b】
37、单选题:
下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空: int m=0,n=0; char c; while((__)!='n') { if(c>='A'&& c<='Z') m++ ; if(c>='a'&& c<='z') n++; } printf("%dn",m)
选项:
A: scanf("%d",c)
B: getchar()
C: c=getchar()
D: scanf("%c",c)
答案: 【 c=getchar()】
38、单选题:
下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z 变成B.请选择填空char c;while((c=getchar())!='n'){ if(c>= 'a'&&c<='z') c-= 30; if(c>'z'&&c<='z'+ 2) ___ ; printf("%c",c); }
选项:
A: c='B'
B: c='A'
C: c-=26
D: c=c+26
答案: 【 c-=26】
39、单选题:
以下描述中正确的是__
选项:
A: 由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B: do一while循环由do开始,用while结束,在while(表达式)后面不能写分号
C: 在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
D: do一while循环中,根据情况可以省略while
答案: 【 在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作】
40、单选题:
若有如下语句int x=3; do { printf("%dn",x -=2);} while(!(--x));则上面程序段__
选项:
A: 输出的是1
B: 输出的是1和-2
C: 输出的是3和0
D: 是死循环
答案: 【 输出的是1和-2】
41、单选题:
下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。#include main(){ int n,sum=0; n=2345; do { sum=sum+(n%10)*(n%10); n=__; }while(n); printf("sum=%d",sum);}
选项:
A: n/1000
B: n/100
C: n/10
D: n%10
答案: 【 n/10】
42、单选题:
下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。 main() { 1ong int num; scanf("%ld",&num); do { if(__) printf("%ld",num); scanf("%ld",&num); }while(!num==0);}
选项:
A: num%100/10==3
B: num/100%10==3
C: num%10/10==3
D: num/10%10==3
答案: 【 num/100%10==3】
43、单选题:
下面程序的运行结果是__main(){ int y=10; do{y--;}while(--y); printf("%dn",y--); }
选项:
A: -1
B: 1
C: 8
D: 0
答案: 【 0】
44、单选题:
下面有关for循环的正确描述是__
选项:
A: for循环只能用于循环次数已经确定的情况
B: for循环是先执行循环体语句,后判断表达式
C: 在for循环中,不能用break语句跳出循环体
D: for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来
答案: 【 for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来】
45、单选题:
若i为整型变量,则以下循环执行次数是__ for (i=2;i==0;) printf("%d",i-- );
选项:
A: 无限次
B: 0次
C: 1次
D: 2次
答案: 【 0次】
46、单选题:
以下不是无限循环的语句为:
选项:
A: for (y=0,x=1;x > ++y;x =i++) i=x ;
B: for (;; x++=i);
C: while(1){x ++;}
D: for(i=10; ;i--) sum+=i;
答案: 【
