计算机二级上机程序改错题1-50

合集下载

国家二级c语言上机考试分类程序改错

国家二级c语言上机考试分类程序改错

改错1#include <stdio.h>/************found************/void fun ( int n ){ int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ) {/************found************/s = s + (Double)a / b;c = a; a = a + b; b = c;}return s;}main( ){ int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) ); }【参考答案】(1)double fun(int n)(2)s=s+(double)a/b;2#include <stdio.h>int fun (char *str,char *substr){ int i,j,k,num=0;/************found************/for(i = 0, str[i], i++)for(j=i,k=0;substr[k]==str[j];k++,j++)/************found************/If(substr[k+1]=='\0'){ num++;break;}return num;}main(){char str[80],substr[80];printf("Input a string:") ;gets(str);printf("Input a substring:") ;gets(substr);printf("%d\n",fun(str,substr));}【参考答案】(1)for(i=0;str[i];i++)(2)if(substr[k+1]== ′\0′)3#include <stdio.h>int fun(int *x,int y){int t ;/**************found**************/ t = x ; x = y ;/**************found**************/ return(y) ;}main(){int a = 3, b = 8 ;printf("%d %d\n", a, b) ;b = fun(&a, b) ;printf("%d %d\n", a, b) ;}【参考答案】(1)t = *x ; *x = y ;(2)return(t) ;或return t;4#include <stdio.h>int fun(int a,int b){ int r,t;if(a<b) {/************found************/t=a; b=a; a=t;}r=a%b;while(r!=0){ a=b; b=r; r=a%b; }/************found************/return(a);}main(){ int num1, num2,a;printf("Input num1 num2: "); scanf("%d%d",&num1,&num2);printf("num1= %d num2= %d\n\n",num1,num2);a=fun(num1,num2);printf("The maximun common divisor is %d\n\n",a);}【参考答案】(1) t=a;a=b;b=t;(2) return(b);或return b;5、#include <stdio.h>void fun (long s, long *t){ int d;long sl=1;/************found************/t = 0;while ( s > 0){ d = s%10;/************found************/if (d%2 == 0){ *t = d * sl + *t;sl *= 10;}s /= 10;}}main(){ long s, t;printf("\nPlease enter s:"); scanf("%ld", &s);fun(s, &t);printf("The result is: %ld\n", t);}【参考答案】(1)*t=0;(2)if(d%2!=0)或if(d%2==1)6#include <stdio.h>long fun(int g){/**********found**********/switch(g);{ case 0: return 0;/**********found**********/case 1 ;case 2 : return 1 ;}return( fun(g-1)+fun(g-2) );}main(){ long fib; int n;printf("Input n: "); scanf("%d",&n); printf("n = %d\n",n);fib=fun(n);printf("fib = %d\n\n",fib);}【参考答案】(1) 去掉分号(2) case 1:case 2:return 1;7#include <stdio.h>void fun(char *p, char *b){ int i, k=0;while(*p){ i=1;while( i<=3 && *p ) {/**********found**********/b[k]=p;k++; p++; i++;}if(*p){/**********found**********/b[k++]=" ";}}b[k]='\0';}main(){ char a[80],b[80];printf("Enter a string: "); gets(a);printf("The original string: "); puts(a);fun(a,b);printf("\nThe string after insert space: "); puts(b); printf("\n\n"); }【参考答案】(1) b[k]=*p;(2) b[k]=′′;k++;8#include <stdio.h>#include <string.h>char* fun( char tt[] ){int i;for( i = 0; tt[i]; i++ )/**********found***********/if(( 'a' <= tt[i] )||( tt[i] <= 'z' ) )/**********found***********/tt[i] += 32;return( tt );}main( ){char tt[81];printf( "\nPlease enter a string: " );gets( tt );printf( "\nThe result string is:\n%s", fun( tt ) ); }【参考答案】(1)if(( tt[i]>=a′)&&( tt[i] <= ′z′)(2)tt[i]-=32;9#include <stdio.h>#include <string.h>#define MAXLINE 20fun ( char *pstr[6]){ int i, j ;char *p ;for (i = 0 ; i < 5 ; i++ ) {/**************found**************/for (j = i + 1, j < 6, j++){if(strcmp(*(pstr + i), *(pstr + j)) > 0){p = *(pstr + i) ;/**************found**************/*(pstr + i) = pstr + j ;*(pstr + j) = p ;}}}}main( ){ int i ;char *pstr[6], str[6][MAXLINE] ;for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;printf( "\nEnter 6 string(1 string at each line): \n" ) ;for(i = 0 ; i < 6 ; i++) scanf("%s", pstr[i]) ;fun(pstr) ;printf("The strings after sorting:\n") ;for(i = 0 ; i < 6 ; i++) printf("%s\n", pstr[i]) ;}【参考答案】(1)for (j = i + 1; j < 6; j++)(2)*(pstr + i) = *(pstr + j) ;10#include <stdio.h>long fun (long num){/************found************/long k;do{ k*=num%10 ;/************found************/num\=10 ;} while(num) ;return (k) ;}main( ){ long n ;printf("\nPlease enter a number:") ; scanf("%ld",&n) ; printf("\n%ld\n",fun(n)) ;}【参考答案】(1)long k=1;(2)num /=10;11#include <stdio.h>void fun(float *a,float *b,float *c){/**********found**********/float *k;if( *a<*b ){ k=*a; *a=*b; *b=k; }/**********found**********/if( *a>*c ){ k=*c; *c=*a; *a=k; }if( *b<*c ){ k=*b; *b=*c; *c=k; }}main(){ float a,b,c;printf("Input a b c: "); scanf("%f%f%f",&a,&b,&c);printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);fun(&a,&b,&c);printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);}【参考答案】(1)float k;(2)if(*a< *c)12#include <stdio.h>long fun (int a, int n){ int j ;/**************found**************/long s = 0, t = 1 ;for ( j = 0 ; j < n ; j++)t = t * 10 + a ;s = t ;for ( j = 1 ; j < n ; j++) {/**************found**************/t = t % 10 ;s = s - t ;}return(s) ;}main( ){ int a, n ;printf( "\nPlease enter a and n:") ;scanf( "%d%d", &a, &n ) ;printf( "The value of function is: %ld\n", fun ( a, n ) ); }【参考答案】(1)long s=0, t=0;(2)t=t/10;13#include <stdio.h>long fun (int a, int n){ int j ;/**************found**************/long s = 0, t = 1 ;for ( j = 0 ; j < n ; j++)t = t * 10 + a ;s = t ;for ( j = 1 ; j < n ; j++) {/**************found**************/t = t % 10 ;s = s - t ;}return(s) ;}main( ){ int a, n ;printf( "\nPlease enter a and n:") ;scanf( "%d%d", &a, &n ) ;printf( "The value of function is: %ld\n", fun ( a, n ) ); }【参考答案】(1)long s=0, t=0;(2)t=t/10;14#include <stdio.h>int fun( int *b ){ int k,a1,a2,i=0;for(k=10; k<=55; k++) {/************found************/a2=k/1O;a1=k-a2*10;if((k%3==0 && a2==5)||(k%3==0 && a1==5)){ b[i]=k; i++; }}/************found************/return k;}main( ){ int a[100],k,m;m=fun( a );printf("The result is :\n");for(k=0; k<m; k++) printf("%4d",a[k]); printf("\n"); }【参考答案】(1)a2=k/10;(2)return i;15#include <stdio.h>/************found************/void fun (char a){ if ( *a ){ fun(a+1) ;/************found************/printf("%c" *a) ;}}main( ){ char s[10]="abcd";printf("处理前字符串=%s\n处理后字符串=", s);fun(s); printf("\n") ;}【参考答案】(1)void fun(char *a)(2)printf("%c" ,*a) ;16#include <stdio.h>int fun( char *p ){ int n;/**********found**********/n= *P-'o';p++;while( *p!=0 ) {/**********found**********/n=n*8+*P-'o';p++;}return n;}main(){ char s[6]; int i; int n;printf("Enter a string (Ocatal digits): "); gets(s);if(strlen(s)>5){ printf("Error: String too longer !\n\n");exit(0); } for(i=0; s[i]; i++)if(s[i]<'0'||s[i]>'7'){ printf("Error: %c not is ocatal digits!\n\n",s[i]);exit(0); } printf("The original string: "); puts(s);n=fun(s);printf("\n%s is convered to integer number: %d\n\n",s,n);}【参考答案】(1)n= *p-′0′;(2)n=n*8+*p-′0′;17#include <stdio.h>void fun (long s, long *t){ int d;long sl=1;*t = 0;while ( s > 0){ d = s%10;/************found************/if (d%2=0){ *t=d* sl+ *t;sl *= 10;}/************found************/s \= 10;}}main(){ long s, t;printf("\nPlease enter s:"); scanf("%ld", &s);fun(s, &t);printf("The result is: %ld\n", t);}【参考答案】(1)if(d%2==0)(2)s/=10;18#include <stdio.h>#include <math.h>int fun( int high ){ int sum = 0, n=0, j, yes;/************found************/while ((high >= 2) && (n < 10){ yes = 1;for (j=2; j<=high/2; j++ )if (high % j ==0 ){/************found************/yes=0; break}if (yes) { sum +=high; n++; }high--;}return sum ;}main ( ){printf("%d\n", fun (100));}【参考答案】(1)while((high>=2) && (n<10))(2)yes=0; break;19#include <stdio.h>void fun( char *s ){ int i,j;for(i=j=0; s[i]!='\0'; i++)if(s[i]!='c')/************found************/s[j]=s[i];/************found************/s[i]=0;}main(){ char s[80];printf("Enter a string: "); gets(s);printf("The original string: "); puts(s);fun(s);printf("The string after deleted : "); puts(s);printf("\n\n"); }【参考答案】(1)s[j++]=s[i];或{s[j]=s[i];j++;}(2)s[j]= ′\0′;20#include <stdio.h>/************found************/void fun (long s, long t){ long sl=10;*t = s % 10;while ( s > 0){ s = s/100;*t = s%10 * sl + *t;/************found************/sl = sl*100;}}main(){ long s, t;printf("\nPlease enter s:"); scanf("%ld", &s);fun(s, &t);printf("The result is: %ld\n", t);}【参考答案】(1)void fun(long s,long *t)(2)s1=s1*10;21#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <math.h>/*************found**************/ f(double x){if(x==0.0||x==2.0)return 0.0;else if(x<0.0)return(x-1)/(x-2);elsereturn(x+1)/(x-2);}double fun(int n){int i; double s=0.0,y;for(i=-n; i<=n;i++){ y=f(1.0*i); s+=y;}/*************found**************/ return s}void main(){ system("CLS");printf("%f\n", fun(5));}【参考答案】(1)double f(double x)(2)return s ;22#include <stdio.h>/************found************/ fun(int x, y, z ){ int j,t ,n ,m;j = 1 ;t=j%x;m=j%y ;n=j%z;while(t!=0||m!=0||n!=0){ j = j+1;t=j%x;m=j%y;n=j%z;}/************found************/return i;}main( ){ int x1,x2,x3,j ;printf("Input x1 x2 x3: "); scanf("%d%d%d",&x1,&x2,&x3);printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);j=fun(x1,x2,x3);printf("The minimal common multiple is : %d\n",j);}【参考答案】(1)fun(int x,int y, int z)或int fun(int x,int y,int z)(2)return j;23#include <stdio.h>#include <string.h>void fun (char *s, char *t1, char *t2 , char *w){char *p , *r, *a;strcpy( w, s );while ( *w ){ p = w; r = t1;/************found************/while ( r )if ( *r == *p ) { r++; p++; }else break;if ( *r == '\0' ){ a = w; r = t2;while ( *r ){/************found************/*a = *r; a++; r++}w += strlen(t2) ;}else w++;}}main(){char s[100], t1[100], t2[100], w[100];printf("\nPlease enter string S:"); scanf("%s", s); printf("\nPlease enter substring t1:"); scanf("%s", t1); printf("\nPlease enter substring t2:"); scanf("%s", t2); if ( strlen(t1)==strlen(t2) ) {fun( s, t1, t2, w);printf("\nThe result is : %s\n", w);}else printf("Error : strlen(t1) != strlen(t2)\n");}【参考答案】(1)while( *r)(2){*a=*r;a++;r++;}24#include <stdio.h>#include <string.h>#define N 5#define M 81/**********found**********/fun(char (*sq)[M]){ int i; char *sp;sp=sq[0];for(i=0;i<N;i++)if(strlen( sp)<strlen(sq[i]))sp=sq[i] ;/**********found**********/return sq;}main(){ char str[N][M], *longest; int i;printf("Enter %d lines :\n",N);for(i=0; i<N; i++) gets(str[i]);printf("\nThe N string :\n",N);for(i=0; i<N; i++) puts(str[i]);longest=fun(str);printf("\nThe longest string :\n"); puts(longest); }【参考答案】(1)char *fun(char (*sq)[M])(2)return sp;25#include <stdio.h>#define N 10/************found************/void fun(int a[], int m ){ int low=0,high=N-1,mid;while(low<=high){ mid=(low+high)/2;if(m<a[mid])high=mid-1;/************found************/else If(m > a[mid])low=mid+1;else return(mid);}return(-1);}main(){ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;printf("a数组中的数据如下:");for(i=0;i<N;i++) printf("%d ", a[i]);printf("Enter m: "); scanf("%d",&m);k=fun(a,m);if(k>=0) printf("m=%d,index=%d\n",m,k);else printf("Not be found!\n");}【参考答案】(1)int fun(int a[],int m)或fun(int a[],int m)(2)else if(m>a[mid])26#include <stdio.h>/************found************/void fun (long s, long t){ long sl=10;s /= 10;*t = s % 10;/************found************/while ( s < 0){ s = s/100;*t = s%10*sl + *t;sl = sl * 10;}}main(){ long s, t;printf("\nPlease enter s:"); scanf("%ld", &s);fun(s, &t);printf("The result is: %ld\n", t);}【参考答案】(1)void fun(long s,long *t)(2)while(s>0)27#include <stdio.h>#include <math.h>/**********found**********/fun(double a, dounle x0){ double x1, y;x1=(x0+ a/x0)/2.0;/**********found**********/if( fabs(x1-x0)<0.00001 )y=fun(a,x1);else y=x1;return y;}main( ){ double x;printf("Enter x: "); scanf("%lf",&x);printf("The square root of %lf is %lf\n",x,fun(x,1.0)); }【参考答案】(1)double fun(double a,double x0)(2)if(fabs(x1-x0)>=0.00001)28#include <stdio.h>#define N 20void fun(int a[], int n){ int i, j, t, p;for (j = 0 ;j < n-1 ;j++) {/************found************/p = jfor (i = j;i < n; i++)if(a[i] < a[p])/************found************/p = j;t = a[p] ; a[p] = a[j] ; a[j] = t;}}main(){int a[N]={9,6,8,3,-1},i, m = 5;printf("排序前的数据:") ;for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n");fun(a,m);printf("排序后的数据:") ;for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n");}【参考答案】(1)p=j ;(2)p=i;29#include <stdio.h>#include <math.h>#include <stdlib.h>/************found************/#define FU(m,n) ((m/n))float fun(float a,float b,float c){ float value;value=FU(a+b,a-b)+FU(c+b,c-b);/************found************/Return(Value);}main(){ float x,y,z,sum;printf("Input x y z: ");scanf("%f%f%f",&x,&y,&z);printf("x=%f,y=%f,z=%f\n",x,y,z);if (x==y||y==z){printf("Data error!\n");exit(0);} sum=fun(x,y,z);printf("The result is : %5.2f\n",sum);}【参考答案】(1)#define FU(m,n) (m)/(n)(2)return (value);30#include <stdio.h>#include <string.h>#define N 80void insert(char *aa){ int i,j,n; char ch;/**********found**********/n=strlen[ aa ];for( i=1; i<n ;i++ ) {/**********found**********/c=aa[i];j=i-1;while ((j>=0) && ( ch<aa[j] )){ aa[j+1]=aa[j];j--;}aa[j+1]=ch;}}main( ){ char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf ("The original string : %s\n", a);insert(a) ;printf("The string after sorting : %s\n\n",a );}【参考答案】(1)n=strlen( aa ) ;(2)ch=aa[i];31.#include <stdlib.h>#include <conio.h>#include <stdio.h>int fun(int m){ int k=2;while (k<=m&&(m%k))/*************found**************/k++/*************found**************/if(m=k)return 1;else return 0;}void main(){ int n;system("CLS");printf("\nPlease enter n: ");scanf("%d",&n);if(fun(n)) printf("YES\n");else printf("NO!\n");}【参考答案】(1)正确:k++;(2)正确:if(m==k)32.#include <stdio.h>#include <string.h>/************found************/void fun (char s, char t){int i, d;d = strlen(s);for (i = 0; i<d; i++) t[i] = s[i];for (i = 0; i<d; i++) t[d+i] = s[d-1-i];/************found************/t[2*d-1] = '\0';}main(){char s[100], t[100];printf("\nPlease enter string S:"); scanf("%s", s);fun(s, t);printf("\nThe result is: %s\n", t);}【参考答案】(1)void fun ( char *s , char *t )(2)t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;33.#include <stdio.h>double fun ( int m ){ double y = 1.0 ;int i;/**************found**************/for(i = 2 ; i < m ; i++)/**************found**************/y += 1 / (i * i) ;return( y ) ;}main( ){ int n = 5 ;printf( "\nThe result is %lf\n", fun ( n ) ) ;}【参考答案】(1)for(i=2;i<=m;i++)(2)y+=1.0/(i*i);或y+=(double)1.0/(i*i)34.#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <string.h>#define N 80void fun(char *s, char t[]){int i, j=0;for(i=0; i<(int)strlen(s);i++)/*************found**************/if(i%2 && s[i]%2==0)t[j++]=s[i] ;/*************found**************/t[i]='\0';}void main(){char s[N], t[N];system("CLS");printf("\nPlease enter string s :");gets(s);fun(s,t);printf("\nThe result is :%s\n",t);}【参考答案】(1)if(i%2 || s[i]%2==0) 或 if(i%2 !=0 || s[i]%2==0)(2)t[j]= ′\0′; 或 t[j]=0;35.#include <stdio.h>#define N 20int fun(int *a,int n,int x){ int p=0,i;a[n]=x;while( x!=a[p] )p=p+1;/**********found**********/if(P==n) return -1;else{ for(i=p;i<n-1;i++)/**********found**********/a[i+1]=a[i];return n-1;}}main(){ int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;n=10;printf("The original data :\n");for(i=0;i<n;i++) printf("%5d",w[i]);printf("\nInput x (to delete): "); scanf("%d",&x);printf("Delete : %d\n",x);n=fun(w,n,x);if ( n==-1 ) printf("***Not be found!***\n\n");else{ printf("The data after deleted:\n");for(i=0;i<n;i++) printf("%5d",w[i]);printf("\n\n");}}【参考答案】(1)if(p==n) return -1;(2)a[i]=a[i+1];36.#include <stdlib.h>#include <conio.h>#include <string.h>#include <stdio.h>#define N 80int fun(char *s,char *t){ int n;char *p, *r;n=0;p=&s[0];/*************found**************/*r=t;while(*p){if(*r==*p){r++;if(*r=='\0'){n++;/*************found**************/【1】;}}p++;}return n;}void main(){char a[N],b[N]; int m;system("CLS");printf("\nPlease enter string a: ");gets(a);printf("\nPlease enter substring b: ");gets(b);m=fun(a,b);m=printf("\nThe result is :m=%d\n",m);}【参考答案】(1)r=t;(2)应填:r=t;或r=&t[0];37.#include <math.h>#include <stdio.h>float fun ( float num ){ int s ;float n, t, pi ;t = 1 ; pi = 0 ; n = 1 ; s = 1 ;/**************found**************/ while(t >= num){pi = pi + t ;n = n + 2 ;s = -s ;/**************found**************/ t = s % n ;}pi = pi * 4 ;return pi ;}main( ){ float n1, n2 ;printf("Enter a float number: ") ;scanf("%f", &n1) ;n2 = fun(n1) ;printf("%6.4f\n", n2) ;}【参考答案】(1)while(fabs(t)>=num)(2)t=s/n;38.#include <stdlib.h>#include <stdio.h>#include <ctype.h>#include <conio.h>void fun(char *s)/*************found**************/{ while(*s!= '@'){ if(*s>='A'&&*s<='Z'||*s>='a'&&*s<='z') {if(*s=='Z') *s='A';else if(*s=='z') *s='a';else *s+=1;}/*************found**************/(*s)++;}}void main(){ char s[80];system("CLS");printf("\n Enter a string with length<80:\n\n"); gets (s);printf("\n The string:\n\n");puts(s);fun(s);printf("\n\n The Cords :\n\n");puts(s);}【参考答案】(1)while(*s)或while(*s!='\0')(2)s++;39.#include <stdlib.h>#include <stdio.h>#include <conio.h>void fun(char *s){int i,j;for(i=0,j=0; s[i]!= '\0'; i++)if(s[i]>= '0'&&s[i]<= '9')/*************found**************/s[j]=s[i];/*************found**************/s[j]=”\0”;}void main(){char item[80];system("CLS");printf("\nEnter a string: ");gets(item);printf("\n\nThe string is:%s\n",item);fun(item);printf("\n\nThe string of changing is :%s\n",item); }【参考答案】(1)s[j++]=s[i];(2)s[j]= '\0';40.#include <stdio.h>double fun ( int x[]){/************found************/int sum = 0.0;int c=0, i=0;while (x[i] != 0){ if (x[i] > 0) {sum += x[i]; c++; }i++;}/************found************/sum \= c;return sum;}main( ){ int x[1000]; int i=0;printf( "\nPlease enter some data (end with 0): " );do{ scanf("%d", &x[i]); }while (x[i++] != 0);printf("%f\n", fun ( x ));}【参考答案】(1)double sum=0.0;(2)sum/=c;41.#include <stdio.h>#include <string.h>void fun (char *s, char *t1, char *t2 , char *w){char *p , *r, *a=s;strcpy( w, s );/************found************/while ( w ){ p = w; r = t1;while ( *r )/************found************/IF ( *r == *p ){ r++; p++; }else break;if ( *r == '\0' ) a = w;w++;}r = t2;while ( *r ){ *a = *r; a++; r++; }}main(){char s[100], t1[100], t2[100], w[100];printf("\nPlease enter string S:"); scanf("%s", s); printf("\nPlease enter substring t1:"); scanf("%s", t1); printf("\nPlease enter substring t2:"); scanf("%s", t2); if ( strlen(t1)==strlen(t2) ){ fun( s, t1, t2, w);printf("\nThe result is : %s\n", w);}else printf("\nError : strlen(t1) != strlen(t2)\n");}【参考答案】(1)while (*w)(2)if ( *r ==*p )42.#include <stdlib.h>#include <conio.h>#include <string.h>#include <stdio.h>#include <malloc.h>#define N 10typedef struct ss{ char num[10];int s;} STU;STU *fun(STU a[], int m){ STU b[N],*t;int i, j,k;/*************found**************/*t=calloc(m,sizeof(STU));for(i=0;i<N;i++) b[i]=a[i];for(k=0;k<m;k++){ for (i=j=0;i<N;i++)if(b[i].s>b[j].s) j=i;/*************found**************/t[k].num=b[j].num;t[k].s=b[j].s;b[j].s=0;}return t;}outresult(STU a[],FILE *pf){ int i;for(i=0;i<N;i++)fprintf(pf, "No=%s Mark=%d\n ",a[i].num, a[i].s);fprintf(pf, "\n\n ");}void main(){ STU a[N]={{ "A01 ",81},{ "A02 ",89},{ "A03 ",66},{ "A04 ",87},{ "A05 ",77}, { "A06 ",90},{ "A07 ",79},{ "A08 ",61},{ "A09 ",80},{ "A10 ",71}}; STU *pOrder;int i, m;system("CLS");printf("*****THE RESULT*****\n");outresult(a,stdout);printf("\nGive the number of the students who have better score: ");scanf("%d",&m);while(m>10){ printf("\nGive the number of the students who have better score: "); scanf("%d",&m);}pOrder=fun(a,m);printf("***** THE RESULT*****\n");printf("The top :\n");for(i=0;i<m;i++)printf("%s %d\n",pOrder[i].num, pOrder[i].s);free(pOrder);}【参考答案】(1)t=calloc(m,sizeof(STU));(2)t[k]=b[j];43.#include <stdio.h>#include <math.h>double funx(double x){ return(2*x*x*x-4*x*x+3*x-6); }double fun( double m, double n){/************found************/int r;r=(m+n)/2;/************found************/while(fabs(n-m)<0.001){ if(funx(r)*funx(n)<0) m=r;else n=r;r=(m+n)/2;}return r;}main( ){ double m,n, root;printf("Enter m n : \n"); scanf("%lf%lf",&m,&n);root=fun( m,n );printf("root = %6.3f\n",root);}【参考答案】(1)double r ;(2)while (fabs(n-m) >0.001)44.#include <stdio.h>#include <string.h>void fun (char *s, char *t){/************found************/int i;sl = strlen(s);for (i=0; i<sl; i++)/************found************/t[i] = s[sl-i];for (i=0; i<=sl; i++)t[sl+i] = s[i];t[2*sl] = '\0';}main(){ char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}【参考答案】(1)int i, s1;(2)t[i]=s[s1-i-1];45.#include <math.h>#include <stdio.h>double fun(double eps){ double s,t; int n=1;s=0.0;/************found************/t=0;while( t>eps){ s+=t;t=t * n/(2*n+1);n++;}/************found************/return(s);}main(){ double x;printf("\nPlease enter a precision: "); scanf("%lf",&x);printf("\neps=%lf, Pi=%lf\n\n",x,fun(x));}【参考答案】(1)t=1.0;(2)return(s*2);46.#include <stdio.h>#include <stdlib.h>fun ( int n, int *a ){ int i, j, p, t;for ( j = 0; j<n-1 ; j++ ){ p = j;/************found************/for ( i=j+1; i<n-1 ; i++ )if ( a[p]>a[i] )/************found************/t=i;if ( p!=j ){ t = a[j]; a[j] = a[p]; a[p] = t; }}}putarr( int n, int *z ){ int i;for ( i = 1; i <= n; i++, z++ ){ printf( "%4d", *z );if ( !( i%10 ) ) printf( "\n" );} printf("\n");}main(){ int aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa );fun( n, aa );printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );。

