C语言期末总测试题

C语言期末总测试题

段段给源文件作了优化排版处理,说明如下:
1.修改了大量中英文标点问题;
2.使用了等宽字体,代码显示更规整;
3.代码全部重新排版,修改了大量扫描识别错误,如:l与1,一与-,十与+,及缺字错字多字,大小写错误,空格错误等等,大部分代码测试复制下来可以直接运行;
4.少量题目本身有问题或有缺陷,做了一些修改;

by 段育凯

2014年12月

下载地址:C语言总测试题(不含答案版)

下载地址:C语言总测试题(含答案版)

1.一个C程序的执行是从:

A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
备注及演草:
您的答案:A
2.以下叙述正确的是:

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

A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
备注及演草:
您的答案:D
4.C语言规定,在一个源程序中main函数的位置:

A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
备注及演草:
您的答案:C

5.一个C语言程序是由:

A)一个主程序和若干子程序组成 B)函数组成
C)若干过程组成D)若干子程序组成
备注及演草:
您的答案:B
6.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为

A)char < int < 1ong int <= float < double
B)char = int < 1ong int <= float < double
C)char < int < 1ong int = float = double
D)char = int = 1ong int <= float < double
备注及演草:
您的答案:A
7.若x,i,j和k都是int型变量,则执行下面表达式后x的值为
:x=(i=4,j=16,k=32)

A)4B)16C)32D)52
备注及演草:
您的答案:C
8.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:

A)7B)8C)6D)2
备注及演草:
您的答案:B
9.下列四组选项中,均不是C语言关键字的选项是

A)B)C)D)
definegetcincludewhile
IFcharscanfgo
typeprintfcasepow
备注及演草:
您的答案:A
10.下面四个选项中,均是C语言关键字的选项是

A)B)C)D)
autoswitchsignedif
enumtypedefunionstruct
includecontinuescanftype
备注及演草:
您的答案:B
11.下面四个选项中,均是不合法的用户标识符的选项是:

A)B)C)D)
Afloatb-a-123
P_01a0gototemp
do-AintINT
备注及演草:
您的答案:C
12.C语言中的标识符只能由字母、数字和下划线三种字符组成
,且第一个字符:

A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母,数字和下划线中任一种字符
备注及演草:
您的答案:C
13.下面四个选项中
,均是合法整型常量的选项是:

A)B)C)D)
160-0xcdf-01-0x48a
-0xffff01a986,0122e5
0110xe06680x
备注及演草:
您的答案:A
14.下面四个选项中,均是不合法的整型常量的选项是:

A)B)C)D)
-0f1-0Xcdf-018-0x48eg
-0xffff017999-068
001112,4565e203f
备注及演草:
您的答案:D
15.下面四个选项中
,均是不合法的浮点数的选项是:

A)B)C)D)
160.123-.18-e3
0.122e4.2123e4.234
e3.e50.01e3
备注及演草:
您的答案:B
16.下面四个选项中
,均是合法浮点数的选项是

A)B)C)D)
+1e+1-.60123e-e3
5e-9.412e-41.2e-.4.8e4
03e2-8e5+2e-15.e-0
备注及演草:
您的答案:B
17.下面四个选项中,均是合法转义字符的选项是:

A)B)C)D)
‘\”‘\’‘\018’‘\\0’
‘\\’‘\017’‘\f’‘101’
‘\n’‘\”‘‘xab’‘xlf’
备注及演草:
您的答案:A
18.下面四个选项中
,均是不合法的转义字符的选项是:

A)B)C)D)
‘\”‘\1011’‘\011’‘\abc’
‘\\’‘\’‘\f’‘\101’
‘\xf’‘\a’‘\}’‘xlf’
备注及演草:
您的答案:B
19.下面正确的字符常量是:

A)“a”B)‘\\”C)‘W’D)
备注及演草:
您的答案:C
20.下面四个选项中,均是不正确的八进制数或十六进制数的选项是:

A)B)C)D)
0160abc0100a12
0x8f017-0x117ff
0180x80x16-123
备注及演草:
您的答案:D
21.下面四个选项中
,均是正确的八进制数或十六进制数的选项是:

A)B)C)D)
-100abc00100a12
0x8f-017-0x11-0x123
-0110xc0xf1-0x8
备注及演草:
您的答案:C
22.下面四个选项中,均是正确的数值常量或字符常量的选项是:

A)B)C)D)
0.0“a”‘3’+001
0f3.9E-2.50110xabcd
8.9e1e10xFF002e2
‘&’‘\”’0a50.
备注及演草:
您的答案:D
23.下面不正确的字符串常量是:

A)‘abc’B)“12’12”C)“0”D)“”
备注及演草:
您的答案:A
24.若有代数式3ae/bc,则不正确的C语言表达式是:

A)a/b/c*e*3B)3*a*e/b/c
C)3*a*e/b*cD)a*e/c/b*3
备注及演草:
您的答案:C
25.已知各变量的类型说明如下: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)
备注及演草:
您的答案:A
26.已知各变量的类型说明如下: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)
备注及演草:
您的答案:A
27.以下不正确的叙述是:

A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
备注及演草:
您的答案:D
28.以下正确的叙述是:

A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符
备注及演草:
您的答案:D
29.以下符合C语言语法的赋值表达式是:

A)d=9+e+f=d+9B)d=9+e,f=d+9
C)d=9+e,e++,d+9D)d=9+e++=d+7
备注及演草:
您的答案:B
30.已知字母A的ASCII码为十进制数65,且c2为字符型
,则执行语句c2=’A’+’6′-‘3’;后,c2中的值为:

A)DB)68C)不确定的值D)C
备注及演草:
您的答案:A
31.在C语言中,要求运算数必须是整型的运算符是:

A)/B)++C)!=D)%
备注及演草:
您的答案:D
32.若以下变量均是整型
,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为:

A)7B)8C)9D)10
备注及演草:
您的答案:B
33.在C语言中,int、char和short三种类型数据在内存中所占用的字节数

A)由用户自己定义B)均为2个字节
C)是任意的D)由所用机器的机器字长决定
备注及演草:
您的答案:D
34.若有说明语句
:char c=’\72’,则变量c:

A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法,c的值不确定
备注及演草:
您的答案:A
35.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A)2.500000B)2.750000C)3.500000D)0.000000
备注及演草:
您的答案:A
36.sizeof(float)是:

