当前位置:首页 >> 能源/化工 >>

程序改错3


【程序改错】 -------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ 题目1:以下程序的功能是求如下表达式: 1 1 1 S = 1 + —— + ——— +

...... + ——————— 1+2 1+2+3 1+2+3+......+n #include <stdio.h> main() { int n; float fun(); printf("Please input a number:"); /**********FOUND**********/ print("%d",n) ; printf("%10.6f\n",fun(n)); } /**********FOUND**********/ fun(int n) { int i,j,t; float s; s=0; /**********FOUND**********/ while(i=1;i<=n;i++); { t=0; for(j=1;j<=i;j++) t=t+j; /**********FOUND**********/ =s+1/t; } return s;

} 题目2:函数fun的功能是:计算正整数num的各位上的数字之积。例如, 输入252,则输出应该是20。 请改正程序中的错误,使它能得出正确的结果。 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:"); /**********FOUND**********/ scanf("%ld", n); /**********FOUND**********/ printf("\n%ld\n",fun(long n)); } 题目3:用"冒泡法"对输入的十个字符排序后按从小到大的次序输出. #define N 10 main( ) {int i; char str[N]; /***********FOUND***********/

scanf("%s",&str); /***********FOUND***********/ sort(str[N]); for(i=0;i<N;i++) printf("%c",str[i]); printf("\n"); } sort(char str[N]) {int i,j; char t; for(j=1;j<N;j++) /***********FOUND***********/ for(i=0;(i<N-j)||(str[i]!='\0');i++) /***********FOUND***********/ if(str[i]<str[i+1]) {t=str[i];str[i]=str[i+1];str[i+1]=t;} } 题目4:函数fun的功能是:求出两个非零正整数的最大公约数,并作为 函数值返回。例如,若给num1和num2分别输入49和21,则输出的 最大公约数为7。 请改正程序中的错误,使它能得出正确的结果。 int fun(int a,int b) { int r,t; if(a<b) { t=a; /**********FOUND**********/ b=a; /**********FOUND**********/ a=t; } r=a%b;

while(r!=0) { a=b; b=r; /**********FOUND**********/ r=a/b;} /**********FOUND**********/ return a; } main() { int num1,num2,a; scanf("%d%d",&num1,&num2); a=fun(num1,num2); printf("the maximum common divisor is %d\n\n",a); } 题目5:函数fun的功能是:实现交换两个整数的值。例如给a和b分别输 入3和6 ,输出为a=6 b=3 请改正程序中的4个错误,使它能得出正确的结果。 /**********FOUND**********/ void fun (int a, b) { int t; /**********FOUND**********/ t=a; /**********FOUND**********/ a=b; /**********FOUND**********/ b=t; } main() {

int a,b; printf("enter a,b:");scanf("%d%d",&a,&b); fun(&a,&b); printf("a=%d b=%d\n",a,b); } 题目6:在一个一维整型数组中找出其中最大的数及其下标。程序中共 有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;c<a+n;c++) if(*c>max) { max=*c; /**********FOUND**********/ b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i<N;i++) /**********FOUND**********/ get("%d",a[i]); /**********FOUND**********/ m=fun(a,p,N); printf("max=%d,position=%d",max,p); } 题目7:用冒泡法对10个整数从小到大排序。程序中共有4条错误语句,

请改正错误。 /**********FOUND**********/ void sort(int x,int n) { int i,j,k,t; for(i=0;i<n-1;i++) /**********FOUND**********/ for(j=0;j<n-i;j++) /**********FOUND**********/ if(x[i]>x[i+1]) { t=x[j];x[j]=x[j+1];x[j+1]=t;} } main() { int i,n,a[100]; printf("please input the length of the array:\n"); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); /**********FOUND**********/ sort(n,a); printf("output the sorted array:\n"); for(i=0;i<=n-1;i++) printf("%5d",a[i]); printf("\n"); } 题目8:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。请改 正程序中的错误,使它能得出正确的结果。 fun(int a[3][3],int m,int n) { int i,j,t; for(i=0;i<m;i++)

for(j=0;j<n;j++) /**********FOUND**********/ scanf("%d",a[i][j]); for(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%4d",a[i][j]); printf("\n"); } for(i=0;i<m;i++) /**********FOUND**********/ for(j=0;j<n;j++) { /**********FOUND**********/ a[i][j]=t; a[i][j]=a[j][i]; /**********FOUND**********/ t=a[j][i]; } for(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%4d",a[i][j]); printf("\n"); } } main() { int b[3][3]; fun(b,3,3); } 题目9:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分, 最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。

