1、12008 年 6 月省二级 C 语言机试模拟题及参考答案一、改错题CC101输入一个不多于 4 位的正整数,判断它是几位数。如输入 124,则输出 n=3,如果输入的数小于 0 或大于 9999 则输出 n=0,请改错。#include void main()int x,n;scanf(“%d“,n=1; /*$ERROR1$*/if(x=10000)printf(“Data Error!n“);elseif(x#include #define EPS 0.00006void main()long i;int sing;double s,t;i=1;s=1; /*$ERROR1$*/sing
2、=1;t=1;while (fabs(t)=EPS)ERROR3:i=i+2;CC103下面的程序是从键盘最多输入 10 个整数,当遇到第一个能被 7 整除的数时,就打印此数后退出循环;若未遇到,打印“not exist”,请改错。#include void main()int i,x;for(i=1;i10) printf(“not exist “);参考答案:ERROR1:scanf(“%d“,ERROR2:if(x%7=0) ERROR3:break;CC201以下程序通过指针操作,输入整型数组并对数组进行逆序输出,请改错。#include void main()int a10,*p;f
3、or(p=a;pa;p-) /*$ERROR3$*/printf(“%5d“,*p);参考答案:3ERROR1: scanf(“%d“,p);ERROR2:p=a+10-1;ERROR3:for(;p=a;p-)CC202输入一个字符串 c,下面程序是删除字符串 c 中所有数字字符,请改错。#include #include /*$ERROR1$*/void main() int n=0,i;char c80;getchar(c); /*$ERROR2$*/i=0;while (ci=0) /*$ERROR3$*/if(ci=0ERROR3:while (ci!=0)CC203以下程序的功能是
4、在 main 函数中求数组的平均值,在主函数中输出平均值,输出格式为:average:10.00,请改错。#includefloat mean(int x,int num) /*$ERROR1$*/int i;float avg;for(avg=0,i=0;i2 时) ,请改错。#include #define MAX 20void main() int n, i;int fmax; /*$ERROR1$*/printf(“input n:“);scanf(“%d“,n); /*$ERROR2$*/f1=1;f2=1;for(i=3;ivoid main()int i,j;i=1;while(
5、ivoid main()int a10=63,10,-47,28,96,2,19,-62,-22,25;int i,j,temp;for (i=0;iaj+1) /*$ERROR1$*/temp= aj;aj= aj+1;aj+1=aj; /*$ERROR2$*/for(i=0;ivoid main()int i,max1,max2,a10;for(i=0;ivoid main()int i,a1,a2,s;_ /*$BLANK1$*/for(i=1;i_100;i+) /*$BLANK2$*/a1=i%10;a2=i/10;if(i%3=0)if(a1=5)_(a2=5) /*$BLANK3
6、$*/s+=i;printf(“%dn“,s);参考答案:BLANK1: s=0; BLANK2: void main()int n,i,sum;printf(“INPUT n:“);scanf(“%d“,_); /*$BLANK1$*/sum_; /*$BLANK2$*/for(i=2; i#includevoid main()char str80=“ABCDchar sub80 ;int m=4,n=8,i,j;i=m-1;j_; /*$BLANK1$*/while(stri!=0 int i,j;gets(str);for(i=0,j=0;stri!=_;i+) /*$BLANK1$*/
7、tj+=stri;for(-i;i=_;i-) /*$BLANK2$*/tj+=stri;tj=_; /*$BLANK3$*/puts(t);8参考答案:BLANK1: 0 BLANK2: 0 BLANK3: 0 CF203下列程序功能是:将自然数 1-10 以及他们的平方根写入到指定的文件中,指定的文件名为“myfile.txt”。#include #include void main()int i;FILE *fp;if(fp=fopen(“myfile.txt“,_)=NULL) /*$BLANK1$*/exit(0);for(i=1;iint s(int k)int a,b,c;a=k
8、%10;b=k/10%10;c=k/100;if(k_a*a*a+b*b*b+c*c*c) /*$BLANK1$*/return(1);elsereturn(_); /*$BLANK2$*/void main()int i,sum;sum=0;for (i=101;ivoid main( ) _stud5= 101,“Li ping“,45, /*$BLANK1$*/102,“Zhang ping“,62.5,103,“He fang“,92.5,104,“Cheng ling“,87,105,“Wang ming“,58 ;int i,n=0;printf(“numtnametscoren“);i=0;while(iint fac(int n)10int k,f;f=_; /*$BLANK1$*/for(k=1;k0 BLANK2: PRINT(float f)FILE *out;if(out=fopen(“C:24000109RESULT.TXT“,“w+“)!=NULL)fprintf(out,“s=%f“,f);fclose(out);void main()PRINT(s);参考答案 1:#include PRINT(float f)FILE *out;if(out=fopen(“result.txt“,“w+“)!=NULL)