admin 管理员组

文章数量: 887021


2023年12月16日发(作者:冒泡排序算法稳定性)

判断题:

1、在C语言中,枚举元素表中的元素有先后次序,可以进行比较。

2、当需要接受用户从键盘输入的含有空格的字符串时,应使用gets()函数。

3、在C语言中,枚举元素表中的元素有先后次序,可以进行比较。

4、使用联合体union的目的是,将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一存储空间。

5、系统中标准输入文件是指硬盘。

6、已知函数调用形式:fread(buffer,size,count,fp);其中buffer代表的是一个指针,指向要读入数据的存放地址。

7、fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是追加。

8、枚举元素的值可以是整数或字符串。

9、可以在定义枚举类型时对枚举元素进行初始化。

10、若要"为读/写建立一个新的文本文件",在fopen函数中应使用的文件方式为"w+"。

11、标准输入输出函数中,将一个字符写到磁盘文件上去,应调用fputc函数。

12、在c语言中,库函数fprintf是按指定的格式将数据写入文件,如果执行成功,函数返回的是结束符。

13、操作系统是以文件为单位对数据进行管理的。

14、"C"指字符常量C。

15、字符串"china"在内存中占据的存储空间是5个字节。

16、char *name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。

17、调用strlen("abc0ef0g")的返回值为8。

18、if(a==b)语句可用于判断两个字符串a和b是否相等。

19、两个字符串所包含的字符个数相同时才能比较字符串大小。

20、字符个数多的字符串比字符个数少的字符串大。

21、字符数组的字符串可以整体输入输出。

22、C语言本身没有输入输出语句。

23、在C程序中,注释说明只能位于一条语句的后面。

24、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为:

char = int < long int <= float < double

25、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为7。

26、switch,typedef,continue均是C语言关键字。

27、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

28、160,-0xefff,011均是合法的整型常量。

29、'0','101','X1f'均是合法的转义字符。

30、若变量a和x均为double类型,则代数式x^2-e^5转化为正确的c语言表达式为:x*x-exp(5)。

31、在C 程序中,逗号运算符的优先级最低。

32、在C程序中,APH和aph是两个不同的变量。

33、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

34、在C程序中,每行只能写一条语句。

35、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。

36、在C程序中,%是只能用于整数运算的运算符。

37、若变量均为整型,且num=sum=7,则计算表达式sum=num++,sum++,++num后sum的值为8。

38、设变量 a 为整型,f 是实型,i 是双精度型,则表达式10+'a'+i * f 值的数据类型不能确定为何类型。

39、在C语言中char型数据在内存中的存储形式为ASCII码。

40、设有说明:char m;int x;float y;double z;则表达式m*x+z-y值的数据类型为float。

41、putchar函数可以向终端输出一个字符或字符型变量值。

42、%x是格式符的一种,它可以适用于任何一种类型的数据。

43、输入项可以是一个实型常量,如:scanf ("%f",3.5) 。

44、c程序中能直接让机器执行的文件是编辑后的.c源文件。

45、任何复杂的程序都是由顺序结构、选择结构、循环结构这三种结构构成的。

46、若有int x,则(x+1)++是一个合法的c语言表达式。

47、每个语句和数据定义的最后都必须有分号。

48、c程序的书写格式要求严格,区分大小写,并且一行内只能写一条语句。

49、在c程序中,语句之间必须要用分号";"来分隔。

50、在c程序中,整型数是能准确表示的,而实型数有时不能准确无误的表示。

51、若a和b类型相同,在执行了语句a=b后,b中的值将放入a中,b中的值不变。

52、0a12,-0x123,-0xa均是正确的八进制或十六进制数。

53、在c语言类型说明中,int,short,float等类型的长度是固定的。

54、表达式和表达式语句的区别在于:表达式后无";"号,而表达式语句后有";"号。

55、设int a=12;则执行完语句a+=a-=a*a后,a的值为144。

56、(a=3)>(b=5) 是合法的关系表达式。

57、关系表达式 a=b>c 等价于 a=(b>c) ,同时也等价于 a==b>c。

58、字符"0"是字符串的结束标记,其ASCII代码为0。

59、算述运算*、/、+和一具有相同的优先级。

60、printf函数的格式控制串之后的所有参数的前面都必须有&。

61、若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。

62、C语言中直到型循环结构为:do 循环体 while(表达式); 但这种循环是当表达式为真时反复执行循环体,表达式为假时结束循环。

63、C语言认为变量number和NuMbEr是相同的。

64、break语句不能用于循环语句和switch语句之外的任何其他语句中。

65、在printf函数的格式控制串中使用转义序列n会把光标定位到屏幕上下一行的开始位置。

66、语句 y=*p++; 和 y=(*p)++; 是等价的。

67、#include "iostream.h"的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。

68、for ( ; ; ) 语句 等价于 while (1) 语句 ,即不设初值、不判断条件、无终止地执行循环体。

69、unsigned 和 void 都是 C 的保留字。

70、若 int i=10,j=2; 则执行完 i*=j+8; 后 i 的值为 28 。

71、在 C 语言中,"A "和' A '等价。

72、表达式 4/7 和 4.0/7 的值相等。

73、关系表达式 a=b > c 等价于 a= =b > c.

74、逻辑表达式 'C'&&'d' 的值为 1.

75、若有说明int c;则while(c=getchar());是正确的C语句。

76、C语言程序的三种基本结构是顺序结构、选择结构和循环结构。

77、在C语言中整数只能表示为十进制数的形式。

78、空语句是合法的C语句。

79、while语句的循环体不能是复合语句。

80、关系运算符的优先顺序为:赋值运算符<逻辑运算符<关系运算符<算术运算符。

81、已知x=43,ch='A',y=0;则表达式(x>y&&ch<'B'&&!y)的值为"假"。

82、if(x!=y) scanf("%d",&x) else scanf("%d",&y);是正确的if语句。

83、若有条件表达式(x)?a++:b++;则表达式中(x)等价于(x!=0)。

84、设有程序段 int k=10; while (k=0) k=k-1; 则语句k=k-1执行10次。

85、C语言中while和do-while循环的主要区别是:do-while语句至少无条件执行一次。

86、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

87、在do-while循环体中,一定要有能使while后面表达式的值变为假的操作。

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

89、for循环是先执行循环体语句,后判断表达式。

90、在for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来变成一条复合语句。

91、执行语句for(i=1;i++<7; );后变量i的值不能确定。

92、continue语句的作用是结束整个循环的执行。

93、只能在循环体内和switch语句体内使用break语句。

94、在循环体内使用break语句或continue语句的作用相同。

95、只能用continue语句来终止本次循环。

96、#define IMB_PC 是正确的宏定义。

97、宏替换不占编译时间,只占运行时间。

98、c语言的编译系统对宏命令的处理是和c程序中的其他语句同时进行编译的。

99、在"文件包含"预处理语句的使用形式中,#include后面的文件名用""表示直接按系统设定的标准方式搜索目录。

100、c语言的预处理功能是指完成宏替换和包含文件的调用。

101、预处理指令只能位于c源程序文件的首部。

102、C语言中规定,if语句的嵌套结构中,else总是和最近的if配对。

103、switch语句中的每个case总要用break语句。

104、可以用do-while语句实现的循环一定可以用while语句实现。

105、while,do-while,何for语句的循环体都可以是空语句。

106、在下面程序段中循环体将执行无限次执行。 x=-1; do{ x=x*x; }while(!x);

107、设整型变量i的值为3,则表达式i---i是一个错误的表达式。

108、设有变量定义:int a=3;则执行语句a+=a-=a*a;后,变量a的值变为0。

109、整型变量a,b,c=2;则表达式a+++b+++c+++的值为6。

110、若有说明语句:int y[][4]={0,0,0,0,0,0};则数组y的每个元素都可以得到初值0。

111、若有int a[3][4]; 则a[3][4]是对二维数组的正确访问。

112、数组的下标可以float数据类型。

113、打印三行输出的C语言程序必须用三条printf语句。

114、初始化值列表中的初始化值个数多于数组元素的个数是错误的。

115、数组是一种构造型数据,即是若干相同类型的数据的集合。

116、若有说明:static int a[3][4];,则数组a中各元素可在程序的编译阶段得到初值0。

117、把单个数组元素传递给修改该元素值的函数会使调用函数包含修改后的值。

118、在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。

119、C语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

120、若a为一维数组名,则*(a+i)与a[i]等价。

121、int a[]={0}能对一维数组进行正确的初始化。

122、若有说明:int a[3][4];则a[2][4]是对数组a中的数组元素的正确引用。

123、若有说明:int a[2][4]={0};表示数组a中只有数组元素a[0][0]可以得到初值0。

124、若有说明:int a[][4]={0,0};则表示二维数组a的第一维大小为1。

125、若有说明:int a[10]={6,7,8,9,10};则该语句不正确,因为数组长度与初值个数不相同。

126、对两个字符数组a和b进行初始化char a[]="abcd";char b[]={'a','b','c','d'};则a和b两数组长度相同。

127、在一个函数中,允许定义与结构体类型的成员相同名的变量,它们代表不同的对象。

128、指向同一数组的两指针p1、p2相减的结果与所指元素的下标相减的结果是相同的。

129、&b指的是变量b的地址处所存放的值。

130、在C语言中,如果它们的元素相同,即使不同类型的结构也可以相互赋值。

131、用typedef可以定义各种类型名,但不能用来定义变量。

132、在C语言中,可以把一个结构体变量作为一个整体赋值给另一个具有相同类型的结构体变量。

133、存放地址的变量同其它变量一样,可以存放任何类型的数据。

134、结构体的成员可以作为变量使用。

135、int *p;定义了一个指针变量p,其值是整型的。

136、使用结构体struct的目的是,将一组数据作为一个整体,以便于其中的成员共享同一空间。

137、一个变量的地址就称为该变量的"指针"。

138、int i,*p=&i;是正确的C说明。

139、变量的指针,其含义是指该变量的一个标志。

140、若有说明:int *p1,*p2,m=3,n;则p1=&m;p2=p1;是正确的赋值语句。

141、若定义:int(*p)[4];则标示符p是一个指针,它指向一个含有四个整型元素的一维数组。

142、设有以下定义:char *c[2]={"12","34"};表示c数组的两个元素中各自存放了字符串"12"和"34"的首地址。

143、已有定义int(*p)();指针p可以指向函数的入口地址。

144、当说明一个结构体变量时系统分配给它的内存是成员中占内存量最大者所需的容量 。

145、C语言中结构体类型的变量在程序执行期间所有成员一直驻留在内存中。

146、共用体类型定义中不能出现结构体类型的成员。

147、用typedef可以增加新类型。

148、设有程序段"char s[ ]="program";char *p;p=s;"表示数组的第一个元素s[0]和指针p相等。

149、struct{ int num; float scor;}student; struct student std1; 是对结构体类型的变量student的定义。

150、一个共用体变量中不能同时存放其所有成员。

151、在C程序中,main函数必须位于程序的最前面。

152、一个C语言源程序必须包含一个main 函数。

153、一个C语言程序是由一个主函数和若干个子程序组成的。

154、在c程序中,要调用的函数必须在main函数中定义。

155、主函数可以分两个部分:主函数说明部分和主函数体。

156、c程序中,主函数可以调用任何非主函数的其他函数。

157、c程序中,任何非主函数都可以调用其他任何非主函数。

158、如果某个函数在定义时省略了存储类型,则默认的存储类型是int。

159、在c语言中,存储类型为register和extern的变量只在使用它们时才占用存储空间。

