《2012年上海市高等学校计算机等级考试试卷二级C语言程序设计A卷.docx》由会员分享,可在线阅读,更多相关《2012年上海市高等学校计算机等级考试试卷二级C语言程序设计A卷.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2019年上海市高等学校计算机等级考试试卷二级 C语言程序设计 ( A 卷)(本试卷考试时间 120 分钟)一、单选题 ( 本大题 10 道小题 ,每小题 1 分,共 10 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。1.在一个C 语言源程序中,main()函数的位置_。 答案:CA.必须在最前面B.必须在其它函数之前C.可以在任意位置D.必须在最后面2. 设有变量定义:int a =5, 6, 1, 3, 7, c, i; 当执行完语句:for(i=c=0; idata);B.q = p-next; printf(%c,q-data);C.q = p; prin
2、tf(%c,q);D.q = p-next; printf(%c,q);二、程序填空题 ( 本大题 2 道小题,每空 2.5 分,共 20 分)。1. 程序完成以下功能:对x=1,2,.,10,求函数f(x)=x-10cos(x)-5sin(x)的最大值,并将该值写到新建文件data.txt中。#include #include void main() FILE *p;float f(float),max,x;if(p=fopen(_1_ ,w)=NULL) printf(cannot open FILEn); exit(0); max=f(1);for(x=2;x=10;x+)if(_2_
3、f(x)max=f(x);fprintf(p,%.3f,max);fclose(_3_);float f(float x) _4_;y=x-10*cos(x)-5*sin(x);return y;1):【data.txt】2):【max】3):【p】4):【double y】【float y】2. 在输入的字符串中删除小写字母t,并统计被删除字母的个数。如输入:gt=5xt-6ty 则输出:删除后的串为:g=5x-6y 删除个数:3 #include#include int f(char s)int i=0, _1_;while(si!=0) if(_2_ = t)strcpy(s+i,s+i
4、+1);c=c+1; elsei+;_3_;void main() int s;char str80;gets(str);s=f(_4_);printf(删除后的串为:) ;puts(str);printf(删除个数:%d,s) ;1):【c=0】2):【si】【*(s+i)】3):【return c】【return c;】【return (c)】【return (c);】4):【str】三、操作题(一)程序调试题(3小题,第1,2小题各3处错,第3小题4处错,每改正1处得3分,共30分)1. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/
5、*/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_1.C文件和B_2_1.EXE文件)保存到目录C:KS中。功能说明:程序从键盘输入8个学生计算机二级考试的成绩(成绩可能有小数),统计并输出成绩合格的学生的人数。程序对有小数的成绩应也能够正确处理。例如输入:71.5 46 64.5 82 94 53 79 48则输出:5带错误原程序(见C:KSB_2_1.C):#include int main()int i, c;float score8;c=0;for (i=0; i8; i+) scanf(%d, &scorei); if (scorei60) c+; printf(%dn
6、, c);getchar(); /*本句无错;暂停程序,按任意键继续 */2. 程序调试题2调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_2.C文件和B_2_2.EXE文件)保存到目录C:KS中。功能说明:程序从键盘输入一个字符串(长度不超过80),然后用选择法按照字符顺序从小到大进行排序,最后输出排序后的字符串。例如输入:ca39t6k则输出:369ackt带错误原程序(见C:KSB_2_2.C):#include #include int main()char str81, *p, *
7、q, *minq;gets(str81); for (p=str; *p!=0; p+) / 用选择法按照字符顺序从小到大进行排序for (q=minq=p; *q!=0; q+) / 用minq指向本趟排序字符值最小的字符的位置if (*q*minq) minq=q; if (minq!=p) / 字符值最小的字符不在希望的位置上,则交换 c=*minq; *minq=*p; *p=c; puts(str);getchar(); /*本句无错;暂停程序,按任意键继续 */3. 程序调试题3调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释)
8、,使其运行能得到正确的结果。将结果(包括B_2_3.C文件和B_2_3.EXE文件)保存到目录C:KS中。功能说明:函数mysum的功能是计算n个整数中数值在7080之间(含70和80)的整数的和,程序从键盘输入8个整数,通过调用函数mysum计算这8个整数中数值在7080之间的整数的和,然后输出。例如输入:23 71 56 85 94 78 63 80则输出:sum=229带错误原程序(见C:KSB_2_3.C):#include float mysum(int b, int n) float s;int i;for (i=0; in; i+)if (70=bi=80) s += bi; r
9、eturn s;int main()int a8, i;for (i=0; i8; i+)scanf(%d, &ai);printf(sum=%.0fn, mysum(int a, 8); getchar(); /*本句无错;暂停程序,按任意键继续 */(二)编程题(2小题,共35分)1编程题1编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_4_1.C文件和B_4_1.EXE文件)保存到目录C:KS中。程序功能:从键盘上输入一个字符并存放到变量c,再输入一个整数存放到变量n(设2n20),输出以变量c中的字符组成的n行2n列方波波形图案,当c,n为#,8时,图案及坐标
10、计算如下图所示。程序运行两次,分别输入# 8和 5时的运行结果如下:2编程题2编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_4_2.C文件和B_4_2.EXE文件)保存到目录C:KS中。功能说明:电力公司根据如下费率表进行收费:第一个300度(0到300度)以每度0.6元计,下一个 300度(301到600度)以每度0.5元计,再下一个 400度(601到1000度)以每度0.4元计,超过1000度的电量以每度0.3元计。(1)设计计费函数float fee(int x); 函数根据客户用电量(x)计算电费并返回;(2)设计主函数,从键盘上输入3个客户的用电量,调用fee函数分别计算出相应电费,并按示例格式输出(电费保留一位小数)。运行示例:输入:123 2019 985输出:fee(123)=73.8fee(2019)=793.3fee(985)=484.0第 11 页