main( ) { int i; /***********FOUND***********/ float a[8],min,max,avg; printf("input 10 score:"); for(i=0;i<=9;i++) { printf("input a score of student:"); /***********FOUND***********/ scanf("%f",a); } /***********FOUND***********/ max=min=avg=a[1]; for(i=1;i<=9;i++) { /***********FOUND***********/ if(min<a[i]) min=a[i]; if(max<a[i]) max=a[i]; avg=avg+a[i]; } avg=avg/10; printf("max:%f\nmin:%f\navg:%f\n",max,min,avg); } 题目10:下面程序的功能是利用二维数组输出如图所示的图形。 ******* ***** *** * *** ***** *******

#include <conio.h> /**********FOUND**********/ #define N= 7 main() { char a[N][N]; int i,j,z; clrscr(); for(i=0;i<N;i++) for(j=0;j<N;j++) /**********FOUND**********/ a[i][j]=; z=0; for(i=0;i<(N+1)/2;i++) { for(j=z;j<N-z;j++) a[i][j]='*'; z=z+1; } /**********FOUND**********/ z=0; for(i=(N+1)/2;i<N;i++) {z=z-1; for(j=z;j<N-z;j++) a[i][j]='*'; } for(i=0;i<N;i++) { for(j=0;j<N;j++) /**********FOUND**********/ printf("%d",a[i][j]); printf("\n"); } }

题目11:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。主 函数和fun函数中,各有两个错误,请改正,使其能得到正确的运行结 果。 main() { int i; float t,s=0; float fac(int n); /**********FOUND**********/ for(i=1;i<10;i++) /**********FOUND**********/ s=fac(i); printf("%f\n",s); } float fac(int n) { /**********FOUND**********/ int y=1; int i; for(i=1 ;i<=n;i++) y=y*i; /**********FOUND**********/ return; } 题目12:将一个字符串中第m个字符开始的全部字符复制成为另一个字 符串。 程序中共有4条错误语句,请改正错误。 #include<stdio.h> void strcopy(char *str1,char *str2,int m) /**********FOUND**********/ char p1,p2;

int i,j; /**********FOUND**********/ = str1+m; p2=str2; /**********FOUND**********/ if(*p1); *p2++=*p1++; *p2='\0'; } main() { int i,m; char *p1,*p2,str1[80],str2[80]; p1=str1; p2=str2; gets(p1); scanf("%d",&m); /**********FOUND**********/ strcat(str1[0],str2[0],m); puts(p1);puts(p2); } 题目13:fun函数的功能是:给定n个实数,输出平均值,并统计在平均 值以下 (含平均值) 的实数个数。 例如, n=6时, 输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得平均值为40.828335,在平均值以下 的实数个数应为3。请改正程序中的错误,使它能得出正确的结 果。 int fun(float x[],int n) { int j,c=0; /**********FOUND**********/ float j=0; /**********FOUND**********/ for(j=0;j<=n;j++)

xa+=x[j]; xa=xa/n; printf("ave=%f\n",xa); /**********FOUND**********/ for(j=0;j<=n;j++) if(x[j]<=xa) c++; /**********FOUND**********/ return xa; } main() { float x[]={23.5,45.67,12.1,6.4,58.9,98.4}; printf("%d\n",fun(x,6)); }

答案: 1). float xa=0; 或 float xa=0.0; 2). for(j=0;j<n;j++) 或 for(j=0;n>j;j++) 或 for(j=0;n-1>=j;j++) 或 for(j=0;j<=n-1;j++) 3). for(j=0;j<n;j++) 或 for(j=0;n>j;j++) 或 for(j=0;j<=n-1;j++) 或 for(j=0;n-1>=j;j++) 4). return c; 或 return (c);

题目14:fun函数的功能是:找出大于m的最小素数,并将其作为函数值 返回。 请改正程序中的错误,使它能得出正确的结果。 int fun( int m) { int i,k; for(i=m+1;;i++) { /**********FOUND**********/

for(k=1;k<i;k++) /**********FOUND**********/ if(i%k!=0) break; /**********FOUND**********/ if(k<i) /**********FOUND**********/ return k; } } main() { int n; scanf("%d",&n); printf("%d\n",fun(n)); }