160、若一个外部变量的定义形式为static int x;其中static的作用是使x只能在本文件内引用。

161、外部变量必须定义在文件的开头部分。

162、若一个C程序中说明一个全局变量int ⅰ; (在所有函数之外说明的),则该程序任何一点都可引用全局变量ⅰ。

163、如果定义函数时的参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量、数组名或简单变量的地址。

164、在C语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。

165、用指针作为函数参数时,采用的是"地址传送"方式。

166、在声明变量时必须给出变量的类型。

167、声明语句可放在函数体中的任何位置。

168、C程序文件中每个函数都将被本文件调用。

169、在C语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。

170、所有的变量在使用前都必须予以声明。

171、局部静态变量是在编译时赋初值的,即只赋初值一次。

172、C语言中,如果在定义函数时省略extern,则隐含为外部函数。

173、函数定义时,可以不指定形参的类型,函数调用时由实参的类型决定形参的类型。

174、若 i 为某函数 func 之内说明的变量,则当 func 执行完后, i 值无定义。

175、一个C源程序文件由一个或多个函数组成,由此可见函数是一个独立的编译单位。

176、在C语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。

177、C程序中,在定义函数时的参数是"形式参数",在调用函数时的参数是"实际参数"。

178、#include " iostream.h "的作用是将说明标准输入流对象的头文件包含到当前源文件中来。

179、若ⅰ为某函数func之内说明的变量,则当func执行完后,ⅰ值无定义。

180、C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。

181、C程序的main函数可以有参数,但参数不能是指针类型。

182、在main函数中定义的变量称为全局变量。

183、一个可执行的C语言程序总是从main()函数的入口地址处开始执行。

184、建立函数的目的是为了提高程序的执行效率。

185、用户若需调用标准库函数,调用前必须重新定义。

186、用户可以重新定义标准库函数,但若如此该函数将失去原来的意义。

187、函数的实参和与其对应的形参各占用独立的存储单元。

188、若一个被调用函数中没有return语句则表示该函数没有返回值。

189、c语言规定形参可以是常量、变量或表达式,只要与其对应的实参类型一致即可。

190、定义函数时,形参的类型说明放在函数体内。

191、如果函数值的类型与返回值类型不一致,以函数值类型为准。

192、如果形参和实参的类型不一致,以实参的类型为准。

193、c语言规定简单变量做实参时,它与对应形参之间的数据传递方式是地址传递。

194、c语言规定函数返回值的类型是由在定义该函数时所指定的函数类型所决定的。

195、函数的定义可以嵌套,但函数的调用不可以嵌套。

196、若用数组名作为函数调用的实参,传递给形参的是数组中的第一个元素的值。

197、若用一维数组名作为函数实参,则必须在主调函数中说明此函数的大小。

198、如果在一个函数中的复合语句中定义了一个变量,则该变量在该函数中都有效。

199、在不同函数中可以使用相同名字的变量。

200、凡是函数中未指明存储类别的局部变量,其隐含的存储类别为自动(auto)。

201、C语言允许main函数带形参,并且形参名只能是argc和argv。

202、main函数是系统提供的主函数,不需要用户自己编写。

203、char add()是一个正确的函数说明。

204、若主调函数为double型,被调函数定义中没有函数类型说明,而return语句中的表达式为double型,则被调函数返回值的类型是double型。

205、有多少个return语句,就能返回多少个值。

206、在c语言中,static类型的变量在函数内说明,而在整个程序运行期间都存在,因此c语言中全局变量的存储类别是static。

207、在一个C源程序文件中,静态变量在该文件中的所有函数都能使用。

选择题

1、设 int b=8;表达式(b>>2)/(b>>1)的值是________。

A) 0 B) 2 C) 4 D) 8

2、以读写方式打开一个已有的文件file1,下面有关fopen函数正确的调用方式为________。

A)FILE *fp;fp=fopen("file1";"f"); B)FILE *fp;fp=fopen("file1","r+");

C)FILE *fp;fp=fopen("file1","rb"); D)FILE *fp;fp=fopen("file1","rb+");

3、在C程序中,可把整型数以二进制形式存放到文件中的函数是__________。

A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数

4、以下程序输出的结果是 ______

#include

#include

main()

{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for (k=1;k<3;k++) printf("%sn",&w[k][k]);

}

A)ABCD B)ABCD C)EFG D)FGH

FGHEFG JKKL

KL IJ O

M

5、下列程序执行后的输出结果是 _______。

#define MA(x) x*(x+1)

main()

{ int a=2,b=3; printf("%d n",MA(1+a+b)); }

A) 6 B) 8 C) 24 D) 42

6、函数调用语句fseek(fp,10,1)的含义是_______。

A)将文件指针移到距离文件头10个字节处

B)将文件指针移到距离文件尾10个字节处

C)将文件指针从当前位置后移10个字节

D)将文件指针从当前位置前移10个字节

7、有如下程序

#define N 3

#define M N+1

#define NUM 2*M+1

main()

{ int i;

for(i=1;i<=NUM;i++) printf("%dn",i);

}

该程序中的for循环执行的次数是_______。

A) 5 B) 6 C) 7 D) 8

8、以下各选项企图说明一种新类型名,其中正确的是_______。

A)typedef a1 int; B)typedef a2=int C)typedef int a3; D)typedef a4;int;

9、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是_______。

A) EOF B) 0 C) 非零值 D) NULL

10、在C语言中,用w+方式打开一个文件后,可以执行的文件操作是________。

A)可任意读写 B)只读 C)只能先写后读 D)只写

11、下面程序输出结果是________。

#define MAX(x,y) (x)>(y)?(x):(y)

main()

{ int a=4,b=2,c=3,d=4,t;

t=MAX(a+b,c+d)*10; printf("%dn",t);

}

A) 6 B) 7 C) 60 D) 70

12、当顺利执行了文件关闭操作时,fclose函数的返回值是________。

A)0 B)Ture C)-1 D)1

13、下列叙述中正确的是________。

A) C语言编译时不检查语法。

B) C语言的子程序有过程和函数两种。

C) C语言的函数可以嵌套定义。

D) C语言所有函数都是外部函数。

14、下列语句中,不能将文件型指针fp指向的文件内部指针置于文件头的语句是________。

(注:假定能正确打开文件)

A)fp=fopen("","w") B)rewind(fp) C)feof(fp) D)fseek(fp,0L,0)

15、运行程序:

#define S(X) 2*X+1

main()

{ int a=6,k=2,m=1;

a+=S(k+m); printf("%dn",a);

}

则输出结果是________。

A) 13 B) 12 C) 7 D) 6

16、源程序TEST.C经编译产生的目标文件和连接后产生的可执行文件是________。

A)和 B)和 C)和TEST.c D)和

17、下面说明中,正确的是________。

A) typedef v1 int; B) typedef v2=int; C) typedef int v3; D) typedef v4: int;

18、feof函数用来判断文件是否结束,如果文件没有结束,则返回值是________。

A)-1 B)0 C)1 D)EOF

19、以下程序的输出结果是

#define M(x,y,z) (x)*y+z

main()

{ int a,b,c;

a=b=1;c=3; printf("%dn", M(a+b,b+c,c+a));

}

A) 9 B) 12 C) 8 D) 程序不能运行

20、若定义unsigned int a=3,b=10;

printf("%dn",a<<2|b==1);

则运行结果为________。

A)13 B)12 C)8 D)14

21、整型变量x和y的值相等且为非0值,则下面表达式中结果为零的是________。

A) x||y B) x|y C) x&y D) x^y

22、fread和fwrite函数常用来要求一次输入/输出________数据。

A)一个整数 B)一个实数 C)一个字节 D)一组

23、下面的程序执行后,文件test.t中的内容是

#include

void fun(char *fname ,char *st)

{ FILE *myf;

int i;

myf=fopen(fname,"w" );

for(i=0;i

fclose(myf);

}

main()

{ fun("test.t","new world");fun("test.t", "hello,"); }

A) hello, B) new worldhello, C) new world D) hello,rld

24、以下叙述正确的是_________。

A) 可以把define和if定义为用户标识符 B) 可以把define定义为用户标识符,但不能把if定义为用户标识符

C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符

25、若要打开A盘上user1子目录下名为的文本文件进行读、写操作,则正确语句是___。

A) fopen("A:","r") B) fopen("A:","r+")

C) fopen("A:","rb") C) fopen("A:","w")

26、设有以下说明语句

typedef struct

{ int n;

char ch[8];

} PER;

则下面叙述中正确的是

A) PER 是结构体变量名 B) PER是结构体类型名27、下面程序的输出结果是________。

main()

{ int x=5,y=9,z=1,t;

t=(x>y||x>z); printf("%dn",t);

}

A) 1 B) 0 C) 5 D) 3

28、程序中头文件typel.h 的内容是:

#define N 5

#define M1 N*3

程序如下:

#define "type1.h"

#define M2 N*2

main()

{ int i;

i=M1+M2; printf("%dn",i);

}

程序编译后运行输出结果是________。

A) 10 B) 20 C) 25 D) 15

29、有以下程序

#include

main()

{ FILE *fp;

int i=10,j=30,k,n;

fp=fopen("","w");

fprintf(fp,"%dn",i);

fprintf(fp,"%dn",j);

fclose(fp);

fp=fopen("", "r");

fp=fscanf(fp,"%d%d",&k,&n);

printf("%d %dn",k,n);

fclose(fp);

}

程序运行后的输出结果是________。

A) 10 30 B) 20 30 C) 30 50 D) 30 20

31、下列程序执行后的输出结果是________。

main()

{ int x='d';

是结构体类型 D) struct 是结构体类型名 C) typedef struct

printf("%cn",'A'+(x-'a'+1));

}

A) G B) H C) E D) J

32、下面能正确进行字符串赋值操作的语句是________。

A)char s[5]={"ABCDE"} B)char s[5]={'A','B','C','D','E'}; C)char *s;s={"ABCDEF"}; D)char *s;scanf("%s",s);

33、下列程序执行后的输出结果是________。

main()

{ char arr[2][5];

strcpy(arr,"love");

strcpy(arr[1],"you");

arr[0][4]='$';

printf("%sn",arr);

}

A) love B) love$you C) you D) $you

34、以下程序运行后,输出结果是________。

main()

{ static char a[]="ABCDEFGH", b[]="abCDefGh";

char *p1,*p2;

int k;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));

prinft("n");

}

A)ABCDEFG B)CDG C)abcdefgh D)abcCDefGh

35、设有说明语句: char a='72';则变量a________。

A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法

36、有如下程序段

int a=14,b=15,x;

char c='A';

x=(a&&b)&&(c<'B');执行该程序段后,x的值为________。

A) ture B) false C) 0 D) 1

37、若变量c为char类型,能正确判断出c为大写字母的表达式是________。

A) 'A'<=c<='Z' B) (c>='A')||(c<='Z') C) ('A'<=c)and ('Z'>=c) D) (c>='A')&&(c<='Z')

38、执行下面程序:

#include

#include

main()

{ char ss[10]="1,2,3,4,5";

gets(ss);

strcat(ss,"6789"); printf("%sn",ss);

}若输入ABC↙,则输出结果是________。

A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789

39、运行程序:

main()

{ int x=1.5;

char z='a';

printf("%dn",(x&1)&&(z<'z'));

}

则输出结果是________。

A) 0 B) 1 C) 1.5

40、运行程序:

D) 结果不确定

main()

{ char x[]="11 223344";

x[4]='0';

printf("%s n",x);

}则输出结果是________。

