程序改错最终修订版(5)

2018-11-28 15:48

n--;

/**********ERROR**********/ while(a[n]!='*')n--;

for(i=0;i<=n;i++) a[j++]=a[i]; /**********ERROR**********/ a[j]='0'; }

【参考答案】while(a[n]!='\\0')n++; while(a[n]=='*')n--; a[j]=0;

【程序改错】题目:定义一个5×5的二维数组a,请编写程序使数组第2行、第4行

元素值为2,其它元素值为1,并输出如图所示二维数组。

1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 #include /**********ERROR**********/ #define N= 5 void fun(int a[N][N]) {int i,j; for(i=0;i

/**********ERROR**********/ if(i=1||i=3) a[i][j]=2; else a[i][j]=1; } main()

{/**********ERROR**********/ int a[N][N],i;j; fun(a); for(i=0;i

for(j=0;j

printf(\ /**********ERROR**********/ printf(\ } }

【参考答案】#define N 5 if(i==1||i==3) int a[N][N],i,j; printf(\

【程序改错】题目:调用fun函数。从键盘上输入一个整

数给变量n,求1-n之间的奇数和。如n输入8,和为16。 #include

/***********ERROR***********/ int fun( k) {int m=0; while(k>=1 ) {

/***********ERROR***********/ if(k%2==0) m=m+k; k--;} return m;} main() {int n;

/***********ERROR***********/ scanf(\

printf(\ }

答案:int fun(int k) if(k%2==1) scanf(\

【程序改错】功能:已知一个数列从第0项开始的前三项分别为0、0、1,以

后的各项都是其相邻的前三项的和。下列给定程序中,

函数fun的功能是:计算并输出该数列的前n项的平方根

之和sum,n的值通过形参传入。

例如:当n=10时,程序的输出结果应为23.197745。 #include #include

/**********ERROR**********/ fun (int n) {

double sum,s0,s1,s2,s; int k;

/**********ERROR**********/ sum=0.0; if(n<=2) sum=0.0; s0=0.0; s1=0.0;

/**********ERROR**********/ s2=0.0;

/**********ERROR**********/ for(k=4;k>n;k++) {

s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s;

21

}

return sum; } main() { int n; a[i][j]=a[i-1][j-1]+a[i-1][j];

【程序改错】题目:定义一个N×N的二维数组,并在键盘给数组元素赋值。

请编写程序使数组左上半三角元素中的值全部置成0。

并以矩阵形式输出该数组,例如,如果a数组中的 scanf(\ printf(\ }

答案:fun (int n) sum=1.0; s2=1.0; for(k=4;k<=n;k++)

【程序改错】题目:打印出以下的杨辉三角形(要求打印出10行),请改正程序中的错误,使它能得出正确 的结果。

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 #include \ #define N 10 main() {int a[N][N]; int i,j; for(i=0;i<10;i++) {

/***********ERROR***********/ a[1][1]=1;a[0][i]=1; }

for(i=2;i<10;i++)

/***********ERROR***********/ for(j=1;j<10;j++)

/***********ERROR***********/ a[i][j]=a[i][j-1]+a[i][j];

for(i=0;i<10;i++) /*打印杨辉三角形*/ {

for(j=0;j<=i;j++) printf(\ printf(\ }

答案:a[i][0]=1;a[i][i]=1; for(j=1;j

值为

1 5 6 8 8 5 3 7 12 4 10 3 6 8 7 13

则重新赋值后a数组中的值应为 0 0 0 0 0 0 0 7 0 0 10 3 0 8 7 13 #include #include \ #define N 4 void fun(int a[][N]) {/**********ERROR**********/ int i,j for(i=0;i

/**********ERROR**********/ for(j=0;j

int a[N][N],i,j;

printf(\产生一个4*4矩阵\ for(i=0;i

printf(\ printf(\ } fun(a);

printf(\输出变化后的数组:\\n\ for(i=0;i

printf(\ printf(\ }

22

}

答案:int i,j;

for(j=0;j<=N-1-i;j++) a[i][j]=0; scanf(\

【程序改错】功能:写一个函数,求一个字符串的长度,在main函数中输入字 符串,并输出其长度。 #include \ #include \ main() { int len;

/**********ERROR**********/ char *str[20];

printf(\ scanf(\

/**********ERROR**********/ len==length(str);

printf(\ }

int length(p) char *p; { int n; n=0;

/**********ERROR**********/ while(*p=='\\0') { n++; p++; } return n; }

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

【程序改错】题目: 下列给定程序中 , 函数 fun 的功能是 : 从字符串 S 中删除所有小写字母 'c' 。 请改正程序中的错误 , 使它能计算出正确的结果。 #include void fun(char s[] ) { int i,j ;

for(i=j=0;s[i]!='\\0';i++) /***********ERROR***********/ if(s[i]=='c') /***********ERROR***********/ s[i]=s[j++];

/***********ERROR***********/

s[i]='\\0'; } main() { char s[80];

printf(\输入一个字符串: \ gets (s);

printf(\原字符串为: \ puts(s); fun(s);

printf(\删除字符c后的字符串为 : \ puts (s);

答案:if(s[i]!='c') s[j]=s[i]; s[j]='\\0'; 【

a[10]={3,8,6,5,4,4,2,9,9,7},

计算数组下标为奇数且数组元素是偶数的元素之和,

并统计满足条件的元素的个数。 程序中共有4条错误语句,请改正错误。 #define N 10 #include \ int fun(int a[]) {

int i,sum=0,n=0; for(i=0;i

sum+=a[i];

/**********ERROR**********/ n=+1; }

printf(\元素个数是: %d\ /**********ERROR**********/ return n; } main()

{ int a[N]={3,8,6,5,4,4,2,9,9,7},i,n=0,sum; printf(\输出数组元素:\ for(i=0;i

/**********ERROR**************/ sum=int fun(int a); printf(\和是: %d\ }

答案:if(i%2&&a[i]%2==0) n+=1;

23

return sum; sum=fun(a);

【程序改错】功能:求两数平方根之和,作为函数值返回。 例如:输入12和20,输出结果是:y = 7.936238。 #include \ #include \ printf(\

【程序改错】功能:某个公司采用公用电话传递数据,数据是四位的整数,在

传递过程中是加密的,加密规则如下:每位数字都加上5,

然后除以10的余数代替该位数字。再将新生成数据#include \ /**********ERROR**********/ double fun (double *a, *b) { double c;

/**********ERROR**********/ c = sqr(a)+sqr(b) ; /**********ERROR**********/ return a; } main ( ) {

double a, b, y; clrscr( );

printf ( \a & b : \scanf (\&a, &b ); y = fun (&a, &b); printf (\ 答案:double fun (double *a, double *b) c = sqrt(*a)+sqrt(*b) ; return c;

【程序改错】题目:下列给定程序中函数 fun 的功能是 : 将字符串中的内容按逆序输出 ,

但不改变宇符串中的内容。例如 , 若字符串为abcd, 则应输出 dcba #include #include

/***********ERROR***********/ void fun (char a) {int i=strlen(a)-1; /***********ERROR***********/ while(a[i] ) {

/***********ERROR***********/ printf(\ i--; } } main ()

{ char s[10]=\

printf(\处理前字符串 =%s\\n 处理后字符串 =\ fun(s); printf(\ 答案:void fun (char *a) while(i>=0 )

的第一

位和第四位交换,第二位和第三位交换。 #include \ main() {

int a,i,aa[4],t;

printf(\输入一个四位整数:\ /**********ERROR**********/ scanf(\ aa[0]=a;

/**********ERROR**********/ aa[1]=a0; aa[2]=a00/100; aa[3]=a/1000;

/**********ERROR**********/ for(i=0;i<3;i++) {

aa[i]+=5; aa[i]%=10; }

for(i=0;i<=3/2;i++) { t=aa[i]; aa[i]=aa[3-i]; aa[3-i]=t; }

for(i=3;i>=0;i--) printf(\ 答案:scanf(\ aa[1]=a0/10; for(i=0;i<=3;i++)

【程序改错】功能:实现交换两个整数的值。 #include \ /**********ERROR**********/ void fun (int a, b) { int t;

/**********ERROR**********/ t=a;

/**********ERROR**********/ a=b;

/**********ERROR**********/ b=t;

24

} main() { int a,b;

printf(\ fun(&a,&b);

printf(\ 答案:void fun (int *a,int *b) t=*a; *a=*b; *b=t;

【程序改错】功能:先将在字符串s中的字符按正序存放到t串中,然后把s中的

字符按逆序连接到t串的后面。 #include #include #include void fun(char s[],char t[]) { int i,k; k=strlen(s);

/**********ERROR**********/ for(i=1;i

/**********ERROR**********/ t[k+i]=s[k-i];

/**********ERROR**********/ t[k]='\\0'; } main() {

char s[100],t[100];

printf(\ fun(s,t);

printf(\ 答案:for(i=0;i

【程序改错】题目: 下列给定程序中,函数fun的功能是:判断字符ch是否与str所指串中的某个字符相同;若有相同,统计此字符出现的次数。 #include #include

/***********ERROR***********/ int fun(char str, char ch) {

/***********ERROR***********/ int i,n=0;

while(str[i] ) {

/***********ERROR***********/ if(str[i]!=ch) n++; i++; } return n;} main()

{ char s[81],n,c;

printf(\请输入一个字符串:\\n\ gets(s);

printf(\输出一个字符串:\\n\ puts(s);

printf(\请输入一个字符:\ c=getchar(); n=fun(s,c);

printf(\字符%c出现的次数 %d\\n\ }

答案:int fun(char str[], char ch) int i=0,n=0; if(str[i]==ch)

【程序改错】功能:根据整型形参m的值,计算如下公式的值。

1 1 1 t = 1- -- - -- - ... - -- 2x2 3x3 mxm #include double fun(int m) {

double y=1.0; int i;

/**********ERROR**********/ for(i=2;i

/**********ERROR**********/ y-=1/(i*i);

/**********ERROR**********/ return m; } main() { int n=5;

printf(\ }

答案:for(i=2;i<=m;i++) y-=1.0/(i*i); return y;

【程序改错】功能:将长整型数中每一位上为奇数的数依

25


程序改错最终修订版(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国鞋底原料行业市场调查研究报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: