c语言程序改错
C语言程序改错题
![C语言程序改错题](https://img.taocdn.com/s3/m/968ae7649e3143323868938b.png)
第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。
------------------------------------------------------*/#include <>#include <>#include <>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];/**********FOUND**********/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,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。
和值通过函数值返回main 函数。
2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:。
------------------------------------------------------*/#include <>#include <>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = ; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}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; 或s += (double)a / b; 或s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
程序改错C
![程序改错C](https://img.taocdn.com/s3/m/0ec63fa87cd184254a353572.png)
程序改错==================================================题号: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语言程序改错题及答案
![C语言程序改错题及答案](https://img.taocdn.com/s3/m/5021c1e976eeaeaad0f33013.png)
#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语言](https://img.taocdn.com/s3/m/7d9aa8784b73f242326c5f32.png)
(一)功能:用选择法对数组中的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个字符,以相反顺序打印出来。
C语言程序改错及填空题
![C语言程序改错及填空题](https://img.taocdn.com/s3/m/692693c7eefdc8d376ee32f3.png)
每个注行邻近,更正。
更正中,不得改程序构,也不得增句。
#define NULL 0struct stud{long num;char name[10];float score;struct stud *next;};/* ⋯⋯⋯⋯⋯ comment⋯⋯⋯⋯⋯*/ int n;struct stud create()////////struct stud *create(void){struct stud *head,*p1,*p2;n=0;p1=p2=(struct stud *)malloc(sizeof(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*⋯⋯⋯⋯⋯ comment ⋯⋯⋯⋯⋯*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p1=(struct stud *)malloc(size(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c 的功能是互定数中的最大数和最小数。
如将下边8 个数:5,3,1,4,2,8,9,6变为:5,3,9,4,2,8,1,6程序中,最大数与最小数的交换操作经过函数调用来实现,让指针max 和 min 分别指向最大数和最小数。
程序有二处错误,请更正。
注意:不得增行和删行,也不得改正程序的构造。
main(){int i;static int a[8]={5,3,1,4,2,8,9,6};void jhmaxmin();printf(" Original array: \n");for(i=0; i<8; i++)printf("%5d",a[i]);printf("\n");jhmaxmin(a,8);printf(" Array after swaping max and min: \n");for(i=0; i<8; i++)printf("%5d",a[i]);printf("\n");}// 注意: void jhmaxmin(p,n)int p, n;这是一种老的函数形式,此刻一般这样写void jhmaxmin(int p,int n)void jhmaxmin(p,n)int p, n;//////// int *p,n;{int t, *max, *min, *end, *q;end=p+n;max=min=p;for(q=p+1; q<end; q++){ if(*q>*max) max=q;if(*q<max) min=q; ////////*q<*min}t=*max; *max=*min; *min=t;}gc101.c 的功能为 : 输入 8 个整数 , 使用指针以选择法对其进行排序( 从小到大 ). 程序中有两处错误代码 , 请更正 . 注意,不得改变程序构造。
c语言程序改错
![c语言程序改错](https://img.taocdn.com/s3/m/e927cb03cd7931b765ce0508763231126edb7720.png)
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语言改错题-含答案
![C语言改错题-含答案](https://img.taocdn.com/s3/m/068176d4f9c75fbfc77da26925c52cc58bd69086.png)
第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。
例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。
------------------------------------------------------*/#include <conio.h>#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];/**********FOUND**********/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,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。
和值通过函数值返回main 函数。
2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。
------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/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 = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}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; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
c语言改错题题库及详解答案
![c语言改错题题库及详解答案](https://img.taocdn.com/s3/m/a2dca2de82d049649b6648d7c1c708a1294a0a79.png)
c语言改错题题库及详解答案1. 题目:以下代码段中存在错误,请找出并改正。
```c#include <stdio.h>int main() {int a = 10;int b = 20;int c = a + b;printf("The sum is %d", c);return 0;}```答案:代码中缺少了字符串结束的空格。
应改为:```cprintf("The sum is %d ", c);```2. 题目:找出并改正以下代码段中的错误。
```c#include <stdio.h>int main() {int num = 100;if (num = 100)printf("Number is 100\n");return 0;}答案:代码中使用了赋值运算符 "=" 而不是比较运算符 "=="。
应改为:```cif (num == 100)```3. 题目:以下代码段中存在逻辑错误,请指出并改正。
```c#include <stdio.h>int main() {float a, b, c;scanf("%f %f", &a, &b);c = a / b;printf("The result is %f", c);return 0;}```答案:代码中没有检查除数 b 是否为 0,这会导致运行时错误。
应添加检查:```cif (b != 0) {c = a / b;printf("The result is %f", c);} else {printf("Error: Division by zero.\n");}```4. 题目:找出并改正以下代码段中的语法错误。
C语言程序改错
![C语言程序改错](https://img.taocdn.com/s3/m/6d3efb7a27284b73f242501b.png)
【程序改错】功能:求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是否是同构数。
C语言程序改错
![C语言程序改错](https://img.taocdn.com/s3/m/0cfed27b4431b90d6d85c74a.png)
/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/#include"stdio.h"main( ){/**********FOUND**********/long a,b,c,d,e,x,scanf("%ld",&x);a=x/10000;/**********FOUND**********/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x%10;/**********FOUND**********/if (a==0)printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);getch();}答案:1). long a,b,c,d,e,x;2). b=x%10000/1000; 或b=x/1000%10;3). if (a!=0) 或if (!a)/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后除以10的余数代替该位数字。
c语言程序改错题
![c语言程序改错题](https://img.taocdn.com/s3/m/b002f068a22d7375a417866fb84ae45c3b35c2d0.png)
【程序改错】功能: 根据整型形参m的值, 计算如下公式的值。
1 1 1.....1.—..—......——2x2 3x3 mxm例如: 若m=5, 则应输出: 0.536389------------------------------------------------------*/#include <stdio.h>double fun(int m){double y=1.0;int i;/**********FOUND**********/for(i=2;i<m;i--) for(i=2;i<=m;i++) /**********FOUND**********/y-=1/(i*i); y-=1.0/(i*i)/**********FOUND**********/return m; return y}main(){int n=5;printf("\nthe result is %lf\n",fun(n));}【程序设计】---------------------------------------------------------题目: 编程求所有4位数, 这些数具有以下特点: 这数本身是平方数, 且其低2位和高2位所组成的2个2位数也是平方数。
要求: 使用程序中定义的变量-------------------------------------------------------*/#include <stdio.h>#include <math.h>main(){int qw,bw,sw,gw; // qw千位数bw百位数sw十位数gw个位数int a,b; //a 高两位低两数int i; //循环变量/**********Program**********/for(i=1000;i<10000;i++){qw=i/1000;bw=i/100%10;sw=i/10%10;gw=i%10;1a=qw*10+bw;b=sw*10+gw;if(sqrt(i)==(int)sqrt(i)&&sqrt(a)==(int)sqrt(a)&&sqrt(b)==(int)sqrt(b)) printf(“%d\n”,i);}/********** End **********/}【程序设计】功能: 从键盘为一维整型数组输入10个整数, 调用fun 函数找出其中最小的数, 并在main函数中输出。
C语言程序改错
![C语言程序改错](https://img.taocdn.com/s3/m/c60f0dcdb9f3f90f76c61b22.png)
1-7919 计算并输出k以内最大的10个能被13或17整除的自然数之和。
K的值由主函数导入。
错1:while((2<=k)&&(mc<10)) 错2:if(k%13==0||k%17==0)错3:k--; 错3:return m;1-2511 功能:计算正整数num的各位上的数字之积。
例如:输入252,则输出应该是20。
错1:long k=1; 错2:num/=10;错3:scanf("%ld",&n); 错4:printf("\n%ld\n",fun(n));1-354 功能:输出fabonacci数列前20项,要求变量类型定义为浮点型,输出时只输出整数部分,输出项数不得多于或少于20.错1:printf(“%f”,f1); 错2:for(i=1;i<20;i++)错3:f1=f2; 错4:f2=f3;1-2544 功能:在一个一维整型数组中找出其中最大的数及其下标。
错1:int fun(int *a,int *b,int n) 错2:*b=c-a;错3:scanf(“%d”,a+i); 错4:max=fun(a,&p,N)1-1859 功能:实现交换两个整数的值。
例如:给a和b分别输入3和6,输出为a=6,b=3。
错1:fun(int *a,int *b) 错2:t=*a;错3:*a=*b; 错4:*b=t;1-840 功能:求1到20的阶乘的和。
错1:t=1; 错2:t=t*j;错3:s=s+t; 错4:printf("jiecheng=%f\n",s);1-6949 用起泡法对10个整数从小到大排序错1:void sort (int *x,int n) 错2:for(j=0;j<n-1-i;j++)错3:if(x[j]>x[j+1]) 错4:sort (a,n);1-4336 输入aSdFG输出为asdfg错1:char fun (char *c) 错2:return *c;错3:char s[81],*p=s; 错4:printf(“%c”,*p);1-4489 为一维数组输入10个整数。
大学C语言期末考试练习题程序改错(带详解答案)
![大学C语言期末考试练习题程序改错(带详解答案)](https://img.taocdn.com/s3/m/6791e6046edb6f1aff001fbc.png)
scanf(“%d”,a); //若 scanf 语句有错误,常见考点有两个:(1)格式声明符号要 与后面欲赋值的变量的类型一致,此题%d 与 a 的类型 int 一致(详见 p69-78);(2)变量 的前面要有地址符号&
{ sum=sum*i; // 若不为 sum 赋初值,则此处无法计算 sum*i。 i++;
} printf("sum=%d",sum); //若 printf 语句有错误,常见考点有 1 个:格式声明符号 要与后面欲输出的变量的类型一致,此题%d 与 sum 的类型 long int 不一致,应改为%ld (详见 p69-78);
第三处改为:if(n%3==0)
第四处改为:sum=sum+n;
8. 求表达式 c ab 的值
#include <stdio.h>
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f; scanf(“%d,%d”,a,b); //与改错第 1 题中的 scanf 错误相同 if(ab>0){ // C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); // 调用带有返回值的函数,应将函数的返回值保存在变量里
略 { if(n%3=0) // = 是赋值符号,用于将右边的值赋给左边的变量;== 是
关系符号,用来判断两个值是否相等 。改错中 if 后面表达式中的赋值符号是常见的 考点。
C语言程序改错题
![C语言程序改错题](https://img.taocdn.com/s3/m/d3bcfa42a66e58fafab069dc5022aaea998f41f1.png)
C语言程序改错题第 1题(10.0 分)/*------------------------------------------------------ 功能:将一个正整数分解质因数。
例如:输入 90,打印出 90=2*3*3*5------------------------------------------------------*/ #include "stdio.h"main(){int n,i;printf("\nplease input a number:\n");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){/**********FOUND**********/while(n==i){/**********FOUND**********/if(n%i==1){printf("%d*",i);/**********FOUND**********/n=n%i;}elsebreak;}}printf("%d",n);}答案:1). while(n!=i)2). if(n%i==0) 或 if (!(n%i))3). n=n/i;第 2 题(10.0 分)/*------------------------------------------------------ 功能:删除字符串 s 中的所有空白字符(包括Tab 字符、回车符及换行符)。
输入字符串时用'#'结束输入。
-----------------------------------------------------*/ #include <string.h>#include <stdio.h>#include <ctype.h>fun ( char *p){int i,t; char c[80];/**********FOUND**********/for (i = 1,t = 0; p[i] ; i++)/**********FOUND**********/if(!isspace((p+i))) c[t++]=p[i]; /**********FOUND**********/c[t]="\\0";strcpy(p,c);}main( ){char c,s[80];int i=0;printf("Input a string:");c=getchar();while(c!='#'){s[i]=c;i++;c=getchar();}s[i]='\0';fun(s);puts(s);}答案:1). for (i = 0,t = 0; p[i] ; i++)2). if(!isspace(*(p+i))) c[t++]=p[i];3). c[t]='\0';第 3 题(10.0 分)/*------------------------------------------------------ 功能:有 n 个人围成一圈,顺序排号。
C语言《改错》
![C语言《改错》](https://img.taocdn.com/s3/m/da8ee773f242336c1eb95ea2.png)
请改正程序中的错误,使其能得出正确的结果。
【答案】
(1)将s[j]=s[i]; 改为:s[j++]=s[i];
(2)将s[j]="\0"; 改为:s[j]= '\0';
5.在给定程序中,fun函数的功能是:将n个无序整数从小到大排序。
14.下列给定程序中,函数fun的功能是:逐个比较x、y两个字符串对应位置中的字符,把ASCII相等或值小的字符依次存放到z数组中,形成一个新的字符串。
【答案】
(1)将int i=1;改为:int i=0;
(2)将while(*a!=*b)改为:while(*a || *b)
15.下面程序中函数fun的功能是:将长整数s中每个十进制位上为奇数的数取出,形成一个新数在t中,t中数字顺序按原整数中数字的逆序排列。
(2)将 zero=count; 改为:*zero=count;
29.给定程序中,函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。
【答案】
(1)将int i; 改为:int i,sl;
(2)将t[i] = s[sl-i]; 改为:
【答案】
(1)将p=h; 改为:p= h->next;
(2)将p=h->next; 改为:p=p->next;
8.给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
【答案】
(1)将for( i=0; i<sl; i ++) 改为:
(完整word版)C语言程序改错总结
![(完整word版)C语言程序改错总结](https://img.taocdn.com/s3/m/8c3f149c7fd5360cbb1adb89.png)
难度11、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。
int main(void){int xy2;/*********Found************/scanf("%s", &xy2); //改为:scanf("%d”,&xy2);/*********Found************/printf("xy2=%5d\n", &xy2); //改为:printf("xy2=%5d\n”,xy2);return 0;}2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。
#include<stdio。
h>float fmax(float x, float y);int main(void){/*********Found************/float l,1; //il = 3。
0;i = 5.6f;/*********Found************/printf("fmax(%5.2f,%5.2f)=%5.2f\n”, i, l, fMax(i,l)); // fmaxreturn 0;}/*********Found************/int fmax(float x, float y) //改:float{if (x < y)return y;else return x;}3、程序D4.c的功能是计算半径为2+3的圆的面积。
#include<stdio.h〉#define PI 3。
14/*********Found************/#define S(bj)PI*bj*bj //改:PI*(bj)*(bj) int main(void){/*********Found************/int mianJi;//改为:doublemianJi = S(2+3);printf(”mian ji=%5。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【程序改错】
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*m
double 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;i<a;i++)
6.功能:输出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 7
a[i][j]=' ';
z=z-1;
printf("%c",a[i][j]);
9.题目:求两个整数的最小公倍数。
for(i=t;;i++)
{j=i;break;}
10.功能:某个公司采用公用电话传递数据,数据是四位的整数,在
传递过程中是加密的,加密规则如下:每位数字都加上5,
然后除以10的余数代替该位数字。
再将新生成数据的第一
位和第四位交换,第二位和第三位交换。
例如:输入一个四位整数1234,则结果为:9876。
scanf("%d",&a);
aa[1]=a%100/10;
for(i=0;i<4;i++)
11.功能:用"冒泡法"对连续输入的十个字符排序后按从小到大的次序
输出.
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])
12.功能:打印出杨辉三角形(要求打印出10行).
for(i=0;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
13.功能:根据整型形参 m,计算某一数据项的值。
y = 1/(100*100)+1/(200*200)+1/(300*300)+ …… +1/(m*m)例如:若m = 2000,则应输出: 0.000160。
double fun ( int m )
for( i = 100; i <= m; i += 100 )
y += 1.0 / d ;
14.功能:一个已排好序的一维数组,输入一个数number,要求按原来
排序的规律将它插入数组中.
for(i=0;i<10;i++)
end=a[9];
a[10]=number;
if(a[i]>number)
15.功能:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同
学用A表示,60-89分之间的用B表示,60分以下的用C表示char grade;
scanf("%d",&score);
grade=score>=90?'A':(score>=60?'B':'C');
16.功能:编写函数fun求1000以内所有8的倍数之和。
int s=0,i;
for(i=1;i<N;i++)
if(i%m==0)
17.功能:有一数组内放10个整数,要求找出最小数和它的下标,然后
把它和数组中最前面的元素即第一个数对换位置.
scanf("%d",&a[i]);
for(i=1;i<10;i++)
if(a[i]<min)
a[k]=a[0];
18.功能:编写一个程序计算某年某月有几天。
(注意要区分闰年)switch(mm)
break;
default :
19.功能:编写函数fun生成一个对角线元素为5,上三角元素为0,
下三角元素为1的3*3的二维数组。
int i,j;
for(i=0;i<3;i++)
if(i==j)
20.功能:用下面的和式求圆周率的近似值。
直到最后一项的绝对值
小于等于0.0001。
π/4 = 1-1/3+1/5-1/7+……
#include <math.h>
float s=0,t=1,p=1;
while(fabs(t)>1e-4)
printf("pi=%f\n",s*4);
21.功能:有1、2、3、4个数字,能组成多少个互不相同且无重复数
字的三位数?都是多少?
printf("\n");
for(i=1;i<5;i++)
if (i!=k&&i!=j&&j!=k)
22.功能:一个整数,它加上100后是一个完全平方数,再加上168又
是一个完全平方数,请问该数是多少?
for (i=1;i<100000;i++)
x=sqrt(i+100);
if(x*x==i+100&&y*y==i+268)
23.功能:一个5位数,判断它是不是回文数。
即12321是回文数,个
位与万位相同,十位与千位相同。
long ge,shi,qian,wan,x;
wan=x/10000;
if (ge==wan&&shi==qian)。