admin 管理员组

文章数量: 887021


2023年12月16日发(作者:instr 函数)

程序设计基础试题库

一、判断题(共203小题)(a为正确,b为错误)

1、答案:a。c程序的基本组成单位是函数

2、答案:b。c程序的一行只能写一条语句.

3、答案:b。main 函数必须写在一个 C 程序的最前面

4、答案:a。一个 C 程序可以包含若干函数,但必须有主函数。

5、答案:b。一个c程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

6、答案:a。C语言是一种结构化程序设计语言。()

7、答案:a。在标准C中,语句是用来完成一定的操作的,故声明部份不是语句。

8、答案:a。一个C程序可以有若干个C源程序组成,而C源程序可以由若干个函数和预处理组成。()

9、答案:a。在标准C中,语句必须以“;”结束。()

10、答案:a。C语言本身并不提供输入输出语句。但可以通过输入输出函数来实现数据的输入输出。()

11、答案:b。在标准C中,使用所有输入输出函数必须包含“stdio.h”文件。()

12、答案:b。在标准C语言中,main函数必须出现的所有其他函数之前。()

13、答案:b。在C程序中,注释说明只能位于一条语句的后面

14、答案:b。在对一个C程序进行编译的过程中,可发现注释中的拼写错误

15、答案:a。C语言程序的三种基本结构是顺序结构、选择结构和循环结构。()

16、答案:a。计算机算法可以分两大类别:数值运算算法和非数值运算算法。

17、答案:b。用C语言实现的算法必须要有输入和输出操作

18、答案:a。一个算法应该具备有穷性、确定性、输入、输出和有效性。()

19、答案:a。一个算法应包含有限的操作步骤,而不能是无限的。

20、答案:a。表示一个算法常用的方法是:自然语言、传统流程图、结构化流程图、计算机语言、伪代码等。

21、答案:b。在Turbo C中,浮点型数据在内存中占4个字节。( )

22、答案:b。a-b是合法的标识符

23、答案:b。char型数据在内存中以反码的形式存储的

24、答案:a。C语言中的标识符只能由字母、数字、和下划线三种字符组成

25、答案:b。C语言中的关键字属于合法的标识符。

26、答案:b。C语言中的整形常量包括十六进制数、八进制数、十进制数、二进制数。

27、答案:a。无符号整型变量的取值范围是:0-65535

28、答案:b。有符号整型变量的取值范围是:0-65536

29、答案:a。在Turbo C中,浮点型数据在内存中一般占4个字节。( )

30、答案:b。a-b是合法的标识符

31、答案:b。char型数据在内存中以反码的形式存储的

32、答案:a。C语言中的标识符只能由字母、数字、和下划线三种字符组成

33、答案:b。C语言中的关键字属于合法的标识符。

34、答案:b。C语言中的整形常量包括十六进制数、八进制数、十进制数、二进制数。

35、答案:a。无符号整型变量的取值范围是:0-65535

36、答案:b。有符号整型变量的取值范围是:0-65536

37、答案:b。表达式i++与++i在任何场合功能完全相同

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

39、答案:。若i=5,则执行j=i- -后,j 的值为4,i的值为4

40、答案:b。若有 int i=10, j=2;则执行完ⅰ* =j+8; 后ⅰ的值为28

41、答案:b。若有说明int i=8,k;则y=float(i)是合法的C表达式

42、答案:b。若有说明语句:char c=’72’;则变量c包含了三个字符。

43、答案:b。’x61’代表字符‘a’。

44、答案:a。一个变量在内存中占据一定的存储单元

45、答案:b。在 C 程序中对用到的所有数据都必须指定其数据类型

46、答案:a。在C程序中,%是只能用于整数运算的运算符

47、答案:b。在C程序中,APH和aph是两个相同的变量

48、答案:a。在C程序中,逗号运算符的优先级最低。

49、答案:b。在C语言中,1.2E0.5是合法的实型常量

50、答案:b。在C语言中,a=a*3=2是合法的C表达式

51、答案:a。通常字符常量的长度为1个字节

52、答案:a。自增运算符 (++) 或自减运算符 (--) 只能用于变量,不能用于常量或表达式

53、答案:a。常量是在整个程序运行过程中不能改变的量。()

54、答案:b。“A”是一个字符常量。()

55、答案:a。标准C中并没有提供定义常量的方法。()

56、答案:a。在程序运行过程中其值可以改变的量称为变量。()

57、答案:b。在标准C中并不区分英文字符的大小写。()

58、答案:a。在标准C中,数据在内存中是以二进制形式表示的。()

59、答案:b。在标准C中,变量可以先使用再定义。()

60、答案:a。在标准C中,整型变量与字符变量是可以通用的。()

61、答案:b。“%”运算两侧的数据可以是任意类型的数据。()

62、答案:b。在标准C中,参与运算的数据类型必须完全一致。()

63、答案:b。“++”运算符的优先级比“+”运算符的优先低。()

64、答案:b。逗号运算符的求值顺序是从左到右的,逗号表达式的值为第一个表达式的值。()

65、答案:b。在标准C中,变量定义一定要出现在函数开始部分。()

66、答案:b。在C语言中,在交换两个数必须使用中间变量。()

67、答案:a。字符串必须以‘0’结束,但字符数组可以不包括‘0’。()

68、答案:b。表达式“3.6%2”符合C语言语法。()

69、答案:b。在C程序中,无论是整数还是实数,都能被准确无误地表示

70、答案:a。逻辑运算符<关系运算符<算术运算符<赋值运算符是错误的。

71、答案:b。08是正确的整型常量。()

72、答案:b。若x 是单精度实型变量,表达式(x=10/4)的值是2.5。()

73、答案:b。输入实型数据时,可以规定实型数的小数位数

