超星C语言程序设计_54期末答案(学习通2023题目答案)

超星C语言程序设计_54期末答案(学习通2023题目答案)

第6章 数据类型、超星常量、语言程变量、序设习通表达式

第6章数据类型测验

1、计期执行下列程序时输入:123 < 空格 > 456 < 空格 > 789 < 回车 >,末答输出结果是( ) int main( void) { char s[100]; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s \n",c,i,s); return 0; }.
A、123,案学456,789
B、1,题目456,789
C、1,答案23,456,789
D、1,超星23,456

2、以下选项中属于C语言的语言程数据类型是( )
A、复数型
B、序设习通逻辑型
C、计期双精度型
D、末答集合型

3、案学在C语言中,题目不正确的int类型的常数是( )
A、028
B、0
C、037
D、0xAF

4、下列描述中不正确的是
A、字符型数组中可以存放字符串
B、可以对字符型数组进行整体输入、输出
C、可以对整型数组进行整体输入、输出
D、不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

5、以下程序的输出结果是( ) void main( ) { int k=17; printf("%d,%o,%x \n",k,k,k); }
A、17,021,0x11
B、17,17,17
C、17,0x11,021
D、17,21,11

6、若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是( )
A、a的值是字符C
B、a的值是浮点型
C、不允许字符型和浮点型相加
D、a的值是字符‘A’的ASCII值加上1

7、以下选项中不属于C语言的类型的是 ( )
A、signed short int
B、unsigned long int
C、unsigned int
D、long short

8、在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是( )
A、a=20000+20000;
B、a=4000*10;
C、a=30000+10000;
D、a=4000L*10L;

9、在C语言中,合法的长整型常数是 ( )
A、OL
B、4962710
C、324562&
D、216D

10、以下有4组用户标识符,其中合法的一组是( ) A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define
A、A
B、B
C、C
D、D

11、以下选项中合法的字符常量是 ( )
A、"B"
B、'\010'
C、68
D、D

12、假定x和y为double型,则表达式x=2,y=x+3/2的值是 ( )
A、3.500000
B、3
C、2.000000
D、3.000000

13、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )
A、INPUT x、y、z;
B、scanf("%d%d%d",&x,&y,&z);
C、scanf("%d%d%d",x,y,z);
D、read("%d%d%d",&x,&y,&z);

14、以下选项中,非法的字符常量是( )
A、'\t'
B、\017'
C、"n"
D、'\xaa'

15、以下所列的C语言常量中,错误的是 ( )
A、0xFF
B、1.2e0.5
C、2L
D、'\72'

16、下列选项中,合法的C语言关键字是 ( )
A、VAR
B、cher
C、integer
D、default

17、下列变量定义中合法的是 ( )
A、short _a=1-.le-1;
B、double b=1+5e2.5;
C、long do=0xfdaL;
D、float 2_and=1-e-3;

18、下列变量名合法的是( )
A、#1
B、$567
C、a-b
D、m_number

19、请选出可用作C语言用户标识符的一组标识符( )
A、Void -define WORD
B、a3_b3 _123 IF
C、For -abc Case
D、2a Do sizeof

20、C语言中合法的字符常量是( )
A、'\084'
B、'\X43'
C、'ab'
D、"\0"

21、下面说法中正确的是( )
A、int型和long型运算先将int型转换成unsigned型,再转换
B、两个float型运算结果为double型
C、只要表达式中存在double型,所有其他类型数据都必须转
D、表达式中的类型转换与运算顺序有关

22、C语言中最简单的数据类型包括:__
A、整型,实型,逻辑型
B、整型,字符型,逻辑型
C、整型,实型,字符型
D、整型,实型,逻辑型,字符型

23、C语言提供的合法的数据类型关键字是:
A、Double
B、short
C、integer
D、Char

24、若有以下定义: char a; int b; float c; double d; 则表达式a*b+d-c值的类型为______.
A、float
B、int
C、char
D、double

25、下列标识中合法的用户标识符为____.
A、year
B、long
C、7 x yz
D、struct

26、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 ( )
A、char < int < long int < =float < double
B、char=int < long int<=float < double
C、char < int < long int=float=double
D、char=int=long int<=float < double

27、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )
A、7
B、8
C、6
D、2

28、下列四组选项中,均不是C语言关键字的选项是( )
A、define IF type
B、getc char printf
C、include scanf case
D、while go pow

29、下列四个选项中,均是C语言关键字的选项是 ( )
A、auto enum include
B、switch typedef continue
C、signed union scanf
D、if struct type

30、下面四个选项中,均是不合法的用户标识符的选项是
A、A P_0 do
B、float la0 _A
C、b-a goto int
D、_123 temp int

31、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( )
A、必须为字母
B、必须为下划线
C、必须为字母或下划线
D、可以是字母,数字和下划线中任一字符

32、下面四个选项中,均是合法整型常量的选项是 ( )
A、160 -0xffff 011
B、-0xcdf 01a 0xe
C、-0x46a 2e5 0x
D、-0x48a 2e5 0x

33、下面四个选项中,均是不合法的整型常量的选项是( )
A、--0f1 -0xffff 0011
B、-0xcdf 017 12,456
C、-018 999 5e2
D、-0x48eg -068 03f

34、下面四个选项中,均是不合法的浮点数的选项是( )
A、160. 0.12 e3
B、123 2e4.2 .e5
C、-.18 123e4 0.0
D、-e3 .234 1e3

35、下面四个选项中,均是合法的浮点数的选项是( )
A、+1e+1 5e-9.4 03e2
B、-.60 12e-4 -8e5
C、123e 1.2e-.4 +2e-1
D、-e3 .8e-4 5.e-0

36、下面四个选项中,均是合法转义字符的选项是( )
A、-e3 .8e-4 5.e-0
B、'\'' '\017' '\"'
C、'\018' '\f' 'xab'
D、'\\0' '\101' 'xlf'

37、下面四个选项中,均是不合法的转义字符的选项是( )
A、'\"' '\\' '\xf
B、'\1011' '\' '\a'
C、'\011' '\f' '\}'
D、'\abc' '\101' 'xlf'

38、下面正确的字符常量是 ( )
A、"c"
B、'\\''
C、'W'
D、''

