程序的设计基础教程c语言版课后答案Word文档下载推荐.docx

上传人:b****4 文档编号:7513465 上传时间:2023-05-08 格式:DOCX 页数:98 大小:55.31KB
下载 相关 举报
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第1页
第1页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第2页
第2页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第3页
第3页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第4页
第4页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第5页
第5页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第6页
第6页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第7页
第7页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第8页
第8页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第9页
第9页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第10页
第10页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第11页
第11页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第12页
第12页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第13页
第13页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第14页
第14页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第15页
第15页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第16页
第16页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第17页
第17页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第18页
第18页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第19页
第19页 / 共98页
程序的设计基础教程c语言版课后答案Word文档下载推荐.docx_第20页
第20页 / 共98页
亲,该文档总共98页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序的设计基础教程c语言版课后答案Word文档下载推荐.docx

《程序的设计基础教程c语言版课后答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《程序的设计基础教程c语言版课后答案Word文档下载推荐.docx(98页珍藏版)》请在冰点文库上搜索。

程序的设计基础教程c语言版课后答案Word文档下载推荐.docx

字母,数字,下划线,且数字不能打头,亦不能为关键字。

A中,-sub不合法。

B中4d不合法。

D中void为关键字。

3、

【分析】

4、C

【分析】转义字符中,第一个\”输出“,第二\\输出\,第三个\b退格,把前一个\去掉了,第四个\’输出’,第五个\t跳格,第六个\”输出”,第七个\n输出换行。

5、C

【分析】本题将10进制17,分别按8、16进制输出。

8的进制21=2*8+1*1=17(10,16制11=1*16+1*1=17(10)

1.2.2填空题

1、主

【分析】一个C源程序中至少包括一个主函数,其他函数没有限制。

2、双引号。

【分析】两种写法都是允许的,使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找.使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。

用户编程时可根据自己文件所在的目录来选择某一种命令形式。

3、261,b1

【分析】将10进制的177,按8进制和16进制两种形式输出。

4、a=3b=7x=8.5y=71.82c1=Ac2=a

【分析】scanf函数中,格式说明符以外的原样输入。

5、printf函数中,格式说明符以外的原样输出。

%m.nf控制输出结果中共m位,小数

3

占n位。

1.2.3编程题

1.#include"

stdio.h"

voidmain()

{floatqianmi,yingli;

//定义变量

scanf("

qianmi=%f"

&

qianmi);

//输入数据

printf("

yingli=%f"

qianmi*1.60934);

//计算并输出数据

}

2.#include"

{

charx;

请输出一个小写小母\n"

);

%c"

x);

输出字母的大写型式为:

x+32);

3、#include<

stdio.h>

floatc,f;

请输入一个摄氏温度:

"

);

%f"

c);

f=32*c+9.0/5*c;

4

华氏温度为:

%5.2f\n"

f);

4.

#include<

inta=3,b=4,c=5;

floatx=1.2,y=2.4,z=-3.6;

doubleu=51274,n=128765;

a=%-3d,b=%-3d,c=%d\n"

a,b,c);

x=%7.6f,y=%7.6f,z=%7.6f\n"

x,y,z);

x+y=%3.2f,y+z=%3.2f,x+z=%3.2f\n"

x+y,y+z,x+z);

u=%.0lfn=%.0lf\n"

u,n);

c1='

a'

or97\nc2='

b'

or98\n"

2.2习题解答

2.2.1选择题

1、C.

【分析】C语言的运算符按运算对象的个数可以分为单目、双目和三目运算符和多目运算符。

2、C.

【分析】%运算符要求参加运算的数必须是整数

3、A.

【分析】B.赋值运算的作用是用将常量赋给变量,而不能给表达形式所以a*3=2不对。

C.%运算符要求参加运算的数必须是整数,而x是float类型所以x%(-3)不对。

D.y=float(i),由于i是int类型,向float类型转换是自由转的,不需要强制转。

4、A.

【分析】因为k=7,x=12;

x%=k,则x=12%7,此时x=5,而k%=5,即k=7%5此时K=2,所以(x%=k)-(k%=5)就等价于5-2=3。

同理,x%=(k%=5)的值为0;

x%=(k-k%5)的值为2;

x%=k-k%5的值也为2

5、A.

5

【分析】首先通过n*100+0.5将原数扩大100,并通过+0.5判断是否进位。

之后/100进行舍去小数点后第三位的运算。

6、B.

【分析】分析根据优先级别,先计算小括号里,y与3相等成立所以表达式的值为1,再将1赋给x,而x的值就是表达式的值为1.

