C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试

臣久骨瞳离腹梗穷诫领亮粉呕


第1 周 程序设计与C语言简介 第1周单元测验

1、 通常把高级语言源程序翻译成目标程序的程序称为(   )。

答案: 编译程序

2、 一个算法应该具有”确定性”等5个特性,下面对另外4个特性的描述中错误的是()。 

答案: 有零个或多个输出

3、 结构化程序由三种基本结构组成,三种基本结构组成的算法,(  )。

答案: 可以完成任何复杂的任务

4、 C语言规定,在一个源程序中,main函数的位置()。

答案: 可以任意

5、 以下叙述正确的是()。

答案: C语言本身没有输入输出语句

6、 一个C程序的执行是从()。

答案: 本程序的main函数开始,到main函数结束

7、 以下叙述中正确的是 ()。

答案: C程序中注释部分可以出现在程序中任意合适的地方

8、 以下叙述正确的是(    )。

答案: C语言允许直接访问物理地址,可以直接对硬件进行操作

9、 下面不是算法特征的是( )。

答案: 继承性

10、 关于C语言,下面叙述不正确的是()。

答案: 不用编译可以直接运行

11、 下面选项()不属于结构化程序设计原则。

答案: 不限制GOTO语句使用

12、 下面选项中,( )不属于程序的特性。

答案: 实用性

13、 计算机只能完成其能力范围内的计算工作,超出计算机能力范围的计算计算机将无法完成。

答案: 正确

14、 可计算问题的规模造成复杂度加大,理论上计算机可以完成的计算工作,实际计算机都可以完成。 

答案: 错误

15、 程序是计算机为完成某一任务所必须执行的一系列指令的有序集合。

答案: 正确

16、 高级语言是用接近自然语言的符号,按照一定的语法规则编写程序,需要编译程序翻译成机器指令才能被计算机执行。

答案: 正确

17、 编译方式下的程序当修改源程序后,需要重新编译才能够正确运行。

答案: 正确

18、 面向对象程序设计方法具有与人们的习惯与思维方法一致,便于解决复杂问题的特性。

答案: 正确

19、 C语言属于面向过程的优秀程序设计语言,既可作为系统设计语言,也可作为应用程序设计语言。

答案: 正确

20、 算法可以分为数值算法和非数值算法两大类。

答案: 正确

21、 对于同一个问题,只能有唯一的算法去解决。

答案: 错误

22、 C语言中不区分大小写字母。

答案: 错误

23、 程序中适当地添加注释,可以增加程序的可读性和清晰性。

答案: 正确

24、 在VC++6.0环境下,任何一个C程序都必须包含在一个工程项目中,而且只能有一个main函数。

答案: 正确

25、 经过编译、连接后的可执行程序可以多次运行。

答案: 正确

26、 C语言开发工具直接输入的程序代码是____文件,经过编译后生成的是目标程序文件, 经过连接后生成的是可执行程序文件。
答案: (以下答案任选其一都对)源;
源程序

27、 C语言源程序的基本组成单位是_____。
答案: 函数

28、 结构化程序设计所规定的三种基本控制结构是顺序结构、_____结构和循环结构。
答案: (以下答案任选其一都对)选择;
分支

 

29、 算法的效率通常由_____  复杂度和空间复杂度衡量。
答案: 时间

30、 描述算法的方法主要有_____、专用工具(传统流程图、N-S流程图)和伪代码等。
答案: 自然语言

31、 计算机系统由硬件系统和______系统两部分组成。
答案: 软件

32、 计算机语言分为:机器语言、汇编语言和___语言。
答案: 高级

33、 程序的执行方式分为___和解释两种方式。
答案: 编译

34、 衡量算法的时间复杂度是指对于相同规模的问题,算法的执行_的长短。
答案: 时间

 

第2周 变量及表达式 第2周单元测验

1、 关于变量定义,下面说法错误的是()。

答案: 确定了变量中的内容

2、 sizeof(float)的执行结果是()。

答案: 一个整型表达式

3、 若有 float x=2,y=5.6;则表达式 (int)x%(int)y将完成(  )。

答案: 将x和y的的表达式的类型转换为整型,完成求余运算

4、 下列叙述正确的是(    )。

答案: C语言中的数据的类型不同,在内存中占据不同长度的存储单元

5、 下列关于C语言用户标识符的叙述中正确的是(    )。

答案: 用户标识符中不可以出现中划线,但可以出现下划线

6、 下列转义字符中,错误的是(    )。

答案: ‘ \0xa5’

7、 字符串 “\\abcd\\”在内存中占用的字节数是(    )。

答案: 10

8、 已知梯形的上底为a,下底为b,高为h,用C语言书写的正确的面积公式是(    )。

答案: 1.0/2(a+b)h

9、 与k=n++完全等价的表达式是(    )。

答案:  k=n, n=n+1

10、 下面关于C语言标识符的命名规则叙述中不准确的是()。

答案: 不区分大小写字母

