C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版

嘲铂力缔艰斡尘实灵识坏鸡蒂

第1章C语言概述

第1章C语言概述测验

1、单选题:
‎C语言程序的基本单位是( )。‍

A: 函数
B: 过程
C: 子程序
D: 子例程
答案:  函数

2、单选题:
‏下列各选项中,合法的c语言关键字是( )。‍

A: integex
B: sin
C: string
D: void
答案:  void

3、单选题:
‍C语言的程序一行写不下时,应该( )。‍

A: 用回车符换行
B: 在任意一个空格处换行
C: 用分号换行
D: 用逗号换行
答案:  用回车符换行

4、单选题:
‍下列叙述不正确的是( )‍

A: 在c程序中,%是只能用于整数运算的运算符
B: 在C程序中,无论是整数还是实数,都能正确无误地表示
C: 若a是实型变量,c程序中a=20是正确的,因此实型变量允许被整型常量赋值
D: 在C程序中,语句之间必须要用分号“;”分隔
答案:  在C程序中,无论是整数还是实数,都能正确无误地表示

5、单选题:
​以下选项中正确的整型常量是( )。‍

A: 34.1
B: -80
C: 2,000
D: 1 2 3
答案:  -80

6、单选题:
‍在C程序中,可以作为用户标识符的一组标识符是( )。​

A: voiddefine WORD
B: as_b3 _224 Else
C: switch _wel ease
D: 4b DO SIG
答案:  as_b3 _224 Else

7、单选题:
‍下列不合法的十六进制数是(    )‎

A: oxff
B: 0Xcde
C: 0x11
D: 0x23
答案:  oxff

8、单选题:
‎在c语言中,下列合法的字符常量是( )‏

A: ’39’
B: ‘x76’
C: ‘ab’
D: ‘o’
答案:  ‘x76’

9、单选题:
‎以下选项中合法的用户标识符是( )‌

A: int
B: a#
C: 5mem
D: _243
答案:  _243

10、单选题:
‏ ( )是构成c语言程序的基本单位‌

A: 函数
B: 变量
C: 子程序
D: 语句
答案:  函数

11、单选题:
​一个C语言程序总是从( )开始执行‏

A: 主过程
B: 主函数
C: 子程序
D: 主程序
答案:  主函数

12、单选题:
‌以下叙述不正确的是( )‏

A: 一个c源程序可由一个或多个函数组成
B: 一个C源程序必须包含一个main()函数
C: c程序的基本组成单位是函数
D: 在C程序中,注释说明只能位于一条语句的后面
答案:  在C程序中,注释说明只能位于一条语句的后面

13、单选题:
‏C语言规定:在一个源程序中,main()函数的位置( )​

A: 必须在最开始
B: 必须在系统调用的库函数的后面
C: 可以任意
D: 必须在最后
答案:  可以任意

14、单选题:
‎以下叙述正确的是( )‏

A: 在C程序中,main()函数必须位于程序的最前面
B: C程序的每行中只能写一条语句
C: C语言本身没有输入输出语句
D: 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案:  C语言本身没有输入输出语句

15、单选题:
‍在C语言中,数字O29是一个()‎

A: 八进制数
B: 十六进制数
C: 十进制数
D: 非法数
答案:  非法数

16、单选题:
‎C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( )‌

A: 必须为字母
B: 必须为下划线
C: 必须为字母或下划线
D: 可以是字母、数字和下划线中任意一种字符
答案:  必须为字母或下划线

17、单选题:
‏以下说法中正确的是( )‌

A: C语言程序总是从第一个的函数开始执行
B: 在C语言程序中,要调用的函数必须在main()函数中定义
C: C语言程序总是从main()函数开始执行
D: C语言程序中的main()函数必须放在程序的开始部分
答案:  C语言程序总是从main()函数开始执行

18、单选题:
‍C语言可执行程序的开始执行点是( )‌

A: 程序中的一条可执行语句
B: 程序中第一个函数
C: 程序中的main函数
D: 包含文件中的第一个函数
答案:  程序中的main函数

19、单选题:
​一个C程序的执行是从( )‏

A: 本程序的main函数开始,到main函数结束
B: 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C: 本程序的main函数开始,到本程序文件的最后一个函数结束
D: 本程序文件的第一个函数开始,到本程序main函数结束
答案:  本程序的main函数开始,到main函数结束

20、单选题:
‍以下叙述正确的是( )‌

A: 在C程序中,main函数必须位于程序的最前面
B: C程序的每行中只能写一条语句
C: C语言本身没有输入输出语句
D: 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案:  C语言本身没有输入输出语句

21、单选题:
​以下叙述不正确的是‏

A: 一个C源程序可由一个或多个函数组成
B: 一个C源程序必须包含一个main函数
C: C程序的基本组成单位是函数
D: 在C程序中,注释说明只能位于一条语句的后面
答案:  在C程序中,注释说明只能位于一条语句的后面

22、单选题:
‏以下叙述中错误的是________。‎

A: C语言编写的函数源程序,其文件名后缀可以是.C
B: C语言编写的函数都可以作为一个独立的源程序文件
C: C语言编写的每个函数都可以进行独立的编译并执行
D: 一个C语言程序只能有一个主函数
答案:  C语言编写的每个函数都可以进行独立的编译并执行

23、单选题:
‎以下叙述中正确的是‍

A: C程序中的注释只能出现在程序的开始位置和语句的后面
B: C程序书写格式严格,要求一行内只能写一个语句
C: C程序书写格式自由,一个语句可以写在多行上
D: 用C语言编写的程序只能放在一个程序文件中
答案:  C程序书写格式自由,一个语句可以写在多行上

24、单选题:
‎以下叙述中正确的是________。‍

A: C程序的基本组成单位是语句
B: C程序中的每一行只能写一条语句
C: 简单C语句必须以分号结束
D: C语句必须在一行内写完
答案:  简单C语句必须以分号结束

25、单选题:
‎以下关于C语言的叙述中正确的是‎

A: C语言中的注释不可以夹在变量名或关键字的中间
B: C语言中的变量可以在使用之前的任何位置进行定义
C: 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D: C语言的数值常量中夹带空格不影响常量值的正确表示
答案:  C语言中的注释不可以夹在变量名或关键字的中间

26、单选题:
‏有以下程序段‎‏#include “stdio.h”‎‏void main()‎‏ {  … ‎‏while(getchar()!=’n’);  ‎‏  … } ‎‏以下叙述中正确的是‎‏‎

A: 此while语句将无限循环
B: getchar()不可以出现在while语句的条件表达式中
C: 当执行此while语句时,只有按回车键循环才能停止
D: 当执行此while语句时,按任意键程序就能继续执行
答案:  当执行此while语句时,只有按回车键循环才能停止

27、单选题:
‏若有以下定义和语句 ‌‏char s1[10]=”abcd!”,*s2=”n123\”; ‌‏printf(“%d  %dn”,strlen(s1),strlen(s2)); ‌‏则输出结果是‌‏‌

A: 5 5
B: 105
C: 107
D: 58
答案:  5 5

28、单选题:
‏计算机能直接执行的程序是________。‎

A: 源程序
B: 目标程序
C: 汇编程序
D: 可执行程序
答案:  可执行程序

29、单选题:
​以下叙述正确的是‍

A: C语言程序是由过程和函数组成的
B: C语言函数可以嵌套调用,例如:fun(fun(x))
C: C语言函数不可以单独编译
D: C语言中除了main函数,其他函数不可作为单独文件形式存在
答案:  C语言函数可以嵌套调用,例如:fun(fun(x))

30、单选题:
‌计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是​

