C语言练习题及答案1Word文件下载.docx
《C语言练习题及答案1Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言练习题及答案1Word文件下载.docx(54页珍藏版)》请在冰豆网上搜索。
%d\n"
y=x/y);
}
的输出是___C___。
A:
0B:
1C:
3D:
不确定的值
4、执行下面程序段后,c3中的值是_A____
intc1=1,c2=2,c3;
c3=c1/c2;
0B:
1/2C:
0.5D:
1
2.C语言表达式书写规则
1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是___A___。
x/y*zB:
x*(1/(y*z))C:
x/y*1/zD:
x/y/z
2、设有定义:
floata=2,b=4,h=3;
,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是___B___。
(a+b)*h/2B:
(1/2)*(a+b)*hC:
(a+b)*h*1/2D:
h/2*(a+b)
第二节变量
1.变量
1、下列关于C语言的关键字的叙述中错误的是(C)
A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字。
B.用户定义的标识符不应与关键字相同。
C.ANSIC标准规定的关键字有64个。
D.ANSIC标准规定的关键字有32个。
2、下面关于C语言用户标识符的描述,正确的是(D)
A.不区分大小写B.用户标识符不能描述常量
C.类型名也是用户标识符D.用户标识符可以作为变量名
3、以下(D)是正确的变量名。
A.a.beeB.-p11C.intD.p_11
4、下面属于C语言标识符的是(D)
A.2abB.@fC.?
bD._a12
5、下列保留字中用于构成循环结构的是(B)
A.ifB.whileC.switchD.default
6、以下定义语句中正确的是(C)。
A.chara='
A'
b='
B'
;
B.floata=b=10.0;
C.inta=10,*b=&
a;
D.float*a,b=&
7、下面标识符中,不合法的用户标识符为(D)
A)PadB)a_10C)_12abD)int
8、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符_____C____。
A、必须为下划线B、可以是字母、数字和下划线中任一种字符
C、必须为字母或下划线D、必须为字母
9、请选出可用作C语言用户标识符的一组标识符____B__。
①void②a3_b3③For④2a
define_123_abcDO
WORDIFcasesizeof
①B:
②C:
③D:
④
9、以下选项中合法的用户标识符是___B___。
longB:
_2TestC:
3DmaxD:
A.dat
10、以下不能定义为用户标识符的是__D____。
scanfB:
VoidC:
_3com_D:
int
11、在C语言中,如果下面的变量都是int类型,则输出结果是__A____
sum=pad=5;
pad=sum++,pad++,++pad;
printf("
pad);
7B:
6bC:
5D:
4
2.常量和符号常量
1、以下(B)是错误的整型常量。
A.-0xcdfB.018C.0xeD.011
2、下列符号中用来表示C语言中的回车换行的是(B)
A.\”
B.\n
C.\b
D.\\
3、以下(C)是正确的字符常量。
A."
c"
B.'
\\'
'
C.'
W'
D."
\32a"
4、下面不正确的字符串常量是(A)
A)'
abc'
B)"
12'
12"
C)"
0"
D)"
"
6、以下列出C语言常量中,错误的是__B____。
OxFFB:
1.2e0.5C:
2LD:
\72'
7、以下选项中,非法的字符常量是___C___。
\t'
\17'
C:
"
\n"
\xaa'
第三节数据类型
1.整型数据
1、以下选项中不属于C语言的类型的是__D____。
signedshortintB:
unsignedchar
singedlongD:
longshort
2、以下选项中可作为C语言合法整数的是___C___。
10110BB:
0386C:
0XffaD:
x2a2
2.实型数据
1、以下选项中属于C语言的数据类型是___C___。
复数型B:
逻辑型C:
双精度型D:
集合型
2、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___C___。
1B:
2C:
2.0D:
2.5
3、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是___C___。
x=x*100+0.5/100.0;
B:
x=(x*100+0.5)/100.0
x=(int)(x*100+0.5)/100.0;
D:
x=(x/100+0.5)/100.0;
4、以下符合C语言语法的实型常量是__C____。
1.2E0.5B:
3.14159EC:
.5E-3D:
E15
3.字符型数据
1、判断char型变量ch是否为大写字母的正确表达式是____C_____。
A、‘A’<
=ch<
=‘Z’ B、‘A’<
=chandch<
=‘Z’
C、‘A’<
=ch&
ch<
=‘Z’ D、‘A’<
=ch||ch<
=‘Z’
2.设有语句chara='
则变量a(A) 。
A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法
3.判断变量ch中的字符是否为数字字符,最简单的正确表达式是(D)。
A)ch>
=0&
ch<
=9B)’0’<
=’9’
C)ch>
=’0’||ch<
=’9’D)ch>
=’0’&
4、设有说明语句:
chara='
则变量a__A____。
包含1个字符B:
包含2个字符C:
包含3个字符D:
说明不合法
5、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'
\101'
是___A___。
字符AB:
字符aC:
字符eD:
非法的常量
6、若有以下定义和语句:
charc1='
b'
c2='
e'
%d,%c\n"
c2-c1,c2-'
a'
+'
);
则输出结果是___B____
2,MB:
3,EC:
2,eD:
输出结果不确定
7、已知字符A的ASCII码为十进制的65,下面程序的输出是__A___
main()
{
charch1,ch2;
ch1='
5'
-'
3'
ch2='
6'
ch1,ch2);
}
67,DB:
B,CC:
C,DD:
不确定的值
8、若变量c为char类型,能正确判断出c为小写字母的表达式是D
<
=c<
='
z'
B:
(c>
)||(c<
)
('
=C)and('
>
=c)D:
)&
(c<
4.类型转换
1、表达式‘f’+10的类型是____A_______。
A、intB、char C、double D、float
2、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是___D___。
6.500000B:
6C:
5.500000D:
6.000000
第四节赋值语句
1、若有定义:
inta=2;
则正确的赋值表达式是(A)。
A.a-=(a*3)B.double(-a)C.a*3D.a*4=3
2、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)
A)–3B)9C)–12D)6
3、请选出合法的C语言赋值语句__B____。
a=b=58B:
i++;
a=58,b=58D:
k=int(a+b);
4、若变量已正确定义并赋值,下面符合C语言的表达式是___B___。
a:
=b+1B:
a=b=c+2C:
int18.5%3D:
a=a+7=c+b
5、若变量a、i已正确定义,且i已正确赋值,合法的语句是__B____。
a==1B:
++i;
a=a++=5D:
a=int(i);
6、以下非法的赋值语句是__C____。
n=(i=2,++i);
j++;
++(i+1);
x=j>
0;
7、以下选项中非法的表达式是___D___。
0<
=x<
100B:
i=j==0C:
(char)(65+3)D:
x+1=x+1
8、若以下选项中的变量已正确定义,则正确的赋值语句是___C___。
x1=26.8%3;
1+2=x2;
x3=0x12;
x4=1+2=3;
第五节复杂表达式
1.自增、自减运算符
1、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);
(D)
A)10,3B)9,3C)9,2D)10,2
2、设i为整型变量,且值为100,则语句++i;
执行后i的值是____B_____。
A、100 B、101 C、102 D、语句错
3.以下程序的输出结果是(B)。
#include<
stdio.h>
{
inti=010,j=10;
%d,%d\n"
++i,j--);
A)11,10B)9,10C)010,9D)10,9
4.下列程序的运行结果是(
A
)
#define
A
5
#define
B
A+1
main()
{inta;
a=B;
printf(″%d\n″a--);
A.6
B.5
C.4
D.出错
5、以下程序的输出结果是___A___。
#include<
inti=10,j=10;
++i,j--);
}
11,10B:
9,10C:
010,9D:
10,9
6、有如下程序
{inty=3,x=3,z=1;
%d%d\n"
(++x,y++),z+2);
运行该程序的输出结果是___D___。
34B:
42C:
43D:
33
7、设x,y均为int型变量,且x=10,y=3,则以下数据的输出结果是Dprintf("
x--,--y)。
10,3B:
9,3C:
9,2D:
10,2
8、下列关于单目运算符++、--的叙述中正确的是___D___。
它们的运算对象可以是任何变量和常量
它们的运算对象可以是char型变量和int型变量,但不能是float型变量
它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D:
它们的运算对象可以是char型变量、int型变量和float型变量
9.main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
x);
程序运行后的输出结果是__D____。
3B:
5C:
-1D:
-2
10、有以下程序
{chara='
b;
%c,"
++a);
%c\n"
b=a++);
程序运行后的输出结果是___A___。
b,bB:
b,cC:
a,bD:
a,c
11、若有以下定义和语句:
inta=5
a++;
此处表达式a++的值是__B__
6C:
2.关系运算符与关系表达式
1、设有intx,y;
以下语句判断x和y是否相等,正确的说法是该语句(B)
if(x=y)printf("
xisequaltoy."
A.语法错B.不能判断x和y是否相等
C.编译出错D.能判断x和y是否相等
2、表达式:
10!
=9的值是___D___。
trueB:
非零值C:
0D:
3.逻辑运算符与逻辑表达式
1、能表示条件0≤x≤100的表达式是(D)
A)0<
=x<
=100B.x>
=0,x<
=100
C)0≤x≤100D)x>
x<
2、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值为(C)
A)0B)1C)2D)3
3、能正确表示a和b同时为正或同时为负的逻辑表达式是___D______。
A、(a>
=0‖b>
=0)&
(a<
0‖b<
0) B、(a>
b>
0&
b<
0)
C、(a+b>
0)&
(a+b<
=0) D、a*b>
4、设有定义inta=1,b=2,c=3;
则下面的值为1的表达式是___A_______。
A、a&
7 B、a<
b&
!
c C、a&
b D、b〉=c
5、设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是___D___。
a<
=bC:
a||+c&
b-cD:
((a<
b)&
c||1)
6、设a=5、b=6、c=7、d=8、m=2、n=2,执行
(m=a>
(n=c>
d)
后n的值为___B___。
1B:
2C:
4
7、有如下程序段
inta=14,b=15,x;
charc='
x=(a&
b)&
(c<
执行该程序段后,x的值为___D___。
falseC:
8、设x、y、t均为int型变量,则执行语句:
x=y=3;
t=++x||++y;
后,y的值为____C__。
不定值B:
4C:
3D:
9.以下程序的输出结果是__A____。
{inta=4,b=5,c=0,d;
d=!
a&
b||!
c;
d)
1B:
0C:
非0的数D:
-1
{inta=1,b=2,m=0,n=0,k;
k=(n=b>
a)||(m=a<
b);
k,m);
程序运行后的输出结果是__C____。
0,0B:
0,1C:
1,0D:
1,1
11、有以下程序
{inti=1,j=1,k=2;
if((j++||k++)&
i++)
%d,%d,%d\n"
i,j,k);
执行后输出结果是C
1,1,2B:
2,2,1C:
2,2,2D:
2,2,3
12、以下程序的输出结果是A
d=!
d);
4.逗号运算符
1、若x,i,j,k都是int型变量,则执行下面表达式后x的值为____C____
x=(i=11,j=22,k=33)
A、11 B、22 C、33 D、66
2、若x和y都是int型变量,x=100、y=200,且有下面的程序片段
%d"
(x,y));
上面程序片段的输出结果是__A____。
200B:
100C:
100200D:
输入格式符不够,输出不确定的值
3、若执行以下程序段,其输出结果是__B____
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
%d,%d,%d\n"
a,b,c);
3,0,-10B:
0,0,5C:
-10,3,-10D:
3,0,3
第六节基本输入输出语句
2.格式化输入与输出函数
1、若有说明语句:
inta,b,c,*d=&
c;
,则能从键盘读入三个整数分别赋给变量a、b、c的语句是(A)
A.scanf("
%d%d%d"
&
a,&
b,d);
B.scanf("
b,&
d);
C.scanf("
a,b,d);
D.scanf("
a,b,*d);
2、调用scanf(“%d,%d”,&
时,正确的键盘输入是(A)
A)10,20B)a=10,b=20C)10:
20D)1020
3、下面的程序段
inti=6;
printf(“***%-4d***\n”,i);
的输出是______B______。
A、***6*** B、***6***
C、***0006*** D、出错
4.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是(D)。
c2='
Y'
c1,c2);
A)因输出格式不合法,输出错误信息B)65,90C)A,YD)65,89
5、以下程序的输出结果是__D____。
main()
{intk=17;
%d,%o,%x\n"
k,k,k);
17,021,0x11B:
17,17,17C:
17,0x11,021D:
17,21,11
6、若变量已正确说明为float类型,要通过语句scanf("
%f%f%f"
c);
给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
___B___。
10
22
33
10.0,22.0,33.0
10.0
22.033.0
1022
7、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是___B___。
INPUTX,Y,Z;
B:
scanf("
X,&
Y,&
Z);
X,Y,Z);
D:
read("
8、已知i、j、k为int型变量,若从键盘输入:
1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是__C____。
%2d%2d%2d"
i,&
j,&
k);
B:
%d%d%d"
%d,%d,%d"
i=%d,j=%d,k=%d"
9、设有定义:
longx=-123456L;
,则以下能够正确输出变量x值的语句是___B___。
x=%d\n"
x=%ld\n"
x=%8dL\n"
x=%LD\n"
10、有以下程序段
intm=0,n=0;
charc='
scanf("
%d%c%d"
m,&
c,&
n);
%d,%c,%d\n