ImageVerifierCode 换一换
格式:DOC , 页数:73 ,大小:527KB ,
资源ID:5909848      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5909848.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c语言程序设计第五版习题答案.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c语言程序设计第五版习题答案.doc

1、习题解析与答案 第1章C语言概述 一. 简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完

2、整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d

3、a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:******

4、 ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①

5、要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C

6、programs! \n"); printf("************************\n"); } 第2章 数据类型及其运算 一.简答题 1.C语言中的数据类型主要有哪几类? 【解答】 短整型(short int ) 整型 整 型 (int)

7、 长整型(long int ) 基本类型 字符型 (char) 单精度(float) 实型(浮点型) 双精度(double) 枚举类型(enum)

8、 数组类型 构造类型 结构体类型 (struct) 共用体类型(union) 指针类型 空类型(void) 2. 字符常量与字符串常量有什么区别? 【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量存储时占n+1个字节。 3. C语言中的常量包括哪几类?各自是如何构成的? 【解答】C语言中的常量是

9、一些其值预先定的量,并且在程序执行过程中其值不再发生变化。常量的分类遵循基本数据类型分类原则,C语言编译系统自动将其存放在于类型相应的内存单元中。其类别包含整形常量、浮点常量、字符常量、字符串常量和枚举常量。整形常量又分为十进制整形常量、八进制整形常量、十六进制整形常量。浮点常量分成十进制形式和指数形式。C语言中的,字符常量是用单括号括起来的一个字符或是字符序列,而字符串常量是用一对双括号括起来的零个或者多个字符组成的序列。 4. 简述指针、变量的指针、变量的值、指针变量与指针变量的值的含义是什么? 【解答】C语言中将地址又称为“指针”。一个变量所分配的内存空间首字节地址,称为该变量的指针

10、地址),变量的值就被放入所分配的地址单元中。地址一旦被分配,就不会再改变,所以,指针是一个常量。既然是常量就可以把它赋给一个变量。用来存放指针的变量,被称为指针变量。一个指针变量的值是变量的地址,一个指针变量可以被赋予不同的指针值。 5. 下面哪些是不合法的常量?说明不合法的理由。 123,3.1415926,0892,’M’,’\n’,0xabc,0.618E-6,”Morning”,3.8e-3.14 【解答】非法常量有: 0892——含有非八进制数字8和9 3.8e-3.14——非法指数形式浮点常量:规定e后面的指数必须为整数。 6.下面对变量定义的语句哪些不正确?为什么?

11、请改正。 (1) char c1,int a2; (2) INT a,b; FLOAT x,y;(3) a,b:char; (4) char if; (5) int a,b (6) Int a:b:c; (7) int a,x; float x,y; 【解答】 (1) char c1,int a2; 错误。定义不同类型的变量时,应用分号彼此分开。 改正为:char c1; int a2; (2) INT a,b; FLOAT x,y; 错误。C语言中表示类型名的关键字必须小写。 改正为:int a,b; float x,y; (3)

12、a,b:char; 错误。C语言中变量定义格式为:类型名 变量名; 改正为: char a,b; (4) char if; 错误。变量名不能与C语言的关键字重名。 改正为:char f1; (5) int a,b 错误。变量定义以语句形式出现,应以分号结尾。 改正为:int a,b; (6) Int a:b:c; 错误。类型名不能有大写字母,相同类型名之间用逗号分隔。 改正为:int a,b,c; (7) int a,x; float x,y; 错误。在同一程序位置上,同一变量名不能重复定义充当两个不同的变量。 改正为:int a,x; float

13、x1,y; 7. 下述字符串常量的长度是多少?在内存中存储时各自占用的单元数又是多少? (1) “Hello!” (2) “ABC\n\\TH\064\?” (3) “\xAB*\765+123=?” 【解答】 (1)“Hello!” 字符串长度为6,占用内存字节数为7。 (2)“ABC\n\\TH\064\?” 字符串长度为9,占用内存字节数为10。因为其中\n \\ \064\?各自只占一个字符的位置。 (3) “\xAB*\765+123=?” 该字符串不是合法的,因为\765表示的值太大,超出合法的ASCII字符集的范围。 二.运行程序写结果 1.以下程序