A: C语言程序仅可以编译执行
B: C语言程序仅可以解释执行
C: C语言程序既可以编译执行又可以解释执行
D: 以上说法都不对
答案:  C语言程序仅可以编译执行

31、单选题:
‌以下叙述中错误的是‌

A: C语言的可执行程序是由一系列机器指令构成的
B: 用C语言编写的源程序不能直接在计算机上运行
C: 通过编译得到的二进制目标程序需要连接才可以运行
D: 在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
答案:  在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

32、单选题:
‎以下叙述中错误的是​

A: C程序在运行过程中所有计算都以二进制方式进行
B: C程序在运行过程中所有计算都以十进制方式进行
C: 所有C程序都需要编译链接无误后才能运行
D: C程序中整型变量只能存放整数,实型变量只能存放浮点数
答案:  C程序在运行过程中所有计算都以十进制方式进行

33、单选题:
‍下列叙述中错误的是​

A: 一个C语言程序只能实现一种算法
B: C程序可以由多个程序文件组成
C: C程序可以由一个或多个函数组成
D: 一个C函数可以单独作为一个C程序文件存在
答案:  一个C语言程序只能实现一种算法

34、单选题:
​下列叙述中正确的是​

A: 每个C语言程序中都必须要有一个main()函数
B: 在C语言程序中main()函数的位置是固定的
C: C语言程序中所有函数之间都可以相互调用,与函数所在位置无关
D: 在C语言程序的函数中可以嵌套定义另一个函数
答案:  每个C语言程序中都必须要有一个main()函数

35、单选题:
‏以下叙述中错误的是‎

A: C语言是一种结构化程序设计语言
B: 使用三种基本结构构成的程序只能解决简单问题
C: 结构化程序设计提倡模块化的设计方法
D: 结构化程序由顺序、分支、循环三种基本结构组成
答案:  使用三种基本结构构成的程序只能解决简单问题

36、单选题:
‏以下叙述中正确的是‏

A: C语言程序将从源程序中第一个函数开始执行
B: 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C: C语言规定必须用main作为主函数名,程序从此开始执行,在此结束
D: main作为用户标识符,用以命名任意一个函数作为主函数
答案:  C语言规定必须用main作为主函数名,程序从此开始执行,在此结束

37、单选题:
‏以下叙述中错误的是‏

A: C语言源程序经编译后生成后缀为.obj的目标程序
B: C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C: 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
答案:  C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

38、单选题:
‏以下叙述中错误的是‍

A: C语句必须以分号结束
B: 复合语句在语法上被看作一条语句
C: 空语句出现在任何位置都不会影响程序运行
D: 赋值表达式末尾加分号就构成赋值语句
答案:  空语句出现在任何位置都不会影响程序运行

39、判断题:
‎C语言函数返回类型的默认定义类型是void‏

A: 正确
B: 错误
答案:  错误

40、判断题:
‍C语言的书写格式不会影响程序的可读性。‏

A: 正确
B: 错误
答案:  错误

41、判断题:
​C语言是一种非结构化程序设计语言。‎

A: 正确
B: 错误
答案:  错误

42、判断题:
​C语言程序在书写上只能是一条语句写一行。‏

A: 正确
B: 错误
答案:  错误

43、判断题:
‏C语言是一种具有某些低级语言特征的高级语言。‏

A: 正确
B: 错误
答案:  正确

44、判断题:
‎C语言程序中可以有多个函数,但只能有一个主函数。‎

A: 正确
B: 错误
答案:  正确

45、判断题:
​C语言程序实现与其他高级语言一样也要经过编辑、编译连接和运行这样的三步曲。‍

A: 正确
B: 错误
答案:  正确

46、判断题:
‎下划线是标识符中的合法字符。‍

A: 正确
B: 错误
答案:  正确

47、判断题:
​C语言的应用比较广泛,不仅可用来编写应用软件,而且可用来编写系统软件。‍

A: 正确
B: 错误
答案:  正确

第2章简单的C程序设计

第2章简单的C程序设计测验

1、单选题:
‏以下说法中正确的是() ‎

A: #define和printf都是C语句
B: #define是C语句,而printf不是
C: printf是C语句,但#define不是
D: #define和printf都不是C语句
答案:  #define和printf都不是C语句

2、单选题:
​以下程序段的输出结果是()‍​int a=1234; printf(“%2dn”,a);‍

A: 12
B: 34
C: 1234
D: 提示出错、无结果 
答案:  1234

3、单选题:
若有说明语句:int a,b,c,*d=&c; 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是( )​

A: scanf(“%d%d%d”,&a,&b,d);
B: scanf(“%d%d%d”,&a,&b,&d);
C: scanf(“%d%d%d”,a,b,d);
D: scanf(“%d%d%d”,a,b,*d); 
答案:  scanf(“%d%d%d”,&a,&b,d);

4、单选题:
​以下合法的赋值语句是()​

A: x=y=100;
B: d–;
C: x+y;
D: c=int(a+b); 
答案:  d–;

5、单选题:
‏设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是()‎‏ printf(“%d,%dn”,x–,–y);‎

A: 10,3
B: 9,3
C: 9,2
D: 10,2 
答案:  10,2 

6、单选题:
以下程序的输出结果是( )‏ #include<stdio.h>‏void main() ‏{ int a=3; ‏ printf(“%dn”,(a+=a-=a*a));‏ }‏

A: -6
B: 12
C: 0
D: -12
答案:  -12

7、单选题:
以下程序的输出结果是( )‏ #include<stdio.h>‏void main() ‏{ char c=’z’; ‏ printf(“%c”,c-25); ‏ }‏

A: a
B: Z
C: z-2
D: y 
答案:  a

8、单选题:
以下程序的输出结果是 ( )‌  #include<stdio.h>‌void main() ‌{ ‌int a=5,b=4,c=6,d; ‌ printf(“%dn”,d=a>b?(a>c?a:c):(b)); ‌ }‌

A: 5
B: 4
C: 6
D: 不确定
答案:  6

9、单选题:
以下程序的输出结果是( )‍ #include<stdio.h>‍void main() ‍{ int a=4,b=5,c=0,d; ‍ d=!a&&!b||!c; ‍ printf(“%dn”,d); ‍ }‍

A: 1
B: 0
C: 非0的数
D: -1 
答案:  1

10、单选题:
以下程序段的输出结果是( ) ​ char s[]=”\141141abct”; ​ printf (“%dn”,strlen(s));​

A: 9
B: 12
C: 13
D: 14 
答案:  9

11、单选题:
下列程序执行后的输出结果是( )‏ #include<stdio.h>‏void main() ‏{ int x=’f’; ‏printf(“%c n”,’A’+(x-‘a’+1)); ‏}‏

A: G
B: H
C: I
D: J
答案:  G

12、单选题:
下列程序执行后的输出结果是( )‍ #include<stdio.h>‍void main() ‍{ ‍char x=0xFF; ‍printf(“%d n”,x–); ‍}‍

A: -32767
B: FFFE
C: -1
D: -32768 
答案:  -1

13、单选题:
‎语句printf(“abre’hi’y\boun”);的输出结果是( ) (说明:’b’是退格符) ‎‎‎

A: abre’hi’y\bou
B: abre’hi’ybou
C: re’hi’you
D: abre’hi’ybou 
答案:  re’hi’you

14、单选题:
有以下程序 ‍ #include<stdio.h>‍void main() ‍{ int   a,b,c=246; ‍ a=c/100%9; ‍ b=(-1)&&(-1); ‍ printf(“%d,%dn”,a,b); ‍ }   ‍输出结果是( )‍

A: 2,1
B: 3,2
C: 4,3
D: 2,-1
答案:  2,1