39、下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )
A、016 0x8f 018
B、0abc 017 0xa
C、010 -0x11 0x16
D、0a12 7ff -123

40、下面四个选项中,均是正确的八进制数或十六进制数的选项是( )
A、-10 0x8f -011
B、0abc -017 0xc
C、0010 -0x11 0xf1
D、0a12 -0x123 -0xa

41、下面四个选项中,均是正确的数值常量或字符常量的选项是( )
A、0.0 0f 8.9e '&'
B、"a" 3.9e-2.5 1e1 '\"'
C、'3' 011 0xff00 0a
D、+001 0xabcd 2e2 50.

42、下面不正确的字符串常量是( )
A、"abc"
B、123'
C、"0"
D、" "

43、已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合C语言语法的表达式是( )
A、x%(-3)
B、w+=-2
C、k=(a=2,b=3,a+b)
D、a+=a-=(b=4)*(a=3)

44、已知各变量的类型如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是 ( )
A、a+=a-=(b=4)*(a=3)
B、a=a*3+2
C、x%(-3)
D、y=float(i)

45、以下不正确的叙述是 ( )
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

46、以下正确的叙述是 ( )
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、在C程序中,无论是整数还是实数,都能被准确无误地表示
D、在C程序中,%是只能用于整数运算的运算符

47、在C语言中,int、char和short三种类型数据在内存中所占用的字节数( )
A、由用户自己定义
B、均为2个字节
C、是任意的
D、由所用机器的机器字长决定

48、若有说明语句:char c='\072';则变量c
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、说明不合法,c的值不确定

49、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A、2.500000
B、2.750000
C、3.500000
D、0.000000

50、sizeof(float)是
A、一个双精度型表达式
B、一个整型表达式
C、一种函数调用
D、一个不合法的表达式

51、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为
A、int
B、float
C、double
D、不确定

52、在C语言中,char型数据在内存中的存储形式是( )
A、补码
B、反码
C、原码
D、ASCII码

53、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )
A、n=(n*100+0.5)/100.0
B、m=n*100+0.5,n=m/100.0
C、n=n*100+0.5/100.0
D、n=(n/100+0.5)*100.0

54、设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( )
A、0--255
B、0--32767
C、0--65535
D、0--2147483647

55、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为 ( )
A、float
B、char
C、int
D、double

56、字符型常量在内存中存放的是字符对应的____
A、ASCII代码
B、BCD代码值
C、内码值
D、十进制代码值

57、以下关于字符串的不正确说法是( )
A、字符串长度就是字符串中字符的个数
B、字符串的尾部会自动追加一个"字符串结束标志"
C、字符串的长度为字符个数加1
D、在C语言中常用字符型数组来存放字符串

58、C语言提供的合法的关键字是( )
A、swicth
B、cher
C、Case
D、default

59、C语言中,double类型数据占( )个字节,char类型数据占( )个字节
A、1
B、2
C、4
D、8和1

60、下列不正确的转义字符是( )
A、'\\'
B、'\'
C、'\101'
D、'\0'

61、以下4个选项中,不能看作一条语句的是 ( )
A、;
B、a=5,b=2.5,c=3.6;
C、if(b!=5)x=2;y=6;
D、return j;

62、以下关于C语言数据类型使用的叙述中错误的是
A、若要准确无误差地表示自然数,应使用整数类型
B、若要保存带有多位小数的数据,应使用双精度类型
C、若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型
D、若只处理"真"和"假"两种逻辑值,应使用逻辑类型

63、以下选项中不合法的标识符是( )
A、print
B、FOR
C、& a
D、_00

64、以下选项中合法的标识符是________。
A、1_1
B、2013-1-1
C、_11
D、%1_ _

65、以下选项中,能用作用户标识符的是________。
A、void
B、8_8
C、_0_
D、unsigned

66、以下C语言用户标识符中,不合法的是( )
A、_1
B、AaBc
C、a_b
D、a--b

67、以下选项中关于C语言常量的叙述错误的是( )
A、所谓常量,是指在程序运行过程中,其值不能被改变的量
B、常量分为整型常量、实型常量、字符常量和字符串常量
C、常量可分为数值型常量和非数值型常量
D、经常被使用的变量可以定义成常量

68、C源程序中不能表示的数制是________。
A、二进制
B、八进制
C、十进制
D、十六进制

69、以下选项中能表示合法常量的是( )
A、整数:1,200
B、实数:1.5E2.0
C、字符斜杠:'\'
D、字符串:"\007"

70、以下选项中,能用作数据常量的是________。
A、o115
B、0118
C、1.5e1.5
D、115L

71、以下选项中不能用作C程序合法常量的是( )
A、1,234
B、'\123'
C、123
D、"\x7g"

72、以下选项中不能作为C语言合法常量的是________。
A、'cd'
B、1.00E+05
C、"\\a"
D、'\011'

73、以下选项中可用作C程序合法实数的是( )
A、1.00E-01
B、3.0e0.2
C、E9
D、9.12E

74、以下选项中不属于字符常量的是 ( )
A、′C′
B、′′C′′
C、′\xCC′
D、′\072′

75、有以下定义语句,编译时会出现编译错误的是________。
A、char a='a';
B、char a='\n';
C、char a='aa';
D、char a='\x2d';

76、以下选项中正确的定义语句是________。
A、double a;b;
B、double a=b=7;
C、double a=7,b=7;
D、double,a,b;

77、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)________。
A、printf("%c\n",'a'-32);
B、printf("%d\n",'A');
C、printf("%c\n",65);
D、printf("%c\n",'B'-1);

78、下列可用于C语言用户标识符的一组是( )
A、void, define, WORD
B、a3_3,_123,Car
C、For, -abc, IF Case
D、2a, DO, sizeof

79、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )
A、大写字母
B、连接符
C、数字字符
D、下划线

80、下面各选项中,均是C语言合法标识符的选项组是( )
A、33 we auto
B、_23 me _3ew
C、_43 3e_ else
D、ER -DF 32

81、以下叙述中错误的是( )
A、用户所定义的标识符允许使用关键字
B、用户所定义的标识符应尽量做到"见名识意"
C、用户所定义的标识符中,大、小写字母代表不同标识
D、用户所定义的标识符必须以字母或下划线开头

