C语言试题库.docx
《C语言试题库.docx》由会员分享,可在线阅读,更多相关《C语言试题库.docx(79页珍藏版)》请在冰点文库上搜索。
C语言试题库
程序设计基础试题库
一、判断题(共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。
在TurboC中,浮点型数据在内存中占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。
在TurboC中,浮点型数据在内存中一般占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。
若有inti=10,j=2;则执行完ⅰ*=j+8;后ⅰ的值为28
41、答案:
b。
若有说明inti=8,k;则y=float(i)是合法的C表达式
42、答案:
b。
若有说明语句:
charc=’\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。
若有定义:
inta;则scanf(“%d",a);可以给变量a赋值。
()
75、答案:
a。
getchar函数可以从终端接受一个字符
76、答案:
b。
putchar函数可以向终端输出一个字符串
77、答案:
b。
对几个变量在定义时赋初值可以写成:
inta=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","abc\0ef");输出结果是:
abcef.
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。
若有intk=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。
inta[]={0,1,2,3,4,5,6};不是正确的数组说明语句
127、答案:
b。
已有定义:
chara[]="xyz",b[]={'x','y','z'};则数组a和b的长度相同
128、答案:
a。
任何数组在使用前必须先定义。
129、答案:
b。
二维数组元素在内存中的存放顺序是按列主顺序存放
130、答案:
a。
若有说明:
inta[3][4];则a[1+1][0]是对a数组元素的正确引用
131、答案:
b。
有两个字符数组a、b,则正确的输入语句是:
gets(a,b)
132、答案:
a。
有数组定义inta[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。
若有定义一维数组inta[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。
设有变量定义chars[]=”hello”,则数组中有6个元素。
()
149、答案:
a。
c语言不允许对数组的大小作动态定义。
150、答案:
b。
字符个数多的字符串比字符个数的字符串大
151、答案:
a。
已知程序段{chara[10];scanf("%s",a);printf("%s",a);}输入:
abcd<回车>,结果是:
ab
152、答案:
a。
已知程序段{chara[11];gets(a);puts(a);}输入:
abcd<回车>,输出结果是:
abcd
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=”Itismine”则p变量中存放的是整个字符串
190、答案:
a。
若有以下定义inta[5],*p=a;p+1表示的是a[1]的首地址
191、答案:
a。
指针变量中只能存放地址
192、答案:
a。
inta[3][4];其中a[0]是指0行0列元素的地址。
193、答案:
a。
inta[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)floatC)b-aD)一123
P-01a0gototemp
do一AintINT
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)。
若有语句chara;若要将字符a赋给变量a,则下列赋值表达式正确的是A、a=”a”B、a=’a’C、a=97D、a=’97’
7、(ABD)。
下列表达式中,属于逗号表达式的是。
A、a=b,cB、a,b=cC、a=(b=c)D、a,(b,c)
8、(AD)。
下列自定义标识符中,符合c语法规则的是。
A、ForB、3aC、*aD、_123
9、(AD)。
以下正确的叙述是A)在C程序中,每行中可以写多条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示d)在C程序中,%是只能用于整数运算的运算符
10、(AD)。
在C语言中,要求运算数必须是整型的运算符是A)%=B)++C)!
=D)%
11、(CD)。
若有以下定义,则能使值为3的表达式是:
intk=7,x=12;
A)x%=(k%=5)B)x%=(k一k%5)C)x%=11-k%5D)(x%=k)-(k%=5)
12、(BCD)。
以下能用来表示整形常数的进制是。
A、二进制B、八进制C、十进制D、十六进制
13、(AB)。
错误的转义字符是。
A.'\091'B.'\'C.'\0'D.'\''
14、(AC)。
合法的八进制数是。
A、0B、028C、077D、01.0
15、(AB)。
不合法的十六进制数是。
A、oxffB、0XabgC、0x11D、0x19
16、(BC)。
以下选项中正确的正确的整型常量是。
A、12.B、-20C、1000D、456
17、(BC)。
下列关于字符串的说法中错误的是。
A、在c语言中,字符串是借助于字符型一维数组来存放的,并规定以字符‘\0’作为字符串结束标志。
B、‘\0'作为标志占用存储空间,计入串的实际长度。
C、在表示字符串常量的时候需用人为在其末尾加入'\0'.D、在c语言中,字符串常量隐含处理成以‘\0'结尾。
18、(BC)。
C语言提供的合法的数据类型关键字是。
A、DoubleB、shortC、intD、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)。
已知inti,j,k;scanf(“%d%d%d”,&i,&j,&k);若从键盘送入i,j,k的值分别为1,2,3时,则正确的输入方式是()
(注:
╚╛表示空格,<CR>表示回车)A)1,2,3B)1<CR>2<CR>3<CR>C)1╚╛2╚╛3D)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