大学MOOC C语言程序设计(黄冈师范学院)1449995189 最新慕课完整章节测试答案
第一讲程序设计与C语言
小测验1.1
1、单选题:
计算机本身最擅长的能力是?
选项:
A: 推理
B: 想像
C: 重复
D: 分析
答案: 【 重复】
2、判断题:
编程语言是和计算机交谈的语言
选项:
A: 正确
B: 错误
答案: 【 错误】
3、判断题:
计算机(CPU)可以直接运行人类编写的程序
选项:
A: 正确
B: 错误
答案: 【 错误】
小测验1.2
1、单选题:
关于C语言,以下说法错误的有:
选项:
A: C语言是和Unix操作系统一同发展起来的
B: C语言不能写图形界面的软件
C: C语言一般是编译执行的
D: C语言诞生于1970年代
答案: 【 C语言不能写图形界面的软件】
2、单选题:
轻量级的编程软件,如Geany+MinGW或Sublime Text+MinGW,与专门的IDE如Dev C++相比,什么功能没有了?(提示:上课没有直接讲,但是间接提到了)
选项:
A: 单步调试
B: 源代码编辑时的语法高亮
C: 编译程序
D: 运行程序
答案: 【 单步调试】
3、填空题:
IDE的中文翻译是什么?
答案: 【 集成开发环境】
第二讲计算
小测验2.1
1、多选题:
以下哪些是有效的变量名?
选项:
A: main
B: 4ever
C: monkey-king
D: __int
答案: 【 main;
__int】
2、多选题:
给定:int a,b;scanf("%d %d", &a, &b);则以下哪些输入方式是正确的?
选项:
A: 1 2
B: 1,2
C: 1(回车)2
D: 1、2
答案: 【 1 2;
1(回车)2】
3、多选题:
给定:int a,b; 以下哪些scanf的使用是正确的?
选项:
A: scanf("%d", &a);scanf("%d", &b);
B: scanf("%d %d", &a, &b);
C: scanf("%d, %d", &a, &b);
D: scanf("%d %d", a, b);
答案: 【 scanf("%d", &a);scanf("%d", &b);;
scanf("%d %d", &a, &b);;
scanf("%d, %d", &a, &b);】
4、判断题:
给定以下代码段:int a,b=0;则a的初始值是0
选项:
A: 正确
B: 错误
答案: 【 错误】
5、填空题:
写出下式的运算结果:10/3.0*3
答案: 【 10.0】
6、填空题:
写出下式的运算结果:10/3*3.0
答案: 【 9.0】
小测验2.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】
顺序结构和数据类型练习
1、单选题:
以下选项中合法的标识符是:
选项:
A: 1_1
B: 1-1
C: _11
D: 1--
答案: 【 _11】
2、单选题:
若函数中有定义语句:int k;,则:
选项:
A: 系统将自动给k赋初值0
B: 这时k中值无定义
C: 系统将自动给k赋初值-1
D: 这时k中无任何值
答案: 【 这时k中值无定义】
3、单选题:
以下选项中,能用作数据常量的是:
选项:
A: o115
B: 0118
C: 1.5e1.5
D: 115L
答案: 【 115L】
4、单选题:
设有定义:int x=2;,以下表达式中,值不为6的是:
选项:
A: x*=x+1
B: x++,2*x
C: x*=(1+x)
D: 2*x,x+=2
答案: 【 2*x,x+=2】
5、单选题:
程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是:
选项:
A: 123.141593
B: 12 3.141593
C: 12,3.141593
D: 123,141593
答案: 【 123.141593】
6、单选题:
有以下程序#include<stdio.h>main(){ int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下[]代表空格,<CR>代表回车)
选项:
A: 12a34b<CR>
B: 12[]a[]34[]b<CR>
C: 12,a,34,b<CR>
D: 12[]a34[]b<CR>
答案: 【 12a34b<CR>】
7、单选题:
有以下程序#include <stdio.h>main(){int a=5,b=1,t;t=(a<<2|b); printf("%dn",t);}程序运行后的输出结果是
选项:
A: 21
B: 11
C: 6
D: 1
答案: 【 21】
8、单选题:
以下叙述中正确的是:
选项:
A: 程序设计的任务就是编写程序代码并上机调试
B: 程序设计的任务就是确定所用数据结构
C: 程序设计的任务就是确定所用算法
D: 其余三种说法都不完整
答案: 【 其余三种说法都不完整】
9、单选题:
以下选项中,能用作用户标识符的是:
选项:
A: void
B: 8_8
C: _0_
D: unsigned
答案: 【 _0_】
10、单选题:
阅读以下程序 #include <stdio.h> main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&printF); printf(“%d %fn”,case,printF); } 该程序编译时产生错误,其出错原因是
选项:
A: 定义语句出错,case是关键字,不能用作用户自定义标识符
B: 定义语句出错,printF不能用作用户自定义标识符
C: 定义语句无错,scanf不能作为输入函数使用
D: 定义语句无错,printf不能输出case的值
答案: 【 定义语句出错,case是关键字,不能用作用户自定义标识符】
11、单选题:
表达式:(int)((double)9/2)-(9)%2的值是
选项:
A: 0
B: 3
C: 4
D: 5
答案: 【 3】
12、单选题:
若有定义语句:int x=10;,则表达式x-=x+x的值为
选项:
A: -20
B: -10
C: 0
D: 10
答案: 【 -10】
13、单选题:
有以下程序 #include <stdio.h> main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%dn”,a=2*b); } 程序运行后的输出结果是
选项:
A: 0,0
B: 1,0
C: 3,2
D: 1,2
答案: 【 1,2】
14、单选题:
有以下定义语句,编译时会出现编译错误的是
选项:
A: char a=’a’;
B: char a=’n’;
C: char a=’aa’;
D: char a=’x2d’;
答案: 【 char a=’aa’;】
15、单选题:
有以下程序#include main(){ char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5'; printf(“%c,%dn”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是
选项:
A: E,68
B: D,69
C: E,D
D: 输出无定值
答案: 【 E,68】
16、单选题:
若有以下程序段int r=8;printf(“%dn”,r>>1);输出结果是
选项:
A: 16
B: 8
C: 4
D: 2
答案: 【 4】
17、单选题:
以下叙述正确的是
选项:
A: C语言程序是由过程和函数组成的
B: C语言函数可以嵌套调用,例如:fun(fun(x))
C: C语言函数不可以单独编译
D: C语言中除了main函数,其他函数不可作为单独文件形式存在
答案: 【 C语言函数可以嵌套调用,例如:fun(fun(x))】
18、单选题:
以下关于C语言的叙述中正确的是
选项:
A: C语言中的注释不可以夹在变量名或关键字的中间
B: C语言中的变量可以在使用之前的任何位置进行定义
C: 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D: C语言的数值常量中夹带空格不影响常量值的正确表示
答案: 【 C语言中的变量可以在使用之前的任何位置进行定义】
19、单选题:
以下C语言用户标识符中,不合法的是
选项:
A: _1
B: AaBc
C: a_b
D: a—b
答案: 【 a—b】
20、单选题:
若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是
选项:
A: a=a++,i++;
B: i=(a+k)<=(i+k);
C: i=a%11;
D: i=!a;
答案: 【 i=a%11;】
21、单选题:
有以下程序 #include <stdio.h> main() { char a,b,c,d; scanf(“%c%c”,&a,&b); c=getchar(); d=getchar(); printf(“%c%c%c%cn”,a,b,c,d); }当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符) 12 34则输出结果是
选项:
A: 1234
B: 12
C: 12 3
D: 12 34
答案: 【 12 3】
22、单选题:
以i关于C语言数据类型使用的叙述中错误的是
选项:
A: 若要准确无误差的表示自然数,应使用整数类型
B: 若要保存带有多位小数的数据,应使用双精度类型
C: 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D: 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
答案: 【 若只处理“真”和“假”两种逻辑值,应使用逻辑类型】
23、单选题:
若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是
选项:
A: 1
B: 0
C: 2
D: 不知道a的值,不能确定
答案: 【 1】
24、单选题:
有以下程序,其中k的初值为八进制数 #include <stdio.h> main() {int k=011; printf("%dn",k++); }程序运行后的输出结果是
选项:
A: 12
B: 11
C: 10
D: 9
答案: 【 9】
25、单选题:
有以下程序 #include <stdio.h> main() { int a=2,b=2,c=2; printf("%dn",a/b&c); }程序运行后的输出结果是
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0】
26、填空题:
表达式(int)((double)(5/2)+2.5)的值是 。
答案: 【 4】
27、填空题:
若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf( ,x/y);补充完整,使其输出的计算结果形式为:x/y=11
答案: 【 "x/y=%d"】
28、填空题:
有以下程序#include <stdio.h>main( ){char c1,c2;scanf(“&c”,&c1);while(c1<65||c1>90)scanf(“&c”,&c1);c2=c1+32;printf(“&c, &cn”,c1,c2);}程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能) 。
答案: 【 不能】
29、填空题:
若有定义语句:int a=5;,则表达式:a++的值是 。
答案: 【 5】
30、填空题:
若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为 。
答案: 【 1】
31、填空题:
以下程序运行后的输出结果是 。#include<stdio.h>main(){ int x=20; printf(“%d”,0<x<20); printf(“%dn”,0<x&&x<20);}
答案: 【 10】
32、填空题:
设x为int型变量,请写出一个关系表达式 ,用以判断x同时为3和7的倍数时,关系表达式的值为真。
答案: 【 x%3==0&&x%7==0##%_YZPRLFH_%##x%21==0】
33、填空题:
以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。 #include <stdio.h> main() { int x=256; printf("%d-%d-%dn", ,x/10%10,x/100); }
答案: 【 x%10】
第三讲判断
小测验3.1
1、判断题:
以下语句是否可以通过编译:if ( 1<=n<=10 );
选项:
A: 正确
B: 错误
答案: 【 正确】
2、判断题:
以下语句是否表示n属于[1,10]:if ( 1<=n<=10 );
选项:
A: 正确
B: 错误
答案: 【 错误】
3、填空题:
写出程序的输出结果:int i,j,k;i=5; j=10; k=1;printf("%d", k>i<j);
答案: 【 1】
4、填空题:
写出程序的输出结果:int i,j,k;i=2;j=3;k = i*j==6;printf("%dn", k);
答案: 【 1】
5、填空题:
写出程序的输出结果:int i,j,k;i=3;j=2;k=1;printf("%d", i<j == j<k);
答案: 【 1】
小测验3.2
1、填空题:
写出程序的输出:int i=1;switch ( i%3 ) {case 0: printf("zero");case 1: printf("one");case 2: printf("two");}
答案: 【 onetwo】
2、填空题:
写出程序的输出:int a = 58;if ( a>50 ) printf("A");if ( a>40 ) printf("B");if ( a>30 ) printf("C");
答案: 【 ABC】
选择结构练习
1、单选题:
设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
选项:
A: if(a>b) c=a,a=b,b=c;
B: if(a>b) {c=a,a=b,b=c;}
C: if(a>b) c=a;a=b;b=c;
D: if(a>b) {c=a;a=b;b=c;}
答案: 【 if(a>b) c=a;a=b;b=c;】
2、单选题:
以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是
选项:
A: if((a>b)&&(b>c)) k=1;else k=0;
B: if((a>b)||(b>c) k=1;else k=0;
C: if(a<=b) k=0;else if(b<=c) k=1;
D: if(a>b) k=1;else if(b>c) k=1; else k=0;
答案: 【 if((a>b)&&(b>c)) k=1;else k=0;】
3、单选题:
以下是if语句的基本形式:if(表达式)语句其中“表达式”
选项:
A: 必须是逻辑表达式
B: 必须是关系表达式
C: 必须是逻辑表达式或关系表达式
D: 可以是任意合法的表达式
答案: 【 可以是任意合法的表达式】
4、单选题:
有以下程序#include <stdio.h>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%dn”,x);}程序运行时,输入的值在哪个范围才会有输出结果
选项:
A: 不等于10的整数
B: 大于3且不等于10的整数
C: 大于3或等于10的整数
D: 小于3的整数
答案: 【 大于3且不等于10的整数】
5、单选题:
有以下程序#include<stdio.h>int main() {int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2 || c--!=3)printf("%d,%d,%dn",a,b,c);else printf("%d,%d,%dn",a,b,c);else printf("%d,%d,%dn",a,b,c);}程序运行后的输出结果是
选项:
A: 1,2,3
B: 1,3,2
C: 1,3,3
