C语言练习题及参考答案文档格式.docx

上传人:b****6 文档编号:20639899 上传时间:2023-01-24 格式:DOCX 页数:45 大小:50.78KB
下载 相关 举报
C语言练习题及参考答案文档格式.docx_第1页
第1页 / 共45页
C语言练习题及参考答案文档格式.docx_第2页
第2页 / 共45页
C语言练习题及参考答案文档格式.docx_第3页
第3页 / 共45页
C语言练习题及参考答案文档格式.docx_第4页
第4页 / 共45页
C语言练习题及参考答案文档格式.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

C语言练习题及参考答案文档格式.docx

《C语言练习题及参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言练习题及参考答案文档格式.docx(45页珍藏版)》请在冰豆网上搜索。

C语言练习题及参考答案文档格式.docx

+'

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=π×

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的运行结果是②。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1