12004年秋浙江省高校计算机等级考试试卷(二级C)试题三、程序填空题(每空2分,共20分)说明:阅读下列程序说明和相应程序(段),在每小题提供的若干可选答案中,挑选一个正确答案。程序1、【程序说明】输入一批以-1结束的整数,求偶数和。【程序】#includestdio.hvoidmain(){intx,sum;sum=0;scanf(%d,&x);B{if(C)sum=sum+x;A;}printf(sum=%d,sum);}(36)A、while(x==-1)B、while(x!=-1)C、if(x==-1)D、if(x!=-1)(37)A、x==2B、x%2==2C、x%2==0D、x/2==0(38)A、scanf(%d,&x)B、scanf(%d,x)C、sum=0D、x=sum程序2、【程序说明】a是一个3×3的矩阵,输入a的元素,如果a是一个下三角矩阵,输出“YES”,否则,输出“NO”。(下三角矩阵,即主对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线)【程序】#includestdio.hvoidmain(){intflag,i,k;inta[3][3];for(i=0;i3;i++)for(k=0;k3;k++)scanf(%d,&a[i][k]);D;for(i=0;i3&&flag;i++)for(k=i+1;k3&&flag;k++)if(C)A;if(flag)printf(YES\n);elseprintf(NO\n);}(39)A、flag=0B、flag==0C、flag==1D、flag=1(40)A、a[k][i]!=0B、a[i][k]==0C、a[i][k]!=0D、a[k][i]==0(41)A、flag=0B、flag==0C、flag==1D、flag=1程序3、【程序说明】输入一个字符串,将其中的大写字母转换为小写字母后输出。【程序】#includestdio.hvoidmain()2{charstr[80];intk;gets(str);for(k=0;str[k]!='\0';i++)if(C)D;puts(str);}(42)A、'A'=str[k]='Z'B、str[k]'A'&&str[k]'Z'C、str[k]='A'&&str[k]='Z'D、str[k]='A'||str[k]='Z'(43)A、str[k]=str[k]–32B、str[k]=str[k]–'a'+'A'C、tolower(str[k])D、str[k]=str[k]–'A'+'a'程序4、【程序说明】请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。【程序】intf1(chars[])intf2(char*s){intk=0;{char*ss;B;while(s[k]!='\0')k++;while(*s!='\0')s++;returnk;returnC;}}(44)A、s=ssB、ss=sC、ss=NULLD、s=NULL(45)A、ss–sB、s–ss–1C、s–ssD、s–s+1试题四、程序阅读题(每题5分,共15分)说明:阅读下列程序,将运行时的输出结果写在答卷纸的相应题号下。1、程序1#includestdio.hvoidmain(){intj,k;floatf,s;s=0;f=1;for(k=1;k=3;k++){for(j=1;jk;j++)f=f*k;s=s+f;printf(%.0f#,s);}}2、程序2#includestdio.hvoidmain(){longfun(longnumber);printf(%ld\n,fun(-974));}longfun(longnumber){intflag;longres=0;flag=number0?–1:1;if(number0)number=-number;while(number!=0){res=res*10+number%10;number/=10;3printf(%d#,res);}returnflag*res;}4#47#479#-4973、程序3#includestdio.h#includestdlib.hvoidmain(){FILE*in;char*string1=IFYOUFAILTOPLAN;char*string2=YOUPLANTOFAIL;if((in=fopen(file1.txt,w))!=NULL)while(*string2!='\0')fputc(*string2++,in);fclose(in);if((in=fopen(file1.txt,r))!=NULL)while(fgetc(in)!=EOF)putchar(*string1++);fclose(in);}试题五、程序设计题(每题10分,共20分)1、输入10个整数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。#includestdio.h#includemath.hvoidmain(){inta[10],i,t,j;printf(input10numbers\n);for(i=0;i10;i++)scanf(%s,a);t=abs(a[0]);for(i=0;i9;i++)if(tabs(a[i])){t=abs(a[i]);j=i;}printf(%d,j);a[j]=a[9];a[9]=t;for(i=0;i10;i++)printf(%d\t,a[i]);}2、输入一个正实数x和一个正整数n,求下列算式的值。要求定义和调用2个函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),2个函数的返回值类型都是double。42004年秋省计算机等级考试参考答案(二级C)试题三程序填空题(每空2分,共20分)程序136.B37.C38.A程序239.D40.C41.A程序342.C43.D程序444.B45.C试题四程序阅读题(每题5分,共15分)程序11#3#21#程序24#47#479#-479程序3IFYOUFAILTOP试题五程序设计题(每题10分,本题共20分)