收藏 分销(赏)

《上机实验A:程序设计阶段练习》.doc

上传人:仙人****88 文档编号:9412009 上传时间:2025-03-25 格式:DOC 页数:8 大小:51.50KB
下载 相关 举报
《上机实验A:程序设计阶段练习》.doc_第1页
第1页 / 共8页
《上机实验A:程序设计阶段练习》.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述
1. 【问题描述】 下列程序包含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 <stdio.h> void dec2hex(int n, char *str) { int m,i,j; char t; 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<j;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); } 【评分标准】 结果完全正确得20分,共1个测试点。提交程序名为:cp71a.c 2. 【问题描述】 从键盘上输入5个整数(设每个整数取值1至5),按示例格式输出5行数字图形,每行的数字及数字个数与输入数相对应。 【输入形式】 从键盘输入5个整数(设每个整数取值1至5)。 【输出形式】 按示例格式输出5行数字图形,每行的数字及数字个数与输入数相对应。 【样例输入1】 5 4 3 2 1 【样例输出1】 5□5□5□5□5↙ □4□4□4□4↙ □□3□3□3↙ □□□2□2↙ □□□□1↙ (其中:□表示空格,↙表示回车) 【样例说明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】 2 3 2 1 2 【样例输出2】 □□□2□2↙ □□3□3□3↙ □□□2□2↙ □□□□1↙ □□□2□2↙ (其中:□表示空格,↙表示回车) 【样例说明2】 输出共5行,居中对齐形状。输入的第1个数为2,则输出的第1行有2个2,数字之间含有1个空格,第1个2之前有5-2=3个空格;以此类推。 【评分标准】 结果完全正确得20分,共2个测试点。提交程序名为:cp72a.c 3. 【问题描述】 编写程序,输入10个整数(存贮在一维数组a中),按示例格式计算并输出以下结果。 (1)输出最大值及其出现次数; (2)输出出现次数最多的整数及其出现次数(如果有不同2数而出现次数同样最多,则输出其中最早出现的数)。 【输入形式】 从键盘输入10个整数,存入一维数组a。 【输出形式】 输出最大值及其出现次数, 输出出现次数最多的整数及其出现次数(如果有不同2数而出现次数同样最多,则输出其中最早出现的数)。 【样例输入1】 78 90 60 95 78 60 78 95 78 60 【样例输出1】 Max: 95(2) 78(4) 【样例说明1】 输入10个整数,95出现2次,90出现1次,78出现4次,60出现3次。其中最大值为95,出现2次,而出现次数最多的数为78,出现了4次。 【样例输入2】 60 99 78 95 78 60 78 95 95 60 【样例输出2】 Max: 99(1) 60(3) 【样例说明2】 输入10个整数,99出现1次,95、78与60各出现3次。其中最大值为99,出现1次,而出现次数最多的3个数中60最早出现。 【评分标准】 结果完全正确得20分,共1个测试点。提交程序名为:cp73a.c 4. 【问题描述】 编写程序,按示例实现以下功能: (1) 编写函数,函数说明为:int facsum(int n); 返回整数n的因子之和(当1≤i<a时,如果a是i的倍数,则i是a的因子) (2) 编写主函数main,完成以下要求: a) 输入整数(变量a); b) 调用函数facsum计算a的因子之和(变量s); c) 计算s的个位数(变量b); d) 以a为高位,b为个位组成一个新数(变量x,有x=10*a+b),输出x。 【输入形式】 从键盘输入整数a。 【输出形式】 输出以整数a为高位,a的因子之和的个位数为个位组成的数。 【样例输入1】 12 【样例输出1】 126 【样例说明1】 整数12的因子有1、2、3、4、6,因子的累加和为16,累加和的个位数为6,以12为高位,6为低位,组成的新数为126。 【样例输入2】 123 【样例输出2】 1235 【样例说明2】 整数123的因子有1、3、41,累加和为45,个位数5,输出1235。 【评分标准】 结果完全正确得20分,共2个测试点。提交程序名为:cp74a.c 5. 【问题描述】 编写程序,从键盘输入10个百分制成绩,将成绩从高到低排序并且排名,然后以“名次:成绩”的形式依次输出,相互间用1个空格间隔,最高分的名次记为1,相同的成绩名次也相同。 【输入形式】 从键盘输入10个百分制成绩。 【输出形式】 按名次顺序,以“名次:成绩”的形式依次输出10成绩及其名次,相互间用1个空格间隔。 【样例输入】 99 100 80 60 70 90 99 70 50 70 【样例输出】 1:100 2:99 2:99 4:90 5:80 6:70 6:70 6:70 9:60 10:50 【样例说明】 输入10个百分制成绩,按名次顺序输出,第1名100分,第2名99分有2个,由于有2个第2名,90分就成了第4名,第5名80分,第6名70分有3个,由于有3个第6名,60分就为第9名,第10名50分。 【评分标准】 结果完全正确得20分,共1个测试点。提交程序名为:cp75a.c
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服