C语言练习题15及参考答案.docx
- 文档编号:30298349
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:55
- 大小:41.31KB
C语言练习题15及参考答案.docx
《C语言练习题15及参考答案.docx》由会员分享,可在线阅读,更多相关《C语言练习题15及参考答案.docx(55页珍藏版)》请在冰豆网上搜索。
C语言练习题15及参考答案
练习题1及参考答案
1.单项选择题
(1)以下并非C语言的特点的是 。
A. C语言简洁和紧凑
B.能够编制出功能复杂的程序
C. C语言可以直接对硬件进行操作
D. C语言移植性好
【答】B
(2)一个C程序的执行是从 。
A. main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D. main()函数开始,直到最后一个函数结束
【答】A
(3)在C程序中,main()的位置 。
A.必须作为第一个函数
B.必须作为最后一个函数
C.可以任意
D.必须放在它所调用的函数之后
【答】C
(4)一个C程序是由 。
A.一个主程序和若干子程序组成
B.一个或多个函数组成
C.若干过程组成
D.若干子程序组成
【答】B
(5)下列说法正确的是 。
A.在执行C程序时不是从main()函数开始的
B. C程序书写格式限制严格,一行内必须写一个语句
C. C程序书写格式比较自由,一个语句可以分行写在多行上
D. C程序书写格式严格要求一行内必须写一个语句,并要求行号
【答】C
2.填空题
(1)一个C源程序至少有 ① 个main()函数和 ② 个其他函数。
【答】①一 ②若干
(2)任何C语句必须以 结束。
【答】分号
(3)C语言源程序的基本单位是 。
【答】函数
(4)C编译程序的功能是 。
【答】将C源程序编译成目标代码
练习题2及参考答案
1.单项选择题
(1)以下字符串为标识符的是 。
A._MY B.2_2222 C.short D.LINE5
【答】A
(2)下列符号可以作为变量名的是 。
A.+a B.*p C._DAY D.nextday
【答】C
(3)设c是字符变量,则以下表达式正确的是 。
A.c=666 B.c='c' C.c="c" D.c="abcd"
【答】B
(4)23+'m'+3.6-123.45/'b'的结果是 型数据。
A.char B.double C.int D.longint
【答】3.6和123.45均为double型,运算结果也是double型。
本题答案为B。
(5)若变量已正确赋值,以下符合C语言语法的表达式是 。
A.a=a+7; B.a=7+b+c,a++
C.int(12.3%4) D.a=a+7=c+b
【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。
本题答案为B。
(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)(4.8/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)(4.8/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)以下程序的运行结果是 。
#include
voidmain()
{
doublef=3.14159;
intn;
n=(int)(f+10)%3;
printf("%d\n",n);
}
A.1 B.0 C.2 D.3
【答】f+10=13.14159,(int)(f+10)=13,13%3=1。
本题答案为A。
(10)以下程序的运行结果是 。
#include
voidmain()
{
intn,i=2,j=4;
n=(++i==j--);
printf("%d\n",n);
}
A.0 B.1 C.2 D.3
【答】++i返回3,j--返回4,两者不等,故n=0。
本题答案为A。
2.填空题
(1)表达式语句与表达式的不同是 。
【答】语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。
(2)在C语言中可以利用 将一个表达式的值转换成指定的类型。
【答】强制类型转换
(3)写出完成下列功能的表达式:
·如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。
①
·如果d是数字,则将d转换成相应的整数,否则d的值不改变。
②
·返回两个整数x、y中较大者。
③
·返回三个整数x、y和z中最大者。
④
【答】①c=(c>='A'&&c<='Z')?
c-'A'+'a':
c
②d=(d>='0'&&d<='9')?
d-'0':
d
③(x>y)?
x:
y
④(x>y)?
(x>z?
x:
z):
(y>z?
y:
z)或(x>y&&x>z)?
x:
(y>z?
y:
z)
(4)以下程序的运行结果是 。
#include
#include
main()
{
chars[]="ab\n\\\'\r\b";
printf("%d,%d\n",sizeof(s),strlen(s));
}
【答】字符串s由字符'a'、'b'、'\n'、'\\'、'\''、'\r'、'\b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'\0'。
所以,s的长度为7,在内存中占用8个字节。
输出为:
8,7。
(5)以下程序的运行结果是 。
#include
main()
{
inta=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d\n",y,x);
}
【答】结果为y=6,x=6。
(6)以下程序的运行结果是 。
#include
main()
{
chara,b;
a='a';b='b';
a=a-32;b=b-32;
printf("%c,%c,%d,%d\n",a,b,a,b);
}
【答】A,B,65,66
(7)以下程序的运行结果是 。
#include
main()
{
inti,j,x,y;
i=5;j=7;
x=++i;y=j++;
printf("%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。
(8)以下程序的运行结果是 。
#include
main()
{
inta=1;
charc='a';
floatf=2.0;
printf("①:
%d\n",a+2!
=c-100);
printf("②:
%d\n",(a>c)>=(f>4));
printf("③:
%d\n",!
a==!
f);
printf("④:
%d\n",(!
a&&1)!
=(!
c||1));
printf("⑤:
%d\n",(!
a>2)?
3:
0)<((f!
=1)?
0:
1);
printf("⑥:
%d\n",(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(!
a&&1的结果是0,!
c||1的结果是1,表达式结果=1)
⑤:
0(!
a>2的结果是0,(!
a>2)?
3:
0的结果是0,f!
=1的结果是1,(f!
=1)?
0:
1的结果是0,表达式结果=0)
⑥:
1((1,2,3)表达式的结果是3,(3,3,3)的结果是3
练习题3及参考答案
1.单项选择题
(1)以下说法正确的是 。
A.输入项可以为一个实型常量,如scanf("%f",3.5)
B.只有格式控制没有输入项也能进行正确输入,如scanf("%d")
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)
D.当输入数据时,必须指明变量的地址,如scanf("%f",&f)
【答】D
(2)若a为整型变量,则以下语句 。
a=-2L;
printf("%d\n",a);
A.赋值不合法 B.输出值为-2
C.输出为不确定值 D.输出值为2
【答】B
(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是 。
A.scanf("%d%lx,%le",&x,&y,&z); B.scanf("%2d*%d%lf",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y); D.scanf("%x%o%6.2f",&x,&y,&z);
【答】scanf()函数中没有精度控制。
本题答案为D。
(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是 。
A.read(a,b,c); B.scanf("%d%d%d",a,b,c);
C.scanf("%D%D%D",a,b,c); D.scanf("%d%d%d",&a,&b,&c);
【答】D
(5)若有定义和语句:
intn=10;
printf("%\n",n);
其输出结果是 。
A.输出10 B.输出一空行 C.没有输出 D.编译不通过
【答】D
(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是 。
A.scanf("%6.2f%d",&a,&b); B.scanf("%f%n",&a,&b);
C.scanf("%f%3o",&a,&b); D.scanf("%f%f",&a,&b);
【答】C
(7)字母a的ASCII码为97,则下列语句的运行结果为 。
chara='a';
a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A.b,c B.a--运算不合法,故有语法错
C.98,c D.格式描述和输出项不匹配,输出无定值
【答】C
(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是 。
scanf("%d%d",&k1,&k2);
scanf("%d,%d",&k3,&k4);
A.1020
B.1020
C.10,20
D.1020
1020
1020
10,20
10,20
【答】D
(9)有如下程序,输入数据12345678↙后,x的值是 ① ,y的值是 ② 。
#include
main()
{
intx;
floaty;
scanf("%3d%f",&x,&y);
}
①A.12345 B.123 C.45 D.345
②A.45.000000 B.45678.000000 C.678.000000 D.123.000
【答】①B ②A
(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是 。
#include
main()
{
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("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()函数的格式不匹配。
本题答案为D。
(11)有如下程序,输入数据12345↙后,x的值是 ① ,y的值是 ② 。
#include
main()
{
intx;
floaty;
scanf("%3d%f",&x,&y);
}
①A.12 B.123 C.12345 D.0
②A.12.000000 B.345.000000 C.12345.000000 D.0.000000
【答】①A ②B
(12)有如下程序,输入数据9876543210↙后,程序的运行结果是 。
#include
main()
{
inta;
floatb,c;
scanf("%2d%3f%4f",&a,&b,&c);
printf("a=%d,b=%f,c=%f\n",a,b,c);
}
A.a=98,b=765,c=4321 B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000 D.a=98,b=765.0,c=4321.0
【答】C
(13)以下程序的运行结果是 。
#include
main()
{
floata=3.1415;
printf("|%6.0f|\n",a);
}
A.|3.1415| B.|3.0| C.|3| D.|3.|
【答】C
(14)以下程序的运行结果是 。
#include
main()
{
floata=3.1415;
printf("|%06.0f|\n",a);
}
A.|000003| B.|3.1415| C.|00003.0| D.|3|
【答】A
(15)以下程序的运行结果是 。
#include
main()
{
floata=3.1415;
printf("|%-6.0f|\n",a);
}
A.|3| B.|000003| C.|3.1415| D.|3.0|
【答】A
(16)以下程序的运行结果是 。
#include
main()
{
inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
A.11.10 B.9,10 C.010,9 D.10,9
【答】B
(17)以下程序的运行结果是 。
#include
main()
{
intx=10,y=10;
printf("%d,%d\n",x--,--y);
}
A.10,10 B.9,9 C.9,10 D.10,9
【答】D
2.填空题
(1)以下程序的运行结果是 。
#include
main()
{
floatf=3.1415927;
printf("%f,%5.4f,%3.3f",f,f,f);
}
【答】3.141593,3.1416,3.142
(2)以下程序的运行结果是 。
#include
main()
{
floatf=3.5;
printf("%f,%g",f,f);
}
【答】3.500000,3.5
(3)以下程序的运行结果是 。
#include
main()
{
floatf=31.41592;
printf("%f,%e",f,f);
}
【答】31.415920,3.141592e+001
(4)以下程序的运行结果是 。
#include
main()
{
intx=0177;
printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x);
}
【答】127,127,177,7f,127
(5)以下程序的运行结果是 。
#include
main()
{
intx=0177;
printf("%-3d,%-6d,%-6o,%-6x,%-6u\n",x,x,x,x,x);
}
【答】127,127,177,7f,127
(6)以下程序的运行结果是 。
#include
main()
{
charc='A'+10;
printf("c=%c\n",c);
}
【答】c=K
(7)以下程序输入123456↙后,其运行结果是 。
#include
main()
{
inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
【答】a=12,b=345
(8)以下程序输入ABC↙后,其运行结果是 。
#include
main()
{
charc;
scanf("%3c",&c);
printf("c=%c\n",c);
}
【答】c=A
(9)以下程序输入100↙后,其运行结果是 。
#include
main()
{
intn;
scanf("%o",&n);
printf("n=%d\n",n);
}
【答】n=64
(10)以下程序输入x=1.23,y=50↙后,其运行结果是 。
#include
main()
{
floatx,y;
scanf("x=%f,y=%f",&x,&y);
printf("x=%7.2f,y=%7.2f\n",x,y);
}
【答】x=1.23
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题 15 参考答案