74、答案:b。若有定义:int a;则scanf(“%d",a);可以给变量a赋值。( )

75、答案:a。getchar函数可以从终端接受一个字符

76、答案:b。putchar函数可以向终端输出一个字符串

77、答案:b。对几个变量在定义时赋初值可以写成: int a=b=c=3;

78、答案:b。在标准C中,“=”是判断两个数是否相等。()

79、答案:a。在标准C中,赋值表达式可以出现在表达式的任何位置。()

80、答案:b。在标准C中,在函数printf格式说明部分的字符都是以转义字符处理。()

81、答案:b。在标准C中,以“%f”形式输出的所有数字都是有效数字。()

82、答案:b。在C语言中输入数据时可以指定数据的精度。()

83、答案:a。在标准C中,在使用函数scanf输入数据时必须同函数中输入格式一致。()

84、答案:a。若有正确变量定义,表达式x=y=1符合c语言语法。()

85、答案:b。printf("%s","abc0ef");输出结果是:abc ef.

86、答案:b。C语言规定,else子句总是与它上面的最近的if配对

87、答案:b。if(a>0); 不能看作是一条合法的条件语句

88、答案:b。if语句后面的表达式只能是关系表达式

89、答案:a。判断整型变量a即是5又是7的整数倍的C表达式是(a%5==0 && a%7==0)

90、答案:a。在C语言中10!=9的值是1

91、答案:a。在C语言中表达式(a=2)&&(b=-2)的值是1

92、答案:b。在switch语句中必须使用break语句

93、答案:b。在switch语句中必须使用break语句

94、答案:b。在标准C中,没有逻辑型数据,故不能使用逻辑表达式。()

95、答案:b。在标准C中,所有关系运算符的优先级都相同。()

96、答案:b。在if语句中,else前一个语句可不加“;”。()

97、答案:b。在标准C中,逻辑表达式中只允许出现逻辑型数据。()

98、答案:b。在标准C中,所有的if——else语句都可以用条件语句替换。()

99、答案:a。在switch语句中,case后可不加“{ }”。()

100、答案:b。在C语言中,将语句if(x==5);写成if(x=5);将导致编译错误。()

101、答案:a。在所有关系运算符中,其优先级最低的是“==和!=”。()

102、答案:b。若x的当前值为5,执行语句“if(x(=3)x=x+5;”后的值仍为5。()

103、答案:a。在C程序中,用整数0表示逻辑“假”。()

104、答案:a。表达式!(x>0||y>0)等价于!(x>0)&&!(y>0) .()

105、答案:b。由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

106、答案:b。if语句中条件表达式只能是关系表达式或逻辑表达式

107、答案:b。若有 int k=1;while(k=1) k++;则while循环执行的次数是1次

108、答案:a。break语句不能够单独使用,只能用于循环语句和switch语句

109、答案:a。break语句可以用来跳出整个循环语句

110、答案:a。do-while语句构成的循环至少执行一次

111、答案:b。for(i=1; i++<4; );语句结束后变量i的值是4

112、答案:b。for语句只能用于循环次数已经确定的情况

113、答案:b。while 的循环控制条件比 do-while 的循环控制条件严格

114、答案:b。while语句构成的循环至少执行一次

115、答案:a。选择结构(if语句)和循环结构都可以使用嵌套形式

116、答案:a。循环语句中如果包含若干条语句,则必须用大括号括起来

117、答案:b。在 while 循环中允许使用嵌套循环,但只能是嵌套 while 循环。

118、答案:b。在循环过程中,使用break语句和continue语句的作用是一样的

119、答案:b。在标准C中,while和do_while的功能完全相同。

120、答案:b。在标准C中,while后表达式只能是逻辑或关系表达式。

121、答案:b。在标准C中,for语句后的三个表达式必须都出现。

122、答案:b。在标准C中,for语句后的三个表达式是按其先后次序执行的。

123、答案:b。在标准C中,for语句后的三个表达式可以是任意类型的表达式。

124、答案:b。break的作用可以结束循环多重循环,即有多重循环时,可直接跳到最外层。

125、答案:a。执行“for(I=1;I<10;I+=2) s+=I;”后,I的当前值为11。

126、答案:b。int a[ ]={0,1,2,3,4,5,6};不是正确的数组说明语句

127、答案:b。已有定义:char a[]="xyz",b[]={'x','y','z'};则数组a和b的长度相同

128、答案:a。任何数组在使用前必须先定义。

129、答案:b。二维数组元素在内存中的存放顺序是按列主顺序存放

130、答案:a。若有说明:int a[3][4]; 则a[1+1][0]是对a数组元素的正确引用

131、答案:b。有两个字符数组a、b,则正确的输入语句是:gets(a, b)

132、答案:a。有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0

133、答案:b。在定义二维数组时,可以将该数组的两个维数全部省略

134、答案:a。字符串"This"大于字符串"that"

135、答案:b。字符数组char c[]="string"; 有6个数组元素

136、答案:b。对二维数组a[3][4],a+1与a[1]都是第一行的首址。

137、答案:b。若有定义一维数组int a[4]的首地址为0078H,则a[1]元素的首地址是0079H(设int型数据占两个字节)。

138、答案:b。定义char *string=”string?”是将字符串的值赋给指针变量string。

139、答案:b。在标准C语言中,字符串是以‘0’结束的,故字符串的长度也包括‘0’。

140、答案:b。在标准C语言中,数组的下标必须是常量,不允许是表达式。

141、答案:a。在标准C语言中,数组在大小一旦确定就不允许改变。

142、答案:b。在标准C语言中,可以引用整个数组,而不必引用每一个数组元素。

143、答案:b。在对数组进行赋初值时,不管有没有对所有元素赋初值都必须指定数组的长度。

144、答案:a。在标准C语言中,二维数组在内存中的存放次序是以行序为主序。

145、答案:b。函数strcmp(“AShhjjj”,”ASHHJJJ”)的返回值是0。

146、答案:a。在标准C语言中,使用函数strcpy 时可以将‘0’一起复制到目标串中。

147、答案:b。a是一维数组名,数组元素a[1]还可以写成“*(a++)”。

148、答案:a。设有变量定义char s[]=”hello”,则数组中有6个元素。()

149、答案:a。c语言不允许对数组的大小作动态定义。

150、答案:b。字符个数多的字符串比字符个数的字符串大

151、答案:a。已知程序段{char a[10];scanf("%s",a);printf("%s",a);}输入:ab cd<回车>,结果是:ab

152、答案:a。已知程序段{char a[11];gets(a);puts(a);}输入:ab cd<回车>,输出结果是:ab cd

153、答案:b。定义在main函数后的任何函数都需在main中进行函数声明。

154、答案:b。在标准C语言中,在main函数中定义的变量在整个程序中都是有作用的。

155、答案:b。在用数组名作为函数实参时,传递的是数组的起始地址,所以就不允许使用形参数组的形式

156、答案:a。函数的递归调用不过是一个函数直接地调用它自身。

157、答案:a。数组名作为函数参数,传送的是地址.

158、答案:b。如果在同一个源文件中,外部变量与局部变量同名,则在外部变量的作用范围内,局部变量被“屏蔽”,即它不起作用

159、答案:a。若一个函数的返回类型为void,则表示其没有返回值

160、答案:a。一个函数利用return不可能同时返回多个值

161、答案:a。在C程序中,不同函数中所定义的变量允许同名

162、答案:b。在程序运行过程中,系统分配给实参和形参的内存单元是相同的

163、答案:b。在调用一个函数的过程中又出现直接或间接地调用该函数本身,这称为函数的嵌套调用

164、答案:a。在标准C语言中,函数参数传递是单向传递,即由实参传递给形参。

165、答案:b。在标准C语言中,函数的返回值是通过return语句获取的,故若在函数中没有return就不会传回值。

166、答案:b。在标准C语言中,函数中只能有一个return 语句。

167、答案:b。若函数的返回值与return表达式类型不一致时,以return 表达式类型为准。

168、答案:b。若定义时,函数返回值类型为void,函数仍然可有return带回返回值。

169、答案:b。TC中函数调用时,函数参数求值顺序是从右到左的。

170、答案:b。在标准C语言中,所有函数在调用之前都要进行声明。

171、答案:b。在标准C语言中,函数的定义和调用一样都是不可以嵌套的。

172、答案:b。用数组名作函数参数时,数组中的元素可以发生变化,故违反了函数参数传递的单向性。

173、答案:b。全局变量的作用域是整个源程序文件。

174、答案:b。用static和auto定义的变量一样都可以进行多次赋值操作。

175、答案:a。在标准C语言中,所有函数都是平行的、独立的。

176、答案:b。在C语言程序中,在main函数中定义的变量为全局变量。

177、答案:b。在标准C语言中,宏定义的结尾也要加“;”。

178、答案:a。宏定义和文件包含都是C语言中的编译预处理命令,对它们的处理是在编译前完成的

179、答案:a。预处理命令不是c语言的组成部分。

180、答案:b。在标准C语言中,在定义带参数的宏时也要定义参的类型。

181、答案:b。在标准C语言中,宏替换是程序运行时完成的。

182、答案:a。宏替换不占运行时间,只占编译时间。

183、答案:b。宏定义中的宏名必须用大写字母,宏定义的优点是”一改全改“。

184、答案:b。指针变量可以接收任何类型的值

185、答案:b。在int *p;和语句printf(“%d”, *p);中的*p含义相同。

186、答案:a。char *sp="right!";是正确的c语言赋值方式

187、答案:b。变量的指针指的是变量的名字。

188、答案:b。若有定义int *p,a;p=&a;则*p指得是变量a的地址

189、答案:b。若有说明语句char *p=”It is mine”则 p变量中存放的是整个字符串

190、答案:a。若有以下定义int a[5],*p=a;p+1表示的是a[1]的首地址

191、答案:a。指针变量中只能存放地址

192、答案:a。int a[3][4];其中a[0]是指0行0列元素的地址。

193、答案:a。int a[4],*p;其中a是地址常量,p为地址变量。

194、答案:b。定义“int *a[3]”和“int (*a)[3]”具有相同的含义。

195、答案:a。共用体变量的各个成员所占内存单元的地址相同。

196、答案:a。当说明一个结构体变量时系统分配给它的内存是各成员所需内存量的总和

197、答案:a。当说明一个共用体变量时系统分配给它的内存是最长的成员的长度

198、答案:b。在C语言中,定义结构体变量时可以省略关健字struct。

199、答案:a。结构体变量在内存中所占的字节数是由其各个成员所占字节的总和。

200、答案:b。在C语言中,可以直接引用整个结构体变量,而不须要引用其各成员。

201、答案:a。在标准C语言中,共用体变量中的各成员是共同占用一块存储空间。

202、答案:b。一个结构体只能包含一种数据类型。

203、答案:b。typedef可以创造新的数据类型。

二、多项选择题(共47小题)

1、(AD)。以下叙述错误的是。

A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中可以写多条语句

C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2、(AC)。以下叙述正确的是。

A)一个C源程序可由一个或多个函数组成 B)一个C源程序可以含多个main函数

C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面

3、(AC)。下面均是不合法的用户标识符的选项是。

A) A. B)float C)b-a D)一123

P-0 1a0 goto temp

do 一A int INT

4、(CD)。已知ch是字符型变量,正确的赋值表达式是。A、ch=’a+b’ B、ch="0" C、ch=’7’+’9’ D、ch=5+9

5、(AD)。已知ch是字符型变量,下面不正确的赋值表达式是。

A、ch= “123” B、ch=’xff’ C、ch=’007’ D、cg=’’

6、(BC)。若有语句 char a;若要将字符a赋给变量a,则下列赋值表达式正确的是A、a=”a” B、a=’a’ C、a=97 D、a=’97’

7、(ABD)。下列表达式中,属于逗号表达式的是。A、a=b,c B、a,b=c C、a=(b=c) D、a,(b,c)

8、(AD)。下列自定义标识符中,符合c 语法规则的是。A、For B、3a C、 *a D、_123

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

10、(AD)。在C语言中,要求运算数必须是整型的运算符是A) %= B) ++ C) != D)%

11、(CD)。若有以下定义,则能使值为3的表达式是:int k= 7,x =12;

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

12、(BCD)。以下能用来表示整形常数的进制是。 A、二进制 B、八进制 C、十进制 D、十六进制

