大学MOOC C语言程序设计(商洛学院)1454956175 最新慕课完整章节测试答案
第3周 数据的输入与输出
文章目录
单个字符输出
1、判断题:
单个字符既可以以c格式符也可以以d格式符输出,前者是输出这个字符,后者是输出这个字符的ASCII码值。
选项:
A: 正确
B: 错误
答案: 【 正确】
数据的实际位宽大于printf函数中格式指定宽度
1、判断题:
在调用printf函数输出数据时,当数据的实际位宽大于printf函数中格式指定宽度时,将按照数据的实际宽度输出数据。
选项:
A: 正确
B: 错误
答案: 【 正确】
数据输入
1、判断题:
输入时可以指定数据的宽度,但不允许指定精度。
选项:
A: 正确
B: 错误
答案: 【 正确】
第3周单元测验
1、单选题:
若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,正确的数据输入方法是( )。
选项:
A: 20,30,40
B: 2030,40
C: 20, 30 40
D: 20 30 40
答案: 【 20,30,40】
2、单选题:
printf("arHappiby");在屏幕上正确的输出形式是( )。
选项:
A: aHappy
B: Happy
C: Happi
D: aHappi
答案: 【 Happy】
3、单选题:
若定义字符变量c1的值是'A',c2的值是'D',执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
选项:
A: 65,66
B: 65,68
C: A,68
D: A,B
答案: 【 65,66】
4、单选题:
以下程序的输出结果是()。 int main(){ float x=3.6; int i; i=(int)x; printf("x=%f,i=%dn",x,i); return 0;}
选项:
A: x=3.600000,i=4
B: x=3 i=3.600000
C: x=3,i=3
D: x=3.600000,i=3
答案: 【 x=3.600000,i=3】
5、单选题:
已定义double a; int i;选择正确的输入格式为( ) 。
选项:
A: scanf("%6.2f%3d", &a,&i);
B: scanf("%lf%s", &a,&i);
C: scanf("%6lf%3d",&a,&i);
D: scanf("%f%d", a,i);
答案: 【 scanf("%6lf%3d",&a,&i);】
6、单选题:
已有定义char s1,s2;,下面正确的语句是( )。
选项:
A: scanf ("%s%c", s1,s2);
B: scanf ("%s%c", s1,&s2);
C: scanf ("%c%c", &s1,&s2);
D: scanf ("%c%c",s1,s2);
答案: 【 scanf ("%c%c", &s1,&s2);】
7、单选题:
为下面的程序输入数据,使得i=10,k='a' ,j=15,正确的键盘输入方法是( )。 #include <stdio.h> int main( ) { int i,j,k; scanf("%d%c%d",&i,&k,&j); printf("i=%d,j=%c,k=%dn",i,k,j); return 0; }
选项:
A: 10,a,15<回车>
B: 10<回车>a<回车>15<回车>
C: 10'a'15<回车>
D: 10a15<回车>
答案: 【 10a15<回车>】
8、单选题:
运行下面的程序,正确的输出结果是( )。#include <stdio.h> int main( ) { double x=68.7563, y= -789.127; printf ("%f, %10.2fn", x,y); return 0; }
选项:
A: 68.756300, □□□-789.12
B: 68.756300, □□□-789.13
C: 68.75, □□□-789.13
D: 68.75, -789.12
答案: 【 68.756300, □□□-789.13】
9、单选题:
已知float x=2.23,y=4.35;,根据下面的输出结果,正确的程序段是( )。x=2.230000,y=4.350000 y+x=6.58,y-x=2.12
选项:
A: printf("x=%8.2f,y=%8.2f",x,y); printf("y+x=%4.2f,y-x=%4.2fn",y+x,y-x);
B: printf("x=%8.6f,y=%8.6fn",x,y); printf("y+x=%4.2f,y-x=%4.2fn",y+x,y-x);
C: printf("x=%7.2f,y=%7.2fn",x,y); printf("y+x=%3.2f,y=%3.2fn",y+x,y-x);
D: printf("x=%f,y=%fn",&x,&y); printf("y+x=%f,y=%fn",y+x,y-x);
答案: 【 printf("x=%8.6f,y=%8.6fn",x,y); printf("y+x=%4.2f,y-x=%4.2fn",y+x,y-x);】
10、判断题:
C语言中本身没有提供专门的输入输出语句,输入输出通过调用函数完成。
选项:
A: 正确
B: 错误
答案: 【 正确】
11、判断题:
输入数据时不能指定数据的精度。
选项:
A: 正确
B: 错误
答案: 【 正确】
12、判断题:
输入数据时不可以指定数据的宽度。
选项:
A: 正确
B: 错误
答案: 【 错误】
13、判断题:
混合输入数值型数据和字符型数据时,数据之间不能加空格。
选项:
A: 正确
B: 错误
答案: 【 正确】
14、判断题:
使用getchar()函数可以一次接受多个字符。
选项:
A: 正确
B: 错误
答案: 【 错误】
15、判断题:
在使用标准的输入/输出库函数时,应该在程序的开头使用编译预处理命令“#include <stdio.h>”。
选项:
A: 正确
B: 错误
答案: 【 正确】
16、判断题:
字符型数据存储其ASCII码值,占一个字节,在ASCII范围内与整数通用。
选项:
A: 正确
B: 错误
答案: 【 正确】
17、判断题:
输入数据时可以有多种方法分隔多个输入数据。
选项:
A: 正确
B: 错误
答案: 【 正确】
18、判断题:
程序的顺序结构是指按照解决问题的顺序写出相应的语句,程序执行顺序按照自上而下,依次按顺序执行。
选项:
A: 正确
B: 错误
答案: 【 正确】
19、判断题:
若在输入格式控制字符串中包含普通字符,则输入时必须照原样输入普通字符,否则将导致输入错误。
选项:
A: 正确
B: 错误
答案: 【 正确】
20、填空题:
getchar()函数只能接收一个_____。
答案: 【 字符】
21、填空题:
下列语句输出的结果是_____。 char ch='b'; printf("%c,%d",ch,ch);
答案: 【 b,98】
22、填空题:
用scanf函数输入数据,使得x=1.23, y=67.1234。#include <math.h>#include <stdio.h>int main( ){ double x,y,z; scanf(" ", &x,&y ); z=2*x+y/sin(3.1415/4); printf("z=%6.2f",z); return 0;}
答案: 【 %lf%lf】
23、填空题:
完善下列程序:#include < >int main( ){ char str; str=getchar(); putchar(str); return 0;}
答案: 【 stdio.h】
24、填空题:
根据下面的输出结果, 完善程序。 s1=C,ASCII is 67 x=655.35,y=765.43 #include <stdio.h> int main( ) { double x=655.3524,y=765.4271; char s1='C'; printf( , s1,s1,x,y); return 0; }
答案: 【 "s1=%c,ASCII is %dnx=%6.2f,y=%6.2f"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%.2f,y=%.2f"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%6.2lf,y=%6.2lf"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%.2lf,y=%.2lf"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%6.2f,y=%6.2fn"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%.2f,y=%.2fn"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%6.2lf,y=%6.2lfn"##%_YZPRLFH_%##"s1=%c,ASCII is %dnx=%.2lf,y=%.2lfn"】
25、填空题:
用scanf函数输入数据,使得下面程序运行结果为a=2,b='x',c='z'#include <stdio.h>int main( ){ int a, b; scanf("%d%c", &a,&b ); printf(" ",a,b,b+2); return 0;}
答案: 【 a=%d,b='%c',c='%c'##%_YZPRLFH_%##a=%d,b='%c',c='%c'】
26、填空题:
下面程序的运行结果是: 。#include <stdio.h>int main( ) { char str=65; printf("str=%c,ASCII=%d",str,str ); return 0; }
答案: 【 str=A,ASCII=65】
27、填空题:
在格式说明符中,当%后边出现______,表示要跳过相应的数据,是附加说明符。
答案: 【 *##%_YZPRLFH_%##星号】
28、填空题:
若要将数据以指数形式输出,应该选择______格式符。
答案: 【 e##%_YZPRLFH_%##E】
第4周 选择结构程序设计
单分支结构
1、填空题:
写出下列程序段的输出结果:int a = 56;if ( a>50 ) printf("A");if ( a>40 ) printf("B");if ( a>30 ) printf("C");
答案: 【 ABC】
多重分支
1、填空题:
写出下列程序段的输出结果:_______。int i=1;switch ( i%3 ){ case 0: printf("zero"); case 1: printf("one"); case 2: printf("two");}
答案: 【 onetwo】
第4周 单元测验
1、单选题:
下列运算符优先级最高的是( )。
选项:
A: &&
B: ||
C: ,
D: +
答案: 【 +】
2、单选题:
若给定条件表达式(m)?(a++):(a--),则其中表达式m()。
选项:
A: 和(m==0)等价
B: 和(m!=0)等价
C: 和(m==1)等价
D: 和(m!=1)等价
答案: 【 和(m!=0)等价】
3、单选题:
C语言中以下几种运算符的优先次序()的排列是正确的。
选项:
A: 由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||
B: 由高到低为:!,&&,||,算术运算符,赋值运算符
C: 由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符
D: 由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符
答案: 【 由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符】
4、单选题:
C语言中,switch后的括号内表达式( )。
选项:
A: 只能是整型和字符型
B: 只能为整型
C: 可以是任何类型
D: 只能为整型,字符型或枚举型
答案: 【 只能为整型,字符型或枚举型】
5、单选题:
C语言的switch语句中case后边( )。
选项:
A: 可为任何量或表达式
B: 可为常量或表达式或有确定值的变量及表达式
C: 只能为常量或常量表达式
D: 只能为常量
答案: 【 只能为常量或常量表达式】
6、单选题:
执行下面程序段后,k的值是:( )。int k=2;switch(k+1){ case 3:k+=1; case 4:k--;break; case 5:k*=3; case 6:++k;}
选项:
A: 10
B: 2
C: 28
D: 27
答案: 【 2】
7、单选题:
执行下面程序段后,ch的值是( )。char ch='a';ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
选项:
A: z
B: Z
C: a
D: A
答案: 【 a】
8、单选题:
若在程序运行时,输入:4 3,则执行下面程序输出的结果是( )。#include <stdio.h>int main(){ int a,b,s; scanf("%d%d",&a,&b); s=a; if(a>b) s=b; s=s*s; printf("%dn", s); return 0;}
选项:
A: 13
B: 9
C: 16
D: 15
答案: 【 9】
9、单选题:
下列表达式中,值为0的表达式是( )。
选项:
A: 3!=0
B: 3!=3>4
C: 3>4==0
D: 6>5>4
答案: 【 6>5>4】
10、单选题:
下列表达式中,结果为1的表达式是( )。
选项:
A: !0==1
B: !6
C: !2>=3
D: !3!=0
答案: 【 !0==1 】
11、单选题:
设int a=3;,则表达式a<1&&--a>1的运算结果和a的值分别是( )。
选项:
A: 0和2
B: 0和3
C: 1和2
D: 1和3
答案: 【 0和3】
12、单选题:
设整型变量x、y、z的值分别为3、2、1,则下列程序段的输出是( )。if(x>y) x=y; if(x>z) x=z; printf("%d,%d,%dn",x,y,z);
选项:
A: 3,2,1
B: 1,2,3
C: 1,2,1
D: 1,1,1
答案: 【 1,2,1】
13、单选题:
判断char型变量ch是否为小写字母的正确表达式是()。
选项:
A: ('a'>=ch)||('z'<=ch)
B: 'a'<=ch<='z'
C: (ch>=a)&&(ch<=z)
D: (ch>='a')&&(ch<='z')
答案: 【 (ch>='a')&&(ch<='z')】
14、判断题:
能正确表达逻辑关系“0<a<1并且0<b<1”的表达式是(0<a<1)&&(0<b<1)。
选项:
A: 正确
B: 错误
答案: 【 错误】
15、判断题:
所有逻辑运算符的优先级都高于关系运算符。
选项:
A: 正确
B: 错误
答案: 【 错误】
16、判断题:
在switch语句中,switch与case后的表达式可以为任意类型。
选项:
A: 正确
B: 错误
答案: 【 错误】
17、判断题:
在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。
选项:
A: 正确
B: 错误
答案: 【 错误】
18、判断题:
在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。
选项:
A: 正确
B: 错误
答案: 【 正确】
19、判断题:
switch语句嵌套使用时,一条break语句可用于跳出所有嵌套switch语句。
选项:
A: 正确
B: 错误
答案: 【 错误】
20、判断题:
在a>b?a+b:a-b 表达式中,若a>b,则条件表达式的值为a+b的值,否则为a-b的值。
选项:
A: 正确
B: 错误
答案: 【 正确】
21、判断题:
条件运算符的优先级低于算术运算符、关系运算符及逻辑运算符,高于赋值运算符和逗号运算符。
选项:
A: 正确
B: 错误
答案: 【 正确】
22、判断题:
同一个switch语句中各个常量表达式的值必须互不相等,且只能是常量。
选项:
A: 正确
B: 错误
答案: 【 正确】
23、判断题:
C语言没有逻辑型数据,关系表达式的真、假是以数值“1”代表“真”,以“0”代表“假”,即非0为真(true),0为假(false)。
选项:
A: 正确
B: 错误
答案: 【 正确】
24、判断题:
并非所有的if语句都有等价的switch语句,switch语句只能用来实现以相等关系作为选择条件的多分支结构。
选项:
A: 正确
B: 错误
答案: 【 正确】
25、填空题:
已知 a=10,b=15,c=1,d=2,e=0,则表达式c==b>e的值为_____。
答案: 【 1】
26、填空题:
int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为_____。
答案: 【 1】
27、填空题:
int x=4,y=4,z=2;x=y==z; 则x的值为_____。
答案: 【 0】
28、填空题:
假设变量a,b均为整型,表达式 (a=5,b=2,a>b?a++:b++,a+b) 的值是_____。
答案: 【 8】
29、填空题:
当a=1,b=2,c=3时,执行以下程序段后b的值为 _____。 if (a>c) b=a; a=c; c=b;
答案: 【 2】
30、填空题:
已知a=13,b=2,表达式b||++a,运算结果a的值是_____。
答案: 【 13】
31、填空题:
当a=3,b=2,c=1;时,执行以下程序段后,a=_____。if(a>b) a=b;if(b>c) b=c;else c=b;c=a;
答案: 【 2】
32、填空题:
c语言表达式5>2>7>8的值是_____。
答案: 【 0】
33、填空题:
为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的_____语句配对。
答案: 【 if】
第5周 循环结构程序设计
第5周 单元测验
1、单选题:
下面程序的运行结果是 ( )。#include <stdio.h>int main( ){ int i=5;while(i>0); printf("%d",i--); return 0;}
选项:
A: 5
B: -1
C: 0
D: 死循环
答案: 【 死循环】
2、单选题:
执行语句 for(i=1;i++<4;) ; 后变量 i 的值是( )。
选项:
A: 3
B: 4
C: 5
D: 不定
答案: 【 5】
3、单选题:
关于下面程序段,正确的是( )。int k=10;while(!k) k--;
选项:
A: 循环体执行10次
B: 循环体执行1次
C: 循环体一次也不执行
D: 死循环
答案: 【 循环体一次也不执行】
4、单选题:
下面程序的运行结果是( )。#include <stdio.h>int main( ){ int x=3; do{ printf("%3d",x-=2); }while(!(--x)); return 0;}
选项:
A: 死循环
B: 1 -2
C: 10
D: 1
答案: 【 1 -2】
5、单选题:
下面程序的运行结果是( )。#include <stdio.h>int main( ){ int i=0,sum=0; while(i++<6) sum+=i; printf("%d",sum); return 0;}
选项:
A: 15
B: 16
C: 21
D: 22
答案: 【 21】
6、单选题:
下面程序的运行结果是( )。#include <stdio.h>int main( ){ int i=10; while(i-->0); printf("%d ",i); return 0;}
选项:
A: 10
B: 0
C: 10987654321
D: -1
答案: 【 -1】
7、单选题:
已定义int j; 下面程序段的输出结果是( )。for(j=7;j<10;j++) printf("%d",j);
选项:
A: 8910
B: 789
C: 91011
D: 无结果
答案: 【 789】
8、单选题:
下面程序的输出结果是( )。#include <stdio.h>int main( ){ int i,j,s=0; for(j=1,i=7;j<=i;j++,i--) s=s+i+j; printf("%d",s); return 0;}
选项:
A: 32
B: 28
C: 死循环
D: 0
答案: 【 32】
9、单选题:
下面程序的输出结果是( )。#include <stdio.h>int main( ){ int j,s; for(j=1;j<=7;j++) s=s+j; printf("%d",s);}
选项:
A: 0
B: 28
C: 不确定
D: 死循环
答案: 【 不确定】
10、单选题:
已定义int j,s; 则下面程序段的输出结果是( )。int j,s;for(j=1,s=0;j<=5;j++) s*=j;printf("%d",s);
选项:
A: 0
B: 120
C: 死循环
D: 无结果
答案: 【 0】
11、判断题:
while循环语句至少无条件执行一次循环体。
选项:
A: 正确
B: 错误
答案: 【 错误】
12、判断题:
for循环语句只能用于循环次数已经确定的情况。
选项:
A: 正确
B: 错误
答案: 【 错误】
13、判断题:
do while循环语句中,根据情况可以省略关键字while。
选项:
A: 正确
B: 错误
答案: 【 错误】
14、判断题:
do while循环语句至少无条件执行一次循环体。
选项:
A: 正确
B: 错误
答案: 【 正确】
15、判断题:
for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。
选项:
A: 正确
B: 错误
答案: 【 正确】
16、判断题:
do-while循环由do开始,while结束,在while(表达式)后面加分号。
选项:
A: 正确
B: 错误
答案: 【 正确】
17、判断题:
for循环的三个表达式中间用逗号相分隔,并且不能省略。
选项:
A: 正确
B: 错误
答案: 【 错误】
18、判断题:
do while循环语句的特点是先执行循环体,然后判断循环条件是否成立。
选项:
A: 正确
B: 错误
答案: 【 正确】
19、判断题:
while循环语句和do while循环语句在任何情况下都可以互换。
选项:
A: 正确
B: 错误
答案: 【 错误】
20、判断题:
for循环的三个表达式中间用分号相分隔,第一个表达式执行一次。
选项:
A: 正确
B: 错误
答案: 【 正确】
21、填空题:
下面程序用来计算自然数1-10之和,请完善程序。#include <stdio.h>int main( ){ int j,s; ; for(j=1;j<=10;j++) s=s+j; printf("%d",s); return 0;}
答案: 【 s=0】
22、填空题:
下面程序用来计算10!,请完善程序。#include <stdio.h>int main( ){ int j,s; ; for(j=1;j<=10;j++) s*=j; printf("%d",s); return 0;}
答案: 【 s=1】
23、填空题:
下面程序用来计算1+1/2!+1/3!+…1/10!,请完善程序。#include <stdio.h> int main( ){ int i,j;
