大学MOOC C语言程序设计(江苏师范大学)1003535090 最新慕课完整章节测试答案
第一部分编程准备
多变的符号随堂测验
1、单选题:
若有定义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z的值为( )
选项:
A: 1.9
B: 1
C: 2
D: 2.4
答案: 【 1】
2、单选题:
若有定义语句: int k1=10, k2=20;,执行表达式(k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为( )
选项:
A: 0和1
B: 0和20
C: 10和1
D: 10和20
答案: 【 0和20】
3、单选题:
有如下类型说明: float n; int m; 则以下能实现将n中的数值保留小数点后两位,第三位四舍五入的表达式是( )
选项:
A: n=(n*100+0.5)/100.0
B: m=n*100+0.5,n=m/100.0
C: n=n*100+0.5/100.0
D: n=(n/100+0.5)*100.0
答案: 【 m=n*100+0.5,n=m/100.0】
4、单选题:
设k=7,x=12;则下列表达式值为3的是( )
选项:
A: x%=(k%=5)
B: x%=(k-k%5)
C: x%=k-k%5
D: (x%=k)-(k%=5)
答案: 【 (x%=k)-(k%=5)】
5、单选题:
设变量已正确定义并赋值,以下正确的表达式是( )
选项:
A: x=y*5=x+z
B: int(15.8%5)
C: x=y+z+5,++y
D: x=25%5.0
答案: 【 x=y+z+5,++y】
数据输入与输出随堂测试
1、单选题:
若有定义: int a,b;,通过语scanf("%d;%d",&a,&b);,能把整数3赋给变量a, 5赋给变量b的输入数据是( )
选项:
A: 3 5
B: 3,5
C: 3;5
D: 35
答案: 【 3;5】
2、单选题:
设有以下语句char ch1,ch2;scanf("%c%c",&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是( )
选项:
A: A和B之间用逗号间隔
B: A和B之间不能有任何间隔符
C: A和B之间可以用回车间隔
D: A和B之间用空格间隔
答案: 【 A和B之间不能有任何间隔符】
3、单选题:
以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)( )
选项:
A: printf("%cn",'a'-32);
B: printf("%dn",'A')
C: printf("%cn",65);
D: printf("%cn",'B'-1);
答案: 【 printf("%dn",'A')】
4、单选题:
有以下程序段char ch; int k; ch=’a’;k=12; printf("%c,%d,",ch,ch,k); printf("k=%d n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是( )
选项:
A: 因变量类型与格式描述符的类型不匹配输出无定值
B: 输出项与格式描述符个数不符,输出为零值或不定值
C: a,97,12k=12
D: a,97,k=12
答案: 【 a,97,12k=12】
5、单选题:
若要求从键盘读入含有空格字符的字符串,应使用函数( )
选项:
A: getc()
B: gets()
C: getchar()
D: scanf()
答案: 【 gets() 】
知识的陷阱随堂测验
1、单选题:
下列选项中不正确的常数的选项是( )
选项:
A: 0x12F
B: -1.23E-2
C: 12.0
D: 0388
答案: 【 0388】
2、单选题:
下面正确的字符常量是( )
选项:
A: "a"
B: '\'
C: "n"
D: "376"
答案: 【 '\'】
3、单选题:
C语言中,int型数据在内存中的存储形式是( )
选项:
A: ASCII码
B: 原码
C: 反码
D: 补码
答案: 【 补码】
4、单选题:
有以下程序 void main() { int x=011; printf("%dn",++x); } 程序运行后的输出结果是( )
选项:
A: 12
B: 11
C: 10
D: 9
答案: 【 10】
5、单选题:
请选出可用作C语言用户标识符的是( )
选项:
A: void,define,WORD
B: a3_b3,_123,IF
C: FOR,--abc,Case
D: 2a,Do,Sizeof
答案: 【 a3_b3,_123,IF】
编程准备单元测验
1、单选题:
以下选项中不合法的标识符是( )
选项:
A: &a
B: FOR
C: print
D: _00
答案: 【 &a】
2、单选题:
关于C语言的变量名,以下叙述正确的是( )
选项:
A: 变量名不可以与关键字同名
B: 变量名不可以与预定义标识符同名
C: 变量名必须以字母开头
D: 变量名是没有长度限制的
答案: 【 变量名不可以与关键字同名】
3、单选题:
以下选项中不能作为C语言合法常量的是( )
选项:
A: 0.1e+6
B: 'cd'
C: "a"
D: '11'
答案: 【 'cd'】
4、单选题:
C源程序中不能表示的数制是( )
选项:
A: 十六进制
B: 八进制
C: 十进制
D: 二进制
答案: 【 二进制】
5、单选题:
下面选项中合法的字符常量是( )
选项:
A: "X"
B: 'X'
C: 'abc'
D: ''
答案: 【 'X'】
6、单选题:
以下选项中合法的C语言赋值语句是( )
选项:
A: ++i;
B: a=3,b=9
C: k=int( a+b );
D: a=b=34
答案: 【 a=b=34】
7、单选题:
以下程序段中的变量已定义为int类型sum = pad = 5; pad = sum++, pad++, ++pad; printf( "%dn", pad );程序段的输出结果是( )
选项:
A: 6
B: 4
C: 5
D: 7
答案: 【 7】
8、单选题:
若有定义语句:int a=12;,则执行语句:a+= a-= a*a;后,a的值是( )
选项:
A: -264
B: 552
C: 144
D: 264
答案: 【 -264】
9、单选题:
设有定义: double x=5.16894;,则语句 printf("%lfn ",(int)(x*1000+0.5)/1000);的输出结果是( )
选项:
A: 5.16900
B: 5.16800
C: 0.00000
D: 输出格式说明符与输出项不匹配,产生错误信息
答案: 【 0.00000】
10、单选题:
以下与数学表达式 "0<x<5且x≠2" 不等价的C语言逻辑表达式是( )
选项:
A: (0<x<5) && (x!=2)
B: 0<x && x<5 && x!=2
C: x>0 && x<5 && x!=2
D: (x>0 && x<2) || (x>2 && x<5)
答案: 【 (0<x<5) && (x!=2)】
第二部分编程基础
单循环结构随堂测验
1、单选题:
1、有以下程序#include <stdio.h>void main( ){ int a=7; while (a--); printf("%dn",a);}程序运行后的输出结果是( )
选项:
A: -1
B: 0
C: 1
D: 7
答案: 【 -1】
2、单选题:
2、有以下程序段 int i,n; for(i=0;i<8;i++) { n=rand()%5; switch (n) { case 1: case 3:printf("%dn",n); break; case 2: case 4:printf("%dn",n); continue; case 0:exit(0); } printf("%dn",n); } 以下关于程序段执行情况的叙述,正确的是( )
选项:
A: for循环语句固定执行8次
B: 当产生的随机数n为4时结束循环操作
C: 当产生的随机数n为1和2时不做任何操作
D: 当产生的随机数n为0时结束程序运行
答案: 【 当产生的随机数n为0时结束程序运行】
3、单选题:
3、若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++) printf("*****n");下面关于语句执行情况的叙述中正确的是( )
选项:
A: 循环体执行两次
B: 循环体执行两次
C: 循环体一次也不执行
D: 构成无限循环
答案: 【 构成无限循环】
4、单选题:
4、有以下程序段 #include<stdio.h> void main() { char b,c; int i; b='a'; c='A'; for(i=0;i<6;i++) { if(i%2) putchar(i+b); else putchar(i+c); } printf("n"); } 程序运行后的输出结果是( )
选项:
A: ABCDEF
B: AbCdEf
C: aBcDeF
D: abcdef
答案: 【 AbCdEf】
5、单选题:
5、已知int t=0; while (t=1) {...} 则以下叙述正确的是( )
选项:
A: 循环控制表达式的值为0
B: 循环控制表达式的值为1
C: 循环控制表达式不合法
D: 循环控制表达式不合法
答案: 【 循环控制表达式的值为1】
循环嵌套随堂测验
1、单选题:
1、有以下程序#include <stdio.h>void main() { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf("%dn",m); } 程序的运行结果是( )
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 1】
2、单选题:
2、有以下程序main(){ int i,n=0; for( i=2;i<5;i++) {do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%dn",n);}程序执行后输出结果是( )
选项:
A: n=5
B: n=2
C: n=3
D: n=4
答案: 【 n=4】
3、单选题:
3、下面程序的功能是输出以下形式的金字塔图案: * *** ***** *******void main(){ int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++)printf(" "); for(j=1;j<=______;j++)printf("*"); printf("n"); }}在下划线处应填入的是( )
选项:
A: i
B: 2*i-1
C: 2*i+1
D: i+2
答案: 【 2*i-1】
4、单选题:
4、以下程序的输出结果是 void main(){ int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if (j%2) continue; x++; } x++; } printf("x=%dn",x); }
选项:
A: x=4
B: x=6
C: x=8
D: x=12
答案: 【 x=8】
5、单选题:
5、以下程序段的输出是( ) int i,j,m=0;for (i=1;i<=15;i+=4)for (j=3;j<=19;j+=4) m++;printf("%dn",m);
选项:
A: 12
B: 15
C: 20
D: 25
答案: 【 20】
编程基础单元测试
1、单选题:
分析以下程序, 下列说法正确的是( )。int main() { int x=5,a=0,b=3;if(x=a+b) printf("* * * *n");else printf("# # # #n");return 0; }
选项:
A: 输出* * * *
B: 有语法错,不能通过编译
C: 通过编译,但不能连接
D: 输出# # # #
答案: 【 输出* * * *】
2、单选题:
有如下程序:int main(){ int x=1,a=0,b=0;switch(x){ case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);return 0;}该程序的输出结果是( )
选项:
A: a=1,b=1
B: a=2,b=1
C: a=1,b=0
D: a=2,b=2
答案: 【 a=2,b=1】
3、单选题:
程序段如下:则以下说法中正确的是( )。int k=5;do{ k--;}while(k<=0);
选项:
A: 循环执行5次
B: 循环是无限循环
C: 循环体语句执行一次
D: 循环体语句一次也不执行
答案: 【 循环体语句执行一次】
4、单选题:
下述for循环语句( )。int i,k;for(i=0,k=-1;k=1;i++,k++) printf("* * * *");
选项:
A: 判断循环结束的条件非法
B: 只循环一次
C: 一次也不循环
D: 是无限循环
答案: 【 是无限循环】
5、单选题:
下列程序段执行后k值为( )。int k=0,i,j;for(i=0;i<5;i++)for(j=0;j<3;j++) k=k+1 ;