13、(AB)。错误的转义字符是。 A.'091' B.'' C.'0' D.'''

14、(AC)。合法的八进制数是。 A、 0 B 、028 C、077 D、01.0

15、(AB)。不合法的十六进制数是。 A、 oxff B 、0Xabg C、0x11 D、0x19

16、(BC)。以下选项中正确的正确的整型常量是。 A、 12. B 、-20 C、1000 D、4 5 6

17、(BC)。下列关于字符串的说法中错误的是。A、在c语言中,字符串是借助于字符型一维数组来存放的,并规定以字符‘0’作为字符串结束标志。B、‘0'作为标志占用存储空间,计入串的实际长度。

C、在表示字符串常量的时候需用人为在其末尾加入'0'.D、在c语言中,字符串常量隐含处理成以‘0'结尾。

18、(BC)。C语言提供的合法的数据类型关键字是。A、Double B、short C、int D、Char

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

20、(BD)。若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);

21、(BCD)。已知 int i,j,k;scanf(“%d%d%d”,&i,&j,&k);若从键盘送入i,j,k的值分别为1,2,3时,则正确的输入方式是()

(注:╚╛表示空格,<CR>表示回车) A)1,2,3 B)1<CR>2<CR>3<CR> C)1╚╛2╚╛3 D)1<CR>2╚╛3

22、(CD)。以下说法正确的是()。A、输入项可以为一个实型常量,如scanf(“%f”,3.5);

B、只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

C、当输入一个实型数据时,格式控制部分不能规定小数点后的位数,如scanf(“%4.2f”,&f)是错误的;

D、当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

23、(ABC)。以下4个选项中,能看做一条语句的是。A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5) x=2;y=6;

24、(ACD)。a是int类型变量,c是字符变量。下列输入语句中哪一个是正确的。A、scanf("%d,%c",&a,&c);

B、scanf("%d%c",a,c);C、scanf("%d%c",&a,&c); D、scanf("d=%d,c=%c",&a,&c);

25、(AC)。下关于运算符优先顺序的描述中正确的是。

A、赋值运算符< 逻辑与运算符< 关系运算符< 逻辑非运算符B、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符

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

26、(ACD)。以下关于switch语句和break语句的描述中,只有是错误的。

A、在switch语句中必须使用break语句B、在switch语句中,可以根据需要使用或不使用break语句

C、break语句只能用于switch语句中D、break语句是switch语句的一部分

27、(CD)。下列各语句序列中,能够且仅输出整型变量a、b中最大值的是。

A、if(a>b) printf("%dn",a); printf("%dn",b); B、printf("%dn",b); if(a>b) printf("%dn",a);

C、if(a>b) printf("%dn",a); else printf("%dn",b); D、printf("%dn",a>b?a:b);

28、(BC)。以下描述正确的是。A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、do-while循环由do开始,用while结束,在while(表达式)后面写分号。C、在do-while循环体中,是先执行一次循环,再进行判断。

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

29、(BCD)。以下是无限循环的语句为:

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;

30、(ABD)。下列程序段是死循环的是

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

31、(BC)。以下正确的描述是。

A)continue语句的作用是结束整个循环的执行 B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用不相同 D)从多层循环嵌套中退出时, 只能使用goto语句

32、(CD)。下面for 循环的正确描述是。A、 for循环只能用于循环次数已经确定的情况

B、 for循环是先执行循环体语句后判断表达式C、在for循环中,能用break语句结束循环

D、 for循环体语句中,可以包含多条语句,但必须用花括号括起来

33、(BD)。以下描述正确的是。A、 goto语句只能用于退出多层循环B、 swtich语句中不能使用continue语句

C、只能用continue语句来终止本次循环D、在循环中break语句能独立出现

34、(AB)。C语言中,引用数组元素时,其数组下标的数据类型允许是 。

A、整型常量 B、整型表达式 C、任何类型的常量 D、任何类型的表达式

35、(AD)。以下对一维整型数组a的正确说明是 。

A、int a[10] ; B、int n=10,a[n];

C、int n; D、#define SIZE 10

scanf(“%d”,&n); int a[SIZE];

int a[n];

36、(BD)。若有说明:int a[10];则对a数组元素的正确引用的是 。

A、 a[10] B、a[2*3] C、a(5) D、a[10-10]

37、(CD)。述对C语言字符数组描述中错误的是。A、字符数组可以存放字符串B、字符数组的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值D、可以用关系运算符对字符数组中的字符串进行比较

38、(AD)。下面是对s的初始化,其中不正确的是 。

A、char s[5]={“abcde”};B、char s[5]={‘a’,’b’,’c’}; C、char s[5]=””; D、char s[5]=“abcdef”;

39、(BD)。有两个字符数组a、b,则以下正确的输入语句是 。

A、gets(a,b); B、scanf(“%s%s”,a,b); C、scanf(“%s%s”,&a,&b); D、gets(a);gets(b);

40、(A)。若有定义 “float y[5]={1,2,3};",则下列描述正确的是

A、y并不代表数组的元素。 B、定义此数组时不指定数组的长度,定义效果不相同。 C、数组含有3个元素 D、a[3]的值为3

41、(BC)。以下正确的说法为 。A、在不同的函数中不可以有相同的变量B、形式参数是局部变量

C、在函数内定义的变量只在本函数范围内有效D、函数内的复合语句中定义的变量在本函数范围内有效

42、(ABD)。以下不正确的说法是 。

A、定义函数时,形参的类型说明符可以放在函数体内 B、return后边的值不能为表达式

C、如果函数的类型与返回值类型不致,以函数类型为准 D、如果形参与实参的类型不一致,以实参类型为准。

43、(CD)。以下描述正确的是。

A、函数定义可以嵌套,函数调用也可以嵌套。 B、函数中,不可以有多条return语句

C、全局变量可在函数外的任何位置定义 D、函数定义不可以嵌套,函数调用可以嵌套。

44、(CD)。以下叙述中不正确的是_____。

A、预处理命令行都必须以#号开始 B、在程序中凡是以#号开始的语句行都是预处理命令行

C、C程序在执行过程中对预处理命令行进行处理 D、以下是正确的宏定义#define IBM_PC

45、(AD)。以下有关宏替换的叙述不正确的是____。

A、宏替换占用运行时间 B、宏替换只是字符替换

C、宏名无类型 D、宏名必须用大写字母表示

46、(ABC)。对语句“int a[10],*p=a;”,下列表述中不正确的。

A、*p被赋初值为a数组的首地址 B、*p被赋初值为数组元素a[0]的地址

C、p被赋初值为数组元素a[1]的地址 D、p被赋初值为数组元素a[0]的地址

47、(BC)。下面判断正确的是。A、char *a=”china”;等介于char *a;*a=”china”;

B、char str[]={”china”};等介于char str[6];str[6]=”china”;

C、char *s=”china”;等介于char *s;s=”china”;D、char *s=”china”;等介于char s[10];*s=”china”;

三、单项选择题(共358小题)

1、(A)。一个C程序的执行是从_____。A)本程序的main函数开始,到main函数结束

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

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

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

3、(B)。一个C语言程序是由 . A)一个主程序和若干子程序组成B)函数组成C)若干过程组成 D)若干子程序组成

4、(B)。c程序的基本单位是。A、标识符 B、函数 C、表达式 D、语句

5、(B)。将C源程序进行可得到目标文件。A、编辑 B、编译 C、连接 D、拼接

6、(C)。目标文件的扩展名为。A、.c B、.h C、.obj D、.exe

7、(D)。在turbo c环境下,使用Run命令运行正确的C源程序后,新生成文件的扩展名为。A、.c B、.h C、.obj D、.exe

8、(A)。C语言属于。A、高级程序设计语言 B、汇编语言 C、机器语言 D、编译语言

9、(B)。用C语言编写的源文件经过编译,若没有产生编译错误,则系统将-。 A、生成可执行目标文件 B、生成目标文件C、输出运行结果

D、自动保存源文件

10、(D)。在C集成环境执行菜单命令“运行”,若运行结束且没有系统提示信息,说明---。A、源程序有语法错误 B、源程序正确无误C、源程序有运行错误 D、源程序无编译、运行错误,但仅此无法确定其正确性

11、(C)。程序运行输出了错误的结果,可以排除下列哪一个因素。 A、算法错误 B、运行时输入数据错误 C、未通过编译 D、系统资源配置不当

12、(D)。软件是指:A、程序B、程序和文档C、算法加数据结构D、程序、数据和相关文档的完整结合

13、(A)。软件调试的目的是:A、发现错误B、改正错误C、改善软件的性能D、验证软件的正确性

14、(D)。以下关于long,int和short类型数据占用内存大小的叙述中正确的是:A、均占用4个字节B、根据数据的大小决定C、由用户自己定义D、由c语言编译系统决定

15、(B)。若程序中有宏定义行:#define N 100,则以下叙述中正确的是:A、宏定义行中定义了标识符N的值为整数100 B、在编译程序对c源程序进行预处理时,用100替换N C、对c源程序进行编译时用100替换标识符N D、在运行时用100替换标识符N

16、(D)。结构化程序设计主要强调的是

A)程序的规模 B)程序的效率C)程序设计语言的先进性 D)程序易读性

17、(D)。以下描述错误的是 A)C程序中,函数可以直接或间接的调用自己 B)函数调用时,函数名必须与所调用的函数名字完全一致 C)函数说明语句中的类型必须与函数返回值的类型一致 D)实参数可以与形参个数不一致

18、(D)。下列不合法的指针变量的定义是A)int *_k;B)char *_245;C)int *p;D)double *5_is

19、(D)。以下对一维数组c进行正确的定义初始化的语句是

A)int c[10]=0; B)int c[10]={0}*10;C)int c[1]={0,0,0,0,0,0,0};D)int c[10]={0};

20、(C)。以下二维数组c的定义形式是

A)int c[3][] B)float c[3,4]C)double c[3][4] D)float c(3)(4)

21、(C)。已知:int c[3][4];则对数组元素引用正确的是

A)c[1][4]B)c[1.5][0]C)c[1+0][0]D)以上表达都错误

22、(C)。若有以下语句,则正确的描述是

char a[]="toyou";char b[]={′t′,′o′,′y′,′o′,′u′};

A)a数组和b数组的长度相同 B)a数组长度小于b数组长度C)a数组长度大于b数组长度 D)a数组等价于b数组

23、(D)。已知:char a[15],b[15]={"I love china"};则在程序中能将字符串I love china赋给数组a的正确语句是

A)a="I love china";B)strcpy(b,a);C)a=b;D)strcpy(a,b);

24、(A)。阅读下面程序,则执行后的结果

为#include "stdio.h"

main()

{ char *str="abcdefghijklmnopq";

while(*str++!=′e′);

printf("%c\n",*str);}A)fB)aC)eD)q

25、(A)。C语言源文件的扩展名为。A、.c B、.h C、.obj D、.exe

26、(C)。C源程序中调用了库函数putchar(),在程序的一开始没有使用文件包含命令,则:

A、程序可正常运行 B、程序在编译时提示出错 C、程序在连接是提示出错 D、以上说法都不对

27、(C)。以下说法正确的是()A、在C程序中无论是整数还是实数都能被准确无误的表示

B、C程序由若干主函数构成 C、C程序有若干函数构成 D、C程序中只允许包含一个函数

28、(C)。以下叙述不正确的是。A)用C程序实现的算法必须要有输入和输出操作。

B)用C程序实现的算法可以没有输出但必须要有输入。 C)用C程序实现的算法可以没有输入但必须要有输出。

D)用C程序实现的算法可以既没有输入也没有输出。

29、(D)。C语言程序的三种基本结构是 .A. 循环结构 转移结构 顺序结构 B、递归结构循环结构 转移结构

C、嵌套结构 递归结构 顺序结构 D、顺序结构 选择结构 循环结构

30、(C)。若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32)

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

31、(A)。已知变量的类型说明如下: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)

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

33、(B)。下面四个选项中,均是合法的用户标识符的选项是。

A) void B)as_b3 C)For D)2c

define _123 -abc DO

WORD IF case SIG

34、(C)。C语言中的标识符第一个字符。A)必须为字母 B)必须为下划线

C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符

35、(C)。判断char 型变量ch是否为大写字母的正确表达式是。A、’A’<=ch<=’z’ B、(ch>=’A’)&(ch<=’Z’)

C、(ch >=’A’)&&(ch<=’Z’) D、(‘A’<=ch)AND(‘Z’>=ch)

36、(D)。设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

37、(B)。设有: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

38、(B)。若有语句 int a=5 ; 则执行语句a+=a*=10 ; a的值是。A、55 B、100 C、60 D、105

39、(A)。设有 int x=11; 则表达式(x++*1/3)的值。 A、3 B、3.6 C、4 D、4.0

40、(B)。下列语句输出结果是。 int a=1,b=1,c=1; a=a+++b+++c; printf(“%d”,a);A、3 B、4 C、5 D、6

41、(B)。下列语句合法的是 A、4+c=b=0 ; B、a=++c; C、a=2=b=6; D、a=4++;

42、(C)。语句组 int x ; printf(“%d”,((x=4*5,x*5),x+25)) A、125 B、100 C、45 D、20

43、(C)。下列输出结果是。main(){double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d”,d*y);}A、3 B、3.2 C、0 D、3.07

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

45、(C)。在c语言中,char型数据在内存中以形式存储。A、原码 B、补码C、ASCII码 D、反码

46、(C)。关于运算符优先顺序的描述正确的是 .A、关系运算符<算术运算符<赋值运算符<逻辑运算符

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

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

47、(D)。int a;float f;double i;表达式15+i*f+’A’-a的值是型A、float B、int C、char D、double

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

49、(A)。若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为 A) 7 B) 8 C) 9 D) 10

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

D)由所用机器的机器字长决定

51、(A)。若有说明语句:char c='72'则变量c A)包含1个字符 B)包含2个字符C)包含3个字符 D)说明不合法,c的值不确定

52、(A)。若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2•500000 B)2.7500OO c) 3.500000 D) 0.000000。

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

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

C) 0~65535 D) 0~2147483647

55、(D)。执行语句组 int a,b;b=(a=4*9,a*2),a-3;后,b的值是。 A) 36 B) 69 C) 33 D) 72

56、(A)。字符常量‘101’是。 A) 字符A B)字符a C) 字符e D) 非法的常量

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

58、(D)。设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是。 A)6.500000 B) 6 C) 5.500000 D) 6.000000

59、(C)。以下非法的赋值语句是。A) n=(i=2,++i); B) j++;2 C) ++(i+1); D) x=j>0;

60、(A)。下列选项中可以正确表示字符型常量的是。A)‘r' B)"a" C) '897 ' D) 296

61、(A)。下列用于printf函数的控制字符常量中,代表“退格”的转义字符常量是。 A)‘b' B)‘t' C) ‘r' D) ‘f'

62、(D)。以下不能定义为用户标识符是。(A)Main (B)_0 (C)_int (D)float

63、(A)。有以下程序

main(){

int m=12,n=34;

printf("%d%d",m++,++n); printf("%d%dn",n++,++m); }

程序运行后的输出结果是。(A)12353514 (B)12353513 (C)12343514 (D)12343513

64、(A)。设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是_____.

A. x=10 y=15 z=10B. x=10 y=10 z=10C. x=10 y=10 z=15D. x=10 y=5 z=10

65、(D)。以下不正确的语句(设有int p,q)是( )。A.p*=3; B.p/=q; C.p十=3; D.p&&=q;

66、(A)。设n=10,i=4、则赋值运算n%=i+1执行后,n的值是( ). A.0 B.3 C.2 D.1

67、(D)。巳知字母A的ASCII码是65,以下程序的执行结果是( )。

main(){char c1='A',C2='Y';printf("%d,%dn",c1,c2);}A.A,Y B.65,65 C.65,90 D.65,89

68、(A)。下面四个选项中,是不合法的用户标识符的选项是。A、 abc.c B 、file C、Main D、PRINF

69、(C)。下面四个选项中,是不合法的用户标识符的选项是。A、 _123 B 、printf C、A $ D、Dim

70、(B)。c语言中基本数据类型包括。A.整型、实型、逻辑型 B.整型、实型、字符型

C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型

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

72、(A)。合法的c语言标示符是。A._1 B.1_ C.1 D.#1.

73、(A)。以下常量正确的是。A.“abc” B.'abc' C.3.1E-1.5 D.12B

74、(D)。“e2”是。A、实型常数100 B、值为100的整型常数C、非法标识符 D、合法标识符

75、(C)。在C语言中,变量所分配的内存空间大小。A、均为一个字节 B、由用户自己定义 C、由变量的类型决定 D、是任意的

76、(C)。要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的。

A、float x,y,z=3.14; B、float x,y,z=3*3.14; C、float x=3.14,y=3.14,z=3.14; D、float x=y=z=3.14;

77、(C)。下列不正确的转义字符是。A、'' B、'" C、'074' D、'0'

78、(C)。若有说明和语句:

int a=5;

a++; 此处表达式a++的值是。A、7 B、6 C、5 D、4

79、(C)。设以下变量均为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+l,x = y,x+1)

80、(C)。下面正确的字符常量是:A)"a" B)''' C)'W' D)''