82、下面四个选项中,均是不合法的用户标识符的选项是( )
A、c-b goto int
B、A P_0 do
C、float la0_A
D、_123 temp goto

83、下列是正确的用户自定义标识符的是( )
A、_w1
B、3_xy
C、int
D、LINE-3

84、以下选项均可用作C语言用户标识符的是( )
A、void,define,WORD
B、a3_b3,_123,IF
C、FOR,--abc,Case
D、2a,Do,Sizeof

85、以下选项中合法的标识符是( )
A、1_2
B、_12
C、2013-2-1
D、12_ _

86、以下合法的十六进制数是( )
A、0x
B、0x4de
C、0x1h
D、oX77

87、以下符合C语言语法的实型常量是( )
A、8.00E-02
B、3.14.159E
C、E14
D、2.2E0.5

88、以下选项中,不能作为合法常量的是( )
A、1.23E+05
B、1.23E+01
C、1.234e0.5
D、1.23E+06

89、以下选项中不属于字符常量的是( )
A、′′E′′
B、′E′
C、′\xCC′
D、′\072′

90、以下不合法的字符常量是( )
A、\b'
B、'\018'
C、'\xcc'
D、'\\'

91、以下选项中值为1的表达式是( )
A、1-'0'
B、1-'\0'
C、'1'-0
D、'\0'-'0'

92、设有定义:int k=1,m=2;float f=7;,则以下选项中错误的表达式是( )
A、k=k>=k
B、-k++
C、k%int(f)
D、k>=f>=m

93、有以下程序,其中%u表示按无符号整数输出 main() { unsigned int x=0xFFFF; /* x的初值为十六进制数 */ printf("%u\n ",x); } 程序运行后的输出结果是( )
A、-1
B、65535
C、32767
D、0xFFFF

94、以下程序的输出结果是 void main() { int a=20; printf("%d,%o,%x\n",a,a,a); }
A、20, 024,0x14
B、20, 24,14
C、20, 0x14,024
D、20, 20,20

95、以下选项中不属于C语言的类型的是( )
A、unsigned long int
B、long short
C、unsigned int
D、signed short int

96、有以下程序段 int j; float y; char name[50]; scanf("%2d%f%s",&j,&y,name); 当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )
A、55566
B、566
C、7777
D、566777

97、如已定义x和y为double类型,则表达式x=1,y=x+5/2的值是( )
A、2
B、3.000000
C、3
D、3.5

98、已知大写字母A的ASCII码的值是65,小写字母a的ASCII码的值是97,以下不能将变量c中的大写字母转换为对应小写字母的语句是( )
A、c=(c-'A')%26+'a'
B、c=c+32
C、c=c-'A'+'a'
D、c=('A'+c)%26-'a'

99、已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是( )
A、isupper(c)
B、'A'<=c<='Z'
C、'A'<=c&&c<='Z'
D、c<=('z'-32)&&('a'-32)<=c

100、数字字符0的ASCII值为48,若有以下程序: int main(void) { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); return 0; } 程序运行后的输出结果是( )
A、3,2
B、50,2
C、2,2
D、2,50

101、设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( )
A、int
B、float
C、double
D、不确定

第6章运算符和表达式测验

1、有以下定义:int a;long b;double x,y;则以下选项中正确的语句是( )
A、a%(int)(x-y)
B、a=x!=y;
C、(a*y)%b
D、y=x+y=x

2、以下不能正确表示代数式4cd/ab的C语言表达式是( )
A、4*c*d/a/b
B、c*d/a/b*4
C、c/a/b*d*4
D、4*c*d/a*b

3、表达式:(int)((double)9/2)-(9)%2的值是________。
A、0
B、3
C、4
D、5

4、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )
A、a=a++,i++;
B、i=(a+k)<=(i+k);
C、i=a%11;
D、i=!a;

5、设变量已正确定义并赋值,以下正确的表达式是( )
A、x=y*5=x+z
B、int(15.8%5)
C、x=y+z+5,++y
D、x=25%5.0

6、设有定义:float x=123.4567;则执行以下语句后的输出结果是 printf("%f\n",(int)(x*100+0.5)/100.0);
A、123.46
B、123.4567
C、123.45
D、123

7、设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两位,并将第3位四舍五入的是( )
A、x=(x*100+0.5)/100.0
B、x=(int)(x*100+0.5)/100.0
C、x=x*100+0.5/100.0
D、x=(x/100+0.5)*100.0

8、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )
A、++x,y=x--
B、x+1=y
C、x=x+10=x+y
D、double(x)/10

9、以下能正确定义赋初值的语句是( )
A、int n1=n2=10;
B、char c=32;
C、float f=f+1.1;
D、double x=12.3E2.5;

10、有以下定义:int a;long b;double x,y;则以下选项中正确的语句是( )
A、a%(int)(x-y)
B、a=x!=y;
C、(a*y)%b
D、y=x+y=x

11、设有定义:int x=2;,以下表达式中,值不为6的是________。
A、x*=x+1
B、x++,2*x
C、x*=(1+x)
D、2*x,x+=2

12、设有如下程序段: int x=2004,y=2008; printf("%d\n",(x,y)); 则以下叙述中正确的是( )
A、输出值为2004
B、输出值为2008
C、运行时产生出错信息
D、输出语句中格式说明符的个数少于输出项的个数,不能正确输出

13、下面程序的运行结果是 ( ) #include<stdio.h> void main() { int y=5, x=14; y=((x=3*y,x+6),x-1); printf("x=%d,y=%d",x,y); }
A、x=27,y=27
B、x=12,y=13
C、x=15,y=14
D、x=y=27

14、设有定义:int x=3;,以下表达式中,值不为12的是( )
A、x*=x+1
B、x++,3*x
C、x*=(1+x)
D、2*x,x+=6

15、有以下定义:int a;long b;double x,y;则以下选项中正确的语句是( )
A、a%(int)(x-y)
B、a=x!=y;
C、(a*y)%b
D、y=x+y=x

16、在C语言中,运算对象必须是整型数的运算符是( )
A、%
B、\
C、%和\
D、**

17、若变量已正确定义并赋值,以下符合C语言语法的表达式是( )
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b

18、已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合C语言语法的表达式是( )
A、x%(-3)
B、w+=-2
C、k=(a=2,b=3,a+b)
D、a+=a-=(b=4)*(a=3)