15、单选题:
‏下列选项中,不正确的赋值语句是()​

A: ++t;
B: n1=(n2=(n3=0));
C: k=1=j;
D: a=b+c==1; 
答案:  k=1=j;

16、单选题:
以下程序的输出结果( )​ #include<stdio.h>​void main() ​{​int i=010,j=10;​printf(“%d,%dn”,++i,j–); ​}​

A: 11,10
B: 9,10
C: 010,9
D: 10,9 
答案:  9,10

17、单选题:
请选出以下语句的输出结果( )​ printf(“%dn”,strlen(“t 065xffn”))​

A:  5
B:  4
C:  8
D: 输出项不合法,无正常输出
答案:   4

18、单选题:
请读程序  ‏  int i =65536;    ‏printf(“%dn”,i); ‏‍上面程序的输出结果是()‏

A: 65535
B: 0
C: 有语法错误,无输出结果
D: 1 
答案:  0

19、单选题:
已知字符A的ASCII码为十进制的65,下面程序的输出是( )​ #include<stdio.h>​void main() ​{ ​ char ch1,ch2; ​ ch1=’A’+’5′-‘3′; ​ ch2=’A’+’6’-‘3’; ​ printf(“%d,%cn”,ch1,ch2);​ }​

A: 67,D
B: B,C
C: C,D
D: 不确定的值 
答案:  67,D

20、单选题:
若有定义和语句: ‌ char s[10];‌s=”abcd”;  ‌rintf(“%dn”,s) ‌‏则结果是()‌

A: 输出  abcd
B: 输出 a
C: 输出 adcb
D: 编译不能通过
答案:  编译不能通过

21、单选题:
下面程序的输出是( )‍ #include<stdio.h>‍void main() ‍{ int k=11; ‍ printf(“k=%d,k=%o,k=%xn”,k,k,k);‍}‍

A: k=11,k=12,k=13
B: k=11,k=13,k=13
C: k=11,k=013,k=oXb
D: k=11,k=13,k=b 
答案:  k=11,k=13,k=b 

22、单选题:
若有以下定义和语句: ‎ int  u=010,v=0x10,w=10; ‎ printf(″%d,%d,%dn″,u,v,w); ‎‍则输出结果是()‎

A: 8,16,10
B: 10,10,10
C: 8,8,10
D: 8,10,10 
答案:  8,16,10

23、单选题:
以下定义和语句: ‌ char cl=’b’,c2=’e’; ‌ printf(″%d,%cn″,c2-c1,c2-‘a’+’A’); ‌‏则输出结果是()‌

A: 2,M
B: 3,E
C: 2,E
D: 输出项与对应的格式控制不一致,输出结果不确定 
答案:  3,E

24、单选题:
‌设x为int型变量,则执行以下语句后,x的值为()‌‌x=10; x+=x-=x-x;‌

A: 10
B: 20
C: 40
D: 30
答案:  20

25、单选题:
以下程序的输出结果是 ( )‏ #include<stdio.h>‏void main() ‏{ ‏int  a=12,b=12; ‏printf(“%d%dn”,–a,++b); ‏ }‏

A: 10 10
B: 12 12
C: 11 10
D: 11 13
答案:  11 13

26、单选题:
以下程序的输出结果是( )​ #include<stdio.h>​void main() ​{ ​ int   k=17; ​printf(“%d,%o,%x n”,k,k,k); ​}​

A: 17,021,0×11
B: 17,17,17
C: 17,0×11,021
D: 17,21,11 
答案:  17,21,11 

27、单选题:
下面程序的输出是( )‍ #include<stdio.h>‍void main() ‍{ int x=023; ‍ printf(“%dn”,–x); }‍

A: 17
B: 18
C: 23
D: 24 
答案:  18

28、单选题:
以下程序的输出结果是( ) ‍ #include<stdio.h>‍void main() ‍{‍char str[12]={‘s’,’t’,’r’,’i’,’n’,’g’}; ‍ printf(“%dn”,strlen(str));‍ }‍

A: 6
B: 7
C: 11
D: 12 
答案:  6

29、单选题:
下列程序的输出结果是 ( )‏ #include<stdio.h>‏void main() ‏{ ‏double d=3.2; ‏int x,y;  x=1.2,y=(x+3.8)/5.0;  ‏printf(“%d n”, d*y);‏ }‏

A: 3
B: 3.2
C: 0
D: 3.07
答案:  0

30、单选题:
​语句:printf(“%d n”,12&&12);的输出结果是()‏

A: 12
B: 1
C: 24
D: 0 
答案:  1

31、单选题:
‌以下叙述中正确的是()​

A: 输入项可以是一个实型常量,如scanf(“a=%f”,3.50);
B:  只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf(“a=%d,b=%d”);
C: 当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“a=%5.2f”,&a);
D:  当输入数据时,必须指明变量地址,例如:scanf(“a=%d”,&a);
答案:   当输入数据时,必须指明变量地址,例如:scanf(“a=%d”,&a);

32、单选题:
‎设有int I=10,j=10;则printf(“%d,%dn”,++I,j–)的输出是()‌

A: 11, 10
B: 9 10
C: 10 9
D: 10,9
答案:  11, 10

33、单选题:
‍设A=3,B=4,执行 printf(“%d,%d”,(A,B),(B,A));”的输出是() ‎

A: 3,4
B: 4,3
C: 3,3
D: 4,4
答案:  4,3

34、单选题:
‎若有定义和语句: char s[10];s=″abcd″;printf(″%sn″,s); 则结果是( )(以下μ代表空格) ​‎​

A: 输出abcd
B: 输出a
C: 输出abcdμμμμμ
D: 编译不通过
答案:  编译不通过

35、单选题:
以下程序的输出结果是 ( )‍ #include<stdio.h>‍void main() ‍{  int   k=17; ‍ printf(“%d,%o,%x n”,k,k,k);‍}‍

A: 17,021,0×11
B: 17,17,17
C: 17,0×11,021
D: 17,21,11
答案:  17,21,11

36、单选题:
​当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()‏

A: c=b=a;
B: (a=c)‖(b=c);
C: (a=c)&&(b=c);
D: a=c=b; 
答案:  (a=c)&&(b=c);

37、单选题:
​下面哪个是C语言中的正确赋值语句()‌

A: a=1,b=2
B: i++;
C: a=b=5
D: y=int(x) 
答案:  i++;

38、单选题:
‏执行下列程序段 float f; int i; scanf(“%3d%4d%f”,&i,&f); 输入为12345678765.43,则赋值结果为( )​

A: i=123,f=45678765.43
B: i=123,f=4.567876543e+7
C: i=123,f=8765.43
D: i=12345678765;f=0.43 
答案:  i=123,f=8765.43

39、单选题:
​执行程序段char str[20]={‘a’,’b’,’c’,’o’}; int len=strlen(str); 变量len的值为( )‏

A: 20
B: 4
C: 3
D: 3或4或20 
答案:  4

40、单选题:
以下程序的输出结果是( )​ #include<stdio.h>​void main() ​{ int  a=12,b=12; ​printf(“%d%dn”,–a,++b); ​}​

A: 10 10
B: 12 12
C: 11 10
D: 11 13
答案:  11 13

41、单选题:
有以下程序 ‎ #include<stdio.h>‎void main() ‎{ ‎int   a,b,c=246; ‎a=c/100%9; ‎b=(-1)&&(-1); ‎printf(“%d,%dn”,a,b); ‎}   输出结果是( )‎

A: 2,1
B: 3,2
C: 4,3
D: 2,-1
答案:  2,1

