大学MOOC 高级语言程序设计(吉林大学)62001 最新慕课完整章节测试答案
第一讲绪论与程序初步
文章目录
1.2.3算法-随堂测验
1、单选题:
有效算法不应该具有的特性是_____
选项:
A: 有穷性
B: 确定性
C: 有效性
D: 冗余性
答案: 【 冗余性】
2、判断题:
与PAD图相比,NS图和流程图更开放、更易修改。
选项:
A: 正确
B: 错误
答案: 【 错误】
1.3.3程序-随堂测验
1、单选题:
哪种语言是计算机能够读懂的语言。
选项:
A: 汇编语言
B: 机器语言
C: 高级语言
D: 自然语言
答案: 【 机器语言】
2、判断题:
C语言编写的程序只要编译链接正确,就一定能正确运行得到正确结果。
选项:
A: 正确
B: 错误
答案: 【 错误】
第一讲绪论与程序初步--客观题
1、单选题:
算法是一个计算过程,是程序设计的基础和精髓。一个有效的算法应该具有如下特点,其中错误的是:__________
选项:
A: 无穷性
B: 确定性
C: 有效性
D: 0个或多个输入及一个或多个输出
答案: 【 无穷性】
2、单选题:
描述算法有各种多样的方法,下述错误的是:________
选项:
A: 设计图
B: NS图
C: PAD图
D: 流程图
答案: 【 设计图】
3、单选题:
下面C语言中不正确的数据类型关键字是 ________。
选项:
A: signed
B: int
C: double
D: char
答案: 【 signed】
4、单选题:
不是C分隔符的是 ________。
选项:
A: !
B: #
C: ;
D: ,
答案: 【 !】
5、单选题:
算法由某些基本成分组成,这些基本成分是一些基本的操作和控制结构。以下不属于基本控制结构的是:__________。
选项:
A: 多文件结构
B: 顺序控制结构
C: 循环控制结构
D: 分支控制结构
答案: 【 多文件结构】
6、单选题:
如下错误的表达为:________。
选项:
A: 任何C程序必须包含至少一个主函数main
B: 一个C程序由一个或若干个编译单元组成,每个编译单元是一个源程序文件
C: 一个编译单元由若干顶层声明组成,每个顶层声明是一个声明或函数定义,其中主要为函数定义
D: 声明包括类型定义、变量声明、宏、… 等
答案: 【 任何C程序必须包含至少一个主函数main】
7、单选题:
一般编写并执行C程序的过程,第一步应该是________。
选项:
A: 使用文本编辑程序,录入源程序,保存文件
B: 使用连接程序进行连接,把.obj文件以及需要的库函数连接到一起,成为一个程序,生成可执行的机器语言程序
C: 使用C 编译程序编译C源程序文件,生成目标代码程序文件.obj
D: 执行程序,得到运行结果
答案: 【 使用文本编辑程序,录入源程序,保存文件】
8、单选题:
C语言可执行程序从哪里开始执行________。
选项:
A: 程序中唯一的main函数
B: 程序中的第一个函数
C: 程序中第一条可执行语句
D: 第一个包含文件的第一个函数
答案: 【 程序中唯一的main函数】
9、单选题:
不是C关键字的是 ________。
选项:
A: define
B: sizeof
C: if
D: double
答案: 【 define】
10、单选题:
不是C运算符的是 ________。
选项:
A: #
B: ++
C: +=
D: ==
答案: 【 #】
11、单选题:
有效算法不应该具有的特性是_____。
选项:
A: 有穷性
B: 冗余性
C: 确定性
D: 确定性
答案: 【 冗余性】
12、单选题:
哪种语言是计算机能够读懂的语言?
选项:
A: 汇编语言
B: 机器语言
C: 高级语言
D: 自然语言
答案: 【 机器语言】
13、判断题:
与PAD图相比,NS图和流程图更开放、更易修改。
选项:
A: 正确
B: 错误
答案: 【 错误】
14、判断题:
C语言编写的程序只要编译链接正确,就一定能正确运行得到正确结果。
选项:
A: 正确
B: 错误
答案: 【 错误】
第二讲顺序程序设计
2.3.5数据-随堂测验
1、判断题:
17,904 是合法的整数字面常量。
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
假设有“#define pai 3.14::” 此时常量标识符pai 代表实数“3.14”。
选项:
A: 正确
B: 错误
答案: 【 错误】
2.4.2语句-随堂测验
1、判断题:
复合语句是多条简单语句的集合,并依次执行; 复合语句中的每条语句要么被执行、要么不被执行,不存在值执行一部分的情况。
选项:
A: 正确
B: 错误
答案: 【 正确】
2.5.2表达式-随堂测验
1、判断题:
C语言中用表达式“a*b”表示a与b相乘。
选项:
A: 正确
B: 错误
答案: 【 正确】
2、填空题:
假设整型变量A,B,C的值分别是3、6和9,请问在执行完如下程序片段后, B的值是多少?B=A;A=CC=B
答案: 【 3】
2.7.7数据类型-随堂测验
1、判断题:
6 / 4和6.0/ 4结果相同。
选项:
A: 正确
B: 错误
答案: 【 错误】
2.8.5输入输出-随堂测验
1、判断题:
使用语句scanf(“%d”,v)可以从键盘读取整型变量v的值。
选项:
A: 正确
B: 错误
答案: 【 错误】
2、填空题:
C语言提供的标准输入输出库函数头文件名字是_______。
答案: 【 stdio.h】
第二讲顺序程序设计--客观题
1、单选题:
现声明float y,由键盘输入:3.1416,正确的数据输入语句是:________。
选项:
A: scanf("%f",&y);
B: scanf("%s",&y);
C: scanf("%d",y);
D: scanf("%f",y);
答案: 【 scanf("%f",&y);】
2、单选题:
C语言中的简单数据类型包括:________。
选项:
A: 整数类型、浮点类型、字符类型
B: 浮点类型、整数类型、字符类型、逻辑类型
C: 逻辑类型、整数类型、字符类型
D: 整数类型、逻辑类型、浮点类型
答案: 【 整数类型、浮点类型、字符类型】
3、单选题:
C语言程序中,表达式5%2的结果是 ________。
选项:
A: 1
B: 2
C: 5
D: 2.5
答案: 【 1】
4、单选题:
语句char ch='65', 则变量ch ________。
选项:
A: 值为1个字符
B: 值为2个字符
C: 值为空
D: 值为3个字符
答案: 【 值为1个字符】
5、单选题:
设x为整型变量,如果要表示数学关系20<x<25,错误的C语言表达式是 ________。
选项:
A: 20<x<25
B: !(x<=20)&&!(x>=25)
C: x==21||x==22||x==23||x==24
D: x>20&&x<25
答案: 【 20<x<25】
6、单选题:
设变量A是int 型,B是float型,则表达式A+'q'+B结果的 数据类型是________。
选项:
A: float
B: char
C: 无法确定
D: int
答案: 【 float】
7、单选题:
下列标识符中不合法的是_______ 。
选项:
A: 2Dim
B: Name
C: Li_Stone
D: DQ
答案: 【 2Dim】
8、单选题:
执行如下语句后,x的值和输出结果分别是 ________。int x=11; printf("%d", x+2);
选项:
A: 11 13
B: 11 11
C: 12 12
D: 12 13
答案: 【 11 13】
9、单选题:
如果要表示逻辑关系 “ x≥11或x≤2 ”,下面正确的C语言表达式是 ________。
选项:
A: x>=11 || x<=2
B: x>=11 && x<=2
C: x>=2 | x<=11
D: x>=11 and x<=2
答案: 【 x>=11 || x<=2 】
10、单选题:
下列转义字符不正确的是:__________。
选项:
A: '9999'
B: '\'
C: '"
D: ''
答案: 【 '9999'】
11、单选题:
下面哪个是非法的C语言标识符?
选项:
A: -ab
B: _ab
C: a_b
D: ab12
答案: 【 -ab】
12、单选题:
假设整型变量A、B和C的值分别是3、6和9,请问在执行完如下程序片段后,A的值是多少? C=B; B=A; A=C;
选项:
A: 6
B: 9
C: 0
D: 3
答案: 【 6】
13、单选题:
C语言提供的标准输入输出库函数头文件名字是_______。
选项:
A: stdio.h
B: string.h
C: math.h
D: limits.h
答案: 【 stdio.h】
14、判断题:
6 /4和6.0/ 4结果相同。
选项:
A: 正确
B: 错误
答案: 【 错误】
15、判断题:
注释会参与到程序实际执行过程,并起到关键作用。
选项:
A: 正确
B: 错误
答案: 【 错误】
16、判断题:
字符有两种形态:可视性态和存储形态。
选项:
A: 正确
B: 错误
答案: 【 正确】
17、判断题:
17,904 是合法的整数字面常量。
选项:
A: 正确
B: 错误
答案: 【 错误】
18、判断题:
假设有“#define pai 3.14;” 此时常量标识符pai 代表实数“3.14”。
选项:
A: 正确
B: 错误
答案: 【 错误】
19、判断题:
复合语句是多条简单语句的集合,并依次执行,即复合语句中的每条语句要么被执行、要么不被执行,不存在值执行一部分的情况。
选项:
A: 正确
B: 错误
答案: 【 正确】
20、判断题:
C语言中用表达式“a*b”表示a与b相乘。
选项:
A: 正确
B: 错误
答案: 【 正确】
21、判断题:
假设有int v; 则使用语句scanf(“%d”, v);可以从键盘读取整型变量v的值。
选项:
A: 正确
B: 错误
答案: 【 错误】
第三讲分支和循环初步
3.2.3单分支双分支程序设计—随堂测验
1、单选题:
如下语句中有一个功能与其他不同,请指出是哪一个?
选项:
A: if(a>b) s=a-b;else s=b-a;
B: if(a-b>0) s=a-b;else s=b-a;
C: if(a<b) s=a-b;else s=b-a;
D: if(a>b) s=a-b;if(a<=b) s=b-a;
答案: 【 if(a<b) s=a-b;else s=b-a;】
2、判断题:
if语句的基本形式: if ( 表达式 ) 语句其中:“表达式”最终要给出一个布尔类型的值。
选项:
A: 正确
B: 错误
答案: 【 正确】
3.3.3逻辑判断—随堂测验
1、判断题:
<>在C语言中是关系运算符
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
如下逻辑表达式能正确表示能被3,5,7 同时整除的整型变量x(x%3==0)&&(x%5==0)&&(x%7==0)
选项:
A: 正确
B: 错误
答案: 【 正确】
3.4.3多分支程序设计—随堂测验
1、单选题:
多分支switch语句switch ( e ){ case c1: 语句; break; ........... case c2: 语句; break; ........... default:语句}中描述正确的是
选项:
A: e是任意合法的表达式
B: break的作用是跳出包含它的switch语句,执行该switch语句的后继语句
C: switch语句执行结果和case ci的书写顺序有关
D: default语句永远不会被执行到。
答案: 【 break的作用是跳出包含它的switch语句,执行该switch语句的后继语句】
第三讲分支和循环初步--客观题
1、单选题:
以下程序的运行结果是:int main(void){
int x=1,y=0,a=0,b=0;
switch(x){
case 1:switch(y){
case 0:a++; break;
case 1:b++; break;
}
case 2:a++; b++; break;
case 3:a++; b++;
}
printf("%d %dn", a, b);
return 0;
}
选项:
A: 2 1
B: 1 0
C: 2 2
D: 3 2
答案: 【 2 1】
2、单选题:
若变量已正确定义,在if (S) printf (“%dn”,n);中,以下不可以替代S的是:
选项:
A: a<>b+c
B: ch=getchar()
C: a==b+c
D: a++
答案: 【 a<>b+c】
3、单选题:
阅读下述程序段,设变量c的值是68,写出运行结果。(提示小写字母a的ASCII码是97, 大写字母A的ASCII码是65)char c;
if ( c>=‘A’ && c<=‘Z’)
printf (“%cn”,c+32);
else
printf (“%dn”,c);
选项:
A: d
B: 100
C: D
D: 68
答案: 【 d】
4、单选题:
如有定义语句int a,b; double x; 则下列选项中没有错误的是______.提示:(int)x 表示将变量x的值强制转换成int类型。若x初始值为3.2则 (int)x的结果是int类型,值为3.
选项:
A: switch((int)x%2 ){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
B: switch(x%2){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
C: switch((int)x%2.0){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}
D: switch(x%2){
case 0: a++; break;
case 1.0: b++; break;
default: a++; b++;
}
答案: 【 switch((int)x%2 ){
case 0: a++; break;
case 1: b++; break;
default: a++; b++;
}】
5、单选题:
下面程序的运行结果是:#include <stdio.h>
int main(void){
int a=1, b=2, c=3 ;
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);
return 1;
}
选项:
A: 1,2,3
B: 1,3,2
C: 1.3.3
D: 3,2,1
答案: 【 1,2,3】
6、单选题:
如下程序段的功能是判断一个4位自然数个位和十位数字是否相同,在划线处填写表达式。int num;
scanf ("%d",&num);
if (num>=1000 && num<10000)
if (______________)
printf ( “该4位自然数个位和十位数字相同n”);
else
printf ( “该4位自然数个位和十位数字不同n”);
选项:
A: num%10 ==num/10%10
B: num/10%10==num/100%10
C: num/100%10==num%10
D: num/1000==num%10
答案: 【 num%10 ==num/10%10】
7、单选题:
判断一个自然数是否为4位且是5的倍数,下述语句不正确的是:
选项:
A: if(n< =1000 || n>10000)
if(n%5==0)
printf(“YESn”);
else
printf(“NOn”);
B: if (n > =1000 && n<10000 && n%5==0)
printf(“YESn”);
else
printf(“NOn”);
C: if(n%5==0)
if (n > =1000 && n<10000 )
printf(“YESn”);
else
printf(“NOn”);
D: if (n > =1000 && n<10000 )
if(n%5==0)
printf(“YESn”);
else
printf(“NOn”);
答案: 【 if(n< =1000 || n>10000)
if(n%5==0)
printf(“YESn”);
else
printf(“NOn”);】
8、单选题:
下面程序段实现把3或5的倍数输出,在划线处填上正确的表达式 int x;
scanf (“%d”,&x);
if (___________________)
printf (“%dn”,x);
选项:
A: x%3==0 || x%5==0
B: x%3!=0 && x%5!=0
C: x%15
D: x%3==0 && x%5==0
答案: 【 x%3==0 || x%5==0】
9、单选题:
下述程序的运行结果是:int main(void){
int a=1,b=0;
if (!a )
b++;
else
if ( a==0 )
if ( a )
b+=2;
else
b+=3;
printf("b=%dn",b);
return 0;
}
选项:
A: b=0
B: b=1
C: b=2
D: b=3
答案: 【 b=0】
10、单选题:
阅读下面程序段,s 的值是:int a=1, b=2 c=6,s ;
if ( a<=b || c<0 || b<c)
s=b+c;
else
s=a+b+c;
选项:
A: 8
B: 9
C: 10
D: 11
答案: 【 8】
11、单选题:
下列程序正确的输出是:__________。int x=20;
if(x>0) printf(“0”);
if(x>10) printf(“10”);
if(x>20) printf(“20”);
选项:
A: 010
B: 0
C: 10
D: 20
答案: 【 010】
12、单选题:
switch(条件语句 ) 中的条件语句不能填入以下哪种数据类型?
选项:
A: 字符串类型
B: 字符类型
C: bool
D: int
答案: 【 字符串类型】
13、单选题:
以下选项中,两个条件语句语义等价的是__________。
选项:
A: if(a-2)printf("%dn",a);
if(a!=2)printf("%dn",a);
B: if(a=2)printf("%dn",a);
if(a==2)printf("%dn",a);
C: if(a)printf("%dn",a);
if(a!=2)printf("%dn",a);
D: if(a-2)printf("%dn",a);
if(a==2)printf("%dn",a);
答案: 【 if(a-2)printf("%dn",a);
if(a!=2)printf("%dn",a);】
14、单选题:
下面程序输出结果是__________。int main(void){
int a = 0 , b = 1, c = 0 ,d = 20 , x =100;
if(a)
x = d-10;
else
if(!b)
if(!c)
x = 15;
else
x = 20;
printf(“%d”, x);
return 0;
选项:
A: 100
B: 15
C: 25
D: 20
答案: 【 100】
15、单选题:
若执行下面的程序从键盘上输入5,则输出结果是__________。int main(void){
int x;
scanf("%d",&x);
if(x++>5)
printf("%dn",x);
else
printf("%dn",x --);
return 0;
}
选项:
A: 6
B: 7
C: 5
D: 4
答案: 【 6】
16、单选题:
如下语句中有一个功能与其他不同,请指出是哪一个?
选项:
A: if(a<b) s=a-b; else s=b-a;
B: if(a>b) s=a-b; else s=b-a;
C: if(a-b>0) s=a-b; else s=b-a;
D: if(a>b) s=a-b; if(a<=b) s=b-a;
答案: 【 if(a<b) s=a-b; else s=b-a;】
17、单选题:
多分支switch语句(难度:低) switch ( e ){ case c1: 语句; break; ........... case ci: 语句; break; ........... default:语句 }中描述正确的是:__________
选项:
A: e是任意合法的表达式
B: break的作用是跳出包含它的switch语句,执行该switch语句的后继语句
C: switch语句执行结果和case ci的书写顺序有关
D: 常量表达式必须是整数
答案: 【 break的作用是跳出包含它的switch语句,执行该switch语句的后继语句】
18、单选题:
如下哪个逻辑表达式为真时,能正确表示x是3,5,7 的公倍数。
选项:
A: (x%3==0)||(x%5==0)||(x%7==0)
B: (x%3==0)&&(x%5==0)||(x%7==0)
C: (x%3==0)||(x%5==0)&&(x%7==0)
D: (x%3==0)&&(x%5==0)&&(x%7==0)
答案: 【 (x%3==0)&&(x%5==0)&&(x%7==0)】
第四讲循环进阶
4.3.6实例—随堂测验
1、判断题:
在求最大公因数的程序中,最后输出语句printf(“gcd(u,v)=%5dn”, u) 输出的是变量u,可以换成输出变量v?
选项:
A: 正确
B: 错误
答案: 【 错误】
2、判断题:
在求最大公因数的程序中while 循环体内的顺序可以随意交换。while(r!=0){ r=u%v; u=v; v=r;}
选项:
A: 正确
B: 错误
答案: 【 错误】
3、判断题:
多重循环中内外循环的控制变量不应是同一变量,而且不应互相影响。
选项:
A: 正确
B: 错误
答案: 【 正确】
第四讲循环进阶--客观题
1、单选题:
for(i=1;i<10;i++);结束后,i的值是:
选项:
A: 10
B: 9
C: 11
D: 12
答案: 【 10】
2、单选题:
下面程序的输出结果是_____.int main(void){
int s,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“%dn”,s);
return 0;
}
选项:
A: 10
B: 1
C: 9
D: 15
答案: 【 10】
3、单选题:
下面有关for循环的正确描述是:
选项:
A: for循环的循环体可以包含多条语句,但必须用花括号括起来。
B: for循环只能用于循环次数已经确定的情况
C: for循环是先执行循环体语句,后判断表达式。
D: 在for循环中,不能用break语句跳出循环体。
答案: 【 for循环的循环体可以包含多条语句,但必须用花括号括起来。】
4、单选题:
以下叙述正确的是:
选项:
A: 用do---while语句构成的循环,在while后的表达式为零时结束循环。
B: do---while语句构成的循环不能用其他语句构成的循环来代替。
C: do---while语句构成的循环只能用break语句退出。
D: 用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
答案: 【 用do---while语句构成的循环,在while后的表达式为零时结束循环。】
5、单选题:
若k为整型变量,则下面while循环执行的次数为:k=10;
while(k>=5) k=k-1;
选项:
A: 6次
B: 4次
C: 5次
D: 7次
答案: 【 6次 】
6、单选题:
若k为整型,以下while循环执行___次.k=2;
while(k=0)
printf("%d",k),k--;
printf("n");
选项:
A: 0次
B: 1次
C: 2次
D: 无限次
答案: 【 0次】
7、单选题:
要使下面程序输出10个整数,则在横线处填入正确的数是:for(i=0;i<= ______ 😉
printf(“%dn”,i+=2);
选项:
A: 18
B: 9
C: 10
D: 20
答案: 【 18】
8、单选题:
下面程序的输出结果是____.int main(void){
int i,j;
for(i=0;i<10;i++)
for(j=0;j<3;j++)
i=i+j;
printf("%d",i);
return 0;
}
选项:
A: 12
B: 9
C: 15
D: 18
答案: 【 12】
9、单选题:
以下关于for循环的描述,正确的是 ________。
选项:
A: for循环只能用于循环次数已经确定的情况
B: for循环是先执行循环体语句,后判定表达式
C: 在for循环中,不能用return语句终止循环执行
D: for循环体语句中,可以包含多条语句
答案: 【 for循环体语句中,可以包含多条语句】
10、单选题:
下面程序执行结果正确的是 ________。#include <stdio.h>{
int main(void){
int n=0;
while (n<=2)
printf(“%d”,n++);
return 0;
}
选项:
A: 23
B: 123
C: 012
D: 12
答案: 【 012】
11、单选题:
下面程序段中循环体语句执行次数是 ________。for (int i=5;i;i--)
for (int j=0;j<4;j++){
…
}
选项:
A: 20
B: 24
C: 6
D: 5
答案: 【 20】
12、单选题:
下面程序的输出结果是 ________。#include <stdio.h>
int main(void){
int i=1,j,m=0;
for (;i<=5;i+=4)
for (j=3;j<=19;j+=4)
m++;
printf(“%d”,m);
return 0;
}
选项:
A: 10
B: 15
C: 20
D: 25
答案: 【 10】
13、单选题:
下面程序的运行结果是 ________。#include <stdio.h>
int main(void){
int x=1;
while (x<20)
x=1+1/x;
printf(“%d”,x);
return 0;
}
选项:
A: 20
B: 1
C: 程序有错,不能运行
D: 死循环
答案: 【 死循环】
14、单选题:
下面程序段判断x是否为素数。则空格处应该填写的语句分别为 ________。scanf(“%d”,&x);
y=(int)sqrt(x);
for (int j=2; j<=y; j++)
if (_______)
________;
if (j<=x)
printf(“是素数”);
else
printf(“不是素数”);
选项:
A: x/j==0, return;
B: y%j==0, break;
C: y/j==0, break.
D: x%j==0, j=x+1;
答案: 【 x%j==0, j=x+1;】
15、单选题:
下面程序的输出结果是 ________。#include <stdio.h>
int main(void){
int i,j,x=0;
for (i=0;i<2;i++){
x++;
for (j=1;j<=3;j++{
if (j%2)
