C语言复习题带答案Word文档下载推荐.docx
- 文档编号:19357516
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:18
- 大小:25.39KB
C语言复习题带答案Word文档下载推荐.docx
《C语言复习题带答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言复习题带答案Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
12、有一函数y=
以下程序段中不能根据x的值正确计算出y的值的是(C)
A、if(x>
0)y=1;
elseif(x==0)y=0;
elsey=-1;
B、y=0;
if(x>
elseif(x<
0)y=-1;
C、y=0;
=0)if(x>
elsey=-1;
D、if(x>
elsey=0;
elsey=-1;
13、以下选项中,与k=n++完全等价的表达式是(A)
A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1
14、以下程序的功能是:
按顺序读入10名学生4
门课程的成绩,计算出每位学生的平均分并输出,程序如
下:
main()
{intn,k;
floatscore,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:
%f“,n,ave);
上述程序运行后结果不正确,调试中发现有一条语
句出现在程序的位置不正确,这条语句是(A)
A、sum=0.0;
B、sum+=score;
C、ave=sum/4.0;
D、printf(“NO%d:
15、有以下程序段
intn=0,p;
do{scanf(“%d”,&
p);
n++}while(p!
=12345&
3);
此处do-while循环的结束条件是(D)
A、p的值不等于12345并且n的值小于3
B、p的值等于12345并且n的值大于等于3
C、p的值不等于12345或者n的值小于3
D、p的值等于12345或者n的值大于等于3
16、有以下程序(A)
{inta=15,b=21,m=0;
switch(a%3)
{case0;
m++;
break;
case1;
switch(b%2)
{default:
case0;
}
printf(“%d”,m);
A、1B、2C、3D、4
17、C语言中,函数值类型的定义可以缺省,
此时函数值的隐含类型是(B)
A、voidB、intC、floatD、double
18、有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
{inti,j=0;
for(i=1;
i<
3;
i++)j+=f(i);
printf(’%d”,j);
程序运行后的输出结果是(B)
A、4B、3C、2D、1
19、C语言规定,在一个源程序中,main()函数的位置(C)
A、必须在最开始B、必须在系统调用的库函数的后面
C、可以任意D、必须在最后
20、下列数据中,不合法的C语言实型数据是(C)
21、下面4个选项中,均是不合法的用户标识符的选项是(C)
A、AP_0doB、floata0_AC、b-agotointD、_123tempint
22、设变量a是int型,f是float型,i是double型,
则表达式10+’a’+i*f值的数据类型为(C)
A、intB、floatC、doubleD、不确定
23、能正确表示逻辑关系:
”a>
10或a<
0”的C语言表达式是(D)
A、a>
=10ora<
=0B、a>
=10|a<
=0C、D、a>
=10||a<
=0
24、设以下变量均为int类型,表达式的值不为7的是(C)
A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)
C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)
25、若变量a是int类型,并执行了语句:
a=’A’+1.6;
,则正确的叙述是(D)
A、a的值是字符CB、a的值是浮点型
C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上1
26、有如下程序
{intx=23;
do
{printf(“%d”x--);
}while(!
x);
该程序的执行结果是(B)
A、321B、23C、不输出任何内容D、陷入死循环
27、若变量c为char类型,能正确判断出c为小写字母的表达式是(D)
A、’a’<
=c<
=’z’B、(c>
=’a’)||(c<
=’z’)
C、(’a’<
=c)and(’z’>
=c)D、(c>
=’a’)&
(c<
28、以下不正确的定义语句是(B)
A、doublex[5]={2.0,4.0,6.0,8.0,10.0};
B、inty[5.3]={0,1,3,5,7,9};
C、charc1[]={‘1’,’2’,’3’,’4’,’5’};
D、charc2[]={‘\x10’,’\xa’,’
\x8’};
29、有以下程序
fun(intx,inty,intz)
{z=x*y;
{inta=4,b=2,c=6;
fun(a,b,c);
printf(“%d”,c);
A、16B、6C、8D、12
30、下列函数的运行结果是(A)
{inti=2,p;
intj,k;
j=i;
k=++i;
p=f(j,k);
printf(”%d”,p);
intf(inta,intb)
{intc;
if(a>
b)c=1;
elseif(a==b)c=0;
elsec=-1;
returnc;
A、-1B、1C、2D、编译出错,无法运行
31、下面可以作为C语言程序中标识符的是(A)
A、_total3
B、num(10)
C、2Date
D、long
32、已知字符‘A’的ASCII值为65,则‘\103’表示的字符是(C)
A、字符A
B、字符B
C、字符C
D、非法常量
33、每个C语言程序都必须有一个(B)函数,C程序总是从该函数开始执行。
A、include()
B、main()
C、scanf()
D、printf()
34、下面说法中,正确的是(D)
A、C语言是机器语言
B、C语言程序不用编译就可以直接运行
C、C语言程序总是从第一个函数开始执行
D、C语言程序可以由一个或多个函数构成
35、设i,j,k为int型变量,若从键盘输入1#2#3<
,下面(A)输入语句可以使i的值为1,j
的值为2,k的值为3。
A、scanf(“%d#%d#%d”,&
i,&
j,&
k)
B、scanf(“%d,%d,%d”,&
C、scanf(“%d%d%d”,&
D、scanf(“%d%d%d”,&
36、下面能够正确表示字符串常量的表达式是(B)。
A、’test’
B、”test”
C、test
D、’test\0’
37、在C语言中,运用对象必须是整型数的运算符是(A)
A、%B、\C、%和\D、**
38、有定义语句:
intb,charc[10];
则正确的输入语句是(B)
A、scanf(“%d%s”,&
b,&
c);
B、scanf(“%d%s”,&
b,c);
C、scanf(“%d%s”,b,c);
D、scanf(“%d%s”,b,&
39、假设所有变量均为int型,则执行语句a=(b=5,c=b++);
后,a、b、c的值分别为(C)
A、6,6,5
B、5,5,6
C、5,6,5
D、5,6,6
40、设x,y,z为int型变量,执行下面的语句后,z的值为(D)
for(x=0,y=10;
x<
=y;
x++,y—)z=x+y;
A、7
B、8
C、9
D、10
41、设x、y均为整型变量,且x=y=5,则下面语句的输出结果是(B)
printf(”%d,%d\n”,x++,++y);
A、5,5
B、5,6
C、6,5
D、6,6
42、下面关于字符串的叙述中,正确的是(B)
A、C语言中有字符串变量
B、空串一定比空格打头的字符串小
C、可以用关系运算符对字符串的大小进行比较
D、两个字符串中的字符个数相同时才能进行字符串大小的比较
43、下列数据中,(B)是合法的实型数据。
B、123e3
D、.e1
44、设以下变量均为int类型,表达式的值不为3的是(D)
A、a=b=2,a+b,b+1
B、a=b=2,b=a+b,a+1
C、b=2,b+1,a=b,a+1
D、a=2,a=a+1,b=1,a+b
45、下列说法中,正确的是(C)
inti,x;
for(i=0,x=0;
=5&
x!
=4;
i++);
A、循环体一次也不执行
B、是无限循环
C、最多执行6次
D、最多执行5次
46、已知字符‘a’的ASCII码值是97,字符变量c1的值是‘a’,c2的值是‘e’。
执行语句printf
(”%d,%d”,c1,c2—2);
后,输出的结果是(D)
A、a,c
B、a,101
C、97,101
D、97,99
47、下面程序的运行结果是是(D)
#include<
stdio.h>
voidmain()
{inti;
for(i=0;
=6;
i++){
{if(i%2)
printf(”%d”,i);
printf(”#”);
A、0#2#4#6
B、1#3#5#
C、0##2##4##6#
D、#1##3##5##
48、结构化程序所规定的三种最基本的控制结构是(C)
A、输入、处理、输出B、树形、网形、环形
C、顺序、选择、循环D、主程序、子程序、函数
49、把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项的含义不同的是(A
)
A、k%2B、k%2==1C、k%2!
=0D、!
k%2==1
50、设有intx=11,则表达式(x++*1/3)的值是(D)
A、3B、4C、11D、12
二、程序填空(20分每小题5分)
1、小写字母转大写字母
{charch1,ch2;
ch1=’a’;
ch2=’b’;
ch1=__ch1-32__;
ch2=__ch2-32__;
printf(“%c,%c”,ch1,ch2);
2、输出两个数中较大的数
{inta,b,max;
scanf(“%d%d”,&
a,&
b);
printf(“max=%d\n”,___a>
b?
a:
b___);
3、把100~200之间的能被5整除的数输出。
voidmain()
{intn;
for(n=100;
n<
=200;
n++)
{if(__n%5!
=0__)continue;
printf(“%d”,n);
}
4、输出字符数组
{
chara[]={'
h'
'
e'
l'
\0'
o'
};
printf(“%s"
__a__);
5、大写字母转小写字母
ch1=’A’;
ch2=’B’;
ch1=__ch1+32__;
ch2=__ch2+32__;
6、把200~300之间的不能被3整除的数输出。
for(n=200;
=300;
{if(__n%3==0__)continue;
参考答案:
1-5ADBAC
6-10DCCBC
11-15DCAAD
16-20ABBCC
21-25CCDCD
26-30BDBBA
31-35ACBDA
36-40BABCD
41-45BBBDC
46-50DDCDA
判断题:
1.#include命令不能包含用户自己建立的头文件。
错
2.用标识符来表示的常量称为符号常量。
对
3.(int)x+y的作用是把x+y的结果转换成整型。
错
4.如果赋值运算符两边的数据类型不一致,在赋值时要进行类型转换。
5.要使用printf函数输出字符“%”,需要在格式控制字符串中用连续两个%来表示。
6.只有在a为真(非0)时,表达式a&
b才需要判断b的值。
7.switch语句中,case语句后如没有break,则顺序向下执行。
8.do-while循环中,根据情况可以省略while。
9.如果形参与实参的类型不一致,以实参类型为准。
10.“一个单精度指针变量只能赋单精度变量的地址,单精度数组名,另外单精度指针变量的值”这种说法正确否?
11.后缀为f或F的数为浮点数。
12.‘5’于5是一样的。
13.在赋值运算中,类型转换是由系统自动进行的。
对
14.条件运算符?
和:
是一对运算符,不能分开单独使用。
15.在switch语句中,每一个的case常量表达式的值可以相同。
16.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成。
17.全局变量的作用域一定比局部变量的作用域范围大。
18.C程序一行只能写一个语句。
19.C语言的数据类型只有int型、float型、char型。
20.表达式1\4*3的值是0.75。
21.关系运算符的优先级高于逻辑运算符(不包括!
)。
22.若有inti=10,j=0;
则执行完语句if(j=0)i++;
elsei--;
i的值为11。
23.Continue语句的作用是结束整个循环的执行。
24.若有定义语句:
doublea,*p=&
a;
定义语句中的*号是一个间址运算符,这种说法是否正确?
25.注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。
26.变量可以先使用后定义。
27.在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。
28.a=b+c=1是正确的赋值表达式。
29.用putchar函数可以输出能在屏幕上显示的字符,也可以输出屏幕控制字符及其他转义字符。
‘c’&
‘d’的值为0。
31.If(a=5)是合法的。
32.静态(static)类别变量的生存期贯穿于整个程序的运行期间。
对
33.源文件经过编译可得到目标文件。
34.在C语言中,常数045跟45等值。
35.在所有运算符中,逗号运算符的优先级最低。
36.空语句可以用来作流程的转向点,即流程从程序其他地方转到此语句处。
37.若a为整型变量,则语句scanf(“%d”,a);
是合法的。
“<
=”和“==”的优先级相同。
39.If语句的嵌套是指在if语句中又包含一个或多个if语句。
40.For、while、do-while循环中的循环体均可以由空语句构成。
错
41.未在定义语句中赋初值的auto变量和static变量的初值都是随机值。
42.有定义:
floatx,*p=&
x;
是否正确?
43.自增,自减运算符既可以用于变量,又可用于常量和表达式。
44.字符变量可以不定义直接使用。
45.在逻辑表达式的求解中,并不是所有的逻辑运算都被执行。
对
1.一个C程序可以由多个源文件组成。
√
2.字符变量可以不定义直接使用。
×
3.自增、自减运算符既可用于变量,又可用于常量和表达式。
4.在结构化程序设计中,循环结构就是无休止地反复执行某一部分的操作。
5.在执行语句scanf("
%d,%d"
&
时,正确的数据输入形式是3,4<
。
√
6.表达式‘c’&
‘d’的值为0。
7.if语句不可以嵌套。
8.在do一while循环体中,一定要有能使while后表达式值变为零("
假"
)的操作√
9.若已定义的函数有返回值,函数调用可以作为一个函数的形参×
10.若有定义语句:
doublea,*p=&
a;
定义语句中的*号是一个间址运算符。
这种说法是否正确?
11.注释不宜太多也不能太少,注释语言必须准确、易懂、简洁√
12.C语言中标识符是区分大小写的。
13.5’与5是一样的。
14.空语句可以用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。
15.C语言中,字符数据用格式说明"
%s"
来输出,字符串数据用格式说明"
%c"
来输出。
16.表达式‘a’<
‘z’的值是1。
17.if(a=5)是合法的。
18.break语句仅能使用在switch结构中×
19.定义函数时,形参的类型说明可以放在函数体内×
20.有定义:
float*p=1024;
是否正确。
21.#include命令不能包含用户自己建立的头文件。
22.#defineN10定义了一个值为10的变量N。
24.条件运算符?
和:
25.语句inta=2;
if(a=3)b=1;
执行后b的值是1。
26.函数体内,return后面不能为表达式?
27.源文件经过编译可得到目标文件。
28.C语言中构造类型包括数组、结构体、共用体类型。
29.表达式1/4*3的值是0.75。
30.程序中的“=”是赋值号,与数学中等号的功能相同×
31.若a为整型变量,则语句scanf("
%4d"
a);
是一个合法的scanf函数。
32.C语言中,在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。
33.可以用swicth结构实现的程序都可以使用if语句来实现。
34.continue语句的作用是使程序的执行流程跳出包含它的所有循环√
35.如果形参与实参的类型不一致,以实参类型为准
36.C语言中只能使用单行注释。
37.C语言中普通字符型变量在内存中占1个字节。
39.若a为float变量,则语句scanf("
%7.2f"
40.逻辑运算符“!
”的优先级高于算术运算符和关系运算符。
41.continue语句的作用是结束整个循环的执行×
42.C语言中,else总是与它上面、最近的、尚未配对的if配对。
44.用C语言编写的指令序列称为C语言源程序
45.逗号表达式以最左边表达式的值作为整个逗号表达式的值。
46.a=b+c=1是正确的赋值表达式×
47.要使用printf函数输出字符“%”,需要在格式控制字符串中用连续两个%来表示。
48.a>
b==c等价于(a>
b)==c。
49.有定义:
floatx,*p=&
x;
是否正确?
50.设有inta;
floatf=5.75;
在执行语句a=(int)f;
后,f变成了int型。
51.若有inti=10,j=2;
则执行完i*=j+8;
后ⅰ的值为28。
5.语句printf("
%3s"
"
CHINA"
);
的输出结果是CHI√
52.break语句只能用在循环体内和switch语句体内
53.函数调用可以出现在表达式中
54.#include命令只能包含.h文件。
55.158L为十进制长整数√
56.若a为整型变量,则语句scanf("
%d"
a);
57.关系运算符的优先级高于逻辑运算符(不包括!
)。
58.函数的类型决定返回值的类型√
59.实型数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题 答案