C语言练习题15及参考答案Word格式.docx
- 文档编号:16309476
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:46
- 大小:50.71KB
C语言练习题15及参考答案Word格式.docx
《C语言练习题15及参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《C语言练习题15及参考答案Word格式.docx(46页珍藏版)》请在冰豆网上搜索。
【答】将C源程序编译成目标代码
练习题2及参考答案
(1)以下字符串为标识符的是
A._MY
B.2_2222
C.short
D.LINE5
(2)下列符号可以作为变量名的是
A.+a
B.*p
C._DAY
D.nextday
(3)设c是字符变量,则以下表达式正确的是
A.c=666
B.c='
c'
C.c="
c"
D.c="
abcd"
(4)23+'
m'
+'
b'
的结果是
型数据。
A.char
B.double
C.int
D.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>
2?
6:
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%5
D.(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,11
B.5,6,11
C.5,6,12
D.6,6,12
【答】m=i+++j等价于m=(i++)+j。
本题答案为A。
(9)以下程序的运行结果是
voidmain()
doublef=;
intn;
n=(int)(f+10)%3;
%d\n"
n);
A.1
B.0
C.2
D.3
【答】f+10=,(int)(f+10)=13,13%3=1。
(10)以下程序的运行结果是
intn,i=2,j=4;
n=(++i==j--);
A.0
B.1
【答】++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>
(x>
z?
z):
(y>
y:
z)或(x>
y&
x>
z)?
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.输出10
B.输出一空行
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,c
B.a--运算不合法,故有语法错
C.98,c
D.格式描述和输出项不匹配,输出无定值
(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.12345
B.123
C.45
②A.
B.
C.
【答】①B
②A
(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是
intx,y,z;
x+y+z=%d\n"
x+y+z);
A.x+y+z=48
B.x+y+z=35
C.x+y+z=38
D.不确定值
【答】输入的数据与scanf()函数的格式不匹配。
(11)有如下程序,输入数据12345↙后,x的值是
①A.12
C.12345
D.0
D.
【答】①A
②B
(12)有如下程序,输入数据10↙后,程序的运行结果是
inta;
floatb,c;
%2d%3f%4f"
a=%d,b=%f,c=%f\n"
A.a=98,b=765,c=4321
B.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|
D.||
【答】A
(16)以下程序的运行结果是
main()
inti=010,j=10;
++i,j--);
A.11.10
B.9,10
C.010,9
D.10,9
(17)以下程序的运行结果是
intx=10,y=10;
x--,--y);
A.10,10
B.9,9
C.9,10
(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='
正确的数据输入形式是
inta,b;
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"
字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题 15 参考答案