程序改错完整版---C语言
程序改错C

程序改错==================================================题号:7471/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:计算正整数num的各位上的数字之积。
例如:若输入:252,则输出应该是:20。
若输入:202,则输出应该是:0。
------------------------------------------------------*/#include <stdio.h>#include <conio.h>long fun (long num){/**********ERROR**********/long k=1do{k*=num%10 ;/**********ERROR**********/num\=10;/**********ERROR**********/}while(!num) ;return (k) ;}void main( ){long n ;printf("\Please enter a number:") ; scanf("%ld",&n) ;printf("\n%ld\n",fun(n)) ;}答案:位置 1:long k=1;位置 2:num/=10; 【或】 num=num/10;位置 3:} while(num) ; 【或】 while(num!=0)题号:7383/*------------------------------------------------------ 【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。
C语言程序改错题及答案

#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str
scanf("%d\n",&n); str=(char*)malloc(n); gets(str);
int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /*输出数组元素*/
for (i=0;i<N;i++)
printf("%5d",a[i]);
for (i=0;i<N-1;i++ห้องสมุดไป่ตู้ /*排序操作*/
{
min = i;
for (j=i+1; j<N; j++)
/****** 2 *****/
putchar(\n);//‘\n’
}
}
12、在考生目录下,有Modify.c程序,该程序中“/***** N *****/”的下一行中有错误,
请改正(注意:不得加行、减//行、加句、减句,否则后果自负)。
该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
}
11、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)
c语言程序改错

c语⾔程序改错【程序改错】1.功能:利⽤递归函数调⽤⽅式,将所输⼊的5个字符,以相反顺序打印出来。
char next;next=getchar();palin(n-1);2.功能:求⼴义菲玻那契级数的第n项。
⼴义菲玻那契级数的前n项为: 1,1,1,3,5,9,17,31,……项值通过函数值返回 main ( )函数。
例如:若 n = 15,则应输出:The value is: 2209。
for (k=4; k<=n; k++)a=b;return d;3.功能:根据整型形参m,计算如下公式的值:y=1/2+1/8+1/18+...+1/2m*mdouble y=0.0;4.功能:编制统计营业员⼀天的营业额的程序,设程序采⽤⼀个循环实现,每次循环输⼊⼀笔交易⾦额并累计营业额。
由于营业员⼀天完成的交易次数是不确定的,为此以最后附加输⼊⼀笔0或负数交易额作为交易⾦额已全部输⼊结束的标志。
float sale,sigma;scanf("%f",&sale);sigma=sigma+sale;5.功能:读取7个数(1-50)的整数值,每读取⼀个值,程序打印出该值个数的*。
while(n<8) while(a<1||a>50);for(i=0;i6.功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。
printf("%8f",f1);for(i=1;i<20;i++)f1=f2;f2=f3;7.功能:⼀个偶数总能表⽰为两个素数之和。
scanf("%d",&a);d=a-b;if(d%c==0)8.功能:利⽤⼆维数组输出如图所⽰的图形。
*******************************#define N 7a[i][j]=' ';z=z-1;printf("%c",a[i][j]);9.题⽬:求两个整数的最⼩公倍数。
C语言程序改错2

1、以下程序的功能是求如 + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』 :1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或 s= s + 1.0 /t; 2、题目:函数 fun 的功能是:根据整型形参 m 的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 例如,若 m=5,则应输出:0.536389 『答案』 :1 for(i=2;i<=m;i++)或 for(i=2;i<m+1;i++) 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 3 return y; 或 return (y); 3、函数 fun 的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于 0.0001。 π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7 『答案』 :1 #include "math.h" 或 #include <math.h> 2 float s=0,t=1,p=1; 3 while(fabs(t)>1e-4)或 while(fabs(t)>0.0001) 4 printf("pi=%f\n", s * 4 ); 4、功能:计算正整数 num 的各位上的数字之积。例如,输入 252,则输出应该是 20。 『答案』 :1 long k=1; 或 long int k=1; 2 num/=10; 或 num=num/10; 3 scanf("%ld",&n); 4 printf("\n%ld\n",fun(n)); 5、功能: (与上题略有不同)计算正整数 num 的各位数字之积。例如,若输入:252,则输 出应该是:20。若输入:202,则输出应该是:0。 『答案』 :1 {long k=1; 2 num/=10; 或 num=num/10; 3 } while(num) ; 或 }while(num!=0); 或 }while(num>0); 6、题目:判断 m 是否为素数,若是返回 1,否则返回 0。 『答案』 :1 int fun( int m) 或 fun( int m) 2 for(i=2;i<m;i++) 3 if( m%i == 0 ) k=0; 4 return(k); 或 return k; 7、功能:找出大于 m 的最小素数,并将其作为函数值返回。 『答案』 :1 for(k=2;k<i;k++) 或 for(k=2;k<=i-1;k++) 或 for(k=2;k<=sqrt(i);k++) 2 if( i%k == 0 ) break; 或 if(!(i%k)) break; 3 if(i<=k)或 if( k == i ) 或 if(k>sqrt(i)) 4 return i; 或 return (i);
C程序填空改错及答案(可编辑修改word版)

15、结果:52
#include<stdio.h> int fun(int a,int b) { int r,t;
if(a<b) { t=a; a=b; b=t; } r=a%b; while(r!=0) { a=b;
b=r; /*下行有错*/ r=a/b; // r=a%b; } /*下行有错*/ return a; // return b; } main() { int a; a=fun(780,208); printf("%d\n",a); }
#include<stdio.h> void main() {
int num,a,b,c,count=0; /*下行有错*/ while(num=101;num<1000;num++) // for(num=101;num<1000;num++) {
a=num/100; b=num%100/10; c=num%10; /*下行有错*/ if(num+c*100+b*10+a=1333) // if(num+c*100+b*10+a==1333)
if(a%b==0) sum=sum+a/b; } for(i=2;i<=9;i++) if(sum==a*i) /*下行有错 */ count+=i; //count+=1; } printf("%d\n",count); }
7、结果:495.00
#include<stdio.h> float fun(int m, int n) {
c程序改错

}
getch();
}
答案:
1). int i,j;
2). for(i=0; i < 3; i++)
3). array[i][j]=array[i][j]*5;
第5题 (10.0分)
/*------------------------------------------------------
━━━━━━━━━━━━━━━
第1题 (10.0分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
3). c=*r;
第4题 (10.0分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺
序从小到大进行排序,并删除重复的字符。
------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
3500 4000 4500
------------------------------------------------------*/
C语言程序设计改错信息