答案: 1). 2). 3). 4).

for(k=2;k<i;k++) 或 for(k=2;i>k;k++) if(★i%k★==★0★) break; if(i<=k) 或 if(k>=i) 或 if(★k★==★i★) return i; 或 return (i);

题目15:在主函数中从键盘输入若干个数放入数组中,用0结束输入并 放在最后一个元素中。下列给定程序中,函数fun的功能是:计 算数组元素中值为正数的平均值(不包括0)。例如,数组中元素 的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为 19.250000。 请改正程序中的错误,使它能得出正确的结果。 double fun(int s[]) { /**********FOUND**********/ int sum=0.0; int c=0,i=0;

/**********FOUND**********/ while(s[i] =0) { if (s[i]>0) {sum+=s[i];c++;} i++; } /**********FOUND**********/ sum\=c; /**********FOUND**********/ return c; } main() { int x[1000];int i=0; do {scanf("%d",&x[i]);} while(x[i++]!=0); printf("%f\n",fun(x)); } 题目16:fun函数的功能是:实现两个字符串的连接。例如:输入dfdfqe 和12345时,则输出dfdfqe12345. 请改正程序中的错误,使它能得出正确的结果。 main() { char s1[80],s2[80]; void scat(char s1[],char s2[]); gets(s1); gets(s2); scat(s1,s2); puts(s1); }

void scat (char s1[],char s2[]) { int i=0,j=0; /**********FOUND**********/ while(s1[i]= ='\0') i++; /**********FOUND**********/ while(s2[j]= ='\0') { /**********FOUND**********/ s2[j]=s1[i]; i++; j++; } /**********FOUND**********/ s2[j]='\0'; } 题目17:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 请改正程序中的错误,使它能得出正确的结果。 double fun(int m) { double y=1.0; int i; /**********FOUND**********/ for(i=2;i<m;i--) /**********FOUND**********/ y-=1/(i*i); /**********FOUND**********/ return m; } main()

{ int n=5; printf("\nthe result is %lf\n",fun(n)); } 题目18:编写函数fun求20以内所有5的倍数之积。 #define N 20 #include "stdio.h" main() { int sum; sum=fun(5); printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum); getch(); } int fun(int m) { /**********FOUND**********/ int s=0,i; for(i=1;i<N;i++) /**********FOUND**********/ if(i%m=0) /**********FOUND**********/ s=*i; return s; } 题目19:编写函数fun其功能是:输入两个实数,按代数值由小到大输出 它们,并在fun() 函数中输出。(输出的数据都保留2位小数) #include "stdio.h" main() {fun(); getch();}

fun(float a,float b ) { /**********FOUND**********/ float t scanf("%f %f",&a,&b); /**********FOUND**********/ if(a<b) {t=a;a=b;b=t;} /**********FOUND**********/ printf("%5.2f ,%5.2f\n",&a,&b); }

题目20:编写函数fun计算下列分段函数的值: x*20 x<0且x≠-3 f(x)= sin(x) 0≤x<10且x≠2及x≠3 x*x+x-1 其它 #include"math.h" #include "stdio.h" float fun(float x) { /**********FOUND**********/ float y /**********FOUND**********/ if (x<0 || x!=-3.0) y=x*20; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=sin(x); else y=x*x+x-1; /**********FOUND**********/ return x; } main()

{ float x,f; printf("Input x="); scanf("%f",&x); f=fun(x); printf("x=%f,f(x)=%f\n",x,f); getch(); } 题目21:编写函数fun求20以内所有5的倍数之积。 #define N 20 #include "stdio.h" main() { int sum; sum=fun(5); printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum); getch(); } int fun(int m) { /**********FOUND**********/ int s=0,i; for(i=1;i<N;i++) /**********FOUND**********/ if(i%m=0) /**********FOUND**********/ s=*i; return s; } 答案: 1). 2). 3).

int ★s=1★,★i★; if(i%m==0) s=s*i 或 s=i*s 或 s*=i