11、 关于定点数和浮点数的说法,下列说法错误的是()。

答案: 浮点数表示的数即是数值的精确值

12、 以下哪种运算能从变量x中取得十进制最低位的数字( )。

答案: x%10

13、 以下哪个数字占据的空间最大(   )。

答案: 32768.0

14、 以下哪个字母不能在常量数字后面表示类型(  )。

答案: X

15、 以下哪个数字的值最大( )。

答案: 0x10

16、 下列哪个不是有效的字符常量(  )。

答案: “1”

17、 C语言的关键字是由C语言规定的、具有特定功能的固定字母组合,也称为保留字,共计32个。

答案: 正确

18、 变量是在程序执行期间其值可以改变的量,必须先定义后使用。

答案: 正确

19、 变量被定义后没有赋值,其单元内容不可以使用,是内存中的随机数。

答案: 正确

20、 变量的初始化是指在定义时对其赋值。

答案: 正确

21、 变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。

答案: 正确

22、 定义变量时的变量的类型决定变量占据存储单元的大小和数据的表数范围。

答案: 正确

23、 变量中只能存放指定类型的数据,程序运行过程中可以改变变量的类型。

答案: 错误

24、 当存储单元溢出时,数据的值不会受到影响,只会丢掉超过的部分。

答案: 错误

25、 当有若干运算符同时出现在表达式中时,运算符的优先级规定了运算的先后次序。

答案: 正确

26、 当若干具有相同优先级的运算符相邻出现在表达式中时,结合性规定了运算的先后次序。 

答案: 正确

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

 

第3周 数据的输入与输出 第3周单元测验

1、 若变量已正确定义,执行语句scanf(“%d,%d,%d  “,&k1,&k2,&k3);时,正确的数据输入方法是(   )。

答案: 20,30,40

2、 printf(“a\rHappi\by”);在屏幕上正确的输出形式是(  )。 

答案: Happy

3、 若定义字符变量c1的值是’A’,c2的值是’D’,执行语句printf(“%d,%d”,c1,c2-2);后,输出结果是(  )。 

答案: 65,66

4、 以下程序的输出结果是()。 int main(){   float x=3.6;   int i;   i=(int)x;    printf(“x=%f,i=%d”,x,i);   return 0;}

答案: x=3.600000,i=3

5、 已定义double a; int  i;选择正确的输入格式为(   )  。

答案: scanf(“%6lf%3d”,&a,&i);

6、 已有定义char 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; }

答案: 10a15<回车>

8、 运行下面的程序,正确的输出结果是( )。#include <stdio.h> int main( ) {         double  x=68.7563, y= -789.127;          printf (“%f, %10.2f”, x,y);          return 0; }

答案: 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

答案: printf(“x=%8.6f,y=%8.6f”,x,y); printf(“y+x=%4.2f,y-x=%4.2f”,y+x,y-x);

10、 C语言中本身没有提供专门的输入输出语句,输入输出通过调用函数完成。 

答案: 正确

11、 输入数据时不能指定数据的精度。

答案: 正确

12、 输入数据时不可以指定数据的宽度。

答案: 错误

13、 混合输入数值型数据和字符型数据时,数据之间不能加空格。

答案: 正确

14、 使用getchar()函数可以一次接受多个字符。

答案: 错误

15、 在使用标准的输入/输出库函数时,应该在程序的开头使用编译预处理命令“#include <stdio.h>”。

答案: 正确

16、 字符型数据存储其ASCII码值,占一个字节,在ASCII范围内与整数通用。

答案: 正确

17、 输入数据时可以有多种方法分隔多个输入数据。

答案: 正确

18、 程序的顺序结构是指按照解决问题的顺序写出相应的语句,程序执行顺序按照自上而下,依次按顺序执行。

答案: 正确

19、 若在输入格式控制字符串中包含普通字符,则输入时必须照原样输入普通字符,否则将导致输入错误。

答案: 正确

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 %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

 

 

第4周 选择结构程序设计 第4周 单元测验

1、 下列运算符优先级最高的是( )。 

答案: +

2、 若给定条件表达式(m)?(a++):(a–),则其中表达式m()。

答案: 和(m!=0)等价

3、 C语言中以下几种运算符的优先次序()的排列是正确的。

答案: 由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符

4、 C语言中,switch后的括号内表达式(  )。

答案: 只能为整型,字符型或枚举型

5、 C语言的switch语句中case后边(  )。

答案: 只能为常量或常量表达式

6、 执行下面程序段后,k的值是:( )。int k=2;switch(k+1){    case 3:k+=1;    case 4:k–;break;    case 5:k*=3;    case 6:++k;}

答案: 2

7、 执行下面程序段后,ch的值是( )。char ch=’a’;ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;

答案: 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;}

答案: 9

9、 下列表达式中,值为0的表达式是(    )。

答案:  6>5>4

10、 下列表达式中,结果为1的表达式是(    )。

答案:  !0==1     