全国计算机等级考试_二级C语言上机考试题库及答案-改错

全国计算机等级考试_二级C语言上机考试题库及答案-改错
答案:第一处:long k改为long k=1; 第二处:num\=10改为num/=10
6.2给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba.
答案:第一处fun(char a)改为fun(char*a) 第二处printf(“%c“*a)改为 printf(“%”,*a)
13.2给定程序MODI1。C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800请改正程序中的错误。
第一处:if k>0改为if(k>0)第二处:if(k=0)改为if(k==0)
14.2给定程序MODI1。C中函数fun的功能是:将m(1<=m<=10)个字符串连接起来,组成一个新串,放入pt所指存储区中。
答案:1 将t=1改为t=0 2 将t=t%10改为t=t/10
26.2给定函数功能是:用下面的公式求 的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
例如,输入0.0001,则程序输出3.1414
答案:1将(t>=num)改为((fabs(t))>=num) 2 将t=s%n改为t=s/n
28.2给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为100,则函数的值为732
答案: 第一处:while((high>=2)&&(n<10)改为 while((high>=2)&&(n<10))
第二处:yes=0;break 改为yes=0;break;

全国计算机二级C语言程序改错题(-100%全中必过)

全国计算机二级C语言程序改错题(-100%全中必过)

目录题目一前N项和问题 (3)题目二SS字符串问题 (4)题目三变量互换问题1 (4)题目三变量互换问题2 (5)题目三变量互换问题3 (5)题目四最大公约数问题 (6)题目五长数变短数1 (7)题目五长数变短数2 (7)题目五长数变短数3 (8)题目五长数变短数4 (9)题目五长数变短数5 (9)题目五长数变短数6 (10)题目五长数变短数7 (11)题目五长数变短数8 (11)题目五长数变短数9 (12)题目六斐波拉契数列 (13)题目七链表1 (14)题目七链表2 (15)题目七链表3 (16)题目七链表4 (17)题目八非素数问题 (19)题目九排序问题1 (19)题目九排序问题2 (20)题目九排序问题3 (21)题目九排序问题4 (22)题目九排序问题5 (23)题目九排序问题6 (24)题目九排序问题6 (25)题目九排序问题7 (26)题目十平均值问题1 (26)题目十平均值问题2 (27)题目十平均值问题3 (28)题目十平均值问题4 (29)题目十平均值问题5 (30)题目十一字符串连接1 (30)题目十一字符串连接2 (31)题目十一字符串连接3 (32)题目十一字符串连接4 (32)题目十二求和问题1 (33)题目十二求和问题2 (34)题目十二求和问题3 (35)题目十二求和问题4 (36)题目十二求和问题6 (37)题目十二求和问题7 (38)题目十二求和问题8 (39)题目十二求和问题9 (39)题目十二求和问题10 (40)题目十二求和问题11 (41)题目十二求和问题12 (42)题目十二求和问题13 (42)题目十二求和问题14 (43)题目十二求和问题15 (44)题目十二求和问题16 (44)题目十二求和问题17 (45)题目十二求和问题18 (45)题目十二求和问题19 (46)题目十三整数问题 (47)题目十四字符串逆置 (48)题目十五进制转换1 (48)题目十五进制转换2 (49)题目十六素数问题1 (50)题目十六素数问题2 (50)题目十六素数问题3 (51)题目十六素数问题4 (52)题目十六素数问题5 (53)题目十七删除字符串中指定项1 (53)题目十七删除字符串中指定项2 (54)题目十八最小公倍数问题 (55)题目十九字符串替换问题1 (55)题目十九字符串替换问题2 (56)题目二十找最长字符串 (57)题目二十一数组问题1 (58)题目二十一数组问题2 (59)题目二十一数组问题3 (60)题目二十二求平方根问题 (61)题目二十三短字符串变长字符串1 (61)题目二十三短字符串变长字符串2 (62)题目二十三短字符串变长字符串3 (63)题目二十三短字符串变长字符串4 (64)题目二十四字符串s问题1 (64)题目二十四字符串s问题2 (65)题目二十四字符串s问题3 (66)题目二十五求方程的根 (67)题目二十六求阶乘1 (68)题目二十六求阶乘2 (69)题目二十七方阵问题 (70)题目二十八查找字符串中某元素的数目 (71)题目二十九最大值问题1 (72)题目二十九最大值问题2 (72)题目二十九最大值问题3 (73)题目三十大小写转换1 (74)题目三十大小写转换2 (75)题目三十大小写转换3 (76)题目三十一:计算数字位数的问题1 (77)题目三十一:计算数字位数的问题2 (78)题目三十一:计算数字位数的问题3 (79)题目三十一:计算数字位数的问题4 (80)题目三十二统计字母数字个数问题1 (81)题目三十二统计字母数字个数问题2 (82)题目三十二统计字母数字个数问题3 (83)题目三十二统计字母数字个数问题4 (83)题目三十三对角线问题 (84)题目三十四比较字符串大小 (85)题目一前N项和问题.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。

计算机二级C语言上机改错题题库

计算机二级C语言上机改错题题库

南开二级C语言上机100题(从搜狐网整理) (3)1、改错3 (3)2、改错4 (3)3、改错5 (4)4、改错6 (5)5、改错8(2004.7.27) (5)6、改错9(2004.7.27) (6)7、改错13(8.4) (7)8、改错14(8.4) (8)9、改错15(8.5) (8)10、改错17(8.5) (9)11、改错19(8.5) (10)12、改错20(8.5) (10)13、改错21 (11)14、改错22 (13)15、改错23 (13)16、改错24 (14)17、改错25 (15)18、改错26 (16)19、改错27 (16)20、改错28 (17)21、改错29 (18)22、改错30 (19)56 改错 (43)57 改错 (44)58 改错 (44)59 改错 (45)60 改错 (46)61 改错 (47)62 改错 (47)63 改错 (48)64 改错 (49)65 改错 (50)66 改错 (50)67 改错 (51)68 改错 (52)69 改错 (52)70 改错 (53)71 改错 (54)72 改错 (54)73 改错 (55)74 改错 (56)75改错 (56)76改错 (57)77改错 (58)78改错 (58)79改错 (59)精品文库81改错 (60)82改错 (61)83改错 (61)84改错 (62)85改错 (63)86改错 (63)87改错 (64)88改错 (65)89改错 (65)90改错 (66)91改错 (67)92改错 (67)93改错 (68)94改错 (68)95改错 (69)96改错 (70)97改错 (71)南开二级C语言上机100题1、改错下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include <stdio.h>#include <conio.h>void fun (char *s){ int i,j;for (i=0,j=0;s[i]!='\0';i++)****************************************if (s[i]>='0' && s[i]<='9')s[j]=s[i]; ——————j改为j++***************************************s[j]="\0"; ——————s[j]='\0'}main(){char item[80];clrscr();printf("\nEnter a string:");gets(item);printf("\n\nThe string is :\%s\n",item);fun (item);printf("\n\nThe string of changing is :\%s\n",item);}2、改错下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1

11、第一大类(交换类)共7道/**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2.程序修改(第88套)/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2.程序修改(第1套)求岀以下分数序列的前n 项之和。

2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。

例如n=5,则应输出:。

/**foun d**/double fun (i nt n)/**foun d**/s=s+(double)a/b;2.程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。

从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、/**found**/ switch(g)/**found**/case 1:case 2:return 1;2.程序修改(第13套)long s=0,t=0;t=t/10;2.程序修改(第21套)double f(double x)/**found**/ return s;2.程序修改(第27套)/**found**/double fun(double a,doublex0)/**found**/if(fabs(x1-x0)> 2程序修改(第29套)/**found**/#define FU(m,n) (m)/(n)return (value);2.程序修改(第33套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);2.程序修改(第37套)/**found**/while((fabs(t))>=num)/**found**/t=s/n2.程序修改(第45套)/**found**//**found**/t+=i;2/**found**/result *=n__;2.程序修改(第48套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);s=s +(double)(n+1)/n;/**found**/return t;2.程序修改(第52套)/**found**/int fun(int n)/**found**/if(n==1) 2.程序修改(第58套)给定程序中函数fun的功能是:求K! <k<13>,所求阶乘的值作为函数值返回。

计算机二级考试C++语言程序设计上机考试试题

计算机二级考试C++语言程序设计上机考试试题

计算机二级考试C++语言程序设计上机考试试题计算机二级考试C++语言程序设计上机考试试题计算机二级考试接近,不知道各位同学都预备得怎么样呢?接下来应届毕业生我为大家细心预备了计算机二级考试C++语言程序设计上机考试试题,期望能够给大家带来帮忙!一、程序改错题使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor留意:错误的语句在//******error******的下面,修改该语句即可。

试题程序:#include(iostream.h)classTC{inti;第1页/共5页public:TC();voiddisplay();~TC();};//******error******TC:TC(){coutConstructor,;i=0;)//******error******TC:display(){touti= }//******error******第2页/共5页TC:TC(){COUIDestructor }voidmain(){TCa;a.display();}二、简洁应用题使用VC++6.0打开考生文件夹下的源程序文件2.cpp。

阅读下列函数说明和代码,实现函数sort(intA[],intn),用选择排序法将数组从大到小排序。

提示:选择排序法的思想是(1)反复从还未排好序的那部分线性表中选出关键字最小的结点。

(2)根据从线性表中选出的.挨次排列结点,重新组成线性表。

(3)直到未排序的那部分为空,使得重新形成的线性表是一个有序的线性表。

第3页/共5页补充函数sort(intA[],intn),实现选择排序。

留意:请勿改动主函数。

试题程序:#include#defineN10voidsort(intA[N],intn){}intmain()intA[N]={-72,54,-6,7,18,102,0,4,-11,1}; sort(A,10);for(inti=0;i(sizeof(A)/sizeof(int);i++){cout }cout return0;第4页/共5页}文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。

计算机等级考试二级C语言程序改错题(一)

计算机等级考试二级C语言程序改错题(一)

一、下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。

例如,当s中的数为123456789时,t中的数为2468。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>// ****found****void proc(long s,long *t){long sl=10;s/=10;*t=s%10;// ****found****while (s>0){s=s/100;*t=s%10*sl+*t;sl=sl*10;}}int main(){long s,t;printf("Please enter s:");scanf("%ld",&s);proc(s,&t);printf("The result is:%ld\n",t);return 0;}参考答案:(1)错误:void proc(long s,long t)正确:void proc(long s,long *t)(2)错误:while (s<0)正确:while (s>0)【解析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。

因此“void proc(long s,long t)”应改为“void proc(long s,long *t)”;要从低位开始取出长整型变量s 中偶数位上的数,每次变量S要除以100,然后判断其是否大于0来决定是否要继续,因此“while(s>0)”。

给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>// ****found****void proc(double m[]){int i;for (i=0; i<10;i++){// ****found****m[i]=m[i]/5;}}int main(){int i;double m[10];printf("before calling\n");for (i=0;i<10;i++){m[i]=i+20;printf("%lf ",m[i]);}proc(m);printf("\nafter calling\n");for(i=0; i<10; i++)printf("%lf ",m[i]);printf("\n");return 0;}参考答案:(1)错误:int proc(int m[])正确:void proc(int m[])(2)错误:m[i]=m[i]%5;正确:m[i]=m[i]/5;【解析】由主函数中的函数调用可知,函数proc()没有返回值。

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1

程序编程题目1、第一大类(交换类)共7道2. 程序修改(第3套)给定程序中函数fun 的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。

例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b 中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。

例如给a和b分别输入60和65,输出为:a=65 b=60/**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。

例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n项之和。

2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。

例如n=5,则应输出:。

/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n项的值。

从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求 s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。

例如,a=3,n=6,则以下表达式为:S=333333-33333-3333-333-33-3其值是296298。

江苏省计算机二级vfp上级考试 程序改错类 共45题附上答案 希望大家好好复习都能过二级

江苏省计算机二级vfp上级考试 程序改错类  共45题附上答案   希望大家好好复习都能过二级

第一套:下列程序是将从键盘上输入的字符(只含数字或字母)按下列规则编成密码后输出:对输入的数字字符用其ASCII码减10;小写字母用该字母的ASCII码前面加星号(*);大写字母用其ASCII码加左右括号,输入其他字符则表示输入结束。

例如,从键盘输入字符串"A12bMc",输出的密码为"(65)3940*108(77)*109"。

要求:(1)将下列程序输入到项目中的程序文件progm中,并对其中的两条错误语句进行修改。

(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

CLEARcpassword="ckey1="DO WHILE.T.WAIT WIND"请输入字符串……(按[Enter]键结束)"TO ckeyIF BETWEEN(ckey, 0 , 9 )ckey1=ALLT(STR(ASC(ckey)-10))ELSEIF BETWEEN(ASC(ckey),ASC("A"),ASC("Z"))ekey1= ( +ALLT(STR(ASC(ckey)))+ )ELSEIF BETWEEN(ASC(ckey),ASC( a ),ASC( z ))ckey1= * +ALLT(STR(ASC(ckey)+10))ENDIFEXITENDIFENDIFENDIFcpassword=ckey1+cpasswordENDDO?cpassword【答案】(1)第14行改为:ELSE(2)第19行改为:cpassword = cpassword+ckey1【分析】(1)IF语句未结束。

(2)ckey1应接在cpassword后面构成新的cpassword。

第二套:下列程序是将从键盘上输入的字符串(只含数字或字母)按下列规则编成密码后输出:对输入的数字字符用其ASCII码减10;小写字母用该字母的ASCII码前面加星号(*);大写字母用其ASCII码加左右括号,输入其他字符则结束输入。

New【全国计算机等级考试二级VF上机改错题及参考答案】

New【全国计算机等级考试二级VF上机改错题及参考答案】

二级VF上机改错题及参考答案二级Visual Foxpro上机模拟题(第二套)文本框PassWordChar 改为*功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单,否则重新输入用户名和口令。

&&**********Error**********************if thisform.text1 = thisform.text2 改为if thisform.text1.value=thisform.text2.valuewait "欢迎使用……" window timeout 1&&**********Error**********************thisform.close 改为thisform.releaseelsewait "用户名或口令不对,请重新输入……" window timeout 1endif二级Visual Foxpro上机模拟题(第三套)*检索选课门数大于或等于3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,*并按平均成绩降序排序,将结果存储到表TEST1中.以下程序有三处错误,请改正SET TALK OFFSET SAFETY OFFSELECT STUDENT.学号, 姓名, AVG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数,院系院系;FROM STUDENT, SCORE;WHERE STUDENT.学号= SCORE.学号;GROUP BY STUDENT.学号HAVING SUM(课程编号) >= 3; &&*Error* 将sum改为count其他不变ORDER BY 平均成绩; &&*********Error******* 改为order by 平均成绩descINTO TEST1 SDF &&*********Error******* 改为into table test1RETURN二级Visual Foxpro上机模拟题(第五套)*检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,*并按平均成绩降序排序.SET TALK OFFSET SAFETY OFFUSE DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行将use改为openCREATE VIEW VS1SELECT STUDENT2.学号, 姓名, AVG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号;FROM STUDENT2, COURSE2; &&*************Error************* 改为from student2,scWHERE STUDENT2.学号= SC.学号;GROUP BY SC.学号HAVING COUNT(课程号) > 3;ORDER BY 成绩&&*************Error************* 改为order by 平均成绩descCLOSE DATABASERETURN二级Visual Foxpro上机模拟题(第九套)*检索同时选修课程号c1和c2的学生的学号*以下程序有三处错误,请改正SELECT 学号;FROM SC ;WHERE 课程号= 'c1' AND 学号= ; &&*****Error******* 改为where 课程号="c1" and 学号in( SELECT * FROM SC ; &&************Error************改为(select 学号from sc;WHERE 学号= 'c2' ) &&************Error************改为where 课程号="c2")CLOSE DATABASE二级Visual Foxpro上机模拟题(第十三套)检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的,学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中.*以下程序有三处错误,请改正OPEN DATABASE SDBSELECT STUDENT.学号,姓名,性别,AVG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数;FROM STUDENT,SC;WHILE STUDENT.学号= SC.学号AND 成绩>= 70 ; &&*******Error******** 将While 改为where 其他不变GROUP BY STUDENT.学号HAVING SUM(课程号) >= 3; &&*******Error******** 将sum 改为count 其他不变TO NEW_TEST &&**********Error********** 改为into table NEW_TESTCLOSE ALL二级Visual Foxpro上机模拟题(第十六套)ThisForm.标题= "商品销售数据输入" 改为thisform.caption="商品销售数据输入"DO sellcomm 改为DO Form sellcommDO print1 TO PREVIEW 改为report Form print1 PREVIEW二级Visual Foxpro上机模拟题(第十七套)SELECT FORM DEPT 改为SELECT * FROM DEPTDELETE THISFORM 改为 THISFORM.release二级Visual Foxpro上机模拟题(第十九套)&&所有器件的单价增加5元UPDATE order_detail1 SET 单价WITH 单价+ 5 改为UPDATE order_detail1 SET 单价=单价+ 5&&计算每种器件的平均单价SELECT 器件号,AVG(单价) AS 平均价FROM order_detail1 ORDER BY 器件号INTO CURSOR lsb 将order by 改为group by 其他不变&&查询平均价小于500的记录SELECT * FROM lsb FOR 平均价< 500 改为SELECT * FROM lsb where 平均价< 500二级Visual Foxpro上机模拟题(第二十一套)UPDATE ALL 日期WITH DATE() 改为UPDATE 雇员set 日期= DATE()RELEASE THISFORM 改为thisform.release二级Visual Foxpro上机模拟题(第二十二套)SELECT COUNT((现价-买入价)*持有数量) ; 将count 改为sum 其他不变FROM stock_sl ;WHERE 股票代码;= ; 改为in(SELECT 股票代码FROM stock_name ;WHERE "银行" LIKE 股票简称) 将like 改为$ 其他不变二级Visual Foxpro上机模拟题(第二十三套)CLOSE ALLOPEN DATABASE 成绩管理USE 选课IN 0USE 学生EXCL IN 0***********Error***********MODIFY TABLE 学生ADD 平均成绩N(6,2) 改为alter table 学生ADD 平均成绩N(6,2)SELECT 学生***********Error***********DO WHILE EOF() 改为do while not eof()SELECT AVG(成绩) FROM 选课WHERE 学号=学生.学号INTO ARRAY cj***********Error***********REPLACE 平均成绩= cj[1] 改为replace 平均成绩with cj[1]cj[1]=0SKIPENDDOCLOSE DATABASE二级Visual Foxpro上机模拟题(第二十七套)下面的程序在第2行、第3行、第4行、第5行有错误,请直接在错误处修改。

计算机二级C语言上机考试改错题总结

计算机二级C语言上机考试改错题总结

计算机二级C语言上机考试改错题总结1、if或while语句若错误行是if或者while语句,则要注意以下点:1)首先判断是否正确书写if或while关键字;2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号;3)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符;4)若if条件表达式中只有一个等于号即数学等号(=),则要改写成两个等于号即逻辑等号(= =);5)若if 条件表达式为其他的比较运算符,则一般是进行逆转或加一个等于号;2、for语句若错误行是for语句,则要注意以下几点:1)首先判断for有没有书写正确;2)然后看for中的表达式是不是用分号(;)隔开,若不是则改为分号。

记住是分号(;),不是逗号(,)!3)再者,分析for中的三个表达式,是否符合题意;第一个表达式表示起始条件,第二个表达式表示终止条件,第三个表达式表示循环变量的变化。

3、return语句若错误行为return语句,则要注意以下几点:1)首先看是不是正确书写return关键字;2)然后看是不是缺少分号,若是则加上分号即可;3)再者判断return后的变量或表达式是否正确;这种错误需要根据题意来分析,分析返回变量或表达式的值和类型。

若错误行中有指针变量,并且该变量名之前没有指针运算符,则一般都是加上指针运算符;4、赋值语句若错误行是赋值语句,则要看赋值是否正确,然后看赋值运算符是否写正确。

5、定义语句若错误行是定义语句,则要注意:1)首先分析变量类型名是否写对;2)然后分析给变量赋初值是否正确;3)若以上均不是,则看是不是少定义了某个变量或少了花括号;6、表达式错误问题:若错误行中有整数1除以某个表达式或变量时,必须把整数1改为1、0;若变量或表达式是整型时,则只能进行强制类型转换。

7、字符串类问题若错误行中有字符串结束符,则特别要要注意结束符有没有写错。

但是要区分清楚字符‘o’和数字’0’。

8、函数首部类问题:若错误行是函数首部,则要注意:1)首先看该行最后有没有分号,若有则删掉分号;若中间有分号则要改为逗号;2)形参和实参类型不一致问题①若实参是个地址或数组名或指针变量名,则对应的形参肯定是指针或数组;②若实参是二维数组名,则对应的形参应该是指针数组或是二维数组;③若后面用到某形参的时候有指针运算符,则该形参比为指针类型;④若形参是二维数组或指向M个元素的指针变量,则该二维的长度必须与main中对于数组的第二维的长度相同。

计算机二级C上机:程序改错题

计算机二级C上机:程序改错题

计算机二级C上机:程序改错题计算机二级C上机:程序改错题为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是店铺搜索整理的计算机二级C上机:程序改错题,供参考练习,预祝考生们考出自己理想的成绩!程序改错题使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为150200注意:错误的语句在//******error******的下面,修改该语句即可。

提示:定义Numl为一个整型数据位长的`变量。

试题程序:#include//******error******struct{//******error******intNuml:1;intNum2;}MyStruct;voidmain(){MyStructmstr;mstr.Num1=150;mstr.Num2=15;//******error******int*ptr=&mstr.Numl;cout<<*ptr<<endl;*ptr=200;cout<<*ptr<<endl;}答案:(1)“typedefstruct”。

(2)“intNuml:32;”或“intNuml;”。

(3)“int*ptr=(int*)&mstr;”。

【解析】第1处是定义结构体,结构体定义的一般形式为struct(结构体名>{<成员列表>}(变量名列表);程序当中定义结构体名放在后面,MyStruct为结构体变量类型,相当于typedef为已有的类型定义一个新的类型,第1处应改为“typedefstruct”。

第2处是定义Numl为一个整型数据变量,整型数据位数为32(4字节),因此第2处应改成“intNuml:32;”或“intNuml;”。

ptr为整型数据指针,mstr为MyStruct类型结构变量,两者类型不一致应该做强制类型转换,第3处应改成“int*ptr=(int*)&mstr;”,表示将mstr的地址给ptr,ptr指向MyStruct的第一个域Numl,Numl也是整型,类型一致,故可通过ptr指针来改变Numl的值。

计算机二级上机改错题库

计算机二级上机改错题库
1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
/**found**/
void fun(int *a)
/**found**/
a[j]=a[j-1];
第十五套
2. 程序修改
给定程序MODI1.C中函数fun的功能是:求 s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。
if(*r==*p)
第七套
2. 程序修改
给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。
/**found**/
char *fun(char (*sq)[M])
/**found**/
第六套
2. 程序修改
给定程序MODI1.C中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指定字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。
/**found**/
while(*w)
/**found**/
return(t);
第十八套
2. 程序修改
给定程序MODI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。
/**found**/
while((2<=high)&&(n<10))
/**found**/
yes=0;break;
s/=10;
第二十四套
2. 程序修改

我国计算机的二级C语言上机题库 50套填空与改错

我国计算机的二级C语言上机题库 50套填空与改错

1、程序填空题教育上机考试复习资料#include <stdio.h>#include <math.h>double fun(double x){ double f, t; int n;f = 1.0 + x;/**********found**********/t = x;n = 1;do {n++;/**********found**********/t *= (-1.0)*x/n;f += t;}/**********found**********/while (fabs(t)>= 1e-6);return f;}main(){ double x, y;x=2.5;y = fun(x);printf("\nThe result is :\n");printf("x=%-12.6f y=%-12.6f\n", x, y);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>long fun(int x,int y,long *p ){ int i;long t=1;/**************found**************/for(i=1; i<=y; i++)t=t*x;*p=t;/**************found**************/t=t%1000;return t;}main(){ long t,r; int x,y;printf("\nInput x and y: "); scanf("%ld%ld",&x,&y);t=fun(x,y,&r);printf("\n\nx=%d, y=%d, r=%ld, last=%ld\n\n",x, y,r,t ); }1程序填空题#include <stdio.h>int c1,c2,c3;void fun(long n){ c1 = c2 = c3 = 0;while (n) {/**********found**********/switch(n%10){/**********found**********/case 1: c1++;break;/**********found**********/case 2: c2++;break;case 3: c3++;}n /= 10;}}main(){ long n=123114350L;fun(n);printf("\nThe result :\n");printf("n=%ld c1=%d c2=%d c3=%d\n",n,c1,c2,c3);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>int fun(unsigned n, int *zero){ int count=0,max=0,t;do{ t=n%10;/**************found**************/if(t==0)count++;if(max<t) max=t;n=n/10;}while(n);/**************found**************/*zero=count;return max;}main(){ unsigned n; int zero,max;printf("\nInput n(unsigned): "); scanf("%d",&n);max = fun( n,&zero );printf("\nThe result: max=%d zero=%d\n",max,zero); }1、程序填空题#include <stdio.h>unsigned long fun(unsigned long n){ unsigned long x=0; int t;while(n){ t=n%10;/**********found**********/if(t%2==0)/**********found**********/x=10*x+t;/**********found**********/n=n/10;}return x;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); } printf("\nThe result is: %ld\n",fun(n));}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>void fun (long s, long *t){ int d;long sl=1;/************found************/*t = 0;while ( s > 0){ d = s%10;/************found************/if (d%2 != 0){ *t = d * sl + *t;sl *= 10;}s /= 10;}}main(){ long s, t;printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t);printf("The result is: %ld\n", t);}第4套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#define M 3#define N 4void fun(int (*a)[N]){ int i=0,j,find=0,rmax,c,k;while( (i<M) && (!find)){ rmax=a[i][0]; c=0;for(j=1; j<N; j++)if(rmax<a[i][j]) {/**********found**********/rmax=a[i][j]; c= j ; }find=1; k=0;while(k<M && find) {/**********found**********/if (k!=i && a[k][c]<=rmax) find=0;k++;}if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]); /**********found**********/i++;}if(!find) printf("not found!\n");}main(){ int x[M][N],i,j;printf("Enter number for array:\n");for(i=0; i<M; i++)for(j=0; j<N; j++) scanf("%d",&x[i][j]);printf("The array:\n");for(i=0; i<M; i++){ for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n\n");}fun(x);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>double fun ( int m ){ double y = 1.0 ;int i ;/**************found**************/for(i = 2 ; i <= m ; i++)/**************found**************/y -= 1.0/i / i ;return( y ) ;}main( ){ int n = 5 ;printf( "\nThe result is %lf\n", fun ( n ) ) ;}1、程序填空题#include <stdio.h>#include <string.h>#define N 5#define M 10/**********found**********/void fun(char (*ss)[M], int k){ int i=0 ;/**********found**********/while(i<N) {/**********found**********/ss[i][k]=0; i++; }}main(){ char x[N][M]={"Create","Modify","Sort","skip","Delete"}; int i;printf("\nThe original string\n\n");for(i=0;i<N;i++)puts(x[i]); printf("\n");fun(x,4);printf("\nThe string after deleted :\n\n");for(i=0; i<N; i++) puts(x[i]); printf("\n");}2、程序修改题校园网·新视野教育上机考试复习资料#include <math.h>#include <stdio.h>double fun(double eps){ double s,t; int n=1;s=0.0;/************found************/t=1;while( t>eps){ s+=t;t=t * n/(2*n+1);n++;}/************found************/return(2*s);}main(){ double x;printf("\nPlease enter a precision: "); scanf("%lf",&x); printf("\neps=%lf, Pi=%lf\n\n",x,fun(x));}第6套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#define N 4/**********found**********/void fun(int (*t)[N] ){ int i, j;for(i=1; i<N; i++){ for(j=0; j<i; j++){/**********found**********/t[i][j]=t[i][j]+t[j][i];/**********found**********/t[j][i]=0;}}}main(){ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("\nThe original array:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}fun(t);printf("\nThe result is:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <math.h>#include <stdlib.h>/************found************/#define FU(m,n) ((m)/(n))float fun(float a,float b,float c){ float value;value=FU(a+b,a-b)+FU(c+b,c-b);/************found************/Return(v alue);}main(){ float x,y,z,sum;printf("Input x y z: ");scanf("%f%f%f",&x,&y,&z);printf("x=%f,y=%f,z=%f\n",x,y,z);if (x==y||y==z){printf("Data error!\n");exit(0);}sum=fun(x,y,z);printf("The result is : %5.2f\n",sum);}第7套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#define N 3#define M 4/**********found**********/void fun(int (*a)[N], int k){ int i,temp ;/**********found**********/for(i = 0 ; i < n; i++){ temp=a[0][i] ;/**********found**********/a[0][i] = a[k][i] ;a[k][i] = temp ;}}main(){ int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j; printf("The array before moving:\n\n");for(i=0; i<M; i++){ for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n\n");}fun(x,2);printf("The array after moving:\n\n");for(i=0; i<M; i++){ for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n\n");}}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <string.h>void fun( char t[] ){char c;int i, j;/**********found***********/for(i = strlen( t )-1; i;i--)for( j = 0; j < i; j++ )/**********found***********/if( t[j]>t[ j + 1 ] ){c = t[j];t[j] = t[ j + 1 ];t[j + 1 ] = c;}}main(){char s[81];printf( "\nPlease enter a character string: " );gets( s );printf( "\n\nBefore sorting:\n \"%s\"", s );fun( s );printf( "\nAfter sorting decendingly:\n \"%s\"\n", s ); }#include <stdio.h>int fun(int x){ int n, s1, s2, s3, t;n=0;t=100;/**********found**********/while(t<=999){/**********found**********/s1=t%10; s2=(t/10)%10; s3=t/100;/**********found**********/if(s1+s2+s3==x){ printf("%d ",t);n++;}t++;}return n;}main(){ int x=-1;while(x<0){ printf("Please input(x>0): "); scanf("%d",&x); } printf("\nThe result is: %d\n",fun(x));}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>/************found************/void fun (long s, long *t){ long sl=10;s /= 10;*t = s % 10;/************found************/while ( s > 0){ s = s/100;*t = s%10*sl + *t;sl = sl * 10;}}main(){ long s, t;printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t);printf("The result is: %ld\n", t);}1、程序填空题#include <stdio.h>#define N 4fun(int t[][N], int n){ int i, sum;/**********found**********/sum=0;for(i=0; i<n; i++)/**********found**********/sum+=t[i][i] ;for(i=0; i<n; i++)/**********found**********/sum+= t[i][n-i-1] ;return sum;}main(){ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf("\nThe original data:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%4d",t[i][j]);printf("\n");}printf("The result is: %d",fun(t,N));}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <math.h>double funx(double x){ return(2*x*x*x-4*x*x+3*x-6); }double fun( double m, double n){/************found************/double r;r=(m+n)/2;/************found************/while(fabs(n-m)>0.001){ if(funx(r)*funx(n)<0) m=r;else n=r;r=(m+n)/2;}return r;}main( ){ double m,n, root;printf("Enter m n : \n"); scanf("%lf%lf",&m,&n);root=fun( m,n );printf("root = %6.3f\n",root);}1、程序填空题#include <stdio.h>/**********found**********/char fun(char ch){/**********found**********/if (ch>='0' && ch<='9')/**********found**********/return '9'- (ch-'0');return ch ;}main(){ char c1, c2;printf("\nThe result :\n");c1='2'; c2 = fun(c1);printf("c1=%c c2=%c\n", c1, c2);c1='8'; c2 = fun(c1);printf("c1=%c c2=%c\n", c1, c2);c1='a'; c2 = fun(c1);printf("c1=%c c2=%c\n", c1, c2);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>void fun(char *p, char *b){ int i, k=0;while(*p){ i=1;while( i<=3 && *p ) {/**********found**********/b[k]=*p;k++; p++; i++; 删除?}if(*p){/**********found**********/b[k]=' ';k++;}}b[k]='\0';}main(){ char a[80],b[80];printf("Enter a string: "); gets(a);printf("The original string: "); puts(a);fun(a,b);printf("\nThe string after insert space: "); puts(b); printf("\n\n"); }1、程序填空题#include <stdio.h>double fun(double e){ int i; double s, x;/**********found**********/s=0; i=0; 2x=1.0;while(x>e){/**********found**********/i++;/**********found**********/x=(2.0*i-1)/((2.0*i)*(2.0*i));s=s+x;}return s;}main(){ double e=1e-3;printf("\nThe result is: %f\n",fun(e));}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <string.h>/************found************/void fun (char *s, char *t){int i, d;d = strlen(s);for (i = 0; i<d; i++) t[i] = s[i];for (i = 0; i<d; i++) t[d+i] = s[d-1-i];/************found************/t[2*d] = 0;}main(){char s[100], t[100];printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t);printf("\nThe result is: %s\n", t);}第12套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#define N 5typedef struct student {long sno;char name[10];float score[3];} STU;void fun(char *filename, long sno){ FILE *fp;STU n; int i;fp = fopen(filename,"rb+");/**********found**********/while (!feof(fp)){ fread(&n, sizeof(STU), 1, fp);/**********found**********/if (n.sno=sno) break;}if (!feof(fp)){ for (i=0; i<3; i++) n.score[i] += 3;/**********found**********/fseek(fp, -(long)sizeof(STU), SEEK_CUR);fwrite(&n, sizeof(STU), 1, fp);}fclose(fp);}main(){ STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, {10005,"ZhangSan", 95, 80, 88}}, ss[N];int i,j; FILE *fp;fp = fopen("student.dat", "wb");fwrite(t, sizeof(STU), N, fp);fclose(fp);printf("\nThe original data :\n");fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), N, fp);fclose(fp);for (j=0; j<N; j++){ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}fun("student.dat", 10003);fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), N, fp);fclose(fp);printf("\nThe data after modifing :\n");for (j=0; j<N; j++){ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <string.h>#define N 80void insert(char *aa){ int i,j,n; char ch;/**********found**********/n=strlen( aa ); ()for( i=1; i<n ;i++ ) {/**********found**********/c h=aa[i]; chj=i-1;while ((j>=0) && ( ch<aa[j] )){ aa[j+1]=aa[j];j--;}aa[j+1]=ch;}}main( ){ char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf ("The original string : %s\n", a);insert(a) ;printf("The string after sorting : %s\n\n",a );}第13套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#include <string.h>#define N 5#define M 15void fun(char (*ss)[M], char *substr){ int i,find=0;/**********found**********/for(i=0; i< N; i++)/**********found**********/if( strstr(ss[i], substr) != NULL ){ find=1; puts(ss[i]); printf("\n"); }/**********found**********/if (find==0) printf("\nDon't found!\n");}main(){ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M]; int i;printf("\nThe original string\n\n");for(i=0;i<N;i++)puts(x[i]); printf("\n");printf("\nEnter a string for search : "); gets(str);fun(x,str);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>/************found************/fun(int x, int y, int z ){ int j,t ,n ,m;j = 1 ;t=j%x;m=j%y ;n=j%z;while(t!=0||m!=0||n!=0){ j = j+1;t=j%x;m=j%y;n=j%z;}/************found************/return j;}main( ){ int x1,x2,x3,j ;printf("Input x1 x2 x3: "); scanf("%d%d%d",&x1,&x2,&x3);printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);j=fun(x1,x2,x3);printf("The minimal common multiple is : %d\n",j);}1#include <stdio.h>#define M 3#define N 5void fun(int (*a)[N],int k){ int i,j,p,temp;/**********found**********/for(p=1; p<= __1__; p++) kfor(i=0; i<M; i++){ temp=a[i][0];/**********found**********/for(j=0; j< __2__ ; j++) a[i][j]=a[i][j+1]; N-1 /**********found**********/a[i][N-1]= __3__; temp}}main( ){ int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j; printf("The array before moving:\n\n");for(i=0; i<M; i++){ for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n");}fun(x,2);printf("The array after moving:\n\n");for(i=0; i<M; i++){ for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n");}}2、程序修改题校园网·新视野教育上机考试复习资料#include <conio.h>#include <stdio.h>#define M 10int a[M][M] = {0} ;/**************found**************/void fun(int **a, int m) a[][m]{ int j, k ;for (j = 0 ; j < m ; j++ )for (k = 0 ; k < m ; k++ )/**************found**************/a[j][k] = k * j ;}main ( ){ int i, j, n ;printf ( " Enter n : " ) ; scanf ("%d", &n ) ;fun ( a, n ) ;for ( i = 0 ; i < n ; i++){ for (j = 0 ; j < n ; j++)printf ( "%4d", a[i][j] ) ;printf ( "\n" ) ;}}第15套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>int fun(int a, int b, int c){int t;/**********found**********/t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___)); return t;}main(){ int a1=3, a2=5, a3=4, r;r = fun(a1, a2, a3);printf("\nThe middle number is : %d\n", r);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <ctype.h>char fun(char c){ if( c>='A' && c<='Z')/**************found**************/C=C+32; cif(c>='a' && c<='u')/**************found**************/c=c-5; +else if(c>='v'&&c<='z')c=c-21;return c;}main(){ char c1,c2;printf("\nEnter a letter(A-Z): "); c1=getchar();if( isupper( c1 ) ){ c2=fun(c1);printf("\n\nThe letter \'%c\' change to \'%c\'\n", c1,c2); }else printf("\nEnter (A-Z)!\n");}第16套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#include <ctype.h>char fun(char ch){/**********found**********/if ((ch>='a')___1___(ch<='z')) &&return ch -'a' + 'A';if ( isupper(ch) )/**********found**********/return ch +'a'-___2___ ;/**********found**********/return ___3___;}main(){ char c1, c2;printf("\nThe result :\n");c1='w'; c2 = fun(c1);printf("c1=%c c2=%c\n", c1, c2);c1='W'; c2 = fun(c1);printf("c1=%c c2=%c\n", c1, c2);c1='8'; c2 = fun(c1);printf("c1=%c c2=%c\n", c1, c2);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#define M 4/**************found**************/void fun(int a) * { int i,j,k,m;printf("Enter 4 number : ");for(i=0; i<M; i++) scanf("%d",&a[i]);printf("\n\nThe result :\n\n");for(i=M;i>0;i--){ k=a[M-1];for(j=M-1;j>0;j--)/**************found**************/aa[j]=a[j-1];a[0]=k;for(m=0; m<M; m++) printf("%d ",a[m]); printf("\n");}}main(){ int a[M];fun(a); printf("\n\n");}第17套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#include <string.h>#include <ctype.h>int fun(char *s){ int sum=0;while(*s) {/**********found**********/if( isdigit(*s) ) sum+= *s- __1__ ;/**********found**********/__2__;}/**********found**********/return __3__ ;}main(){ char s[81]; int n;printf("\nEnter a string:\n\n"); gets(s);n=fun(s);printf("\nThe result is: %d\n\n",n);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>int fun( int k ){ int m=0, mc=0 ;while ((k >= 2) && (mc < 10)){/************found************/if ((k%13 = 0) || (k%17 = 0)){ m = m+ k; mc++; }k--;}return m;/************found************/_____main ( ){printf("%d\n", fun (500));}第18套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#include <math.h>double fun(double x, int n){ double f, t; int i;/**********found**********/f = ___1___;t = -1;for (i=1; i<n; i++){/**********found**********/t *= (___2___)*x/i;/**********found**********/f += ___3___;}return f;}main(){ double x, y;x=2.5;y = fun(x, 15);printf("\nThe result is :\n");printf("x=%-12.6f y=%-12.6f\n", x, y);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>int fun(){ int i,j,k,sum=0;printf("\nThe result :\n\n");/**************found**************/for(i=0; i<=3; i++){ for(j=1; j<=5; j++){ k=8-i-j;/**************found**************/if(K>=0 && K<=6){ sum=sum+1;printf("red:%4d white:%4d black:%4d\n",i,j,k); }}}return sum;}main(){ int sum;sum=fun();printf("sum =%4d\n\n",sum);}第19套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#include <string.h>#define N 80void fun(char *s, int n, char *t){ int len,i,j=0;len=strlen(s);/**********found**********/if(n>=len) strcpy(__1__);else {/**********found**********/for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; /**********found**********/t[j]= __3__ ;}}main(){ char s[N],t[N]; int n;printf("Enter a string: ");gets(s);printf( "Enter n:"); scanf("%d",&n);fun(s,n,t);printf("The string t : "); puts(t);}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>int fun(int m){ int i, k ;for (i = m + 1 ; ; i++) {for (k = 2 ; k < i ; k++)/**************found**************/if (i % k != 0)break ;/**************found**************/if (k < i)return(i);}}void main(){int n ;n = fun(20) ;printf("n=%d\n", n) ;}第20套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#include <string.h>struct student {long sno;char name[10];float score[3];};/**********found**********/__1__ fun(struct student *a){ int i;a->sno = 10002;strcpy(a->name, "LiSi");/**********found**********/for (i=0; i<3; i++) __2__ += 1;/**********found**********/return __3__ ;}main(){ struct student s={10001,"ZhangSan", 95, 80, 88}, *t;int i;printf("\n\nThe original data :\n");printf("\nNo: %ld Name: %s\nScores: ",s.sno, ); for (i=0; i<3; i++) printf("%6.2f ", s.score[i]);printf("\n");t = fun(&s);printf("\nThe data after modified :\n");printf("\nNo: %ld Name: %s\nScores: ",t->sno, t->name);for (i=0; i<3; i++) printf("%6.2f ", t->score[i]); printf("\n");}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#include <string.h>#define N 5#define M 81/**********found**********/fun(char (*sq)[M]){ int i; char *sp;sp=sq[0];for(i=0;i<N;i++)if(strlen( sp)<strlen(sq[i]))sp=sq[i] ;/**********found**********/return sq;}main(){ char str[N][M], *longest; int i;printf("Enter %d lines :\n",N);for(i=0; i<N; i++) gets(str[i]);printf("\nThe N string :\n",N);for(i=0; i<N; i++) puts(str[i]);longest=fun(str);printf("\nThe longest string :\n"); puts(longest); }第21套校园网·新视野教育上机考试复习资料1、程序填空题# include <stdio.h>#define N 9void fun(int a[], int n){ int i,j, max, min, px, pn, t;for (i=0; i<n-1; i+=2){/**********found**********/max = min = ___1___;px = pn = i;for (j=i+1; j<n; j++) {/**********found**********/if (max<___2___){ max = a[j]; px = j; }/**********found**********/if (min>___3___){ min = a[j]; pn = j; }}if (pn != i){ t = a[i]; a[i] = min; a[pn] = t;if (px == i) px =pn;}if (px != i+1){ t = a[i+1]; a[i+1] = max; a[px] = t; } }}main(){ int b[N]={9,1,4,2,3,6,5,8,7}, i;printf("\nThe original data :\n");for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n");fun(b, N);printf("\nThe data after moving :\n");for (i=0; i<N; i++) printf("%4d ", b[i]);printf("\n");}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>long fun(int g){/**********found**********/switch(g);{ case 0: return 0;/**********found**********/case 1 ;case 2 : return 1 ;}return( fun(g-1)+fun(g-2) );}main(){ long fib; int n;printf("Input n: "); scanf("%d",&n); printf("n = %d\n",n); fib=fun(n);printf("fib = %d\n\n",fib);}第22套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#define N 4/**********found**********/void fun(int ___1___ , int n){ int i,s;/**********found**********/for(___2___; i++){ s=t[i][i];t[i][i]=t[i][n-i-1];/**********found**********/t[i][n-1-i]=___3___;}}main(){ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("\nThe original array:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%d ",t[i][j]);printf("\n");}fun(t,N);printf("\nThe result is:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%d ",t[i][j]);printf("\n");}}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#define N 10/************found************/void fun(int a[], int m ){ int low=0,high=N-1,mid;while(low<=high){ mid=(low+high)/2;if(m<a[mid])high=mid-1;/************found************/else If(m > a[mid])low=mid+1;else return(mid);}return(-1);}main(){ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;printf("a数组中的数据如下:");for(i=0;i<N;i++) printf("%d ", a[i]);printf("Enter m: "); scanf("%d",&m);k=fun(a,m);if(k>=0) printf("m=%d,index=%d\n",m,k);else printf("Not be found!\n");}第23套校园网·新视野教育上机考试复习资料1、程序填空题#include <stdio.h>#define N 9/**********found**********/void fun(int ___1___, int n){ int i, j, max, min, px, pn, t;/**********found**********/for (i=0; i<n-1; i+=___2___){ max = min = a[i];px = pn = i;/**********found**********/for (j=___3___; j<n; j++){ if (max < a[j]){ max = a[j]; px = j; }if (min > a[j]){ min = a[j]; pn = j; }}if (px != i){ t = a[i]; a[i] = max; a[px] = t;if (pn == i) pn= px;}if (pn != i+1){ t = a[i+1]; a[i+1] = min; a[pn] = t; } }}main(){ int b[N]={1,4,2,3,9,6,5,8,7}, i;printf("\nThe original data :\n");for (i=0; i<N; i++) printf("%4d ", b[i]);printf("\n");fun(b, N);printf("\nThe data after moving :\n");for (i=0; i<N; i++) printf("%4d ", b[i]);printf("\n");}2、程序修改题校园网·新视野教育上机考试复习资料#include <stdio.h>#define SIZE 20fun(double *s, double *w){ int k,i; double sum;for(k=2,i=0;i<SIZE;i++){ s[i]=k; k+=2; }/**********found**********/sun=0.0;for(k=0,i=0;i<SIZE;i++){ sum+=s[i];/**********found**********/if(i+1%5==0){ w[k]=sum/5; sum=0; k++; }}return k;。

计算机二级C语言100套上机填空题答案和改错题答案

计算机二级C语言100套上机填空题答案和改错题答案

填空题答案第1题答案第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或1l或1L第2题答案第1处填空:n==0或0==n或!n第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)第3题答案第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t第4题答案第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1第5题答案第1处填空:r*r第2处填空:&x第3处填空:x第6题答案第1处填空:<=第2处填空:n++或n+=1或n=n+1 第3处填空:return s或return (s) 第7题答案第1处填空:n%10第2处填空:break第3处填空:break第8题答案第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i] 第9题答案第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower第10题答案第1处填空:max=a第2处填空:max=b第3处填空:max=c第11题答案第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c 第12题答案第1处填空:tt[i]<='Z'或'Z'>=tt[i]第2处填空:32或'a'-'A'第3处填空:tt第13题答案第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==0或!(n%i)或0==n%i第14题答案第1处填空:*p或*p!='\0'或*p!=0第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第15题答案第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c第16题答案第1处填空:n%100!=0或n%100或0!=n%100第2处填空:n%400==0或!(n%400)或0==n%400第3处填空:flag第17题答案第1处填空:n第2处填空:else第3处填空:a,b第18题答案第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n第19题答案第1处填空:score[i]或*(score+i)第2处填空:below第3处填空:below[i]或*(below+i)第20题答案第1处填空:i第2处填空:j第3处填空:aa,&n第21题答案第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j第22题答案第1处填空:&&第2处填空:0第3处填空:s[j]或*(s+j)第23题答案第1处填空:int x[]或int*x第2处填空:sum+=x[i]或sum=sum+x[i]第3处填空:sum/n第24题答案第1处填空:a第2处填空:a第3处填空:b第25题答案第1处填空:n/2第2处填空:i第3处填空:a[n-i-1]第26题答案第1处填空:i=1第2处填空:&&第3处填空:--j或j-1第27题答案第1处填空:j=2第2处填空:i第3处填空:j第28题答案第1处填空:1第2处填空:s*i或i*s第3处填空:0第4处填空:s+fun(k)或fun(k)+s第29题答案第1处填空:0第2处填空:i<=x或x>=i第30题答案第1处填空:--i或i--或i-=1或i=i-1第2处填空:s[i]-'0'第3处填空:t*10+k或k+t*10或10*t+k或k+10*t第31题答案第1处填空:*(p1+i)或p1[i]或*(p1+i)!=0或p1[i]!=0第2处填空:*p2或p2[0]或*p2!=0或p2[0]!=0第3处填空:*p2++第32题答案第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)/10第33题答案第1处填空:1第2处填空:i第3处填空:a[p+i]或*(a+p+i)第34题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[5]++或++bb[5]或bb[5]=bb[5]+1或bb[5]+=1第3处填空:p++;或++p;或p+=1;或p=p+1;第35题答案第1处填空:i<*num或*num>i第2处填空:n++或++n或n+=1或n=n+1第3处填空:*num=n第36题答案第1处填空:&&第2处填空:s[i]-'0'第3处填空:n第37题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第38题答案第1处填空:n/100%10第2处填空:"yes!"第3处填空:"no!"第39题答案第1处填空:"%d",&n第2处填空:str2[i]=str1[i];第3处填空:str2第40题答案第1处填空:"%s",str1第2处填空:%c第3处填空:str2第41题答案第1处填空:"%ld",&n第2处填空:n=-n;或n*=-1;第3处填空:"%ld",n第42题答案第1处填空:*p或p[0]第2处填空:default:b[10]++;第3处填空:p++;或p+=1;或p=p+1;或++p;第43题答案第1处填空:*p或*p!=0或0!=*p 第2处填空:bb[*p-'0']++或bb[*p-'0']+=1第3处填空:num[j]=bb[i]第44题答案第1处填空:0第2处填空:||第45题答案第1处填空:s1-i-1或s1-1-i第2处填空:2*s1或s1*2第46题答案第1处填空:*k第2处填空:s[i]>max或max<s[i] 第3处填空:i第47题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第48题答案第1处填空:n>0或0<n第2处填空:n%10+'0'或'0'+n%10第3处填空:str[i]='\0'或str[i]=0第49题答案第1处填空:disc<0或0>disc第2处填空:sqrt第3处填空:sqrt第50题答案第1处填空:s第2处填空:*p++第3处填空:*(p)或*p或*p!=0第51题答案第1处填空:x>y或y<x第2处填空:x>z或z<x第3处填空:y>z或z<y第52题答案第1处填空:"out52.dat","w"第2处填空:fputc(ch,fp)第3处填空:fclose(fp)第53题答案第1处填空:i第2处填空:p->next=s第3处填空:p->next第54题答案第1处填空:*p1<*p2或*p2>*p1第2处填空:*p1>*p2或*p2<*p1第3处填空:'\0'或0第55题答案第1处填空:flag=1第2处填空:j%i==0或0==j%i或!(j%i)第3处填空:flag==1或1==flag第56题答案第1处填空:&&第2处填空:fputc(ch,fp1)第3处填空:fclose(fp)第57题答案第1处填空:double第2处填空:j第3处填空:1.0/t或(double)1/t第58题答案第1处填空:&n第2处填空:i=1第3处填空:f*=i或f=f*i或f=i*f第59题答案第1处填空:sum=0第2处填空:sum+=n或sum=sum+n或sum=n+sum第3处填空:ld第60题答案第1处填空:i<n或n>i第2处填空:j<n-1或n-1>j第61题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[i]+=score[i][j]或bb[i]=bb[i]+score[i][j]或bb[i]=score[i][j]+bb[i]第62题答案第1处填空:"%c",&str[i]或"%c",str+i第2处填空:str[i]!='*'或*(str+i)!='*'第3处填空:"%c",str[j]或"%c",*(str+j)第63题答案第1处填空:STU第2处填空:h第3处填空:h第64题答案第1处填空:str1[i]!=''或''!=str1[i]第2处填空:i++或++i或i+=1或i=i+1第65题答案第1处填空:bb[i][j]=1第2处填空:bb[i][j]=0第66题答案第1处填空:j>i或i<j第2处填空:bb[j]=bb[j-1]第3处填空:break第67题答案第1处填空:p=str第2处填空:p[i]++或++p[i]或p[i]+=1或p[i]=p[i]+1第3处填空:s[i]='\0'或s[i]=0第68题答案第1处填空:break第2处填空:'\0'或0第3处填空:*p++第69题答案第1处填空:<第2处填空:*p2或p2[0]第3处填空:str1第70题答案第1处填空:*(pstr+j)或pstr[j]第2处填空:pstr[j]或*(pstr+j)第3处填空:p第71题答案第1处填空:std[3]或std[]或*std第2处填空:PERSON第3处填空:std第72题答案第1处填空:N第2处填空:M第3处填空:bb[i]/N或*(bb+i)/N第73题答案第1处填空:bb[i][j]=0第2处填空:1第3处填空:j==n-1-i或j==n-i-1 第74题答案第1处填空:*std或std[0]第2处填空:std[i].age第3处填空:第75题答案第1处填空:&n第2处填空:t*i或i*t第3处填空:s+t或t+s第76题答案第1处填空:i第2处填空:s[j]=s[i]第77题答案第1处填空:N-1第2处填空:bb[n++]=aa[i]第3处填空:i,bb[i]第78题答案第1处填空:fun(char s[],int n)或fun(char*s,int n)第2处填空:j=0第3处填空:s[j]='\0'或s[j]=0第79题答案第1处填空:aa[i]%2==0或0==aa[i]%2或aa[i]%2第2处填空:i<k或k>i第80题答案第1处填空:--i或i--或i-=1或i=i-1 第2处填空:bb[j]=bb[i]第81题答案第1处填空:sum=0第2处填空:t[i][i]第3处填空:1第82题答案第1处填空:i%10第2处填空:g*g*g==i或i==g*g*g 第83题答案第1处填空:break;第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第84题答案第1处填空:&&第2处填空:i,j第85题答案第1处填空:[N]第2处填空:t[i][j]第3处填空:t[j][i]第86题答案第1处填空:N第2处填空:N-1第3处填空:0第87题答案第1处填空:&& 第2处填空:g+第88题答案第1处填空:s[i]或s[i]!=0或0!=s[i]第2处填空:s[i]==ch或ch==s[i]第3处填空:return n第89题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:32或'a'-'A'第3处填空:i++或++i或i+=1或i=i+1第90题答案第1处填空:STU第2处填空:std[i].num第3处填空:std[i]第91题答案第1处填空:i=1,j=0或j=0,i=1第2处填空:bb[j++]=i第3处填空:return j第92题答案第1处填空:str[i+1]或str[i+1]!='\0'或str[i+1]!=0第2处填空:str[i]=ch第93题答案第1处填空:aa[max]<aa[i]或aa[i]>aa[max]第2处填空:aa[min]>aa[i]或aa[i]<aa[min]第3处填空:aa[max]=aa[min]第94题答案第1处填空:i++或++i或i+=1或i=i+1第2处填空:s[j++]=s[i]第3处填空:s[j]='\0'或s[j]=0第95题答案第1处填空:0.0或0或(double)0第2处填空:n第3处填空:s第96题答案第1处填空:aa[k++]=t或aa[k]=t,k++或aa[k]=t;k++第2处填空:i<j或j>i第97题答案第1处填空:break第2处填空:t[i]第3处填空:u[ul]第98题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:25第3处填空:1第99题答案第1处填空:j%i==0或!(j%i)或0==j%i第2处填空:flag==1或flag或1==flag第3处填空:aver/n第100题答案第1处填空:k=0第2处填空:||第3处填空:s[k]='\0'或s[k]=0改错题答案第1题答案第1处:IsPrime(int n);应改为IsPrime(int n)第2处:if!(n%i)应改为if(!(n%i))第2题答案第1处:int k=1;应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)第3题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[j]="\0";应改为s[j]='\0';第4题答案第1处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;第5题答案第1处:a[i+1]=a[i];应改为a[i]=a[i+1];第6题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i);第7题答案第1处:p=j应改为p=j;第2处:p=i;应改为p=j;第8题答案第1处:void fun(char*p);应改为void fun(char*p)第2处:p=q+i;应改为q=p+i;第9题答案第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;第10题答案第1处:void fun(char*s,*t1,*t2,*w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(r)应改为while(*r)第11题答案第1处:n=*p-'o';应改为n=*p-'0';第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0';第12题答案第1处:a=NuLL;应改为a=NULL; 第2处:if(r==p)应改为if(*r==*p) 第13题答案第1处:t+=1.0/k;应改为t+=1.0/i; 第2处:应填return t;第14题答案第1处:int r;应改为double r;第2处:while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001)第15题答案第1处:void fun(char str,char ch)应改为void fun(char*str,char ch)第2处:if(*str==ch)应改为if(*str=='\0')第3处:str[1]='0';应改为str[1]='\0';或str[1]=0;第16题答案第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1);第3处:return p;应改为return h; 第17题答案第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}第18题答案第1处:void fun(int a,int b)应改为void fun(int*a,int*b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;第19题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:while(s<0)应改为while(s>0) 第20题答案第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if(m>=a[mid])应改为if(m>a[mid])第21题答案第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;第22题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y+=1/(i*i);应改为y+=1.0/(i*i);第23题答案第1处:int fun(n)应改为int fun(int n)第2处:if(n=1)应改为if(n==1)第24题答案第1处:if(r==p)应改为if(*r==*p) 第2处:if(r=='\0')应改为if(*r=='\0')第25题答案第1处:if n==0应改为if(n==0)第2处:result=n--;应改为result*=n--;第26题答案第1处:应填sum=0;第2处:scanf("%d,",a[i][j]);应改为scanf("%d,",&a[i][j]);第27题答案第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)第28题答案第1处:s=p;应改为p=s;第2处:应填p++;或++p;或p+=1;或p=p+1第3处:a[i]='0';应改为a[i]='\0';或a[i]=0;第29题答案第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);第30题答案第1处:long k;应改为long k=1;第2处:num\=10;应改为num/=10;第31题答案第1处:if((tt[i]>='a')||(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]<='z'))第2处:tt[i]+=32;应改为tt[i]-=32;第32题答案第1处:if(i+1%5==0)应改为if((i+1)%5==0)第33题答案第1处:while(*s!='@')应改为while(*s)或while(*s!='\0')或while(*s!=0)第2处:(*s)++;应改为s++;第34题答案第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0)第35题答案第1处:if(p=='')应改为if(*p=='')第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));第36题答案第1处:j=1;应改为j=0;第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0)第37题答案第1处:*r=t;应改为r=t;或r=&t[0];第2处:应填r=t;或r=&t[0];第38题答案第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t);或return t;第39题答案第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t[2*d-1]='\0';应改为t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;第40题答案第1处:for(i=j+1;i<n-1;i++)应改为for(i=j+1;i<n;i++)第2处:t=i;应改为p=i;第41题答案第1处:while(p->next)应改为while(p!=NULL)第2处:p=h->next;应改为p=p->next;第42题答案第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0)第2处:t[i]='\0';应改为t[j]='\0';或t[j]=0;第43题答案第1处:k=n;应改为k=i;第2处:b=k/10;应改为b=k%10;第44题答案第1处:fun(int**a,int m)应改为voidfun(int(*a)[M],int m)第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);第45题答案第1处:void fun(char*s,t1,t2,w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(w)应改为while(*w)第46题答案第1处:fun(int n)应改为doublefun(int n)第2处:return sum应改为returnsum;第47题答案第1处:void fun(int*a,int n);应改为void fun(int*a,int n)第2处:m=0;应改为m=i;第48题答案第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M])第2处:return sq;应改为return sp;第49题答案第1处:*t=malloc(sizeof(STU));应改为t=(STU*)malloc(sizeof(STU)*m);第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);第50题答案第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1-i];第51题答案第1处:void fun(char str[][],int m,char*pt)应改为void fun(char str[][10],int m,char*pt)第2处:pt[i]=str[k,i];应改为pt[i]=str[k][i];第52题答案第1处:int fun(double x[],int n)应改为int fun(double x[],int n){第53题答案第1处:switch(g);应改为switch(g) 第2处:case 1;应改为case 1:第54题答案第1处:double fun(char*s,char*t)应改为char*fun(char*s,char*t)第2处:(*ss)++;应改为ss++;第3处:(*tt)++;应改为tt++;第55题答案第1处:y=0;应改为y=1;第2处:d=i-a;应改为d=a-i;第56题答案第1处:void fun(char(*pstr)[6])应改为void fun(char*pstr[6])第2处:if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0)第3处:*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j);第57题答案第1处:while(i>j)应改为while(i<j)或while(j>i)第2处:c=0;应改为*c='\0';或*c=0; 第58题答案第1处:for(i=0;i<=s1;i++)应改为for(i=0;i<s1;i++)第2处:t[s1]='\0';应改为t[2*s1]='\0'; 第59题答案第1处:void fun(char*s,int num[5]);应改为void fun(char*s,int num[5]) 第2处:num[i]=0;应改为num[k]=0; 第3处:switch(s)应改为switch(*s) 第60题答案第1处:if(i%k!=0)应改为if(i%k==0)第2处:if(k<i)应改为if(k>=i)第61题答案第1处:fun(int m)应改为double fun(int m)第2处:for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100) 第62题答案第1处:break应改为break;第63题答案第1处:i=1;应改为i=0;第2处:while(i<3||*p)应改为while(i<3&&*p)第3处:b[k]='';应改为b[k++]='';第64题答案第1处:c=c-32;应改为c=c+32;第2处:c=c-5;应改为c=c+5;第65题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:s1=s1*100;应改为s1=s1*10;第66题答案第1处:fun(int n)应改为doublefun(int n)第2处:b+=c;应改为b=c;第67题答案第1处:fun(double a,double x0)应改为double fun(double a,double x0)第2处:if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6)第68题答案第1处:return 1;应改为return 3;第2处:return 3;应改为return 1;第69题答案第1处:void upfst(char p)应改为void upfst(char*p)第70题答案第1处:int fun(int*b);应改为intfun(int*b)第2处:for(k=10;k<=55;k++)应改为for(k=1;k<55;k++)第3处:return k;应改为return i;第71题答案第1处:if k>1应改为if(k>1)第72题答案第1处:int fun(char*str,*substr)应改为int fun(char*str,char*substr)第2处:for(i=0,str[i],i++)应改为for(i=0;str[i];i++)第73题答案第1处:t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i;第2处:应填return t;第74题答案第1处:c=aa[i];应改为ch=aa[i];第75题答案第1处:int fun(int m,int xx[][])应改为int fun(int m,int xx[][M])第2处:printf("%4f",xx[i][j]);应改为printf("%4d",xx[i][j]);第76题答案第1处:long s1=0;应改为long s1=1;第2处:s\=10;应改为s/=10;第77题答案第1处:void fun(char a)应改为voidfun(char*a)第78题答案第1处:k++应改为k++;第2处:if(m=k)应改为if(m==k)第79题答案第1处:c[t]="\0";应改为c[t]='\0';第80题答案第1处:fun(int n)应改为doublefun(int n)第2处:s=s+(Double)a/b;应改为s=s+(double)a/b;第81题答案第1处:fun(int n)应改为doublefun(int n)第2处:for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)第82题答案第1处:result*=--n;应改为result*=n--;第2处:应填return result;第83题答案第1处:void fun(int x,int y)应改为void fun(int*x,int*y)第2处:t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;第84题答案第1处:void fun(int m,int k);应改为void fun(int m,int k)第2处:aa[i]=m/k;应改为aa[i]=m%k;第3处:printf("%d",aa[i]);应改为printf("%d",aa[i-1]);第85题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[i]='\0';应改为s[j]='\0';第86题答案第1处:float*k;应改为float k;第2处:if(*s<*p)应改为if(*s>*p)第87题答案第1处:void fun(int a)应改为voidfun(int a[M])或void fun(int a[])或void fun(int*a)第2处:a[j]=a[j+1];应改为a[j]=a[j-1];第88题答案第1处:for(i=0;i<=3;i++)应改为for(i=1;i<=3;i++)第2处:if(k>=1&&k<=6)应改为if(k>=0&&k<=6)*zero=count; 第89题答案第1处:for(i=1;i<y;i++)应改为for(i=1;i<=y;i++)第2处:t=t/1000;应改为t=t%1000;第90题答案第1处:d=0;应改为d=1;第2处:s=1;应改为s=0;第3处:s=s/10;应改为d=d/10;第91题答案第1处:for(i=strlen(t);i;i--)应改为for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)第2处:if(t[j]<t[j+1])应改为if(t[j]>t[j+1])第92题答案第1处:long s=0,t=1;应改为longs=0,t=0;第2处:for(j=0;j<=n;j++)应改为for(j=0;j<n;j++)第3处:t=t%10;应改为t=t/10;第93题答案第1处:while(t>=num)应改为while(fabs(t)>=num)第2处:t=s%n;应改为t=s/n;第94题答案第1处:int sum=0.0;应改为doublesum=0.0;第2处:sum\=c;应改为sum/=c;第95题答案第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n;第2处:return s;应改为return t;第96题答案第1处:fun(int k)应改为doublefun(int k)第2处:return s应改为return s;第97题答案第1处:f(double x)应改为doublef(double x)第2处:return s应改为return s;第98题答案第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n)第2处:Return(value);应改为return(value);第99题答案第1处:int i,j,k,sum;应改为inti,j=0,k,sum;第2处:if(sum%4=2)应改为if(sum%4==2)第100题答案第1处:if(t=0)应改为if(t==0)第2处:zero=count;应改为。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、给定程序MODI1.C 中函数 fun 的功能是:计算n!。

例如,给n 输入5,则输出120.000000。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include <stdio.h> double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。

第二处:语句后缺少分号。

2、给定程序MODI1.C 中函数fun 的功能是: 依次取出字符串中所有数字字符, 形 成新的字符串, 并取代原字符串。

请改正函数fun 中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i]; /**********found**********/ s[j]="\0"; } main() { char item[80]; printf("\nEnter a string : ");gets(item); printf("\n\nThe string is : \"%s\"\n",item); fun(item); printf("\n\nThe string of changing is : \"%s\"\n",item ); } 解题思路: 第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。

