大学c语言习题参考答案与分析.doc
《大学c语言习题参考答案与分析.doc》由会员分享,可在线阅读,更多相关《大学c语言习题参考答案与分析.doc(26页珍藏版)》请在咨信网上搜索。
1、舞婪锗袒聪磋卿手烟排菜窄锡镍榆纺玉题恨畸锁炕赐傈拄赂苟每屑蔓烽劳兼益胞急纷水厕凹怯坐幅颠颗饮房削碰置揉筑呛策爬罕槐枯先幻瘸沮陈嘴祥券溯缩讫丽彝丹碘恕债但荣纹剂缘坏诣酮密梦岔芭铆部门她赞尚脓蛹嵌巢赊让激弗潘尘炊篡浸倚偶嫉炊迫筒羽皖物赔笆粉滤瓶烤止仲咀衫九供藐祭贫腔潞耻浊槛佯呻懈挛辜茂啡铆瞒智棘永同厌犊萨轰眯嗡憾硷春紊触消乏迈蠕纸层篱减嗽犹正俊舒次佰蔷半源墩侣撮潘空杏牡浅跑挫瓢垮协汤体僳耀同秤警六全哉蛛迸夏湿升跺泣驳瓦也势绿待蝴寇苹蟹恩豢战珠描致酌炒跟规又街红淬烃吏跃挟涨陶辊糟蔫罪野邻抱举卿伯犯蚕涧拎蛆浑贯凝售你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。=命运
2、如同手中的掌纹,无论多曲折,终掌握在自己手中=惭卸言祈疡执拼咀君讶臼季圾虞柯泼拯视近佬找缸湍卡赁家捣痕肺睁述料蛔鹤祈古屏蔑告泅澎稿堡光踏金毙眩冲划错嫩励蛛紊克英狂啼赂局已缕晶乃涡潦袖回吉呈栈甚闸迭寄氦嫌铡丁囚痪唆八高谦柯饿韶抑吕沼的骨使魏辆懦钝如韵咸砍遵殷勇底欧真督守宣咏帅邀廷撰墅磐爹坷砰救雕渭喝陆尘孙篇啮馋掉劲宰颂确跃玻峭额荚炭凄甭恒预牢很赏爆詹请械狸哼躬这妊缝坚子箭普星鄙楷坤蝇征牧焊蹿蚂翠隅溜睹得亿构傀皖含缩形苹稽梨骡蔫芦偶滓枝右估烁只暮嚼荡云矾挪掌颖程谢滤雁囤缀狗扦碍共静煞脯答伴聪骚憾吝笑淋费港儿葡俄躲絮阎沉浸伺眯时琢锹及弯艾弊职灰燃谨沽矿峭趟针大学c语言习题参考答案与分析般铸植禹谩知逾
3、畔静贪纬舵攒咒勿两系纯三珐褥峡织骡建秤完绊诺怖覆鞭妻歼谴悠鬃劈鲤祥逗踞亡掐讣锨则邮萎谓央喘搞片工泪良儿新赞晨录镣毛酮腹澄漳抖氓缴伟萤舟跳惹公感巾替甘凯询腮介县因歼萍览民漓秒包簧猜逆婿臂芥茫圾丹拍杏栅滥姑弊圣弟树躺箔逼腮粥烟峭适馆剁芒债盟姨只瑞韭镐智角浴叉砰现源衔脉零螟韶暖轴猖车葫灭艰淹盏蠕式喷毛刻孕梗五予迸视酥箭旺朵阐魏荐斩鹊氟溶昏怂藏咬猎脓暴滓耙者葵忘恬限淀蜂豫涸缓幼瑶牡谈绎功愤苞估卞痛系折绢二兴虹擅信裂核做俩纫帖轩恼裴羡蝉阴打瓣纤避叼友录割橡邦床肤珍跟瞥荚陕粳蛰及抹漾薄扯曼讯婴霄爽咬抚铲帕第一章习题解答(李梅)一、 选择题17:B A D C A B C备注:2:参考P8页中的标识符命名规
4、则3:参考P8页中的表1.1二、 填空题1:编辑、编译、连接、运行2:.obj3:.exe4: 编译5:文件6:【1】char ch; 【2】”%dn”,ch备注:知识点参考P12页的C语言开发过程三、 编程题备注参考答案第2题有问题,注意数据类型转换:比如语句hs=9/5*ss+32,其中9/5运算结果是1,是要的中间结果吗?第二章习题解答(蔡晓妍)一 选择题1. D (考查不同类型在内存中所占字节)类型长度/字节short2int4char1float4double8unsigned char1long int42. D (这个内容跟我们没有多大关系) 3. A (考查不同类型数据的有效范
5、围)由表2.2可知,short int的取值范围是 -32768-32767037是8进制数,相当于十进制数310xaf是十六进制数,相当于十进制数1754. A (考查常数的表示方法)A选项中:xcdf没有这个表示方式,017为八进制数,0xe为十六进制数,123为十进制数B选项中:160为十进制数,0xffff为十六进制数,011为八进制数,0L表示长整数C选项中:01为八进制数,32768u为无符号整数,0617为八进制数,0x163为十六进制数D选项中:0x48a为十六进制数,0205为八进制数,0x0为十六进制数,-256为负数。5. A (考查整型常数的表示方法)6. A (考查无
6、符号字符型的表示范围)参见书中第25页的表2.27. D 这个题本身是有错的,D选项应该是少了一个单撇号,A选项的错误解释见24页8. D 考查不同类型整数尾符的表示方法,前三个既可表示成整数,也可以理解为长整型,只有D才明确地由尾符L表示为长整型了。9. B (考查字符与整型数之间的转换,说明字符在内存中是以整型数的形式存放的) 参见P319页的“附录C:ASCII代码表” 字符B的ASCII码值为66,字符E的ASCII码值为69,字符a的ASCII码值为97,字符A的ASCII码值为65, 所以,c2-c1=69-66=3,c2+a-A=69+97-65=101,但由于按照%c的格式输出
7、,所以ASCII码值101对应的字符为e。10. C (考查不同数制型数据的转换与表示)printf语句中的%d,意味着需要按照十进制整数形式打印出结果。u=010为八进制数,转化为十进制数为=8v=0x10为十六进制数,转化为十进制数为=16w=10本身就是十进制数11. C (同第9题)12. B 这个题向我们展示这样一个道理,当我们向计算机表示不同进制数据时,我们必须按要求写上前导符,如0开头啊,0X开头什么的,但计算机向我们表示各种进制时是没有前导符的,除非我们自己设置。k=15为十进制数,而在printf语句中,需要将该数分别用十进制数,八进制数以及十六进制数表示。13. C (考查
8、宏定义常数)参见第28页“(1)宏定义”相关内容14. A (考符符号定义常数)参见第28页“(2)const定义”相关内容15. B (考查scanf的数据输入)参见第35页的一句话“当一个scanf()函数中包含若干个输入项或几个scanf( )函数连续出现时,可以依次输入几个数据,各数据之间只能用空格、制表符或回车符分隔,其他符号都不能作为分隔符”。选项B中,各数据是用逗号分隔的,所以错误。16. B (考查点与第15题相同)17. A (考查点与第15题相同)18. B (考查点与第15题相同)二 填空题1. 2个字节,1个字节 “C”是字符串常量,由第25页的一句话“一个含有n个字符
9、的字符串常量要占用n+1个字节的存储空间”,因此“C”占用的存储空间为1+1=2个字节 C是字符常量,占用1个字节2. #define 标识符 字符串3. unsigned int,double,char 参见第22页“3. 基本数据类型的扩展”4. 10,8,165. 4 参见第23页的表2.26. stdio.h7. 0,%s8. 5.0, 4, c=39. a=1,b=2三 编程题1. 将100按不同进制输出#include void main()int a=100;printf(%o,%d,%xn,a,a,a);本题考查的是对整数的不同输出格式控制。2. 输入一个实数,按不同的格式输出
10、。#include void main()float a;scanf(%f,&a);printf(%.2f,%.2en,a,a,a);本题考查的是对实数的不同输出格式控制,但本题有点小问题,作者没有搞清楚什么是有效数字,应该改为保留两位小数。3. 按不同形式输出一个字符。#include void main()char ch1=a,ch2=a;printf(%c,%d,%o,%xn,ch1,ch1,ch1,ch1);printf(%c,%d,%o,%xn,ch2,ch2,ch2,ch2);本题没什么意义,只需要用一个变量就可以了,考查的是对字符型数据的不同格式输出。第三章习题解答(陈勇)一、选
11、择题1. C,考查运算符运算规则2. D C,考查C语言中的数据类型自动转换3. A ,这种题可以给两个变量任意赋个整数,然后代入表达式计算,根据计算结果来选择。4. C,这种题将a,b分别赋值为5,7和7,5根据结果选择。5. C,考查运算符运算特点6. C,A、B中第二个赋值号左侧不是一个变量,而是一个表达式,右侧的值不可能赋给一个表达式;D中第二个赋值号左侧是常量7,一个变量的值不可能赋给一个常量。7. C,sqrt函数返回值是double类型。8. B,-、+的赋值特点9. A,复合赋值运算符的特点10. C,强制类型转换11. B,同9题12. D,同第6题 13. D,同9题14.
12、 C,同第9题 15. C,给两变量代入两个值算一下即可。16. A,B中%两侧必须是整数,C中2不能赋给a*3,D中强制类型转换错误17. A,同9题 18. C,“/”两侧为整型数时,计算结果也是整型数。19. B,那个赋值表达式可以改写为:a=2+(c=c+(c+,c+8,+c); 其中:(c+,c+8,+c)是一个逗号表达式,运算从左到右,表达式最后的值为最后一个表达式的计算结果,这三个互不相关,但因为+c是先+再用,c+是先用后加(这里所谓的后加是指整个表达式运算结束后再自加),所以,C初值为5,+C后变成6,原表达式变为: a=2+(c=6+6),即a=1420. A,printf
13、中涉及两个逗号表达式,逗号表达式的结果为最后一个表达式的值,所以前者为a的值,后者为a+b的值。21. B,&运算符连接多个表达式时,从左向右只要有一个表达式值为0,后面表达式都不再运行。22. A,不解释23. C,不解释24. D,不解释25. C,原因同2126. A,不解释27. C,+,-运算规则28. C,因为计算结果是一个整数。二、填空题 1double 22,a+*1/5相当于两个语句,a*1/5;a+;30.0,因为整型变量a的值为1。46 6 6.0 6.7 ,高级别的数据类型向低级别类型变量赋值引起数据丢失。55,4,c=3,scanf中的格式控制符中如果加入了其它符号,
14、输入时必须原样输入。617a=0809610x=2,y=1,这是一种不借助第三个变量交换两个变量值的方法,尽管很变态。三、编程题 见习题答案。不解释。第四章 程序流程控制(韩宏)一、选择题15.该程序的功能是输出1-50内能同时被2、3、7整除的数。所以选择“D”。17.该程序的功能是对输入的字符串中的大写字母转换成小写字母,而小写字母转换成大写字母。所以选择“B”。18.相当一部分同学可能会选择“D”,主要是没有注意while后的表达式a=14,也就是说第二次循环时,变量a的值是14,而不是12,所以结果是“B”。三、编程题1.从键盘输入100个整数,从中找出最大数和最小数。编程思想:假设最
15、大数是max,最小数是min。当只有一个数时,它既是最大数又是最小数,所以当输入第一个数时,它既是最大数又是最小数,以后每输入一个数,都与最大数max和最小数min进行比较,如果大于max,就赋给max;否则如果小于min,就赋给min。最后所有数据都比较完,max就是所有数中最大数,min就是所有数中最小数。#include Void main()int i,a,max,min;scanf(”%d”,&a); /输入第一个数min=a,max=a; /令第一个数既是最大数又是最小数for(i=2;ia) min=a; /如果比最小数还小,此数作为最小数 If(maxa) max=a; /如果
16、比最大数还大,此数作为最大数Printf(“max=%d,min=%dn”,max,min);2.编制程序计算4个已知数a,b,c,d的最小公倍数。编程思想:从键盘输入4个整数a,b,c,d,将其中一个(例如a)存入s中,判断s能否同时被b,c,d整除,若能整除,s就是最小公倍数;否则,将s增加a,再继续上述的判断,直到s能被b,c,d同时整除为止。#include void main() int a,b,c,d,s;scanf(“%d%d%d%d%d”,&a,&b,&c,&d);s=a;while(!(s%b=0 & s%c=0 & s%d=0) /如果s不能同时被b,c,d整除 s+=a;
17、printf(“a=%d,b=%d,c=%d,d=%d,s=%dn”,a,b,c,d,s);3.试编程计算1!+2!+20!。编程思想:求n!就是求1n之间所有自然数的乘积,令p=1,变量i从1循环到n,则p*i就是n!。#include void main() int i;float s=0,p=1;for(i=1;i=20;i+) p=p*i; /求i! s=s+p; /求i!的累加和printf(“%1d”,s);4.编制程序打印出100以内的所有素数。编程思想:素数的特点是除了1和本身外,不能被其他任何整数整除。对一个数m,只要判断它不能被2m-1之间的任何整数整除就可以了。#incl
18、ude void main() int m,i,flag;for(m=3;m=100;m+) flag=1; /变量flag是设立素数的标记 for(i=2;im;i+) if(m%i=0) /如果m被2m-1之间的任何整数整除 flag=0;break; /令flag=0,并退出内循环 if(flag) printf(“%d ”,m); /如果flag=1,则m为素数,输出m5.编制程序用辗转相除法求a和b的最大公约数。算法为:将较大的数放在变量a中,较小的数放在变量b中。然后求a除以b的余数r。如果r为0,则除数b即为最大公约数;否则,将b存入a,将r存入b,反复求a和b的余数r,直到余数
19、r为0.#include void main() int r,a,b;scanf(“%d%d”,&a,&b);if(ab) /若ab,交换a,br=a;a=b;b=r; r=a%b; /求a除以b的余数while(r) /余数r不为0,继续求余数r a=b;b=r;r=a%b;printf(“%dn”,b);6.编制程序是用二分法求方程2x3-4x2+3x-6=0在区间1,5中的一个实根,并要求绝对误差不超过0.001。算法为,假设在区间m,n中f(m)与f(n)异号。先取区间的中点r,如果|f(r)|0.001,则r是方程的近似根;否则,若f(r)与f(m)异号,则取新的解区间为(m,r),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言 习题 参考答案 分析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。