题目22:给定程序MODI1.C中函数 fun 的功能是:计算正整数num的各 位上的数字之积。例如,若输入:252,则输出应该是:20。若输入: 202,则输出应该是:0。 #include <stdio.h> #include <conio.h> long fun (long num) /**********FOUND**********/ {long k=1 do { k*=num%10 ; /**********FOUND**********/ num\=10; /**********FOUND**********/ } while(!num) ; return (k) ; } main( ) { long n ; clrscr() ; printf("\Please enter a number:") ; scanf("%ld",&n) ; printf("\n%ld\n",fun(n)) ; getch(); } 答案: 1). 2). 3).

{long k=1; num/=10; } while(num) ;

题目23:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从 小到大进行排序,并删除重复的字符。 #include <stdio.h>

#include <string.h> void main() {char str[100],*p,*q,*r,c; printf("输入字符串:"); gets(str); /**********FOUND**********/ for(p=str;p;p++) { for(q=r=p;*q;q++) if(*r>*q) r=q; /**********FOUND**********/ if(r==p) { /**********FOUND**********/ c=r; *r=*p; *p=c; } } for(p=str;*p;p++) {for(q=p;*p==*q;q++); strcpy(p+1,q); } printf("结果字符串:%s\n\n",str); getch(); } 答案: 1). 2). 3).

for(p=str;*p;p++) if(r!=p) c=*r;

题目24:编写函数fun,求两个整数的最小公倍数,然后用主函数main()

调用这个函数并输出结果,两个整数由 键盘输入。 -------------------------------------------------注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include "stdio.h" main() { unsigned int m,n,q; printf("m,n="); scanf("%d,%d",&m,&n); /**********FOUND**********/ q==fun(m,n); printf("p(%d,%d)=%d",m,n,q); getch(); } int fun(int m,int n) { int i; /**********FOUND**********/ if (m=n) {i=m;m=n;n=i;} for(i=m;i<=m*n;i+=m) /**********FOUND**********/ if(i%n==1) return(i); } 答案: 1). 2).

q=fun(m,n); if (m<n)

3).

if(i%n==0)

题目25:打印出杨辉三角形(要求打印出10行). #include"stdio.h" main() {int i,j; int a[10][10]; printf("\n"); /**********FOUND**********/ for(i=1;i<10;i++) {a[i][0]=1; a[i][i]=1;} /**********FOUND**********/ for(i=1;i<10;i++) for(j=1;j<i;j++) /**********FOUND**********/ a[i][i]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<10;i++) {for(j=0;j<=i;j++) printf("%5d",a[i][j]); printf("\n"); getch(); } } 答案: 1). 2). 3).

for(i=0;i<10;i++) 或 for(i=0;i<=9;i++) for(i=2;i<10;i++) 或 for(i=2;i<=9;i++) a[i][j]=a[i-1][j-1]+a[i-1][j];

题目26:编写函数fun生成一个对角线元素为5,上三角元素为0,下三 角元素为1的3*3的二维数组。 #include "stdio.h"

main() { int a[3][3],i,j; fun(a); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } getch(); } fun(int arr[][3]) /**********FOUND**********/ { int i,j /**********FOUND**********/ for(i=1;i<3;i++) for(j=0;j<3;j++) /**********FOUND**********/ if(i=j) arr[i][j]=5; else if(j>i) arr[i][j]=0; else arr[i][j]=1; } 答案: 1). 2). 3).

{ int i,j; for(i=0;i<3;i++) if(i==j)

题目27:编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。 #include<stdio.h> void main() {

float x,y; char operate1; printf("Arithmetic expression\n"); /**********FOUND**********/ scanf("%f",x); /**********FOUND**********/ while((operate1==getchar())!='=') { printf("result="); scanf("%f",&y); /**********FOUND**********/ switch(y); { case '+': x+=y; break; case '-': x-=y; break; case '*': x*=y; break; case '/': x/=y; break; } } printf("%f",x); getch(); return; } 答案: 1). 2).

scanf("%f",&x); while((operate1=getchar())!='=')

3).

switch(operate1)

题目28:利用递归函数调用方式,将所输入的5个字符,以相反顺序打 印出来。 #include"stdio.h" main() { int i=5; void palin(int n); printf("\40:"); palin(i); printf("\n"); } void palin(n) int n; { /**********FOUND**********/ int next; if(n<=1) { /**********FOUND**********/ next!=getchar(); printf("\n\0:"); putchar(next); } else { next=getchar(); /**********FOUND**********/ palin(n); putchar(next); } }