A)一个双精度型表达式B)一个整型表达式
C)一种函数调用D)一个不合法的表达式
备注及演草:
您的答案:B
37.设变量a是整型
,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为:

A)intB)floatC)doubleD)不确定
备注及演草:
您的答案:C
38.下面四个选项中
,均是非法常量的选项是:

A)B)C)D)
‘as’‘\\’-0x180xabc
-0fff‘\01’01177‘\0’
‘\0xa’12,4560xf“a”
备注及演草:
您的答案:A
39.在C语言中,char型数据在内存中的存储形式是:

A)补码B)反码C)原码D)ASCII码
备注及演草:
您的答案:D
40.设变量n为float类型
,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是:

A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0
备注及演草:
您的答案:B
41.表达式18/4*sqrt(4.0)/8值的数据类型为:

A)intB)floatC)doubleD)不确定
备注及演草:
您的答案:C
42.设C语言中,一个int型数据在内存中占2个字节,则unsigned
int型数据的取值范围为:

A)0~255B)0~32767C)0~65535D)0~2147483647
备注及演草:
您的答案:C
43.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为:

A)floatB)charC)intD)double
备注及演草:
您的答案:D
44.若有以下定义
,则能使值为3的表达式是:int k=7,x=12;

A)x%=(k%=5)B)x%=(k-k%5)
C)x%=k-k%5D)(x%k)-(k%=5)
备注及演草:
您的答案:D
45.设以下变量均为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)
备注及演草:
您的答案:C
46.putchar函数可以向终端输出一个:

A)整型变量表达式值
B)实型变量值
C)字符串
D)字符或字符型变量值
备注及演草:
您的答案:D
47.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式

A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
备注及演草:
您的答案:B
48.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式:

A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
备注及演草:
您的答案:C
49.已有定义int a=-2;和输出语句
:printf(“%8lx”,a);以下正确的叙述是:

A)整型变量的输出格式符只有%d一种
B)%x是格式符的一种,它可以适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
备注及演草:
您的答案:D
50.若x,y均定义为int型
,z定义为double型,以下不合法的scanf函数调用语句是:

A)scanf(“%d%lx,%le”,&x,&y,&z);
B)scanf(“%2d * %d%lf”&x,&y,&z);
C)scanf(“%x %* d%o”,&x,&y);
D)scanf(“%x%o%6.2f”,&x,&y,&z);
备注及演草:
您的答案:D
51.已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是:int a1,a2;char c1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

A)10A 20BB)10 A 20 B
C)10A20D)10A20 B
备注及演草:
您的答案:A
52.已有定义int x;float y;且执行scanf(“%3d%f”,&x,&y);语句
,若从第一列开始输入数据12345 678(回车),则x的值为:

A)12345B)123C)45D)345
备注及演草:
您的答案:B
53.已有定义int x;float y;且执行scanf(“%3d%f”,&x,&y);语句
,若从第一列开始输入数据12345 678(回车),则y的值为:

A)无定值B)45.0000C)678.000000D)123.00000
备注及演草:
您的答案:B
54.已有如下定义和输入语句
,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:int a1,a2;char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);

A)1020AB<CR>B)10 20AB<CR>
C)10 20 AB<CR>D)10 20AB<CR>
备注及演草:
您的答案:D
55.已有程序段和输入数据的形式如下
,程序中输入语句的正确形式应当为:main(){int a;float f;printf(“\nInput number:”);输入语句

printf(“\nf=%f,a=%d\n ,f,a);

}

Input  number:4.5 2<CR>

A)scanf(“%d,%f”,&a,&f);B)scanf(“%f,%d”,&f,&a)
C)scanf(“%d%f”,&a,&f);D)scanf(“%f%d”,&f,&a);
备注及演草:
您的答案:D
56.根据定义和数据的输入方式
,输入语句的正确形式为:已有定义:float f1,f2;数据的输入方式:4.523.5

A)scanf(“%f,%f”,&f1,&f2);
B)scanf(“%f%f”,&f1,&f2);
C)scanf(“%3.2f%2.1f”,&f1,&f2);
D)scanf(“%3.2f%2.1f”,&f1,&f2);
备注及演草:
您的答案:B
57.阅读以下程序,当输入数据的形式为25,13,10<CR>时,正确的输出结果为:main()

{

int x,y,z;

scanf(“%d%d%d”,&x,&y,&z);

printf(“x+y+z=%d\n,x+y+z);

}

A)x+y+z=48B)x+y+z=35
C)x+z=35D)不确定值
备注及演草:
您的答案:D
58.阅读下程序,若运行结果为如下形式
,输入输出语句的正确内容是:main(){int x;float y;printf(“enter x,y:”)输入语句    输出语句}

输入形式    enter x,y: 2 3.4

输出形式    x+y=5.40

A)scanf(“%d,%f”,&x,&y);printf(“\nx+y= %4.2f”,x+y);
B)scanf(“%d%f”,&x,&y);printf(“\nx+y=%4.2f”,x+y);
C)scanf(“%d%f”,&x,&y);printf(“\nx+y=%6.1f”,x+y);
D)scanf(“%d%3.1f”,&x,&y );printf(“\nx十y=%4.2f”,x+y);
备注及演草:
您的答案:B
59.以下说法正确的是:

A)输入项可以为一实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);
D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);
备注及演草:
您的答案:D
60.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:main()

{

char ch1,ch2,ch3;

输入语句

printf(“%c%c%c”,ch1,ch2,ch3);

}

输入形式:A B C

输出形式:A B C

A)scanf(“%c%c%c”,&ch1,&ch2,&ch3);
B)scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);
C)scanf(“%c %c %c”,&ch1,&ch2,&ch3);
D)scanf(“%c%c”,&ch1,&ch2,&ch3);
备注及演草:
您的答案:A
61.有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是

A)132(回车)
B)1,3,2(回车)
C)a=1b=3c=2(回车)
D)a=1,b=3,c=2(回车)
备注及演草:
您的答案:D
62.以下能正确地定义整型变量a,b和c,并为其赋初值5的语句是

A)int a=b=c=5;B)int a,b,c=5;
C)a=5,b=5,c=5;D)a=b=c=5;
备注及演草:
您的答案:A
63.已知ch是字符型变量
,下面不正确的赋值语句是:

A)ch=’a+b’;B)ch=’\0′;C)ch=’7’+’9′;D)ch=5+9;
备注及演草:
您的答案:A
64.已知ch是字符型变量,下面正确的赋值语句是:

A)ch=’123′;B)ch=’\xff’;C)ch=’\08′;D)ch=”\”;
备注及演草:
您的答案:B
65.若有以下定义,则正确的赋值语句是:int a,b;float x;

A)a=1,b=2,B)b++;C)a=b=5D)b=int(x);
备注及演草:
您的答案:B
66.设x,y均为float型变量
,则以下不合法的赋值语句是:

A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;
备注及演草:
您的答案:B
67.x,y,z均为int型变量
,则执行语句x=(y=(z=10)+5)-5;后,x,y和z的值是:

A)B)C)D)
x=10x=10x=10x=10
y=15y=10y=10y=5
z=10z=10z=15z=10
备注及演草:
您的答案:A
68.逻辑运算符两侧运算对象的数据类型:

A)只能是0或1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
备注及演草:
您的答案:D
69.下关于运算符优先顺序的描述中正确的是:A)关系运算符 < 算术运算符 < 赋值运算符 < 逻辑与运算符

B)逻辑与运算符 < 关系运算符 < 算术运算符 < 赋值运算符

C)赋值运算符 < 逻辑与运算符 < 关系运算符 < 算术运算符

D)算术运算符 < 关系运算符 < 赋值运算符 < 逻辑与运算符

备注及演草:
您的答案:C
70.下列运算符中优先级最高的是:

A)<B)+C)&&D)!=
备注及演草:
您的答案:B
71.能正确表示”当x的取值在[1,10]和[200,210]范围内为真
,否则为假”的表达式是:

A)(x>=1) && (x<=10) && (x>=200) && (x<=210)
B)(x>=1) || (x<=10) || (x>=200) || (x<=210)
C)(x>=1) && (x<=10) || (x>=200) && (x<=210)
D)(x>=1) || (x<=10) && (x>=200) || (x<=210)
备注及演草:
您的答案:C
72.表示图中坐标轴上阴影部分的正确表达式是://///|      |//////|

/////|      |//////|

—————————–>x

a      b      c

A)(x<=a) && (x>=b) && (x<=c)
B)(x<=a) || (b<=x<=c)
C)(x<=a) || (x>=b) && (x<=c)
D)(x<=a) && (b<=x<=c)
备注及演草:
您的答案:C
73.判断char型变量ch是否为大写字母的正确表达式是:

A)‘A'<=ch<=’Z’B)(ch>=’A’)&(ch<=’Z’)
C)(ch>=’A’)&&(ch<=’Z’)D)(‘A'<=ch)AND(‘Z’>=ch)
备注及演草:
您的答案:C
74.设x,y和z是int型变量
,且x=3,y=4,z=5,则下面表达式中值为0的是:

A)‘y’&&’y’
B)x<=y
C)x || y+z && y-z
D)!(x<y) && !z || 1)
备注及演草:
您的答案:
75.已知x=43,ch=’A’,y=0。则表达式(x>=y && ch<‘B’&&!y)的值是

A)0B)语法错误C)1D)“假”
备注及演草:
您的答案:C
76.若希望当A的值为奇数时
,表达式的值为“真”,A的值为偶数时表达式的值为”假”。则以下不能满足要求的表达式是:

A)A%2==1B)!(A%2==0)C)!(A%2)D)A%2
备注及演草:
您的答案:C
77.设有int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为:

A)1B)2C)3D)4
备注及演草:
您的答案:B
78.判断char型变量c1是否为小写字母
的正确表达式为:

A)‘a'<=c1<=’z’B)(c1>=a) && (c1<=z)
C)(‘a’>=c1) || (‘z'<=c1)D)(c1>=’a’) && (c1<=’z’)
备注及演草:
您的答案:D
79.以下程序的运行结果是:#include “stdio.h”

main()

{

int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d”,a,b);

}

A)6,1B)2,1C)6,0D)2,0
备注及演草:
您的答案:B
80.执行以下语句后a的值为:int a,b,c;

a=b=c=1;

++a || ++b && ++c;

A)错误B)0C)2D)1
备注及演草:
您的答案:C
81.执行以下语句后b的值为:int a=5,b=6,w=1,x=2,y=3,z=4;

(a=w>x)&&(b=y>z);

A)6B)0C)1D)4
备注及演草:
您的答案:A
82.以下不正确的if语句形式是:

A)if(x>y && x!=y);
B)if(x==y) x+=y
C)if(x!=y)scanf(“%d”,&x) else scanf(“%d”,&y);
D)if(x<y){x++;y++;}
备注及演草:
您的答案:C
83.下列运算符中优先级最低的是:

A)?:B)&&C)+D)!=
备注及演草:
您的答案:A
84.以下if语句语法正确的是:

A) if(x>0)printf(“%f”,x)

else printf(“%f”,–x);

B) if(x>0){x=x+y;printf(“%f”,x);}

else printf(“f”,-x);

C) if(x>0){x=x+y;prinrf(“%f”,x);};

else printf(“%f”,-x);

D) if(x>0){x=x+y;printf(“%f”,x)}

else printf(“%f”,-x);

备注及演草:
您的答案:B
85.请阅读以下程序:main()

{

int a=5,b=0,c=0;

if(a=b+c) printf(“***\n”);

else printf(“$$$\n”);

}

以上程序:

A)有语法错不能通过编译B)可以通过编译但不能通过连接
C)输出***D)输出$$$
备注及演草:
您的答案:D
86.以下程序的运行结果是:main()

{

int m=5;

if(m++>5) printf(“%d\n”,m);

else printf(“%d\n”,m–);

}

A)4B)5C)6D)7
备注及演草:
您的答案:C
87.当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)1B)2C)3D)6
备注及演草:
您的答案:B
88.以下程序的输出结果是:main()

{

int a=100,x=10,y=20,ok1=5,ok2=0;

if(x<y)

if(y!=10)

if(!ok1) a=1;

else

if(ok2) a=10;

a=-1;

printf( “%d\n”,a);

}

A)1B)0C)-1D)值不确定
备注及演草:
您的答案:C
89.以下程序的输出结果是:main()

{

int x=2,y=-1,z=2;

if(x<y)

if(y<0) z=0;

else z+=1;

printf(“%d\n”,z);

}