7、A.

【分析】略

8、D.

【分析】“a大于等于10”、“a小于等于0”两者分别为关系运算,一个“或”字又表明为逻辑或运算,所以D对。

9、B.

【分析】在逻辑表达式求解中,并不是所有的逻辑运算符都被执行,对&

&

运算符来说,只有前一个表达式不等于0时,才继续进行右边的运算。

由于a>

b为0,所以左边的表达式为0,所以右边的++n将不被计算,所以n的值不变仍为2。

10、B

【分析】241的二进制形式为11110001,15的二进制形式为00011111,进行按位&

运算后为00010001;

a的二进制形式为01100001,z的二进制形式为01111010,进行按位|运算后为011111011。

00010001与011111011都为非0元素,所以再进行&

时结果一定为1。

11、A

【分析】b>

>

2表示向右移动两位,相当于除以两个2结果为8/2=4;

同理,b>

1相当于除一个2,结果为6,4/6为0。

12、B

【分析】3的二进制数为00000011。

10的二进制为00001010,a<

<

2的结果为00001100,b==1的值为0,所以00001100与0按位或之后结果为00001100。

即10进进制的12。

13、D.

【分析】就运算符的优先级别而言,单目>

双目,算术运算>

关系运算>

逻辑运算。

14、B

【分析】19的二制数为00010011,23的二进制数为00010100,两者进行按位与后结果为00010000十进制16,即为16进制的13。

15、C

【分析】0x39的二进制形式为00111001,0xf的二进制形式为00001111,两者进行异或运算,异或结算的规则,参加运算的两个二进制位同号,则结果为假,异号则为真。

结果为:

00110110即为16进制的36。

16、A

6

【分析】进行按位或运算,要a的低8位为1,则要求b的低8位全为1,高8位要求不变,则要求高8位全为0,即b应该为:

0000000011111111,即为8进制的0377。

17、A

【分析】由题得1>

2不成立,所以x>

y?

++x:

++y表达式的值为++y,则此时Y的值为3,而++x没有被执行,所以x的仍值为1,而Z的值与表达式的值相同所以选A。

18、C

【分析】赋值运算符的作和是将一个表达式或一个变量,常量赋给另一个变量,赋值号的左边只能是变量,不能是常量,所以A、B、D不对。

19、B

【分析】逗号运算符是级别最纸的运算符,逗号表达式也是值是所有表达式中最右边的值。

即a+b的值,由题从左向右算起,b++后b为6,则a+b为8.

20、D

【分析】在不同种数据类型进行计算时的转换规则是:

数据类型低的全部转换成运算过程中级别最高的。

在int、long、unsigned和char四个类型中,long的类型级别最高,所以结果的类型为long.

2.2.2填空题

1.-17.5

【分析】“/”要求两操作数如果一个为实数结果都为实数,如果都为整数结果也为整数,所以a/4.0=2.5,a/4=2.所以原式=2.5-2*10=-17.5。

2.5,32

【分析】x++表示将x的值拿来用,然后再++;

而y*=x++等价于y=y*x,即y=8*4=32,此计算结束之后x的值才增加1,变为5。

3.-40

【分析】赋值运算符的结合方向是从右向左的,所以先计算a*a=25,所以a+=a-=a*a等价于a+=(a-=25),而此时a仍为5.接下来计算a-=25得a=2-25=-20;

则a+=(a-=25)等价于a+=-20,所以a=a-20=-20-20=-40。

4.16

【分析】x+=--x%--y等价于x+=(--x)%(--y),--放在变量的前面时,要先对变量进行变化,然后再用,所以原式即为x+=14%3,而14%3=2,即x+=2,而此时x=14,所以x=x+2=16。

5.x>

1&

x<

10||x<

0&

x!

=-1

6.0

7

【分析】根据运算符的优先级别,算术运算>

逻辑运算可知,要先算a+b=7,接下来计算7>

c即7>

5成立为1,然后计算b==c,而4==5不成立,所以值为0,即最终表达式等价于1&

0,所以结果为0.

7.0

【分析】略,同第6题。

8.-17

【分析】条件运算符优先级别高于赋值运算符,所以先算(a<

b)?

a:

b的值,由于13<