42、单选题:
下面程序的输出是( )​ #include<stdio.h>​void main() ​{ int a=-1,b=4,k;​ k=(a++<=0)&&(!(b–<=0)); ​printf(“%d%d%d%n”,k,a,b);​ }​

A: 0 0 3
B: 0 1 2
C: 1 0 3
D: 1 1 2 
答案:  1 0 3

43、单选题:
下面程序的输出是( )‏ #include<stdio.h>‏void main() ‏{ char p1[10] =”abc”, p2[] =”ABC”; ‏printf(“%sn”, strcat(p1,p2));‏ }‏

A: ABCabc
B: ABabc
C: abcABC
D: 不确定的值 
答案:  abcABC

44、单选题:
已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( ) ‍ #include<stdio.h>‍void main() ‍{ char ch1,ch2; ‍ch1=’A’+’5′-‘3′; ‍ch2=’A’+’6’-‘3’; ‍printf(“%d,%cn”,ch1,ch2); ‍}‍

A: 67,D
B: B,C
C: C,D
D: 不确定的值
答案:  67,D

45、单选题:
下面程序的输出是( )‎ #include<stdio.h>‎void main() ‎{ int x=10,y=3; ‎printf(“%dn”,y=x/y);‎}‎

A: 0
B: 1
C: 3
D: 不确定的值
答案:  3

46、单选题:
若执行下面的程序时从键盘上输入3和4,则输出是( )‍ #include<stdio.h>‍void main() ‍{‍ int a,b,s; a=3,b=4; ‍scanf(“%d%d”,&a,&b); ‍s=a+b; printf(“%dn”,s–); ‍ printf(“%dn,–s); ‍}‍

A: 7,7
B: 7,5
C: 6,7
D: 7,6 
答案:  7,5

47、单选题:
执行下面程序中输出语句后,a的值是( )‍ #include<stdio.h>‍void main() ‍{int a; ‍printf(“%dn”,(a=3*5,a*4,a+5));‍}‍

A: 65
B: 20
C: 15
D: 10
答案:  15

48、单选题:
下列程序执行后的输出结果是( )‌ #include<stdio.h>‌void main() ‌{  int x=’f’; ‌ printf(“%c n”,’A’+(x-‘a’+1)); ‌}‌

A: G
B: H
C: I
D: J 
答案:  G

49、单选题:
以下程序运行后,输出结果是( ) ‍ #include<stdio.h>‍void main() ‍{ char s[]=”abcde”; ‍s+=2; ‍printf(“%ldn”,s); ‍}‍

A: cde
B: 字符c的ASCII码值
C: 字符c的地址
D: 出错 
答案:  出错 

50、单选题:
若有以下定义和语句: ‌char s1[]=″12345″,s2[]=″1234″; ‌printf(″%dn″,strlen(strcpy(s1,s2))); ‌则输出结果是( ) ‌

A: 4
B: 5
C: 9
D: 10
答案:  4

51、单选题:
以下程序的输出结果是( ) ‏ #include<stdio.h>‏void main() ‏{  ‏int   a=12,b=12; ‏printf(“%d  %dn”,–a,++b); ‏}‏

A: 10  10
B: 12  12
C: 11  13
D: 11  10 
答案:  11  13

52、单选题:
已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( )‌ #include<stdio.h>‌void main() ‌{ ‌char ch1,ch2; ‌ch1=’A’+’5′-‘3′; ‌ch2=’A’+’6’-‘3’; ‌printf(“%c,%cn”,ch1,ch2);‌ }‌

A: 67,D
B: B,C
C: C,D
D: ch2=’A’+’6′-‘3’
答案:  C,D

53、单选题:
若执行下面的程序时从键盘上输入3和4,则输出是( ) ​ #include<stdio.h>​void main() ​{ int a,b,s; ​a=3,b=4; ​scanf(“%d%d”,&a,&b); ​s=a+b; ​printf(“%dn”,s–); ​printf(“%dn,–s); ​}​

A: 7,7
B: 7,5
C: 6,7
D: 7,6 
答案:  7,5

54、单选题:
执行下面程序中输出语句后,a的值是 ( )‎ #include<stdio.h>‎void main() ‎{int a; ‎printf(“%dn”,(a=3*5,a*4,a+5));‎}‎

A: 65
B: 20
C: 15
D: 10 
答案:  15

55、单选题:
请读程序片段(字符串内没有空格字符): ‎printf(“%dn”, strlen(“ATSn0121\”)); ‎上面程序片段的输出结果是( )‎

A: 11
B: 9
C: 10
D: 8 
答案:  9

56、单选题:
‍设有如下定义: int x=10,y=3,z; 则语句printf(“%dn”,z=(x%y,x/y)); 的输出结果是()‍

A: 1
B: 0
C: 4
D: 3 
答案:  3 

57、单选题:
以下程序的输出结果是( )​ #include<stdio.h>​int main() ​{   int x=10,y=10; ​    printf(“%d %dn”,x–,–y); ​    return 0;​ }​

A: 10 10
B: 9 9
C: 9  10
D: 10 9 
答案:  10 9 

58、单选题:
以下程序的输出结果是( )  ‏ #include<stdio.h>‏int main() ‏ { int x=10 ,y=10; ‏   printf(“%d,%dn”,x–,–y);‏   return 0;‏}‏

A: 10,10
B: 9,9
C: 9,10
D: 10,9 
答案:  10,9 

59、单选题:
​若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf(“%d”,(X,Y)); 上面程序片段的输出结果是()‍

A: 200
B: 100
C: 100 200
D: 输出格式符不够,输出不确定的值
答案:  200

60、单选题:
请读程序: ‍ #include<stdio.h>‍void main() ‍{ int  A;  float  B, C; ‍scanf(“%2d%3f%4f”,&A,&B,&C); ‍printf(“nA=%d,B=%f,C=%fn”,A,B,C); ‍} ‍若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是( )‍

A: A=98, B=765, C=4321
B: A=10, B=765.000000, C=4321.000000
C: A=98, B=765.0, C=4321.0
D: A=98,B=765.000000,C=4321.000000
答案:  A=98,B=765.000000,C=4321.000000

第3章选择结构程序设计

第3章关系运算、逻辑运算测验

1、单选题:
‌能正确表示a和b同时为正或同时为负的表达式是( )‌

A: (a>=0‖b>=0)&&(a<0‖b<0)
B: (a>=0&&b>=0)&&(a<0&&b<0)
C: (a+b>0)&&(a+b<=0)
D: a*b>0 
答案:  a*b>0 

2、单选题:
‌设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2, 则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为()‌

A: 0
B: 1
C: 2
D: 3
答案:  2

3、单选题:
‎逻辑运算符两侧运算对象的数据类型()‏

A: 只能是0或1
B: 只能是0或非0正数
C: 只能是整型或字符型数据
D: 可以是任何类型的数据
答案:  可以是任何类型的数据

4、单选题:
​已知x=43,ch=’A’,y=0;则表达式(x > = y&&ch < ‘B’&&!y)的值是()‍

A: 0
B: 语法错
C: 1
D: “假”
答案:  1

5、单选题:
‌设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a > b)&&(n=c > d)后n的值是()‍

A: 1
B: 2
C: 3
D: 4
答案:  2

6、单选题:
‍判断char型变量cl是否为小写字母的正确表达式是()‏