A)3B )2C)1D) 0
备注及演草:
您的答案:B
90.为了避免在嵌套的条件语句if-else中产生二义性
,C语言规定else子句总是与( )配对。

A)缩排位置相同的ifB)其之前最近的if
C)之后最近的ifD)同一行上的if
备注及演草:
您的答案:B
91.以下不正确的语句为:

A)if(x>y);
B)if(x=y) && (x!=0) x+=y;
C)if(x!=y) scanf(“%d”,&x); else scanf(“%d”,&y);
D)if(x<y){x++;y++;}
备注及演草:
您的答案:B
92.请阅读以下程序:#include<stdio.h>

main()

{

float a,b;

scanf(“%f”,&a);

if(a<10.0) b=1.0/x;

else if((a<0.5) && (a!=2.0)) b=1.0/(a+2.0);

else if(a<10.0) b=1.0/x;

else b=10.0;

printf(“%f\n”,y);

}

若运行时输入2.0(回车),则上面程序的输出结果是:

A)0.000000B)0.500000C)1. 000000D)0.250000
备注及演草:
您的答案:
93.若有条件表达式(exp)
? a++ : b–,则以下表达式中能完全等价于表达式(exp)的是:

A)(exp==0)B)(exp!=0)
C)(exp==1)D)(exp!=1)
备注及演草:
您的答案:B
94.若运行时给变量x输入12,则以下程序的运行结果是:main()

{

int x,y;

scanf(“%d”,&x);

y=x>12 ? x+10 : x-12;

printf(“%d\n”,y);

}

A)0B)22C)12D)10
备注及演草:
您的答案:A
95.以下程序的运行结果是:main()

{

int k=4,a=3,b=2,c=1;

printf(“\n%d\n”,k<a ? k : c<b ? c :
a);

}

A)4B)3C)2D)1
备注及演草:
您的答案:D
96.执行以下程序段后,变量a,b,c的值分别是:int x=10,y=9;

int a,b,c;

a=(–x==y++) ? –x : ++y;

b=x++;

c=y;

A)a=9,b=9,c=9B)a=8,b=8,c=10
C)a=9,b=10,c=9D)a=1,b=11,c=10
备注及演草:
您的答案:B
97.若w,x,y,z,m均为int型变量
,则执行下面语句后的m值是:w=1;x=2;y=3;z=4;m=(w<y) ? w : x;m=(m<y) ? m : y;m=(m<z) ? m : z;

A)1B)2C)3D)4
备注及演草:
您的答案:A
98.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是:

A)4B)3C)2D)1
备注及演草:
您的答案:D
99.执行以下程序段后的输出结果是:int w=3,z=7,x=10;

printf(“%d\n”,x>10 ? x+100 : x-10);

printf(“%d\n”,w++ || z++);

printf(“%d\n”,!w>z);

printf(“%d\n”,w && z);

A)0B)1C)0D)0
备注及演草:
您的答案:0111
100.设有程序段
:int k=10;while(k=0) k=k—1;则下面描述中正确的是:

A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
备注及演草:
您的答案:C
101.有以下程序段
:int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);则:

A)运行程序段后输出0B)运行程序段后输出1
C)程序段中的控制表达式非法D)程序段执行无限次
备注及演草:
您的答案:B
101-1.语句while(!E)中的表达式!E等价于:

A)E==0B)E!=1C)E!=0D)E==1
备注及演草:
您的答案:A
101-2.下面程序段的运行结果是: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,0B)2,1,0C)1,2,1D)2,1,1
备注及演草:
您的答案:A
102.下面程序段的运行结果是:x=y=0;

while(x<15) y++,x+=++y;

printf(“%d,%d”,y,x);

A)20,7B)6,12C)20,8D)8,20
备注及演草:
您的答案:D
102-1.下面程序段的运行结果是:int n=0;

while(n++<=2);printf(“%d”,n);

A)2B)3C)4D)有语法错误
备注及演草:
您的答案:C
103.设有程序段:t=0;

while(printf(“*”));

{

t++;

if(t<3) break;

}

下面描述正确的是:

A)循环控制表达式与0等价B)循环控制表达式与’0’等价
C)循环控制表达式是不合法的D)以上说法部不对
备注及演草:
您的答案:B
104.下面程序的功能是将从键盘输入的一对数
,由小到大排序输出。当输入一对相等数时结束循环,请选择填空【1】:#indude<stdio.h>main(){int a,b,t;scanf(“%d%d”,&a,&b);

while(【1】)

{

if(a>b)

{t=a;a=b;b=t;}

printf(“%d,%d”,a,b);

scanf(“%d%d”,&a,&b);

}

A)!a=bB)a!=bC)a==bD)a=b
备注及演草:
您的答案:B
105.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m,n中的较大者
,请选择填空【1】:#indude”stdio.h”main(){int m=0,n=0;char c;

while((【1】)!=’\n’)

{if(c>=’A’ && c<=’Z’) m++;

if(c>=’a’ && c<=’z’) n++;}

printf(“%d\n”,m<n ? n : m);}

A)c=getchar()B)getchar()
C)c=getchar()D)scanf(“%c”,c)
备注及演草:
您的答案:C
106.下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请选择填空。#include “stdio.h”

main()

{

char c;

while((c=getchar())!=’\n’)

{if(c>=’a’ && c<=’z’)

c-=30;

if(c>’z’ && c<=’z’+2)

【2】;}

printf(“%c”,c);

}

A)c=’B’B)c=’A’C)c-=26D)c=c+26
备注及演草:
您的答案:C
107.下面程序的功能是在输入的一批正整数中求出最大者
,输入0结束循环,请选择填空【1】。#include<stdio.h>main(){int a,max=0;scanf(“%d”,&a);

while(【1】)

{if(max<a) max=a;

scanf(“%d”,&a);}

printf(“%d”,max);

}

A)a==oB)aC)!A==1D)!a
备注及演草:
您的答案:B
108.下面程序的运行结果是:#include<stdio.h>

main()

{

int num=0;

while(num<=2)

{num++;

printf(“%d\n”,num);}

}

A)1

2

3

4

B)1

2

3

C)1

2

D)1
备注及演草:
您的答案:
109.以下程序段:x=-1;

do{x=x*x;}

while(!x);