A) 11 B) 0 C) 11 203344 D) 11 023344

41、以下程序的输出结果是________。

main()

{ char c='z';

printf("%c",c-22);

}

A) d B) e C) c D) f

42、以下选项中,非法的字符常量是________。

A) '"' B) '15' C)"n" D) 'xaa'

43、以下定义语句中,错误的是________。

A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test";

44、以下程序的输出结果是________。

#include

#include

main()

{ char st[20]="hello0t";

printf("%d %d n",strlen(st),sizeof(st));

}

A) 8 8 B) 5 20 C) 11 20 D) 20 20

45、以下语句中,不正确的是________。

A) char s1[10];s1="Ctest "; B) char s2[]={'C', 't', 'e', 's', 't'}; C) char s3[5]="Ctest"; D) char s4[10]="Ctestn0"

46、若变量a是int类型,执行语句: a='A'+1.6;后,正确的叙述是________。

A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符'A'的ASCII值加上1

47、运行下面程序:

char cch(char ch)

{ if(ch>='A'&&ch<='Z') ch=ch-'A'+'a';

return ch;

}

main()

{ char s[]="ABC+cde=XxYy1",*p=s;

while(*p)

{ *p=cch(*p); p++; }

printf("%sn",s);

}则输出结果是________。

A) ABC+CDE=XXYY1 B) abc+cde=xxyy1 C) abcCDEXxYy D) abccdexxyy

48、下面程序段的输出结果是________。

char s[]="101111abc0";

printf("%sn",s);

A) AIabc0 B) 101111abc0 C) 101111abc D) AIabc

49、运行下面程序:

main()

{ char c[][6]={"AAAA","BBB","CCC","DDD"};

printf(""%s"n",c[1]);

}则输出结果是________。

A) "AAAA"

50、运行下面程序:

main()

B) "BBB" C) "BBBCCC" D) "CCCDDD"

D) int n=5,a[n];

{ char x=034;

printf("%on",x<<1);

}则输出结果是________。

A) 34 B) 70 C) 340 D) 034

51、下面语句不能正确进行字符串赋初值的是________。

A) char str[5]="good!"; B) char str[]="good!"; C) char *str="good!"; D) char str[5]={'g','o','o','d','!'};

52、运行下面程序:

#include

#include

main()

{

char b[8]="abcde",c[8],*pb=b+3;

while (--pb>=b) strcpy(c,pb);

printf("%dn",strlen(c));

}则输出结果是________。

A) 8 B) 5 C) 6 D) 7

53、运行下面程序:

main()

{

char *p="abcdefgh",*r;

int *q;

q=(int*)p; q++; r=(char*)q; printf("%sn",r);

}则输出结果是________。

A) abcdefgh B) bcdefgh C) cdefgh D) efgh

54、运行下面程序:

void fun(char *c,int d)

{

*c=*c+1;d=d+1;

printf("%c %cn",*c,d);

}

main()

{

char a='B',b='c';

fun(&b,a); printf("%c %cn",a,b);

}则输出结果是________。

A) d C B) d C C) d C D) d C

B d C d B c d C

55、运行下面程序:

main()

{ char c[ ]={'a','b','c','d', 'e', 'f', 'g','h','0'};

int i,j;

i=sizeof(c); j=strlen(c); printf("%d %dn",i,j);

}则输出结果是________。

A) 9 9 B) 8 9 C) 1 8 D) 9 8

56、运行下面程序:

#include

main()

{ char *p="abcdeOfghjik0";

printf("%dn",strlen(p));

}则输出结果是________。

A) 12 B) 15 C) 6 D) 5

57、以下描述中不属于C语言的类型的是________。

A) signed short int

58、若有说明语句:

B) unsigned long int C) unsigned int D) long float

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

59、在下面程序段中,while语句的循环次数是________。

main()

{ int k=0;

while(k<10) { if (k<1) continue;

if(k==5) break;

k++; }

......

}

A) 0 B) 10 C) 6 D) 死循环,不能确定次数

60、下面程序的输出结果是________。

main()

{

int x=177;

printf("%on",x);

}

A) 177 B) 261 C) -61 D) 61

61、下面程序的输出结果是________。

main()

{ int x=10;

x+=(x=8); printf("%dn",x);

}

A) 10 B) 8 C) 18 D) 16

62、下面程序的输出结果是________。

main()

{

int s,k;

for(s=1,k=2;k<5;k++) s+=k;

printf("%dn",s);

}

A) 1 B) 9 C) 10 D) 15

63、设有定义:long a=-123456L;,则以下能够正确输出变量x值的语句是________。

A) printf("a=%dn",a); B) printf("a=%ldn",a); C) printf("a=%8dLn",a); D) printf("a=%LDn",a);

64、运行下面程序:

main()

{ int k=3,i=2,m;

m=(k-=i*=k);

printf("%d %d %dn",m,k,i);

}则输出结果是________。

A) -3 -3 6 B) -1 -1 6 C) 3 3 6 D) 1 1 2

65、以下选项中,与k=n++完全等价的表达式是________。

A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

66、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

main()

{ int n,k;

float score,sum,ave;

sum=0.0;

for(n=1;n<=10;n++)

{ for(k=1;k<=4;k++)

{ scanf("%f",&score);

sum+=score;

}

ave=sum/4.0; printf("NO%d:%fn",n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是________。

A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%fn",n,ave);

67、有以下程序段

int n=0,p;

do

{ scanf("%d",&p);n++;

}while(p!=123&&n<10);

此处do-while循环的结束条件是________。

A) P的值不等于123或者n的值小于10 B) P的值等于123并且n的值大于等于10

C) P的值不等于123并且n的值小于10 D) P的值等于123或者n的值大于等于10

68、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是________。

A) void B) int C) float D) double

69、下列程序执行后的输出结果是________。

main()

{ char x=0xFFFF;

printf("%d n",x--);

}

A) -32767 B) FFFE C) -1 D) -32768

70、以下程序的执行结果是________。

main()

{ int a,y;

a=10; y=0;

do { a+=3; y+=a; printf("a=%d y=%dn",a,y);

if(y>30) break;

printf("****n");

}while(1);

}

A) a=13 y=13 B) a=13 y=13 C) a=13 y=13 D) a=13 y=13

**** **** **** ****

a=16 y=29 a=13 y=29 a=13 y=19

**** **** ****

a=19 y=48 a=13 y=44

71、有如下程序

main()

{ int i,sum=0;

for(i=0;i<=3;sum++) sum+=i;

printf("%dn",sum);

}该程序的执行结果是________。

A) 6 B) 3 C) 死循环 D) 0

72、要使下面程序段输出10个整数,则在下划线处填入正确的数是________。

for(i=0;i<=____ ;) printf("%dn",i+=2);

A) 9 B) 10 C) 18 D) 20

73、若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值是________。

A) -5 B) -40 C) -15 D) 不确定

74、设x、y、t均为int型变量,则执行语句:x=y=2;t=++x||++y;后,y的值为________。

A) 不确定 B) 2 C) 3 D) 1

75、若变量已正确说明为float类型,要通过语句 scanf("%f %f %f",&a,&b,&c);使a=10.0,b=22.0,c=33.0,则下面不正确的输入形式是________。

A) 10<回车>

22<回车>

33<回车>

B) 10.0,22.0,33.0<回车>

C) 10.0<回车>

22.0 33.0<回车>

D) 10 22<回车>

33<回车>

76、执行下面程序:

main()

{

int n;

scanf("%d",&n);

if(n++<5) printf("%dn",n);

else printf("%dn",n--);

}若从键盘上输入4,则输出结果是________。

A) 6 B) 4 C) 5 D) 3

77、执行下面程序:

min()

{int i,sum;

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

printf("%dn",sum);

}则输出结果是________。

A)15 B)14 C)不确定 D)0

78、运行程序:

main()

{ int a=1,b=2;

a+=b;b=a-b;a-=b;

printf("%d,%dn",a,b);

}则输出结果是________。

A) 2,1 B) 3,1 C) 3,2 D) 1,1

79、设x、y均为整型变量,且x=5,y=4,则下面语句的输出结果是________。

printf("%d,%dn",x--,--y);

A) 5,4 B) 4,4 C) 4,3 D) 5,3

80、下面程序的输出结果是________。

main()

{ int a=3;

printf("%dn",a+(a-=a*a));

}

A) -6 B) 12 C) 0 D) -12

81、t为int类型,在进入下面的循环之前,t的值为0:

while( t=l )

{ ...... }则以下叙述中正确的是________。

A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D)

82、以下程序的输出结果是________。

main()

{ int num= 0;

while(num<3)

{ num++;

以上说法都不对

printf("%dn",num);

}

}

A) 1 4

2

3

83、运行下面程序:

main()

{

int i=10,j=0;

do

{ j=j+i; i--; } while(i>5);

printf("%dn",j);

}输出结果是________。

A)45 B)40 C)34 D84、运行下面程序:

main()

{

int n1,n2;

scanf("%d",&n2);

while(n2!=0)

{

n1=n2%10;

n2=n2/10;

}

printf("%d",n1);

}若从键盘上输入298↙ 则输出结果为________。A)2 B)29 C)8 D85、若有定义:

int a=8,b=5,c;

则执行语句c=a/b+0.4;后,c的值为________。

A) 1.4 B) 1

86、执行程序段:

int a=1234;

printf("%2dn",a);

则输出结果是________。

A) 12 B) 34 C) 1234 D)

87、运行下面程序:

#include

main()

{ int k=0,a=1;

while(k<10)

{

for(;;)

{

if((k%10)==0) break;

else k--;

}

k+=11;a+=k;

}

printf("%d %dn",k,a);

}则输出结果是________。

B) 1

2

3

)55

)0

提示出错、无结果

C) 1

D) 1

2

C) 2.0 D) 2

A) 21 32 B) 21 33 C) 11 12 D) 10 11

88、运行下面程序:

main()

{

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

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

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

t=t+x[i][x[j][j]];

printf("%dn",t);

}则输出结果是________。

A) 3 B) 4 C) 1 D) 6

89、在C语言中,设一表达式中包含有int,long,char和unsigned类型的变量和数据,则这4种类型数据转换的规则是。

A)int→unsingned→long→char B)char→int→long→unsingned C)char→int→unsigned→long D)int→char→unsigned→long

90、以下叙述正确的是________。

A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。

C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。

91、若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为________。

A)10 20 B)10,20 C)1020 D)10:20

92、有如下程序

main()

{ int x=3;

do

{

printf("%d",x--);

}while(!x);

}该程序的执行结果是________。

A) 3 2 1 B) 2 1 0 C) 3 D) 2

93、以下4个选项中,不能看作C语言的一条语句是________。

A) {;} B) a=1,b=1,c=1; C) if(x>0); D) if(b==1) k=2;n=3;

94、有如下程序

main()

{

int n=9;

while(n>6)

{ n--; printf("%2d",n); }

}该程序段的输出结果是________。

A) 9 8 7 B) 8 7 6 C) 8 7 6 5 D) 9 8 7 6

95、若k为整型变量,则下面while循环执行的次数为________。

k=10;

while(k==0) k=k-1;

A)0次 B)1次 C)10次 D)无限次

96、有如下程序

fib(int n)

{

if(n>2)

return(fib(n-1)+fib(n-2));

else

return(2);

}

main()

{

printf("%dn",fib(3));

} 该程序的输出结果是________。

A) 2 B) 4 C) 6 D) 8

97、数组定义char a[10]={'a','b','c'};包括了________个元素。

