大学MOOC C程序设计(山东工商学院)1450304428 最新慕课完整章节测试答案
第一周C语言概述,C语言变量、常量及表达式
顺序结构单元测验
1、单选题:
下列标识符组中,合法的用户标识符为( )。
选项:
A: _0123与ssiped
B: del-word与signed
C: list与*jer
D: keep%与wind
答案: 【 _0123与ssiped】
2、单选题:
char型变量在内存中存入的是( )。
选项:
A: 一个ASCII代码值
B: 两个ASCII代码值
C: 四个ASCII代码值
D: 两个字节十进制代码值
答案: 【 一个ASCII代码值】
3、单选题:
已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句“printf("%d,%d", c1, c2 - 2);”后,输出的结果是( )。
选项:
A: A,B
B: A,68
C: 65,68
D: 65,66
答案: 【 65,66】
4、单选题:
设有整型变量i ,其值为020;整型变量j,其值为20。执行语句: printf("%d,%dn", i , j); 后,输出结果是( )。
选项:
A: 20,20
B: 20,16
C: 16,16
D: 16,20
答案: 【 16,20】
5、单选题:
属于整型常量的是( )。
选项:
A: 14
B: 14.0
C: 14.0E20
D: -14.5
答案: 【 14】
6、单选题:
执行语句“x = a = 3 , b =( a--);” 后, x、a、b的值依次为( )。
选项:
A: 3,3,2
B: 3,2,2
C: 3,2,3
D: 2,3,2
答案: 【 3,2,3】
7、单选题:
若有定义语句 "int x=12,y=8,z;",在其后执行语句 "z=0.9+x/y;",则z 的值为( )
选项:
A: 1
B: 1.9
C: 2
D: 2.4
答案: 【 1】
8、单选题:
表达式a+=a-=a=9的值是( )。
选项:
A: 9
B: -9
C: 18
D: 0
答案: 【 0】
9、单选题:
以下关于算法叙述错误的是( )。
选项:
A: 算法可以用伪代码、流程图等多种形式来描述
B: 一个正确的算法必须有输入
C: 一个正确的算法必须有输出
D: 用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码
答案: 【 一个正确的算法必须有输入】
10、单选题:
以下定义语句中正确的是( )。
选项:
A: int a=b=0;
B: char A=65+1,b='b';
C: float a=1,b='1'
D: double a=0.0;b=1.2
答案: 【 char A=65+1,b='b';】
11、填空题:
C 语言语句分为5类,分别是控制语句、函数调用语句、( )、空语句和( )。
答案: 【 表达式语句 复合语句】
12、填空题:
若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是( )
答案: 【 -16】
13、填空题:
字符串常量是由一对( )括起来的字符序列。
答案: 【 双引号】
14、填空题:
只有一个分号的语句叫( )。
答案: 【 空语句】
第四周C程序及流程控制
循环结构单元测试
1、填空题:
有以下程序#include <stdio.h>void main( ){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%dn”,s);}程序运行后的输出结果是( )。
答案: 【 30】
2、填空题:
以下程序段的输出结果是( )。 int x=3; do { printf("%3d",x-=2); } while(!(--x));
答案: 【 1 -2】
3、填空题:
有以下程序#include <stdio.h>void main() { int a=1,b; for(b=1;b<=10;b++) { if(a>=8)break; if(a%2==1) { a+=5; continue; } a-=3; } printf("%dn",b); }程序运行后的输出结果是( )。
答案: 【 4】
4、填空题:
#include <stdio.h>void main( ){ int i; for(i=0;i<3;i++) { switch(i) { case 1: printf("%3d",i); case 2: printf("%3d",i); default: printf("%3d",i); } } }执行后输出结果是( )。
答案: 【 0 1 1 1 2 2】
5、填空题:
下面程序的输出是( )。#include <stdio.h>void main( ){ int y=9; for(;y>0;y--) { if(y%3==0) { printf("%3d",--y); continue; } }}
答案: 【 8 5 2】
选择结构单元测试
1、单选题:
阅读以下程序:#include <stdio.h> main( ){ int a=5,b=0,c=0;if(a=b+c) printf("***n");else printf("$$$n");}以上程序( )。
选项:
A: 有语句错误不能通过编译
B: 可以通过编译但不能通过连接
C: 输出***
D: 输出$$$
答案: 【 输出$$$】
2、单选题:
当a=1,b=3,c=5,d=4执行完下面一段程序后,x 的值是( )if (a<b)if (c<d) x=1;elseif (a<c)if(b<d) x=2;else x=3;else x=6;else x=7;
选项:
A: 1
B: 2
C: 3
D: 6
答案: 【 2】
3、单选题:
以下程序的输出结果是( )#include <stdio.h> main( ){ int x=2,y=-1,z=2;if (x<y)if (y<0) z=0;else z+=1;printf("%dn",z);}
选项:
A: 3
B: 2
C: 1
D: 0
答案: 【 2】
4、单选题:
#include <stdio.h>main( ){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if (!ok1) a=1;elseif (ok2) a=10;a=-1;printf("%dn",a);}
选项:
A: 1
B: 0
C: -1
D: 值不确定
答案: 【 -1】
5、单选题:
执行下面的程序段:int x=40;char z='B';int b;b=((x&0xff)&&(z>'a'));后,b 的值为( )
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0】
6、单选题:
对下述程序,正确的判断是( )#include <stdio.h>{ int a,b;scanf("%d,%d",&a,&b);if(a>b) a=b;b=a;else a++;b++;printf("%d,%d",a,b);}
选项:
A: 有语法错误不能通过编译
B: 若输入4,5则输出5,6
C: 若输入5,4则输出4,5
D: 若输入5,4则输出5,5
答案: 【 有语法错误不能通过编译】
7、单选题:
关于if 后一对圆括号中的表达式,以下叙述中正确的是( )
选项:
A: 只能用逻辑表达式
B: 只能用关系表达式
C: 既可用逻辑表达式,也可用关系表达式
D: 可用任意表达式
答案: 【 可用任意表达式】
8、单选题:
有如下程序:#include <stdio.h>main( ){int x=1,a=0,b=0;switch(x){ case 0: b++; case 1: a++; case 2:a++;b++;}printf("a=%d,b=%dn",a,b)'}
选项:
A: a=2,b=1
B: a=1,b=1
C: a=1,b=0
D: a=2,b=2
答案: 【 a=2,b=1】
9、单选题:
有以下程序:#include <stdio.h>main( ){ char a='H';a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;printf("%cn",a);}
选项:
A: A
B: a
C: H
D: h
答案: 【 h】
10、单选题:
为了避免在嵌套的if-else语句中产生二义性,C语言规定,else子句总是与( )配对
选项:
A: 所排位置相同的
B: 其之前最近的if
C: 之后最近的if
D: 同一行上的if
答案: 【 其之前最近的if 】