81、(A)。已知各变量的类型说明如下: int k,a,b;

unsigned long w= 5;

double x=1.42;

则以下不符合C语言语法的表达式是:A) x%(一3) B) w+=-2C)k=(a=2,b=3,a十b) D)a十= a一=(b=4)*(a=3)

82、(D)。以下不正确的叙述是。 A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。

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

83、(B)。若有以下定义,int a,b; float x;则正确的赋值语句是。A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x);

84、(C)。下面不是c语言整形常数的是 A、02 B、0 C、038 D、0Xal

85、(C)。以下选项中合法的实行常量是 A、5E2.0 B、E-3 C、2E0 D、1.3E

86、(C)。若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句是。

A、a=a+b ;b=a-b ;a=a-b ;B、t=a;a=b;b=t ;C、a=t ;t=b ;b=a;D、t=b;b=a;a=t;

87、(A)。若有以下程序段,输出结果是:int c1=1,c2=2,c3; c3=c1/c2;printf("%dn",c3);

A、0 B、1/2 C、0.5 D、1

88、(B)。为表示关系x>y>z,应使用的C语言表达式是。A、(x>y)&&(x>z) B、(x>y)&&(y>z)

C、(x>y)&(y>z) D、、(x>y)AND(x>z)

89、(D)。以下程序的输出结果是。(注╚╛表示空格)

main( ) {printf(“*s1=%15s*n*s2=%-5s*”,“chinabeijing”,“chi”);}

A)*s1=chinabeijing╚╛╚╛╚╛* B)*s1=chinabeijing╚╛╚╛╚╛*

*s1=*chi* *s2=chi╚╛╚╛

C)*s1=*╚╛╚╛chinabeijing* D)*s1=╚╛╚╛╚╛chinabeijing*

*s2=╚╛╚╛╚╛chi *s2=chi╚╛╚╛*

90、(A)。根据定义和数据的输入方式,输入语句的正确形式为

己有定义:float f1,f2;

数据的输入方式:4.52,3.5 A) scanf(“%f,%f”,&f1,&f2); B) scanf(“%f%f”,&f1&f2);

C) scanf(“%3.3f,%2.1f”,&f1,&f2);D) scanf(“%3.2f,%2.1f”,&f1,&f2);

91、(A)。阅读以下程序,当输入数据的形式为: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=48B)x+y+z=35 C)x+z=35D)不确定值

92、(B)。若有以下定义,则正确的赋值语句是 .int a,b; float x; A)a=1,b=2 B)b++; C)a=b=5 D)b=int(x);

93、(A)。已知ch是字符型变量,下面不正确的赋值表达式是 A)ch=’a+b’ B)ch=’0’ C)ch=’7’+’9’ D)ch=5+9

94、(D)。有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c为2,从键盘输入数据的正确形式为

注:╚╛表示空格)A)132<回车> B)1,3,2<回车> C)a=1╚╛b=3╚╛c=2<回车> D)a=1,b=3,c=2<回车>

95、(D)。设有如下定义:int x=10,y=3,z;则语句printf(“%dn”,z=(x%y,x/y));的输出结果是 A)1 B)0 C)4 D)3

96、(B)。printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式A)从左起输出该字串,右补空格

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

97、(C)。printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。A)从左起输出该字串,右补空格

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

98、(D)。已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是:A)整型变量的输出格式符只有%d一种

B)%x 是格式符的一种,它可以适用于任何一种类型的数据C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的

D)%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度

99、(A)。下列语句输出结果是。unsigned i= -1;printf(“%u”,i);A、65535 B、65536 C、-1 D、1

100、(C)。下列语句输出结果是。int i= 65535;printf(“%d”,i); A、65535 B、0 C、-1 D、语法错

101、(C)。下列语句输出结果是。long a=0xffff; int b=a; printf(“%d”,b);A、65535 B、65536 C、-1 D、1

102、(C)。下面程序运行时,输入12345678回车,结果()main(){int a,b;scanf(“%2d %*2d %2d”,&a,&b); printf(“%d”,a+b);}

A、46 B、57 C、68 D、出错

103、(C)。已知ch是字符型变量,下面不正确的赋值表达式是()。A、ch= ‘123’ B、ch=’xff’C、ch=’008’D、cg=’n’

104、(B)。设有: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

105、(B)。以下程序的输出结果是。main( ) {int a=177;printf(“%o”,a);}A、177 B、0261 C、0x0b1 D、以上答案都不对

106、(C)。以下程序的输出结果是。main( ) {int a=1234;printf(“%2dn”,a);}A、12 B、34 C、1234 D、提示出错、无结果。

107、(C)。以下程序的输出结果是()。void main(){int a=10,b=10;printf("%dt%d",a--,--b);A.10 10 B.9 9

C.10 9 D.10,9

108、(D)。以下程序的输出结果是()main(){int a; printf("%dn",(a=3*4,a*5,a+5));}A.12 B.60C.65 D.17

109、(B)。以下程序的输出结果是()。 main(){float a=123.45678;printf("%-4.2fn",a);}

A.输出格式描述符的域宽不够,不能输出 B.123.46 C.123.45 D.- 123.45

110、(D)。有以下程序,若输入d,则输出结果位为()。

main(){char c,d; c=getchar(); d=c-33;printf("%d,%c",c,d);}A.100,D B.100,c C.99,C D.100,C

111、(A)。以下程序的输出结果是。

main(){int i=010,j=10,k=0x10;printf("%d,%d,%d",i,j,k);}A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,16

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

113、(C)。已知int a;float b;所用的scanf调用语句格式为:scanf("a//%d,b=%f",&a,&b);为了将数据3和25.08分别赋给x和y,正确的输入应当是。

A、3,25.08 B、a=3,b=25.08C、a//3,b=25.08 D、a//3b=25.08

114、(A)。请选出以下语句的输出结果 printf("%dn",strlen("t"065xffn"));A.5 B.14 C.8 D.输出项不合法,无正常输出

115、(C)。下列格式符中,哪一个可以用于以8进制形式输出整数。 A、%d B、%8d C、%o D、%ld

116、(A)。字符变量ch='A',int类型变量K=25,语句printf("%3d,%d3n",ch,k);输出。A、65,253 B、65 253 C、65,25 D、A 25

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

118、(A)。有以下程序

main()

{ int m,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%dn",m,n,p); } (注╚╛表示空格)

若想从键盘上输入数据,使变量m中的值为123,m中的值为456,p中的值为789,则正确的输入是

A)m=123n=456p=789 B)m=123╚╛n=456╚╛p=789 C)m=123,n=456,p=789 D)123 456 789

119、(C)。执行以下语句后a的值为。

