慕课慕课C语言程序设计答案(大连理工大学)
不含主观题答案
第1 周 程序设计与C语言简介 第1周单元测验
1、通常把高级语言源程序翻译成目标程序的程序称为( )。
A:编辑程序
B:解释程序
C:汇编程序
D:编译程序
正确答案: 【编译程序】
2、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是()。
A:有零个或多个输出
B:有穷性
C:有零个或多个输入
D:可行性
正确答案: 【有零个或多个输出】
3、结构化程序由三种基本结构组成,三种基本结构组成的算法,()。
A:只能完成一些简单的任务
B:只能完成符合结构化的任务
C:可以完成任何复杂的任务
D:只能完成部分复杂的任务
正确答案: 【可以完成任何复杂的任务】
4、C语言规定,在一个源程序中,main函数的位置()。
A:必须在系统调用的库函数的后面
B:必须在最后
C:可以任意
D:必须在最开始
正确答案: 【可以任意】
5、以下叙述正确的是()。
A:在对一个C程序进行编译的过程中,可发现注释中的拼写错误
B:在C程序中,main函数必须位于程序的最前面
C:C语言本身没有输入输出语句
D:C程序的每行中只能写一条语句
正确答案: 【C语言本身没有输入输出语句】
6、一个C程序的执行是从()。
A:本程序的main函数开始,到main函数结束
B:本程序文件的第一个函数开始,到本程序main函数结束
C:本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
D:本程序的main函数开始,到本程序文件的最后一个函数结束
正确答案: 【本程序的main函数开始,到main函数结束】
7、以下叙述中正确的是 ()。
A:花括号"{"和"}"只能作为函数体的定界符
B:构成C程序的基本单位是函数,所有函数名都可以由用户命名
C:分号是C语句之间的分隔符,不是语句的一部分
D:C程序中注释部分可以出现在程序中任意合适的地方
正确答案: 【C程序中注释部分可以出现在程序中任意合适的地方】
8、以下叙述正确的是()。
A:C语言允许直接访问物理地址,可以直接对硬件进行操作
B:C语言程序不用编译,即可被计算机识别运行
C:C语言不允许直接访问物理地址,不可以直接对硬件进行操作
D:C语言程序只需编译,不需连接即可被计算机运行
正确答案: 【C语言允许直接访问物理地址,可以直接对硬件进行操作】
9、下面不是算法特征的是( )。
A:继承性
B:有穷性
C:确定性
D:可行性
正确答案: 【继承性】
10、关于C语言,下面叙述不正确的是()。
A:既具有高级语言的特点,又具有汇编语言的特点
B:既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序
C:语法限制不太严格,例如,对数组下标越界不作检查
D:不用编译可以直接运行
正确答案: 【不用编译可以直接运行】
11、下面选项()不属于结构化程序设计原则。
A:自顶向下
B:逐步求精
C:程序模块化
D:不限制GOTO语句使用
正确答案: 【不限制GOTO语句使用】
12、下面选项中,( )不属于程序的特性。
A:目的性
B:有序性
C:有限性
D:可操作性
E:实用性
正确答案: 【实用性】
13、计算机只能完成其能力范围内的计算工作,超出计算机能力范围的计算计算机将无法完成。
A:正确
B:错误
正确答案: 【正确】
14、可计算问题的规模造成复杂度加大,理论上计算机可以完成的计算工作,实际计算机都可以完成。
A:正确
B:错误
正确答案: 【错误】
15、程序是计算机为完成某一任务所必须执行的一系列指令的有序集合。
A:正确
B:错误
正确答案: 【正确】
16、高级语言是用接近自然语言的符号,按照一定的语法规则编写程序,需要编译程序翻译成机器指令才能被计算机执行。
A:正确
B:错误
正确答案: 【正确】
17、编译方式下的程序当修改源程序后,需要重新编译才能够正确运行。
A:正确
B:错误
正确答案: 【正确】
18、面向对象程序设计方法具有与人们的习惯与思维方法一致,便于解决复杂问题的特性。
A:正确
B:错误
正确答案: 【正确】
19、C语言属于面向过程的优秀程序设计语言,既可作为系统设计语言,也可作为应用程序设计语言。
A:正确
B:错误
正确答案: 【正确】
20、算法可以分为数值算法和非数值算法两大类。
A:正确
B:错误
正确答案: 【正确】
21、对于同一个问题,只能有唯一的算法去解决。
A:正确
B:错误
正确答案: 【错误】
22、C语言中不区分大小写字母。
A:正确
B:错误
正确答案: 【错误】
23、程序中适当地添加注释,可以增加程序的可读性和清晰性。
A:正确
B:错误
正确答案: 【正确】
24、在VC++6.0环境下,任何一个C程序都必须包含在一个工程项目中,而且只能有一个main函数。
A:正确
B:错误
正确答案: 【正确】
25、经过编译、连接后的可执行程序可以多次运行。
A:正确
B:错误
正确答案: 【正确】
26、C语言开发工具直接输入的程序代码是____文件,经过编译后生成的是目标程序文件, 经过连接后生成的是可执行程序文件。
正确答案: 【(以下答案任选其一都对)源;
源程序】
27、C语言源程序的基本组成单位是_____。
正确答案: 【函数】
28、结构化程序设计所规定的三种基本控制结构是顺序结构、_____结构和循环结构。
正确答案: 【(以下答案任选其一都对)选择;
分支】
29、算法的效率通常由_____复杂度和空间复杂度衡量。
正确答案: 【时间】
30、描述算法的方法主要有_____、专用工具(传统流程图、N-S流程图)和伪代码等。
正确答案: 【自然语言】
31、计算机系统由硬件系统和______系统两部分组成。
正确答案: 【软件】
32、计算机语言分为:机器语言、汇编语言和___语言。
正确答案: 【高级】
33、程序的执行方式分为___和解释两种方式。
正确答案: 【编译】
34、衡量算法的时间复杂度是指对于相同规模的问题,算法的执行_的长短。
正确答案: 【时间】
35、在VC++2010环境下,任何一个C程序都必须包含在一个工程项目中,而且只能有一个main函数。
A:正确
B:错误
正确答案: 【正确】
【作业】第1 周 程序设计与C语言简介 第1周在线编程作业
1、Hello World
建议:【本题是主观题,暂无解析】
2、我爱编程
建议:【本题是主观题,暂无解析】
3、计算两个整数的乘积
建议:【本题是主观题,暂无解析】
第2周 变量及表达式 第2周单元测验
1、关于变量定义,下面说法错误的是()。
A:变量的类型确定了变量占据的存储单元的大小
B:确定了变量的名字
C:确定了变量中的内容
D:确定了变量的表数范围
正确答案: 【确定了变量中的内容】
2、sizeof(float)的执行结果是()。
A:一种函数调用
B:一个浮点表达式
C:一个不合法的表达式
D:一个整型表达式
正确答案: 【一个整型表达式】
3、若有 float x=2,y=5.6;则表达式 (int)x%(int)y将完成()。
A:将x和y的类型转换为整型
B:将x和y的的表达式的类型转换为整型,完成求余运算
C:不能进行求余运算
D:将x的值的类型转换为整型
正确答案: 【将x和y的的表达式的类型转换为整型,完成求余运算】
4、下列叙述正确的是()。
A:C语言中的数据的类型不同,在内存中占据相同长度的存储单元
B:C语言中的数据的类型不同,在内存中占据不同长度的存储单元
C:C语言中的常量是没有类型的
D:C语言中的数据的类型不同,但取值范围都是相同的
正确答案: 【C语言中的数据的类型不同,在内存中占据不同长度的存储单元】
5、下列关于C语言用户标识符的叙述中正确的是()。
A:用户标识符中可以出现下划线和中划线(减号)
B:用户标识符中不可以出现中划线,但可以出现下划线
C:用户标识符中可以出现下划线,但不可放在标识符开头
D:用户标识符中可以出现下划线和数字,它们都可放在用户标识符的开头
正确答案: 【用户标识符中不可以出现中划线,但可以出现下划线】
6、下列转义字符中,错误的是()。
A:’ \0xa5′
B:’\031′
C:’\b’
D: ‘\"’
正确答案: 【‘ \0xa5’】
7、字符串 "\\abcd\\"在内存中占用的字节数是()。
A:14
B:9
C:10
D:11
正确答案: 【10】
8、已知梯形的上底为a,下底为b,高为h,用C语言书写的正确的面积公式是()。
A:1/2(a+b)h
B:1.0/2(a+b)h
C:1.0/2.0(a+b)h
D:1.0\2a+bh
正确答案: 【1.0/2(a+b)h】
9、与k=n++完全等价的表达式是()。
A:n=n+1, k=n
B:k+=n+1
C:k=++n
D: k=n, n=n+1
正确答案: 【 k=n, n=n+1】
10、下面关于C语言标识符的命名规则叙述中不准确的是()。
A:只能由字母、数字和下划线组成
B:首字符必须为字母或下划线
C:不区分大小写字母
D:不能使用系统的保留字
正确答案: 【不区分大小写字母】
11、关于定点数和浮点数的说法,下列说法错误的是()。
A:在计算机中通常用定点数表示整数和纯小数
B:用浮点数表示既有整数部分、又有小数部分的实数
C:浮点数表示的数即是数值的精确值
D:定点数表示数据的范围有限
正确答案: 【浮点数表示的数即是数值的精确值】
12、以下哪种运算能从变量x中取得十进制最低位的数字( )。
A:x/10
B:x%10
C:x*10
D:10/x
正确答案: 【x%10】
13、以下哪个数字占据的空间最大( )。
A:32768
B:‘3’
C:32768.0
D:32768.0F
正确答案: 【32768.0】
14、以下哪个字母不能在常量数字后面表示类型()。
A:F
B:U
C:L
D:X
正确答案: 【X】
15、以下哪个数字的值最大( )。
A:10
B:010
C:0x10
D:10.0
正确答案: 【0x10】
16、下列哪个不是有效的字符常量()。
A:‘ ’
B:‘\’‘
C:’1′
D:"1"
正确答案: 【"1"】
17、C语言的关键字是由C语言规定的、具有特定功能的固定字母组合,也称为保留字,共计32个。
A:正确
B:错误
正确答案: 【正确】
18、变量是在程序执行期间其值可以改变的量,必须先定义后使用。
A:正确
B:错误
正确答案: 【正确】
19、变量被定义后没有赋值,其单元内容不可以使用,是内存中的随机数。
A:正确
B:错误
正确答案: 【正确】
20、变量的初始化是指在定义时对其赋值。
A:正确
B:错误
正确答案: 【正确】
21、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
A:正确
B:错误
正确答案: 【正确】
22、定义变量时的变量的类型决定变量占据存储单元的大小和数据的表数范围。
A:正确
B:错误
正确答案: 【正确】
23、变量中只能存放指定类型的数据,程序运行过程中可以改变变量的类型。
A:正确
B:错误
正确答案: 【错误】
24、当存储单元溢出时,数据的值不会受到影响,只会丢掉超过的部分。
A:正确
B:错误
正确答案: 【错误】
25、当有若干运算符同时出现在表达式中时,运算符的优先级规定了运算的先后次序。
A:正确
B:错误
正确答案: 【正确】
26、当若干具有相同优先级的运算符相邻出现在表达式中时,结合性规定了运算的先后次序。
A:正确
B:错误
正确答案: 【正确】
27、在C语言中,对于整型变量采用有符号数和___数两种存储形式。
正确答案: 【无符号】
28、当赋值语句右边表达式类型与左边变量类型不一致时,以_类型为准。
正确答案: 【左边变量】
29、若有定义:char c=’\010′;则变量C中包含的字符个数为_____个。
正确答案: 【1】
30、若有变量定义: char w;int x;float y;double z;则表达式w*x+z-y的结果为_____类型。
正确答案: 【(以下答案任选其一都对)double;
双精度】
31、设int w=5;w+=-2; 则w的值为_____。
正确答案: 【3】
32、已知 i=5;写出语句 i+=012;执行后整型变量 i 的十进制值是_____。
正确答案: 【15】
33、在C语言中的实型变量分为float型和double型,按浮点数进行存储,分为数符、_和尾数几部分。
正确答案: 【阶码】
34、设k=a=5,b=3,a*b,则表达式的值为_____。
正确答案: 【15】
35、设有变量定义:int i=3,j=5;float x=2.5; double y=5.0;则表达式 y+=i-=j*=++x;的计算结果为__。
正确答案: 【(以下答案任选其一都对)-9.0;
-9.000000】
36、设有变量定义:char a=’a’; int i=3, j=5;则表达式 a=a+i, a+j 的值为__。
正确答案: 【105】
37、C语言中用一个符号代表一个常量的量称为__常量。
正确答案: 【符号】
38、设有变量定义:float x=2.5;double y=5.0;则表达式 (int)x / (int)y+y的值为______。
正确答案: 【5.0】
【作业】第2周 变量及表达式 第2周编程作业
1、计算圆的面积
建议:【本题是主观题,暂无解析】
2、计算平方根
建议:【本题是主观题,暂无解析】
3、输出逆序数
建议:【本题是主观题,暂无解析】
第3周 数据的输入与输出 第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("a\rHappi\by");在屏幕上正确的输出形式是()。
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=%d",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; inti;选择正确的输入格式为( )。
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,k=%c,j=%d",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( ) { doublex=68.7563, y= -789.127;printf ("%f, %10.2f", 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.2f",y+x,y-x);
B:printf("x=%8.6f,y=%8.6f",x,y); printf("y+x=%4.2f,y-x=%4.2f",y+x,y-x);
C:printf("x=%7.2f,y=%7.2f",x,y); printf("y+x=%3.2f,y=%3.2f",y+x,y-x);
D:printf("x=%f,y=%f",&x,&y); printf("y+x=%f,y=%f",y+x,y-x);
正确答案: 【printf("x=%8.6f,y=%8.6f",x,y); printf("y+x=%4.2f,y-x=%4.2f",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( ){doublex,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 %d\nx=%6.2f,y=%6.2f”;
“s1=%c,ASCII is %d\nx=%.2f,y=%.2f”;
“s1=%c,ASCII is %d\nx=%6.2lf,y=%6.2lf”;
“s1=%c,ASCII is %d\nx=%.2lf,y=%.2lf”;
“s1=%c,ASCII is %d\nx=%6.2f,y=%6.2f\n”;
“s1=%c,ASCII is %d\nx=%.2f,y=%.2f\n”;
“s1=%c,ASCII is %d\nx=%6.2lf,y=%6.2lf\n”;
“s1=%c,ASCII is %d\nx=%.2lf,y=%.2lf\n”】
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’;
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、在格式说明符中,当%后边出现______,表示要跳过相应的数据,是附加说明符。
正确答案: 【(以下答案任选其一都对)*;
星号】
28、若要将数据以指数形式输出,应该选择______格式符。
正确答案: 【(以下答案任选其一都对)e;
E】
【作业】第3周 数据的输入与输出 第3周编程作业
1、交换两个变量
建议:【本题是主观题,暂无解析】
2、输出字符ASCII码
建议:【本题是主观题,暂无解析】
3、求一元二次方程的两个实根
建议:【本题是主观题,暂无解析】
4、计算银行存款本息
建议:【本题是主观题,暂无解析】
第4周 选择结构程序设计 第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("%d", 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,%d",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】
【作业】第4周 选择结构程序设计 第4周编程作业
1、大小写字母转换
建议:【本题是主观题,暂无解析】
2、计算分段函数
建议:【本题是主观题,暂无解析】
3、百分制成绩转换为五级分制成绩
建议:【本题是主观题,暂无解析】
4、输出水仙花数
建议:【本题是主观题,暂无解析】
第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; sum=0,fac; for(i=1;i<=10;i++) {fac=1; for(j=1;j<=i;j++) fac=fac*j; sum=sum+1/fac; } printf("%f",sum); return 0;}
正确答案: 【(以下答案任选其一都对)double;
float】
24、下面程序计算并输出1100之间(包括100)能被3整除同时能被7整除余3的所有数之和,请完善程序 。#include <stdio.h>int main( ){ int sum=0,i; i=1; while ( ) { if (i%3==0&&i%7==3) sum=sum+i;i++;} printf("sum=%d",sum);return 0;}
正确答案: 【(以下答案任选其一都对)i<=100;
i<101】
25、下面程序计算并输出500以内最大的10个能被13或17整除的自然数之和。请完善程序。 #include <stdio.h>int main ( ){int m=0, mc=0, k=500; while (k >= 1 && ) { if (k%13== 0 || k%17 == 0){m=m+k;mc++;}k–; } printf("sum=%d",m); return 0;}
正确答案: 【(以下答案任选其一都对)mc<10;
mc<=9】
第6周 循环程序设计实例 第6周 单元测验
1、从循环体内某一层跳出,继续执行循环外的语句是()。
A:continue语句
B:空语句
C:break语句
D:if语句
正确答案: 【break语句】
2、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是()。
A:break语句可以一次性跳出多层嵌套循环
B:break语句只能跳出所在层循环
C:continue语句可以一次性跳出多层嵌套循环
D:continue语句只能跳出所在层循环
正确答案: 【break语句只能跳出所在层循环】
3、以下正确的描述是()。
A:只能在循环体内和switch语句内使用break语句。
B:continue语句的作用是终止整个循环的执行。
C:从多层嵌套的外层循环中退出时,只能使用goto语句。
D:在循环体内使用break和continue语句的作用相同。
正确答案: 【只能在循环体内和switch语句内使用break语句。】
4、下面程序的运行结果是()。#include <stdio.h>int main( ){ int i,j,sum; for(i=2;i<7;i++) { sum=1; for( j=i;j<7;j++)sum=sum+j; } printf("%d",sum); return 0;}
A:48
B:49
C:1
D:7
正确答案: 【7】
5、下面程序的运行结果是()。#include <stdio.h> int main( ){ int i=10,s=0; while(i>0) { if(i%3==0) continue;s=s+i; i–;} printf("s=%d",s); return 0;}
A:死循环
B:55
C:37
D:10
正确答案: 【死循环】
6、下面程序的运行结果是()。#include <stdio.h> int main( ){ int i=10,s=0;for(i=1;i<=10;i++){if(i%3!=0) continue; s=s+i; }printf("%d",s);return 0;}
A:死循环
B:55
C:37
D:18
正确答案: 【18】
7、下面程序的运行结果是()。#include <stdio.h>int main( ){int x=15; do{x–;} while(x–); printf("%d ",x–); return 0;}
A:0
B:1
C:-1
D:-2
正确答案: 【-1】
8、continue语句用于终止循环体的本次执行。
A:正确
B:错误
正确答案: 【正确】
9、break语句能够终止当前进行的多层循环。
A:正确
B:错误
正确答案: 【错误】
10、continue语句对于while和do-while循环来说,意味着转去计算While表达式。
A:正确
B:错误
正确答案: 【正确】
11、对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式3。
A:正确
B:错误
正确答案: 【正确】
12、continue语句在循环体中出现,其作用是结束本次循环,接着进行是否执行下一循环的判定。
A:正确
B:错误
正确答案: 【正确】
13、goto语句和break语句都能够实现使程序执行的流程从循环体内跳至循环体外。
A:正确
B:错误
正确答案: 【正确】
14、break终止包含该语句的最内层循环。
A:正确
B:错误
正确答案: 【正确】
15、在循环体内又包含一个循环语句,称为循环嵌套。
A:正确
B:错误
正确答案: 【正确】
16、for(表达式1;表达式2;表达式3),当执行循环体内的continue语句时,意味着转去执行表达式2。
A:正确
B:错误
正确答案: 【错误】
17、程序中遇到goto语句无条件跳到标号指定的位置继续执行。
A:正确
B:错误
正确答案: 【正确】
18、/程序的功能是:求1到10的阶乘的和/#include "stdio.h"int main (){int n,j,s=0,t;for(n=1;n<=10;n++){ ; for(j=1;j<=n;j++)t=t*j; s=s+t;} printf("s=%d",s); return 0;}
正确答案: 【t=1】
19、/程序的功能是:从键盘输入10个字符,输出其中数字字符/#include <stdio.h>int main( ){int i;char c;for(i=1;i<=10;i++){c=getchar( ); if(c< ‘0’ ||c> ‘9’) ; putchar(c);}return 0;}
正确答案: 【continue】
20、/用10元人民币兑换角币有多少种换法(角币有1角、2角、5角三种)。/#include
<stdio.h>int main( ) {int i,j,k,m=0; for(i=0;i<=20;i++)for(j=0;;j++)for(k=0;k<=100;k++) if(i5+j2+k==100){ m++;printf("i=%d,j=%d,k=%d",i,j,k);}printf("m=%d",m);return 0; }
正确答案: 【j<=50】
21、/程序的功能是:输出斐波那契数列前n项(n为偶数)。/#include <stdio.h>int main(){int i,n ;int a1=1,a2=1; scanf(“%d”,&n); printf( "%d%d", a1,a2); for ( i = 1; i<n/2; i++ ){ a1=;a2=a1+a2; printf( "%d%d", a1,a2);}return 0;}
正确答案: 【(以下答案任选其一都对)a1+a2;
a2+a1】
22、/编写打印以下图形的程序(行与行之间没有空行,第三行与左边界没有空格)。/ *#include <stdio.h>intmain(){ char c= ‘‘,s=’ ‘;int i,j;for(i=0;i<3;i++){ for(j= ;j>0; j–) printf("%c",s);for(j=0;j<2i+1;j++) printf("%c",c);printf(""); } return 0;}
正确答案: 【2-i】
【作业】第5周 循环结构程序设计 第5周 编程作业
1、用for语句实现判断并求和。
建议:【本题是主观题,暂无解析】
2、用do while 语句实现从键盘输入一组整数,求平均值。
建议:【本题是主观题,暂无解析】
3、用while语句实现计算圆周率 pi (3.14) 的近似值。
建议:【本题是主观题,暂无解析】
【作业】第6周 循环程序设计实例 第6周 编程作业
1、求两个整数的最大公约数。
建议:【本题是主观题,暂无解析】
2、找素数
建议:【本题是主观题,暂无解析】
3、斐波那契数列求和
建议:【本题是主观题,暂无解析】
第7周 一维数组及其引用 第7周 单元测试
1、若有说明int a[10],则对a数组元素的正确引用是( )。
A:a[10]
B:a[3.5]
C:a(5)
D:a[10-10]
正确答案: 【a[10-10]】
2、在C语言中,引用数组元素时,其数组下标的数据类型不允许的是()。
A:整型常量
B:正整型常量表达式
C:整型变量表达式
D:任何类型的表达式
正确答案: 【任何类型的表达式】
3、对以下说明语句的正确理解是()。int a[10]={6,7,8,9,10};
A:将5个初值依次赋给a[1]至a[5]
B:将5个初值依次赋给a[0]至a[4]
C:将5个初值依次赋给a[6]至a[10]
D:因为数组长度与初值的个数不相同,所以此语句不正确
正确答案: 【将5个初值依次赋给a[0]至a[4]】
4、现有如下程序,则程序的输出结果为()。#include <stdio.h>int main( ){ int k[30]={12,324,45,6,768,98,21,34,453,456};int count=0,i=0;while(k[i]){if(k[i]%2==0‖k[i]%5==0) count++; i++; }printf("%d,%d",count,i); return 0;}
A:7,8
B:8,8
C:7,10
D:8,10
正确答案: 【8,10】
5、以下能对一维数组a进行初始化的正确语句是()。
A:int a[10]=(0,0,0);
B:int a[10]={ };
C:int a[]={0};
D:int a[10]={0,1,2,3,4,5,6,7,8,9,10};
正确答案: 【int a[]={0};】
6、以下对一维整型数组a的正确说明是()。
A:int a(6);
B:int n=10,a[n];
C:int n;scanf(“%d”, &n);int a[n];
D:#define N 8int a[N];
正确答案: 【#define N 8int a[N]; 】
7、下面程序的运行结果是( )。#include <stdio.h>int main( ){int a[6],i;for(i=1;i<6;i++) {a[i]=9(i-2+4(i>3))%5;printf("%2d", a[i]);}return 0;}
A:-4 0 4 0 4
B:-4 0 4 0 3
C:-4 0 4 4 3
D:-4 0 4 4 0
正确答案: 【-4 0 4 4 3】
8、下面程序的运行结果是( )。#include <stdio.h>int main( ){int x[3],i,j,k;for(i=0;i<3;i++) x[i]=0;k=3;for (i=0;i<k;i++)for (j=0;j<k;j++) x[j]=x[j]+1;printf("%d",x[2]); return0;}
A:2
B:0
C:1
D:3
正确答案: 【3】
9、下面程序的运行结果是()。#include <stdio.h>int main( ){int a[10],i,k=1;for(i=0;i<10;i++) a[i]=i;for (i=1;i<6;i++)k+=a[i]+i;printf("%d",k);return 0;}
A:32
B:20
C:31
D:33
正确答案: 【31】
10、若有以下程序段,则数值为3的表达式()。int x[12]={1,2,3,4,5,6,7,8,9,10};char c=‘a’,d,f;
A:x[g-c]
B:x[3]
C:x[‘d’-‘c’]
D:x[‘d’-‘b’]
正确答案: 【x[‘d’-‘b’]】
11、数组定义int a[10];也可以写成 int a(10)。
A:正确
B:错误
正确答案: 【错误】
12、在对全部数组元素赋初值时,可以不指定数组长度。
A:正确
B:错误
正确答案: 【正确】
13、数组定义int a[10]; 表示数组名为a,此数组有10个元素,首元素为a[0]。
A:正确
B:错误
正确答案: 【正确】
14、如果对数组不赋初值,则数组元素取随机值。
A:正确
B:错误
正确答案: 【正确】
15、引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。
A:正确
B:错误
正确答案: 【正确】
16、若有int a[10]={6,7,8,9,10};,则是将5个初值依次赋给a[0]至a[4]。
A:正确
B:错误
正确答案: 【正确】
17、数组名的规定与变量名不相同。
A:正确
B:错误
正确答案: 【错误】
18、一个数组可以存放许多不同类型的数值。
A:正确
B:错误
正确答案: 【错误】
19、数组的下标通常是float型。
A:正确
B:错误
正确答案: 【错误】
20、数组可以声明为任何数据类型。
A:正确
B:错误
正确答案: 【正确】
21、下列程序的功能是输入N个实数,然后依次输出前l个实数和、前2个实数和、……前N个实数和。#defineN10#include <stdio.h> int main() { float f[N],x=0.0; int i;for(i=0;i<N;i++)scanf("%f", &f[i]);for(i=1;i<=N;i++){ ;printf("sum of NO %2d%f", i, x); }return 0;}
正确答案: 【(以下答案任选其一都对)x=x+f[i-1];
x+=f[i-1]】
22、下列程序的功能是输出数组s中最大元素的下标。#include <stdio.h> int main(){ int k,i; int s[]={3,-8,7,2,-1,4}; for(i=0,k=0;i<6;i++) if(s[i]>s[k]); printf("k=%d", k); return 0;}
正确答案: 【k=i】
23、以下程序以每一行输出4个数据的形式输出a数组。#include <stdio.h> int main(){ int a[20],i; for(i=0;i<20;i++)scanf("%d",&a[i]); for(i=0;i<20;i++) { if () printf(""); printf("%3d", a[i]); } printf(""); return 0;}
正确答案: 【(以下答案任选其一都对)i%4==0;
!(i%4)】
24、以下程序的功能是求数组num中小于零的数据之和。请填空。#include <stdio.h>int main(){ int num[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20}; int sum=0,i; for(i=0;i<20;i++) { if(num[i]<0) sum=; } printf("sum=%6d",sum); return 0;}
正确答案: 【(以下答案任选其一都对)num[i]+sum;
sum+num[i]】
25、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。#include <stdio.h>int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave; for(k=s=i=0;i<10;i++) { if(a[i]%2!=0) ; s+= a[i]; k++; } if(k!=0){ ave=s/k; printf("%d,%f",k,ave); } return 0;}
正确答案: 【continue】
26、输入10个整数,用选择法排序后按从小到大的次序输出。#include <stdio.h> #define N 10int main( ){int i,j,min,temp,a[N];for(i=0;i<N;i++)scanf("%d", &a[i]); printf(""); for(i=0;i<N-1;i++) { min=i; for(j=i;j<N;j++)if(a[min]>a[j]) ; temp=a[i]; a[i]=a[min]; a[min]=temp; } for (i=0;i<N;i++) printf("%5d",a[i]); printf(""); return 0;}
正确答案: 【min=j】
【作业】第7周 一维数组及其引用 第7周 编程作业
1、逆序存放数据。
建议:【本题是主观题,暂无解析】
2、找出一维整型数组中的次最大值。
建议:【本题是主观题,暂无解析】
3、调整最大值的位置。
建议:【本题是主观题,暂无解析】
第8周 二维数组与字符数组 第8周 单元测试