25成立,所以(a<

b的值为a的值,并将a的值赋给y,此时,原式等价于(13<

-17)?

y:

c,而13<

-17不成立,所以表达式的值为C的值,即为-17。

9.18,3,3

【分析】对逗号表达式的值,即为从左向右最后一个表达式的值,本题中表达式的值即为6*a的值即18。

10.3.5

【分析】算术运算符中同一级别的运算符按从左向右的顺序进行,所以先算a%43=8,再计算8*(int)(x+y)=8*9=72,再计算72%3=0,再计算0/5=0.最后计算与X相加,所以最终结果为3.5。

2.2.3编程题

1.编写一个程序,要求输入圆的半径r,计算并输出该圆的周长和面积。

#definePI3.14

#include"

floatr,S=0,L=0;

inputr:

\n"

&

r);

S=PI*r*r;

//计算圆面积

L=2*PI*r;

//计算圆周长

S=%f,L=%f\n"

S,L);

2.假设美元与人民币的汇率是1美元兑换6.4742元人民币,欧元与人民币的汇率是1欧元兑换9.2338元人民币,编程实现输入人民币的钱数,输出能兑换的美元及欧元金额。

#include"

floatrenminbi,meiyuan,ouyuan;

8

inputrenminbi:

renminbi);

meiyuan=renminbi*6.4742;

//计算美元金额

ouyuan=renminbi*9.2338;

//计算欧元金额

meiyuan=%fouyuan=%f\n"

meiyuan,ouyuan);

3.编写一个程序,从键盘上输入3个字符后,按各字符的ASCII码从小到大顺序输出这些字符。

//这道题关键是把输入3个字符后的回车过滤掉,不然回车就会成为下一组的第一个字符。

有两种方法:

//第一种:

#include<

intmain()

chara,b,c,tmp;

while((a=getchar())!

=EOF)

b=getchar();

c=getchar();

getchar();

//在录入c后用getchar()滤掉回车

if(a>

b)

{tmp=a;

a=b;

b=tmp;

}

c)

a=c;

c=tmp;

if(b>

{tmp=b;

b=c;

%c%c%c\n"

return0;

//第二种:

{chara,b,c,tmp;

9

while(scanf("

%c%c%c%*c"

a,&

b,&

c)!

=EOF)//用"

%*c"

(空字符,不存储字符的字符)滤掉回车

{if(a>

b)tmp=a,a=b,b=tmp;

//逗号表达式,简洁

c)tmp=a,a=c,c=tmp;

c)tmp=b,b=c,c=tmp;

输入数据有多组,每组占一行,有三个字符组成,之间无空格。

例如输入qwe

asd

zxc

输出eqw

ads

cxz

4.编程实现输入一个无符号整数(unsigned类型),分别输出它的低四位和高四位。

(待查)

main()

unsignedu=0xffff;

//举例

unsignedcharl,h;

//scanf("

%u"

u);

l=u&

0xff;

//得到低8位.

h=u>

8;

//得到高8位

u=%u,l=%u,h=%u"

u,l,h);

5.根据当前银行的利率表,编程实现从键盘输入存款金额money,存期year和年利率rate,计算银行存款的本息sum(保留1位小数)。

intyear;

floatmoney,rate,sum;

请输出金额,利率,存款时间\n"

%f,%f,%d"

money,&

rate,&

year);

sum=money*year*rate;

存款的本息sum=%.1f\n"

sum);

10

3.2习题解答

3.2.1选择题

1.D

【分析】在此要注意,else总是于之前面最近的且没有用过的if进行配对,所以在本题中,else与第二个if配对,且整体做为第一个if语句的语句体。

又因,10>

20不成立,所以第一个if根本不被执行,所以m的值没有任何变化。

2.A

【分析】else总是于之前面最近的且没有用过的if进行配对,所以在本题中,

if(a>

b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

相当于t=s+t;

(a>

b)t=5(a=b);

t=2*s(a<

b);

3.C

【分析】while(E)的含义是当E为真。

为真即为不等于0,而A、B、D都是表示非零。

4.D

【分析】i=0,++i后,i为1,i%2=1,所以执行j+=i;

即j=1,i=1小于5所以还执行++i,此时i为2,则i%2等于0,跳出本次判断。

同理当i等于4,6时同样跳出判断,而当i为3,5时,都要执行j+=i。

5.A

【分析】while

(1)进行判断时,条件永远成立,所以执行循环体。

输出一个“*”后,i++,i变为1,又1<

3成立,所以结束循环。

6.D

【分析】当i=1时,执行s+=i后s=1;

执行循环体中i++后,i为2,而后还要执行一次for结构中的i++,则i为3.3小于6成立,则再执行s+=i;

i++;

则s为4,

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

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2