C语言练习题及参考答案文档格式.docx
- 文档编号:20639899
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:45
- 大小:50.78KB
C语言练习题及参考答案文档格式.docx
《C语言练习题及参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言练习题及参考答案文档格式.docx(45页珍藏版)》请在冰豆网上搜索。
+'
b'
的结果是型数据。
A.charB.doubleC.intD.longint
【答】和均为double型,运算结果也是double型。
本题答案为B。
(5)若变量已正确赋值,以下符合C语言语法的表达式是。
A.a=a+7;
B.a=7+b+c,a++
C.int%4)D.a=a+7=c+b
【答】选项A错误,以分号结尾是一个语句而不是表达式;
选项B正确,是一个逗号表达式;
选项C错误,因为%求模运算的两个运算数必须均为整数;
选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。
(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。
A.x=(x=1+2,x*2)B.x=y>
26:
5
C.x=9-(--y)-(--y)D.x=y*(int)2)
【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;
选项B的计算过程——y>
2为真,x=6;
选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;
选项D的计算过程——x=y*(int)2)=y*2=6。
本题答案为C。
(7)若定义
intm=7,n=12;
则能得到值为3的表达式是。
A.n%=(m%=5)B.n%=(m-m%5)
C.n%=m-m%5D.(n%=m)-(m%=5)
【答】A、B、C、D选项各表达式的值分别是0、2、2、3。
本题答案为D。
(8)以下程序的运行结果是。
#include<
>
main()
{
inti=5,j=6,m=i+++j;
printf("
%d,%d,%d\n"
i,j,m);
}
A.6,6,11B.5,6,11C.5,6,12D.6,6,12
【答】m=i+++j等价于m=(i++)+j。
本题答案为A。
(9)以下程序的运行结果是。
voidmain()
doublef=;
intn;
n=(int)(f+10)%3;
%d\n"
n);
A.1B.0C.2D.3
【答】f+10=,(int)(f+10)=13,13%3=1。
(10)以下程序的运行结果是。
intn,i=2,j=4;
n=(++i==j--);
A.0B.1C.2D.3
【答】++i返回3,j--返回4,两者不等,故n=0。
(1)表达式语句与表达式的不同是。
【答】语句必须以分号结尾,而表达式结尾没有分号;
语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。
(2)在C语言中可以利用将一个表达式的值转换成指定的类型。
【答】强制类型转换
(3)写出完成下列功能的表达式:
·
如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。
①
如果d是数字,则将d转换成相应的整数,否则d的值不改变。
②
返回两个整数x、y中较大者。
③
返回三个整数x、y和z中最大者。
④
【答】①c=(c>
='
A'
&
&
c<
Z'
)c-'
a'
:
c
②d=(d>
0'
d<
9'
)d-'
d
③(x>
y)x:
y
④(x>
y)(x>
zx:
z):
(y>
zy:
z)或(x>
y&
x>
z)x:
z)
(4)以下程序的运行结果是。
chars[]="
ab\n\\\'
\r\b"
;
%d,%d\n"
sizeof(s),strlen(s));
【答】字符串s由字符'
、'
\n'
\\'
\'
'
\r'
\b'
等7个字符组成,故长度为7,但字符串本身有一个结束标志'
\0'
。
所以,s的长度为7,在内存中占用8个字节。
输出为:
8,7。
(5)以下程序的运行结果是。
inta=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
y=%d,x=%d\n"
y,x);
【答】结果为y=6,x=6。
(6)以下程序的运行结果是。
chara,b;
a='
b='
a=a-32;
b=b-32;
%c,%c,%d,%d\n"
a,b,a,b);
【答】A,B,65,66
(7)以下程序的运行结果是。
inti,j,x,y;
i=5;
j=7;
x=++i;
y=j++;
%d,%d,%d,%d\n"
i,j,x,y);
【答】执行x=++i后,i=6,x=6;
执行y=j++后,j=8,y=7;
所以输出为:
6,8,6,7。
inta=1;
charc='
floatf=;
①:
a+2!
=c-100);
②:
(a>
c)>
=(f>
4));
③:
!
a==!
f);
④:
(!
a&
1)!
=(!
c||1));
⑤:
a>
2)3:
0)<
((f!
=1)0:
1);
⑥:
(1,2,3)==(3,3,3));
【答】①:
1(a+2=3,c-100=-3,表达式结果=1(真))
1(a>
c的结果是0(假),f>
4的结果是0,表达式结果=1)
1(!
a的结果是0,!
f的结果是0,表达式结果=1)
1的结果是0,!
c||1的结果是1,表达式结果=1)
0(!
2的结果是0,(!
0的结果是0,f!
=1的结果是1,(f!
1的结果是0,表达式结果=0)
1((1,2,3)表达式的结果是3,(3,3,3)的结果是3
练习题3及参考答案
(1)以下说法正确的是。
A.输入项可以为一个实型常量,如scanf("
%f"
B.只有格式控制没有输入项也能进行正确输入,如scanf("
%d"
)
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("
%4.2f"
&
f)
D.当输入数据时,必须指明变量的地址,如scanf("
【答】D
(2)若a为整型变量,则以下语句。
a=-2L;
printf("
a);
A.赋值不合法B.输出值为-2
C.输出为不确定值D.输出值为2
(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是。
A.scanf("
%d%lx,%le"
x,&
y,&
z);
B.scanf("
%2d*%d%lf"
C.scanf("
%x%*d%o"
y);
D.scanf("
%x%o%6.2f"
【答】scanf()函数中没有精度控制。
(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是。
A.read(a,b,c);
%d%d%d"
a,b,c);
%D%D%D"
a,&
b,&
c);
【答】D
(5)若有定义和语句:
intn=10;
%\n"
其输出结果是。
A.输出10B.输出一空行C.没有输出D.编译不通过
(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是。
%6.2f%d"
b);
%f%n"
%f%3o"
%f%f"
(7)字母a的ASCII码为97,则下列语句的运行结果为。
chara='
a--;
%d,%c\n"
a+'
2'
-'
3'
);
A.b,cB.a--运算不合法,故有语法错
C.98,cD.格式描述和输出项不匹配,输出无定值
(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是。
scanf("
%d%d"
k1,&
k2);
%d,%d"
k3,&
k4);
A.1020
B.1020
C.10,20
D.1020
1020
1020
10,20
(9)有如下程序,输入数据12345678↙后,x的值是①,y的值是②。
intx;
floaty;
scanf("
%3d%f"
①A.12345B.123C.45
【答】①B②A
(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是。
intx,y,z;
x+y+z=%d\n"
x+y+z);
A.x+y+z=48B.x+y+z=35
C.x+y+z=38D.不确定值
【答】输入的数据与scanf()函数的格式不匹配。
(11)有如下程序,输入数据12345↙后,x的值是①,y的值是②。
①A.12B.123C.12345D.0
②A.B.C.D.
【答】①A②B
(12)有如下程序,输入数据后,程序的运行结果是。
inta;
floatb,c;
%2d%3f%4f"
a=%d,b=%f,c=%f\n"
A.a=98,b=765,c=4321B.a=10,b=432,c=8765
C.a=98,b=,c=D.a=98,b=,c=
(13)以下程序的运行结果是。
floata=;
|%6.0f|\n"
A.||B.||C.|3|D.|3.|
(14)以下程序的运行结果是。
|%06.0f|\n"
A.|000003|B.||C.||D.|3|
(15)以下程序的运行结果是。
|%-6.0f|\n"
A.|3|B.|000003|C.||D.||
【答】A
(16)以下程序的运行结果是。
main()
inti=010,j=10;
++i,j--);
A.11.10B.9,10C.010,9D.10,9
(17)以下程序的运行结果是。
intx=10,y=10;
x--,--y);
A.10,10B.9,9C.9,10D.10,9
(1)以下程序的运行结果是。
%f,%5.4f,%3.3f"
f,f,f);
【答】,,
(2)以下程序的运行结果是。
%f,%g"
f,f);
【答】,
(3)以下程序的运行结果是。
%f,%e"
【答】,+001
intx=0177;
%3d,%6d,%6o,%6x,%6u\n"
x,x,x,x,x);
【答】127,127,177,7f,127
%-3d,%-6d,%-6o,%-6x,%-6u\n"
【答】127,127,177,7f,127
+10;
c=%c\n"
c);
【答】c=K
(7)以下程序输入123456↙后,其运行结果是。
inta,b;
%2d%3d"
a=%d,b=%d\n"
a,b);
【答】a=12,b=345
(8)以下程序输入ABC↙后,其运行结果是。
charc;
%3c"
【答】c=A
(9)以下程序输入100↙后,其运行结果是。
%o"
n);
n=%d\n"
【答】n=64
(10)以下程序输入x=,y=50↙后,其运行结果是。
floatx,y;
x=%f,y=%f"
x=%7.2f,y=%7.2f\n"
x,y);
【答】x=,y=
(11)执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=,y=,
c1='
c2='
正确的数据输入形式是。
charc1,c2;
a=%db=%d"
x=%fy=%f"
c1=%cc2=%c"
c1,&
c2);
a=%d,b=%d,x=%g,y=%g,c1=%c,c2=%c\n"
a,b,x,y,c1,c2);
【答】a=3b=7x=y=71.82c1=Ac2=a↙
3.编程题
(1)编写一个程序,求出任一输入字符的ASCII码。
【解】程序如下:
/*文件名:
*/
VC++
输入字符:
"
%c"
字符%c的ASCII码为%d\n"
c,c);
(2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。
#definepi
输入一个字符:
输出结果:
%c,%c,%c\n"
c-1,c,c+1);
(3)编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数。
【解】直接使用printf()的格式符输出八进制数和十六进制数。
程序如下:
inti;
输入一个整数:
i);
%d(10)<
=>
%o(8)\n"
i,i);
%x(16)\n\n"
(4)编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积。
【解】圆锥体体积的计算公式为:
v=π×
r×
h/3
floatr,h,pi=,v;
圆锥半径,高度:
%f,%f"
r,&
h);
v=pi*r*r*h/;
圆锥体积=%g\n\n"
v);
练习题4及参考答案
(1)if后面的逻辑表达式之值。
A.只能是0或1B.只能是正整数或负整数
C.只能是整型或字符型数据D.可以是任何类型的数据
(2)为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的if
C.在其之前最近的未配对的ifD.同一行上的if
【答】C
(3)选择出合法的if语句(设intx,a,b,c;
)。
A.if(a=b)x++;
B.if(a=<
b)x++;
C.if(a<
D.if(a=>
【答】选项B、C、D中的比较运算符不正确,在选项A中,a=b返回b,若b为0或空字符,则为假,否则为真。
(4)以下不正确的if语句是。
A.if(x>
B.if(x=y)&
(x!
=0)x+=y;
C.if(x!
=y)scanf("
x);
elsescanf("
D.if(x<
y){x++;
y--;
【答】B。
应改为if(x=y&
x!
(5)若定义floatx;
inta,b;
,则正确的switch语句是。
A.switch(x)
{
case:
*\n"
**\n"
}
B.switch(x)
{
case3:
C.switch(a+b)
case1:
printf"
};
case1+2:
D.switch(a+b)
case2:
(6)执行下列程序,输入为1的运行结果是①,输入为3的运行结果是②。
{
intk;
k);
switch(k)
case1:
%d"
k++);
break;
case2:
case3:
case4:
default:
Full!
\n"
}
①A.1B.2C.2345D.1234
②A.3B.4C.34D.45
【答】①A②A
(7)执行下列程序,输入为1的运行结果是①,输入为3的运行结果是②。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题 参考答案