19、现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为:( )
A、int
B、double
C、float
D、char

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

21、设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( )
A、int
B、float
C、double
D、不确定

22、设有定义:int x=3;,以下表达式中,值不为12的是( )
A、x*=x+1
B、x++,3*x
C、x*=(1+x)
D、2*x,x+=6

23、若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是( )
A、a<>b+c
B、B、 ch=getchar()
C、a==b+c
D、a++

24、设有定义:int m=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是( )
A、++m
B、m+=1
C、m++
D、m+1

25、若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( )
A、a=1+(b=c)=4;
B、a=b=c+1;
C、a=(b=4)+c;
D、a=1+(b=c=4);

26、若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )
A、x=y==5;
B、x=n%2.5;
C、x+n=i;
D、x=5=4+1;

27、下列程序的输出结果是 ( ) #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

28、若变量已正确定义并赋值,以下符合C语言语法的表达式是( )
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b

29、以下叙述不正确的是( )
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在计算赋值表达式a=b后b中的值将放入a中,而b中的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

30、若有定义语句:int x=10;,则表达式x-=x+x的值为________。
A、-20
B、-10
C、0
D、10

31、表达式a+=a-=a=9的值是( )
A、9
B、-9
C、18
D、0

32、若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为________。
A、1.9
B、1
C、2
D、2.4

33、设有如下定义:int x=1,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是
A、1
B、0
C、-1
D、2

34、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 ( )
A、c=b=a;
B、(a=c) ‖(b=c) ;
C、(a=c) &&(b=c);
D、a=c=b;

35、若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为( )
A、1.4
B、1
C、2.0
D、2

36、假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w<x)?w: x; m=(m<y)?m:y; m=(m<z)?m: z; 则该程序运行后,m的值是:
A、4
B、3
C、2
D、1

37、以下关于运算符优先顺序的描述中正确的是 ( )
A、关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符
B、逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符
C、赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符
D、算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符

38、下列运算符中优先级最高的是 ( )
A、<
B、+
C、&&
D、!=

39、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )
A、A%2==1
B、!(A%2==0)
C、!(A%2)
D、A%2

40、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z) 的C语言表达式是( )
A、x/y*z
B、x*(1/(y*z))
C、x/y*1/z
D、x/y/z

41、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )
A、-3
B、9
C、-12
D、6

42、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为 ( )
A、不定值
B、4
C、3
D、1

43、若变量c为char类型,能正确判断出c为小写字母的表达式是( )
A、'a'<=c<= 'z'
B、(c>= 'a')||(c<= 'z')
C、('a'<=c)and ('z'>=c)
D、(c>= 'a')&&(c<= 'z')

44、以下程序的输出结果是 #include<stdio.h> void main() { int x=0.5; char z='a'; printf("%d\n", (x&&1)&&(z<'z') ); }
A、0
B、1
C、2
D、3

45、若变量已正确定义并赋值,下面符合C语言语法的表达式是( )
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7:c+b

46、C语言中运算对象必须是整型的运算符是 ( )
A、%=
B、/
C、=
D、<=

47、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 ( )
A、1
B、2
C、2.0
D、2.5

48、若变量a、i 已正确定义,且i已正确赋值,合法的语句是 ( )
A、a==1
B、++i;
C、a=a++=5;
D、a=int(i);

49、若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是( )
A、0
B、0.5
C、1
D、2

50、设有说明语句:char a='\72';则变量a
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、说明不合法

51、有如下程序段 int a=14,b=15,x; char c='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为( )
A、ture
B、false
C、0
D、1

52、设有 int x=11; 则表达式 (x++ * 1/3) 的值是( )
A、3
B、4
C、11
D、12

53、下列程序执行后的输出结果是(小数点后只写一位) #include<stdio.h> void main() { double d; float f; long l; int i; i=f=i=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); }
A、6 6 6.0 6.0
B、6 6 6.7 6.7
C、6 6 6.0 6.7
D、6 6 6.7 6.0

54、设 int x=1, y=1; 表达式(!x||y--)的值是( )
A、0
B、1
C、2
D、-1

55、下列程序的运行结果是 #include < stdio.h > void main() { int a=2,b=5; printf("a=%d,b=%d\n",a,b); }
A、a=%2,b=%5
B、a=2,b=5
C、a=d, b=d
D、a=%d,b=%d

56、判断字符型变量x是否是大写字母的正确表达式是___
A、'A' <= x <='z'
B、(x>=A) && (x <= Z)
C、('A'<= x) && ('Z' >= x)
D、(x >='A') && (x <='Z')

57、以下程序的输出结果是 #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、1 0 4
B、1 0 3
C、0 0 3
D、0 0 4

58、C语言提供的合法的数据类型关键字是____
A、Double
B、short
C、integer
D、Char

59、表达式:10!=9的值是___
A、true
B、非零值
C、0
D、1

60、若t为double类型,表达式t=1,t+5,t++执行完后,t的值是_____
A、1
B、6.0
C、2.0
D、1.0

61、若有以下说明和语名: int a=5 a++; 此处表达式a++的值是____
A、7
B、6
C、5
D、4

62、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____
A、522
B、264
C、144
D、-264

63、若有以下定义和语句: char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A") 则输出结果是_______
A、2,M
B、3,E
C、2,e
D、输出结果不确定

64、设有以下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)) 的输出结果是____
A、1
B、0
C、4
D、3

65、以下程序的输出结果是______ #include<stdio.h> int main() { int x=10,y=10; printf("%d %d\n",x--,--y); return 0; }
A、10 10
B、9 9
C、9 10
D、10 9

66、在C语言中,如果下面的变量都是int类型,则输出结果是______ sum=pad=5; pad=sum++,pad++,++pad; printf("%d\n",pad);
A、7
B、6
C、5
D、4

67、设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch 上面表达式的值是
A、A
B、a
C、Z
D、z

68、有以下程序 #include < stdio.h > void main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); }
A、2,1
B、3,2
C、4,3
D、2,--1

69、设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)的值为
A、1
B、2
C、3
D、0

70、假定有以下变量定义: int k=7,x=12; 则能使值为3 的表达式是________。
A、x%=(k%=5)
B、x%=(k-k%5)
C、x%=k-k%5
D、(x%=k)-(k%=5)

