1、程序设计基础(C 语言)上机考试题( 第一套 A 卷 )20082009 学年春学期 2009 年 6 月应试人学号: 姓名: 学院/教师: 考生须知:1答题前必须先进行“登录”,做法是:在 Windows 下,双击 D:CTest文件夹中的“C 上机考登录”快捷方式图标, 进入“程序设计基础(C)上机考试考生登录”框,正确键入学号和密 码,单击“输入确定”按钮,框内将显示姓名、学院、教师、考场、机号、 试题套号和卷类等信息,单击 “确认”按钮(如遇换机,可先单击“换机器”按钮,键入所换的机号和考场),屏幕出现“登录成功 ”提示框,仔细阅读提示后单击“确定”按钮,即完成登录。登录成功,会在你
2、E:盘中形成一个用于存放答题源程序文件的 E:CPanswer 文件夹,其中已有一个存放你登录信息的名为 StInfo.DAT 的文件( 为隐含文件,不能删除该文件)。2答题源程序必须存入 E:CPanswer 文件夹中。源程序文件主名必须为:套号-卷类- 题号(其中的符号- 为西文的减号)。如:1-A-3 是第一套 A 卷第 3 题的源程序。3必须严格按题目要求的输入、输出格式来输入、输出。4. 除非题目中另有要求,假定输入的数据总是正确的。5阅卷时以试题要求和程序的运行结果为准。6. 要遵守考场纪律,有问题请告知监考老师帮助解决。7完成答题后,可 检查答题源程序文件的个数、存放位置(即E:
3、CPanswer 文件夹中)以及文件名是否正确,方法是:双击 D:CTest 文件夹中的“C 上机考检查” 快捷方式图标,屏幕会显示“应有和现有文件”以及“缺少文件”的信息。8考试结束,应将试卷交监考老师。机考试题:第 1 题( 7 分,源程序文件 1-A-1.C )编程,依次从键盘输入 n(1n10)和 n 个正整数,输出其中的素数及这些素数的累加和,如果输入的 n 个数中没有素数,则输出“None” 。例如,输入:6 99 11 100 19 1 58输出:11 19sum=30输入:5 99 100 21 4 55输出:None第 2 题( 8 分,源程序文件 1-A-2.C )编程,依
4、次从键盘输入字符串 s 和正整数 n,按下述要求处理并输出处理后的字符串 s:使字符串 s 首部和尾部连续的 * 号分别不多于 n 个,若多于 n 个,则删除多余的 * 号;若少于或等于 n 个,则什么也不做,字符串中间未与首部或尾部*号相连续的*号不加处理。例如,输入:*abcd*1*2*3*3输出:*abcd*1*2*3*输入:*5输出:*第 3 题( 8 分,源程序文件 1-A-3.C )编程,从键盘输入 10 个百分制成绩,将成绩从高到低排序并且排名,然后以“名次:成绩”的形式依次输出,最高分的名次记为1,相同的成绩名次也相同。例如,输入:99 100 80 60 70 90 99 7
5、0 50 70输出:1:100 2:99 2:99 4:90 5:80 6:70 6:70 6:70 9:60 10:50(第 1 名为 100 分,输出“1:100” 。99 分有 2 个,都算第 2 名,则第 3 名空缺。同理,第 6 名的 70 分有 3 个,空缺第 7 和第 8 名。 )程序设计基础(C 语言)上机考试题 参考解答20082009 学年冬学期 2009 年 3 月/* 1-A-1 (1)*/main() int a10,n,i,j,sum=0;scanf(“%d“,for(i=0;in) q=s+(i-n); /* 定位去除多余 *号后的起始位置 */while(*p)
6、 p+;while(*-p=*) j+; /* 计数尾部*号个数于 j */if(jn) *(p+n+1)=0; /* 截去尾部多余的*号 */puts(q);/* 1-A-2 (2) */#include “string.h“main() int i=0,j=0,n;char s81;gets(s);scanf(“%d“,for(i=0;si=*i+);if(in) i-=n; /* 定位去除多余*号后的起始位置 */else i=0;for(j=strlen(s)-1; sj=*j-);if(j0j-) /* 插入法排序 */aj=aj-1;aj=t;for(i=0;iN;i+) if(i=0|ai!=ai-1) m=i+1; /* 与前者非同名次,则名次为下标值加 1 */printf(“%d:%d “,m,ai);printf(“n“);