A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
备注及演草:
您的答案:C
110.以下描述中正确的是:

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后表达式值变为零(“假”)的操作
D)do-while循环中,根据情况可以省略while
备注及演草:
您的答案:
111.若有如下语句
:int x=3;do{printf(“%d\n”,x-=2);}while(!(–x));则上面程序段:

A)输出的是1B)输出的是1和-2
C)输出的是3和0D)是死循环
备注及演草:
您的答案:B
112.下面程序的功能是计算正整数2345的各位数字平方和,请选择填空【2】。#include<stdio.h>t;t;>

main()

{

int n,sum=0;

n=2345;

do{sum=sum+(n%10)*n%10);

n=【2】;

}while(n);

printf(“sum=%d”,sum);

}

A)n/1000B)n/100C)n/10D)n%10
备注及演草:
您的答案:C
113.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空【1】。#include<stdio.h>

main()

{

long int num;

scanf(“%ld”,&num);

do{if(【1】) printf(“%ld”,num);

scanf(“%ld”,&num);

}while(!num==0);

}

A)numB)num>0==0C)!num==0D)!num!=0
备注及演草:
您的答案:
114.下面程序的功能是把316表示为两个加数的和
,使两个加数分别能被13和11整除。请选择填空【1】。#include<stdio.h>main(){int i=0,j,k;do{i++;k=316-13*i;}

while(【1】);

j=k/11;

printf(“316=13*%d+11*%d”,i,j);

}

A)k/11B)k%11C)k/11==0D)k/11==0
备注及演草:
您的答案:B
115.下面程序的运行结果是:#include<stdio.h>

main()

{

int y=10;

do{y–;}

while(–y);

printf(“%d\n”,y–);

}

A)-1B)1C)8D)0
备注及演草:
您的答案:D
116.若运行以下程序时
,从键盘输入ADescriptor<CR>(CR表示回车),则下面程序的运行结果是:#include<stdio.h>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=%d\n”,v0,v1,v2);

}

A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11D)v0=12,vl=4,v2=12
备注及演草:
您的答案:D
117.下面程序的运行结果是:#include<stdio.h>

main()

{

int a=1,b=10;

do{b-=a;a++;}

while(b–<0);

printf(“a=%d,b=%d\n”,a,b);

}

A)a=3,b=11   B )a=2,b=8    C)a=1,  b=-1    D)a=4,b=9

备注及演草:
您的答案:B
118.下面有关for循环的正确描述是:

A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
备注及演草:
您的答案:D
119.对for(表达式1;;表达式3)可理解为:

A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
备注及演草:
您的答案:B
120.若i为整型变量
,则以下循环执行次数是:for(i=2;i==0;) printf(“%d”,i–);

A)无限次B)0次C)1 次D)2次
备注及演草:
您的答案:B
121.以下for循环的执行次数是:for(x=0,y=0;(y=123) && (x<4);x++);

A)是无限循环B)循环次数不定
C)执行4次D)执行3次
备注及演草:
您的答案:C
122.以下不是无限循环的语句为:

A)for(y=0,x=1;x>++y;x=i++) i=x;
B)for(;;x++=i);
C)while(1){x++;}
D)for(i=10;;i–) sum+=i;
备注及演草:
您的答案:A
123.下面程序段的运行结果是:for(y=1;y<10;) y=((x=3*y,x+1),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

备注及演草:
您的答案:C
124.下面程序段的运行结果是
:for(x=3;x<6;x++) printf((x%2)?(“**%d”):(“##%d\n”),x);

A)**3

##4

**5

B)##3

**4

##5

C)##3

**4##5

D)**3##4

**5

备注及演草:
您的答案:D
125.下列程序段不是死循环的是:

A)int i=100;

while(1)

{i=i%100+1;

if(i>100) break;

}

B)for(;;);
C)int k=0;

do{++k;} while(k>=0);

D)int s=36;

while(s);–s;

备注及演草:
您的答案:C
126.执行语句for(i=1;i++<4;);后变量i的值是

A)3B)4C)5D)不定
备注及演草:
您的答案:C
127.下面程序的功能是计算
:1至50中是7的倍数的数值之和,请选择填空【1】。#include<stdio.h>    •main(){int i,sum=0;for(i=1;i<=50;i++)

if(【1】) sum+=i;

printf(“%d”,sum);

}

A)(int)(i/7)==i/7
B)(int)i/7==i/7
C)i%7=0
D)i%7==0
备注及演草:
您的答案:D
128.下面程序的功能是计算1至10之间的奇数之和及偶数之和。请选择填空【1】。#include<stdio.h>

main()

{

int a,b,c,i;

a=c=0;

for(i=0;i<=10;i+=2)

{

a+=i;

【1】;

c+=b;

}

printf(“偶数之和=%d\n”,a);

printf(“奇数之和=%d\n”,c-11);

}

A)b=i–B)b=i+1C)b=i++D)b=i-1
备注及演草:
您的答案:B
129.下面程序的运行结果是:#include<stdio.h>

main()

{

int i;

for(i=1;i<=5;i++)

switch(i%5)

{

case 0 : printf(“*”); break;

case 1 : printf(“#”); break;

default : printf(“\n”);

case 2 : printf(“&”);

}

A)#&&&*

&

&

B)#&

&

&

*

C)#D)#&
备注及演草:
您的答案:B
130.下面程序的运行结果是:#include<stdio.h>

main()

{

int x,i;

for(i=1;i<=100;i++)

{

x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d”,x);

}

}

A)39 81B)42 84C)26 68D)28 70
备注及演草:
您的答案:D
131.下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空
【1】。(提示:只要算出1000!中含有因数5的个数即可)for(k=0,i=5;i<=1000;i+=5)while(【1】){k++; m=m/5;}

A)m%5==0B)m=m%5==0C)m%5==0D)m%5!=0
备注及演草:
您的答案:C
132.下面程序的运行结果是:#include<stdio.h>

main()

{

int i,b,k=0;

for(i=1;i<=5;i++)

{

b=i%2;

while(b–>=0) k++;

}

printf(“%d,%d”,k,b);

}

A)3,-1B)8,-1C)3,0D)8,-2
备注及演草:
您的答案:D
133.以下正确的描述是:

A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
备注及演草:
您的答案:B
134.下面程序段:for(t=1; t<=100; t++)