71、设有int i=10,j=10; 则printf("%d,%d\n",++i,j--)的输出是_____
A、11, 10
B、9 10
C、10 9
D、10,9

72、设 int b=2;表达式b/(b*2)的值是_______
A、0
B、0.5
C、0.500000
D、0.000000

73、设CH是字符型变量,其值为'A',下列表达式的值是 CH=(CH > ='A'&&CH < ='Z')?(CH+32):CH
A、A
B、a
C、z
D、Z

74、设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m= a < b)&&(n= c > d)后,m的值为_____
A、1
B、2
C、3
D、0

75、设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)

76、设x、y、z和k都是int型变量,则执行表达式: x=(y=4,z=16,k=32)后,x的值为_____
A、4
B、16
C、32
D、52

77、设A,B和C都是int型变量,且A=3,B=4,C=5, 则下列 表达式中,值为0的表达式是:
A、'A'&&'B'
B、A < =B
C、A||B+C&&BC
D、((A= 'A' && CH < = 'Z')? (CH +32):CH

78、下列赋值语句正确的是(设int a,x) ( )
A、a=(a[1]+a[2])/2
B、a*=*a+1
C、a=(x=1,x++,x+2)
D、a="good"

79、表达式(a=3*5,a*5),a+5的值是多少( )
A、20
B、80
C、不能确定
D、15

80、字符形式"\b"的功能是( )
A、换行
B、回车
C、退格
D、横向跳格

81、设int x=5,y=4,(--x==y++)? --x:++y的值是:
A、5
B、3
C、4
D、6

82、设有整型变量a,b,c,它们的初值是1运行表达式: ++a||++b&++c后,a,b,c的值分别是:_______
A、2,1,1
B、2,2,1
C、1,2,1
D、1,1,2

83、已知:char a; int b; float c; double d ; 则表达式2+a+9*b*5*c-5*d的值是__
A、double
B、int
C、float
D、boolean

84、设整型变量a为10,b为3,下列的表达式值为1的是____
A、!(b==a/3)
B、b!=a%7
C、a>0&&b<0
D、a!=b||a>=b

85、若有以下定义和语句: int u=010,v=0x10,w=10; printf(″%d,%d,%d\n″,u,v,w); 则输出结果是:_____
A、8,16,10
B、10,10,10
C、8,8,10
D、8,10,10

86、设x为int型变量,则执行以下语句后,x的值为_______. x=10; x+=x-=x-x;
A、10
B、20
C、40
D、30

87、执行语句x=(a=3,b=a--)后x,a,b的值为_____
A、3 3 2
B、3 2 2
C、3 2 3
D、2 3 2

88、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是_____
A、把x和y按从大到小排列
B、把x和y按从小到大排列
C、无确定结果
D、交换x和y中的值

89、阅读下列程序段,其正确输出为( ) a=10;b=50;c=30; if(a>b) a=b; b=c;c=a; printf("a=%d,b=%d,c=%d\n",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

90、若有两条语句 static char x[] ="abcde"; static char y[] ={ 'a','b','c','d','e'}; 则下列语法中正确的是____
A、x数组和y数组的长度相同
B、x数组的长度小于y数组的长度
C、x数组的长度大于y数组的长度
D、x数组等价于y数组

91、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是______
A、1
B、0
C、4
D、3

92、设A=3,B=4,执行 printf("%d,%d",(A,B),(B,A));的输出是____
A、3,4
B、4,3
C、3,3
D、4,4

93、若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf("%d",(x,y)); 上面程序片段的输出结果是( )
A、200
B、100
C、200 100
D、输出格式符不够,输出不确定的值

94、putchar函数可以向终端输出一个( )
A、整型变量表达式值
B、实型变量值
C、字符串
D、一个字符或字符型变量值

95、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为
A、D
B、68
C、不确定的值
D、C

96、表达式18/4*sqrt(4.0)/8值的数据类型为( )
A、int
B、float
C、double
D、不确定

97、设以下变量均为int类型,则值不等于7的表达式是( )
A、(x=y=6,x+y,x+1)
B、(x=y=6,x+y,y+1)
C、(x=6,x+1,y=6,x+y)
D、(y=6,y+1,x=y,x+1)

98、若有语句;char str1[8],str2[8]={ "hello!"}; 则能将字符串hello!赋给str1的正确语句是_____
A、str1=str2
B、strcpy(str1,str2)
C、str1==str2
D、strcpy(str2,str1)

99、b’在内存中占____个字节。“b”在内存中占____个字节
A、1和2
B、2
C、3
D、4

100、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是 ( )
A、a\bre\'hi\'y\\\bou
B、a\bre\'hi\'y\bou
C、re'hi'you
D、abre'hi'y\bou

101、以下说法中正确的是( )
A、#define和printf都是C语句
B、#define是C语句,而printf不是
C、printf是C语句,但#define不是
D、#define和printf都不是C语句

102、在下列运算符中,优先级别最高的是( )
A、<=
B、=
C、%
D、&&

103、设有数组定义: char array [ ]="China"; 则数组 array所占的空间为( )
A、4个字节
B、5个字节
C、6个字节
D、7个字节

104、语句:printf("%d \n",12&&12);的输出结果是( )
A、12
B、1
C、24
D、0

105、以下运算符中优先级最低的是 ( )
A、&&
B、&
C、||
D、++

106、有以下程序,其中k的初值为八进制数 #include<stdio.h> void main() { int k=011; printf("%d\n",k++); }程序运行后的输出结果是( )
A、12
B、11
C、10
D、9

107、有以下程序 #include<stdio.h> void main() { int x=011; printf("%d\n",++x); } 程序运行后的输出结果是( )
A、12
B、11
C、10
D、9

108、已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A、kk>=′A′&& kk<=′Z′
B、!(kk>=′A′||kk<=′Z′)
C、(kk+32)>=′a′&&(kk+32)<=′z′
D、isalpha(kk)&&(kk<91)

109、有以下程序: #include <stdio.h> void main() { char cl,c2; cl='A'+'8'-'4'; c2='A'+'8'-'5'; printf("%c,%d\n",cl,c2); } 已知字母A的ASCIl码为65,程序运行后的输出结果是____
A、E,68
B、D,69
C、E,D
D、输出无定值

110、以下叙述不正确的是 ( )
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在计算赋值表达式a=b后b中的值将放入a中,而b中的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

111、现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为:
A、int
B、double
C、float
D、char

112、以下定义语句中正确的是 ( )
A、int a=b=0;
B、char A=65+1,b='b';
C、float a=1,*b=&a,*c=&b;
D、double a=0.0;b=1.1;

113、设有定义int a;float b;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876<空格> 854.0<回车>,a和b的值分别是 ( )
A、876和543.000000
B、87和6.000000
C、87和543.000000
D、76和543.000000

114、以下程序执行后的输出结果是 fun(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } void main() { int j=1,m=1,k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); }
A、5,5
B、5,11
C、11,11
D、11,5

115、浮点型常量的指数表示中,e是可以省略的。

116、表达式语句和表达式没有什么区别。

117、增1减1运算符的前缀运算和后缀运算的表达式值是相同的。

118、变量被定义后,它不仅有一个确定的地址值,而且还会有一个确定的本身值。

119、分号是C语言中语句的结束符,不可用作分隔符。

120、C语言规定:定义符号常量时必须用大写字母。

121、一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。

122、任何表达式语句都是表达式加分号组成的。

123、在C语言中,逗号既可以作为运算符,也可以作为分隔符。

124、变量被定义后,它的作用域和寿命就被确定了,并且不可改变。

125、double型变量在内存中占的字节数比int型变量在内存中占的字节数多。

第1章 C语言概述

第1章C语言概述测验

1、C语言程序的基本单位是( )。
A、函数
B、过程
C、子程序
D、子例程

2、下列各选项中,合法的c语言关键字是( )。
A、integex
B、sin
C、string
D、void

3、C语言的程序一行写不下时,应该( )。
A、用回车符换行
B、在任意一个空格处换行
C、用分号换行
D、用逗号换行

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

5、以下选项中正确的整型常量是( )。
A、34.1
B、-80
C、2,000
D、1 2 3

6、在C程序中,可以作为用户标识符的一组标识符是( )。
A、void define WORD
B、as_b3 _224 Else
C、switch _wel ease
D、4b DO SIG

7、下列不合法的十六进制数是( )
A、oxff
B、0Xcde
C、0x11
D、0x23

8、在c语言中,下列合法的字符常量是( )
A、'\039'
B、'\x76'
C、'ab'
D、'\o'

9、以下选项中合法的用户标识符是( )
A、int
B、a#
C、5mem
D、_243

10、( )是构成c语言程序的基本单位
A、函数
B、变量
C、子程序
D、语句

11、一个C语言程序总是从( )开始执行
A、主过程
B、主函数
C、子程序
D、主程序

12、以下叙述不正确的是( )
A、一个c源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main()函数
C、c程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面

13、C语言规定:在一个源程序中,main()函数的位置( )
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后

14、以下叙述正确的是( )
A、在C程序中,main()函数必须位于程序的最前面
B、C程序的每行中只能写一条语句
C、C语言本身没有输入输出语句
D、在对一个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()函数必须放在程序的开始部分

18、C语言可执行程序的开始执行点是( )
A、程序中的一条可执行语句
B、程序中第一个函数
C、程序中的main函数
D、包含文件中的第一个函数

19、一个C程序的执行是从( )
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束

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

21、以下叙述不正确的是
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面

22、以下叙述中错误的是________。
A、C语言编写的函数源程序,其文件名后缀可以是.C
B、C语言编写的函数都可以作为一个独立的源程序文件
C、C语言编写的每个函数都可以进行独立的编译并执行
D、一个C语言程序只能有一个主函数

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

24、以下叙述中正确的是________。
A、C程序的基本组成单位是语句
B、C程序中的每一行只能写一条语句
C、简单C语句必须以分号结束
D、C语句必须在一行内写完

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

26、有以下程序段 #include "stdio.h" void main() { … while(getchar()!='\n'); … } 以下叙述中正确的是
A、此while语句将无限循环
B、getchar()不可以出现在while语句的条件表达式中
C、当执行此while语句时,只有按回车键循环才能停止
D、当执行此while语句时,按任意键程序就能继续执行

27、若有以下定义和语句 char s1[10]="abcd!",*s2="\n123\\"; printf("%d %d\n",strlen(s1),strlen(s2)); 则输出结果是
A、5 5
B、105
C、107
D、58

28、计算机能直接执行的程序是________。
A、源程序
B、目标程序
C、汇编程序
D、可执行程序

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

30、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
A、C语言程序仅可以编译执行
B、C语言程序仅可以解释执行
C、C语言程序既可以编译执行又可以解释执行
D、以上说法都不对

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

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

33、下列叙述中错误的是
A、一个C语言程序只能实现一种算法
B、C程序可以由多个程序文件组成
C、C程序可以由一个或多个函数组成
D、一个C函数可以单独作为一个C程序文件存在

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

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

36、以下叙述中正确的是
A、C语言程序将从源程序中第一个函数开始执行
B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用main作为主函数名,程序从此开始执行,在此结束
D、main作为用户标识符,用以命名任意一个函数作为主函数

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

38、以下叙述中错误的是
A、C语句必须以分号结束
B、复合语句在语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句

39、C语言函数返回类型的默认定义类型是void

40、C语言的书写格式不会影响程序的可读性。

41、C语言是一种非结构化程序设计语言。

42、C语言程序在书写上只能是一条语句写一行。

43、C语言是一种具有某些低级语言特征的高级语言。

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

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

46、下划线是标识符中的合法字符。

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

第2章 简单的C程序设计

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

1、以下说法中正确的是()
A、#define和printf都是C语句
B、#define是C语句,而printf不是
C、printf是C语句,但#define不是
D、#define和printf都不是C语句

2、以下程序段的输出结果是() int a=1234; printf("%2d\n",a);
A、12
B、34
C、1234
D、提示出错、无结果

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

4、以下合法的赋值语句是()
A、x=y=100;
B、d--;
C、x+y;
D、c=int(a+b);

5、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是() printf("%d,%d\n",x--,--y);
A、10,3
B、9,3
C、9,2
D、10,2

6、以下程序的输出结果是( ) #include<stdio.h> void main() { int a=3; printf("%d\n",(a+=a-=a*a)); }
A、-6
B、12
C、0
D、-12

7、以下程序的输出结果是( ) #include<stdio.h> void main() { char c='z'; printf("%c",c-25); }
A、a
B、Z
C、z-2
D、y

8、以下程序的输出结果是 ( ) #include<stdio.h> void main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); }
A、5
B、4
C、6
D、不确定

9、以下程序的输出结果是( ) #include<stdio.h> void main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf("%d\n",d); }
A、1
B、0
C、非0的数
D、-1

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

11、下列程序执行后的输出结果是( ) #include<stdio.h> void main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }
A、G
B、H
C、I
D、J

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

13、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是( ) (说明:'\b'是退格符)
A、a\bre\'hi\'y\\\bou
B、a\bre\'hi\'y\bou
C、re'hi'you
D、abre'hi'y\bou

14、有以下程序 #include<stdio.h> void main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )
A、2,1
B、3,2
C、4,3
D、2,-1

15、下列选项中,不正确的赋值语句是()
A、++t;
B、n1=(n2=(n3=0));
C、k=1=j;
D、a=b+c==1;

16、以下程序的输出结果( ) #include<stdio.h> void main() { int i=010,j=10; printf("%d,%d\n",++i,j--); }
A、11,10
B、9,10
C、010,9
D、10,9

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

18、请读程序 int i =65536; printf("%d\n",i); 上面程序的输出结果是()
A、65535
B、0
C、有语法错误,无输出结果
D、1

19、已知字符A的ASCII码为十进制的65,下面程序的输出是( ) #include<stdio.h> void main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); }
A、67,D
B、B,C
C、C,D
D、不确定的值

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

21、下面程序的输出是( ) #include<stdio.h> void main() { int k=11; printf("k=%d,k=%o,k=%x\n",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

22、若有以下定义和语句: int u=010,v=0x10,w=10; printf(″%d,%d,%d\n″,u,v,w); 则输出结果是()
A、8,16,10
B、10,10,10
C、8,8,10
D、8,10,10

23、以下定义和语句: char cl='b',c2='e'; printf(″%d,%c\n″,c2-c1,c2-'a'+'A'); 则输出结果是()
A、2,M
B、3,E
C、2,E
D、输出项与对应的格式控制不一致,输出结果不确定

24、设x为int型变量,则执行以下语句后,x的值为() x=10; x+=x-=x-x;
A、10
B、20
C、40
D、30

25、以下程序的输出结果是 ( ) #include<stdio.h> void main() { int a=12,b=12; printf("%d%d\n",--a,++b); }
A、10 10
B、12 12
C、11 10
D、11 13

26、以下程序的输出结果是( ) #include<stdio.h> void main() { int k=17; printf("%d,%o,%x \n",k,k,k); }
A、17,021,0x11
B、17,17,17
C、17,0x11,021
D、17,21,11

27、下面程序的输出是( ) #include<stdio.h> void main() { int x=023; printf("%d\n",--x); }
A、17
B、18
C、23
D、24

28、以下程序的输出结果是( ) #include<stdio.h> void main() { char str[12]={ 's','t','r','i','n','g'}; printf("%d\n",strlen(str)); }
A、6
B、7
C、11
D、12

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

30、语句:printf("%d \n",12&&12);的输出结果是()
A、12
B、1
C、24
D、0

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

32、设有int I=10,j=10;则printf("%d,%d\n",++I,j--)的输出是()
A、11, 10
B、9 10
C、10 9
D、10,9

33、设A=3,B=4,执行 printf("%d,%d",(A,B),(B,A));"的输出是()
A、3,4
B、4,3
C、3,3
D、4,4

34、若有定义和语句: char s[10];s=″abcd″;printf(″%s\n″,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,0x11
B、17,17,17
C、17,0x11,021
D、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;

37、下面哪个是C语言中的正确赋值语句()
A、a=1,b=2
B、i++;
C、a=b=5
D、y=int(x)

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

39、执行程序段char str[20]={ 'a','b','c','o'}; int len=strlen(str); 变量len的值为( )
A、20
B、4
C、3
D、3或4或20

40、以下程序的输出结果是( ) #include<stdio.h> void main() { int a=12,b=12; printf("%d%d\n",--a,++b); }
A、10 10
B、12 12
C、11 10
D、11 13

41、有以下程序 #include<stdio.h> void main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )
A、2,1
B、3,2
C、4,3
D、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

43、下面程序的输出是( ) #include<stdio.h> void main() { char p1[10] ="abc", p2[] ="ABC"; printf("%s\n", strcat(p1,p2)); }
A、ABCabc
B、ABabc
C、abcABC
D、不确定的值

44、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( ) #include<stdio.h> void main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); }
A、67,D
B、B,C
C、C,D
D、不确定的值

45、下面程序的输出是( ) #include<stdio.h> void main() { int x=10,y=3; printf("%d\n",y=x/y); }
A、0
B、1
C、3
D、不确定的值

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\n",s--); printf("%d\n,--s); }
A、7,7
B、7,5
C、6,7
D、7,6

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

