2013年上海市计算机二级考试c语言试题.doc
1B试卷1、以下程序的功能是:输入任意整数n(0main(){inti,j,n;char(1);printf(“Pleasen:“);scanf(“%d“,for(i=1;i#include#defineLEN80main(){charstr1[LEN],str2[LEN];intn,i;printf(“输入字符串:\n“);gets(str1);printf(“输入子字符串的长度:“);scanf(“%d“,(1));for(i=0;iintmain(){intn,k,a;printf(“请输入一个正整数:“);scanf(“%d“,n);k=1;do{a=n%10;n=n/10;if(n%10,则输出:jDk-7U25-WiN7。带错误原程序(见C:\KS\B_3_2.C):#include#includeintmain(){charstr[30];inti,n;printf(“请输入一个字符串:“);gets(n=strlen(str);for(i=0;i= a for(i=1;i=35){c++;if(c>d)d=c;if(a[i]>=40)d40++;}elsec=0;}p=d;returnd40;}intmain(){intt[32]={40,36,34,35,36,37,36,37,38,40,39,38,37,36,34,36,37,38,36,34,36,37,38,39,40,40,41,40,39,38,37,36};intd40,d;d40=fun(t,32,d);printf(“最高温度达到40℃或以上的超高温天有%d天\n“,d40);printf(“最高温度在35℃或以上的连续高温天最多有%d天\n“,d);return0;}6(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)1.编程题1编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_4_1.c文件和B_4_1.文件)保存到目录C:\KS\中。程序功能:输入整数n(设1000≤n≤9999),将n按十进制位分解为各乘式的累加和,格式参见示例,不输出系数为0的乘式。运行示例1:输入:1234输出:1234=1*1000+2*100+3*10+4*1运行示例2:输入:2030输出:2030=2*1000+3*102.编程题2编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_4_2.c文件和B_4_2.文件)保存到目录C:\KS\中。程序功能:按示例格式完成以下要求。(1)输入10个整数,保存在数组中。(2)计算并输出10个整数的最小值(注:数组中可能存在多个最小值)。(3)输出数组中每个最小值的下一个元素及其下标(如果数组的最后一个元素正好为最小值,不输出该元素的下一个元素)。(4)计算并输出上述元素的平均值(保留小数点后一位小数,如果数组只有一个最小值且正好是最后一个元素,不输出平均值)运行示例1:输入:9020010361输出:min=0,a[2]=2,a[4]=0,a[5]=1,a[7]=3,ave=1.5说明:10个元素的最小值为0,共出现4次,元素0的下一个元素依次为2、0、1、3,这4个元素的平均值为1.5。运行示例2:输入:60398190603990707839输出:min=39,a[2]=81,a[6]=90,ave=85.5说明:10个元素的最小值为39,共出现3次,元素39的下一个元素依次为81、90(最后一个39不存在下一个元素),81与90的平均值为85.5。运行示例3:输入:902001036-1输出:min=-1说明:最小值为-1,是最后一个元素且只出现一次,不存在下一个元素,也没有平均值。7C试卷1、以下程序的功能是:将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。例如,若输入18和2,则应输出10010(即十进制数18转换成二进制表示是10010)。#includevoidfun(intm,intk){inta[20],i;for(i=0;m>0;i++){a[i]=_____(1)____m/=k;}for(;i>0;_____(2)_____)printf(“%d“,_____(3)_____);}main(){intb,n;printf(“\nPleaseenteranumberandabase:\n“);scanf(“%d%d“,fun(_____(4_____);}以下程序的功能是:输出下列10行10列的矩阵。请填空完成该程序。8#includevoidfill(intb[10][10],intn)/*按1,2,3,4,5顺序依次填充数组内容*/{inti,j;for(i=n-1;iintmain(){longfib1=fib2=1,fib3;intn;printf(“%6ld%6ld“,fib1,fib2);for(n=1;n,则输出:jdk+#u##+win#。带错误原程序(见C:\KS\C_3_2.C):#includeintmain(){charstr[30];inti;printf(“请输入一个字符串:“);gets(str[30]);for(i=0;str[i]!= \0 ;i++){if(str[i]== - )str[i]= + ;elseif(str[i]>= 0 for(i=1;i5)returni-4;}elsec=0;}return0;}intmain(){intt[31]={0,25,26,30,28,27,25,26,20,18,18,23,23,22,23,22,21,20,21,20,24,26,25,24,23,21,20,18,21,21,23};intd;d=fun(*t,30);if(d==0)printf(“9月没有入秋\n“);elseprintf(“9月%d日开始入秋\n“,d);return0;}12(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)1.编程题1编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_4_1.c文件和C_4_1.文件)保存到目录C:\KS\中。程序功能:输入整数n(设1000≤n≤9999),以类似读数拼音的格式输出该数,拼音中“千、百、十“分别使用“Q、B、S“表示,格式要求参见示例。n为1000倍数时不输出百位数、十位数与个位数,n为100倍数时不输出十位数与个位数,n为10的倍数时不输出个位数。运行示例1:输入:1234输出:1Q,2B,3S,4运行示例2:输入:9008输出:9Q,0B,0S,8运行示例3:输入:5060输出:5Q,0B,6S2.编程题2编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_4_2.c文件和C_4_2.文件)保存到目录C:\KS\中。程序功能:按示例格式完成以下要求。(1)输入整数n(设2≤