福建省计算机二级C语言上机题解析.docx
- 文档编号:27170861
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:54
- 大小:31.14KB
福建省计算机二级C语言上机题解析.docx
《福建省计算机二级C语言上机题解析.docx》由会员分享,可在线阅读,更多相关《福建省计算机二级C语言上机题解析.docx(54页珍藏版)》请在冰豆网上搜索。
福建省计算机二级C语言上机题解析
第一部分:
程序修改题
#include<>
#include<>
#include<>
#include<>
voidmain()
{charstr1[100],t[200];
inti,j;
/**/i=0;/**/改成j=0;
clrscr();
strcpy(str1,"4AZ18c?
Ge9a0z!
");
for(i=0;i { /**/if((str1[i]%2==0)&&(i%2! =0))/**/改成i%2==0 { t[j]=str1[i]; j++; } } t[j]='\0'; printf("\nOriginalstring: %s\n",str1); printf("\nResultstring: %s\n",t); } #include<> #include<> #include<> #include<> #defineM50 doublefun(intn) {doubley=; inti,j; j=0; for(i=1;;i++) { /**/if((i<10)&&(i%3==0))/**/改成i>10 { /**/y+=1/i;/**/改成y+=i; j++; } if(j==n)break; } returny; } voidmain() {clrscr(); printf("fun(8)=%\n",fun(8)); } #include<> voidmain() { /**/inti,j;/**/改成inti,j,k; for(i=1;i<=6;i++) { for(k=1;k<=10+i;k++) printf(""); for(j=1;j<=7-i;j++) printf("*")/**/: /**/改成; printf("\n"); } getch(); } #include<> #include<> /**/intfun();/**/该处不是函数说明,应该去掉分号 {inthen,cock,chicken,n=0; clrscr(); for(cock=0;cock<=50;cock+=1) for(hen=0;hen<=100;hen=hen+1) {chicken=2*(100-hen-2*cock); /**/if(cock+hen+chicken=100)/**/赋值号改成== {n++; printf("%d-->hen: %d,cock: %d,chicken: %d\n",n,hen,cock,chicken); if(n==20)getch(); } } returnn; } voidmain() {intnum; num=fun(); printf("\nThereare%dsolutions.\n",num); getch(); } #include<> #include<> voidmain() {intm,n,result,flag=0; /**/charch,/**/基本语法错误,逗号改成分号 clrscr(); printf("Inputanexpression: "); scanf("%d%c%d",&m,&ch,&n); /**/switchch/**/基本格式错误,改成switch(ch) {case'+': result=m+n;break; case'-': result=m-n;break; case'*': result=m*n;break; case'%': result=m%n;break; case'/': result=m/n;break; default: {printf("Error! \n");flag=1;} } if(! flag)printf("%d%c%d=%d\n",m,ch,n,result); getch(); } #include<> #include<> voidmain() { chars[20]="tableleft100",t[20]; /**/chartab[4,2]={{'a','f'},{'b','e'},{'e','a'},{'f','b'}};/**/ 数组定义形式错误,改成chartab[4][2] inti,j=0; strcpy(t,s); while(t[j]) { for(i=0;i<=3;i++) { if(t[j]==tab[i][0]) { /**/t[j]=tab[i][2];/**/改成t[j]=tab[i][1]; break; } } j++; } printf("\nThesourcestring: %s\n",s); printf("\nThetargetstring: %s\n",t); getch(); } #include<> #include<> main() { charstr1[128]; /**/inti,len;sum=0;/**/基本语法错误,改成inti,len,sum=0; printf("\nPleaseinputthestring: "); gets(str1); len=strlen(str1); for(i=0;i { /**/if(str1[i]>='0'||str1[i]<='9')/**/逻辑错误,||改成&& sum++; } printf("%d\n",sum); getch(); } #include<> #include<> #defineM8 main() {inta[M],i; printf("Pleaseinput8numbers: \n"); for(i=0;i scanf("%d",/**/a[i]/**/);输入列表项必须指定地址,改成&a[i] printf("Inverseorderis: \n"); /**/for(i=M-1;i<=0;i--)/**/循环判断条件表示错误,改成i>=0 printf("%d",a[i]); printf("\n"); getch(); } #include<> #include<> main() { /**/charstr1/**/;此处必须定义成字符数组,改成charstr1[50] inti,len,sum=0; printf("Pleaseinputastring: \n"); scanf("%s",str1); len=strlen(str1); for(i=0;i { if(str1[i]>='A'&&str1[i]<='Z') /**/sum--;/**/改成sum++; } printf("%d\n",sum); getch(); } #include<> #include<> /**/#includeM5/**/宏定义错误,改成#defineM5 main() { inta[M],i; printf("Pleaseinput5numbers: \n"); for(i=0;i scanf("%d",&a[i]); printf("Evennumbers: \n"); for(i=0;i /**/if(a[i]/2==0)/**/判断偶数应该改成a[i]%2==0 printf("%d",a[i]); printf("\n"); getch(); } #include<> #include<> main() { charstr1[128],str2[128]; inti,len; gets(str1); len=strlen(str1); /**/for(i=0;i>len;i++)/**/循环条件表示错误,改成for(i=0;i { if(str1[i]>='0'&&str1[i]<='8') str2[i]=str1[i]+1; elseif(str1[i]=='9') str2[i]='0'; else str2[i]=str1[i]; } /**/str2[i]='\n';/**/字符串的结束标识应该用'\0'表示 puts(str2); getch(); } #include<> #include<> voidmain() { chars1[30]="People'sRepublicof",s2[]="China"; char*ps1,*ps2; /**/ps1=NULL;/**/指针ps1指向字符串s1,改成ps1=s1; ps2=s2; /**/while(*ps1==NULL)/**/判断是否到达串尾标识,应改成*ps1! ='\0' ps1++; while(*ps2) *(ps1++)=*(ps2++); printf("\n%s\n",s1); getch(); } #include<> #include<> voidmain() { floata[3],s,area; inti; printf("Pleaseinput3numbers: \n"); for(i=0;i<3;i++) scanf("%f",/**/a[i]/**/);输入列表项必须指定地址 /**/if(a[0]+a[1]>a[2]||a[1]+a[2]>a[0]||a[0]+a[2]>a[1])/**/ 逻辑条件标识错误,||改成&& { s=(a[0]+a[1]+a[2])/2; area=sqrt(s*(s-a[0])*(s-a[1])*(s-a[2])); printf("areais%.2f\n",area); } else printf("error.\n"); getch(); } #include<> #include<> /**/voidfun()/**/此处说明函数有返回值,改成intfun() { intlarge,middle,small,n=0; clrscr(); for(large=0;large<=33;large++) for(middle=0;middle<=50;middle++) { small=2*(100-3*large-2*middle); /**/if(large+middle+small=100)/**/=改成== { n++; printf("%d-->large: %d,middle: %d,small: %d\n",n,large,middle,small); } } returnn; } voidmain() { intnum; num=fun(); printf("\nThereare%dsolutions.\n",num); getch(); } #include<> voidmain() { inti; /**/for(i=100;i<200;i++);/**/for语句错误,此处去掉分号 if((i-2)%4==0) if(! ((i-3)%7)) if(i%9==5) printf("%d\n",/**/&i/**/);去掉地址符号& getch(); } #include<> /**/voidswap(intp1,intp2)/**/改成voidswap(int*p1,int*p2) { inttemp; temp=*p1; /**/p1=p2;/**/改成*p1=*p2; *p2=temp; } voidmain() { inta,b; printf("pleaseinput2numbers: \n"); scanf("%d%d",&a,&b); printf("\nOriginal: a=%db=%d\n",a,b); swap(&a,&b); printf("\nResult: a=%db=%d\n",a,b); getch(); } #include<> voidmain() { intb,i; /**/inta=c=0;/**/基本语法错误,改成inta=0,c=0; /**/for(i=0,i<=100,i+=2)/**/for语句语法错误,改成for(i=0;i<=100;i+=2) { a+=i; b=i+1; c+=b; } printf("totalofevennumbers: %d\n",a); printf("totalofoddnumbers: %d\n",c-101); getch(); } #include<> voidmain() { intx,y,z,i,result=520; for(x=1;x<10;x++) for(y=1;y<10;y++) /**/for(z=1;z<10;z++)/**/z初值应为0,改成for(z=0;z<10;z++) { i=100*x+10*y+z+100*y+10*z+z; /**/if(i=result)/**/逻辑关系等于应该为i==result printf("x=%d,y=%d,z=%d\n",x,y,z); } getch(); } #include<> #defineF(x)(x**x+/(x+ voidmain() { floata=,b=,c; /**/ints;/**/变量类型错误,改成floats; printf("\nPleaseinputc: "); scanf("%f",/**/c/**/);输入列表项必须加地址&c /**/s=F(a,b,c);/**/ printf("\ns=%.2f\n",s); getch(); } #include<> voidmain() { intf,s,t,n; printf("\nThelistis: \n"); for(n=100;n<1000;n++) { f=n%10;f为个位数 s=(n%100)/10;s为十位数 /**/t=n%100;/**/t为百位数,应改成t=n/100; /**/if(t*t*t+s*s*s+f*f*f=n)/**/=应改成== printf("%d",n); } printf("\n"); getch(); } 第二部分: 程序填空题 #include<> voidmain() {/**/long/**/p; inti; p=1; /**/for/**/(i=1;i<=8;i++) p=p*i; printf("\np=%ld",p); getch(); } #include<> voidmain() { inta,b,c; floatf; clrscr(); printf("Pleaseinputab: "); scanf("%d%d",&a,&b); f=/**/*a/b/**/; c=/**/(int)/**/(f*100)%10; printf("\na/b=%fTheseconddecimalplaceis: %d\n",f,c); getch(); } #include<> #include<> intmax,min; voidfind_max_min(int*p,intn) { int*q; max=min=*p; for(q=p;q**/p+n/**/;q++) if(/**/max<*q/**/)max=*q; elseif(min>*q)min=*q; } voidmain() { inti,num[10]; printf("Input10numbers: "); for(i=0;i<10;i++)scanf("%d",&num[i]); find_max_min(/**/num/**/,10); printf("max=%d,num=%d\n",max,min); } #include<> voidmain() { inta,b,k; intplu=/**/403/**/; for(a=1;a<10;a++) for(b=1;b<10;b++) { k=(a*10+b)*/**/(b*10+a)/**/; if(k==plu)printf("A=%d,B=%d\n",a,b); } } #include<> voidmain() { intn,a,b; /**/ a=0; b=0; /**/ scanf("%d",&n); while(/**/n! =0/**/) { if(n>0)a++; else/**/b++;/**/ scanf("%d",&n); } printf("Positiveinteger: %d,negativeinteger: %d\n",a,b); } #include<> #include<> intprime(intn) {intk,flag=1; for(k=2;k<=n/2+1;k++) if(n%k==0){flag=/**/0/**/;break;} returnflag; } voidmain() {intnum,a; clrscr(); do {printf("Pleaseinputanevennumber: "); scanf("%d",&num); }while(num<=6||num%2==1); for(a=2;a<=num/2+1;a++) if(prime(a)&&prime(/**/num-a/**/)) printf("\n%d=%d+%d",num,a,num-a); } #include<> #include<> /**/main()/**/ {floatx,x0,f,f1; x=; do {x0=x; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1; }/**/while/**/(fabs(x-x0)>=1e-6); printf("therootis: %.2f\n",x); } #include<> main() { /**/char/**/str[20]; inti; floatx; printf("Pleaseinputastring: \n"); scanf("%s",/**/str/**/); i=0; while(str[i]) { str[i]=/**/str[i]^15;/**/ i++; } printf("\nTargetstring: %s\n",str); getch(); } #include<> main() { inta[5]={20,30,45,64,23}; floatm; /**/floataverage(intpa[],intn);/**/ m=average(a,5); printf("Average=%f\n",m); getch(); } floataverage(intpa[],intn) {intk; floatavg=; for(k=0;k avg=avg+/**/pa[k]/**/; avg=avg/n; returnavg; } #include<> main() { /**/char/**/s[80]; inti; printf("Pleaseinputastring: "); for(i=0;(s[i]=getchar())! ='\n';i++); s[i]='\0'; for(i=0;s[i]! ='\0';i++) {if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-32; /**/elseif/**/(s[i]>='A'&&s[i]<='Z') s[i]=s[i]+32; printf("%c",s[i]); } getch(); } #include<> #include<> voidsort(inta[],intm) {inti,j,t,swap; for(i=0;i**/m-1/**/;i++) { swap=0; for(j=0;j {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建省 计算机 二级 语言 上机 题解