程序改错题
更新时间:2023-10-09 01:50:01 阅读量: 综合文库 文档下载
【程序改错】
功能:已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。下列给定程序中,函数fun的功能是:计算并输出该数列的前n项的平方根 之和sum,n的值通过形参传入。
例如:当n=10时,程序的输出结果应为23.197745。 #include \#include
float fun(int n)
{ double sum,s0,s1,s2,s; int k; sum=1.0;
sum=1;
if(n<=2) sum=0.0; s0=0.0; s1=0.0; s2=1.0;
s2=1;
for(k=4;k<=n;k++)
{ s=s0+s1+s2; sum+=sqrt(s);
s0=s1;s1=s2;s2=s; } return sum; }void main() { int n;
scanf(\
printf(\
1【程序改错】下面给定程序中,函数fun的功能是:判断用户输入的任意一个字符串是否为\回文串\。所谓\回文串\是指从开头读和从末尾读均为相同字符,例如:\。请改正程序中的错误。
#include
int fun(char a[])
{ int i=0,num=0,flag=0; Do
{ num++; }
while(a[num]!='\\0');
do
{ if(a[i]!=a[num-1-i]) { flag=1;
break; } i++;
}while(i scanf(\ m=fun(a); if(m==1) printf(\此数组不为回文串\\n\ else printf(\此数组为回文串\\n\ 2【程序改错】 功能:将6个数按输入时顺序的逆序进行排列. #include \ void sort(char *p,int m) { int i; char change,*p1,*p2; for(i=0;i { *p1=p+i; *p2=p+(m-1-i); change=*p1; *p1=*p2; *p2=change; }} main( ) { int i; / char p,num[6]; for(i=0;i<=5;i++) scanf(\ p=&num[0]; sort(*p,6); for(i=0;i<=5;i++) printf(\3【程序改错】 功能:给定n个实数,输出平均值,并统计在平均值以下(含平 例如:n=6时,输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得 平均值以下的实数个数应为3。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \ int fun(float x[],int n) { int j,c=0; /**********ERROR**********/ float xa=0;或float xa=0.0; /**********ERROR**********/ for(j=0;j for(j=0;n>j;j++) for(j=0;n-1>=j;j++) for(j=0;j<=n-1;j++)1/4 xa+=x[j]; xa=xa/n; printf(\ /**********ERROR**********/ 均值)的实数个数。 平均值为40.828335,在 for(j=0;j for(j=0;n-1>=j;j++) 1/4 /**********ERROR**********/ return c;或return (c); } void main() { float x[]={23.5,45.67,12.1,6.4,58.9,98.4}; printf(\} 4功能:计算正整数num的各位上的数字之积。 例如:输入252,则输出应该是20。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \long fun (long num) { /**********ERROR**********/ long k=1; do { k*=num; /**********ERROR**********/ num/=10;或num=num/10; }while (num); return k; } main() { long n; printf(\ /**********ERROR**********/ scanf(\ /**********ERROR**********/ printf(\ ; } 5【程序改错】 -------------------------------------------------------- 功能:用指针作函数参数,编程序求一维数组中的最大和最小的 元素值. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \#define N 10 /***********ERROR***********/ void maxmin(int arr[ ],int *pt1,int *pt2,int n) maxmin(int arr[ ],int *pt1,int *pt2,int n) void maxmin(int *arr,int *pt1,int *pt2,int n)1/3 { int i; /***********ERROR***********/ *pt1=*pt2=arr[0]; *pt1=*pt2=*(arr+0); *pt2=*pt1=arr[0];1/3 for(i=1;i /***********ERROR***********/ if(arr[i]>*pt1) *pt1=arr[i]; if(*(arr+i)>*pt1)) *pt1=arr[i]; if(*pt1<*(arr+i))) *pt1=arr[i]; if(*pt1 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; /***********ERROR***********/ p1=&a;p2=&b; maxmin(array,p1,p2,N); printf(\} 6【程序改错】 功能:将字符串s中最后一次出现的子字符串t1替换成字符串t2, 所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同 例如:当s所指字符串中的内容为\,t1中的内容为\,t2中的内容为\时,结果w所指数组中的内容应为\。 #include \#include \#include \ int fun (char *s, char *t1, char *t2 , char *w) { int i; char *p , *r, *a; strcpy( w, s ); /**********ERROR**********/ while (*w) while (*w!=0) while (*w!='\\0') for (;*w;) for (;*w!='\\0';)1/4 {p = w; r = t1; while ( *r ) /**********ERROR**********/ if (*r==*p) { r++; p++; } else break; /**********ERROR**********/ if (*r=='\\0') a=w; if (*r==0 ) a=w; if(!*r) a=w;1/3 w++;} r = t2; while ( *r ) { /**********ERROR**********/ *a=*r; a++; r++; }} main() {char s[100], t1[100], t2[100], w[100]; printf(\ printf(\ printf(\ if ( strlen(t1)==strlen(t2) ) { fun( s, t1, t2, w); printf(\ else printf(\ 7【程序改错】 -------------------------------------------------------- 功能:将一个字符串中的大写字母转换成小写字母。 例如:输入aSdFG输出为asdfg。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \ /**********ERROR**********/ char fun(char *c) { if(*c<='Z'&&*c>='A')*c-='A'-'a'; /**********ERROR**********/ return *c; return (*c); return(*c); } main() { /**********ERROR**********/ char s[81],*p=s; gets(s); while(*p) { *p=fun(p); /**********ERROR**********/ putchar(*p); printf(\ p++; } putchar('\\n'); } 8【程序改错】 -------------------------------------------------------- 功能:给定n个实数,输出平均值,并统计在平均值以下(含平 均值)的实数个数。 例如:n=6时,输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得 平均值为40.828335,在平均值以下的实数个数应为3。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \ int fun(float x[],int n) { int j,c=0; /**********ERROR**********/ float xa=0;或float xa=0.0; /**********ERROR**********/ for(j=0;j 或for(j=0;n>j;j++) 或for(j=0;n-1>=j;j++) 或for(j=0;j<=n-1;j++) xa+=x[j]; xa=xa/n; printf(\ /**********ERROR**********/ for(j=0;j if(x[j]<=xa) c++; /**********ERROR**********/ return c; 或return (c); } void main() { float x[]={23.5,45.67,12.1,6.4,58.9,98.4}; printf(\} 9【程序改错】 功能:将6个数按输入时顺序的逆序进行排列. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \ void sort(char *p,int m) { int i; char change,*p1,*p2; for(i=0;i /***********ERROR***********/ *p1=p+i; p2=p+(m-1-i); change=*p1; *p1=*p2; *p2=change; } } main( ) { int i; /***********ERROR***********/ char *p,num[6]; for(i=0;i<=5;i++) /***********ERROR***********/ scanf(\ p=&num[0]; /***********ERROR***********/ sort(p,6); for(i=0;i<=5;i++) printf(\} 10【程序改错】 -------------------------------------------------------- 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输 出主对角线上的元素之和sum。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \int fun() { int a[3][3],sum; int i,j; /**********ERROR**********/ sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) /**********ERROR**********/ scanf(\ for(i=0;i<3;i++) /**********ERROR**********/ sum=sum+a[i][i]; sum+=a[i][i]; sum=a[i][i]+sum; sum+=a[i][j=i]; sum=sum+a[i][j=i]; sum=a[i][j=i]+sum; 1/5 /**********ERROR**********/ printf(\ } void main() { fun(); } 11【程序改错】 -------------------------------------------------------- 功能:用指针作函数参数,编程序求一维数组中的最大和最小的 元素值. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \#define N 10 /***********ERROR***********/ void maxmin(int arr[ ],int *pt1,int *pt2,int n) maxmin(int arr[ ],int *pt1,int *pt2,int n) void maxmin(int *arr,int *pt1,int *pt2,int n)1/3 { int i; /***********ERROR***********/ *pt1=*pt2=arr[0]; *pt1=*pt2=*(arr+0); *pt2=*pt1=arr[0]; 1/3 for(i=1;i /***********ERROR***********/ if(arr[i]>*pt1) *pt1=arr[i]; if(*(arr+i)>*pt1)) *pt1=arr[i]; if(*pt1<*(arr+i))) *pt1=arr[i]; if(*pt1 } } main( ) { int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b; /***********ERROR***********/ p1=&a;p2=&b; maxmin(array,p1,p2,N); printf(\} 12【程序改错】 功能:实现两个字符串的连接。 例如:输入dfdfqe和12345时,则输出dfdfqe12345. 注意:不可以增加或删除程序行,也不可以更改程序的结构。 #include \void 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; /**********ERROR**********/ while(s1[i]!='\\0')i++; while(s1[i])i++; while(s1[i]!=NULL)i++; while(s1[i]!=0)i++;(1/4) /**********ERROR**********/ while(s2[j]!='\\0') while(s2[j]) while(s2[j]!=NULL) while(s2[j]!=0)(1/4) { /**********ERROR**********/ s1[i]=s2[j]; i++; j++; } 组元素仍按升序排列。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \#define N 11 void main() { int i,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf(\ /**********ERROR**********/ scanf(\ printf(\ for(i=0;i /**********ERROR**********/ for(i=N-2;i>=0;i--)或for(i=N-2;0<=i;i--) if(number<=a[i]) /**********ERROR**********/ a[i+1]=a[i] else { a[i+1]=number; /**********ERROR**********/ break; } if(number printf(\ printf(\} 21【程序改错】 -------------------------------------------------------- 功能:用指针作函数参数,编程序求一维数组中的最大和最小的 元素值. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \#define N 10 /***********ERROR***********/ void maxmin(int arr[ ],int *pt1,int *pt2,int n) 或maxmin(int arr[ ],int *pt1,int *pt2,int n) 或void maxmin(int *arr,int *pt1,int *pt2,int n) { int i; /***********ERROR***********/ *pt1=*pt2=&arr[0]; for(i=1;i /***********ERROR***********/ *pt1=*pt2=arr[0]; 或 *pt1=*pt2=*(arr+0); 或*pt2=*pt1=arr[0]; 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; /***********ERROR***********/ if(arr[i]>*pt1) *pt1=arr[i]; 或 if(*(arr+i)>*pt1)) *pt1=arr[i]; 或if(*pt1<*(arr+i))) *pt1=arr[i]; 或if(*pt1 maxmin(array,p1,p2,N); printf(\} 22【程序改错】 -------------------------------------------------------- 功能:求如下表达式: 1 1 1 S = 1 + -- + ----- + ...... + ------------- 1+2 1+2+3 1+2+3+......+n -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \void main() { int n; float fun(); printf(\ /**********ERROR**********/ scanf(\ printf(\} /**********ERROR**********/ float fun(int n) { int i,j,t; float s; s=0; /**********ERROR**********/ for(i=1;i<=n;i++) 或for(i=1;n>=i;i++)或for(i=1;i { t=0; for(j=1;j<=i;j++) t=t+j; /**********ERROR**********/ } return s; } 23【程序改错】 -------------------------------------------------------- 功能:用指针作函数参数,编程序求一维数组中的最大和最小的 元素值. -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \#define N 10 /***********ERROR***********/ s+=1.0/t;或s=s+1.0/(float)t;或s=s+1.0/t;或s+=1.0/(float)t; void maxmin(int arr[ ],int *pt1,int *pt2,int n) 或maxmin(int arr[ ],int *pt1,int *pt2,int n) 或void maxmin(int *arr,int *pt1,int *pt2,int n) { int i; /***********ERROR***********/ *pt1=*pt2=arr[0]; 或*pt1=*pt2=*(arr+0); 或*pt2=*pt1=arr[0]; for(i=1;i { /***********ERROR***********/ if(arr[i]>*pt1) *pt1=arr[i]; 或if(*(arr+i)>*pt1)) *pt1=arr[i]; 或if(*pt1<*(arr+i))) *pt1=arr[i]; 或if(*pt1 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; /***********ERROR***********/ p1=&a;p2=&b; maxmin(array,p1,p2,N); printf(\} 24【程序改错】 -------------------------------------------------------- 功能:为一维数组输入10个整数;将其中最小的数与第一个数 对换,将最大的数与最后一个数对换,输出数组元素。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include \void main ( ) { int a[10]; void input(); void output(); void max_min(); input(a,10); max_min(a,10); output(a,10); } void input(int arr[],int n) { int i; printf(\ for(i=0;i /**********ERROR**********/ scanf(\} void max_min(int arr[],int n) { int max,min,t,i; min=max=0; for(i=1;i /**********ERROR**********/ if(arr[i]>arr[max]) max=i; else if(arr[i] arr[n-1]=arr[max]; arr[max]=t; } void output(int arr[],int n) { int i; printf(\ /**********ERROR**********/ for(i=0;i *【程序改错】 -------------------------------------------------------- 功能:有一数组内放10个整数,要求找出最小数和它的下标,然后 把它和数组中最前面的元素即第一个数对换位置. ------------------------------------------------------*/ #include int i,a[10],min,k=0; printf(\给数组元素赋值:\\n\ for(i=0;i<10;i++) /***********ERROR***********/ scanf(\ for(i=0;i<10;i++) printf(\ min=a[0]; /***********ERROR***********/ for(i=1;i<10;i++) /***********ERROR***********/ if(a[i] /***********ERROR***********/ a[k]=a[0]; a[0]=min; printf(\输出互换后数组:\\n\ for(i=0;i<10;i++) printf(\ printf(\*【程序改错】 -------------------------------------------------------- 功能:先将在字符串s中的字符按正序存放到t串中,然后把s中的 字符按逆序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “ABCDEEDCBA”。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void fun(char s[],char t[]) { int i,k; k=strlen(s); /**********ERROR**********/ for(i=0;i t[i]=s[i]; for(i=0;i /**********ERROR**********/ t[k+i]=s[k-i-1]; /**********ERROR**********/ t[k+i]='\\0'; } main() { char s[100],t[100]; printf(\ fun(s,t); printf(\} *【程序改错】 -------------------------------------------------------- 题目:假定输入的字符串中只包含字母和*号。编写程序只删除字符串的前面*号。 例如,******ACF*F*G****,删除后,字符串中的字符为ACF*F*G**** 程序中共有3条错误语句,请改正错误。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include { char a[80]; gets(a); fun(a); puts(a); } void fun(char a[]) { /**********ERROR**********/ int i=0,j=0; /**********ERROR**********/ while(a[i]=='*')i++; /**********ERROR**********/ while(a[i]) a[j++]=a[i++]; a[j]='\\0'; }
正在阅读:
程序改错题10-09
定陶县发展节水灌溉现状及对策01-05
互联网+时代下的隐私保护03-20
《物业管理实务》第四章讲义05-10
天津市施工现场农民工信息采集系统总体操作流程 - 图文01-30
半导体收音机实训指导书 - 图文06-14
马临中学2010届毕业班工作方案04-13
学会爱作文1000字07-05
在县养路段职工代表大会上的讲话08-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 错题
- 程序
- 苏教版小学语文三年级下册生字词巧记
- 清宫旧藏明清家具经典图例
- 课外文言文片段阅读练习
- 民事判决民事执行难原因及解决问题方法
- 森林资源保护管理 - -教案
- 某监狱监狱整体解决方案080516 - 图文
- 计算机网络基础练习题(答案)
- 高考地理复习资料
- 《色彩斑斓的文化生活》教学设计 - 图文
- 2013版用于立项湖泊蓝藻治理项目可行性研究报告(甲级资质)审查要求及编制方案 - 图文
- 宏观经济学第1次作业(1) 答案
- 传热学第五章答案-第五版
- 园林规划设计试题
- 施工期间地下室抗浮施工方案
- 分析化学中常用中英文对照表
- 15五年级语文导学案
- 使用VBA操作Word表格
- 最新-法制宣传日国旗下讲话人生路上与法同行 精品
- 电大作业:2008年宝钢获利能力分析
- 《防止沉迷于网络安全教育》主题班会教(学)案