本答案对应课程为:点我自动跳转查看
本课程起止时间为:2020-10-19到2021-01-20
本篇答案更新状态:已完结

第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:’\039′
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()!=”);    … } 以下叙述中正确的是
选项:
A:此while语句将无限循环
B:getchar()不可以出现在while语句的条件表达式中
C:当执行此while语句时,只有按回车键循环才能停止
D:当执行此while语句时,按任意键程序就能继续执行
答案: 【当执行此while语句时,只有按回车键循环才能停止

27、 问题:若有以下定义和语句 char s1[10]="abcd!",*s2="123\"; printf("%d  %d",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("%2d",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,%d",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("%d",(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("%d",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("%d",d);  }
选项:
A:1
B:0
C:非0的数
D:-1 
答案: 【1

10、 问题:以下程序段的输出结果是( )  char s[]="\141\141abc\t";  printf ("%d",strlen(s));
选项:
A:9
B:12
C:13
D:14 
答案: 【9

11、 问题:下列程序执行后的输出结果是( ) #include<stdio.h>void main() { int x=’f’; printf("%c ",’A’+(x-‘a’+1)); }
选项:
A:G
B:H
C:I
D:J
答案: 【G

12、 问题:下列程序执行后的输出结果是( ) #include<stdio.h>void main() { char x=0xFF; printf("%d ",x–); }
选项:
A:-32767
B:FFFE
C:-1
D:-32768 
答案: 【-1

13、 问题:语句printf("a\bre’hi’y\\bou");的输出结果是( ) (说明:’\b’是退格符)
选项:
A:a\bre’hi’y\\bou
B:a\bre’hi’y\bou
C:re’hi’you
D:abre’hi’y\bou 
答案: 【re’hi’you

14、 问题:有以下程序  #include<stdio.h>void main() { int   a,b,c=246;  a=c/100%9;  b=(-1)&&(-1);  printf("%d,%d",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,%d",++i,j–); }
选项:
A:11,10
B:9,10
C:010,9
D:10,9 
答案: 【9,10

17、 问题:请选出以下语句的输出结果( ) printf("%d",strlen("\t\ 065\xff"))
选项:
A: 5
B: 4
C: 8
D:输出项不合法,无正常输出
答案: 【 4

18、 问题:请读程序    int i =65536;    printf("%d",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,%c",ch1,ch2); }
选项:
A:67,D
B:B,C
C:C,D
D:不确定的值 
答案: 【67,D

20、 问题:若有定义和语句:  char s[10];s="abcd";  rintf("%d",s) 则结果是()
选项:
A:输出  abcd
B:输出 a
C:输出 adcb
D:编译不能通过
答案: 【编译不能通过

21、 问题:下面程序的输出是( ) #include<stdio.h>void main() { int k=11;  printf("k=%d,k=%o,k=%x",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,%d″,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,%c″,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%d",–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 ",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("%d",–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("%d",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 ", d*y); }
选项:
A:3
B:3.2
C:0
D:3.07
答案: 【0

30、 问题:语句:printf("%d ",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,%d",++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(″%s″,s); 则结果是( )(以下μ代表空格)
选项:
A:输出abcd
B:输出a
C:输出abcdμμμμμ
D:编译不通过
答案: 【编译不通过

35、 问题:以下程序的输出结果是 ( ) #include<stdio.h>void main() {  int   k=17;  printf("%d,%o,%x ",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%d",–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,%d",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%",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("%s", 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,%c",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("%d",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("%d",s–);  printf("%d,–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("%d",(a=35,a4,a+5));}
选项:
A:65
B:20
C:15
D:10
答案: 【15

48、 问题:下列程序执行后的输出结果是( ) #include<stdio.h>void main() {  int x=’f’;  printf("%c ",’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("%ld",s); }
选项:
A:cde
B:字符c的ASCII码值
C:字符c的地址
D:出错 
答案: 【出错 

50、 问题:若有以下定义和语句: char s1[]=″12345″,s2[]=″1234″; printf(″%d″,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  %d",–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,%c",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("%d",s–); printf("%d,–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("%d",(a=35,a4,a+5));}
选项:
A:65
B:20
C:15
D:10 
答案: 【15

55、 问题:请读程序片段(字符串内没有空格字符): printf("%d", strlen("ATS012\1\")); 上面程序片段的输出结果是( )
选项:
A:11
B:9
C:10
D:8 
答案: 【9

56、 问题:设有如下定义: int x=10,y=3,z; 则语句printf("%d",z=(x%y,x/y)); 的输出结果是()
选项:
A:1
B:0
C:4
D:3 
答案: 【

57、 问题:以下程序的输出结果是( ) #include<stdio.h>int main() {   int x=10,y=10;     printf("%d %d",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,%d",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("A=%d,B=%f,C=%f",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:ab>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章 选择结构程序设计 第 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 ("%d",m);  else     printf ("%d",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("%d",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=%d",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  %d",a,b);    else      printf("%d  %d",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("%d",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("%f",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=%d",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("*"); else        printf("%%%%");
选项:
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=%d",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("");         case2.0: printf("");     }
B:switch(a);       { case 1 printf("
");                     case 2 printf("");       }
C:switch(b)     {       case 1: printf("
");        case 2: printf("");    }
D:switch(a+b);      {          case 1: printf("
");           default: printf("");           case 2 }
答案: 【switch(b)     {       case 1: printf("");        case 2: printf("");    }

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("");case2.0: printf("");}
B:switch(a);{case 1 printf("*"); case 2 printf("
");}
C:switch(b){ case a: printf("
"); default: printf(""); case b: printf("");}
D:switch(a+b){case 1: printf("*"); case 2: printf("
"); default: printf("");}
答案: 【switch(a+b){case 1: printf(""); case 2: printf("*"); default: printf("");}

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=%d",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("%f",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("%d",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(aa+bb){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=ad;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!=”); printf("v0=%d,v1=%d,v2=%d",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(""); else             printf("$$$"); } 运行以上程序( )
选项:
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,%d”,a,b);    else          printf(”%d,%d”,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(”%d”,k++);     break;     case 2:printf(”%d”,k++);     case 3:printf(”%d”,k++);     break;         case 4:printf(”%d”,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("%d",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!=”); printf("v0=%d,v1=%d,v2=%d",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,%d",a,b,c);     else       printf("%d,%d,%d",a,b,c);    else       printf("%d,%d,%d",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=%d",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("%d",x++); } 程序的运行结果是( )
选项:
A:331
B:41
C:2
D: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("%d",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("%d",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:ab>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("%d",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("—-"); 
选项:
A:循环体一次也不执行
B:循环体只执行一次
C:输出—-
D:是死循环
答案: 【循环体一次也不执行

6、 问题:如果输入为:ABCdef 执行下面一段程序后,则输出为:   void main( )   {char  ch;    while((ch=getchar( ))!=”)    { if(ch > =’A’ && ch < =’Z’)  ch=ch+32;      else if(ch > =’a’ && ch < ‘z’) ch=ch-32;      printf("%c",ch);        }    printf("");    }
选项:
A:ABCdef
B:abcDEF
C:abc
D:DEF
答案: 【abcDEF

7、 问题:执行以下程序后,输出的结果是     void main( )   { int y=10;     do        {y–;}     while(–y);     printf("%d",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("%d",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=%d",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=%d",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("%d",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()    { int a,b;      for (a=1,b=1;a < 100;a++)      {  if (b > =20) break;         if (b%3==1)              {  b+=3; continue; }           b-=5;        }     }
选项:
A:7
B:8
C:9
D:10
答案: 【8

18、 问题:读程序:    main()    { int num=0;      while (num < =2)      { num++;        printf("%d",num);       }    } 上面程序的输出结果是______
选项:
A:1
B:2 2
C:1 2 3 
D:1 2 3 4
答案: 【1 2 3 

19、 问题:假定a和b为int型变量,则执行以下语句后b的值为     a=1; b=10;do     {    b=b-a;    a++;  }while (b> 0);
选项:
A:-3
B:-2
C:-1
D:0
答案: 【0

20、 问题:设i,j为int型变量,则下面for循环语句的执行结果是     for(i=10 ,j=0;j<2;j++)        {  if(i%3)    i–;           –i;            –i;         printf("%d  ",i);          }
选项:
A:6   3 
B: 7  4
C:6  2
D:7  3
答案: 【 7  4

21、 问题:假定a和b为int型变量,则执行以下语句后b的值为     a=1;b=10;do   {    b=b-a;    a++;  }while (b– > 0);
选项:
A:-3
B:-2
C:-1
D:-4
答案: 【-4

22、 问题:以下程序的输出结果是   main(  ) {  int  i;  for(i=1;i < 6;i++) {   if(i%2)   {printf("#");continue;}      printf("");  }      printf("");}
选项:
A:#
##
B:#####
C:*
D:
##
答案: 【###

23、 问题:以下程序的输出结果是   main(  )      {int  i;  for(i=’A’;i < ‘I’;i++)  printf("%c",i+32);  printf(" ");  }
选项:
A:编译不通过,无输出
B:aceghi
C:acegi
D:abcdefgh
答案: 【abcdefgh

24、 问题:有以下程序    main()    { int i, j;      for(j=10;j < 11;j++)      { for(i=9;i < j; i++)             if (!(j%i))  break;              if(i=j-1)   printf("%d",j);      }      } 输出结果是
选项:
A:11
B:10
C:9
D:10     11
答案: 【10

25、 问题:以下程序段的输出结果是      int x=3;      do       { printf("%3d",x-=2);}      while(!(–x));
选项:
A:1
B:3,0
C:1,-2
D:死循环
答案: 【1,-2

26、 问题:阅读下列程序:     main( )     { int n[3],i,j,k;       for(i=0;i〈 3;i++)            n[i]=0;       k=2;        for (i=0;i < k;i++)             for (j=0;j〈 2;j++)                  n[j]=n[i]+1;        printf("%d",n[1]);    }     下述程序运行后输出结果是
选项:
A:2
B:1
C:0
D:3
答案: 【3

27、 问题:定义如下变量和数组:     int i;     int x[3][3]={1,2,3,4,5,6,7,8,9};    则下面语句的输出结果是            for(i=0;i<3;i++) printf("%d",x[i][2-1]);
选项:
A:1 5 9
B:1 4 7
C:2 5 8
D:3 6 9
答案: 【2 5 8

28、 问题:以下循环体的执行次数是  main(){int i,j; for(i=0,j=1; i < = j+1; i+=2, j–) printf("%d ",i); }
选项:
A:3
B:2
C:1
D:0
答案: 【1

29、 问题:设K为整形,则下面的while循环执行( )次 k=2;while(k==0) {printf("%d",k);  k–;} printf("");
选项:
A:无限次
B: 0次
C:1次
D: 2次
答案: 【 0次

30、 问题:在C语言中,当while语句中的条件表达式的值为( )时,结束该循环.
选项:
A:0
B:1
C:TRUE
D:FALSE
答案: 【0

31、 问题:以下程序的输出结果是  { int   i,j,x=0; for(i=0;i < 2;i++)     { x++;       for(j=0;j < 3;j++)          { if(j%2) continue;             x++;          }       x++;        }     printf("x=%d",x); }
选项:
A:x=4
B:x=8
C:x=6
D:x=12
答案: 【x=8

32、 问题:运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为main( )   { int   v1=0,v2=0;     char ch;     while((ch=getchar( ))!=’#’)    { switch(ch)       { case  ‘a’:         case  ‘h’:          default: v1++;         case ‘0’: v2++  ;         }     }printf("%d %d",v1,v2);    }
选项:
A:2,0
B:5,0
C:5,5
D:2,5
答案: 【5,5

33、 问题:下面程序的输出是 main() { int y=9; for(;y > 0;y–) { if(y%3==0) {  printf("%d",–y);   continue; } } }
选项:
A:741
B:852
C:963
D:875421
答案: 【852

34、 问题:设有程序段 int k=10; while(k=0) k=k-1; 则下面描述中正确的是__
选项:
A:while循环执行10次
B:循环是无限循环
C:循环体语句一次也不执行
D:循环体语句执行一次
答案: 【循环体语句一次也不执行

35、 问题:设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______
选项:
A:运行程序段后输出0
B:运行程序段后输出1
C:程序段中的控制表达式是非法的
D:程序段执行无限次
答案: 【运行程序段后输出1

36、 问题:语句while(!E);中的表达式!E等价于_ 
选项:
A:E==0
B:E!=1
C:E!=0
D:E==1 
答案: 【E==0

37、 问题:下面程序段的运行结果是___ a=1;b=2;c=2; while(a < b < c){t=a;a=b;b=t;c–;} printf("%d,%d,%d",a,b,c);
选项:
A:1,2,0
B:2,1,0
C:1,2,1
D:2,1,1
答案: 【1,2,0

38、 问题:下面程序段的运行结果是 x=y=0; while(x < 15) y++,x+=++y; printf("%d,%d",y,x);
选项:
A:20,7
B:6,12 
C:20,8
D:8,20
答案: 【8,20

39、 问题:以下程序的输出结果是          int main(void )      {     int    x=10,y=10,i;      for(i=0;x >8;y=++i)                   printf("%d,%d ",x–,y);     return 0;}
选项:
A:10 1 9 2
B:9 8 7 6
C:10 9 9 0 
D:10 10 9 1
答案: 【10 10 9 1

40、 问题:以下程序运行后,输出结果是   main () { int   y=18,i=0,j,a[8];   do     { a[i]=y%2;     i++;     y=y/2;      } while(y >= 1);   for(j=i-1;j>0;j–)  printf("%d",a[j]);    printf("");  }
选项:
A:1000
B:1001
C:00110
D:10100
答案: 【1001

41、 问题:执行下面的程序后,a的值为     main()     {   int a,b;         for (a=1,b=1;a < = 100;a++)            {     if(b > = 20) break;                  if(b%3==1)                       { b-=2;                          continue;                         }            b+=5;         }     }
选项:
A:11
B:15
C:12
D:13
答案: 【15

42、 问题:以下程序段的输出结果是      int x=3;       do      { printf("%3d",x-=2);}      while(!(–x));
选项:
A:1
B:3 ,0
C:1,-2
D:死循环
答案: 【1,-2

43、 问题:若X是int型变量,且有下面的程序片段: for (X=3;X < 6;X++)   printf((X%2)?("%d"):("##%d"),X); 上面程序片段的输出结果是
选项:
A: 
3
B:##3,换行
C: ##3
D:3##4    5
答案: 【3##4    5

44、 问题:请读程序: #include"stdio.h"main() { float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(1) { if(fabs(z)>1.0)    { x=y; y=z; z=x/y; } else      break; } printf("%f",y); } 若运行时从键盘上输入3.6  2.4(表示回车),则输出结果是
选项:
A:1.500000
B:1.600000
C: 2.000000
D:2.400000
答案: 【1.600000

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦
   

发表评论

电子邮件地址不会被公开。 必填项已用*标注