{

scanf(“%d”,&x);

if(x<0) continue;

printf(“%3d”,t);

}

A)当x<0时整个循环结束
B)x>=0时什么也不输出
C)printf函数永远也不执行
D)最多允许输出100个非负整数
备注及演草:
您的答案:D
135.下面程序段:x=3;

do{

y=x–;

if(!y){ printf(“x”);continue;}

printf(“#”);

}while(1<=x<=2);

A)将输出##B)将输出##*
C)是死循环D)含有不合法的控制表达式
备注及演草:
您的答案:C
136.以下描述正确的是

A)goto语句只能用于退出多层循环
B)switch语句中不能出现continue语句
C)只能用continue语句来终止本次循环
D)在循环中break语句不能独立出现
备注及演草:
您的答案:C
137.与下面程序段等价的是:for(n=100; n<=200; n++)

{

if(n%3==0) continue;

printf(“%4d”,n);

}

A)for(n=100;(n%3) && n<=200;n++) printf(“%4d”,n);
B)for(n=100;(n%3) || n<=200;n++) printf(“%4d”,n);
C)for(n=100;n<=200;n++)if(n%3!=0) printf(“%4d”,n);
D)for(n=100;n<=200;n++){if(n%3) printf(“%4d”,n);

else continue;

break;}

备注及演草:
您的答案:C
138.下面程序的运行结果是:#include<stdio.h>

main()

{

int k=0;

char c=’A’;

do

{

switch(c++)

{

case ‘A’:k++;
break;

case ‘B’:k–;

case
‘C’:k+=2; break;

case
‘D’:k=k%2; continue;

case
‘E’:k=k*10; break;

default:k=k/3;

}

k++;

}while(c<‘G’);

printf(“k=%d”,k);

}

A)k=3B)k=4C)k=2D)k=0
备注及演草:
您的答案:B
139.若运行以下程序时从键盘输入3.6,2.4<CR>(<CR>表示回车),则下面程序的运行结果是:#include<math.h>

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

}

A)1.5B)1.6C)2.0D)2.4
备注及演草:
您的答案:B
140.下面程序的运行结果是:#include”stdio.h”

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;

}

printf(“%d\n”,a);

}

A) 7B) 8C)9D) 10
备注及演草:
您的答案:B
141.下面程序的运行结果是#include”stdio.h”

main()

{

int i;

for(i=1; i<=5; i++)

{

if(i%2) printf(“#”);

else continue;

printf(“*”);

}

printf(“$”);

}

A)*#*#$B)#*#*#*$C)*#*#$D)#*#*$
备注及演草:
您的答案:B
142.下面程序的运行结果是:main()

{

int i,j,a=0;

for(i=0; i<2; i++)

{

for(j=0; j<=4; j++)

{

if(j%2)
break;

a++;

}

a++;

}

printf(“%d\n”,a);

}

A)4B)5C)6D)7
备注及演草:
您的答案:A
179.在c语言中,引用数组元素时,其数组下标的数据类型允许是:

A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
备注及演草:
您的答案:C
180.以下对一维整型数组a的正确说明是:

A)int a(10);
B)int n=10,a[n];
C)int n;scanf(“%”,&n);

int a[n];

D)#define SIZE 10int a[SIZE];
备注及演草:
您的答案:D
181.若有说明:int a[10];则对a数组元素的正确引用是:

A)a[10]B)a[3.5]C)a[5]D)a[10-10]
备注及演草:
您的答案:
182.在C语言中,一维数组的定义方式为:类型说说明符+数组名+:

A)[常量表达式]B)[整形表达式]
C)[整型常量]或[整型表达式]D)[整型常量]
备注及演草:
您的答案:A
183.以下能对一维数组a进行正确初始化的语句是:

A)int a[10]=(0,0,0,0,0);B)int a[10]={};
C)int a[]={0};D)int a[10]={10*1};
备注及演草:
您的答案:
184.以下对二维数组a的正确说明是:

A)int a[3][];B)float a(3,4);
C)double a[1][4];D)float a(3)(4);
备注及演草:
您的答案:C
185.若有说明:int a[3][4];则对a数组元素的正确引用是

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1);
备注及演草:
您的答案:C
186.若有说明:int a[3][4];则对a数组元素的非法引用是:

A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]
备注及演草:
您的答案:D
187.以下能对二维数组a进行正确初始化的语句是:

A)int a[2][]={{1,0,1},{5,2,3}};
B)int a[][3]={{1,2,3},{4,5,6}};
C)int a[2][4]={{1,2,3},{4,5},{6}};
D)int a[][3]={{1,0,1},{},{1,1}};
备注及演草:
您的答案:B
188.以下不能对二维数组a进行正确初始化的语句是:

A)int a[2][3]={0};
B)int a[][3]={{1,2,3},{4,5,6}};
C)int a[2][4]={{1,2,3},{4,5},{6}};
D)int a[][3]={{1,0,1},{},{1,1}};
备注及演草:
您的答案:
189.若有说明:int
a[3][4]={0};则下面正确的叙述是:

A)只有元素a[0][0]可得到初值0
B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值0
备注及演草:
您的答案:D
190.若有说明:int a[][4]={0,0};则下面不正确的叙述是:

A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)因为二维数组0中第二维大小的值除以初值个数的商为1,故数组a行数为1
D)只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值0
备注及演草:
您的答案:D
191.若有说明:int a[3][4];则数组a各元素:

A)可在程序的运行阶段得到初值0
B)可在程序的编译阶段得到初值0
C)不能得到确定的初值
D)可在程序的编译或运行阶段得初值0
备注及演草:
您的答案:B
192.以下各组选项中
,均能正确定义二维实型数组a的选项是:

A)float a[3][4];

float a[][4];

float a[3][]={{1},{0}};

B)float a(3,4);

float a[3][4];

float a[][]={{0},{0}};

C)float a[3][4];

static float a[][4]={{0},{0}};

auto float a[][4]={{0},{0},{0}};

D)float a[3][4];

float a[3][];

float a[][4];

备注及演草:
您的答案:C
193.下面程序(每行程序前面的数字表示行号):1   main()

2   {

3       int a[3]={3*0};

4       int i;

5       for(i=0;i<3;i++) scanf(“%d”,&a[i]);

6       for(i=1;i<3;i++) a[0]=a[0]+a[i];

7       printf(“%d\n”,a[0]);

8   }