A: ‘a'<=cl<=’z’
B: (cl>=a)&&(cl<=z)
C: (‘a’>=cl)||(‘z'<=cl)
D: (cl>=’a’)&&(cl<=’z’)
答案:  (cl>=’a’)&&(cl<=’z’)

7、单选题:
‍若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是()​

A: (exp==0)
B: (exp!=0)
C: (exp==1)
D: (exp!=1)
答案:  (exp!=0)

8、单选题:
‎表示关系X < =Y < =Z的C语言表达式为()‏

A: (X < =Y)&&(Y < =Z)
B: (X < =Y)AND(Y < =Z)
C: (X < =Y < =Z)
D: (X < =Y)&(Y < =Z)
答案:  (X < =Y)&&(Y < =Z)

9、单选题:
‎为表示关系x ≥ y ≥ z,应使用C语言表达式()‏

A: (x > =y)&&(y > =z)
B: (x > =y)AND(y > =z)
C: (x > =y > =z)
D: (x > =y)&(y > =z) 
答案:  (x > =y)&&(y > =z)

10、单选题:
‏设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a > b)&&(n=c > d)后,n的值为()‏

A: 1
B: 2
C: 3
D: 0
答案:  2

11、单选题:
‏为表示关系X≥Y≥Z应使用C语言表达式()​

A: (X > =Y)&&(Y > =Z)
B: (X > =Y)and(Y > =Z)
C: (X ≥ Y ≥ Z)
D: (X ≥ Y)&(Y ≥ Z) 
答案:  (X > =Y)&&(Y > =Z)

12、单选题:
​设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是()‍

A:  ‘a’&&’b’
B:  a<=b
C:  a||b+c&&b-c
D: !((a < b)&&!c||1) 
答案:  !((a < b)&&!c||1) 

13、单选题:
‍为表示关系x≥y≥z,应使用C语言表达式()‎

A: (x > =y)&&(y > =z)
B: (x > =y)AND(y > =z)
C: (x > =y > =z)
D: (x > =y)&(y > =z) 
答案:  (x > =y)&&(y > =z)

14、单选题:
‌设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为()‌

A: 1
B: 2
C: 3
D: 0
答案:  2

15、单选题:
‎判断字符型变量x是否是大写字母的正确的表达式()​

A: ‘A'<=x<=’Z’
B: (x>=A)&&(x<=Z)
C: (‘A'<=x)&&(‘z’=>x)
D: (x>=’A’)&&(x<=’Z’)
答案:  (x>=’A’)&&(x<=’Z’)

16、单选题:
‌C语言的对语句中用作判断的表达式一般为()‍

A: 关系表达式
B: 逻辑表达式
C: 算术表达式
D: 逻辑表达式和关系表达式
答案:  逻辑表达式和关系表达式

17、单选题:
‎C语言中的逻辑表达式值为真相当于值( )‎

A: 1
B: 0
C: T
D: .T.
答案:  1

18、单选题:
‏在C语言中,逻辑值”真”用( )表示‏

A: TRUE
B: 大于0的数
C: 非0的整数
D: 非0的数
答案:  非0的数

19、单选题:
‎能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是()‍

A: a > =10 or a < =0
B: a > =0||a < =10
C: a > =10 && a < =0
D: a < =0 || a>=10 
答案:  a < =0 || a>=10 

第3章选择结构测试

1、单选题:
​若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()‍

A: a < > 0
B: !a
C: a=0
D: a!=0
答案:  a!=0

2、单选题:
以下程序输出结果是( )‎#include< stdio.h > void main()  {‎ int m=5;  ‎if (m++ > 5) ‎    printf (“%dn”,m);  ‎else  ‎   printf (“%dn”,m–); ‎}‎​‎

A: 7
B: 6
C: 5
D: 4
答案:  6

3、单选题:
两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )‌#include<stdio.h> void main()  { ‌int x; scanf(“%d”,&x); ‌if(x + + >5)‌    printf(“%d”,x); ‌else ‌     printf(“%dn”,x – -); ‌}‌

A: 7和5
B: 6和3
C: 7和4
D: 6和4 
答案:  7和5

4、单选题:
若变量都已经说明,则以下程序段输出为( ) ​a=10;b=50;c=30; ​if (a > b) ​a=b; b=c;c=a; ​‏printf(“a=%db=%dc=%dn”,a,b,c);​

A: a=10 b=50 c=10
B: a=10 b=30 c=10
C: a=50 b=30 c=10
D: a=50 b=30 c=50
答案:  a=10 b=30 c=10

5、单选题:
‌为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的 else总是与()组成配对关系。​

A: 其上面距它最近的,并且没有其他else与其配对的if相配对
B: 在同一行上的if
C: 缩排位置相同的if
D: 在其之前未配对的if 
答案:  其上面距它最近的,并且没有其他else与其配对的if相配对

6、单选题:
以下程序的输出结果是 ( )  ​#include<stdio.h> void main()  {   ​int   a= -1,b=1; ​if((++a < 0)&& ! (b– < =0)) ​    printf(“%d  %dn”,a,b);    ​else ​     printf(“%d  %dn”,b,a);     ​}​

A: -1  1
B: 0  1
C: 1   0
D: 0  0 
答案:  1   0

7、单选题:
若执行下面的程序从键盘输入3和4,则输出是( ) ‍#include<stdio.h> void main()  {‍int a,b,s;    ‍scanf(“%d%d”,&a,&b);    ‍s=a;    ‍if (a < b) ‍s=b;    ‍s=s*s;    ‍printf(“%dn”,s);   ‍ }‍

A: 14
B: 16
C: 18
D: 20
答案:  16

8、单选题:
下面的程序是( )‌#include < stdio.h > void main()  {‌int x=3,y=0,z=0;     ‌if (x==y+z) ‌     printf(“****”);     ‌else ‌     printf(“####”);     ‌}‌

A: 有语法错误不能过通过编译
B: 输出****
C: 可能通过编译,但是不能通过连接,因而不能运行
D: 输出####
答案:  输出####

9、单选题:
请读程序: ‏#include < stdio.h> void main()  {‏float x,y; ‏scanf(“%f”,&x); ‏if(x < 0.0)  ‏    y=0.0 ‏else if((x < 5.0)&&(x!=2.0)) ‏     y=1.0/(x+2.0); ‏else if( x < 10.0)  ‏     y=1.0/x; ‏else       ‏    y=10.0; ‏printf(“%fn”,y); ‏} ‏若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是( )‏

A: 0.000000
B: 0.250000
C: 0.500000
D: 1.000000
答案:  0.500000

10、单选题:
请读程序: ​#include<stdio.h> void main()  {​ 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; ​} ​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=0 
答案:  a=2,b=1

11、单选题:
执行下面语句后的输出为( ) ​int i= -1; ​if (i < =0)​     printf(“****n”); ​else ​       printf(“%%%%n”);​

A: ****
B: %%%%
C: %%%%C
D: 有语法错,不能执行
答案:  ****

12、单选题:
在执行以下程序时,为了使输出结果为t=4, 则给a和b输入的值应满足的条件是( )‎#include<stdio.h> void main()  {‎int  s,t,a,b; ‎scanf(“%d,%d”,&a,&b); ‎s=1;   t=1; ‎if(a < 0)‎      s=s+1; ‎if(a > b)‎       t=s+1; ‎else  if(a= =b)‎       t=5; ‎else ‎       t=2*s; ‎printf(“t=%dn”,t); ‎}‎

A: 0 > a > b
B: a=0 < b
C: a=b < 0
D: a < b < 0 
答案:  a < b < 0 

13、单选题:
‌若有定义: float w; int a, b; 则合法的switch语句是(  )‍

A: switch(w)     { case 1.0: printf(“*n”);         case2.0: printf(“**n”);     }
B: switch(a);       { case 1 printf(“*n”);                     case 2 printf(“*n”);       }
C: switch(b)     {       case 1: printf(“*n”);        case 2: printf(“*n”);    }
D: switch(a+b);      {          case 1: printf(“*n”);           default: printf(“n”);           case 2 }
答案:  switch(b)     {       case 1: printf(“*n”);        case 2: printf(“*n”);    }