48、下列程序执行后的输出结果是( ) #include<stdio.h> void main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); }
A、G
B、H
C、I
D、J

49、以下程序运行后,输出结果是( ) #include<stdio.h> void main() { char s[]="abcde"; s+=2; printf("%ld\n",s); }
A、cde
B、字符c的ASCII码值
C、字符c的地址
D、出错

50、若有以下定义和语句: char s1[]=″12345″,s2[]=″1234″; printf(″%d\n″,strlen(strcpy(s1,s2))); 则输出结果是( )
A、4
B、5
C、9
D、10

51、以下程序的输出结果是( ) #include<stdio.h> void main() { int a=12,b=12; printf("%d %d\n",--a,++b); }
A、10 10
B、12 12
C、11 13
D、11 10

52、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( ) #include<stdio.h> void main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%c,%c\n",ch1,ch2); }
A、67,D
B、B,C
C、C,D
D、ch2='A'+'6'-'3'

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\n",s--); printf("%d\n,--s); }
A、7,7
B、7,5
C、6,7
D、7,6

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

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

56、设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",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\n",x--,--y); return 0; }
A、10 10
B、9 9
C、9 10
D、10 9

58、以下程序的输出结果是( ) #include<stdio.h> int main() { int x=10 ,y=10; printf("%d,%d\n",x--,--y); return 0; }
A、10,10
B、9,9
C、9,10
D、10,9