A)没有错误B)第3行有错误
C)第5行有错误D)第7行没有错误
备注及演草:
您的答案:A
194.下面程序(每行程序前面的数字表示行号):1    main()

2    {

3        float a[10]={0.0};

4        int i;

5        for(i=0;i<3;i++) scanf(“%d”,&a[i]);

6        for(i=0;i<10;i++) a[0]=a[0]+a[i];

7        printf(“%d\n”,a[0]);

8     }

A)没有错误B)第3行有错误
C)第5行有错误D)第7行有错误
备注及演草:
您的答案:
195.下面程序有错的行是:1   main()

2   {

3      int a[3]={1};

4      int i;

5      scanf(“%d”,&a);

6      for(i=1;i<3;i++) a[0]=a[0]+a[i];

7      printf(“a[0]=%d\n”,a[0]);

8   }

A)3B)6C)7D)5
备注及演草:
您的答案:D
196.下面程序(每行程序前面的数字表示行号):1   main()

2   {

3       int a[3]={0};

4       int i;

5       for(i=0;i<3;i++) scanf(“%d”,&a[i]);

6       for(i=1;i<4;i++) a[0]=a[0]+a[i];

7       printf(“%d\n”,a[0]);

8   }

A)没有错误B)第3行有错误
C)第5行有错误D)第6行有错误
备注及演草:
您的答案:D
197.若二维数组a有m列
,则计算任一元素a[i][j]在数组中位置的公式为:(假设a[0][0]位于数组的第一个位置上)

A)i*m+jB)j*p+iC)i*m+j-1D)i*m+j+1
备注及演草:
您的答案:D
198.对以下说明语句的正确理解是:int a[10]={6,7,8,9,10};

A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
备注及演草:
您的答案:B
199.以下不正确的定义语句是:

A)double x[5]={2.0,4,0,6.0,8.0,10.0};
B)int y[5]={0,1,3,5,7,9};
C)char c1[]={‘1′,’2′,’3′,’4′,’5’};
D)char c2[]={‘\x10′,’\xa’,’\x8′};
备注及演草:
您的答案:B
200.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是:

A)2B)3C)4D)无确定值
备注及演草:
您的答案:B
201.若二维数组a有m列,则在a[i][j]前的元素个数为:

A)j*m+jB)i*m+jC)j*m+iD)i*m+j+1
备注及演草:
您的答案:B
202.定义如下变量和数组:int k;

int a[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是:

for(k=0;k<3;k++) printf(“%d”,a[k][2-k]);

A)3 5 7B)3 6 9C)1 5 9D)1 4 7
备注及演草:
您的答案:A
203.若有以下程序段:……

int a[]={4,0,2,3,1},i,j,t;

for(i=1;i<5;i++)

{

t=a[i];j=i-1;

while(j>=0&&t>a[j])

{a[j+1]=a[j];j–;}

}

……

则该程序段的功能是:

A)对数组a进行插入排序(升序)
B)对数组a进行插入排序(降序)
C)对数组a进行选择排序(升序)
D)对数组a进行选择排序(降序)
备注及演草:
您的答案:B
204.以下正确的定义语句是:

A)int a[1][4]={1,2,3,4,5};
B)float x[3][]={{1},{2},{3}};
C)long b[2][3]={{1},{1,2},{1,2,3}};
D)double y[][3]={0};
备注及演草:
您的答案:D
205.下面程序的运行结果是:main()

{

int a[6][6],i,j;

for(i=1; i<6; i++)

for(j=1; j<6; j++)

a[i][j]=(i/j)*(j/i);

for(i=1; i<6; i++)

{

for(j=1; j<6; j++)

printf(“%d”,a[i][j]);

printf(“\n”);

}

}

A)11111

11111

11111

11111

11111

B)00001

00010

00100

01000

10000

C)10000

01000

00100

00010

00001

D)10001

01010

00100

01010

10001

备注及演草:
您的答案:C
206.下面程序的运行结果是:main()

{

int a[6],i;

for(i=1; i<6; i++)

{

a[i]=9*(i-2+4*(i>3))%5;

printf(“%2d”,a[i]);

}

}

A)—40404B)—40403
C)-40443D)-40440
备注及演草:
您的答案:C
207.下面是对s的初始化,其中不正确的是:

A)char s[5]={“abc”};B)char s[5]={‘a’,’b’,’c’};
C)char s[5]=””;D)char s[5]=”abcdef”;
备注及演草:
您的答案:D
208.下面程序段的运行结果是:char c[5]={‘a’,’b’,’\0′,’c’,’\0′};

printf(“%s”,c);

A)‘a’ ‘b’B)abC)ab cD)ab
备注及演草:
您的答案:B
209.对两个数组a和6进行如下初始化:char a[]=”ABCDEF”;

char b[]={’A’,’B’,’C’,’D’,’E’,’F’};

则以下叙述正确的是:

A)a与b数组完全相同B)a与b长度相同
C)a和b中都存放字符串D)a数组比b数组长度长
备注及演草:
您的答案:D
210.有两个字符数组a,b,则以下正确的输入格式是:

A)gets(a,b);B)scanf(“%s%s”,a,b);
C)scanf(“%s%s”,&a,&b);D)gets(“a”),gets(“b”);
备注及演草:
您的答案:B
211.有字符数组a[80]和b[80],则正确的输出形式是:

A)puts(a,b);B)printf(“%s,%s”,a[],b[]);
C)putchar(a,b);D)puts(a),puts(b);
备注及演草:
您的答案:D
212.下面程序段的运行结果是char a[7]=”abcdef”;

char b[4]=”ABC”;

strcpy(a,b);

printf  (“%c”,a[5]);

A)空格B)\OC)eD)f
备注及演草:
您的答案:D
213.有下面的程序段:char a[3],b[]=”china”;

a=b;

printf(“%s”,a);

则:

A)运行后将输出chinaB)运行后将输出ch
C)运行后将输出chiD)编译出错
备注及演草:
您的答案:D
214.下面程序段的运行结果是:char c[]=”\t\v\\\0will\n”;

printf(“%d”,strlen(c));

A)14B)3C)9D)字符串中有非法字符,输出值不确定
备注及演草:
您的答案:B
215.判断字符串a和b是否相等,应当使用:

A)if(a==b)B)if(a=b)
C)if(strcpy(a,b))D)if(strcmp(a,b))
备注及演草:
您的答案:D
216.判断字符串s1是否大于字符串s2应当使用:

A)if(s1>s2)B)if(strcmp(s1,s2))
C)if(strcmp(s2,s1)>0)D)if(strcmp(s1,s2)>0)
备注及演草:
您的答案:D
217.下面程序段是输出两个字符串中对应字符相等的字符。请选择填空
【1】。char x[]=”programming”;char y[]=”Fortran”;int i=0;while(x[i]!=’\0′ && y[i]!=’\0′){if(x[i]==y[i]) printf(“%c”,【1】);

else i++;

}

A)x[i++]B)y[++i]C)x[i]D)y[i]
备注及演草:
您的答案:A
218.下面描述正确的是:A)两个字符串所包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串”STOP”与”sTOp”相等

D)字符串”That”小于字符串”The”

备注及演草:
您的答案:D
219.下述对C语言字符数组的描述中错误的是:

A)字符数组可以存放字符串
B)字符数组的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
备注及演草:
您的答案:C
220.有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。请选择填空
【2】。#indude<stdio.h>main(){char a[20]=”cehiknqtw”;char s[]=”fbla”;

int i,k,j;

for(k=0; s[k]!=’\0′; k++)

{

j=0;

while(s[k]>=a[j]&&a[j]!=’\0′) j++;

for(i=strlen(a); i>=j; i–) 【2】;

a[j]=s[k];

}

puts(a);

}

A)a[i]=a[i+1]B)a[i+1]=a[i];
C)a[i]=a[i-1]D)a[i-1]=a[i];
备注及演草:
您的答案:B
221.下面程序的功能是将字符串s中所有的字符c删除。请选择填空
【1】。#include<stdio.h>main(){char s[80];int i,j;

gets(s);

for(i=j=0; s[i]!=’\0′; i++)

if(s[i]!=’c’)【1】;

s[j]=’\0′;

puts(s);

}

A)s[j++]=s[i]B)s[++j]=s[i]
C)s[j]=s[i];j++D)s[j]=s[i]
备注及演草:
您的答案:A
222.下面程序的功能是从键盘输入一行字符
,统计其中有多少个单词,单词之间用空格分隔。请选择填空【1】。#include<stdio.h>main(){char s[80],c1,c2=”;int i=0,num=0;

gets(s);

while(s[i]!=’\0′)

{

c1=s[i];

if(i==0) c2=”;

else c2=s[i-1];

if(【1】) num++;

i++;

}

printf(“There are %d words.\n”,num);

}

A)c1==” && c2==”B)c1!=” && c2==”
C)c1==” && c2!=”D)c1!=” && c2!=”
备注及演草:
您的答案:B
223.下面程序的运行结果是:#include<stdio.h>

main()

{

char ch[7]={“12ab56”};

int i,s=0;

for(i=0; ch[i]>=’0′ && ch[i]<=’9′; i+=2)

s=10*s+ch[i]-‘0’;

printf(“%d\n”,s);

}

A)1B)1256C)12ab56D)1

2

5

6

备注及演草:
您的答案:A
224.当运行以下程序时
,从键盘输入:aa bb<CR>cc dd<CR>(<CR>表示回车),则下面程序的运行结果是:#include<stdio.h>main()

{

char a1[5],a2[5],a3[5],a4[5];

scanf(“%s%s”,a1,a2);

gets(a3); gets(a4);

puts(a1); puts(a2);

puts(a3); puts(a4);

}

A)B)C)D)
aabb

cc dd

aabb

cc

dd

aabb

cc
dd

ee

aa bbcc

dd

备注及演草:
您的答案:A
225.当运行以下程序时,从键盘输入:

ab<CR>

c<CR>

dd<CR>

(<CR>表示回车),则下面程序的运行结果是:

#include<stdio.h>

#define N 6

main()

{

char c[N];

int i=0;

for(; i<N; c[i]=getchar(),i++);

for(i=0; i<N; i++) putchar(c[i]);

}

A)abcdefB)a

b

c

e

f

C)b

c

d

D)ab

c

d

备注及演草:
您的答案:D
226.当运行以下程序时
,从键盘输入:AhaMA Aha<CR>(<CR>表示回车),则下面程序的运行结果是:#include”stdio.h”main(){char s[80],c=’a’;int i=0;

scanf(“%s”,s);

while(s[i]!=’\0′)

{

if(s[i]==c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32;

i++;

}

puts(s);

}

A)ahAMaB)AhAMaC)AhAMa ahAD)ahAMa ahA
备注及演草:
您的答案:A
227.下面程序的运行结果是:#include<stdio.h>

#include<string.h>

main()

{

char a[80]=”AB”,b[80]=”LMNP”;

int i=0;

strcat(a,b);

while(a[i++]!=’\0′) b[i]=a[i];

puts(b);

}

A)LBB)ABLMNPC)ABD)LBLMNP
备注及演草:
您的答案:D
228.下面程序的运行结果是:#include<stdio.h>

main()

{

char str[]=”SSSWLIA”,c;

int k;

for(k=2; c=str[k]!=’\0′; k++)

{

switch(c)

{

case ‘I’:++k;
break;

case
‘L’:continue;

default:putchar(c); continue;

}

putchar(‘*’);

}

}

A)SSW*B)SW*C)SW*AD)SW
备注及演草:
您的答案:B
229.下面程序的运行结果是:#include<stdio.h>

main()

{

char a[]=”morning”,t;

int i,j=0;

for(i=1; i<7; i++) if(a[j]<a[i]) j=i;

t=a[j]; a[j]=a[7];

a[7]=a[j]; puts(a);

}

A)mogninrB)moC)morningD)mornin
备注及演草:
您的答案:B

 

2 条评论

  1. 61若已定义了如下的结构体类型变量x,则x所占用的内存字节数为()
    (设在16位pc机的环境下)
    struct student
    {int num;
    char name[20];
    char sex;
    int age;
    } x;
    A25 B20 C6 D2
    怎么写???

    1. 你好,好像不是这个题库里的哈。
      只是就做题来说的话,既然是16位机,那int应该占用2字节,所以2+20+1+2=25应该是25个字节吧。选择A。当然实际上内存会对齐,比如32位下sizeof它应该是32。

欢迎留言