14、单选题:
​判断两个字符串S1 和 S2 相等的正确语句是()‌

A: if (S1=S2)
B: if (S1==S2)
C: if (strcpy(S1,S2))
D: if (strcmp(S1,S2)==0) 
答案:  if (strcmp(S1,S2)==0) 

15、单选题:
‎下列语句正确的是( )‌

A: if(a > b > c) temp=a
B: if((a=b) > 0) temp=a;
C: int a=b=c=4
D: int a;scanf(%d,a)
答案:  if((a=b) > 0) temp=a;

16、单选题:
‎与 y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是()‍

A: if(x > 0)      y=1;else if(x < 0)     y=-1;else y=0;
B: if(x)    if(x > 0)      y=1;    else if(x < 0)      y=-1;    else      y=0;
C: y=-1if(x)    y=1;else if(x==0)    y=0;else    y=-1;
D: y=0if(x > -0)if(x > 0)      y=1;else     y=-1;
答案:  if(x > 0)      y=1;else if(x < 0)     y=-1;else y=0;

17、单选题:
‌若有定义: float w; int a, b; 则合法的switch语句是()‍

A: switch(w){case1.0: printf(“*n”);case2.0: printf(“**n”);}
B: switch(a);{case 1 printf(“*n”); case 2 printf(“**n”);}
C: switch(b){ case a: printf(“*n”); default: printf(“n”); case b: printf(“**n”);}
D: switch(a+b){case 1: printf(“*n”); case 2: printf(“**n”); default: printf(“n”);}
答案:  switch(a+b){case 1: printf(“*n”); case 2: printf(“**n”); default: printf(“n”);}

18、单选题:
有如下程序 ​#include<stdio.h> void 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

19、单选题:
有如下程序 ‏#include<stdio.h> void main()  { ‏    float x=2.0,y; ‏   if(x < 0.0) ‏       y=0.0; ‏   else if(x < 10.0) ‏         y=1.0/x; ‏   else ‏         y=1.0; ‏   printf(“%fn”,y); ‏} ‏该程序的输出结果是( )‏

A: 0.000000
B: 0.250000
C: 0.500000
D: 1.000000 
答案:  0.500000

20、单选题:
有如下程序 main() ‍{ ‍int a=2,b=-1,c=2; ‍if(a < b) ‍if(b<0) ‍    c=0; ‍else ‍    c++; ‍printf(“%dn”,c);‍} ‍该程序的输出结果是( )‍

A: 0
B: 1
C: 2
D: 3
答案:  2

21、单选题:
‌若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是()‍

A: switch(a+b);{case 1:y=a+b;break;case 0:y=a-b;break;case 3:y=b-a,break; }
B: switch(a*a+b*b){case 3: case 1:y=a+b;break; case 3:y=b-a,break;}
C: switch a{case c1:y=a-b;break;case c2:y=a*d;break;default:x=a+b;}
D:  switch(a-b){default:y=a*b;break;case 4:x=a+b;break;case 10:y=a-b;break;}
答案:   switch(a-b){default:y=a*b;break;case 4:x=a+b;break;case 10:y=a-b;break;}

22、单选题:
阅读以下程序: ‌#include<stdio.h> void main()  {‌int x; ‌scanf(“%d”,&x); ‌if(x–<5) ‌    printf(“%d”‘x); ‌else ‌   printf(“%d”‘x++); ‌} ‌程序运行后,如果从键盘上输人5,则输出结果是( )‌

A: 3
B: 4
C: 5
D: 6
答案:  4

23、单选题:
若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是( )‌#include < stdio.h > ‌void main() ‌{‌char c; int v0=0,v1=0,v2=0; ‌do{    ‌switch(c=getchar())         ‌    { case ‘a’:case ‘A’:          ‌      case ‘e’:case ‘E’:          ‌      case ‘i’:case ‘I’:          ‌      case ‘o’:case ‘O’:                case ‘u’:case ‘U’:v1+=1;          ‌      default:v0+=1;v2+=1;                    ‌}          ‌}while(c!=’n’); ‌printf(“v0=%d,v1=%d,v2=%dn”,v0,v1,v2);‌}‌

A: v0=7,v1=4,v2=7
B: v0=8,v1=4,v2=8
C: v0=11,v1=4,v2=11
D: v0=12,v1=4,v2=12 
答案:  v0=12,v1=4,v2=12 

24、单选题:
以下不正确的if语句形式是( )​

A: if(x>y&&x!=y) t=x++; 
B: if(x==y) x+=y; 
C: if(x!=y)       scanf(“%d”,&x) else      scanf(“%d”,&y);
D: if(x<y)   {x++;     y++;}
答案:  if(x!=y)       scanf(“%d”,&x) else      scanf(“%d”,&y);

25、单选题:
已知 int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )‍if(x>y)  ‍    z=x;x=y;y=z;‍

A: x=10,y=20,z=30
B: x=20,y=30,z=30
C: x=20,y=30,z=10
D: x=20,y=30,z=20 
答案:  x=20,y=30,z=30

26、单选题:
请阅读以下程序: ‌#include<stdio.h> void main()  {‌int a=5,b=0,c=0; ‌if(a==b+c) ‌       printf(“***n”); ‌else      ‌       printf(“$$$n”); ‌} ‌运行以上程序( )‌

A: 有语法错不能通过编译
B: 可以通过编译但不能通过连接
C: 输出***
D: 输出$$$ 
答案:  输出$$$ 