答案: 1). 2). 3).

char next; next=getchar(); palin(n-1);

题目29:编写函数fun其功能是:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m #include "stdio.h" double fun(int m) { /**********FOUND**********/ double y=0 int i; /**********FOUND**********/ for(i=1; i<m; i++) /**********FOUND**********/ {y=+1.0/(2*i*i); } return(y); } main() {int n; clrscr(); printf("Enter n: "); scanf("%d", &n); printf("\nThe result is %1f\n", fun(n)); getch(); } 答案: 1). 2). 3).

double y=0; for(i=1; i<=m; i++) {y+=1.0/(2*i*i); }

题目30: 写一个函数, 求一个字符串的长度, 在main函数中输入字符串, 并输出其长度。 #include"stdio.h" main() { int len; /**********FOUND**********/ char str[20]; printf("please input a string:\n"); scanf("%s",str); /**********FOUND**********/ len==length(str); printf("the string has %d characters.",len); getch(); } int length(p) char *p; { int n; n=0; /**********FOUND**********/ while(*p=='\0') { n++; p++; } return n; } 答案: 1). 2). 3).

char *str[20]; len=length(str); while(*p!='\0')

题目31:给定程序MODI1.C中函数 fun 的功能是: 统计字符串中各元

音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。 例 如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 #include <conio.h> #include <stdio.h> fun ( char *s, int num[5] ) { int k, i=5; for ( k = 0; k<i; k++ ) /**********FOUND**********/ num[i]=0; for (; *s; s++) { i = -1; /**********FOUND**********/ switch ( s ) { case 'a': case 'A': {i=0; break;} case 'e': case 'E': {i=1; break;} case 'i': case 'I': {i=2; break;} case 'o': case 'O': {i=3; break;} case 'u': case 'U': {i=4; break;} } /**********FOUND**********/ if (i < 0) num[i]++; } } main( ) { char s1[81]; int num1[5], i; clrscr(); printf( "\nPlease enter a string: " ); gets( s1 ); fun ( s1, num1 ); for ( i=0; i < 5; i++ ) printf ("%d ",num1[i]); printf ("\n"); } 答案: 1). 2).

num[k]=0; switch(*s)

3).

if (i >= 0)

题目32:给定程序MODI1.C中函数 fun 的功能是:求广义菲玻那契级数 的第n项。 广义菲玻那契级数的前n项为: 1, 1, 5, 17, …… 1, 3, 9, 31, 项值通过函数值返回 main ( )函数。 例如,若 n = 15,则应输出:The value is: 2209。 #include <conio.h> #include <stdio.h> long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********FOUND**********/ for (k=4; k<n; k++) { d = a+b+c; /**********FOUND**********/ a=b; b=c; c=d } /**********FOUND**********/ return k; } main( ) { int n = 15; clrscr( ); printf( "The value is: %ld\n", fun ( n ) ); } 答案: 1). 2). 3).

for (k=4; k<=n; k++) a=b; b=c; c=d; return d;

题目33:以下程序能求出1*1+2*2+......+n*n<=1000 中满足条件的最 大的n.。 #include "string.h"

main() { int n,s; /**********FOUND**********/ s==n=0; /**********FOUND**********/ while(s>1000) { ++n; s+=n*n; } /**********FOUND**********/ printf("n=%d\n",&n-1); getch(); } 答案: 1). 2). 3).

s=n=0; while(s<=1000) printf("n=%d\n",n-1);

题目34:给定程序MODI1.C中函数 fun 的功能是:输入两个双精度数, 函数返回它们的平方和的平方根值。 例如输入:22.936 和 14.121,输出为:y= 26.934415。 #include <stdio.h> #include <conio.h> #include <math.h> /**********FOUND**********/ double fun (double *a, *b) { double c; /**********FOUND**********/ c = sqr(a*a + b*b); /**********FOUND**********/ return *c; }

main ( ) { double a, b, y; clrscr( ); printf ( "Enter a, b : "); scanf ("%lf%lf", &a, &b ); y = fun (&a, &b); printf ("y = %f \n", y ); } 答案: 1). 2). 3).

double fun (double *a, double *b) c = sqrt(*a * *a + *b * *b); return c;