第二处: 置新字符串的结束符,所以应改为:s[j]='\0';.3、给定程序MODI1.C 中的函数Creatlink 的功能是创建带头结点的单向链表, 并 为各结点数据域赋0到m-1的值。

请改正函数Creatlink 中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> #include <stdlib.h> typedef struct aa { int data; struct aa *next; } NODE; NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i; /**********found***********/ p=(NODE )malloc(sizeof(NODE )); h=p; p->next=NULL; for(i=1; i<=n; i++) { s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; } /**********found***********/ return p; } outlink(NODE *h) { NODE *p; p=h->next; printf("\n\nTHE LIST :\n\n HEAD "); while(p) { printf("->%d ",p->data); p=p->next; } printf("\n"); } main() { NODE *head; head=Creatlink(8,22); outlink(head); } 解题思路: 第一处: 指向刚分配的结构指针,所以应改为:p=(NODE *)malloc(sizeof(NODE)); 第二处: 在动态分配内存的下一行语句是,使用临时结构指针变量h 保存p 指针的初始位置, 最后返回不能使用p ,是因为p 的位置已经发生了变化,所以应改为返回h 。

4、给定程序MODI1.C 中函数fun 的功能是: 在字符串的最前端加入n 个*号, 形成 新串, 并且覆盖原串。