27、单选题:
当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )​if(a < b) ​if(c < d) ​       x=1; ​else   ​if(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

28、单选题:
‍下列错误的语句是( )​

A: if(a>b)printf(”%d“,a);
B: if(&&);a=m;
C: if(1)   a=m;else   a=n;
D: if(a>0);else   a=n;
答案:  if(&&);a=m;

29、单选题:
当a=1、b=3、c=5、d=5时,执行下面的程序段后,x的值为(    )。   ‎ if(a<b)     ‎if(c<d)‎     x=1;     ‎else    ‎if(a<c)    ‎if(b<d)‎   x=2;    ‎else ‎    x=3;    ‎else ‎    x=6;    ‎else ‎     x=7;‎

A: 2
B: 3
C: 6
D: 7
答案:  2

30、单选题:
以下程序的输出结果是(    )。    ​#include<stdio.h> void main()  {​int a=-1,b=1,k;    ​if((++a<0)&&!(b–<=0))    ​      printf(”%d,%dn”,a,b);    ​else    ​      printf(”%d,%dn”,b,a);   ​ }​

A: 1,-1
B: 0,-1
C: 0,1
D: 1,0 
答案:  1,0 

31、单选题:
‌下列关于switch语句和break语句的结论中,正确的是(  )‎

A: break只能用在switch语句中
B: break的作用是跳出当前分支并结束程序的运行
C: break的作用是跳出switch语句,接着执行后面的语句
D: switch语句中必须包含break语句
答案:  break的作用是跳出switch语句,接着执行后面的语句

32、单选题:
‎以下说法正确的是( ) ‌

A: break语句是switch语句中的一部分
B: 在switch语句中可以根据需要使用或不使用break语句
C: 在switch语句中必须使用break语句
D: break语句只能用于switch语句中
答案:  在switch语句中可以根据需要使用或不使用break语句

33、单选题:
以下程序的运行结果是(    )。     #include <stdio.h>‏ main()‏‍    {     int k=2;         switch(k)     {     case 1:printf(”%dn”,k++);     break;     case 2:printf(”%d”,k++);     case 3:printf(”%dn”,k++);     break;     ‏    case 4:printf(”%dn”,k++);‏}‏

A: 2
B: 2 3
C: 3
D: 3 4 
答案:  2 3

34、单选题:
有如下程序 ​#include<stdio.h> void main()​ {​int a=2,b=-1,c=2; ​if(a < b) ​if(b<0) ​     c=0; ​else ​    c++ ; ​printf(“%dn”,c); ​} ​该程序的输出结果是( )​

A: 0
B: 1
C: 2
D: 3
答案:  2

35、单选题:
‏若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是( ) #includemain() {char c; int v0=0,v1=0,v2=0; do{ switch(c=getchar()) {case ‘a’:case ‘A’: case ‘e’:case ‘E’: case ‘i’:case ‘I’: case ‘o’:case ‘O’: case ‘u’:case ‘U’:v1+=1; default:v0+=1;v2+=1; } }while(c!=’n’); printf(“v0=%d,v1=%d,v2=%dn”,v0,v1,v2); } ‍

A: v0=7,v1=4,v2=7
B: v0=8,v1=4,v2=8
C: v0=11,v1=4,v2=11
D: v0=12,v1=4,v2=12
答案:  v0=12,v1=4,v2=12

36、单选题:
有以下程序:  ‍#include<stdio.h> void main()‍ {‍int a=l,b=2,c=3,d=0;     ‍if(a==l && 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);    ‍} ‍‎程序运行后的输出结果是()‍

A: 1,2,3
B: 1,3,2
C: l,3,3
D: 3,2,1 
答案:  l,3,3

37、单选题:
‎设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是()‌

A: if(a>b)c=a,a=b,b=c;
B: if(a>b){c=a,a=b,b=c;}
C: if(a>b)c=a;a=b;b=c;
D: if(a>b){c=a;a=b;b=c;} 
答案:  if(a>b)c=a;a=b;b=c;

38、单选题:
有以下程序段: ‍int  a,b,c; ‍a=10; b=50; c=30; ‍if(a>b)   a=b, b=c; c=a; ‍printf(“a=%d b=%d c=%dn”,a,b,c); ‍‎程序的输出结果是()‍

A: a=10 b=50 c=10
B: a=10 b=50 c=30
C: a=10 b=30 c=10
D: a=50 b=30 c=50
答案:  a=10 b=50 c=10

39、单选题:
有以下程序: ‏#include<stdio.h> void main()‏ {‏int x=1,y=2,z=3; ‏if(x>y) ‏if(y<z) ‏     printf(“%d”,++z); ‏else ‏     printf(“%d”,++y); ‏printf(“%dn”,x++); ‏} ‏‍程序的运行结果是( )‏

A: 331
B: 41
C: 2
D: 1 
答案:  1 

40、单选题:
有以下程序 ‌#include<stdio.h> void main()‌ {‌ int a=1,b=0;   ‌if(!a)   b++;   ‌else if(a==0)  ‌if(a) ‌    b+=2;     ‌else ‌   b+=3;   ‌printf(“%dn”,b); ‌} ‌程序运行后的输出结果是(   )‌

A: 0
B: 1
C: 2
D: 3
答案:  0

41、单选题:
有以下程序 ‌#include<stdio.h> void main()‌ {‌ int x=1,y=0; ‌if(!x)‌     y++; ‌else if(x==0)‌     if(x)‌         y+=2; ‌else ‌         y+=3; ‌printf(“%dn”,y); ‌} ‌程序运行后的输出结果是(   )‌

A: 3
B: 2
C: 1
D: 0
答案:  0

42、单选题:
‏能正确表示a和b同时为正或同时为负的表达式是( )‎

A: (a>=0‖b>=0)&&(a<0‖b<0)
B: (a>=0&&b>=0)&&(a<0&&b<0)
C: (a+b>0)&&(a+b<=0)
D: a*b>0 
答案:  a*b>0 

43、单选题:
​设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2, 则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为()‌

A: 0
B: 1
C: 2
D: 3
答案:  2

44、单选题:
‎逻辑运算符两侧运算对象的数据类型()​

A: 只能是0或1
B: 只能是0或非0正数
C: 只能是整型或字符型数据
D: 可以是任何类型的数据
答案:  可以是任何类型的数据

45、单选题:
‍已知x=43,ch=’A’,y=0;则表达式(x > = y&&ch < ‘B’&&!y)的值是()‌

A: 0
B: 语法错
C: 1
D: “假”
答案:  1

46、单选题:
‎设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a > b)&&(n=c > d)后n的值是()​

A: 1
B: 2
C: 3
D: 4
答案:  2

47、单选题:
‏判断char型变量cl是否为小写字母的正确表达式是()‏

A: ‘a'<=cl<=’z’
B: (cl>=a)&&(cl<=z)
C: (‘a’>=cl)||(‘z'<=cl)
D: (cl>=’a’)&&(cl<=’z’)
答案:  (cl>=’a’)&&(cl<=’z’)

48、单选题:
‍若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是()​

A: (exp==0)
B: (exp!=0)
C: (exp==1)
D: (exp!=1) 
答案:  (exp!=0)

49、单选题:
​表示关系X < =Y < =Z的C语言表达式为()‍

A: (X < =Y)&&(Y < =Z)
B: (X < =Y)AND(Y < =Z)
C: (X < =Y < =Z)
D: (X < =Y)&(Y < =Z) 
答案:  (X < =Y)&&(Y < =Z)

50、单选题:
‏为表示关系x ≥ y ≥ z,应使用C语言表达式()‎

A: (x > =y)&&(y > =z)
B: (x > =y)AND(y > =z)
C: (x > =y > =z)
D: (x > =y)&(y > =z)
答案:  (x > =y)&&(y > =z)

51、单选题:
‌设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a > b)&&(n=c > d)后,n的值为()‌

A: 1
B: 2
C: 3
D: 0
答案:  2

52、单选题:
‍为表示关系X≥Y≥Z应使用C语言表达式( )​

A: (X > =Y)&&(Y > =Z)
B: (X > =Y)and(Y > =Z)
C: (X ≥ Y ≥ Z)
D: (X ≥ Y)&(Y ≥ Z) 
答案:  (X > =Y)&&(Y > =Z)

53、单选题:
​设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式的值为0的是()‏

A: ‘a’&&’b’
B: a<=b
C: a||b+c&&b-c
D: !((a < b)&&!c||1)
答案:  !((a < b)&&!c||1)

54、单选题:
​判断字符型变量x是否是大写字母的正确的表达式()‏

