C语言第一二三章习题.docx
《C语言第一二三章习题.docx》由会员分享,可在线阅读,更多相关《C语言第一二三章习题.docx(30页珍藏版)》请在冰豆网上搜索。
C语言第一二三章习题
一)判断题(用A表示正确,B表示错误)
说明:
在以下提供的若干陈述中,逐一判断其正确与否,选
A表示正确,选B表示错误。
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、
17、
18、
19、
20、
21、
22、
23、
24、
25、
26、
27、
28、
29、
函数是C程序的基本单位,每个C程序中允许有多个在C程序中允许1行有多个语句,一个语句分多行写。
C语言是一门低级语言。
()
C程序中,注释说明语句只能位于一条语句的后面,在C程序中123.345E-4是一个正确的实型数据(任何一个C语言源程序都能直接在计算机中运行。
C语言中表示逻辑“真”值是用1来表示的。
()在C语言中,逗号运算符的优先级最低。
()OXAGOXCF是十六进制整型常量。
()在一个C源程序中,每个语句都是以;结束的。
3+4X、a*(10%3)都是正确的C语言的表达式。
(C语言是一门结构化程序设计语言。
()有以下定义“intb;”则说明了b是整型变量,为bo()字符型变量在输出时可以是字符型数据和整型数据。
语言的运算符优先级是指不同的运算符计算的先后顺序,
()
C语言中的关键字不能当作变量名使用。
()
C语言中没有单独的输入输出语句,输入输出功能由函数来完成。
()
在C语言中名字为NUM和num的标识符表示的是同一个变量。
()在C程序的一行上可以出现多个有效的预处理命令行。
()
一个C语言源程序经过编译后就能直接生成扩展名为.exe的文件。
()在C语言中,所有外部设备都可以作为文件来对待,这样的文件称为设备文件。
若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入在C程序中,%运算符要求运算数必须是整型的运算符。
()
scanf函数的输入项可以为一实型常量,如scanf(“%f”,3.5);已知ch是字符型变量,则赋值语句ch=‘a'+3是错误的。
(一个C程序的执行是从本程序文件的第一个函数开始,到本程序若X是单精度实型变量,表达式(x=10/4)的值是2.5o()表达式X/=5+6等价于X=X/5+6o()运算符“=”和“&二”的优先级相同。
()
main函数。
()
()
1=10
不可以单独一行。
()
)
(
并且分配一个存储单元,该存储单元的内容
)
比如,双目运算符比单目运算符优先。
)
a中而b中的值不变。
()
是正确的语句。
()
main函数结束。
()
30、
'%f'是不正确的字符常量。
()
31、
运算符“+”不能作为单目运算符。
()
32、
如果运算符“*”和“/”都是右结合的,则表达式10*6/5
的值是10。
()
33、
s(s-a)(s-b)(s-c)是合法的C语言表达式。
()
表达式!
!
6的值是6。
()
35、
表达式~(~2<<1)的值是5。
()
36、
不同类型的变量在内存中占用存储空间的大小都是一样的。
(
37、
程序调试就是找出并改正C源程序中的语法错误。
()
38、
表示数学式3VXV5的C表达式也是3VXV5。
()
40、
'\n'不是一个字符常量。
()
41、表达式(1.23<<2)符合C语言语法。
()
42、与float型数据相比,double型数据的精度高,取值范围大。
()43、在C语言中,表达式(010+2)的值是10。
44、结构化程序语言的三种基本控制结构是顺序、选择和循环。
()
45、C语言程序的三种基本结构是顺序、选择和嵌套。
()
46、C语言是一门面向对象的程序设计语言。
()47、C语言可以有一个以上的主函数MAN()
48、C语言的注释部分用“//”表示。
()
49、经过编译后生成的目标程序是可以直接运行的。
()
50、表达式(3.6%2)符合C语言语法。
()
51、在C程序中,用整数0表示逻辑值“假”。
()
52、08是正确的整型常量。
()53、若变量已正确定义,表达式x=y=1符合C语言语法。
()
54、表达式!
(x>0||y>0)等价于!
(x>0)&&!
(y>0)。
()
55、用#definepi3.1415926定义的符号常量pi的值在程序中是不能被改变的。
()
56、C语言的注释部分用“/**/”表示。
()
57、不同类型的变量在内存中占用存储空间的大小是不一样的。
()
58、表示数学式1VXV10的C表达式是X>1&&XV10。
()
(二)单项选择题
1、
下列定义中,
定义的变量可以存放-123.4。
Alonga;
Cintd;
2、
若X是double型变量,n是int
型变量,执行
,并输入31.25后,x=1.25,n=3。
Aseanf("%d%lf",&n,&x);
Bseanf("%lf%d",&x,&n);
Cseanf("%lf%d",&n,&x);
Dseanf("%d%,lf",&n,&x);
3、
若变量已经被正确定义,为表示“变量
x和y都能被3整除”,应使用的C表达式是
A(x%3!
=0)II(y%3!
=0)
B、(x%3!
=0)&&(y%3!
=0)
C(x%3==0)II(y%3==0)
D(x%3==0)&&(y%3==0)
4、
以下所列的C语言常量中,错误的是
B、unsignedb;
Dfloatc;
AOxFFB
、1.2e0.5C)、202LD、'\72'
5、下面程序的输出是
A0B、1C、3
D、不确定的值
main(){intx=10,y=3;
printf(“%dn”,y=x/y);}
6、
不是C语言的运算符。
&&B、&C
7、
字节数最多的类型是
intB、eharC、doubleD)、long
在下列选项中,
不是赋值语句。
9、
t=1,t=2;
设i是int
B、n1=(n2=(n3=0));C、k=i==j;D、a=be=1;
型变量,f是float型变量,用下面的语句给这两个变量输入值:
seanf(“%d%”
,&i,&f);为了把100和76.12分别赋给i和f,则正确的输入为
A10076.12
B、i=100,f=76.12C、100,76.12D
、i=100f=76.12
10、能正确表示a和b同时为正或同时为负的逻辑表达式是
(a>=0||b>=0)&&(a<0||b<0)
B、
(a>=0&&b=0)&&(av0&&b<0)
C、
(ab>0)&&(abv=0)
a*b>0
11、
为表示“a和b都不等于0”,应使用的C语言表达式是
A(a!
=0)II(b!
=0)
、aIIb
C、!
(a=0)&&(b!
=0)
、a&&b
12、若x是单精度实型变量,
k是基本整型变量,以下正确的输入语句是
Aseanf("%f%d",&x,&k);
、seanf("%f%d",x,k);
C、seanf("%d%f",&x,&k);
、seanf("%d%f",x,k);
13、下列运算符中优先级最低的是
C、
->
14、已知字符
e'的ASCII
码为99,语句printf("%d,%e",
e'+1);的输出
A99,e
、99,100
C、99,d
、语句不合法
15、以下选项中规范的指数形式
A5E2.0B、E-3C、.2E0D
、1.3E+005
16、下列表达式的值为1的是
A3%5B、3/5.0C、3/5D、3<5
17、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A、必须为字母
、必须为下划线
C、必须为字母或下划线D、可以是字母、数字和下划线中任一种字符18、下列运算符中优先级最高的是
C、&&
19、阅读以下程序:
若x、i、j和k都是
int
型变量,则执行下面表达式后x的值为
x=(i=4,j=16,k=32)
B、16
、32D、52
20、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是
DA%2
AA%2==1B、!
(A%2==0)C、!
(A%2)
21、对于inti,j;charc;
当输入序列为1dc234时,执行语句
seanf(“%dd%c%*d%*d”d&i,&c,&j);
后i,j,c的值分别为
22、若x是单精度实型变量,
k是基本整型变量,以下正确的输入语句是
Ascanf("%f%d",&x,&k);
、scanf("%f%d",x,k);
C、scanf("%d%f",&x,&k);
、scanf("%d%f",x,k);
23.下面程序的输出结果是
main()
{intx=10;
printf(“%d\n”,(x=5*6,x*4,x+5));}
(A)30
(B)125(C)35(D)120
24、已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值
为3,以下选项中相对应的正确输入语句是
A、scanf("%2d%2d%2d",&i,&j,&k);
B、scanf(""%d%d%d",&i,&j,&k);
C、scanf("%d,%d,%d",&i,&j,&k);
D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);
25、设c是一个字符变量,求解表达式
后,c的值不是1就是00
A、c=getchar()!
='\n'
B(c=getchar())!
='\n'
C、c='1'
D、c=EOF
26、下列叙述中错误的是
一个C语言程序只能实现一个算法。
B、
C程序可以有多个程序文件组成。
C、
C程序可以有一个或多个函数组成。
一个C函数可以单独作为一个C程序文件存在。
27、下列叙述中正确的是
每个C程序文件中都必须要有一个main()函数。
B、
在C程序中mani()函数的位置是固定的。
C、
C程序中所有函数之间都可以互相调用,与函数所在位置无关。
C程序只能有一个main()函数组成。
28、下列定义变量的语句中错误的是
Aint_int;B、doubleint_;C、charFor;D、floatUS$;
29、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是
A++x,y=x--;B、x+1=y;C、x=x+10=x+y;D、double(x)/10;
30、以下关于逻辑运算符两侧运算对象的叙述中正确的是
A只能是整数0或1;
B、只能是整数0或非0整数;
C、可以是结构体类型的数据;D、可以是任意合法的表达式;
31、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的(x-y)
等价的是
、(x-y==0)
A(x-y>0)B、(x-y<0)C、(x-y<0||x-y>0)D32、有以下程序
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf(“%d,%d,%d,x,y,z);}
程序运行后的输出结果是
A2,3,3B、2,3,2C、2,3,1D、2,2,133、设有定义inta;floatb;执行scanf(“%2d%f,&a,&b);语句时,若从键盘输入876543.0<
回车>,a和b的值分别是
A876和543.000000
、87和6.000000
C、87和543.000000
、76和543.000000
34、有以下程序段main(){inta=0,b=0;
a=10;
printf(“a+b=%d\n',a+b);}
程序运行后的结果是
A、a+b=10
B、a+b=30C
、30
D、出错
35、以下选项中,值为1的表达式是
A1-‘0'B、1-‘\0'C、‘1'-0D、‘\0'-‘0'
36、C语言源程序名的后缀是
A.exeB、.CC、.objD、.cp
37、以下叙述正确的是
C语言程序将从源程序中第一个函数开始执行
B、
可以在程序中由用户指定任意一个函数作为主函数,程序将从此执行
C、
C语言规定必须用main()作为主函数名,程序将从此执行,在此结束
main可作为用户标识符,用以命名任意一个函数作为主函数
38、以下叙述错误的是
计算机不能直接执行用C语言编的源程序
B、
C程序经C编译程序编译后,生成后缀为.obj的文件是个二进制文件
C、
后缀为.obj的文件,经连接程序生成后缀为.exe的文件是二进制文件
后缀为.obj和.exe的文件都可以直接执行
39、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是
A大写字母B、连接符
C、数字字符D、下划线
40、以下叙述错误的是
C语言是一种结构化程序设计语言
B、
结构化程序有顺序、分支、循环三种基本结构组成
C、
使用三种基本结构构成的程序只能解决简单问题
D结构化程序设计倡导模块化的设计方法
41、设有定义:
intk=0;以下选项的四个表达式中与其他三个表达式的值不一致的是
A、k++
、k+=1
、++k
、k+1
42、有以下程序,其中%口表示按无符号整数输出
main()
{unsignedintx=0xFFFF;//x
的初值为十六进制数
printf(“%u\n”,x);}
程序运行后的输出结果为
A、-1B
、65535
、32767
、0xFFFF
43、以下选项中,
当x为大于1的奇数时,值为
0的表达式是
Ax%2==1B
、x/2
C、x%2!
=0
x%2==0
44、以下合法的字符常量是
A、‘\x13'B
\081
'\65'
”1”
\n
45、以下选项中可作为C语言合法常量的是
A、-80.B、-080C、-8e1.0D-80.0e
46、以下叙述中正确的是
A)
C程序实现的算法必须要有输入和输出操作
B)
C程序实现的算法可以没有输出但必须要输入
C)
C程序实现的算法可以没有输入但必须要有输出
D)
C程序实现的算法可以既没有输入也没有输出
47、以下不能定义为用户标识符的是
A、MainB
_0C
_intD、sizeof
48、以下选项中不能作为合法常量的是
A、1.234e04B、1.234e0.4C
、1.234e+4
、1.234e0
49、数字字符0的ASCII值为48,若有以下程序main(){chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);}
程序运行后的输出结果是
A、3,2B、50,2C、2,2D、2,50
50、有以下程序
main(){intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);}
程序运行后的输出结果是
A、12353514B、12353513
、12343514D、12343513
51、有定义语句:
intb;charc[10];,
则正确的输入语句是
A、scanf("%d%s",&b,&c);B
、scanf("%d%s",&b,c);
C、scanf("%d%s",b,c);
、scanf("%d%s",b,&c);
printf("%d%d%d\n",m,n,p);}
若想从键盘上输入数据,使变量
A、m=123n=456p=789
、m=123n=456p=789
C、m=123,n=456,p=789
、123456789
52、有以下程序main(){intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
m中的值为123,n中的值为456,p中的值为789,则正确的输入是
53、有以下程序
main(){inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}
程序运行后的输出结果是
A、6,1B、2,1
C、6,0D、2,0
54、有以下程序
main(){inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);}
程序运行后的输出结果是
A、123
、234
、223
、233
55、以下不合法的用户标识符是
A、j2_KEYB、DoubleC、4d
8_
56、以下不合法的数值常量是
A、011B、1e1
C、8.0E0.5
、0xABCD
57、表达式3.6-5/2+1.2+5%2
的值是
A、4.3
、4.8
、3.3
、3.8
58、用C语言编写的代码程序
A可立即执行
B是一个源程序
C经过编译连接后方可执行
D经过编译解释才能执行
59、结构化程序由三种基本结构组成,三种基本结构组成的算法
A可以完成任何复杂的任务
B、
只能完成部分复杂的任务
C只能完成符合结构化的任务
D、
只能完成一些简单的任务
60、下列选项中,不能用作标识符的是
A、_1234_
B、_1_2
C、int
_2
D、2_int_
61、有以下定义语句doublea,b;intw;Iongc;若各变量已正确赋值,则下列选项中正确的表达式是
A、a=a+b=b++
B、w%(int)a+b)
D、w=a==b;
C、(c+w)%(int)a
62、以下叙述中正确的是
A、
C语言的源程序不必通过编译就可以直接运行
B、
C、
C源程序经编译形成的二进制代码可以直接运行
D、
C语言中的函数不可以单独进行编译
C语言中的每条可执行语句最终都将被转换成二进制的机器指令
63、以下符合C语言语法的实型常量是
A、1.2E0.5
、3.14.159E
、.5E-3
、E15
64、若以下选项中的变量已正确定义,
则正确的赋值语句是
A、x1=26.8%3
B、1+2=x2
、x3=0x12
D、x4=1+2=3;
65、设有以下定义
inta=0;
doubleb=1.25;
charc='A;
#defined2
则下面语句中错误的是
A、a++;B
、b++;
C、C++;D、d++;
66、设有定义:
floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是
A(a+b)*h/2
B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b)
67、有以下程序
main()
{intx=102
y=012;
printf(“%2d,%2dn”,x,y);}
执行后输出结果是
A、10,01B、002,12C、102,10D、02,10
68、以下叙述中正确的是
C程序中注释部分可以出现在程序中任意合适的地方
B、
花括号"{"和"}"只能作为函数体的定界符
C、
构成C程序的基本单位是函数,所有函数名都可以由用户命名
分号是C语句之间的分隔符,不是语句的一部分
69、以下选项中可作为C语言合法整数的是
A10110B
B、0386
、0xffa
、x2a2
70、以下不能定义为用户标识符的是
Aseanf
、Void
3com_D、int
71、有以下程序main(){inta;chare=10;
floatf=100.0;doublex;
a=f/=e*=(x=6.5);
printf("%d%d%3.1f%3.1f\n",a,c,f,x);}
程序运行后的输出结果是
A16516.5
、1651.56.5
C、1651.06.5
、2651.56.5
72、以下选项中非法的表达式是
A0<=x<100B、i=j==0C、(char)(65+3)D
、x+1=x+1
73、有以下程序
main()
{inta=1,b=2,m=0,n=O,k;
k=(n=b>a)||(m=a);
printf("%d,%d\n",k,m);}
程序运行后的输出结果是
A0,0B、0,1C、1,0D
74、有定义语句:
intx,y;,若值11,变量y得到数值12,下面四组输入要通过scanf("%d,%d",&x,&y);
语句使变量x得到数形式中,错误的是
A1112<回车>
B、11,12<回车>
C、11,12<回车>
D、11,<回车>
12<回车>
75、设有如下程序段:
intx=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是
输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、
运行时产生出错信息
C、
输出值为2002
输出值为2003
76、设变量x为float型且已赋值,
,则以下语句中能将x的值第三位四舍五入后,使数值保留到小
数点后两位的是
Ax=x*100+0.5/100.0;
、x=(x*100+0.5)/100.0;
C、x=(int)(x*100+0.5)/100.0;D
、x=(x/100+0.5)*100.0;
77、
以下叙述正确的是
C语言比其他语言咼级
B)、
C语言可以不用编译就能被计算机识别执行
C、
C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)、C语言出现的最晚、具有其他语言的一切优点
78、C语言中用于结构化程序设计的三种基本结构是
A)、
顺序结构、选择结构、循环结构
B)、
if、switch、break
C)、
for、while、do-while
D)、
if、for、continue
79、在一个C语言程序中
A、
main函数必须出现在所有函数之前