注意: 字符串的长度最长允许为79。

请改正函数fun 中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> #include <string.h> void fun ( char s[], int n ) { char a[80] , *p; int i; /**********found***********/ s=p; for(i=0; i<n; i++) a[i]='*'; do { a[i]=*p; i++; } /**********found***********/ while(*p++) a[i]=0; strcpy(s,a); } main() { int n; char s[80]; printf("\nEnter a string : "); gets(s); printf("\nThe string \"%s\"\n",s); printf("\nEnter n ( number of * ) : "); scanf("%d",&n); fun(s,n); printf("\nThe string after insert : \"%s\" \n" ,s); } 解题思路: 第一处: 指针p 应指向s ,所以应改为:p=s;。

第二处: 死循环,当do while 循环执行一次,临时变量p 应该指向字符串的下一位置,所以 应改为:while(*p++);5、给定程序MODI1.C 中函数fun 的功能是: 对N 名学生的学习成绩,按从高到低的 顺序找出前m(m ≤10)名学生来, 并将这些学生数据存放在一个动态分配的连续存 储区中, 此存储区的首地址作为函数值返回。

请改正函数fun 中指定部位的错误, 使它能得出正确的结果。

注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> #include <alloc.h> #include <string.h> #define N 10 typedef struct ss { char num[10]; int s; } STU; STU *fun(STU a[], int m) { STU b[N], *t; int i,j,k; /**********found**********/ t=(STU *)calloc(sizeof(STU),m) for(i=0; i<N; i++) b[i]=a[i]; for(k=0; k<m; k++) { for(i=j=0; i<N; i++) if(b[i].s > b[j].s) j=i; /**********found**********/ t(k)=b(j); b[j].s=0; } return t; } outresult(STU a[], FILE *pf) { int i; for(i=0; i<N; i++) fprintf(pf,"No = %s Mark = %d\n", a[i].num,a[i].s); fprintf(pf,"\n\n"); } main() { STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A 05",77}, {"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} }; STU *pOrder; int i, m; printf("***** The Original data *****\n"); outresult(a, stdout); printf("\nGive the number of the students who have better score: "); scanf("%d",&m); while( m>10 ) { printf("\nGive the number of the students who have better score: "); scanf("%d",&m); } pOrder=fun(a,m); printf("***** THE RESULT *****\n"); printf("The top :\n"); for(i=0; i<m; i++) printf(" %s %d\n",pOrder[i].num , pOrder[i].s); free(pOrder); } 解题思路: 第一处: 语句最后缺少分号。

相关文档
最新文档