A: ‘A'<=x<=’Z’
B: (x>=A)&&(x<=Z)
C: (‘A'<=x)&&(‘z’=>x)
D: (x>=’A’)&&(x<=’Z’)
答案:  (x>=’A’)&&(x<=’Z’)

55、单选题:
​C语言的对语句中用作判断的表达式一般为()‌

A: 关系表达式
B: 逻辑表达式
C: 算术表达式
D: 逻辑表达式和关系表达式
答案:  逻辑表达式和关系表达式

56、单选题:
‌C语言中的逻辑表达式值为真相当于值( ) ‍

A: 1
B: 0
C: T
D: .T.
答案:  1

57、单选题:
‎在C语言中,逻辑值”真”用( )表示 ​

A: TRUE
B: 大于0的数
C: 非0的整数
D: 非0的数 
答案:  非0的数 

58、单选题:
‌能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是()‏

A: a > =10 or a < =0
B: a > =0||a < =10
C: a > =10 && a < =0
D: a < =0 || a>=10
答案:  a < =0 || a>=10

59、判断题:
‍在switch语句中,每一个的case常量表达式的值可以相同。‍

A: 正确
B: 错误
答案:  错误

60、判断题:
‎条件表达式不能取代一般if的语句。‌

A: 正确
B: 错误
答案:  错误

61、判断题:
‍break可用于循环体中,不可用于switch语句中。‎

A: 正确
B: 错误
答案:  错误

62、判断题:
‎在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。 ‍

A: 正确
B: 错误
答案:  正确

63、判断题:
‍条件运算符?和:是一对运算符,不能分开单独使用。‍

A: 正确
B: 错误
答案:  正确

64、判断题:
​if(a=5)是允许的。‌

A: 正确
B: 错误
答案:  正确

65、判断题:
‎逻辑表达式的值只能为1或0。‏

A: 正确
B: 错误
答案:  正确

66、判断题:
‏在switch语句中,多个case可以共用一组执行语句。 ‍

A: 正确
B: 错误
答案:  正确

67、判断题:
‏case语句后如没有break,顺序向下执行。‎

A: 正确
B: 错误
答案:  正确

第4章循环结构设计

第4章循环结构测验

1、单选题:
若K为整型,以下while循环执行( )次‍K=0;‍while (K=0)‍K=K-1;‍‍‍

A: 执行10次
B: 无限循环
C: 一次也不执行
D: 执行一次
答案:  一次也不执行

2、单选题:
当执行以下程序段时   ​{y=1;​   do​   {y–;}​ while(y);​   printf(“%dn”,y);   }​‎​

A: 循环体将执行一次
B: 循环体将执行两次
C: 循环体将执行无限次
D: 系统将提示有语法错误
答案:  循环体将执行一次

3、单选题:
‍以下叙述正确的是( )‏

A: do-while语句构成的循环不能用其它语句构成的循环来代替 
B: do-while语句构成的循环只能用break语句退出 
C:  用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D: 用do-while语句构成的循环,在while后的表达式为零时结束循环。 
答案:  用do-while语句构成的循环,在while后的表达式为零时结束循环。 

4、单选题:
当执行以下程序段时     ‏x=-1;‏   do  ‏{ x=x*x;}‏ while(!x);‏‏‏

A: 循环体将执行一次
B: 循环体将执行两次
C: 循环体将执行无限次
D: 系统将提示有语法错误
答案:  循环体将执行一次

5、单选题:
若a,b均为int型变量,且a=20,则以下关于for循环语句的正确判断为 ____。   ‌‍for(b=20;a!=b;++a,b++)  printf(“—-n”); ‌‍‌

A: 循环体一次也不执行
B: 循环体只执行一次
C: 输出—-
D: 是死循环
答案:  循环体一次也不执行

6、单选题:
如果输入为:ABCdef 执行下面一段程序后,则输出为: ‎  void main( )‎   {char  ch;‎    while((ch=getchar( ))!=’n’)‎    { if(ch > =’A’ && ch < =’Z’)  ch=ch+32; ‎     else if(ch > =’a’ && ch < ‘z’) ch=ch-32; ‎     printf(“%c”,ch);    ‎    }‎    printf(“n”);   ‎ }‎​‎

A: ABCdef
B: abcDEF
C: abc
D: DEF
答案:  abcDEF

7、单选题:
执行以下程序后,输出的结果是     ‍void main( )‍   { int y=10;‍     do‍        {y–;}‍     while(–y);‍     printf(“%dn”,y);‍   }‍​‍

A: -1
B: 1
C: 8
D:  0
答案:   0

8、单选题:
‏在下列选项中,构成死循环的程序段是​

A: int i=100;
B:  for(;;);
C: int k=1000;
D: int s=36;
答案:   for(;;);

9、单选题:
‎以下程序的输出结果是​main() ​    {  int   i,k,a[10],p[3];​       k=5;​       for (i=0;i < 10;i++)  a[i]=i;​       for (i=0;i < 3;i++)  p[i]=a[i*(i+1)]; ​       for (i=0;i < 3;i++)  k=k+p[i]*2; ​       printf(“%dn”,k);    }​‎​

A: 20
B: 21
C: 22
D: 23
答案:  21

10、单选题:
有以下程序 ,其输出结果是    ‍main() ‍    { int     x,i;‍      for(i=1;i < =50;i++)‍      { x=i;‍          if(x%2==0)‍             if(x%3==0)‍                if(x%7==0) ‍                   printf(“%d”,i);‍      }   ‍‌ }    ‍‌‍

A: 28
B: 27
C: 42
D: 41
答案:  42

11、单选题:
​执行语句: for (i=1;i<4;i++);后,变量i的值是______. ​

A: 3
B: 4
C: 5
D: 不定
答案:  4

12、单选题:
运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为​ main ( )​ { int m,n;​ printf(“Enter m,n:”);​ scanf(“%d%d”,&m,&n);​ while(m!=n) ​{  while(m > n)m-=n;​  while(n > m)n-=m; ​}​ printf(“m=%dn”,m); ​}​‏​

A: 3
B: 2
C: 1
D: 0
答案:  1

13、单选题:
若i,j已经定义为int类型,则以下程序段中内循环总的执行次数是____   ‏for (i=5;i > 0;i–)‏   for (j=0;j < 4;j++)‏     {…}‏‌‏

A: 20
B: 24
C: 25
D: 30
答案:  20

14、单选题:
下面程序的输出是____      ‎main()‎     {int x=3,y=6,a=0;‎    while (x++!=(y-=1)) ‎     {       a+=1; ‎       if (y < x) break;   ‎       }   ‎  printf(“x=%d,y=%d,a=%dn”,x,y,a);    ‎}‎‌‎

A: x=4,y=4,a=1 
B: x=5,y=5,a=1
C: x=5,y=4,a=3
D: x=5,y=4,a=1
答案:  x=5,y=4,a=1

15、单选题:
定义如下变量:    int n=10 则下列循环的输出结果是______        ​while (n > 7)    ​{    n–; ​    printf(“%dn”,n); ​    }​‌​

A: 10 9 8
B: 9 8 7
C: 10 9 8 7
D: 9 8 7 6
答案:  9 8 7

16、单选题:
以下程序段的输出结果是_____   ​ int x=3;​    do    { printf(“%3d”,x-=2);}​‎    while (!(–x));​‎​

A: 1
B: 3 0
C: 1 -2
D: 死循环
答案:  1 -2

17、单选题:
执行下面的程序后,a的值为_____    ‎main()‎    { in



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



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


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

添加书签方法:

1.电脑按键盘的Ctrl键+D键即可收藏本网页

2.手机浏览器可以添加书签收藏本网页

点击浏览器底部菜单-【添加书签】-收藏本网页

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第1张

点击浏览器底部菜单-【书签/历史】-可查看本网页

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第2张


获取更多慕课答案,欢迎在浏览器访问我们的网站:



http://mooc.mengmianren.com

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第3张

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第4张

注:请切换至英文输入法输入域名,如果没有成功进入网站,请输入完整域名:http://mooc.mengmianren.com/


我们的公众号

打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP

本公众号可查看各种网课答案,还可免费查看大学教材答案

点击这里,可查看公众号功能介绍

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第5张




APP下载



点击这里下载萌面人APP,使用更方便!




APP功能说明

1.可查看各种网课答案

点击【萌面人官网】,可查看知到智慧树,超星尔雅学习通,学堂在线等网课答案

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第6张

点击【中国大学慕课答案】,可查看mooc慕课答案

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第7张

2.可一键领取淘宝/天猫/京东/拼多多无门槛优惠券

如图所示,点击对应图标即可领取淘宝/天猫/京东/拼多多无门槛优惠券

C语言程序设计(湖南工业大学)1206071802 中国大学MOOC答案100分完整版第8张


究辩烧群骏拧城囊宋比提惯辟