题目35: 写一个程序,计算级数 ex=1+x+x2/2!+x3/3!+...+xn/n! 的值。 #include"stdio.h" main() { int m,n; float x,term,ex1,ex2; printf("x,m="); scanf("%f %d",&x,&m); /**********FOUND**********/ ex1==ex2=1; term=1; for(n=1;n<=m;n++) { /**********FOUND**********/ term*=x%n; ex1+=term; } ex2=term; /**********FOUND**********/ for (n=m;n>1; n--) {

term*=n/x; ex2+=term; } printf("exforward=%f exbackrard=%f\n",ex1,ex2); getch(); } 答案: 1). 2). 3).

ex1=ex2=1; term*=x/n; for (n=m;n>=1; n--)

题目36:编写函数求2!+4!+6!+8!+10+12!+14!。 #include "stdio.h" long sum(int n) { /**********FOUND**********/ int i,j long t,s=0; /**********FOUND**********/ for(i=2;i<=n;i++) {t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} /**********FOUND**********/ return(t); } main() { printf("this sum=%ld\n",sum(14)); getch(); }

答案: 1). int i,j; 2). for(i=2;i<=n;i=i+2) 或 for(i=2;i<=n;i+=2) 或 for(i=2;i<=n;i++,i++) 3). return(s); 题目37:以下程序把两个数按由大到小的顺序输出来. /***********FOUND***********/ swap( int *p1,*p2) {int p; p=*p1; *p1=*p2; *p2=p; } main( ) {int a,b, *p1,*p2; printf("input a,b:"); /***********FOUND***********/ scanf("%d%d",a,b); /***********FOUND***********/ *p1=&a;*p2=&b; if(a<b) swap(p1,p2); printf("a=%d,b=%d\n",a,b); /***********FOUND***********/ printf("max=%d,min=%d\n",p1,p2); } 答案: 1). 2). 3). 4).

swap( int *p1,int *p2) scanf("%d%d",&a,&b); p1=&a;p2=&b; printf("max=%d,min=%d\n",*p1,*p2);

题目38:求100以内(包括100)的偶数之和.

#include "stdio.h" main() { /**********FOUND**********/ int i,sum=1; /**********FOUND**********/ for(i=2;i<=100;i+=1) sum+=i; /**********FOUND**********/ printf("Sum=%d \n";sum); getch(); } 答案: 1). 2). 3).

int i,sum=0; for(i=2;i<=100;i+=2) printf("Sum=%d \n",sum);

题目39:用指针作函数参数,编程序求一维数组中的最大和最小的元素 值. #define N 10 /***********FOUND***********/ void maxmin(int arr[ ],int *pt1, *pt2, n) {int i; /***********FOUND***********/ *pt1=*pt2=&arr[0]; for(i=1;i<n;i++) /***********FOUND***********/ {if(arr[i]<*pt1) *pt1=arr[i]; if(arr[i]<*pt2) *pt2=arr[i]; } } main( )

{ int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b; /***********FOUND***********/ *p1=&a;*p2=&b; maxmin(array,p1,p2,N); printf("max=%d,min=%d",a,b); } 答案: 1). 2). 3). 4).

void maxmin(int arr[ ],int *pt1,int *pt2,int n) *pt1=*pt2=arr[0]; if(arr[i]>*pt1) p1=&a;p2=&b;

题目40:给定程序MODI1.C中函数 fun 的功能是:从m个学生的成绩中 统计出高于和等于平均分的学生人数, 此人数由函数值返回。平均分 通过形参传回,输入学生成绩时, 用-1结束输入,由程序自动统计学 生人数。 例如,若输入 8 名学生的成绩,输入形式如:80.5 60 72 90.5 98 51.5 88 64 -1 结果为: The number of students :4 Ave = 75.56。 #include <conio.h> #include <stdio.h> #define N 20 int fun ( float *s, int n, float *aver ) { float av, t ; int count , i; count = 0; t=0.0; for ( i = 0; i < n; i++ ) t += s [ i ]; av = t / n; printf( "ave =%f\n",av ); for ( i = 0; i < n; i++ ) /**********FOUND**********/ if ( s[ i ] < av ) count++; /**********FOUND**********/ aver = av;