59、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是()
A、200
B、100
C、100 200
D、输出格式符不够,输出不确定的值

60、请读程序: #include<stdio.h> void main() { int A; float B, C; scanf("%2d%3f%4f",&A,&B,&C); printf("\nA=%d,B=%f,C=%f\n",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

第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

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

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、“假”

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

6、判断char型变量cl是否为小写字母的正确表达式是()
A、'a'<=cl<='z'
B、(cl>=a)&&(cl<=z)
C、('a'>=cl)||('z'<=cl)
D、(cl>='a')&&(cl<='z')

7、若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()
A、(exp==0)
B、(exp!=0)
C、(exp==1)
D、(exp!=1)

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)

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)

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

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)

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)

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)

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

15、判断字符型变量x是否是大写字母的正确的表达式()
A、'A'<=x<='Z'
B、(x>=A)&&(x<=Z)
C、('A'<=x)&&('z'=>x)
D、(x>='A')&&(x<='Z')

16、C语言的对语句中用作判断的表达式一般为()
A、关系表达式
B、逻辑表达式
C、算术表达式
D、逻辑表达式和关系表达式

17、C语言中的逻辑表达式值为真相当于值( )
A、1
B、0
C、T
D、.T.

18、在C语言中,逻辑值"真"用( )表示
A、TRUE
B、大于0的数
C、非0的整数
D、非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