int a,b,c; a=b=c=1; ++a||++b&&++c; A)错误 B)0 C)2 D)1

120、(A)。执行以下语句后b的值为。

int a,b,c; a=2,b=2,c=3; ++a||++b&&++c; A)3 B)2 C)错误 D)0

121、(B)。执行以下语句后a的值为。int a=5,b=6,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z); A、5 B、0 C、2 D、1

122、(A)。执行以下语句后a的值为b的值为。int a=5,b=6,w=1,x=2,y=3,z=5; (a=w>x)&&(b=y>z); A、6 B、0 C、1 D、4

123、(B)。执行以下程序段后,变量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=9 B) a=8,b=8,c=10 C)a=9,b=10,c=9 D) a=1,b=11,c=10

124、(B)。若w=4,x=3,y=3,z=4,则条件表达式w

125、(D)。设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

126、(B)。设有: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

127、(B)。以下程序的运行结果是。

main( ){ int a,b,d=241 ; a=d/100%9 ; b=(-1)&&(-1); printf(“%d,%d”,a,b);}A、6,1 B、2,1 C、6,0 D、2,0

128、(D)。已知int x=10,y=20.z=30;以下语句执行后x,y,z的值是 。

if(x>y)

z=x;x=y;y=z;A、x=10,y=20,z=30 B、 x=20,y=30,z=20 C、 x=20,y=30,z=10 D、 x=20,y=30,z=30

129、(D)。请阅读以下程序:

main( )

{int a=5,b=0,c=0;if(a=b+c) printf(“***n”);

else printf(“$$$n”);}以上程序 。A、有语法错不能通过编译 B、可以通过编译但不能通过连接 C、输出*** D、输出$ $ $

130、(C)。以下程序的运行结果是。

main( )

{int m=5;

if(m++>5) printf(“%dn”,m);

else printf(“%dn”,m――);}A、4 B、5 C、6 D、7

131、(D)。逻辑运算符两侧运算对象的数据类型A、只能是0或1 B、只能是0或非0正数 C、只能是整型或字符型数据D、可以是任何类型的数据

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

133、(A)。下列运算符中优先级最高的是。A、! B、% C、-= D、&&

134、(A)。下列运算符中优先级最低的是。A、|| B、!= C、<= D、+

135(A)。下列运算符中优先级最低的是:A)?: B)&& c)+ D) !=

136、(B)。为了避免在嵌套的条件语句if一else中产生二义性,C语言规定else子句,总是与配对。

A、缩排位置相同的尚未配对if B、其之前最近的尚未配对if

C、之后最近的尚未配对if D、同一行上的尚未配对if

137、(A)。有以下程序

main( )

{ char k; int i;

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

{ scanf("%c",&k);

switch(k)

{ case '0': printf("anothern");break;

case '1': printf("numbern");

}

}

} 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是。

A、another B、another C、another D、number

number number number

Number

138、(A)。为表示关系:x>=y>=z,应使用的c语言表达式是。A、(x>=y)&&(y>=z) B、(x>=y)AND(y>=z)C、(x>=y>=z )D、(x>=y)&(y>=z)

139、(C)。有以下程序:

main()

{int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c+=1;

printf("%dn",c);}A、0 B、1 C、2 D、3

140、(B)。有以下程序

main( )

{ int c=5,x;scanf("%d",&x);

switch(x+1)

{ case 6: c++;

case 8: ++c;break;

default:c+=3;

}

printf("%d",c);

} 程序运行时,从键盘输入:5<回车>,程序执行后的输出结果是。A、6 B141、(C)。有以下程序:

main()

{int i=1,j=1,k=2;

if((j++||k++)&&i++)

printf("%d,%的,%d",i,j,k);}执行后输出结果是。A、1,1,2 B142、(B)。以下程序的运行结果是。

main( )

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

if(a>b>c)

printf(“%dn”,d);

else if((c-1>=d)==1)

printf(“%dn”,d+1);

else

printf("%dn",d+2);}A、2 B、3 C、4 D、编译有错,无结果。

143、(B)。以下程序的运行结果是。

main( )

、7 C、8 D、2,2,1 C、语法错

、2,2,2 D、2,2,3

{int a=5,p;

if(p=a!=0)

printf(“%dn”,p);

else

printf("%dn",p+2);}A、5 B、1 C、0 D、编译有错,无结果。

144、(A)。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

145、(B)。若下列语句组,则输出结果是。

int x=0;

if(x++<0) printf("%d",--x);printf("%d",x++);A、-1 B、1 C、-1-1 D、-10

146、(C)。若下列语句组,则输出结果是。

int x=-1;

if(x++<0) printf("%d",--x);printf("%d",x++);A、-1 B、1 C、-1-1 D、-11

147、(D)。有以下程序:

main()

{int x=10,y;

if(x<20) y=100;

if(x>4) y=55/x;

else y=10;

printf("%dn",y);}则输出结果是。A、100 B、5.5 C、10 D、5

148、(A)。有以下程序:

main()

{int x=30,y;

if(x<20)

if(x>4) y=55/x;

else y=10;

else y=1000;

printf("%dn",y);}则输出结果是。A、1000 B、100 C、10 D、语法错,无结果。

149、(A)。有以下程序:则输出结果是。

main()

{int s=90;char g;

if(s>=60) g='C';

if(s>=70) g='B';

if(s>=80) g='A';

if(s>=90) g='a';

printf("%c",g);

}A、a B、A C、B D、C

150、(A)。有以下程序:则输出结果是。

main()

{int i;

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

switch(i)

{case 1:printf("%d",i);

case 2:printf("%d",i);

default:printf("%d",i);

}

}A、011122 B、012 C、012020 D、120

151、(B)。已有定义:int x=3,y=4,z=5;则表达式 !(x+y)+z-1&&y+z/2的值是。A、0 B152、(A)。main()

{int a=15,b=21,m=0;

switch(a%3)

{case 0:m++;break;

case 1:m++;

switch(b%2)

、1 C、2 D、-1

{default:m++;

case 0:m++;break;

}

}

printf("%d",m);}A、1 B、2 C、3 D、4

153、(A)。有以下程序:则输出结果是。

main()

{

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

d=!a&&!b||!c;

printf("%dn"d);

}A、1 B、0 C、非0的数 D、-1

154、(B)。有以下程序:

main()

{int x;

scanf("%d",&x);

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

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

}程序运行后,如果从键盘上输入5,则输出结果是。A、3 B、4 C、5 D、6

155、(C)。有以下程序:

main()

{float x=2.0,y;

if(x<0.0) y=0.0;

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

else y=1.0;

printf("%f",y);

}则输出结果是。A、0.000000 B、0.250000 C、0.500000 D、1.000000

156、(C)。有定义语句:int a=1,b=2,c=3,x;则以下选项中各段程序执行后,x的值不为3的是

A、if(c

else if(b

else x=3; else x=1;

C、if(a<3) x=3; D、if(a

if(a<2) x=2; if(b

if(a<1) x=1; if(c

157、(B)。下关于运算符优先顺序的描述中正确的是。A、"!" > "&&" > "/" > ">="B、"!" > "/" > ">=" > "&&"

C、"!" > "/" > "&&" > ">="D、"/" > "!" > "&&" > ">="

158、(D)。有以下程序:则输出结果是。

main()

{

int i,s=1;

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

if(!(i%5)&&!(!i%3)) s+=i;;

printf("%dn",s);

}A、409 B、277 C、1 D、91

159、(A)。若运行是给变量x输入12,则以下程序的运行结果是。

main()

{int x,y;

scanf("%d",&x);

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

printf("%dn",y);

}A、0 B、22 C、12 D、10

160、(B)。若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是。

A、(exp==0) B、(exp!=0) C、(exp==1) D、(exp!=1)

161、(A)。若有定义语句:int x=3,y=2,z=1;表达式: z*=(x>y?++x:y++)的值是。A、4 B、0 C、1 D、3

162、(B)。当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是。A、m=k=n B、(m=k)&&(n=k) C、(m=k)||(n=k) D、(k=m)&&(n=k)

163、(B)。若w=1,x=2,y=3,z=4,则条件表达式 w>x?w:y

164、(C)。设有程序段

int k=10;

while(k=0) k=k-1;则下面描述正确的是。A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句执行一次

165、(C)。若希望当A的值为奇数时,表达式的值为"真",A的值为偶数表达式的值为"假"。则以下不能满足要求的表达式是:

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

166、(B)。能正确表示“当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)

167、(C)。下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空:

#indude "stdio.h"

main()

{int m=0,n=0;

char c; 1

while((【1】)!='n')

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

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

printf("%dn", m

168、(B)。下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是。

A、if(u>s)t=u; t=s; B、t=s; if(u>s)t=u; C、if(u>s)t=s; else t=u; D、t=u; if(u>s)t=s;

169、(B)。下列语句应将小写字母转换为大写字母,其中正确的是。A、if(ch>='a'&ch<='z') ch=ch-32; B、if(ch>='a'&&ch<='z')ch=ch-32;

C、ch=(ch>='a'&&ch<='z')?ch-32:''; D、ch=(ch>'a'&&ch<'z')?ch-32:ch;

170、(A)。执行语句“k=x++&&y++||z++;”(各变量当前值均为1)后,变量k、x、y、z值依次为。

A、 1、2、2、1 B、 1、2、2、2 C、 0、2、2、1 D、 0、2、2、2

171、(D)。下列while循环,将执行

int i=4; while(--i) printf("%d",i); A、3次 B、4次 C、0次 D、无限次

172、(C)。执行下列语句后,a,b的值分别为

int a=12,b=7;

#define M(x,y) (x+=y-=x+=y)

M(a,b);A、7,12 B、-7,12 C、7,-12 D、以上均不是

173、(C)。对于以下程序段,运行后i的值为

int i=0,a=1;

switch(a) {

case 1: i+=1;

case 2: i+=2;

case 3: i+=3;

}A、1 B、3 C、6 D、有语法错

174、(A)。判断变量x、y中有且只有1个值为0的表达式为。A、!(x*y)&&x+y B、(x*y)&&x+y C、x*y==0 D、 x==0&&y!=0

175、(D)。能正确表示a≥10或a≤0的关系表达式是。A、a>=10 or a<=0 B、a>=10│a<=0 C、a>=10││a<=0 D、a>=10││a<=0

176、(B)。已知

int t=0;

while(t=1)

{…}

则以下叙述正确的是。A、循环控制表达式的值为0 B、循环控制表达式的值为1C、循环控制表达式不合法 D、以上答案都不对

177、(B)。设有以下程序段

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d",s);A、运行程序段后输出0 B、运行程序段后输出1C、程序段中的控制表达式不合法D、程序段执行无限次

178、(C)。以下程序运行结果是。

main()

{int m,n;

for(m=0,n=0;m

printf("%d,%d",m,n);

}A、6,7 B、7,6 C、9,7 D、7,9

179、(B)。有如下程序:

main()

{int n=9;

while(n>6) {n--;printf("%d",n);}

}该程序运行结果是。A、987 B、876 C、8765 D、9876

180、(C)。若执行下面的程序时,从键盘上输入5和2,则输出结果是。

main()

{int a,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a

else k=b%a;

printf("%dn",k);

}A、5 B、3 C、2 D、0

181、(A)。有以下程序:

main()

{ int x=0,y=0,i;

for(i=1;++i)

{if(i%2==0){x++;continue;}

if(i%5==0){y++;break;}}

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

}程序的输出结果是。A、2,1 B、2,2 C、2,5 D、5,2

182、(B)。执行下面的程序后,a的值为。

main()

{int a,b;

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

{if(b>=20) break;

if(b%3==1)

{b+=3;

continue;}

b-=5;}}A、7 B、8 C、9 D、10

183、(C)。若有以下程序:

main()

{ int x=1,a=1;

do

{ a=a+1;

}

while(x);

}则语句a=a+1;执行的次数是。A、0 B、1 C、无限次 D、有限次

184、(D)。若有以下程序:

main()

{ int x=1,a=0;

do

{ a+=1;

}

while(x,x--);

}则语句a=a+2;执行的次数是。A、0 B、2 C、无限次 D、2

185、(C)。下面程序段的运行结果是

if n=0;

while(n++<=2); printf("%d",n); A) 2 B) 3C) 4 D)有语法错

186、(B)。下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空:

#indude

main()

{int a,b,t;

scanf("%d%d",&a,&b);

while( )

{if(a>b)

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

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

scahf("%d%d",&a,&b);

} A) !a=b B) a!=b C) a= =b D) a=b

