C语言习题及答案_第1页
C语言习题及答案_第2页
C语言习题及答案_第3页
C语言习题及答案_第4页
C语言习题及答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上机操作题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

2、除16以去掉最低位,然后循环求解更高位。(2) 使用for循环逆序str数组,变量i从0递增,变量j从m-1递减,交换stri与strj。主函数main输入一个整数,调用dec2hex函数转换为16进制串,然后输出该字符串。带错误原程序:(函数dec2hex包含3个错误点,main包含1个错误点)#include void dec2hex(int n, char str)int m,i,j;char t;m=0;do k = n % 16;if(k9)strm=0+k;elsestrm=A+k-10; m+;n = n / 16; while (n0);strm = 0;for (i=0,j=

3、m-1;ij;i+,j-)stri=t;stri=strj;strj=t;main()char str80;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个整数(设每个整

4、数取值1至5),按示例格式输出5行数字图形,每行的数字及数字个数与输入数相对应。如输入: 5 4 3 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则输出(表示空格,表示回车): 示例说明:输出共5行,居中对齐形状。输入的第1个数为2,则输出的第1行有2个2,数字之间含有1个空格,第1个2之前有5-2=3个空格;以此类推。第4题(18

5、分,源程序文件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)修正程序原代码#

6、include void dec2hex(int n, char str)int m,i,j,k;/*/char t;m=0;do k=n%16;if(k0);strm = 0;for (i=0,j=m-1;i9stri=t;赋值方向错误str=dec2hex(n);调用错误第2题(1-A-2.c)/* 1-A-2 */#include int main() int i,j,n; scanf(%d,&n); for(i=n-1;i1;i-) for(j=2;ji;j+) if(i%j=0) break; if(i=j) break; printf(%dn,i);return 0;第3题(1-A

7、-3.c)#include stdio.h int main()int i,j,a5; for(i=0;i5;i+) scanf(%d,a+i); for(i=0;i5;i+) for(j=0;j5-ai;j+) printf( ); for(j=0;jai;j+) printf(%d ,ai); printf(n); return 0;第4题(1-A-4.c)/* 1-A-4 (1) */#include #include stdio.hInt main() char a81=0,b81=0; int i,j,d=0; gets(a); for(j=i=0;ai;i+) if(ai9) d=

8、0; else if(d=0) d=1; bj+=$; bj+=ai; if(i=j) puts(There are no digits.); else puts(b);/* 1-A-4 (2) */#include stdio.hint main() char a81=0,b81=0; int i,j; gets(a); for(j=i=0;ai;i+) if(ai9) bj+=ai; continue; for(bj+=$; ai=0&ai=9;i+) bj+=ai; i-; if(i=j) puts(There are no digits.); else puts(b); return

9、0;上机操作题B卷,4题,共70分第1题(18分 源程序文件 E:answer1-B-1.C ),上机要求:下列程序包含4个错误,请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/*/”注释,将修改后的源程序保存到 E:answer1-B-1.C 中。程序改错时不允许改变大的程序结构(如函数调用关系与循环结构等)。程序功能:从键盘上输入一个16进制串,转换为10进制整数并输出。如输入: 5A则输出: 90再如输入: 4D2则输出: 1234函数说明:函数hex2dec将16进制字符串str转换为10进制的整数并返回。主函数main输入一个字符串,调用hex2dec函数转换16进制串

10、,然后输出整数。带错误原程序:(函数hex2dec包含3个错误点,main包含1个错误点)#include int hex2dec(char *str)int m,i,k;m=1;for (i=0,stri!=0;i+)if (stri=0 & stri=A & stri=a & strin不包括n)。例如:输入:17 输出:19输入:45 输出:47 第3题(10分,源程序文件 E:answer1-B-3.C )上机要求:按程序功能要求编写程序,并将程序代码保存到 E:answer1-B-3.C 中。程序功能:从键盘上输入5个整数(设每个整数取值1至5),按示例格式输出5行数字图形,每行的数

11、字及数字个数与输入数相对应。如输入: 5 4 3 2 1则输出(表示空格,表示回车): 示例说明:输出共5行,右对齐形状。输入的第1个数为5,则输出的第1行有5个5,数字之间含有1个空格,第1个5之前有2*(5-5)=0个空格;输入的第2个数为4,则输出的第2行有4个4,数字之间含有1个空格,第1个4之前有2*(5-4)=2个空格;以此类推。再如输入: 2 3 4 3 2则输出(表示空格,表示回车): 示例说明:输出共5行,右对齐形状。输入的第1个数为2,则输出的第1行有2个2,数字之间含有1个空格,第1个2之前有2*(5-2)=6个空格;以此类推。第4题(源程序文件 E:answer1-B-

12、4.C ),20分上机要求:按程序功能要求编写程序,并将程序代码保存到 E:answer1-B-4.C 中。程序功能:从键盘输入一个字符串(不多于80个字符),分别在该字符串中的所有小写字母字符子串(即单个或多个连续的小写字母字符)前加入一个字符#,然后输出处理后的该字符串,如果该字符串中不包含有小写字母字符子串,则报告“There are no lowercase letters.”。如输入:a,Efghi*123p87KKK xyz则输出:#a,E#fghi*123#p87KKK #xyz又如,再如输入:1234,ABCD$#*! (100%)&KK则输出There are no lowe

13、rcase letters.上机操作题B卷,4题,共70分参考答案第1题(1-B-1.c)修正程序原代码#include int hex2dec(char *str)int m,i,k;m=0;/*/for (i=0;stri!=0;i+)/*/if (stri=0 & stri=A & stri=a & stri=f)k=stri-a+10; /*/elsereturn m;m=16*m+k;return m;main()char str80;int n;gets(str);/*/n=hex2dec(str);printf(%dn,n);m=1;初始化错误for(i=0,stri!=0;i+

14、)分号错误k=stri-a+10;缺单引号gets(str80);多数组下标第2题(1-B-2.c)#include int main() int i,j,n; scanf(%d,&n); for(i=n+1;i1;i+) for(j=2;ji;j+) if(i%j=0) break; if(i=j) break; printf(%dn,i);return 0;第3题(1-B-3.c)#include int main()int i,j,a5; for(i=0;i5;i+) scanf(%d,a+i); for(i=0; i5; i+) for(j=0; j5-ai; j+) printf( ); for(j=0; jai; j+) printf(%d , ai); printf(n); return 0;第4题(1-B-4.c)/* 1-A-4 (1) */#include stdio.hmain() char a81=0,b81=0; int i,j,d=0; gets(a); for(j=i=0;ai;i+) if(ai9) d=0; else if(d=0) d=1; bj+=$; bj+=ai; if(i=j) puts(There

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论