/**********FOUND**********/ return count } main() { float a, s[30], aver; int m = 0, i; clrscr(); printf ( "\nPlease enter marks ( -1 to end):\n "); scanf("%f",&a ); while( a>0 ) { s[m] = a; m++; scanf ( "%f", &a );} printf( "\nThe number of students : %d\n" , fun ( s, m, &aver )); printf( "Ave = %6.2f\n",aver ); } 答案: 1). 2). 3).

if ( s[ i ] >= av ) count++; *aver = av; return count;

题目41:将s所指字符串的反序和正序进行连接形成一个新串放在t所指 的数组中。 例如:当s所指的字符串的内容为"ABCD"时,t所指数组中的内容 为"DCBAABCD"。 请改正程序中的语法错误,使它能运行出正确的结果。 #include <conio.h> #include <stdio.h> #include <string.h> /**********FOUND**********/ void fun (char s, char t) { int i, d; /**********FOUND**********/ d = len(s);

/**********FOUND**********/ for (i = 1; i<d; i++) t[i] = s[d - 1 - i ]; for (i = 0; i<d; i++) t[ d + i ] = s[i]; /**********FOUND**********/ t[2*d] = '/0'; } main() { char s[100], t[100]; clrscr(); 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[]) 或 void fun (char t[],char s[]) 2). d = strlen(s); 3). for (i = 0; i<d; i++) 或 for (i = 0; d>i; i++) 或 for (i = 0; i<=d-1; i++) 或 for (i = 0; d-1>=i; i++) 4). t[★2★*★d★] = '\0'; 题目42:给定程序MODI1.C中函数 fun 的功能是:用选择法对数组中的 n个元素按从小到大的顺序进行排序。 #include <stdio.h> #define N 20 void fun(int a[], int n) { int i, j, t, p; for (j = 0 ;j < n-1 ;j++) {

/**********FOUND**********/ p = j for (i = j;i < n; i++) /**********FOUND**********/ 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"); getch(); } 答案: 1). 2). 3).

p = j; if(a[i] < a[p]) p = i;


相关文章:
程序改错3
程​序​改​错​3 暂无评价|0人阅读|0次下载|举报文档【程序改错】 ---注意:不可以增加或删除程序行,也不可以更改程序的结构。 ---*/ 题目1:以下...
程序改错
("\n"); } } 【评分报告得分:3.3 之 10.0 】 【改错1】 错误 【...【程序改错】 ---功能:将若干学生的档案存放在一个文件中,并显示其内容。 ...
程序改错
long k=1; num/=10; 或 num=num/10; scanf("%ld",&n); printf("\n%ld\n",fun(n)); 显示序号:3 题号:22 科目:Turbo C 题型:程序改错 题干: ...
程序改错题答案
***/”、“/*** 2***/”、“/*** 3***/”、“/*** 4 ***/” 等部分为需要程序改错的标志,其下一行程序语句有错误。考生需根据程序的功能自行改错...
程序改错
(答案 3)=== a[i][j]=a[i-1][j-1]+a[i-1][j]; 第 26 题(10.0 分) 【程序改错】 题号:285 难度:中 第2章 /*---功能:根据...
程序改错
'***FOUND*** Next I Next j Print Next i End Sub 程序改错 GC138 题目:输出 40 以内能够被 3 整除的数,要求输出结果为 ' 5 个数一行。 Private Sub...
程序改错
3.space 2『Visual Basic——程序改错』 '【程序改错】463 '---'题目:以下程序功能是输入三个数,由大到小排序。 '---'注意:不可增加或删除程序行,也不可...
程序改错 答案版
12683.题目:产生 30 个小于 100 的 程序改错成绩随机数,并统计出优、良、...() Text1 = "" End Sub Private Sub Command3_Click() Open "exam.Txt"...
程序改错
[2*d] = NULL; 〖第 3 题〗(练习题所在文件夹:360) /*---【程序改错】 ---题目:将长整型数中每一位上为偶数的数依次取出,构成一个新 数放在 t 中...
程序改错
程序改错_IT认证_资格考试/认证_教育专区。9.21 *程序名:dbtest3.prg *定义一个视图 VS1, *检索选课门数是 3 门以上的每个学生的学号、姓名、平均成绩、最...
更多相关标签:
程序改错 | c语言程序改错题 | vb程序改错题 | c语言程序改错 | java程序改错题 | 程序改错题 | 程序改错题答案 | vb程序改错 |