C语言习题及案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上机操作题A卷,4题,共70分 第1题(18分 源程序文件 1-A-1.C ) 上机要求:下列程序包含4个错误,请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存1-A-1.C 中。程序改错时不允许改变大的程序结构(如函数调用关系与循环结构等)。 程序功能:从键盘上输入一个整数,转换为16进制串并输出。 如输入: 90 则输出: 5A 再如输入: 1234 则输出: 4D2 函数说明: 函数dec2hex将整数n转换为16进制的字符串并存贮于str数组。 (1) 依次计算n的16进制最低位(变量k),转换为16进制码(字符’0’至’9’或’A’至’F’)存贮于str数组,完成一位后,n除16以去掉最低位,然后循环求解更高位。 (2) 使用for循环逆序str数组,变量i从0递增,变量j从m-1递减,交换str[i]与str[j]。 主函数main输入一个整数,调用dec2hex函数转换为16进制串,然后输出该字符串。 带错误原程序:(函数dec2hex包含3个错误点,main包含1个错误点) #include stdio.h void dec2hex(int n, char str[]) { int m,i,j; char t; m=0; do { k = n % 16; if(k9) str[m]=0+k; else str[m]=A+k-10; m++; n = n / 16; } while (n0); str[m] = \0; for (i=0,j=m-1;ij;i++,j--) { str[i]=t; str[i]=str[j]; str[j]=t; } } main() { char str[80]; int n; scanf(%d,n); str=dec2hex(n); puts(str); } 第2题(17分,源程序文件1-A-2.C ) 上机要求:按程序功能要求编写程序,并将程序代码保存1-A-2.C 中。 程序功能:从键盘输入一个大于2的正整数n,求解并输出最接近n的素数(n不包括n)。 如输入: 17 则输出 13 再输入: 45 则输出 43 第3题(17分,源程序文件 1-A-3.C ) 上机要求:按程序功能要求编写程序,并将程序代码保存1-A-3.C 中。 程序功能:从键盘上输入5个整数(设每个整数取值1至5),按示例格式输出5行数字图形,每行的数字及数字个数与输入数相对应。 如输入: 5 4 3 2 1 则输出(□表示空格,↙表示回车): 5□5□5□5□5↙ □4□4□4□4↙ □□3□3□3↙ □□□2□2↙ □□□□1↙ 示例说明:输出共5行,居中对齐形状。输入的第1个数为5,则输出的第1行有5个5,数字之间含有1个空格,第1个5之前有5-5=0个空格;输入的第2个数为4,则输出的第2行有4个4,数字之间含有1个空格,第1个4之前有5-4=1个空格;以此类推。 再如输入: 2 3 2 1 2 则输出(□表示空格,↙表示回车): □□□2□2↙ □□3□3□3↙ □□□2□2↙ □□□□1↙ □□□2□2↙ 示例说明:输出共5行,居中对齐形状。输入的第1个数为2,则输出的第1行有2个2,数字之间含有1个空格,第1个2之前有5-2=3个空格;以此类推。 第4题(18分,源程序文件1-A-4.C ) 从键盘输入一个字符串(不多于80个字符),分别在该字符串中的所有数字字符子串(即单个或多个连续的数字字符)前加入一个字符$,然后输出处理后的该字符串,如果该字符串中不包含有数字字符子串,则报告“There are no digits.”。例如, 输入:abcd4,Efghi*123p87KKK9034 6 xyz 输出:abcd$4,Efghi*$123p$87KKK$9034 $6 xyz 又如, 输入:abcd,Efghi*Pkkk #%xyz 输出:There are no digits. 上机操作题A卷,4题,共70分 参考答案 第1题(1-A-1.c) 修正程序 原代码 #include stdio.h void dec2hex(int n, char str[]) { int m,i,j,k; /***/ char t; m=0; do { k=n%16; if(k9) /***/ str[m]=0+k;

文档评论(0)

cj80011 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档