c语言程序改错讲解

更新时间:2024-07-03 23:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、程序改错 共44题

第1题 (10.0分) 题号:380 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936 和 14.121,输出为:y = 26.934415。

------------------------------------------------------*/

#include #include #include

/**********FOUND**********/

double fun (double *a, *b) // double fun (double *a, double *b) {

double c;

/**********FOUND**********/

c = sqr(a*a + b*b); // c = sqrt(a*a + b*b); /**********FOUND**********/

return *c; // return c; }

main ( ) {

double a, b, y;

printf ( \ scanf (\ y = fun (&a, &b);

printf (\}

第2题 (10.0分) 题号:438 难度:中 第2章 /*------------------------------------------------ 【程序改错】

--------------------------------------------------

功能:编写函数fun,求两个整数的最小公倍数,然后用主 函数main()调用这个函数并输出结果,两个整数由 键盘输入。

------------------------------------------------*/

#include

int fun(int m,int n) { int i;

/**********FOUND**********/ if (m=n) //if (m

for(i=m;i<=m*n;i+=m)

/**********FOUND**********/ if(i%n==1) //if(i%n==0) return(i); return 0; } main() {

unsigned int m,n,q; printf(\ scanf(\ /**********FOUND**********/ q==fun(m,n); //q=fun(m,n); printf(\}

第3题 (10.0分) 题号:404 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:编写函数求2!+4!+6!+8!+10+12!+14!。

------------------------------------------------------*/

#include

long sum(int n) {

/**********FOUND**********/

int i,j // int i,j;

long t,s=0;

/**********FOUND**********/

for(i=2;i<=n;i++) // for(i=2;i<=n;i=i+2)或for(i=2;i<=n;i+=2) { t=1;

for(j=1;j<=i;j++) t=t*j; s=s+t; }

/**********FOUND**********/ return(t); // return(s); } main() {

printf(\}

第4题 (10.0分) 题号:360 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:计算正整数num的各位上的数字之积。 例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。

------------------------------------------------------*/

#include #include

long fun (long num) {

/**********FOUND**********/

long k=1 // long k=1; do {

k*=num ;

/**********FOUND**********/

num\\=10; // num/=10;或num=num/10; /**********FOUND**********/

}while(!num) ; // } while(num) ;或 }while(num!=0); return (k) ; }

main( ) {

long n ;

printf(\ printf(\}

第5题 (10.0分) 题号:413 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:读取7个数(1-50)的整数值,每读取一个值,程序打印 出该值个数的*。

------------------------------------------------------*/

#include main() {

int i,a,n=1;

/**********FOUND**********/

while(n<7) // while(n<=7)或while(n<8) { do {

scanf(\ }

/**********FOUND**********/

while(a<1&&a>50); // while(a<1||a>50);或while(a>50||a<1); /**********FOUND**********/

for(i=0;i<=a;i++) // for(i=1;i<=a;i++) printf(\ printf(\ n++; } }

第6题 (10.0分) 题号:553 难度:中 第1章 /*------------------------------------------------------- 【程序改错】

---------------------------------------------------------

题目:列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误,

使程序实现其功能。

-------------------------------------------------------*/ #include main() {

/***********FOUND***********/

float r=10,h=5; //double r=10,h=5,v;或float r=10,h=5,v; /***********FOUND***********/

v=1/3*3.14159*r2*h; //v=1.0/3*3.14159*r*r*h; /***********FOUND***********/ printf(\}

第7题 (10.0分) 题号:399 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:编写函数fun求20以内所有5的倍数之积。

------------------------------------------------------*/ #include #define N 20

int fun(int m) {

/**********FOUND**********/ int s=0,i; //int s=1 , i ; for(i=1;i

/**********FOUND**********/ if(i%m=0) //if(i%m==0) /**********FOUND**********/ s=*i; //s=s*i;或s=i*s;或s*=i; return s; } main() {

int sum; sum=fun(5);

printf(\以内所有%d的倍数之积为: %d\\n\}

第8题 (10.0分) 题号:397 难度:中 第2章

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。(输出的数据都保留2位小数)

------------------------------------------------------*/

#include fun() {

/**********FOUND**********/ float t //float t; float a, b ;

scanf(\ /**********FOUND**********/ if(ab) { t=a; a=b; b=t; }

/**********FOUND**********/

printf(\//printf(\ } main() { fun(); }

第9题 (10.0分) 题号:28 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:实现两个字符串的连接。

例如:输入dfdfqe和12345时,则输出dfdfqe12345.

------------------------------------------------------*/

#include

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') // while( s1[i] != '\\0' )或while(s1[i]) i++;

/**********FOUND**********/

while(s2[j]= ='\\0') // while( s2[i] != '\\0' )或while(s2[i]) {

/**********FOUND**********/

s2[j]=s1[i]; //s1[i]=s2[j]; i++; j++; }

/**********FOUND**********/

s2[j]='\\0'; //s1[i]='\\0'或s1[i]=0; }

第10题 (10.0分) 题号:11 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。

π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7

------------------------------------------------------*/ #include

/**********FOUND**********/

#include // #include \或 #include

fun() {

int i=1;

/**********FOUND**********/

int s=0,t=1,p=1; // float s=0,t=1,p=1; /**********FOUND**********/

while(fabs(t)<=1e-4) // while(fabs(t)>1e-4) { s=s+t; p=-p; i=i+2; t=p/i; }

/**********FOUND**********/

printf(\//printf(\ } main() { fun(); }

第11题 (10.0分) 题号:401 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:编写函数fun计算下列分段函数的值: x*x+x x<0且x≠-3

f(x)= x*x+5x 0≤x<10且x≠2及x≠3 x*x+x-1 其它

------------------------------------------------------*/

#include

double fun(float x) {

/**********FOUND**********/ double y // double y; /**********FOUND**********/

if (x<0 ||x!=-3.0) //if (x<0 && x!=-3.0) y=x*x+x;

else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=x*x+5*x;

else y=x*x+x-1;

/**********FOUND**********/ return x; // return y; } main() {

double f; float x;

printf(\ scanf(\ f=fun(x);

printf(\ }

第12题 (10.0分) 题号:10 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:判断m是否为素数,若是返回1,否则返回0。

------------------------------------------------------*/ #include

/**********FOUND**********/

void fun( int n) //int fun( int m) {

int i,k=1; if(m<=1) k=0;

/**********FOUND**********/

for(i=1;i

if(m%i=0) k=0; //if( m%i == 0 ) k=0; /**********FOUND**********/ return m; //return k; }

void main() {

int m,k=0;

for(m=1;m<100;m++) if(fun(m)==1) {

printf(\ if(k%5==0) printf(\ } }

第13题 (10.0分) 题号:23 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输 出主对角线上的元素之和sum。

------------------------------------------------------*/

#include void fun() {

int a[3][3],sum; int i,j;

/**********FOUND**********/ a=0; // sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++)

/**********FOUND**********/

scanf(\// scanf(\ for(i=0;i<3;i++)

/**********FOUND**********/

sum=sum+a[i][j]; // sum= sum + a[i][i] ; /**********FOUND**********/ printf(\} main() { fun(); }

第14题 (10.0分) 题号:391 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求出N×M整型数组的最小元素及其所在的行坐标及列坐标 (如果最小元素不唯一,选择位置在最前面的一个)。 例如:输入的数组为:

// printf(\

9 2 3 4 15 6 12 1 9 10 11 2

求出的最小数为1,行坐标为2,列坐标为1。

------------------------------------------------------*/ #include #define N 4 #define M 3

int Row,Col;

int fun(int array[N][M]) {

int min,i,j; min=array [0][0]; Row=0; Col=0;

for(i=0;i

/**********FOUND**********/

for(j=i;j

if(min array [i][j]) {

min=array [i][j]; Row=i;

/**********FOUND**********/ Col=i; // Col=j; } }

return(min); } 0 main() {

int a[N][M],i,j,min; printf(\ for(i=0;i

for(i=0;i

for(j=0;j

min=fun(a);

printf(\}

第15题 (10.0分) 题号:18 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:计算正整数num的各位上的数字之积。 例如:输入252,则输出应该是20。

------------------------------------------------------*/ #include long fun (long num) {

/**********FOUND**********/ long k; // long k=1; do {

k*=num;

/**********FOUND**********/ num\\=10; }while (num); return k; } main() {

long n;

printf(\ /**********FOUND**********/

scanf(\// scanf(\ /**********FOUND**********/

printf(\//printf(\ }

第16题 (10.0分) 题号:388 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

// num/=10; 或num=num/10;

--------------------------------------------------------

功能:编写程序, 求矩阵(3行3列)与5的乘积 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 500 1000 1500 2000 2500 3000 3500 4000 4500

------------------------------------------------------*/

#include

void fun(int array[3][3]) {

/**********FOUND**********/ int i;j; // int i,j; /**********FOUND**********/ for(i=1; i < 3; i++) for(j=0; j < 3; j++)

/**********FOUND**********/

array[i][j]=array[i][j]/5; // array[i][j]=array[i][j]*5; } main() {

int i,j;

int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0; i < 3; i++) {

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

fun(array);

printf(\ for (i=0; i < 3; i++) {

for (j=0; j < 3; j++) printf(\

// for(i=0; i < 3; i++)

printf(\ } }

第17题 (10.0分) 题号:22 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:计算数组元素中值为正数的平均值(不包括0)。 例如:数组中元素的值依次为39,-47,21,2,-8,15,0, 则程序的运行结果为19.250000。

------------------------------------------------------*/ #include double fun(int s[]) {

/**********FOUND**********/

int sum=0.0; //double sum=0.0;double sum=0; int c=0,i=0;

/**********FOUND**********/

while(s[i] =0) //while( s[i] != 0 ) {

if (s[i]>0) {

sum+=s[i]; c++; } i++; }

/**********FOUND**********/ sum\\=c; //sum/=c;或sum=sum/c; /**********FOUND**********/ return c; //return sum; } main() {

int x[1000];int i=0; do {

scanf(\ while(x[i++]!=0); printf(\

}

第18题 (10.0分) 题号:31 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。 max代表最高分,min代表最低分,avg代表平均分。

------------------------------------------------------*/ #include main( ) { int i;

/***********FOUND***********/

float a[8],min,max,avg; // float a[10],min,max,avg; printf(\ for(i=0;i<=9;i++) {

printf(\ /***********FOUND***********/

scanf(\// scanf(\ }

/***********FOUND***********/ max=min=avg=a[1]; for(i=1;i<=9;i++) {

/***********FOUND***********/

if(mina[i])或if (a[i] avg=avg/10;

printf(\}

第19题 (10.0分) 题号:439 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求100以内(包括100)的偶数之和.

------------------------------------------------------*/

#include main() {

/**********FOUND**********/

int i,sum=1; // int i,sum=0; /**********FOUND**********/

for(i=2;i<=100;i+=1) // for(i=2;i<=100;i+=2) sum+=i;

/**********FOUND**********/

printf(\ // printf(\ }

第20题 (10.0分) 题号:410 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。

------------------------------------------------------*/

#include main() {

char c;

int letters=0,space=0,digit=0,others=0; printf(\ /**********FOUND**********/

while((c=getchar())=='\\n') // while((c=getchar())!='\\n') {

/**********FOUND**********/

if(c>='a'&&c<='z'&&c>='A'&&c<='Z') // if( c>='a'&&c<='z' || c>='A'&&c<='Z' ) letters++;

/**********FOUND**********/

else if(c=!' ') // else if(c==' ') space++;

else if(c>='0'&&c<='9') digit++; else others++; }

printf(\ space,digit,others); }

第21题 (10.0分) 题号:400 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:编写函数fun求20以内所有5的倍数之积。

------------------------------------------------------*/

#define N 20 #include

int fun(int m) {

/**********FOUND**********/

int s=0,i; //int s=1 , i ; for(i=1;i

/**********FOUND**********/

if(i%m=0) //if(i%m==0) /**********FOUND**********/ s=*i; //s=s*i; 或s*=i; return s; } main() {

int sum; sum=fun(5);

printf(\以内所有%d的倍数之积为: %d\\n\}

第22题 (10.0分) 题号:253 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:以下程序把两个数按由大到小的顺序输出来.

------------------------------------------------------*/ #include

/***********FOUND***********/

swap( int *p1,*p2) //swap( int *p1,int *p2)

{ int p; p=*p1; *p1=*p2; *p2=p; } main( ) {

int a,b, *p,*q; printf(\

/***********FOUND***********/

scanf(\//scanf(\ p=&a; q=&b; if(a

printf(\ /***********FOUND***********/

printf(\// printf(\ //或printf(\ }

第23题 (10.0分) 题号:434 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的 最大的n。

------------------------------------------------------*/ #include #include \main() {

int n,s;

/**********FOUND**********/ s==n=0; // s=n=0; /**********FOUND**********/

while(s>1000) // while(s<=1000) { ++n; s+=n*n; }

/**********FOUND**********/

printf(\// printf(\ }

第24题 (10.0分) 题号:420 难度:难 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:打印出杨辉三角形(要求打印出10行).

------------------------------------------------------*/

#include main() {

int i,j; int a[10][10]; printf(\

/**********FOUND**********/

for(i=1;i<10;i++) // for(i=0;i<10;i++) {

a[i][0]=1; a[i][i]=1; }

/**********FOUND**********/

for(i=1;i<10;i++) // for(i=2;i<10;i++) for(j=1;j

/**********FOUND**********/

a[i][i]=a[i-1][j-1]+a[i-1][j]; // a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<10;i++) {

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

第25题 (10.0分) 题号:13 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求1到20的阶乘的和。

------------------------------------------------------*/

#include fun() {

int n,j;

float s=0.0,t=1.0; for(n=1;n<=20;n++) {

/**********FOUND**********/ s=1; // t=1; for(j=1;j<=n;j++)

/**********FOUND**********/ t=t*n; // t= t * j ; /**********FOUND**********/ s+t=s; // s= s + t ; 或s+=t; }

/**********FOUND**********/

printf(\ // printf(\ } main() { fun(); }

第26题 (10.0分) 题号:406 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:有1、2、3、4个数字,能组成多少个互不相同且无重复数 字的三位数?都是多少?

------------------------------------------------------*/ #include main() {

int i,j,k;

/**********FOUND**********/ printf(\

// printf(\

/**********FOUND**********/

for(i=1;i<=5;i++) // for(i=1;i<5;i++) for(j=1;j<5;j++) for (k=1;k<5;k++) {

/**********FOUND**********/

if (i!=k||i!=j||j!=k) // if (i!=k&&i!=j&&j!=k) printf(\ } }

第27题 (10.0分) 题号:5 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求如下表达式:

1 1 1

S = 1 + —— + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n

------------------------------------------------------*/

#include main() { int n;

double fun();

printf(\ /**********FOUND**********/

print(\// scanf(\ printf(\}

/**********FOUND**********/

fun(int n) // double fun(int n) {

int i,j,t; double s; s=0;

/**********FOUND**********/

while(i=1;i<=n;i++); // for(i=1;i<=n;i++) { t=0;

for(j=1;j<=i;j++) t=t+j;

/**********FOUND**********/

=s+1/t;// s+=1.0/t;或s= s + 1.0 /t; } return s;

}

第28题 (10.0分) 题号:16 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:实现交换两个整数的值。

例如:给a和b分别输入3和6 ,输出为a=6 b=3

------------------------------------------------------*/ #include

/**********FOUND**********/

void fun (int a, b) // void fun (int *a,int *b) { int t;

/**********FOUND**********/ t=a; // t=*a;

/**********FOUND**********/ a=b; // *a=*b;

/**********FOUND**********/ b=t; // *b=t; } main() {

int a,b;

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

printf(\}

第29题 (10.0分) 题号:12 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求1到10的阶乘的和。

------------------------------------------------------*/ #include main() { int i; float s=0; float fac(int n);

/**********FOUND**********/

for(i=1;i<10;i++) // for(i=1;i<=10;i++) /**********FOUND**********/

s=fac(i); // s= s + fac(i) ; 或s+=fac(i); printf(\}

float fac(int n) {

/**********FOUND**********/ int y=1; // float y=1.0; int i;

for(i=1 ;i<=n;i++) y=y*i;

/**********FOUND**********/ return; // return y; }

第30题 (10.0分) 题号:30 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:将s所指字符串的反序和正序进行连接形成一个新串放在 t所指的数组中。

例如:当s所指的字符串的内容为\时,t所指数组中 的内容为\。

------------------------------------------------------*/

#include #include #include /**********FOUND**********/

void fun (char s, char t) // void fun (char s[],char t[]) {

int i, d;

/**********FOUND**********/ d = len(s); // d = strlen(s); /**********FOUND**********/

for (i = 1; i

t[2*d] = '/0'; // t[ 2 * d ] = '\\0';

} main() {

char s[100], t[100];

printf(\ scanf(\ fun(s, t);

printf(\}

第31题 (10.0分) 题号:285 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:根据整型形参m,计算如下公式的值: y=1+1/3+1/5+1/7+...+1/(2m-3)

------------------------------------------------------*/

#include

double fun(int m) {

/**********FOUND**********/ double y=1 // double y=0; int i;

/**********FOUND**********/

for(i=1; i

y+=1.0/(2i-3); // y+=1.0/(2*i-1); return(y); }

main() {

int n;

printf(\ scanf(\

printf(\}

第32题 (10.0分) 题号:427 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:编写函数fun求1000以内所有8的倍数之和。

------------------------------------------------------*/

#include #define N 1000

int fun(int m) {

/**********FOUND**********/ int s=0;i; // int s=0 , i ; /**********FOUND**********/

for(i=1;i>N;i++) // for(i=1;i

int sum; sum=fun(8);

printf(\以内所有%d的倍数之和为:%d\\n\}

第33题 (10.0分) 题号:4 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。

------------------------------------------------------*/ #include #define N 11 main() {

int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};

printf(\ /**********FOUND**********/

scanf(\// scanf(\

printf(\ for(i=0;i

/**********FOUND**********/

for(i=N-1;i>=0;i--) // for(i=N-2;i>=0;i--) if(number<=a[i])

/**********FOUND**********/ a[i]=a[i-1]; else {

a[i+1]=number; // a[ i + 1 ]=a[i]; /**********FOUND**********/ exit; // break; }

if(number

第34题 (10.0分) 题号:21 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求出两个非零正整数的最大公约数,并作为函数值返回。 例如:若给num1和num2分别输入49和21,则输出的最大公约数为7。

------------------------------------------------------*/ #include int fun(int a,int b) {

int r,t; if(a

/**********FOUND**********/ b=a; // a=b;

/**********FOUND**********/ a=t; // b=t; } r=a%b; while(r!=0)

{ a=b; b=r;

/**********FOUND**********/ r=a/b; // r=a%b; }

/**********FOUND**********/ return a; // return b; } main() {

int num1,num2,a;

scanf(\ a=fun(num1,num2);

printf(\}

第35题 (10.0分) 题号:250 难度:易 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:输入10个数,要求输出这10个数的平均值

------------------------------------------------------*/ #include

double average(double array[10]) { int i;

double aver,sum=array[0]; /***********FOUND***********/

for(i=0;i<10;i++) // for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10.0; return(aver); } main( ) {

/***********FOUND***********/

int score[10],aver ; // float score[10],aver; int i;

printf(\ for(i=0;i<10;i++)

/***********FOUND***********/

scanf(\ // scanf(\ printf(\

/***********FOUND***********/

aver=average(score[10]); // aver=average(score); printf(\}

第36题 (10.0分) 题号:412 难度:难 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。

------------------------------------------------------*/

#include main() {

int day,x1,x2; day=9;

/**********FOUND**********/ x2==1; // x2=1; while(day>0) {

/**********FOUND**********/

x1=(x2+1)/2; // x1= ( x2 + 1 ) * 2 ; x2=x1;

/**********FOUND**********/ day++; // day--; }

printf(\}

第37题 (10.0分) 题号:381 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数 返回二分之一的圆面积。

例如:输入圆的半径值:19.527 输出为:s = 598.950017。

------------------------------------------------------*/

#include #include

/**********FOUND**********/ double fun( r) {

double s;

/**********FOUND**********/

s=1/2*3.14159* r * r; // s=1.0/2*3.14159* r * r; /**********FOUND**********/ return r; // return s; } main() {

float x;

printf ( \ scanf ( \

printf (\}

第38题 (10.0分) 题号:3 难度:难 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:用起泡法对10个整数从小到大排序。

------------------------------------------------------*/

#include

/**********FOUND**********/

void sort(int x,int n) // void sort(int x[],int n) {

int i,j,t;

for(i=0;i

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

// for(j=0;j< n -1 -i ;j++)或for(j=0;j

/**********FOUND**********/

if(x[i]>x[i+1]) // if(x[j]>x[ j + 1 ]) {

// double fun(double r) 或double fun(float r)

t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } main() {

int i,n,a[100];

printf(\ scanf(\ for(i=0;i

printf(\ for(i=0;i<=n-1;i++) printf(\ printf(\}

第39题 (10.0分) 题号:418 难度:中 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:给一个不多于5位的正整数,要求: 一、求它是几位数, 二、逆序打印出各位数字。

------------------------------------------------------*/

#include main( ) {

/**********FOUND**********/

long a,b,c,d,e,x, // long a,b,c,d,e,x; scanf(\ a=x/10000;

/**********FOUND**********/ b=x/10000/1000; // b=x000/1000; c=x00/100; d=x0/10; e=x;

/**********FOUND**********/

if (a==0) // if (a!=0)

printf(\ else if (b!=0)

printf(\ else if (c!=0)

printf(\ else if (d!=0)

printf(\ else if (e!=0)

printf(\}

第40题 (10.0分) 题号:551 难度:中 第1章 /*------------------------------------------------------- 【程序改错】

---------------------------------------------------------

题目:下列程序从键盘输入一个数n,求1~n之和并输出。请纠正程序中存在错误,使程 序实现其功能。

如输入 5↙

输出:The sum from 1 to 5 is 15

-------------------------------------------------------*/

#include main() {

int i=1,n;

/***********FOUND***********/ float sum; // float sum=0; /***********FOUND***********/

scanf(\// scanf(\/***********FOUND***********/ for(;i

printf(\ }

第41题 (10.0分) 题号:15 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:根据整型形参m的值,计算如下公式的值。

1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm

例如:若m=5,则应输出:0.536389

------------------------------------------------------*/ #include double fun(int m) {

double y=1.0; int i;

/**********FOUND**********/

for(i=2;i

int n=5;

printf(\}

第42题 (10.0分) 题号:444 难度:易 第2章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:编写函数fun计算下列分段函数的值: x*20 x<0且x≠-3

f(x)= sin(x) 0≤x<10且x≠2及x≠3 x*x+x-1 其它

------------------------------------------------------*/

#include #include

double fun(double x) {

/**********FOUND**********/

double y // double y; /**********FOUND**********/

if (x<0 || x!=-3.0) // 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; // return y; } main() {

double x,f;

printf(\ scanf(\ f=fun(x);

printf(\}

第43题 (10.0分) 题号:26 难度:中 第1章 /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:实现3行3列矩阵的转置,即行列互换。

------------------------------------------------------*/ #include fun(int a[3][3],int n) {

int i,j,t; for(i=0;i

/**********FOUND**********/

scanf(\// scanf(\ for(i=0;i

for(j=0;j

for(i=0;i

/**********FOUND**********/

for(j=0;j

/**********FOUND**********/ a[i][j]=t; // t=a[i][j]; a[i][j]=a[j][i];

/**********FOUND**********/ t=a[j][i]; //a[j][i]=t; }

for(i=0;i

for(j=0;j

int b[3][3]; fun(b,3); }

第44题 (10.0分) 题号:554 难度:中 第2章 /*------------------------------------------------------- 【程序改错】

---------------------------------------------------------

题目:以下程序输入一个整数n,计算累加和(1+2+3+…+n)并输出。请找出错误并改正。 如输入 5↙

输出:The sum from 1 to 5 is 15

-------------------------------------------------------*/ #include main()

{

/***********FOUND***********/

int i, n, sum; // int i, n, sum=0; /***********FOUND***********/

scanf( \// scanf( \ for ( i = 0; i <= n; i++ ); /***********FOUND***********/

sum += n; // sum += i; printf( \}

本文来源:https://www.bwwdw.com/article/9yn.html

Top