MOOC C程序设计基础(武汉理工大学)1465261161 最新慕课完整章节测试答案
第1讲 初识C语言
文章目录
随堂测验1
1、单选题:
下列叙述中正确的是( )。
选项:
A: 算法必须要有输入和输出操作。
B: 算法可以没有输入,但必须要有输出操作。
C: 算法可以没有输出,但必须要有输入操作。
D: 算法可以既没有输入,也没有输出操作。
答案: 【 算法可以没有输入,但必须要有输出操作。】
2、单选题:
以下关于程序、数据结构和算法的关系,描述正确的是 ( ) 。
选项:
A: 算法=数据结构=程序
B: 算法=数据结构+程序
C: 程序=数据结构+算法
D: 数据结构=算法+程序
答案: 【 程序=数据结构+算法】
3、单选题:
算法的有穷性是指( )。
选项:
A: 算法程序的运行时间是有限的。
B: 算法程序所处理的数据量是有限的。
C: 算法程序的长度是有限的
D: 算法只能被有限的用户使用
答案: 【 算法程序的运行时间是有限的。】
4、单选题:
结构化程序由三种基本结构组成,三种基本结构组成的算法( )。
选项:
A: 只能完成一些简单的任务
B: 只能完成部分复杂的任务
C: 只能完成符合结构化的任务
D: 可以完成任何复杂的任务
答案: 【 可以完成任何复杂的任务】
第2讲 基本数据类型和运算符
随堂测验1
1、单选题:
下列( )是C语言中的合法常量。
选项:
A: '\045'
B: 08
C: e1
D: 1.0e0.5
答案: 【 '\045'】
2、单选题:
下面正确的字符常量是( )。
选项:
A: "c"
B: '\\'’
C: 'W'
D: ""
答案: 【 'W'】
3、判断题:
C 语言规定 : 定义符号常量时必须用大写字母。
选项:
A: 正确
B: 错误
答案: 【 错误】
随堂测验2
1、单选题:
有如下语句float x=2.5, y=4.7;
int a=7;
printf(“%.1f”, x+a%3*(int)(x+y)%2/4);输出结果是( )。
选项:
A: 3.5
B: 2.8
C: 2.5
D: 3.8
答案: 【 2.5】
2、单选题:
C语言中,运算对象必须是整型数的运算符是( )。
选项:
A: %
B: \
C: % 和 \
D: /
答案: 【 %】
3、单选题:
已知字母A的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch='A'+'6'-'3';后,ch中的值为( )。
选项:
A: D
B: 68
C: C
D: 不确定
答案: 【 68】
随堂测验3
1、单选题:
设x 、y均为f1oat型变量,则以下不合法的赋值语句是 ( )
选项:
A: y=1+x;
B: y=(x%2)/10;
C: x*=y+8;
D: x=y=0;
答案: 【 y=(x%2)/10;】
2、单选题:
若x、i、j和k都是int型变量,则执行下面表达式 x = (i = 4, j = 16, k = 32)后x的值为( )。
选项:
A: 4
B: 16
C: 32
D: 52
答案: 【 32】
3、单选题:
设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y;的功能是( )。
选项:
A: 把x和y按从大到小排列
B: 把x和y按从小到大排列
C: 无确定结果
D: 交换x和y中 的值
答案: 【 交换x和y中 的值】
4、单选题:
以下能正确地定义整型变量a、b和c,并为它们赋初值5的语句是( )。
选项:
A: int a=b=c=5;
B: int a=5,b=5,c=5;
C: int a,b,c=5;
D: a=5,b=5,c=5;
答案: 【 int a=5,b=5,c=5;】
5、单选题:
下列两条语句:int a=1,b=2,c;c=1.0/b*a;执行后变量c中的值是( )。
选项:
A: 0.5
B: 1
C: 0
D: 2
答案: 【 0】
6、单选题:
下面哪一句是正确的赋值语句?
选项:
A: x=y=87;
B: x++
C: x=6*y=13;
D: x=int n;
答案: 【 x=y=87;】
7、单选题:
设有float a=4,则a+=a/=a*a的值是( )。
选项:
A: 0.5
B: 1.5
C: 2.5
D: 3.5
答案: 【 0.5】
8、填空题:
设a和n都已定义为整型变量,a=12, n=5,写出表达式 a/=a+a 运算后a的值( )
答案: 【 0】
随堂测验4
1、单选题:
已知int i, a; 执行语句i=(a=2*3,a*5),a+6;后,变量i的值是( )。
选项:
A: 6
B: 12
C: 30
D: 36
答案: 【 30】
随堂测验5
1、单选题:
若有定义#define T 8和int a,b;,下面正确的表达式是( )。
选项:
A: ++b--
B: 21+'a'
C: a+2++
D: T++
答案: 【 21+'a'】
2、填空题:
设有int x, a;,则执行a=(x=1, x++, x+2)后,a的值为( )。
答案: 【 4】
第3讲 程序中的输入与输出
随堂测验1
1、单选题:
给定: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 %d",a,b);】
2、单选题:
给定:int a,b,c; scanf("%d,%d,%d",&a,&b,&c);则以下哪个输入方式是正确的?
选项:
A: 2030,40
B: 20,30,40
C: 20 30 40
D: 20,30 40
答案: 【 20,30,40】
3、单选题:
执行下面的语句:char c1=97,c2=98; printf("%d %c",c1,c2; 其输出结果是( )。(字符'a'的ASCII码为97)
选项:
A: 97 98
B: 97 b
C: a 98
D: a b
答案: 【 97 b】
第4讲 基本控制结构与控制运算符
【测验1】数据类型、运算符表达式及顺序结构
1、单选题:
C语言表达式中,对于实数,下面正确的实型常量指数形式是( )。
选项:
A: 1.0e-6
B: 1e-6.0
C: 10e-6
D: 1.0e-6.0
答案: 【 1.0e-6】
2、单选题:
设有float a=1;,则a/=a+a的值是( )。
选项:
A: 0.5
B: 0
C: 2.0
D: 1.0
答案: 【 0.5】
3、单选题:
若有定义int a=10;,下面正确的表达式是( )。
选项:
A: -a++
B: ++a--
C: a+2++
D: (a+2)++
答案: 【 -a++】
4、单选题:
以下能正确地定义整型变量a、b和c,并为它们赋初值5的语句是( )。
选项:
A: int a=5,b=5,c=5;
B: int a=b=c=5;
C: int a,b,c=5;
D: a=5,b=5,c=5;
答案: 【 int a=5,b=5,c=5;】
5、单选题:
如果变量 x、y 、t 已经正确定义,下列哪个选项的语句不能正确将x、y的值进行交换?
选项:
A: x=t, t=y, y=x;
B: x=x+y, y=x-y, x=x-y;
C: t=x, x=y; y=t;
D: t=y, y=x, x=t;
答案: 【 x=t, t=y, y=x;】
6、单选题:
若变量已正确定义并赋值,符合C语言语法的表达式是( )。
选项:
A: a = 3 , 5
B: a = 2 ++
C: a = a + 1 = 3
D: 12.3 % 4
答案: 【 a = 3 , 5】
7、单选题:
若变量已正确定义,表达式 ( j=3, j-3, j++) 执行后,j的值是____。
选项:
A: 4
B: 3
C: 0
D: 1
答案: 【 4】
8、单选题:
下列叙述中错误的是( )。
选项:
A: 计算机可以直接运行扩展名为c的文件。
B: 扩展名为obj的文件不能直接运行。
C: 连接是指将扩展名为obj的文件,经连接程序生成扩展名为exe可执行文件的操作。
D: 编译是指C源程序经编译程序编译,生成扩展名为obj的目标文件的操作。
答案: 【 计算机可以直接运行扩展名为c的文件。】
9、单选题:
一个字长为8位的无符号二进制数能表示的十进制数值范围是( )。
选项:
A: 0~255
B: 1~255
C: -127 ~ 127
D: -128 ~ 127
答案: 【 0~255】
10、单选题:
若有int x=50;,则下列语句( ) 会输出“50%”。
选项:
A: printf("%d%%",x);
B: printf("%d",x%);
C: printf("%d%",x);
D: printf("%d%%");
答案: 【 printf("%d%%",x);】
11、单选题:
若有:int a;
double c;现要按下面格式输入这2个数,以下哪个输入语句是正确的。100 12.34
选项:
A: scanf("%d%lf", &a, &c);
B: scanf("%d%lf", a, c);
C: scanf("%d,%f", &a, &c);
D: scanf("%d %d", &a, &c);
答案: 【 scanf("%d%lf", &a, &c);】
12、单选题:
表达式:(int)((double)(34/4)-2.5)%5的值是( )。
选项:
A: 4
B: 1
C: 0
D: 5
答案: 【 0】
13、单选题:
以下程序段执行后,输出结果是( )。double x,y;
x=2;
y=x+3/2;
printf("%lf",y);
选项:
A: 3.500000
B: 3
C: 3.0
D: 3.000000
答案: 【 3.000000】
14、单选题:
有表达式:(double)(1/2)+(int)(1/2.0),运算后结果是( )。
选项:
A: 0
B: 0.0
C: 0.5
D: 1.0
答案: 【 0.0】
15、单选题:
有定义:int a = 10;
float x = 2.8, y = 3.9;则,下面算术表达式的值为( )。 x + a / 3 * ( int )( x + y + 0.9 ) % 5 / 4
选项:
A: 2.8
B: 表达式有错误,不能对实数作%求余运算
C: 3.0
D: 3.8
答案: 【 2.8】
16、判断题:
语句 printf("%.2f",1/3);输出结果为 0.33。
选项:
A: 正确
B: 错误
答案: 【 错误】
17、判断题:
a=b=4+c=6 是一个合法的赋值表达式。
选项:
A: 正确
B: 错误
答案: 【 错误】
18、判断题:
C 语言规定 : 定义符号常量时宏名的命名可以用任何符号。
选项:
A: 正确
B: 错误
答案: 【 错误】
19、填空题:
设有int x, a;,则执行a=(x=5, x+2, x++)后,a的值为( )。
答案: 【 5】
20、填空题:
设int a=2;,写出表达式 a /= a + a 运算后 a 的值( )。
答案: 【 0】
21、填空题:
int a=10,b=4,c;c=1.0/b*a;执行上面语句后变量c的值是( )。
答案: 【 2】
随堂测验1
1、单选题:
对条件表达式(M)?(a++):(a--)来说,其中表达式M等价于______。
选项:
A: M==0
B: M==1
C: M!=0
D: M!=1
答案: 【 M!=0】
随堂测验2
1、单选题:
能正确地用逻辑关系表示: ”10<a<15”的C语言表达式是______。
选项:
A: 10<a<15
B: 10<a && a<15
C: 10<a||a< 15
D: 10<=a && a<=15
答案: 【 10<a && a<15】
2、单选题:
对于 int x=10, y=100; 以下逻辑表达式的值为0的是( )。
选项:
A: ( x > 100 | | y < 10 ) && y == 100
B: ( x > 0 && y > 0 ) | | x < 100
C: ( x > 10 | | y > 10 ) && x == 10
D: x > 100 | | y < 10 | | y > 10
答案: 【 ( x > 100 | | y < 10 ) && y == 100】
3、单选题:
能正确表示a和b同时为正或同时为负的逻辑表达式是( )。
选项:
A: a*b>0
B: (a>0||b>0)&&(a<0||b<0)
C: (a>0&&b>0)&&(a<0&&b<0)
D: (a+b>0)&&(a+b<0)
答案: 【 a*b>0】
随堂测验3
1、填空题:
表达式:a=1 || a>b+5 || a<1 的值是______ 。
答案: 【 1】
随堂测验4
1、单选题:
以下运算符中优先级最高的运算符是______。
选项:
A: &&
B: ||
C: !=
D: !
答案: 【 !】
2、单选题:
设i、j、k是 int 型变量,且i = 3, j = 4, k = 5,则以下值为0的表达式是( )
选项:
A: i || j + k && j - k
B: ! ( ( i < j ) && ! k || 1 )
C: 'i' && 'j'
D: i <= j
答案: 【 ! ( ( i < j ) && ! k || 1 )】
3、填空题:
有定义:int a = 3, b = 4, c = 5 ;则表达式 a || b + c && b - c 的值为________。
答案: 【 1】
4、填空题:
执行以下程序段后的b的值是( )。int a=5,b=6,c=1,x=2,y=3,z=4;
c=(a=c>x)&&(b=y>z);
答案: 【 6】
第5讲 程序中的选择结构
【测验2】选择结构
1、单选题:
执行下面程序片段后,变量a,b,c的值分别是( )。 int a,b,c;
int x=8,y=10;
a=(x++==y--)?x:y;
b=++x;
c=--y;
选项:
A: a=9, b=10, c=8
B: a=8, b=8, c=10
C: a=9, b=8, c=10
D: a=9, b=9, c=8
答案: 【 a=9, b=10, c=8】
2、单选题:
分析下面程序片段,下面输出结果正确的是( )。int a=0,b=0,c=1;
c=a++&&(b=1);
printf("a=%d,b=%d,c=%d\n",a,b,c);
选项:
A: a=1,b=0,c=0
B: a=1,b=1,c=0
C: a=1,b=0,c=1
D: a=1,b=1,c=1
答案: 【 a=1,b=0,c=0】
3、单选题:
对于 int x=10, y=100; 以下逻辑表达式的值为0的是( )。
选项:
A: ( x > 100 | | y < 10 ) && y == 100
B: ( x > 0 && y > 0 ) | | x < 100
C: ( x > 10 | | y > 10 ) && x == 10
D: x > 100 | | y < 10 | | y > 10
答案: 【 ( x > 100 | | y < 10 ) && y == 100】
4、单选题:
设 i、j、k是 int 型变量,且 i = 3, j = 4, k = 5,则以下值为0的表达式是( )。
选项:
A: !((i<j)&&!k||1)
B: 'i'&&'j'
C: i<=j
D: i||j+k&&j-k
答案: 【 !((i<j)&&!k||1)】
5、单选题:
执行以下程序段后的b的值是( )。int a=5,b=6,c=1,x=2,y=3,z=4;
c=(a=c>x)&&(b=y>z);
选项:
A: 6
B: 0
C: 1
D: 5
答案: 【 6】
6、单选题:
对条件表达式(M)?(a++):(a--)来说,其中表达式 M 等价于( )。
选项:
A: M != 0
B: M == 0
C: M == 1
D: M != 1
答案: 【 M != 0】
7、单选题:
能正确表示关系x≤y≤z的C语言表达式为( )。
选项:
A: ( x <= y ) && ( y <= z )
B: ( x <= y ) AND ( y<= z )
C: ( x <= y <= z )
D: ( x <= y ) & ( y <= z )
答案: 【 ( x <= y ) && ( y <= z )】
8、单选题:
若变量x、y都为float型,以下表达式中不能正确表示数学关系|x-y|<10的是( )。
选项:
A: ( x - y ) >-10 | | ( x - y ) < 10
B: fabs ( x - y ) < 10
C: x - y > -10 && x - y < 10
D: ( x - y ) * ( x - y ) < 100
答案: 【 ( x - y ) >-10 | | ( x - y ) < 10】
9、单选题:
以下程序段运行后的输出结果是( )。int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0】
10、单选题:
以下程序段运行后的输出结果是( )。int a=0,b=0,c=0,d=0;
if(a=1) b=1; c=2;
else d=3;
printf("%d,%d,%d,%d",a,b,c,d);
选项:
A: 编译有错
B: 1,1,2,0
C: 0,0,0,3
D: 0,1,2,0
答案: 【 编译有错】
11、单选题:
有如下嵌套的if语句if(a<b)
if(a<c) k=a;
else k=c;
else
if(b<c) k=b;
else k=c;以下选项中与上述语句等价的语句是( )。
选项:
A: k = ( a < b ) ? ( ( a < c ) ? a : c ) : ( ( b < c ) ? b : c ) ;
B: k = ( a < b ) ? ( ( b < c ) ? a : b ) : ( ( b > c ) ? b : c ) ;
C: k = ( a < b ) ? a : b ; k= ( b < c ) ? b : c ;
D: k = ( a < b ) ? a : b ; k = ( a < c ) ? a : c ;
答案: 【 k = ( a < b ) ? ( ( a < c ) ? a : c ) : ( ( b < c ) ? b : c ) ;】
12、单选题:
有以下程序段运行时从键盘输入9<回车>, 则输出结果是( )。 int a;
scanf("%d",&a);
if(a++>9) printf("%d\n",a);
else printf("%d\n",a+1);
选项:
A: 11
B: 8
C: 9
D: 10
答案: 【 11】
13、单选题:
若有定义:float x=1.5;
int a=1,b=3,c=2;则正确的switch语句是( )。
选项:
A: switch(a+b)
{ case 1: printf("*\n");
case 2+1: printf("**\n");
}
B: switch((int)x);
{ case 1: printf("*\n");
case 2: printf("**\n");
}
C: switch(x)
{ case 1.0: printf("*\n");
case 2.0: printf("**\n");
}
D: switch(a+b)
{ case 1: printf("*\n");
case c: printf("**\n");
}
答案: 【 switch(a+b)
{ case 1: printf("*\n");
case 2+1: printf("**\n");
}】
14、单选题:
下列叙述中正确的是( )。
选项:
A: 在switch语句中,不一定使用break语句。
B: 在switch语句中必须使用default。
C: break语句必须与switch语句中的case配对使用。
D: break 语句只能用于switch语句。
答案: 【&nbs