第 3 章 选择结构测试

1、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A、a < > 0
B、!a
C、a=0
D、a!=0

2、以下程序输出结果是( ) #include< stdio.h > void main() { int m=5; if (m++ > 5) printf ("%d\n",m); else printf ("%d\n",m--); }
A、7
B、6
C、5
D、4

3、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( ) #include<stdio.h> void main() { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); }
A、7和5
B、6和3
C、7和4
D、6和4

4、若变量都已经说明,则以下程序段输出为( ) a=10;b=50;c=30; if (a > b) a=b; b=c;c=a; printf("a=%db=%dc=%d\n",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

5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的 else总是与()组成配对关系。
A、其上面距它最近的,并且没有其他else与其配对的if相配对
B、在同一行上的if
C、缩排位置相同的if
D、在其之前未配对的if

6、以下程序的输出结果是 ( ) #include<stdio.h> void main() { int a= -1,b=1; if((++a < 0)&& ! (b-- < =0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a); }
A、-1 1
B、0 1
C、1 0
D、0 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\n",s); }
A、14
B、16<

学习通C语言程序设计_54

学习通C语言程序设计_54是一门非常重要的计算机编程语言课程,它是计算机科学与技术专业的必修课程之一。

C语言是一种广泛使用的编程语言,它具有高效、简洁、可移植、可扩展等特点。在计算机行业中,C语言被广泛应用于系统软件、应用软件、游戏开发等领域。

学习通C语言程序设计_54的主要内容

学习通C语言程序设计_54的主要内容包括:基本语法、数据类型、运算符、流程控制结构、函数、指针、数组、结构体、文件操作等。

基本语法

在学习通C语言程序设计_54中,学生首先学习的是C语言的基本语法。这包括:变量、常量、运算符、表达式、语句、注释等。

C语言中的变量可以被看作存储数据的容器,它们具有不同的数据类型。C语言中的常量是指固定不变的值,可以直接使用或定义为变量。运算符用于执行各种计算操作,而表达式则是由运算符和操作数构成的式子。

语句是C语言中的基本执行单元,它们用于控制程序流程。注释是程序员在代码中添加的说明信息,它对于程序的可读性和可维护性非常重要。

数据类型

C语言中的数据类型包括基本数据类型和派生数据类型。基本数据类型包括整型、浮点型、字符型、布尔型等。派生数据类型包括数组、指针、结构体、联合体等。

在学习通C语言程序设计_54中,学生需要掌握各种数据类型的定义、使用方法和特点。

运算符

C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。在学习通C语言程序设计_54中,学生需要掌握各种运算符的优先级、结合性、使用方法等。

流程控制结构

C语言中的流程控制结构包括顺序结构、选择结构和循环结构。顺序结构是指程序按照顺序执行,选择结构是根据条件判断来执行不同的代码块,循环结构是指程序可以重复执行某个代码块。

在学习通C语言程序设计_54中,学生需要掌握各种流程控制结构的使用方法、注意事项等。

函数

在C语言中,函数是一段独立的代码块,它可以被重复使用。在学习通C语言程序设计_54中,学生需要掌握函数的定义、参数传递、返回值等。

指针

指针是C语言中非常重要的概念,它是一种特殊的变量类型,用于存储内存地址。在学习通C语言程序设计_54中,学生需要掌握指针的定义、使用方法、指针运算等。

数组

数组是一种存储同类型数据的集合。在学习通C语言程序设计_54中,学生需要掌握数组的定义、初始化、元素访问、多维数组等。

结构体

结构体是一种由不同类型数据成员组成的数据类型。在学习通C语言程序设计_54中,学生需要掌握结构体的定义、初始化、成员访问、嵌套结构体等。

文件操作

C语言提供了一系列文件操作函数,可以通过这些函数打开、创建、关闭文件,以及对文件进行读写等操作。在学习通C语言程序设计_54中,学生需要掌握文件操作函数的使用方法和注意事项。

学习通C语言程序设计_54的重要性

学习通C语言程序设计_54对于计算机科学与技术专业的学生来说非常重要。首先,掌握C语言可以提高计算机编程能力,从而更好地理解计算机原理和计算机系统。其次,C语言被广泛应用于各种软件开发领域,如系统软件、应用软件、游戏开发等,掌握C语言可以提高就业竞争力。最后,C语言是学习其他高级编程语言的基础,掌握C语言可以为后续学习打下坚实基础。

结语

学习通C语言程序设计_54是一门非常重要的计算机编程语言课程,它包括基本语法、数据类型、运算符、流程控制结构、函数、指针、数组、结构体、文件操作等内容。掌握C语言可以提高计算机编程能力,为就业和后续学习打下坚实基础。