C语言习题及答案97310.docx
- 文档编号:5026179
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:14
- 大小:19.23KB
C语言习题及答案97310.docx
《C语言习题及答案97310.docx》由会员分享,可在线阅读,更多相关《C语言习题及答案97310.docx(14页珍藏版)》请在冰豆网上搜索。
C语言习题及答案97310
上机操作题A卷,4题,共70分
第1题(18分源程序文件)
上机要求:
下列程序包含4个错误,请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存中。
程序改错时不允许改变大的程序结构(如函数调用关系与循环结构等)。
程序功能:
从键盘上输入一个整数,转换为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<>
voiddec2hex(intn,charstr[])
{
intm,i,j;
chart;
m=0;
do{
k=n%16;
if(k>9)
str[m]='0'+k;
else
str[m]='A'+k-10;
m++;
n=n/16;
}while(n>0);
str[m]='\0';
for(i=0,j=m-1;i { str[i]=t; str[i]=str[j]; str[j]=t; } } main() { charstr[80]; intn; scanf("%d",&n); str=dec2hex(n); puts(str); } 第2题(17分,源程序文件) 上机要求: 按程序功能要求编写程序,并将程序代码保存中。 程序功能: 从键盘输入一个大于2的正整数n,求解并输出最接近n的素数( 如输入: 17 则输出 13 再输入: 45 则输出 43 第3题(17分,源程序文件) 上机要求: 按程序功能要求编写程序,并将程序代码保存中。 程序功能: 从键盘上输入5个整数(设每个整数取值1至5),按示例格式输出5行数字图形,每行的数字及数字个数与输入数相对应。 如输入: 54321 则输出(□表示空格,↙表示回车): 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个空格;以此类推。 再如输入: 23212 则输出(□表示空格,↙表示回车): □□□2□2↙ □□3□3□3↙ □□□2□2↙ □□□□1↙ □□□2□2↙ 示例说明: 输出共5行,居中对齐形状。 输入的第1个数为2,则输出的第1行有2个2,数字之间含有1个空格,第1个2之前有5-2=3个空格;以此类推。 第4题(18分,源程序文件) 从键盘输入一个字符串(不多于80个字符),分别在该字符串中的所有数字字符子串(即单个或多个连续的数字字符)前加入一个字符$,然后输出处理后的该字符串,如果该字符串中不包含有数字字符子串,则报告“Therearenodigits.”。 例如, 输入: abcd4,Efghi*123p87KKK90346xyz 输出: abcd$4,Efghi*$123p$87KKK$9034$6xyz 又如, 输入: abcd,Efghi*Pkkk#%xyz 输出: Therearenodigits. 上机操作题A卷,4题,共70分 参考答案 第1题() 修正程序 原代码 #include<> voiddec2hex(intn,charstr[]) { intm,i,j,k;/***/ chart; m=0; do{ k=n%16; if(k<9)/***/ str[m]='0'+k; else str[m]='A'+k-10; m++; n=n/16; }while(n>0); str[m]='\0'; for(i=0,j=m-1;i { t=str[i];/***/ str[i]=str[j]; str[j]=t; } } main() { charstr[80]; intn; scanf("%d",&n); dec2hex(n,str);/***/ puts(str); return0; } intm,i,j; 缺变量定义 k>9 str[i]=t; 赋值方向错误 str=dec2hex(n); 调用错误 第2题() /*1-A-2*/ #include<> intmain() {inti,j,n; scanf("%d",&n); for(i=n-1;i>1;i--) {for(j=2;j if(i%j==0)break; if(i==j)break; } printf("%d\n",i); return0; } 第3题() #include"" intmain() { inti,j,a[5]; for(i=0;i<5;i++) scanf("%d",a+i); for(i=0;i<5;i++) {for(j=0;j<5-a[i];j++) printf("");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案 97310