A)3 B)9 C)4 D)10

98、有以下程序段:

int k=0;

while(k) k++; 则while 循环执行的次数是________。

A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次

99、函数strlen("12340xy")的值为________。

A)7 B)8 C)4 D)9

100、执行下面程序:

main()

{

int x=4;

do

{

printf("%dn",x-=2);

}while (!(--x));

}则输出结果是________。

A) 2

B) 4

2

C) 2

1

D) 死循环

101、以下存储类型只有在使用时才为该类型变量分配内存的是________。

A)auto和static B)auto和register C)register和static D)static和extern

101、设有以下函数:

fun(int x)

{

int y=0;

static int z=2;

y++; z++;

return(x+y+z);

}若在下面主程序中调用该函数,则输出结果是________。

main()

{

int x=3,k;

for(k=1;k<=3;k++) printf("%dn",fun(x));

}

A) 7 B) 7 C) 7

8 9 10

9 11 13

103、有以下定义

#include

char a[10],*b=a;

不能给a数组输入字符串的语句是________。

A)gets(a) B)gets(a[0]); C)gets(&a[0]); D)gets(b)

104、运行下面程序:

int ff(int n)

{

D) 7

7

7

static int f=1;

f=f*n;

return f;

}

main()

{

int k;

for(k=1;k<4;k++) printf("%dn",ff(k));

}则输出结果是________。

A) 1 B) 1 C) 1 D) 1

2 2 2 2

6 6 3 3

24 4

105、若有以下定义

#define SQR(x) ((x)*(x))

#include

main()

{

float b=3.0;

printf("sqr=%.2fn",sqr(b)+1);

}则运行结果为________。

A)sqr=3.0 B)sqr=9.0 C)sqr=10 D)sqr=10.00

106、下列运算符中优先级最高的是________。

A) < B) + C) && D) ! =

107、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式________。

A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息

108、若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.2lf",&x,&y,&z);

109、已有如下定义和输入语句,若要求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 20 B B)10 A 20 B C) 10A20B D)10A20 B

110、已有定义int x;float y; 且执行scanf("%3d%f",&x,&y);语句时,从第一列开始输入数据库12345 678,y的值为________。

A)无确的定值 B)45.000000 C)678.000000 D)123.000000

111、判断char型变量ch是否为大写字母的正确表达式是________。

A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch)

112、已有程序段和输入数据的形式,程序中输入语句的正确形式应当为________。

main( )

{

int a;

float f;

printf("nInput number:");

}

input number: 4.5 2

A)scanf("%d,%f ",&a,&f); B)scanf("%f ,%d",&f,&a); C)scanf("%d%f ",&a,&f); D)scanf("%f%d",&f,&a);

113、根据定义和数据的输入方式,输入语句的正确形式为________。

已有定义:float f1,f2;

数据的输入形式:4.52

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

114、读以下程序,当输入数据的形式为:25,13,10,正确的输出结果________。

main( )

{

int x,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%dn",x+y+z);

}

A) x+y+z=8 B) x+y+z=35 C) x+y=35 D)不确定值

115、根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为________。

main( )

{

char ch1,ch2,ch3;

(输入语句)

printf("%c%c%c",ch1,ch2,ch3);

}

输入形式:A B C

输出形式:A B

A)scanf("%c,%c,%c",&ch1,&ch2,&ch3); B)scanf("%2c%2c%2c",&ch1,&ch2,&ch3);

C)scanf("%c %c %c",&ch1,ch2,&ch3); D)scanf("%c%c%c",&ch1,&ch2,&ch3);

116、设int a=12,则执行完语句a+=a-=a*a后,a的值是________。

A) 552 B) 264 C) 144 D) -264

117、设a=5, b=6, c=7, d=8, m=2,n=2, 执行(m=a>b)&&(n=c>b) 后n的值为________。

A)1 B)2 C)3 D)4

118、逻辑运算符两侧运算对象的数据类型________。

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

119、正确表示"当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)

120、设x,y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是________。

A)'x' &&'y' B)x<=y C)x || y+z&&y-z D)!((x

121、已知x=43,ch='A',y=0;则表达式x=y&& ch<'B'&&!y的值是________。

A)0 B)语法错 C) 1 D) "假"

122、若希望当A的值为奇数时,表达式的值为"真"。A的值为偶数时,表达式的值为"假"。则以下能满足要求的表达式是________。

A)A%2==1 B)!(A%2= =0) C)!(A%2) D)A%2

123、以下程序的运行结果是________。

main()

{

int m=5;

if(m++>5) printf("%dn"m);

else printf("%dn",m - -);

}

A)4 B)5 C)6 D)7

124、执行以下语句后b的值为________。

int a,b,c; a=b=c=1; ++a||++b&&++c;

A)1 B)2 C) 错误 D)0

125、不合法的常量是________。

A) '2' B) '""'(外面是单引号) C) " " D)"483"

126、若有以下定义

char s='092'; 则该语句________。

A)使s的值包含一个字符 B)定义不合法,s的值不确定 C)使s的值包含4个字符 D)使s的值包含3个字符

127、以下程序的输出结果是________。

main()

{

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

if(x

if(y!=10)

if(!ok1) a=1;

else if(ok2) a=10;

}

A)1 B)0 C)-1 D) 值不确定

128、下列正确的字符常量是________。