十三、159页:删除第7行:函数名就是这个函数源代码在内存中的起始地址,编译器将不带“()”的函数名解释为该函数的入口地址.中的“源”字
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有
printf("%d,%o,%u\n",a,a,A.。
}
改为
6.下面程序输出结果是().
#include <stdio.h>
main()
{
int a=-1。
printf("%d,%o,%u\n",a,a,a)。
}
第76页
10.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是().
void main()
{
int a。
float b,c。
scanf("%2d%3f%4f",&a,&b,&c)。
printf("\na=%d,b=%.1f,c=%.1f\n",a,b,c)。
}
第76页
5.执行下面程序:
#include <stdio.h>
main()
{
int a=0,b=9。
printf("a=%%d,b=%%d\n",a,B.。
s=s+i。
printf("s=%d\n",s)。
C语言程序改错

【程序改错】功能:求1到20的阶乘的和。
答案:1). t=1; 或t=1.0;2). t=★t★*★j★; 或t*=j; 或t=j*t;3). s=★s★+★t★; 或s+=t; 或s=t+s;4). printf("jiecheng=%f\n",s);【程序改错】功能:计算正整数num的各位上的数字之积。
例如:输入252,则输出应该是20。
答案:1). long k=1;2). num/=10; 或num=num/10;3). scanf("%ld",&n);4). printf("\n%ld\n",fun(n));【程序改错】功能:求出两个非零正整数的最大公约数,并作为函数值返回。
例如:若给num1和num2分别输入49和21,则输出的最大公约数为7。
答案:1). a=b;2). b=t;3). r=a%b;4). return b; 或return (b); 或return(b);【程序改错】功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。
max代表最高分,min代表最低分,avg代表平均分。
答案:1). float a[10],min,max,avg;2). scanf("%f",&a[i]); 或scanf("%f",a+i);3). max=min=avg=a[0];4). if (min>a[i]) 或if (a[i]<min)【程序改错】功能:输入10个数,要求输出这10个数的平均值答案:1). for(i=1;i<10;i++) 或for(i=1;i<=9;i++)2). float score[10],aver; 或float aver,score[10];3). scanf("%f", &score[i]); 或scanf("%f", score+i);4). aver=average(score);【程序改错】功能:判断整数x是否是同构数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。
#include "stdio.h"#define N 20void fun(int a[], int n){int i, j, t, k;for (j = 0 ;j < n-1 ;j++){/**********ERROR**********/k = jfor (i = j+1;i < n; i++)/**********ERROR**********/if(a[i] >a[k])/**********ERROR**********/k=j;t = a[k] ;a[k] = 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");}【参考答案】k = j;【参考答案】if(a[i] < a[k])if(a[k] > a[i])【参考答案】k = i;(二)功能:求广义菲玻那契级数的第n项。
广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,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;/**********ERROR**********/for (k=4; k<n; k++){d = a+b+c;/**********ERROR**********/a=bb=c;c=d;}/**********ERROR**********/return k;}main( ){int n = 15;printf( "The value is: %ld\n", fun ( n ) );}【参考答案】for (k=4; k<=n; k++)【参考答案】a=b;【参考答案】return d;(三)功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
#include"stdio.h"main(){int i=5;void palin(int n);printf("\40:");palin(i);printf("\n");}void palin(n)int n;{/**********ERROR**********/char nextif(n<=1){/**********ERROR**********/next!=getchar();printf("\n\0:");putchar(next);}else{next=getchar();/**********ERROR**********/palin(n);putchar(next);}}【参考答案】char next;【参考答案】next=getchar();【参考答案】palin(n-1);(四)功能:计算级数 ex=1+x+x2/2!+x3/3!+ ...+xn/n! 的值。
其中xn代表x的n次方。
include "stdio.h"main(){int m,n;float x,term,ex1,ex2;printf("x,m=");scanf("%f %d",&x,&m);/**********ERROR**********/ex1==ex2=1;term=1;for(n=1;n<=m;n++){/**********ERROR**********/term*=x%n;ex1+=term;}ex2=term;/**********ERROR**********/for (n=m;n>1; n--){term*=n/x;ex2+=term;}printf("exforward=%f exbackrard=%f\n",ex1,ex2);}【参考答案】ex1=ex2=1;【参考答案】term*=x/n;【参考答案】for (n=m;n>=1; n--)(五)功能:用"冒泡法"对连续输入的十个字符排序后按从小到大的次序输出.define N 10#include "stdio.h"#include "string.h"void sort(char str[N]);main( ){int i;char str[N];/***********ERROR***********/for(i=0;i<N;i++)scanf("%c",str[i]);/***********ERROR***********/sort(str[N]);for(i=0;i<N;i++)printf("%c",str[i]);printf("\n");}void sort(char str[N]){int i,j; char t;for(j=1;j<N;j++)/***********ERROR***********/for(i=0;i<N-j;i--)/***********ERROR***********/if(str[i]<str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}【参考答案】for(i=0;i<N;i++)scanf("%c",&str[i]);【参考答案】sort(str);【参考答案】for(i=0;i<N-j;i++)【参考答案】if(str[i]>str[i+1])if(str[i+1]<str[i])(六)【功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。
#include "stdio.h"main(){int i,a,n=1;/**********ERROR**********/while(n<7){do{scanf("%d",&a);}/**********ERROR**********/while(a<1&&a>50);/**********ERROR**********/for(i=0;i<=a;i++)printf("*");printf("\n");n++;}}【参考答案】while(n<=7)【参考答案】while(a<1||a>50);【参考答案】for(i=1;i<=a;i++)(六)功能:生成一个周边元素为5,其它元素为1的3*3的二维数组。
#include "stdio.h"void fun(int arr[][3]){/**********ERROR**********/int i,j/**********ERROR**********/for(i=1;i<3;i++)for(j=0;j<3;j++)/**********ERROR**********/if(i==0&&j==0||i==2||j==2)arr[i][j]=5;elsearr[i][j]=1;}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");}}【参考答案】int i,j;【参考答案】for(i=0;i<3;i++)【参考答案】if(i==0||j==0||i==2||j==2)(七)功能:根据整型形参m,计算如下公式的值:y=1/2+1/8+1/18+...+1/2m*m#include "stdio.h"double fun(int m){/**********ERROR**********/double y=0.0int i;/**********ERROR**********/for(i=1; i<m; i++){/**********ERROR**********/y=+1.0/(2*i*i);}return(y);}main(){int n;printf("Enter n: ");scanf("%d", &n);printf("\nThe result is %1f\n", fun(n));}【参考答案】double y=0.0;【参考答案】for(i=1; i<=m; i++)【参考答案】y+=1.0/(2*i*i);(八)题目:求两个整数的最小公倍数。
注意:不可以增加或删除程序行,也不可以更改程序的结构。
#include "stdio.h"main(){int a,b,i,j,t;scanf("%d,%d",&a,&b);if(a>b) t=a;else t=b;/**********ERROR**********/for(i=t;i<=a;i++){if(i%a==0&&i%b==0)/**********ERROR**********/j=i;break;}printf("最小公倍数为:%d\n",j);}【参考答案】for(i=t;;i++)for(i=t;i<=a*b;i++)【参考答案】{j=i;break;}(九)功能:一个偶数总能表示为两个素数之和。