187、(B)。下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include

main()

{int a,max= 0;

scanf("%d",&a)

while( )

{if(max

scanf("%d",&a); }

printf("%d" ,max ); A) a==o B)a C) !a = = 1D)!a

188、(B)。若有如下语句

int x=3;

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

则上面程序段 A)输出的是 1 B)输出的是1和-2 C)输出的是3和0 D)是死循环

189、(C)。下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include

main()

{int n,sum=0;

n=2345

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

n= ________ ;

}while(n);

printf("sum=%d",sum);} A) n/1000 B)n/100 C) n/10 D) n%10

190、(B)。下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。

#include

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

}【1】A)k/11 B) k%11 C) k/11==0 D) k/11== 0

191、(D)。下面程序的运行结果是:

#indude

main()

{int y=10;

do{y--;}

while(--y);

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

} A)一1B) 1 C)8 D) 0

192、(D)。若运行以下程序时,从键盘输入ADescriptor(CR)表示回车),则下面程序的运行结果是:

#include

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' :vl+=1;

default:v0+=1;v2+=1 ;} ;

while(c!='n');

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

}

A)v0=7,v1=4,v2=7B) v0=8,v 1=4,v2=8 C)v0= 11,v1=4,v2=11 D) v0=12,vl=4,v2=12

193、(B)。下面程序的运行结果是:

#include

main()

{int a==1,b=10;

do

{b-=a;a++;}while(b--<0);

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

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

194、(B)。对for(表达式1;;表达式3)可理解为:

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

195、(B)。若i为整型变量,则以下循环执行次数是: for (i=2;i==0;) printf("%d",i-- ); A)无限次 B) 0次 C) 1 次 D) 2次

196、(C)。下面程序段的运行结果是:

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

197、(C)。执行语句for(i=1;i++<4;);后变量i的值是 A)3 B )4 C)5 D)不定

198、(D)。下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。

#include

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= 0D) i%7==0

199、(B)。下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空;

# include

main()

{int a,b,c,i;

a=c=0;

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

{ a+=i;

__________;

c+=b;

}

printf("偶数之和=%dn",a);

printf("奇数之和=%dn",c-11),

} A )b=i-- B) b=i+1 C) b=i++ D)b=i-1

200、(B)。下面程序的运行结果是:

#include

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

& &

& &

*

201、(D)。下面程序的运行结果是:

#include

main()

{ int x,i;

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

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf("%d",x);

}

} A)39 81 B)42 84 C)26 68 D) 28 70

202、(D)。下面程序的运行结果是:

#include

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,-1 B )8,-1 C)3,0 D)8,-2

203、(D)。下面程序段:

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个非负整数

204、(C)。下面程序段:

x=3;

do

{y=x--;

if(!y){ printf("x");continue;}

printf("#");

} while (1<=x<=2); A)将输出## B)将输出##* C)是死循环 D)含有不合法的控制表达式

205、(C)。以下描述正确的是 A) goto语句只能用于退出多层循环 B) switch语句中不能出现continue语句

C) 只能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现

206、(B)。下面程序的运行结果是:

#include

{ 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;breab;

default:k=k/3;}

k++;}

while(c<'G')

printf("k=%d",k);} A)k=3 B)k=4 C)k=2 D)k=0

207、(B)。下面程序的运行结果是:

#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("%dn",a);}A) 7 B) 8 C)9 D) 10

208、(B)。下面程序的运行结果是:

#include "stdio.h"

main()

{int i;

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

{if (i%2) printf("*");

else continue;

printf("#");

}

printf("#");}A) *#*#$ B #*#*#*$ C) *#*#$ D)#*#*$

209、(A)。下面程序的运行结果是:

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("%dn",a);

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

210、(C)。下面程序的运行结果是:

main(){int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d",s);}A) 3 B) 2 C) 1 D) 0

211、(C)。循环体内break语句的作用是。A、跳出本次循环 B、结束语句的运行C、结束本层循环D、跳出所有的循环

212、(C)。下列描述正确的是。A、if语句中条件表达式只能是关系表达式或逻辑表达式

B、break语句只能用于循环语句中C、if语句中条件表达式的括号不能省略D、if语句中else应与离它最近的if语句匹配。

213、(B)。下列程序运行结果是。

int s=0,i=0;

main()

{ while(i=1,i>s){i+=2;s+=1;}

printf(“%d”,i);

}A、0 B、1 C、2 D、3

214、(D)。以下不是死循环的为: A、for(y=0;x=1;++y) ; B、for(; ; x=0);

215、(C)。有以下程序

main()

{int i=0,s=0;

while(i<7)

{if(i%5) {i++;continue;}

s+=i++;

}

printf("%d",s);

}执行后输出结果是。A、3 B、4 C、5 D、6

216、(C)。执行下列循环后,sum的值是。

int sum;

for(i=0;i<10;sum+=1) i++;A、10 B、11 C、不确定 D、9

217、(C)。若有以下程序

main()

{int i;

for(i=0;i<9;++i,i++);

printf("%d",i);

}则退出循环后,变量i的值是。A、8 B、9 C、10 D、11

C、while(x=1){x=1;} D、for(y=0,x=1;x>++y;x+=i);

218、(D)。下列循环的执行次数。

int i,j=1,k=10;

for(i=0;i<=j+10;j--) k++;A、0 B、1 C、2 D、无限次

219、(D)。以下程序的输出结果。

main()

{int y;

for(y=7;y>0;y--)

{if(y%5==0) break;

printf("%d",y);

}

}A、没有输出 B、7654 C、7 D、76

220、(B)。以下程序的输出结果。

main()

{int n=0,sum=0;

while(n++,n<4)

{sum+=n;}

printf("%d",sum);

}A、死循环 B、6 C、9 D、5

221、(C)。以下程序的输出结果。

main()

{int n=0,sum=0;

while(n++<=10)

{sum+=n;}

printf("%d",n);

}A、10 B、11 C、12 D、0

222、(B)。以下程序的输出结果。

main()

{int n=15;

while(++n<=10)

{++n;}

printf("%d",n);

}A、15 B、16 C、17 D、18

223、(A)。以下程序的输出结果。

main()

{int n=8;

do

{++n;}

while(n--<=9);

printf("%d",n);

}A、死循环 B、8 C、9 D、10

224、(C)。以下程序的输出结果。

main()

{int i;

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

printf("%d",n);

}A、11 B、12 C、13 D、10

225、(A)。以下程序的输出结果。

main()

{int i;

for(i=0;i=13;i++);

printf("%d",n);

}A、死循环 B、12 C、13 D、14

226、(B)。以下程序的循环体执行次数。

#define n 100

main()

{int i;

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

printf("%d",i);

}A、n B、n+1 C、99 D、n+2

227、(C)。以下程序的printf("%d",i);语句执行的次数。

#define n 100

main()

{int i;

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

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

printf("%d",i);

}A、n*n B、n*(n+1) C、(n+1)*(n+1) D、n

228、(C)。以下程序的printf("%d",i);语句执行的次数。

#define n 100

main()

{int i;

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

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

printf("%d",i);

}A、n*n B、(n-1)*n/2 C、(n+1)*n /2 D、n/2

229、(D)。求整数1至10的和并存入变量s,下列语句中错误的是()。

A、s=0;for(i=1;i<=10;i++) s+=i; B、s=0;i=1;for(;i<=10;i++) s=s+i;

C、for(i=1,s=0;i<=10;s+=i,i=i+1); D、for(i=1;s=0;i<=10;i++) s=s+i;

230、(C)。若sizeof(int)为2,计算1至10的乘积,下列语句序列中正确的是。

A、int jc=1; for(int i=2;i<=10;i++) jc*=i; B、for(float jc=1,int i=2;i<=10;i++,jc*=i);

C、float jc=1; for(int i=2;i<=10;jc*=i,i=i+1); D、for(float jc=1;i=2;i<=10;i++) jc*=i;

231、(C)。下列语句中,哪一个可以输出26个大写英文字母。

A、 for(a='A';a<='Z';printf("%c",++a)); B、for(a='A';a<'Z';a++)printf("%c",a);

C、for(a='A';a<='Z';printf("%c",a++)); D、for(a='A';a<'Z';printf("%c",++a));

232、(A)。与语句 while(i>=0&&i<=10) { if(i++==5)continue; printf("%fn",1.0/(i-5));}

功能相同的是。

A、for(;i>=0&&i<=10;i++) if(i!=5) printf("%fn",1.0/(i-5)); B、for(;i>=0&&i<=10;i++) if(i==5) printf("%fn",1.0/(i-5));

C、for(;i>=0&&i<=10;i++) if(i!=5) printf("%fn",1.0/(i-5)); else break; D、for(;i<=0&&i>=10;i++) if(i!=5) printf("%fn",1.0/(i-5));

233、(A)。下列语句中与语句 while(1){if(i>=100)break;s+=i;i++;} 功能相同的是。

A、for(;i<100;i++) s=s+i; B、for(;i<100;i++;s=s+i); C、for(;i<=100;i++) s+=i; D、for(;i>=100;i++;s=s+i);

234、(A)。若k、s的当前值分别为4、0,执行语句“while(--k) s+=k;”后k、s值分别为。A、10、0 B、0、10 C、6、0 D、0、6

235、(B)。执行语句“for(s=0,k=1; s<20||k<10; k=k+2) s+=k;”后,s、k的值为。A、25、9 B、25、11 C、36、11 D、36、9

236、(B)。设j为int型变量,则下面for循环语句的执行结果是。

for( j=10;j>3;j--)

{ if(j%3)j--;

--j; --j;

printf("%d ",j); } A、 6 3 B、7 4 C、 6 2 D、7 3

237、(D)。假定a和b为int型变量,则执行以下语句后b的值为。

a=1; b=10;

do

{ b-=a; a++; }

while (b--<0);A、 9 B、-2 C、 -1 D、 8

238、(A)。下列语句中与语句 while(1){if(i>=100)break;s+=i;i++;} 功能相同的是。

A、for(;i<100;i++) s=s+i; B、for(;i<100;i++;s=s+i); C、for(;i<=100;i++) s+=i; D、for(;i>=100;i++;s=s+i);

239、(A)。执行语句“for(float x=0,s=0; x!=60; x=x+0.3) s=s+x;”后,变量x的值为。

A、不可能大于60 B、不可能大于60 C、一定小于60 D、可以远大于60

240、(D)。以下对一维整型数组a的正确说明是 。A、int a(10) ; B、int n=10,a[n];

C、int n; D、#define SIZE 10

scanf(“%d”,&n); int a[SIZE];

int a[n];

241、(D)。若有说明:int a[10];则对a数组元素的正确引用的是 。A、 a[10] B、a[3,5] C、a(5) D、a[10-10]

242、(C)。以下能对一维数组a进行正确初始化的语句是 。

A、int a [10]=(0,0,0,0,0); B、 int a[10]={}; C、int a[]={0}; D、int a[10]={10*1} ;

243、(D)。若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为________。(假设a[0][0]位于数组的第一个位置上。)

A、i*m+j B、j*m+i C、i*m+j-1 D、i*m+j+1

244、(A)。若有说明:int a[][3]={1,2,3,4,5,6};则a数组第一维的大小是 ________A、2 B、3 C、4 D、无确定值

245、(B)。若二维数组a有m列,则在a[i][j]前的元素个数为_______。(假设a[0][0]位于数组的第一个位置上。)

A、j*m+i B、i*m+j C、i*m+j-1 D、i*m+j+1

246、(A)。定义如下变量和数组:int k,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 7 B、3 6 9 C、1 5 9 D、1 4 7

247、(B)。下面程序段的运行结果是 。

{char c[5]={‘a’,’b’,’0’,’c’,’0’}; printf(“%s”,c);} A、‘a’’b’ B、ab C、ab╚╛c D、abc

248、(D)。对两个数组a和b进行如下初始化:

char a[]=”ABCDEF”; char b[]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是 。

A、a 和b 数组完全相同 B、a与b的长度相同 C、a 和b中存放字符串 D、a 数组比b数组长度长

249、(D)。下面程序段的运行结果是 。

{char a[7]=”abcdef”;char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]);} A、╚╛ B、0 C、e D、f

250、(B)。下面程序段的运行结果是。{char a[7]=”abcdef”;char b[4]=”ABC”; strcpy(a,b); printf(“%s”,a);}

A、abcdef B、ABC C、ABC ef D、abc

251、(C)。{int i;char a[7]="abcdef";char b[4]="ABC"; clrscr();strcpy(a,b);

for(i=0;i<7;i++) printf("%c",a[i]) ;

} A、abcdef B、ABC C、ABC ef D、abc

252、(D)。有下面的程序

{char a[3],b[]=”China”;a=b;printf(“%s”,a); } 则 。A、运行后输出China B、运行后输出Ch C、运行后输出Chi D、编译出错

253、(B)。下面程序段的运行结果是 。

{char c[]=”tr0willn”;printf(“%d”,strlen(c));} A、14 B、3 C、9 D)字符串中有非法字符,输出值不确定

254、(D)。判断字符串a和b是否相等,应当使用 。A、if (a= =b)B、if (a=b)C、 if (strcpy(a,b)D、if (strcmp(a,b))

255、(D)。下面描述正确的是 。

A、两个字符串所包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数的字符串大

C、字符串”STOP╚╛”与”STOP”相等(╚╛表示空格)D、字符串”That”小于字符串”The”

256、(A)。下面程序的功能是将字符串s中所有的字符c 删除。请填空。

#include

main()

{char s[80];

int i,j;

gets(s);

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

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

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]

257、(A)。下面程序的运行结果是 。

#include

main()

{char ch[7]={“12a56”}; int i,s=0;

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

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

printf(“%dn”,s);} A、 1 B、1256 C、12ab56 D、 1

2

5

6

258、(D)。下面程序的运行结果是 。

#include

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、LB B、ABLMNP C、AB D、LBLMNP

259、(C)。声明语句为“char a[10];”,执行下列语句后的输出结果为。

printf("%d,%dn",sizeof(a),strlen(strcpy(a,"Windows")));A、 7,7 B、 7,8 C、 10,7 D、 10,8

260、(C)。给出以下定义:

char x[ ]="abcdefg";

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

则正确的叙述为。A、数组x和数组y等价 B、数组x和数组y的长度相同C、数组x的长度大于数组y的长度D、数组x的长度小于数组y的长度

261、(B)。不能把字符串:Hello!赋给数组b的语句是。

A、char b[10]={'H','e','l','l','o','!'}; B、char b[10];b="Hello!";C、char b[10];strcpy(b,"Hello!"); D、char b[10]="Hello!";

262、(D)。下列程序的输出结果是。

main( )

{ char*p1,*p2,str[50]="xyz";

p1="abcd";

p2="ABCD";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str); } A、xyabcAB B、abcABz C、ABabcz D、xycdBCD

263、(C)。定义如下变量和数组:

int i;

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

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

for(i=0;i<3;i++) printf("%d",x[i][2-i]);A、1 5 9 B、1 4 7 C、3 5 7 D、3 6 9

264、(D)。数组定义为 int a[3][2]={1,2,3,4,5,6},下列表述中正确的是。

A、数组元素a[3][2]的值为6 B、数组元素a[6]的值为6 C、数组元素a[1][1]的值为1 D、a[0][0]是int类型的数组元素

265、(C)。下列各语句定义了数组,其中哪一个是正确的。

A、char a[10],*p=a[0] B、int d[2][]={1,2,3,4,5,6}; C、float x[][3]={1,2,4,6,8,10}; D、int m[][]={"no_1","no_2","no_3"};

266、(C)。下列各语句定义了数组,其中哪一个是不正确的。

A、char a[3][10]={"China","American","Asia"}; B、int x[2][2]={1,2,3,4}; C、float x[2][]={1,2,4,6,8,10}; D、int m[][3]={1,2,3,4,5,6};

267、(D)。下列程序的运行结果是。

main()

{int z,y[3]={2,3,4};z=y[y[2]]=10;printf("%d",z);

}A、10 B、2 C、3 D、运行时出错,得不到值。

268、(D)。若有定义和语句“double z,y[3]={2,3,4};z=y[y[0]];”则z的值是。A、1 B、2 C、3 D、有语法错误,得不到值。

269、(B)。下列程序的输出结果是。

Main()

{char s[20]="hel0k0t";printf("%d %d",strlen(s),sizeof(s));}A、9 7 B、3 20 C、13 20 D、20 20

270、(C)。若有定义“int a[8];”,则对数组元素的正确引用是。A、a[8] B、a[1.2] C、a[8-7] D、a(1.2)

271、(C)。以下能对数组a进行正确初始化的语句是 。

A、int a[2][3]={{1,2},{3,4},{5,6}} ;B、int a[ ][ ]={{1,2},{3,4},{5,6}} ;

C、int a[ ][3]={{1,2},{3,4},{5,6}} ;D、int a[3][ ]={{1,2},{3,4},{5,6}} ;

272、(C)。若有定义“int a[ ][3]={1,2,3,4,5,6,7,8};”,则a[1][2]的值是。A、4 B、5 C、6 D、7

273、(D)。若定义了一个4行3列的数组,则第8个元素是。A、a[1][3] B、a[2][3] C、a[3][ D、a[2][1]

274、(C)。若有定义“char s[20]="fgth" ;”则strlen(s)的值为A、5 B、20 C、4 D、6

275、(B)。若有定义“char s[20]="fgth" ;”则sizeof(s)的值为A、5 B、20 C、4 D、6

276、(B)。若有定义“char s[20]="fg0h" ;”则sizeof(s)和strlen(s)的值分别为A、4 2 B、20 2 C、4 4 D、20 4

277、(C)。以下程序的输出结果是。

Main()

{int I,a[10];

for(i=9;i>=0;i--) a[i]=10-I;

printf("%d%d%d",a[2],a[5],a[8]);}A、258 B、741 C、852 D、369

278、(A)。以下程序的输出结果是。

Main()

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

printf("%d%d%d%d",a[0][3],a[1][2],a[2][1],a[3][0]);}A、0650 B、1470 C、5430 D、输出的值不定

279、(B)。以下程序的输出结果是。

main()

{int i,k=5,a[10],p[3];

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("%d",k);}A、20 B、21 C、22 D、23

280、(D)。执行以下程序时输入:123<空格>456<空格>789<回车>,输出的结果是。

main()

{char s[100]; int c,i;scanf("%c",&c);

scanf("%d",&i);scanf("%s",s);

printf("%c,%d,%sn",c,i,s);}A、123,456,789 B、1,456,789 C、1,23,456,789 D、1,23,456

281、(B)。以下程序运行后,输出结果是。

main()

{int y=18,i=0,j,a[8];

do

{a[i]=y%2;i++;

y=y/2;

}

while(y>=1);

for(j=i-1;j>=0;j--) printf("%d",a[j]);

printf("n")}A、10000 B、10010 C、00110 D、10100

282、(A)。有如下程序:

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<=i;j++) s+=a[i][j];

printf("%d",s);

}该程序运行结果是。A、18 B、19 C、20 D、21

283、(B)。以下程序运行结果是。

main()

{char ch[3][5]={"AAAA","BBB","CC"};

printf(""%s"n",ch[1]);} A、"AAAA" B、"BBB" C、"BBBCC" D、"CC"

284、(C)。有以下程序

main()

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

int i,j,k=2;

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

printf("%d",m[k][i]);

}执行后输出结果是。A、456 B、258 C、369 D、789

285、(D)。有以下程序

main()

{int m[5]={0,0,0},i,k=2;

for(i=0;i

printf("%d",m[k]);

}执行后输出结果是。A、不确定的值 B、2 C、1 D、0

286、(A)。执行下面的程序后,k的值为。

int k=3,s[2];s[0]=k;k=s[1]*10; A、不确定的值 B、33 C、30 D、10

287、(D)。假定int类型变量占用两个字节,其有定义“int x[10]={0,2,4;}”,则数组在内存中所占字节数是。A、3 B、6 C、10 D、20

288、(C)。若有定义 “int a[][3]={{4,2},{1,3,5}};",则此数组中最大值元素所在的行和列分别是。A、1,1 B、1,2 C、2,2 D、2,1

289、(C)。若有语句

char s1[]="good";

char s2[10]={'j','0','0','d'};

printf("%d",strcmp(s1,s2));则输出结果是。A、0 B、1 C、负数 D、不确定的值

290、(B)。下面不能正确将字符串“car”进行完整赋值操作的语句是。

A、char s[]="car"; B、char s[]={'c','a','r'}; C、char *s="car"; D、char s[]={"car"};

291、(D)。设有如下语句:

char *s="t"NameAddressn";则用指针s所指字符串的长度为。A、说明不合法 B、19 C、18 D、15

292、(D)。以下正确的函数形式是 。

A、double fun(int x,int y)

{z=x+y;return z;}

B、fun (int x,y)

{int z;

return z;}

C、fun(x,y)

{int x,y;double z;

z=x+y;return z;}

D、double fun(int x,int y)

{double z;

z=x+y;return z;}

293、(D)。若调用一个函数,且此函数中没有return语句,则正确的说法是 。该函数

A、没有返回值 B、返回若干个系统默认值 C、能返回一个用户所希望的函数值 D、返回一个不确定的值。

294、(B)。C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。

A、地址传递 B、单向传递 C、由实参传给形参,再由形参传回给实参 D、由用户指定传递方式

295、(B)。C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 。

A、float 型 B、int 型 C、long 型 D、double型

296、(B)。以下正确的描述是 。在C语言中

A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套

C、函数的定义和函数的调用均不可以嵌套 D、函数的定义和函数的调用均可以嵌套

297、(A)。若用数组名作为函数调用的实参,传递给形参的是 。

A、数组的首地址 B、数组第一个元素的值 C、全部元素的值 D、数组元素的个数

298、(C)。若使用一维数组名作函数实参,则以下正确的说法是 。

A、必须在主调函数中说明此数组的大小 B、实参数组类型与形参数组类型不匹配

C、在被调用函数中,不需要考虑形参数组的大小 D、实参数组名与形参数组名必须一致。

299、(C)。以下程序的正确运行结果是 。

#include

void num()

{extern int x,y; int a=15,b=10;

x=a-b;

y=a+b; }

int x,y;

main()

{int a=7,b=5;

x=a+b;

y=a-b;

num();

printf(“%d,%dn”,x,y);} A、12,3 B、不确定 C、 5,25 D、1,12

300、(B)。函数f定义如下,执行语句“m=f(5);”后,m的值应为。

int f(int k)

{ if(k==0||k==1) return 1; else return f(k-1)+f(k-2); }A、 3 B、8 C、 5 D、 13

301、(C)。函数f定义如下,执行语句“sum=f(5)+f(3);”后,sum的值应为。

int f(int m)

{ static int i=0; int s=0;

for(;i<=m;i++) s+=i; return s; }A、 21 B、16 C、 15 D、 8

302、(D)。以下叙述中不正确的是。

A、在不同的函数中可以使用相同名字的变量 B、函数中的形式参数是局部变量

C、在一个函数内定义的变量只在本函数范围内有效D、在一个函数内的复合语句中定义的变量在本函数范围内有效

303、(A)。下列程序执行后输出的结果是。

int d=1;

fun (int q)

{ int d=5;

d + =p + +;

printf("%d".d); }

main( )

{ int a=3;

fun(a);

d + = a + +;

printf("%dn",d); } A、8 4 B、9 6 C、9 4 D、8 5

304、(D)。下列程序执行后输出的结果是。

#include 〈stdio.h〉

f(int a)

{ int b=0;

statin c=3:

a=c++,b++;

return(a); }

main( )

{ int a=2,i,k;

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

k=f(a++);

printf("%dn",k); } A、3 B、0 C、5 D、4

305、(B)。有以下程序

viod fun (int a,int b,int c)

{ a=456; b=567; c=678;}

main()

{ int x=10, y=20,z=30;

fun (x,y,z);

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

输出结果是。A、30,20,10 B、10,20,30 C、456,567,678 D、678,567,456

306、(A)。关于函数内的复合语句中定义的变量,以下正确的说法是 。

A、只在该复合语句中有效 B、在该函数中有效 C、本程序范围内有效 D、为非法变量

307、(A)。有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是。A、3 B、4 C、5 D、有语法错误

308、(C)。若函数的形参为没有指定大小的一维数组,函数的实参是一维数组名,则传递给函数的是。A、实参数组的大小 B、形参数组的大小

C、实参数组的首地址 D、实参数组各元素的值

309、(D)。若希望C源程序中定义的全局变量能被其他源文件使用,则该变量的存储类型应是。A、auto B、static C、register D、extern

310、(C)。下面程序段的运行结果是 。

{char c[ ]="aab0cc";

for(i=0;i<=6;i++)printf(“%c”,c[i]);printf("11");} A、aab11 B、aab╚╛11 C、aab╚╛cc╚╛11 D、aab╚╛cc11

311、(A)。已知下面程序段

{char c[10];

scanf("%s",c);printf("%s",c); }当执行程序时输入a bb cc<回车>,输出结果是。A、a B、a bb C、a bb cc D、a b

312、(C)。已知下面程序段

{char c[10];

gets(c);puts(c); }当执行程序时输入a bb cc<回车>,输出结果是。A、a B、a bb C、a bb cc D、a b

313、(C)。设有以下宏定义:

#define N 3

#define Y(n) ( (N+1)*n)

则执行语句:z=2 * (N+Y(5+1));后,z的值为。A、出错 B、42 C、 48 D、54

314、(D)。以下正确的函数定义形式是。A、double fun(int x,int y);{}B、fun (int x,y){}C、fun(x,y){}D、double fun(int x,int y){}

315、(A)。以下叙述中正确的是 。A、C程序的main函数可以没有参数B、C程序的main函数必须有参数

C、C程序的main函数必须放在程序的一开始D、C程序的main函数的位置是确定的

316、(B)。请读程序

#define ADD(x) x+x

main()

{int m=1,n=2,k=3; int sum=ADD(m+n)*k;

printf(“sum=%d”,sum);}上面程序的运行结果是____。A、sun=9 B、sum=10 C、sum=12 D、sum=18

317、(D)。c语言的编译系统对宏命令的处理是___。A、在程序运行时进行的 B、在程序连接时进行的

C、和C程序中的其它语句同时进行编译的 D、在对源程序中其它成份正式编译之前进行的

318、(B)。对下程序段:

#define A 3

#define B(a) ((A+1)*a)

x=3*(A+B(7)); 正确的判断是____。

A、程序错误,不许嵌套宏定义 B、x=93 C、x=21 D、程序错误,宏定义不许有参数

319、(D)。定义带参数的宏“#define jh(a,b,t) t=a;a=b;b=t”,使两个参数a、b的值交换,下列表述中哪个是正确的。

A、不定义参数a和b将导致编译错误 B、不定义参数a、b、t将导致编译错误

B、不定义参数t将导致运行错误 D、不必定义参数a、b、t类型

320、(C)。用宏名定义一个字符串,下列表述中哪一个是正确的。

A、#define pi=3.14159; B、define pi=3.14159 C、#define pi "3.14159" D、#define pi(3.14159);

321、(A)。宏定义 #define div(a,b) a/b 的引用 div(x+5,y-5) 替换展开后是。

A、x+5/y-5 B、x+5/y-5; C、(x+5)/(y-5) D、(x+5)/(y-5);

322、(B)。以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是_。

main()

{int *p,a;

p=&a;

printf(“input a:”);

scanf(”%d”,*p);}A) *p表示的是指针变量p的地址B) *p表示的是变量a的值,而不是变量a的地址

C) *p表示的是指针变量p的值D) *p只能用来说明p是一个指针变量

323、(B)。变量的指针,其含义是指该变量的_____. A)值 B)地址 C) 名 D)一个标志

324、(D)。若有说明:int *p,m=5,n;以下正确的程序段是__。

A、p=&n; scanf(“%d”,&p); B、p=&n; scanf(“%d”,*p);C、scanf(“%d”,&n); *p=n; D、p=&n; *p=m;

325、(C)。下面判断正确的是__.

A) char *a =”china”; 等价于char *a; *a=”china”;B) char str[10] ={“china”}; 等价于char str[10] ; str[]={“china”};

C) char *s =”china”; 等价于char *s; s=”china”;D) char c[4] =”abc” ,d[4]=”abc”;等价于char c[4] =d[4]=”abc”;

326、(C)。下面程序段的运行结果是__。

char *s =”abcde”; s+=2; printf(“%d”,s); A)cde B)字符’c’ C)字符’c’的地址D)无确定的输出结果

327、(D)。设有下在的程序段:

char s[]=”china”; char *p; p=s;

则下列叙述正确的是___。A) s和p完全相同 B) 数组s中的内容和指针变量p中的内容相等

c) s数组长度和p所指向的字符串实际长度相等 D)*p与s[0] 相等

328、(B)。下面程序段的运行结果是___。

char str[]=”abc”, *p=str;

printf(“%dn”,*(p+3)); A)67 B)0 C)字符‘c’的地址 D)字符’C’


本文标签: 语句 函数 变量