C语言章节练习题1Word格式.docx
《C语言章节练习题1Word格式.docx》由会员分享,可在线阅读,更多相关《C语言章节练习题1Word格式.docx(95页珍藏版)》请在冰豆网上搜索。
=b+1
B)a=b=c+2
C)int18.5%3
D)a=a+7=c+b
3.下列可用于C语言用户标识符的一组是
A)void,define,WORD
B)a3_b3,_123,Car
C)For,-abc,IFCase
D)2a,DO,sizeof
4.C语言中运算对象必须是整型的运算符是
A)%=
B)/
C)=
D)<
=
5.若变量a,i已正确定义,且i已正确赋值,合法的语句是
A)a==1
B)++i;
C)a=a++=5;
D)a=int(i);
6.在C语言中,运算对象必须是整型数的运算符是
A)%
B)\
C)%和\
D)**
7.若有定义:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是
A)2.500000
B)2.750000
C)3.500000
D)0.000000
8.以下选项错误的是
A)main()
{intx,y,z;
x=0;
y=x-1;
z=x+y;
}
B)main()
x=0,y=x+1;
C)main()
{intx;
intz;
inty;
D)main()
y=x+1;
z=x+y,}
9.在16位C编译系统上,若定义longa;
,则能给a赋40000的正确语句是
A)a=20000+20000;
B)a=4000*10;
C)a=30000+10000;
D)a=4000L*10L;
10.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
A)4
B)16
C)32
D)52
11.设有intx=11;
则表达式(x++*1/3)的值是
A)3
B)4
C)11
D)12
12.下列数据中,不合法的C语言实型数据的是
A)0.123
B)123e3
C)2.1e3.5
D)789.0
13.设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型为
A)int
B)float
C)double
D)不确定
14.设以下变量均为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+1,x=y,x+1)
15.若变量a是int类型,并执行了语句:
a=’A’+1.6;
,则正确的叙述是
A)a的值是字符C
B)a的值是浮点型
C)不允许字符型和浮点型相加
D)a的值是字符′A′的ASCII值加上1
16.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是
A)n=(n*100+0.5)/100.0
B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0
D)n=(n/100+0.5)*100.0
17.下面四个选项中,均是不正确的8进制数或16进制数的选项是
A)0160x8f018
B)0abc0170xa
C)010-0x110x16
D)0a127ff-123
18.以下选项中,与k=n++完全等价的表达式是
A)k=n,n=n+1
B)n=n+1,k=n
C)k=++n
D)k+=n+1
19.以下叙述正确的是
A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符
20.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以是字母,数字和下划线中任一字符
21.已知各变量的类型说明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
则以下不符合C语言语法的表达式是
A)x%(-3)
B)w+=-2
C)k=(a=2,b=3,a+b)
D)a+=a-=(b=4)*(a=3)
22.若有以下定义,则能使值为3的表达式是
intk=7,x=12;
A)x%=(k%=5)
B)x%=(k-k%5)
C)x%=k-k%5
D)(x%=k)-(k%=5)
23.下面四个选项中,均是合法整型常量的选项是
A)160-0xffff011
B)-0xcdf01a0xe
C)-019860120668
D)-0x48a2e50x
24.假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000
B)3
C)2.000000
D)3.000000
25.以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷
y÷
z的C语言表达式是
A)x/y*z
B)x*(1/(y*z))
C)x/y*1/z
D)x/y/z
26.若变量已正确定义并赋值,下面符合C语言语法的表达式是
A)m∶=5
B)c=b=a=1
C)float8%5
D)x+5=y+2
27.已知intk,m=1;
执行语句k=-m++;
后,k的值是
A)-1
B)0
C)1
D)2
28.已知intm;
floatk;
正确的语句是
A)(intk)%m
B)int(k)%m
C)int(k%m)
D)(int)k%m
29.下面各选项中,均是C语言标识符的选项组是
A)33weauto
B)_23me_3ew
C)_433e_else
D)ER-DF32
30.已知intk;
floatm=-3;
执行语句k=m%2;
后,变量k的值是
D)语句有错误
31.不能进行++和--运算的数据类型为
A)指针
B)整型
C)长整型
D)常量
1.设inta=5,b=6,表达式(++a==b--)?
++a:
--b的值是【1】。
2.定义inta=5,b;
则执行表达式b=++a*--a之后,变量b的值为【2】。
3.以下程序的输出结果是【3】。
#include"
stdio.h"
main()
{inta=065;
printf("
%d\n"
--a);
第3章顺序结构
1.若变量已正确说明为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.033.0<
D)1022<
2.若执行下述程序时,若从键盘输入6和8时,结果为
{inta,b,s;
scanf("
%d%d"
&
b);
s=a
if(a<
b)
s=b;
s*=s;
printf("
%d"
s);
A)36
B)64
C)48
D)以上都不对
3.下列程序段的输出结果是:
inta=1234;
floatb=123.456;
doublec=12345.54321;
%2d,%2.1f,%2.1f"
a,b,c);
A)无输出
B)12,123.5,12345.5
C)1234,123.5,12345.5
D)1234,123.4,1234.5
4.以下不正确的叙述是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
5.下列程序的输出结果是
{doubled=3.2;
intx,y;
x=1.2;
y=(x+3.8)/5.0;
d*y);
}
B)3.2
C)0
D)3.07
6.以下程序段的输出结果是
inta=1234;
%2d\n"
a);
A)12
B)34
C)1234
D)提示出错、无结果
7.已有定义inta=-2;
和输出语句printf("
%8lx"
以下正确的叙述是
A)整型变量的输出形式只有%d一种
B)%x是格式符的一种,它可以适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
8.以下程序的输出结果是
{inta=21,b=11;
--a+b,--b+a);
A)30
B)31
D)33
9.若变量已正确说明为int类型,要通过语句scanf("
%d%d%d"
给a赋值3,b赋值5,c赋值8,不正确的输入形式是
A)3<
5<
8<
B)3,5,8<
C)3<
58<
D)35<
10.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是
A)INPUTx、y、z;
B)scanf("
%d%d%d"
x,&
y,&
z);
C)scanf("
x,y,z);
D)read("
11.设x、y均为整型变量,且x=10y=3,则以下语句的输出结果是
%d,%d\n"
x--,--y);
A)10,3
B)9,3
C)9,2
D)10,2
12.下面程序的输出结果为
{inta,b;
b=(a=3*5,a*4,a*5);
b);
A)60
B)75
C)65
D)无确定值
13.C语言中,系统的标准输入文件是指
A)键盘
B)显示器
C)软盘
D)硬盘
14.已知i,j,k为int型变量,若从键盘输入:
1,2,3<
,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是
A)scanf("
%2d,%2d,%2d"
i,j,k);
%d%d%d"
i,&
j,&
k);
%d,%d,%d"
D)scanf("
i=%d,j=%d,k=%d"
15.下列程序运行的结果是
{floatx;
inti;
x=3.6;
i=(int)x;
x=%f,i=%d"
x,i);
A)x=3.600000,i=3
B)x=3.6,i=3
C)x=3,i=3
D)x=3.600000,i=3.000000
16.已知intk=10,m=3,n;
则下列语句输出结果是
n=(k%m,k/m));
A)2
C)4
D)5
17.已知inta;
floatb;
所用的scanf调用语句格式为:
a//%d,b=%f"
为了将数据3和25.08分别赋给x和y,正确的输入应当是
A)3,25.08<
Enter>
B)a=3,b=25.08<
C)a//3,b=25.08<
D)a//3<
b=25.08<
1.以下程序的输出结果是【1】。
printf("
,a);
2.以下程序的输出结果是【2】。
{inta=0;
a+=(a=8);
第4章选择结构
选择题:
1.有如下程序:
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
break;
case1:
a++;
case2:
b++;
a=%d,b=%d\n"
a,b);
该程序的输出结果是
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
2.有以下程序
{inti=1,j=1,k=2;
if((j--||k++)&
&
i++)
%d,%d,%d\n"
i,j,k);
执行后输出结果是
A)1,1,2
B)2,2,1
C)2,2,2
D)2,2,3
3.有如下程序
{floatx=2.0,y;
if(x<
0.0)y=0.0;
elseif(x<
10.0)y=1.0/x;
elsey=1.0;
%f\n"
y);
A)0.000000
B)0.250000
C)0.500000
D)1.000000
4.设intx=1,y=1;
表达式(!
x||y--)的值是
A)0
B)1
C)2
D)-1
5.若运行时给变量x输入12,则以下程序的运行结果是
{intx,y;
x);
y=x>
12?
x+10:
x-12;
B)22
C)12
D)10
6.在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。
在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。
A)10
B)01
C)非0非0
D)11
7.若已定义:
inta=25,b=14,c=19;
以下三目运算符(?
:
)所构成语句的执行后a<
=25&
b--<
=2&
c?
***a=%d,b=%d,c=%d\n"
a,b,c):
###a=%d,b=%d,c=%d\n"
,a,b,c);
程序输出的结果是
A)***a=25,b=13,c=19
B)***a=26,b=14,c=19
C)###a=25,b=13,c=19
D)###a=25,b=14,c=19
8.有如下程序
{floatx=2.0,y;
elseif(x>
9.以下4个选项中,不能看做一条语句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a<
5);
D)if(b!
=5)x=2;
y=6;
10.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是
A)a>
=10ora<
=0
B)a>
=0|a<
=10
C)a>
=10&
a<
D)a>
=10‖a<
11.有如下程序
{inta=2,b=-1,c=2;
if(b<
0)c=0;
elsec++;
c);
D)3
12.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A)x&
y
B)x<
=y
C)x||++y&
y-z
D)!
(x<
y&
!
z||1)
13.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是
A)(exp==0)
B)(exp!
=0)
C)(exp==1)
D)(exp!
=1)
14.以下程序的输出结果是
{inta=4,b=5,c=0,d;
d=!
a&
b||!
c;
d);
}
A)1
C)非0的数
15.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值是
B)2
C)3
D)4
16.设x,y,t均为int型变量,执行语句:
x=y=3;
t=++x||++y;
完成后,y的值为
A)不确定
D)1
17.若执行下面的程序时,从键盘上输入5和2,则输出结果是
{inta,b,k;
%d,%d"
k=a;
b)k=a%b;
elsek=b%a;
%d\n"
k);
A)5
D)0
18.请阅读以下程序:
{inta=5,b=0,c=0;
if(a=b+c)printf("
***\n"
);
elseprintf("
$$$\n"
以上程序
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
19.当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是
A)m=k=n
B)(m=k)&
(n=k)
C)(m=k)||(n=k)
D)(k=m)&
20.下列程序的运行结果是
{intx=-9,y=5,z=8;
y)
if(y<
0)z=0;
elsez+=1;
z);
A)6
B)7
C)8
D)9
1.阅读下面程序,则执行后的输出结果是【1】。
{intx,y,z;
x=1;
y=2;
z=3;
if(x>
y)if(x>
z)
x);
第5章循环结构
1.已知
intt=0;
while(t=1)
{...}
则以下叙述正确的是
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
2.有如下程序:
{intn=9;
while(n>
6){n--;
n);
A)987
B)876
C)8765
D)9876
3.在下列选项中,没有构成死循环的是
A)inti=100;
while
(1)
{i=i%100+1;
if(i>
100)break;
B)for(;
;
C)intk=10000;
do{k++;
}while(k>
10000);
D)ints=36;
while(s)--s;
4.设有以下程序段
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(