11、 设int a=3;,则表达式a<1&&–a>1的运算结果和a的值分别是(    )。

答案: 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);

答案: 1,2,1

13、 判断char型变量ch是否为小写字母的正确表达式是()。

答案: (ch>=’a’)&&(ch<=’z’)

14、 能正确表达逻辑关系“0<a<1并且0<b<1”的表达式是(0<a<1)&&(0<b<1)。

答案: 错误

15、 所有逻辑运算符的优先级都高于关系运算符。

答案: 错误

16、 在switch语句中,switch与case后的表达式可以为任意类型。

答案: 错误

17、 在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。

答案: 错误

18、  在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。

答案: 正确

19、 switch语句嵌套使用时,一条break语句可用于跳出所有嵌套switch语句。

答案: 错误

20、 在a>b?a+b:a-b 表达式中,若a>b,则条件表达式的值为a+b的值,否则为a-b的值。

答案: 正确

21、 条件运算符的优先级低于算术运算符、关系运算符及逻辑运算符,高于赋值运算符和逗号运算符。

答案: 正确

22、 同一个switch语句中各个常量表达式的值必须互不相等,且只能是常量。

答案: 正确

23、 C语言没有逻辑型数据,关系表达式的真、假是以数值“1”代表“真”,以“0”代表“假”,即非0为真(true),0为假(false)。

答案: 正确

24、 并非所有的if语句都有等价的switch语句,switch语句只能用来实现以相等关系作为选择条件的多分支结构。

答案: 正确

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;}

答案: 死循环‍

2、 执行语句 for(i=1;i++<4;) ; 后变量 i 的值是(   )。

答案: 5

3、 关于下面程序段,正确的是(  )。int k=10;while(!k)  k–;

答案: 循环体一次也不执行

4、 下面程序的运行结果是(     )。#include <stdio.h>int main( ){   int x=3;   do{   printf(“%3d”,x-=2);   }while(!(–x));   return 0;}

答案: 1 -2

5、 下面程序的运行结果是(  )。#include <stdio.h>int main( ){   int i=0,sum=0;   while(i++<6)       sum+=i;   printf(“%d”,sum);   return 0;}

答案: 21

6、 下面程序的运行结果是(   )。#include <stdio.h>int main( ){   int i=10;   while(i–>0);     printf(“%d “,i);   return 0;}

答案: -1

7、 已定义int j; 下面程序段的输出结果是(  )。for(j=7;j<10;j++) printf(“%d”,j);

答案: 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;}

答案: 32

9、 下面程序的输出结果是(   )。#include <stdio.h>int main( ){   int j,s;    for(j=1;j<=7;j++)     s=s+j;   printf(“%d”,s);}

答案: 不确定

10、 已定义int j,s; 则下面程序段的输出结果是(     )。int j,s;for(j=1,s=0;j<=5;j++)  s*=j;printf(“%d”,s);

答案: 0

11、 while循环语句至少无条件执行一次循环体。

答案: 错误

12、 for循环语句只能用于循环次数已经确定的情况。

答案: 错误

13、 do while循环语句中,根据情况可以省略关键字while。

答案: 错误

14、 do while循环语句至少无条件执行一次循环体。

答案: 正确

15、 for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。

答案: 正确

16、 do-while循环由do开始,while结束,在while(表达式)后面加分号。

答案: 正确

17、 for循环的三个表达式中间用逗号相分隔,并且不能省略。

答案: 错误

18、 do while循环语句的特点是先执行循环体,然后判断循环条件是否成立。

答案: 正确

19、 while循环语句和do while循环语句在任何情况下都可以互换。

答案: 错误

20、 for循环的三个表达式中间用分号相分隔,第一个表达式执行一次。

答案: 正确

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、 下面程序计算并输出1C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第1张100之间(包括100)能被3整除同时能被7整除余3的所有数之和,请完善程序 。#incl‍ude <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

 

 



上方为免费预览版答案,如需购买完整答案,请点击下方红字

点击这里,购买完整版答案


 

点关注,不迷路,微信扫一扫下方二维码

关注我们的公众号:阿布查查  随时查看答案,网课轻松过

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第2张


为了方便下次阅读,建议在浏览器添加书签收藏本网页

电脑浏览器添加/查看书签方法

1.按键盘的ctrl键+D键,收藏本页面

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第3张

2.下次如何查看收藏的网页?

点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第4张


手机浏览器添加/查看书签方法

一、百度APP添加/查看书签方法

1.点击底部五角星收藏本网页

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第5张

2.下次如何查看收藏的网页?

点击右上角【┇】-再点击【收藏中心】查看

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第6张

二、其他手机浏览器添加/查看书签方法

1.点击【设置】-【添加书签】收藏本网页

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第7张

2.下次如何查看收藏的网页?

点击【设置】-【书签/历史】查看收藏的网页

C语言程序设计(董明) 中国大学mooc答案满分完整版章节测试第8张

啡吹晦牛魄边扭罕纹笔房慑旗