14、的执行结果是____。 main() { int i,j; i=15; printf(“%d,%d”, i++,i--); } 【解答】14,15 2.以下程序的执行结果是 。 main() { int a=20,b=10,c,*p1,*p2; p1=&a; p2=&b; c=(-*p1)/(*p2)+6; printf("a=%d,b=%d\n",a,b); printf("*p1=%d,*p2=%d\n",*p1,*p2); printf("c=%d\n",c); } 【分析与提示】

15、 p1 a a 20 b 10 P2 b` 【解答】a=20,b=10 *p1=20,*p2=10 c=4 3.以下程序的执行结果是 。 #include main() { char a=’G’,b=’o’,c=’o’,d=’d’; a=a+32; b=b-6; c=c+3; d=d+8; printf("%c%c%c%c\n",a,b,c,d);

16、 } 【分析与提示】从ASCII代码表可以看出,字符“G”、“o”、“o”、“d”的ASCII代码值为71、111、101,因此,’G’+32、’o’-6、’o’+3、’d’+8的值分别是103、105、114、108,它们所对应的字符分别是“g”、“i”、“r”、“l”。 常用结论: (1)在C语言中,字符数据可以按其ASCII代码值参加整数运算。由于英文字母在ASCII代码表中是按顺序排列的,所以在计算’o’+3代表的字母时,可从字符’o’其顺序向后取3个字母,该字母是“r”。 (2)从ASCII代码表可以看出“小写字母”-“对应大写字母”的结果是32,因此可推算出如下等式:大写

17、字母的ASCII值+32=对应小写字母的ASCII值;小写字母的ASCII值-32=对应大写字母的ASCII值。 【解答】girl 4.以下程序的执行结果是 。 #include main() { int x; x=-3+4*5-6; printf("x1=%d\n",x); x=3+4%5-6; printf("x2=%d\n",x); x=-3*4%-6; printf("x3=%d\n",x); } 【分析与提示】x1=11(4*5是20,-3+20是17,17-6等于11) x2=1(4%5等于4,3+4

18、等于7,7-6等于1) x3=0(-3*4等于-12,-12%-6等于0) 【解答】x1=11 x2=1 x3=0 5.以下程序的执行结果是 。 #include main() { printf("%d\n",NULL); printf("%d,%c\n",49,49); printf("%d,%c,%o\n",48+10,48+10,48+10); } 【分析与提示】 0(NULL的ASCII码值是0) 49,1(数字1的ASCII码值是49) 58,:,72(48+10等于58,正好是“

19、的ASCII码值,八进制表示是72) 【解答】0 49,1 58,:,72 三、改错题 1. 请修改下列程序,使其能够通过编译。 #include Void Main() { int a=6;b=8; int c; c=a*b; printf(‘%d’,c); } 【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该用逗号;(3)打印语句的格式应该用双引号括起来。 正确的程序如下: #include void main() { int a=6,b=8; int c

20、 c=a*b; printf("%d",c); } 2. 请修改下列程序,使其能够正确运行。 #include void main(); { float f=7.12; char c=”c”; printf(“%d\n”,int(f%3)); printf(“%c”,c); } 【答案】错误的地方有3处:(1)第2行main();不应该有分号;(2)定义char c=”c”; 时,字符常量应该用单引号;(3)打印语句printf(“%d\n”,int(f%3));的格式有错,应该在f前的int用括号括起来,因为实型数据不能执行取余运算。

21、正确的程序如下: #include void main() { float f=7.12; char c='c'; printf("%d\n",((int)f %3)); printf("%c",c); } 第3章 顺序结构程序设计 一. 简答题 1.程序有哪三种基本结构? 【解答】程序的三种基本结构为:顺序结构、选择结构和循环结构。 2.C语言的语句有哪几类?表达式语句与表达式有什么不同? 【解答】C语句可分为以下五类:表达式语句、函数调用语句、控制语句、复合语句和空语句。其中表达式语句与表达式的区别在于表达式语句是表达式加上“;”组

22、成。 二、填空题 1.符号’&’ 是_______运算符,&a是指_______。 2.C语言中的空语句就是_______。 3.Scanf函数中的“格式字符”后面应该是_______,而不应该是______。 4.若想输出字符%,则应该在“格式字符”的字符串中用_____表示。 5.int x=7;执行x+=x- =x+x;后x的值是_______。 6.int a=10,b=20;a+=b;b=a-b;a- =b; 的功能是_______。 答案:1.地址、变量a的内存地址。 2.一个分号。 3.变量地址,变量名。 4. 连续2个%号。

23、 5. -14 6.交换 变量a,b的值,打印出a=20,b=10。 三.运行程序写结果 1.以下程序的执行结果是 。 #include main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); } 【解答】0 2.以下程序的执行结果是 。 main() { double d;float f;long l;int i; i=f=l=d=20/3; printf("%d %ld %f %f\n",i,l,f,d); }

24、解答】6 6 6.000000 6.000000 3.以下程序的执行结果是 。 main() { int k=17; printf("%d,%o,%x\n",k,k,k); } 【解答】17,21,11 4.以下程序的执行结果是 。 #include main() { char a,b,c,d; a='A',b='B',c='C',d='D'; printf("%1c\n",a); printf("%2c\n",b); printf("%3c\n",c); printf("%4c\n",d); } 【分

25、析与提示】可以用%c格式输出的,也可以用%d格式输出,所以与%md近似,m指出了要输出数据的宽度。若数据位数小于m,则左端补空格,若数据位数大于m,则按实际位数输出。 【解答】A B C D 5.以下程序的执行结果是 。 #include main() { char c1,c2; scanf("%c%c",&c1,&c2); printf("c1=%c,c2=%c,c3=%d,c4=%d",c1++,--c2,c1,c2); } 【解答】运行输入:AB<回车> 运行结果为:c

26、1=A,c2=A,c3=65,c4=66 6.以下程序的执行结果是 。 #include main() { char c1,c2; scanf("%c,%c",&c1,&c2); ++c1; --c2; printf("c1=%c,c2=%c\n",c1,c2); } 【分析与提示】例如当输入B,C<回车>,B,C的ASCII码值为66,67,执行++c1; --c2;后,c1为66+1变成67即C,c2为67-1变成66即B。 【解答】运行输入:B,C<回车>,运行结果为:c1=C,c2=B 7.以下程序的执行结果是 。

27、 main() { char ch='a';int a=98; unsigned b=1000;long c=123456789;float x=3.14; double y=1.2345678; printf("(1)a=%d,a=%c,ch=%d,ch=%c\n",a,a,ch,ch); printf("(2)b=%u\n",b); printf("(3)c=%ld\n",c); printf("(4)x=%f,y=%f\n",x,y); printf("(5)x=%e,y=%e\n",x,y); printf("(6)y=%-10.2f\n",y); } 【解答

28、1)a=98,a=b,ch=97,ch=a (2)b=1000 (3)c=123456789 (4)x=3.140000, y=1.234568 (5)x=3.14000e+00,y=1.23457e+00 (6)y=1.23 8.以下程序的执行结果是 。 #include main() { int a,b; float x; scanf("%d,%d",&a,&b); x=a/b; printf("\nx=%f\n",x); } 【解答】运行输入:2,2<回车>,运行结果为:1.000000 9.当输入12345,a时,给出

29、程序的运行结果,执行结果是 。 #include main() { int a;char c; scanf("%3d,%c",&a,&c); printf("\n%d,%d\n",a,c); } 【分析与提示】%md,m指出了要输出数据的宽度。若数据位数小于m,则左端补空格,若数据位数大于m,则按实际位数输出。a的ASCII码值是97。 【解答】12345,97 10.分析下面程序,在键盘上输入数据 才能使得变量a=10,b=20,c1=’A’,c2=’a’,x=1.5,y=-3.75,z=67.8。 程序如下: #includ

30、e main() { int a,b; float x,y,z; char c1,c2; scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z); printf("a=%d,b=%d,c1=%c,c2=%c,x=%f,y=%f,z=%f",a,b,c1,c2,x,y,z); } 【分析与提示】按%5 d格式输入a与b的值时,要先键入三个空格,然后再键入10与20。%*f是用来禁止赋值的。在输入时,对应%*f位置可以随意输入一个数(我们输入1.5,该数不会赋值给任何变量的)。 【解答】运行输入:└┘└┘└┘1

31、0└┘└┘└┘20Aa1.5└┘-3.75└┘1.5,67.8 <回车> 11.一个程序中,使用了多个scanf函数输入数据,用a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’ 输入到每个变量,应该如何输入数据? main() { int a,b; float x,y; char c1,c2; scanf("a=%d,b=%d",&a,&b); scanf(" x= %f,y=%e",&x,&y); scanf(" c1= %cc2=%c",&c1,&c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%

32、c\n",a,b, x,y,c1,c2); } 【分析与提示】在使用多个scanf函数输入数据时,第一个输入行末尾输入的回车被第二个scanf函数吸收,因此在第二、三个scanf函数的双引号后放置一个空格以抵消上行输入的回车键。若没有一个空格,则按上面输入的数据会出错。 【解答】运行输入:a=3, b=4<回车> X=8, y=71.82<回车> C1=AC2=a<回车> 运行结果:a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a 四.编程题 1.由键盘输入1个字母,输出其ASCII码值。 【分析与提示】将一个字符常数赋给一个字符变量,

33、并不是把该字符本身放到内存单元中去,而是将该字符的ASCII代码放到内存单元中,因此,字符型数据也可以像整型数据那样使用,可以用来表示一些特定范围内的整数。所以int型与char型变量的值可以互换,分别用%c和%d不同格式输出就行了。 但是注意这种转换是有条件的。因为,char变量在内存占一个字节,而int整型变量占2个字节。当int型高位字节是0时,char与 int可以互换;若不是0,则不可以互换。例如,用%c格式输出时,取低位字节,高位字节被舍弃。 参考代码: #include "stdio.h" main() { char ch; ch=getchar(); print

34、f("%c,%d",ch,ch); } 【解答】运行输入:B <回车> 运行结果:B,66 2.从键盘上输入一个大写字母,把它转换成小写字母,然后显示出来。 【分析与提示】大写字母转换小写时ASCII码值+32,相反的,小写字母转换成大写字母时ASCII码值-32。 参考代码: #include main() { char x1,x2; printf("x1=?\n"); scanf("%c",&x1); x2=x1+32; printf("%c,%c\n",x1,x2); } 【解答】运行输入:A <回车> 运行结果

35、A,a 3.从键盘上输入两个实型数,求两数的和、差、积,输出结果时要求小数部分占两位。 【提示】结果要求保留2位小数,所以输出的结果格式为%.2f。 main() { float x,y,a,b,c; printf("please input x,y:"); scanf("%f,%f",&x,&y); a=x+y; b=x-y; c=x*y; printf("x=%f,y=%f\n",x,y); printf("x+y=%.2f\nx-y=%.2f\nx*y=%.2f\n",a,b,c); } 【解答】 运行输入:please input x,y

36、10,20<回车> 运行结果:x=10.000000,y=20.000000 x+y=30.00 x-y=-10.00 x*y=200.00 4.编写一个程序,求出给定半径r的圆以及内正n边形的面积,并且输出计算结果。r和n的值由用户输入。 【分析与提示】由数学知识得到: 半径为r圆的面积,半径为r圆的内接正n边形的面积,其中 处理步骤:提示信息,接收参数值;计算圆的面积; 计算正n边形的面积;输出结果。 参考代码: #include #include #define PI 3.14

37、 main() { int n; float r,s,area; printf("Please input the radius and the N.:\n"); scanf("%f%d",&r,&n); s=PI*r*r; area=(n*r*r*sin(2*PI/n))/2.0; printf("S=%.2f\tA=%.2f\n",s,area); return(0); } 运行结果如下: Please inout the radius and the N.; 1 5 S=3.14 A=2.38 5.已知华氏温度与摄氏温度之间的转换公式是:

38、 编写一个程序,将用户输入的华氏温度转换成摄氏温度,并予以输出。 【分析与提示】首先要定义输入输出温度为浮点型,且5/9两数相除结果为整数,5/9的值为0,故不能写成5/9,而应写成(5.0/9.0)*(f-32)。结果要求保留2位小数,所以输出的结果格式为%5.2f。 参考代码: #include main() { int f; float c; printf("\nplease input the F:"); scanf("%d",&f); c=5.0/9*(f-32); /*不能写成5/9,两数相除结果为整数,5

39、/9的值为0*/ printf("the C.temperature is: %.2f",c); return(0); } 【解答】运行结果如下: please input the F: 75<回车> the C.te,[erature is: 23.89 6.由键盘输入5个学生的计算机成绩,计算他们的平均分并保留2位小数。 【分析与提示】方法与上题类似,同样是保留两位有效数字%6.2f。 参考代码: main() { int a,b,c,d,e; float total,aver; printf("Plese input 5 s

40、tudents’ scores:\n"); scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d,&e); total=a+b+c+d+e; aver=total/5.0; printf("Average:%6.2f\n",aver); } 【解答】运行输入:80,93,75,68,87 <回车> 运行结果:Average:80.60 7.编写将输入的英里转换为公里,每英里等于5380英尺,每英尺等于12英寸,每英寸等于2. 54厘米,每公里等于100 000厘米。 main() { double mile,k; printf(“enter mile

41、); scanf(“%lf”,&mile); k=mile*5380*12*2.54/100000; printf(“ %lf mile is %lf kilometer\n”,mile,k); } 【解答】运行:enter mile:2↙ 2.000000 mile is 3.279648 kilometer 第4章 选择结构程序设计 4.1 习题 一.填空题 1.已知a=3,b=4,c=5。则逻辑表达式a+b>c&&b= =c的值为 ,!(a>b)&&c||1的值为 ,!(a+b)+c-1&&b+c/2的值为

42、 。 【分析与提示】本题考查运算符的优先级别。 【解答】0 ; 1 ; 1 二、运行程序写结果 1.下列程序运行的运行结果为 。 #include  main() { int a=3,b=8,c=9,d=2,e=4; int min; min=(a

43、为:找出a,b,c,d,e中最小的值并输出。 【解答】Min is 2 2.若输入3,4<回车>,下列程序运行的运行结果为 ;若输入4,3<回车>,下列程序运行的运行结果为 。 #include main() { int a,b,c; printf("Input a,b: "); scanf("%d,%d",&a,&b); if(a>=b) {c=a*b; printf("%d*%d=%d\n",a,b,c);} else {c=a/b; printf("%d/%d=%d\n",

44、a,b,c);} } 【分析与提示】本题程序的功能为:从键盘输入变量a,b,计算c的值(若a>=b,则c=a*b,若a main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) {case 0: a++; break; case 1: b++; break; }

45、 case 2: a++; b++; break; } printf("a=%d,b=%d\n",a,b); } 【分析与提示】本题中case 1:后面是一个switch语句,执行完该语句后,直接执行case 2:后面的语句。 【解答】a=2,b=1 三.编程题 1.输入一个字母,若为小写,则把它变成大写输出。 【分析与提示】小写字母的ASCII码值与其对应的大写字母的ASCII码值相差32。 参考代码: main( ) { char c; printf("请输入一个字母\n") ; scanf("%c", &c);

46、 if(c>=’a’&&c<=’z’) c=c-32; printf("%c\n",c) ; } 2. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 【分析与提示】请利用数轴来分界,定位。注意定义时

47、需把奖金定义成长整型。       参考代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15;  if(i<=100000)   bonus=i*0.1;  else if(i<=2000

48、00)      bonus=bonus1+(i-100000)*0.075;     else if(i<=400000)         bonus=bonus2+(i-200000)*0.05;        else if(i<=600000)            bonus=bonus4+(i-400000)*0.03;           else if(i<=1000000)               bonus=bonus6+(i-600000)*0.015;              else               bonus=bonus10+(i

49、1000000)*0.01; printf("bonus=%d",bonus); }   3.由键盘输入三个整数a、b、c,用条件运算符求出其中最大值和最小值。 【分析与提示】首先比较输入的a,b 的大小,并把大数装入max, 小数装入min 中,然后再与c 比较,若max 小于c,则把c 赋予max;如果c 小于min,则把c 赋予min。因此max 内总是最大数,而min 内总是最小数。最后输出max 和min 的值即可。 参考代码: main( ) { int a,b,c,max,min; scanf("%d,%d,%d", &a,&b,&c); max=a>

50、b?a:b ; max=max>c?max:c; min=a

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服