A、"C" B、''' C、'W' D''

129、下列不正确的字符串常量是________。

A) 'ABC' B) "W'" C) "SDF/3" D) " "

130、若定义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.50000 D) 0.000000

131、表达式18/4*sqrt(4.0)/8值的数据类型是________。

(sqrt()为求平方根函数)

A) int B) float C) double D) 不正确

132、设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是________。

A) int B) float C) double D) char

133、执行下列语句int a=3,b;b=-(--a);后a,b的值分别是________。

A) 2和-2 B) 2和-3 C) 3 和-2 D) 3 和-3

134、执行下列语句float f=3.9;int a=4;f=(int)f+a;后f的值是________。

A) 7.9 B) 7.000000 C) 7.0 D) 出错

135、执行下列语句int f=3,g,h;g=++f;g=f++;h=++g;后f和h的值是________。

A) 5和5 B) 6和5 C) 5和6 D) 4和5

136、下列C语句格式错的是________。

A) int a=10; B) int a,b,z; C) a=2:b=3 ; D) z=a+b;

137、设int类型的数据长度为2个字节,则unsigned int 类型数据的取值范围是________。

A) 均为2个字节 B) 0至65535 C) -32768至32767 D) -256至255

138、一个C程序的执行是从________。

A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束

139、以下程序段

x=--1;

do

{ x=x*x; }while (!x);

A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误

140、以下描述中正确的是________。

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do-while循环体中,一定要有能使while后面表达式的值边为零("假")的操作

D)do-while循环中,根据情况可以省略while

141、若有如下语句

int x=3;

do { printf("%dn",x--=2); } while (! (-- --x));

则上面程序段________。

A)输出的是1 B)输出的势力1和-2 C)输出的是3和0 D) 是死循环

142、下面程序的运行结果是________。

#include

main()

{

int y=10;

do{y--;} while(--y);

printf("%dn",y--);

}

A) -1 B) 1 C) 8 D) 0

143、下面程序的运行结果是________。

#include

main()

{

int a=1,b=10;

do

{ b--=a;

a++;

}while(b--<0);

printf("a=%,b=%dn",a,b);

}

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

144、下面有关for循环的正确描述是________。

A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判断表达式

C) 在for循环中,不能用break语句跳出循环体 D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

145、对for(表达式1; ; 表达式3)可理解为________。

A) for(表达式1; 0;表达式3) B) for(表达式1: 1 ;表达式3)

C)for(表达式1; 表达式1; 表达式3) D) for(表达式1; 表达式2; 表达式3)

146、若i为整型变量,则以下循环执行次数是________。

for (i=2; i==0;) printf("%d",i--);

A) 无限次 B)0次 C)1次 D)2次

147、以下for循环的执行次数是________。

for (x=0,y=0; (y=123)&&(x<4);x++);

A) 是无限循环 B) 循环次数不定 C)执行4次 D)执行

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

A) 3 B) 4 C) 5 D) 不定

149、下面程序的功能是计算1至50中所有能被7整除的数之和,请选择填空.

#include

main()

{

int i,sum= 0;

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

if(________) 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

150、设有 int x=8; 则表达式 (++x*1/3) 的值是________。

A) 2 B) 3 C)2.6 D) 0

151、设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为________。

A)4 B)16 C)32 D)52

152、下列程序的输出结果是________。

main()

{

float d=2.2;

int x,y;

x=6.2;

y=(x+3.8)/5.0;

printf("%dn", d*y);

}

A) 4 B) 4.4 C) 2 D) 0

153、C语言程度的基本单位是______。

A) 函数 B) 标识符 C) 表达式 D) 语句

154、运行下面程序:

main()

{

float d, f;

long l;

int i;

i=f=1=d=20/3;

printf("%d %ld %3.1f %3.1f 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

155、设int类型的数据长度为2字节,则该类型数据的取值范围是______。

A) 0至65536 B) 0至65535 C) -32767至32768 D) -32768至32767

156、下列变量定义中合法的是________。

A) int _a=1-.e-1; B) double b=1+5e2.5; C) long x=12.5; D) float 2_and=1-e-3;

157、在C语言中,逻辑值"真"是用______表示的。

A) 预定义为真值的宏 B) 非零数 C) 正数 D) 非零整数

158、设 int x=2, y=1;

则表达式(!x||y--)的值是________。

A) 0 B) 1 C) 2 D) -1

159、以下______符合C语言语法的实型常量。

A) 1.3E0.5 B) .7E-2 C) 3.14159E D) E5

160、与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是________。

A) if (x>0) y=1; B) if(x)

else if(x<0)y=-1; if(x>0)y=1;

else y=0; else if(x<0)y=-1;

else y=0;

C) y=-1; D) y=0;

if(x) if(x>=0)

if(x>0)y=1; if(x>0)y=1;

else if(x==0)y=0; else y=-1;

else y=-1;

161、以下______合法的一组用户定义标识符。

A) If B) turbo C) 3CON D) void

int _001 include k_3

162、以下循环体的执行次数是________。

main()

{

int i,j;

for(i=0,j=3;i<=j;i+=2,j--)

printf("%dn",i);

}

A) 3 B) 2 C) 1 D) 0

163、以下______符合C语言语法的赋值表达式。

A) d=8+e+f=d+a B) 8+e=f=d C) d=f=8+e++ D) d=8+e++=d+7

164、下列程序的运行结果是________。

#include

main()

{

int a=2,c=5;

printf("a=%d,b=%dn",a,c);

}

A) a=%2,b=%5 B) a=2,b=5 C) a=d,b=d D) a=%d,b=%d

165、若有定义

#define a 4

int x=0;float y=1.12;char z='A';则下面错误的语句是______。

A) a++; B) x++; C) ++y; D) ++z;

166、若有定义: float w; int a, b; 则合法的switch语句是________。

A) switch(w) B) switch(a);

{ case 1.0: printf("*n"); { case 1 printf("*n");

case 2.0: printf("**n"); case 2 printf("**n");

} }

C) switch(b) D) switch(b)

{ case 1: printf("*n"); { case 1: printf("*n")

default: printf("n"); case 2: printf("**n")

case 1+2: printf("**n"); default: printf("n")

} }

167、C语言对于嵌套if语句规定else总是______匹配。

A)与最外层的if B)与之前最近的if C)与之前最近的不带else的if D)与最近的{ }之前的if

168、设有以下变量定义,并已赋确定的值 char w; int x; float y; double z;

则表达式:w+x+z/y值的数据类型为________。

A) char B) int C) float D) double

169、若a,b,c均为int型变量,则执行以下语句后,a、b值分别为______。a=b=c=0;a++ && ++b || c++;

A) 1,0 B) 0,1 C) 1,1 D) 0,0

170、若x为int类型,则下面与逻辑表达式!x等价的C语言关系表达式是________。

A) x==1 B) x!=1 C) x==0 D) x!=0

171、设int a=3;下列表达式值等于0的是______。

A) a && (a>0) B) !a||a C) a%=a D) a>=a

172、若变量已正确定义并赋值,下面符合C语言语法的表达式是________。

A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b

173、设int a=5,b=2,c=3,d=4;则表达式a>b?a:c>d?c:d值为________。

A) 2 B) 3 C) 4 D) 5

174、C语言中运算对象必须是整型的运算符是________。

A) % B) / C) = D) >

175、设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为________。

A)4 B)16 C)32 D)52

176、若已定义x和y为float类型,则表达式x=2,y=x+3/2 的值是________。

A) 2.0 B) 3.0 C) 1.5 D) 3.5

177、设有如下的变量定义

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)x%(-3) C)a=a*3=2 D)y=float(i)

178、若变量a、i已正确定义,且i已正确赋值,则下面合法的语句是________。

A) a==2 B) ++i; C) a=a++=5; D) a=int(i);

179、假定有以下变量定义:

int k=7,x=12; 则能使值为3的表达式是________。

A)x%=(k%=5) B)x%=(k-4%5) C)x%=k-k%5 D)(x%=k)-(k%=5)

180、若有以下程序段,

int c1=1,c2=2,c3;

c3=1.0/c2*c1; 则执行后,c3的值是________。

A) 0 B) 0.5 C) 1 D) 2

181、以下叙述正确的是________。

A)输入量可以是一个实型常量,

例如:scanf("%f",3.5);

B)只有格式控制,没有输入项,也能正确输入数据到内存,

例如:scanf("a=%d,b=%df");

C)当输入实型数据时,格式控制部分可以规定小数点后位数,

例如:scanf("%4.2f",&f);

D)当输入数据时,必须指明变量地址,

例如:scanf("%f",&f);

182、有程序:

main()

{

int y=3,x=3,z=1;

printf("%d %dn",(++x,y++),z+2);

}

运行该程序的输出结果是________。

A) 3 4 B) 4 2 C) 4 3 D) 3 3

183、设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是________。

A)把x和y按从大到小排列 B)把x和y按从小到大排列 C)无确定结果 D)184、能正确表示逻辑关系:"a≥5或a≤-1"的C语言表达式是________。

A) a>=5 or a<=-1 B) a>=5|a<=-1 C) a>=5 &&a<=-1 D) a>=5||a<=-1

185、以下程序的输出结果是________。

main()

{

int a=12,b=12; printf("%d %dn",--a,++b);

}

A)10 10 B)12 12 C)11 10 D)11 13

186、有如下程序

main()

{

int x=1,a=0,b=0;

switch(x)

{

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

printf("a=%d,b=%dn",a,b);

}该程序的输出结果是________。

A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2

187、以下程序的输出结果是________。

main()

{

int m=5;

if(m++>5)

printf("%dn",m)

esle

printf("%dn",m--)

}

A)7 B)6 C)5 D)4

188、有如下程序

main()

{

float x=5.0,y;

if(x<0.0)

y=0.0;

交换x和y中的值

else

if(x<10.0) y=1.0/x;

else y=1.0;

printf("%fn",y);

}该程序的输出结果是________。

A) 0.000000 B) 5.000000 C) 0.200000 D) 1.000000

189、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为________。

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

A)1 B)2 C)3 D)6

190、有如下程序

main()

{

int a=3,b=-1,c=1;

if(a

if(b<0) c=0;

else c++;

printf("%dn",c);

}该程序的输出结果是________。

A) 0 B) 1 C) 2 D) 3

191、在执行以下程序时,如果从键盘输入:ABCdef<回车>,则输出为________。

#include

main()

{

char ch;

while((ch=getchar())!='n')

{

if(ch>='A'&&ch<='Z')

ch=ch+32;

else

if(ch>='a'&&ch<='z') ch=ch-32;

printf("%c",ch);

}

printf("n");

}

A)ABCdef B)abcDEF C)abc D)DEF

192、执行下面程序段:

int a=10,b=9,c;

c=(a-=(b-5));

c=(a%11)+(b=3);

则变量b的值是________。

A) 9 B) 4 C) 3 D) 0

193、当执行以下程序段时,描述正确的选项是________。

x=-1;

do

{

x=x*x;

}while(!x);

A)循环题将执行一次 B)循环题将执行两次 C)循环题将执行无限次 D)系统提示有语法错误

194、下面能正确表示"整数x的绝对值大于等于5"的C语言表达式是________。

A) x≥0 B) abs(x) ≥0 C) abs(x)>=0 D) abs(int(x))>=0

195、执行以下程序后,输出结果是________。

main()

{

int y=10;

do{y--;}while(--y);

printf("%dn",y--);

}

A)-1 B)1 C)8 D)0

196、以下所列的C语言常量中,错误的是________。

A) 0xFF B) 1.2e0.5

A)int i=100;

for(;;);

i--;

B)int i=100;

while(1)

{i=i&100+1;

if(i>100)break;

}

C)int k=1000;

for(;k>100;k--);

D)int s=36;

while(s);

--s;

198、下列选项中,合法的C语言关键字是_________。

A) VAR B) cher C) integer D) default

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

A)3 B)4 C)5 D)不定

200、若a、b、x、y均是整型变量,且a,b均已赋过值,则正确的switch语句是_________。

A) swich(a+b);

{ case 1:y=a+b; break;

case 0:x=a-b; break;

}

B) switch(a*a+b*b)

{

case 3:

case 1:y=a+b;break;

case 3:y=b-a;break;

}

C) switch a

{ case 10 :y=a-b; break;

case 20: x=a*d; break;

default:x=a+b;

}

D) switch(a-b)

{

default:y=a*b;break;

C) 1.0/2.0 D) '72'

197、在下列选项中,没有构成死循环的程序段是________。

case 3:case 4:x=a+b;break;

case 10:case 11:y=a-b;break;

}

201、运行以下程序后,如果从键盘输入china<回车>,则输出结果为________。

#include

main()

{

int v1=0,v2=0;

char ch;

while((ch=getchar()!='n')

switch(ch)

{

case 'a':

case 'h':

default:v1++;

case '0':v2++;

}

printf("%d,%dn",v1,v2);

}

A)2,0 B)5,0 C)5,5 D)2,5

202、运行程序:

#include

main()

{

int n='c';

switch(n++)

{ default: printf("error");break;

case 'a':case 'A':case 'b':case 'B':printf("good");break;

case 'c':case 'C':printf("pass");

case 'd':case 'D':printf("warn");

}

}则输出结果是________。

A) good B) pass C) warn D) passwarn

203、若以下程序所生成的可执行文件名为,当打入以下命令执行该程序时,程序的输出结果是________。

FILE1 CHINA BEIJING SHANGHAI

main(int argc,char *argv[])

{

while(argc-->0)

{

++argv;

printf("%s",*argv);

}

}

A)CHINA BEIJING SHANGHAI B)FILE1 CHINA BEIJING C)CBS D)FCB

204、假定x和y为 double型,则表达式x=2,y=x+3/2的值是________。

A) 3.500000

main()

{

char ch[7]={"65ab21"};

int i,s=0;

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

B) 3 C) 2.000000 D) 3.000000

205、下面程序的运行结果是________。

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

printf("%dn",s);

}

A)12ba56 B)6521 C)6 D)62

206、以下合法的赋值语句是________。

A) x=y=100

#include

#define PT 5.5

#define S(x) PT*x*x

main()

{

int a=1,b=2;

printf("%4.1fn",S(a+b));

}

A)49.5 B)9.5 C)22.0 D)45.0

208、设x、y、z为整型变量,若从键盘给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);

209、以下程序执行后,a的值是________。

main()

{

int a, k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

printf("%dn",a);

}

A)4 B)1 C)0 D)运行时出错,a无定值

210、设 a、b、c、d、m、n均为整型变量,且a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为________。

A) 0

main()

{

char ch[2][5]={"693","825"},*p[2];

int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i];

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

for(j=0;p[i][j]>='0' && p[i][j]<='9';j+=2)

s=10*s+p[i][j]-'0';

printf("%dn",s);

}

A)6385 B)22 C)33 D)693825

212、运行下程序:

main()

{

int x;

scanf("%d",&x);

if(x--<7) printf("%d",x);

else printf("%d",x++);

}若从键盘上输入7,则输出结果是________。

A) 0 B) 6 C) 7 D) 8

213、请选出下面可用作C语言用户标识符的一组。

A)void B)ab C)2ab D)a+b

define abc a2b ab

B) 1 C)2 D) 3

211、以下程序运行后,输出结果是________。

B) d--; C) x+y; D) c=int(a+b);

207、以下程序运行后,输出结果是________。

aaa abd ab2 aabb

214、假定w、x、y、z、m均为整型变量,且w=1, x=2, y=3, z=4则执行语句:

m=(w

A) 4 B) 3 C) 2 D) 1

215、设x为int型变量,则执行以下语句后,x的值为________。

x=8; x-=x-=x;

A)8 B)0 C)16 D)-8

216、以下程序的输出结果是________。

main()

{

int a,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=10) break;

if (b%3==1)

{ b+=3; continue; }

}

printf("%dn",a);

}

A) 101 B) 3 C) 4 D) 5

217、请选出合法的C语言赋值语句。

A)a=a+b B)a?1∶0 C)a=int(a+b); D)a++;

218、若有如下定义:

int a=511,*b=&a; 则printf("%dn",*b);的输出结果为________。A) 无确定值 B) a的地址 C) 512

219、执行以下程序片段的结果是________。

int x=321;

do

{printf("%2d",x--);}

while(!x);

A)打印出321 B)打印出32 C)打印出21 D)陷于死循环

220、运行下面程序:

main()

{

int a=2,i;

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

{

switch(i)

{

case 0:

case 3:a+=2;break;

case 1:

case 2:a+=3;break;

default:a+=5;

}

}

printf("%dn",a);

}则输出结果是________。

A) 12 B) 17 C) 4 D) 22

221、有以下程序段,请问执行后的输出结果为________。

double x,y;

x=1,y=x+3/2;

D) 511

A)2.5 B)2.0 C)2 D)1

222、运行下面程序:

main()

{

int a=0,b=1,c=2,d;

d=!a&&!(--b)||!c++;

printf("%dn",c);

} 则输出结果是________。

A) 3 B) 2 C) 1 D) 0

223、有以下程序,请问执行后的输出是________。

main()

{

int a=010,b=10,c=0x10;

printf("%d,%d,%d",a--,++b,c++);

}

A)8,10,16 B)8,11,16 C)7,10,17 D)8,10,17

224、运行下面程序:

main()

{

int x;

scanf("%d",&x);

if(x>60) printf("%d",x);

if(x>40) printf("%d",x);

if(x>30) printf("%d",x);

}若从键盘输入58↙ 则输出结果是________。

A) 585858 B) 5858 C) 58 D) 58

225、合法的数组定义是________。

A)char a={'H','e','l' ,'l','o'}; B)char a[5]={"H","e","l","l","o"};

C)char a[]={'H','e','l' ,'l','o'}; D)char a[5]="Hello";

226、已有定义: int x=0,y=2,z=3; 则表达式!(x+y)+z-1&&y+z/2的值是________。

A) 6 B) 0 C) 2 D) 1

227、设a为int型变量,则不能正确表示数学关系|a|>10的表达式是________。

A) a>10||a<-10 B) a>10 && a<-10 C) !(a>=-10 && a<=10) D) !(a<=10) || !(a>=-10)

228、运行下面程序:

main()

{

int a=16,b=21,m=0;

switch(a%3)

{

case 0:m++;break;

case 1:m++;

switch(b%2)

{

default:m++;

case 0:m++;break;

}

}

printf("%dn",m);

}则输出结果是________。

A) 1 B) 2 C) 3 D) 4

229、以下程序的输出结果是________。

#include

main()

{

int a=2,b=5;

printf("a=%%d,b=%%dn",a,b);

}

A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d

230、以下程序的输出结果是________。

#include

main()

{

int i;

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

{

if(i%2)

printf("*");

else

continue;

printf("#");

}

printf("n");

}

A)*#*#*#B)#*#*#* C)*#*# D)#*#*

231、有以下的for循环语句: for(x=0,y=3,i=0;(y>3)&&(x<4);x++,y++) i++;

A)0 B)1 C)2 D)陷于死循环

232、有以下程序,请问执行后的输出结果是________。

#include

main()

{

char s[10]={'H','e','l','l','o'};

printf("%d",strlen(s));

}

A)8 B)7 C)6 D)5

233、有以下程序,其for语句中循环体执行的次数是________。

#include

#define N 2

#define M N+1

#define NUM (M+1)*M/2

main()

{

int i,n=0;

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

{

n++;

printf("%d",n);

}

printf("n");

}

A)5 B)6 C)8 D)9

234、若有定义语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

则不是对a数组元素的正确引用是________。

A)a[p-a] B)*(&a[i]) C)*p D)*(*(a+i))

则执行上述语句后,i的值为________。

235、若有以下程序段,执行后的输出结果是________。

char *s1="BEIJING",*s2="SHANGHAI";

printf("%d",strlen(strcpy(s1,s2)));

A)8 B)7 C)15 D)9

236、下面程序的输出是________。

main()

{

char *s="121";

int k=0,a=0,b=0;

do

{

k++;

if(k%2==0)

{

a=a+s[k]-'0';

continue;

}

b=b+s[k]-'0';

a=a+s[k]-'0';

}while(s[k+1]);

printf("k=%da=%db=%dn",k,a,b);

}

A) k=3 a=2 b=3 B) k=3 a=3 b=2 C) k=2 a=3 b=2 D) k=2 a=2 b=3

237、若有以下定义:

float x;int a,b; 则正确的switch语句是________。

A)switch(x) B)switch(x)

{ {

case 1.0:printf("*n"); case 1,2:printf("*n");

case 2.0:printf("**n"); case 3:printf("**n");

} }

C)switch(a+b) D)switch(a+b)

{ {

case 1:printf("*n"); case 1:printf("*n");

case 1+2:printf("**n"); case 2:printf("**n");

} }

238、在以下一组运算符中,优先级最高的运算符是________。

A)<= B)= C)% D)&&

239以下程序的输出结果是________。

#include

main()

{

int i=1,j=3;

printf("%d,",i++);

{

int i=0;

i+=j*2;

printf("%d,%d,",i,j);

}

printf("%d,%d",i,j);

}

A)1,6,3,1,3 B)1,6,3,2,3 C)1,6,3,6,3 D)1,7,3,2,3

240、以下选项中合法的用户标识符是________。

A)long B)2Test C)3Dmax D)

241、一个C语言源程序是由________组成。

A)若干过程 B)若干子程序 C)若干函数 D)一个主程序和若干子程序

242、C语言中,要求参加运算的数必须是整数或字符的运算符是________。

A)/ B)! C)% D)=

243、int类型的数据取值范围是________。

A)0至255 B)-32768至32767 C)-256至255 D)0至65535

244、下列属于C语言合法的字符常量是________。

A) '97' B) "A" C) 't' D) "0"

245、若x为unsigned int型变量,则执行以下语句后的x值为________。

x=65534; printf("%d",x);

A)65534 B)2 C)无定值 D)-2

246、以下合法的赋值语句是________。

A)a=(5+b,d++,a+5); B)x=y=50 C)x+y; D)c=int(a+b)

247、已知w=0,x=1,y=2,z=3,a=4,b=5;则执行语句(a=w>x)&&(b=y>z);后,a,b的值为________。

A)0,0 B)4,5 C)0,5 D)4,0

248、设x、y、t均为int型变量,则执行语句:x=y=4;t=++x||++y;后,y的值为________。

A)不定值 B)5 C)4 D)1

249、若有以下程序段,执行后的输出结果是________。

int a=3;

printf("%dn",(a+=a-=a*a));

A)-6 B)12 C)0 D)-12

250、putchar函数可以向终端输出一个________。

A)整型变量表在式值 B)实型变量值 C)字符串 D)字符或字符型变量值

251、函数fabs(x)的功能是________。

A)对x取整 B)对x取绝对值 C)对x取平方根 D)计算x的平方

252、若给定条件表达式(m)?(a++):a--则其中表达式m和______等价。

A)m==0 B)m==1 C)m!=0 D)m!=1

253、定义如下变量和数组:int i, x[3][3]={1,2,3,4,5,6,7,8,9}; 下面语句的输出结果是________。

for(i=0;i<3;i++) printf("%2d",x[i][2-i]);

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9

254、若i为整型变量,则以下循环执行次数是________。

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

printf("%d",i--);

A)0次 B)1次 C)2次 D)无限次

255、若有定义int x[10]={0,2,4};则数组x在内存中所占字节数为________。

A)3 B)4 C)10 D)20

256、若有以下程序段执行后,输出结果是________。char str[]="abc10rl2t"; printf("%d",strlen(str));

A)9 B)10 C)12 D)15

257、以下数组定义中不正确的是________。

A)int a[2[]3]; B)int b[[]3]={0,1,2,3,4}; C)int c[10[]10]={0}; D)int d[3][]={{1,2},{3,4},{5,6}};

258、以下程序的输出结果是________。

#define M(x,y,z) x*y*z

main()

{

int a=1,b=2,c=1;

printf("%dn",M(a+b,b+c,c+a));

}

A)6 B)7 C)18 D)18

259、若有程序段:

int *p,a=6,b=1;

p=&a;*p=10;a=a+b;执行该程序段后,a的值是________。

A)7 B)10 C)11 D)20

260、以下枚举类型的定义中正确的是________。

A)enum a={one,two,three}; B)enum a{"one","two","three"}; C)enum a={"one","two","three"}; D)enum a{one=8,two=9,three};

261、结构化程序设计规定的3种基本控制结构是________。

A)顺序、选择和转向 B)层次、网状和循环 C)模块、选择和循环 D)顺序、选择和循环

262、以下正确的C语言标识符是________。

A)%x B)a+b C)a123 D)test!

262、设整型变量a的值为2,下列表达式值为1的是________。

A)a%3 B)a/3 C)--a D)a++

263、设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是________。

A) a=5++ B) a=b=c++ C) a=%2 D) b=a+1=2

265、下列式中,值不为4的表达式是________。

A)sizeof(unsigned long) B)sizeof(long) C)sizeof(unsigned int) D)sizeof(float)

266、下列式中,最终运算结果的数据类型不是单精度的表达式是________。

A)(int)(3+3.0) B)le-3 C)(float)(3) D)(int)3.0+3.0

267、字符串"abx4134cd102y"的长度是________。

A)10 B)12 C)14 D)18

268、设整型变量x、y、z均为2,表达式(x++)+(y++)+(z++)的值是________。

A)6 B)7 C)8 D)9

269、设int a=0,b=0,c=0;c=++a‖b++;则a,b,c值分别是________。

A)0、2、0 B)1、1、1 C)1、1、0 D)1、0、1

270、设有语句scanf("%d,%d",&m,&n);要使m、n的值依次为2、3,正确的输入是________。

A)2]3B)2,3C)2;3D)23

271、设整型变量a,b的值均为8。printf("%d,%d",(a++,++b),b--);的输出是________。

A)8,8 B)8,7 C)9,9 D)8,9

272、在Turbo C中,仅能连续完成编译和连接的操作热键是________。

A)Alt+F9 B)Ctrl+F9 C)F9 D)Alt+F5

273、C标准库函数中,数学函数的原型在头文件中________。

A)stdio.h B)math.h C)string.h D)ctype.h

274、最适合解决选择结构"若a>=0,则b=1;否则b=0"的语句是________。

A)if B)if-else C)switch D)嵌套的if-else

275、设int x,y,z=4;x=y=++z;x=(y>z)?x+2:x++;则x的值是________。

A)4 B)5 C)6 D)7

276、设执行变量x值为3,执行下列循环语句后,变量y的值是________。do y++;while(y++<4)

A)3 B)4 C)5 D)6

277、语句while(!e);中的条件!e等价于________。

A)e==0 B)e!=1 C)e!=0 D)~e

278、以下一维数组a的正确定义是________。

A)int a(10); B)int n=10,a[a];

C)int n; D)#define N 10

scanf("%d",&n); int a[N];

int a[n];

279、在执行char str[10]="chinan0";strlen(str)的结果是________。

A)5 B)6 C)7 D)8

280、设有语句 int a[]={3,4,5,9,8,7};,则表达式a[1]-a[4]的值是________。

A)-6 B)6 C)-4 D)2

281、设有宏定义

#define M(x) x<0?-1:x=0?0:1 则表达式M(3.0)+1的值是________。

A)-1 B)0 C)1 D)2

282、下列语句中,不能正确地从键盘上读取单个字符存入字符型变量ch的语句是________。

A)scanf("%c",&ch); B)ch=getchar(); C)ch=fgetc(stdin); D)fgetc(stdin,&ch)

283、C语言程序的基本单位是________。

A)函数 B)标识符 C)表达式 D)语句

284、在C语言中,逻辑值"真"是用________表示的。

A)预定义为真值的宏 B)非零数 C)正数 D)非零整数

285、以下符合C语言语法的实型常量是________。

A)1.3E0.5 B)7E-2 C)3.14159E D)E5

286、以下合法的一组用户定义标识符。

A)if B) turbo C)3CON D) void

287、以下符合C语言语法的赋值表达式是________。

A)d=8+e+f=d+a B)8+e=f=d C)d=f=8+e++ D)d=8+e++=d+7

288、若有定义

#define a 4

int x=0;float y=1.12;char z='A';则下面错误的语句是________。

A)a++ B)x++ C)++y D)++z

289、若a,b,c均为int型变量,则执行以下语句后,a、b值分别为________。

a=b=c=0;

a++&&++b‖c++;

A)1,0 B)0,1 C)1,1 D)0,0

290、设int a=3;下列表达式值等于0的是________。

A)a&&(a>0) B)!a‖a C)a%=a D)a>=a

291、设int a=5,b=2,c=3,d=4;则表达式a>b?a:c>d?c:d的值是________。

A)2 B)3 C)4 D)5

292、执行程序段:

int k=3,s[2];

s[0]=k;k=s[1]*10;后,变量k中的值为________。

A) 不定值 B) 33 C) 30 D) 10

293、若已定义:

int a[ ]={0,1,2,3,4,5}, *p=a,i; 其中 0≤i≤5, 则对a数组元素引用不正确的是________。

A) a[p-a] B) *(&a[i]) C) p[i] D) a[6]

294、下列程序执行后的输出结果是________。

main()

{

int a[2][2],*p,i;

p=&a[0][0];

for(i=p;i<4;i++) p[i]=i+1;

printf("%d n",a[1][1]);

}

A) 3 B) 4 C) 9 D) 随机数

295、设有数组定义: char array []="China"; 则数组 array所占的空间为________。

A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节

296、执行下列程序时输入:111<空格>222<空格>333<回车>,输出结果是________。

main()

{

char s[100]; int c,i;

scanf("%c",&c);

scanf("%d",&i);

scanf("%s",s);

printf("%c,%d,%s n",c,i,s);

}

A) 111,222,333 B) 1,222,333 C) 1,22,333 D) 1,11,222

297、有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表示元素8的表达式是________。

A) *P+8 B) *(P+7) C) *P+=8 D) P+7

298、有如下程序

main()

{

int a[5]={1,1,1,0},i,k=2;

for(i=0;i

printf("%dn",a[k]);

}该程序的输出结果是________。

A) 不确定的值 B) 2 C) 1 D) 0

299、若有以下的定义:int x[3][2]; 则能正确表示x数组元素地址的表达式是________。

A) &x[3][2] B) x[3] C) x[1] D) x[0]+x[2]

300、有如下程序

main()

{

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

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

for(j=0;j

s+=a[i][j];

printf("%dn",s);

}该程序的输出结果是________。

A) 18 B) 19 C) 14 D) 21

301、有如下程序:

main()

{

char ch[2][5]={"1234","5678"},*p[2];

int i,j;

long s=0;

for(i=0;i<2;i++) p[i]=ch[i];

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

for(j=0;p[i][j]!='0';j+=2)

s=10*s+p[i][j]-'0';

printf("%dn",s);

}该程序的输出结果是________。

A) 1357 B) 1234 C) 5678 D) 1458

302、运行程序:

main()

{

char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+2;

printf("%d",*--p);

}则输出结果是________。

A) 非法 B)a[2]的地址 C)8 D303、运行程序:

main()

{

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

p=&a[2];

printf("%dn",*p+5);

}则输出结果是________。

A) 6 B) 5 C) 8

304、运行程序:

main()

{

int i,k,a[10],p[3];

)7

D) 7

k=0;

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+=p[i]*2;

printf("%dn",k);

}则输出结果是________。

A) 14

main()

{

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

for(i=0;i<3;i++) printf("%d,",x[i][2-i]);

}则输出结果是________。

A) 1,5,9,

306、运行程序:

main()

{

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

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

for(j=0;j

printf("%dn",s);

}则输出结果是________。

A) 18

main()

{

char w[][10]={"ABCD","EFGH","IJKL","MNOP"};

int k;

for(k=1;k<3;k++) printf("%sn",w[k]);

}

则输出结果是________。

A) ABCD

FGH

KL

B) ABCD

EFG

IJ

M

C) EFG

JK

O

D) EFGH

IJKL

308、假定int类型变量占用两个字节,有定义: int x[10]={0,2,4,6};则数组x在内存中所占字节数是________。

A) 4 B) 8 C) 20 D) 10

309、以下程序的输出结果是________。

main()

{

int k,a[10];

for(k=9;k>=0;k--) a[k]=10-k;

printf("%2d%2d%2d",a[1],a[5],a[9]);

}

B) 14 C) 16 D)8

307、运行程序:

B) 1,4,7, C) 3,5,7, D)3,6,9,

B) 16 C) 18 D)20

305、运行程序:

A) 2 5 8 B) 9 5 1 C) 8 5 2 D) 1 5 9

310、以下数组定义中不正确的是________。

A) int a[2][3]; B) int b[][3]={0,1,2,3}; C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

311、以下程序的输出结果是________。

main()

{

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

printf("%d%d%d%dn",a[0][3],a[1][2],a[2][2],a[3][0]);

}

A) 0670 B) 5430 C) 0250 D) 输出值不定

312、运行下面程序:

main()

{

char s[]="9876",*p;

for (p=s;p

}则输出结果是________。

A)9876 B)9876 C)9 D)9

876 876 8 8

76 7

313、运行下面程序:

main()

{

char s[]="123456";

s[3]= '0';

printf("%sn",s);

}则输出结果是________。

A) 123456 B) 123 C) 12 D) 1234

314、运行下面程序:

void sort(int a[],int n)

{

int i,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

{t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{

int x[10]={1,2,3,4,5,6,7,8,9,0},i;

sort(&x[2],5);

for(i=0;i<10;i++) printf(" %d",x[i]);

printf('n');

}则输出结果是________。

A) 1 2 6 5 4 3 7 8 9 0 B) 1 2 7 6 5 4 3 8 9 0 C) 1 2 3 4 5 6 7 8 9 0 D) 1 6 5 4 3 2 7 8 9 0

315、运行下面程序:

void rev(int a[ ],int n)

{

int i,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{

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

int k,s=0;

rev(b,8);

for(k=6;k<10;k++) s+=b[k];

printf("%dn",s);

}则输出结果是________。

A) 14 B) 12 C) 11 D) 13

316、运行下面程序:

main()

{

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

int k,s=0;

for(k=0;k<4;k++) s+=x[k][2];

printf("%dn",s);

}则输出结果是________。

A) 26 B) 29 C) 24 D) 20

317、下列程序的输出结果是________。

struct abc

{ int a,b,c; };

main()

{

struct abc s={1,2,3};

int t;

t=s.a,s.c;

printf("%dn",t);

}

A) 1 B) 2 C) 3 D) 无结果

318、以下程序运行后,输出结果是________。

main()

{

char *s="abcd";

s+=2;

printf("%1dn",s);

}

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

319、请选出下面正确的程序段

A) int *p; B) int *s,k=2;

scanf("%d",p); s=k;

...... ......

C) int *s,k; D) int *s,k;

char *p,c; char *p,e;

s=&k; s=&k;

p=&c; p=&e;

*p=a; s=p;

...... *s=1;

......

320、有以下程序段,请问执行后的输出结果是________。

char s[10]="abcdefg",*p;

p=s;p++;

printf("%s",p);

A)abcdefg B)bcdefg C)cdefg D)编译不通过

321、设已有定义: char *st="how are you"; 下列语句中正确的是________。

A) char a[11],*p; strcpy(p=a+1,&st[4]); B) char a[11]; strcpy(++a,st);

C) char a[11]; strcpy(a,st); D) char a[],*p; strcpy(p=&a[1],st+2);

322、若有定义和语句:

int **pp,*p,a=100,b=200;

pp=&p; p=&b;printf("%d,%dn",*p,**pp); 则输出结果是________。

A)100,200 B)100,100 C)200,100 D)200,200

323、变量a所占内存字节数是________。

union U

{

char st[4];

int i;

long l;

};

struct A

{

int c;

union U u;

}a;

A) 4 B) 5 C) 6 D) 8

324、有以下程序:

#include

union pw

{

int i;

char ch[2];

}a;

main()

{

[0]=13; [1]=0; printf("%d",a.i);

}

执行上述程序后的输出结果是________。

A)13 B)14 C)208 D)209

325、有如下程序段

int *p,a=10,b=2;

p=&a; a=*p+b; 执行该程序段后,a的值为________。

A) 12 B) 11 C) 10 D) 编译出错

326、设有如下定义:

struct sk

{int a;float b;}data,*p;

若有p=&data;,则对data中的a域的正确引用是________。

A)(*p).data.a B)(*p).a C)p->data.a D).a

327、对于基类型相同的两个指针变量之间,不能进行的运算是________。

A) < B) = C) + D) -

328、设有以下语句:

struct st{int n;struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,'0'},*p;

p=&a[0]; 则下列表达式的值为6的是________。

A)p++->n B)p->n++ C)(*p).n++ D)++p->n

329、有如下定义

struct person

{char name[9]; int age;};

struct person class[10]={ "Johu",17,"Paul",19,"Mary",18,"Adam",16,}; 根据上述定义,能输出字母M的语句是________。

A) prinft("%cn",class[3].mane); B) pfintf("%cn",class[3].name[1]);

C) prinft("%cn",class[2].name[1]); D) printf("%cn",class[2].name[0]);

330、下列程序的输出结果是。

main()

{

int a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;

printf("%d",*--p);

}

A)3 B)4 C)5 D)a[4]的地址

331、以下对结构体类型变量的定义中,不正确的是________。

A) typedef struct aa B) #define AA struct aa

{ int n; AA {int n;

float m; float m;

}AA; }td1;

AA td1;

C) struct D) struct

{ int n; { int n;

float m; float m;

}aa; }td1;

struct aa td1;

332、若有如下语句:

int c[4[]5],(*p)[5];

p=c; 则能正确引用c数组元素的是________。

A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p[0]+2)

333、运行下面程序:

main()

{

char s[]="1234";

char *p;

for(p=s+1;p

}则输出结果是________。

A) 1234 B) 1 C) 234 D) 2

234 2 34 3

34 3 4 4

4 4

334、设有如下定义:

struct ks

{int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是________。

A)(*p).a B).a C)p->data.a D)(*p).data.a

335、设有以下说明:

struct stud

{

char num[6];

int s[4];

double ave;

}a,*p; 则变量a在内存所占字节数是________。

A) 18 B) 22 C) 11 D) 5

336、设有定义:int s[]={1,3,5,7,9},*p=&s[0];则值为7的表达式是________。

A)*p+3 B)*p+4 C)*(p+3) D)*(p+4)

337、下列程序段的输出结果是________。

void fun(int *x,int *y)

{

printf("%d %d ",*x,*y);

*x=3; *y=4;

}

main()

{

int x=1,y=2;

fun(&y,&x);

printf("%d %d",x, y);

}

A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2

338、若有以下定义,则值为4的表达式是。int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;

A)p+=3,*(p++) B)p+=3,*++p C)p+=4,*p++ D)p+=4,++*p

339、设有以下说明语句:

struct ex

{

int x;float y;char z;

}example;则下面的叙述中不正确的是________。

A) struct是结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型

340、设有结构体及其数组和指针变量的定义语句struct{int x;}y[2],p=y; 则下列表达式中不能正确表示结构体成员的是________。

A)(*p).x B)*(p+1).x C)*(p) D)*p.x

341、运行程序:

struct st

{

int x;

int *y;

}*p;

int d[4]={10,20,30,40};

struct st a[4]={20,&d[0],30,&d[1],40,&d[2],50,&d[3]};

main()

{

p=a;

printf("%dn",++(p->x));

}则输出结果是________。

A) 11 B) 21 C) 31 D) 41

342、若定义union ex{int i;float f;char a[10];}x;则sizeof(x)的值是________。

A)4 B)6 C)10 D)16

343、运行程序:

main()

{

int a[]={4,2,10,5,20,7},*p=a;

p++;

printf("%dn",*(p+2));

}则输出结果是________。

A) 10 B) 20 C) 5 D) 3

344、设int a[]={1,2,3},i,*p=a;根据定义及语法分析________是不正确的。

A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))

345、若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是________。

A) i=*p; B) *p=*&j; C) i=&j; D) i=**p;

346、若定义union uex{int i;float f;char c;}ex;则sizeof(ex)的值是________。

A)4 B)5 C)6 D)7

347、以下程序的输出结果是________。

struct HAR

{

int x, y;

struct HAR *p;

}h[2];

main()

{

h[0].x=1;h[0].y=2;

h[1].x=3;h[1].y=4;

h[0].p=&h[1];h[1].p=h;

printf("%d %d n",(h[0].p)->y,(h[1].p)->x);

}

A) 2 3 B) 1 4 C) 4 1 D) 3 2

348、设有定义enum team{my,your=3,his,her=his+5};则枚举元素my,your,her的值分别是________。

A)032 B)134 C)039 D)035

349、以下程序的输出结果是________。

union myun

{

struct

{int x, y, z; } u;

int k;

}a;

main()

{

a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf("%dn",a.u.z);

}

A) 4 B) 5 C) 6 D) 0

350、已知赋值语句=2005;判断Wang是________类型的变量。

A)字符或文件 B)整型和枚举 C)联合或结构 D)实型或指针

351、以下程序的输出结果是________。

main()

{

int a=6,b=2,c=3,x;

x=a>b?(a

printf("%dn",x);

}

A) 6 B) 2 C) 3 D) 不确定

352、fdmax函数功能是返回数组中的最大值。

为达到这个要求,在下划线处应填入的是________。

fdmax(int *a,int n)

{

int *p,*s;

for(p=a,s=a;p-a

if (___) s=p;

return(*s);

}

main()

{

int y[5]={12,21,13,6,18};

printf("%dn",fdmax(y,5));

}

A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s

353、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是________。

A) p=2*(int*)malloc(sizeof(int)); B) p=(int*)malloc(2*sizeof(int));

C) p=(int*)malloc(2*2); D) p=(int*)calloc(2,sizeof(int));

354、若有下面的说明和定义:

struct test

{

int a;

char b;

float c;

union u

{char ul[5];int u2[2];} ua;

} myaa; 则sizeof(struct test )的值是________。

A) 12 B) 19 C) 14 D) 4

355、若有定义: int a[10]; 则下面表达式中不能代表数组元素a[1]的地址的是________。

A) &a[0]+1 B) &a[1] C) &a[0]++

356、若有以下定义和语句:

int s[4][5],(*p)[5];

p=s; 则对s数组元素的正确引用形式是________。

A) p+1 B) *(p+3) C) p[0][2] D) *(p+1)+3

357、若有说明:int n=2,*p=&n,*q=p; 则以下非法的赋值语句是________。

A) p=q; B) *p=*q; C) n=*q; D) p=n;

358、下列程序执行后的输出结果是________。

void func(int *a,int b[])

{

b[0]=*a+8;

}

main()

{

int a,b[5];

a=0;b[0]=4;

func(&a,b);

printf("%dn",b[0]);

}

A) 6 B) 7 C) 8 D) 9

359、以下程序运行后,如果从键盘输入ABCDE<回车>,则输出结果为________。

#include

#include

func(char str[])

{

int num=0;

while(*(str+nom!='0'))nom++;

return(num);

}

main()

{

char str[10],*p=str;

gets(p);

printf("%dn",func(p));

}

A)8 B)7 C)6 D)5

D) a+1

360、下列程序的输出结果是________。

int b=5;

int func(int *a)

{

b+=*a;

return(b);

}

main()

{

int a=1,res=2;

res+=func(&a);

printf("%dn",res);

}

A) 4 B) 6 C) 8 D) 10

361、以下程序运行后,输出结果是________。

#include

ss(char *s)

{

char *p=s;

while(*p) p++;

return(p-s);

}

main()

{

char *a="abded";

int i;

i=ss(a);

printf("%dn",i);

}

A)8 B)7 C)6 D)5

362、若有以下调用语句,则不正确的fun函数的首部是________。

main()

{

......

int a[20],n;

......

fun(n,&a[10]);

......

}

A) void fun(int m, int x[]) B) void fun(int s, int h[30]) C) void fun(int p, int *s) D) void fun(int n, int a)

363、以下程序运行后输出结果是________。

#include

func(int a, int b)

{

static int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{

int k=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%dn",p);

}

A)8,15 B)8,16 C)8,17 D)8,8

364、有如下函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));则该函数调用语句中,含有的实参个数是________。

A) 3 B) 4 C) 5 D) 有语法错

365、以下程序运行后,输出结果是________。

int d=1;

fun(int p)

{

int d=5;

d+=p++;

printf("%d",d);

}

main()

{

int a=3;

fun(a);

d+=a++;

printf("%d",d);

}

A)84 B)99 C)95 D)44

366、有如下程序

int func(int a,int b)

{return(a+b);}

main()

{

int x=2,y=5,z=8,r;

r=func(func(x+1,y),z);

printf("%dn",r);

}该程序的输出的结果是________。

A) 12 B) 16 C) 14 D) 15

367、以下函数返回a所指数组中最小的值所在的下标。

fun(int *a,int n)

{

int i,j=0;p;

p=j;

for(i=0;i

if(a[i]

return(p);

}则应在下划线处填入的是________。

A) i=p B) a[p]=a[i] C) p=j D) p=i

368、若已建立以下的链表结构,指针p,q分别指向图中所示结点,则不能将q所指的结点插入到链表末尾的一组语句为________。

A)q->next=NULL;p=p->next;p->next=q; B)p=p->next;q->next=p->next;p->next=q;

C)p=p->next;q->next=p;p->next=q; D)p=(*p)·next;(*q)·next=(*p)·next;(*p)·next=q;

369、若有以下的定义:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为3的表达式是________。

A)p+=2,*(p++) B)p+=2,*++p C)p+=3,*p++ D)p+=2,++*p

370、在C语言中,函数的隐含存储类别是________。

A) auto B) static C) extern D) 无存储类别

371、以下程序的输出结果是________。

#include

sub1(char a,char b){char c;c=a;a=b;b=c;}

sub2(char *a,char b){char c;c=*a;*a=b;b=c;}

sub3(char *a,char *b){char c;c=*a;*a=*b;*b=c;}

main()

{

char a,b;

a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);

a='A';b='B';sub2(&a,b);putchar(a);putchar(b);

a='A';b='B';sub1(a,b);putchar(a);putchar(b);

}

A)BABBAB B)ABBBBA C)BABABA D)BAABBA

372、有以下函数 char fun(char *p)

{ return p; } 则该函数的返回值是________。

A) 无确切的值 B) 形参p中存放的地址值 C) 一个临时存储单元的地址 D)

373、以下程序的输出结果是________。

#include

main()

{

int k=4,m=1,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

printf("%d",p);

}

func(a,b)

int a,b;

{

static int m=0,i=2;

i+=m+1;

m=i+a+b ;

return(m);

}

A)8,17 B)8,16 C)8,20 D)8,8

374、下面程序输出结果是________。

void fun()

{

static int a=0;

a+=2;

printf("%2d",a);

}

main()

{

int n;

for(n=1;n<4;n++)

fun();

printf("n");

}

A) 2 2 2 B) 2 4 6 C) 2 2 2 2 D) 2 4 6 8

375、下面程序的运行结果是________。

#include

fun(int **s,int p[2][3])

{ **s=p[0][1];}

main()

形参p自身的地址值

{

int x[2][3]={2,4,6,8,10,12},*p;

p=(int *)malloc(sizeof(int));

fun(&p,x);

printf("%d",*p);

}

A)10 B)4 C)6 D)8

376、下面所列的函数定义中,正确的是________。

A) void play(var a:integer,var b:integer) B) void play(int a,b)

C) void play(int a,int b) D) Sub play(a as integer,b as integer)

377、以下是对函数的描述,不正确的是________。

A)调用函数时,实参可以是常量、表达式 B)调用函数时,将为形参分配内存单元

C)调用函数时,实参与形参个数必须相同 D)调用函数时,形参必须是整型

378、以下程序的输出结果是________。

fun(int x, int y, int z)

{

z=x*x+y*y;

}

main()

{

int a=3;

fun(1,2,a);

printf("%dn",a);

}

A) 0 B) 5 C) 3 D) 无定值

379、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________。

A)地址传递 B)单向值传递 C)传递方式由用户指定 D)由实参传给形参,再由形参传给实参

380、运行程序:

void fun(int *a,int *b)

{

int *k;

k=a;a=b;b=k;

}

main()

{

int a=2,b=5,*x,*y;

x=&a,y=&b;

fun(x,y);

printf("%d %dn",a,b);

}则输出结果是________。

A) 5 2 B) 2 5 C) 编译出错 D) 0

381、C语言中的函数________。

A)可以嵌套定义 B)不可以嵌套调用 C)可以嵌套调用,但不能递归调用 D)嵌套调用和递归调用均可

382、当调用函数时,实参是一个数组名,则向函数传送的是________。

A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值

383、下列函数定义中,错误的是________。

A)int f(int *p1,int p2) B)void f(int * p1,int p2)

{*p1+=p2;return(p2);} {p1+=p2;return(*p1);}

C)f(int *p1,int p2) D)void f(int *p1,int p2)

{*p1+=p2;return(*p1);} {*p1+=p2}

384、运行程序:

long fun( int n)

{

long t;

if(n==0||n==1) t=1;

else t=n-fun(n-1);

return t;

}

main()

{

printf("%ldn",fun(3));

}则输出结果是________。

A) 1 B) 2 C) 3 D) 4

385、main函数可以带两个形参,一般分为argc和argv,其中argv可以定义为________。

A)int argv; B)char **argv[]; C)char argv[]; D)char *argv[];

386、运行程序:

void fun(int *n)

{

while( (*n)--);

printf("%dn",++(*n));

}

main()

{

int a=10;

fun(&a);

}则输出结果是________。

A) 1 B) 0 C) 10 D) 程序不正确

387、数组名作为实参传给被调用的函数时,形参获得的是________。

A)该数组第一个元素的值 B)该数组所有元素的值 C)该数组第一个元素的首地址 D)该数组所有元素的首地址

388、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________。

A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定

389、以下函数值的类型是________。

fun ( float x )

{

float y;

y=x/3-4;

return y;

}

A) int B) 不确定 C) void

390、以下程序的输出结果是________。

app(int *p, int a[][3],int n)

{

int i,j;

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

for(j=0;j

{*p=a[i][j];p++;}

}

main()

{

int *p,a[3][3]={{1,2,3},{4,5,6}};

p=(int *)malloc(100);

app(p,a,3);

printf("%d %d n",p[2],p[5]);free(p);

}

D) float

A) 3 6 B) 2 6 C) 3 5 D) 程序错误

391、以下程序的输出结果是________。

int a,b;

void fun()

{ a=10;b=20; }

main()

{

int a=1,b=7;

fun();

printf("%d %dn", a,b);

}

A) 10 20 B) 1 7 C) 20 10 D) 7 1

392、运行下面程序:

int f()

{

static int k=0;

int s=1;

s+=k; k++;

return (s);

}

main()

{

int k,a=0;

for(k=1;k<4;k++) a+=f();

printf("%dn",a);

}则输出结果是________。

A) 3 B) 10 C) 6 D) 4

393、若有程序:

#include

void f(int n);

main()

{

void f(int n);

f(5);

}

void f(int n)

{ printf("%dn",n); }则以下叙述中不正确的是________。

A) 若只在主函数中对函数f进行说明,则只能在主函数中调用函数f。

B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以调用函数f。

C) 对于以上程序,编译时系统会提示出错信息。 D) 函数f无返回值,所以可用void将其类型定义为无值型。

394、在C语言中,形参的缺省存储类是________。

A) auto B) register C) static D) extern

395、运行下面程序:

ff(int b[],int m,int n)

{

int k,s=0;

for(k=m;k

return s;

}

main()

{

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


本文标签: 函数 语句 程序 变量 输出