C语言程序改错题及答案
C语言程序改错题及标准答案

for(i=0;i<=10;i++) {//i<10循环的个数不对,如果i<=10话则i=1;那下面的应改为i==1
scanf("%f",&x);
/******* 2 ********/
if(i=1) { max=x;min=x;}// i==0保证第一次时条件成立
t=t*10+i;//t=t*10+1;
s=s+t;
}
s=s*a;
printf("%d\n",s);
}
8、
#include<stdio.h>
#include<math.h>
voidmain()
{floatx,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
/***** 1*****/
if(x>max)max=x;
if(x<min) min=x;
}
printf("%f,%f\n",max,min);
}
10、.在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
t=-t*x/++i;//t= -t*x/i++;
s+=t;
/*****2*****/
} while(fabs(t)<eps)//while(fabs(t)>=eps);
printf("%f\n",s);
C语言改错题答案

改错题(一)1.Cmody.011.C,功能是:从字符串数组str1中取出ASCII码值为偶数且下标为偶数的字符依次存放到字符串t中。
如:若str1所指的字符串为:4Az18c?Ge9a0z! 则t所指的字符串为:4z8z注意:数组下标从0开始#include <math.h>#include <stdio.h>#include <string.h>#include <conio.h>void main(){char str1[100],t[200];int i,j;/**/ i=0;j=o;/**/strcpy(str1,"4Az18c?Ge9a0z!");for(i=0;i<strlen(str1);i++){/**/ if((str1[i]%2==0)&&(i%2!==0)) /**/{t[j]=str1[i];j++;}}t[j]='\0';printf("\nOriginal string :%s\n",str1);printf("\nResult string :%s\n",t);}2.Cmody012.C,fun()功能:根据n,计算大于10的最小n个能被3整除的正整数的倒数之和。
如:fun(8)=1/12+1/15+1/18+1/21+1/24+1/27+1/30+1/33=0.396#include <math.h>#include <stdio.h>#include <string.h>#include <conio.h>#define M 50double fun(int n){double y=0.0;int i,j;j=0;for(i=1;;i++){/**/ if(i<>10)&&(i%3==0)) /**/{ /**/ y+=1 1.0/i; /**/j++;}if(j==n) break;}return y;}void main(){printf("fun(8)=%8.3lf\n",fun(8));}(二)1.Cmody021.C,输出:*************************#include <stdio.h>void main(){/**/int i;,j; /**/for(i=1;i<=5;i++){for(j=1;j<=10-2*i;j++) printf(" ");/**/ for(j=1;j<=52*i-1;j++) /**/printf("*");printf("\n");}}2.Cmody022.C的功能是求解百元买百鸡问题:设一只公鸡2元,一只母鸡1元,一只小鸡0.5元。
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语言程序改错——答案

int j,c=0; /**********FOUND**********/
float j=0;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资0配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试.,卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试5交写卷、底重保电。要护气管设装设线备置备4敷高动调、设中作试电技资,高气术料并中课3中试且资件、包卷拒料中管含试绝试调路线验动卷试敷槽方作技设、案,术技管以来术架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
程序改错完整版---C语言

(一)功能:用选择法对数组中的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语言期末考试练习题程序改错(带详解答案)

y=3.5+x;
printf(“y=%d”);
}
正确的:
int x; float y;
printf(“y=%f”,y);
6 编程计算下面分段函数, 输入 x, 输出 y
x 1 x 0 y 2x 1 0 x 10
3x 11 x 10
main() { int x,y;
第三处改为: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); // 调用带有返回值的函数,应将函数的返回值保存在变量里
} 第四行改为:for(j=0;j<5;j++) 第五行改为:scanf(“%d”,&a[j]); 第七行改为:for(j=1;j<5;j++) 第八行改为:if(max<a[j]) 第十三行改为:printf(“下标:%d\n 最大值:%d”, m,max)
3.用一个函数求两个数之和。 sum(x,y) //函数定义的一般形式 p173-174 { float z; z=x+y; return; //return 语句后面可以返回 0、常量、变量和表达式的值。 } main() { float a,b; int c; / /若定义变量的语句有错误,常见考点有两个:(1)变量的类型,(2)在定
c语言题库改错题及详解答案

c语言题库改错题及详解答案C语言是一种广泛使用的计算机编程语言,它以其强大的功能和灵活性而闻名。
在学习和掌握C语言的过程中,练习题库中的改错题是提高编程技能的有效方式。
以下是一些常见的C语言改错题及其详解答案。
1. 题目:编写一个程序,计算并输出1到10的累加和。
错误代码:```cint main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum = sum + i;}print("Sum is %d", sum);return 0;}```错误点: `print` 函数应为 `printf`。
正确代码:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 10; i++) {sum += i; // 可以简化为 sum += i;}printf("Sum is %d\n", sum);return 0;}```2. 题目:编写一个程序,判断输入的年份是否为闰年。
错误代码:```cint main() {int year;printf("Enter a year: ");scanf("%d", &year);if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```错误点:逻辑判断的括号使用不正确。
正确代码:```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```3. 题目:编写一个程序,实现字符串的反转。
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) {
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序调试1、#include <stdio.h>#include <string.h>void fun(char *s,char *t){int i,sl;sl=strlen(s);for(i=0;i<sl;i++)t[i]=s[i];for(i=0;i<sl;i++)/********1********/ // t[sl+i]=s[s1-1-i];t[sl+i]=s[sl-i];/********2********/t[sl]="\0";// t[sl+s1]=’\0’;}void main(){char s[100],t[100];scanf("%s",s);fun(s,t);printf("%s",t);}2、#include <stdio.h>void main(){ int n,i;scanf("%d",&n);/****** 1 ******/i=1;// i=2;while(n>1)if(n%i==0) {printf("%d\t",i);n/=i;}else/******** 2 *******/n++;// i++;}3、#include <stdio.h>#include <math.h>void main(){ int n,s=0;scanf("%d",&n);n=fabs(n);/******** 1 *******/while(n>1) { // 1}n 2}n!=0 s=s+n%10;/******** 2 ******/n=n%10;// n=n/10;}printf("%d\n",s);}4、#include<stdio.h>void itoa(long i,char *s){if(i==0)return;/****** 1 ******/*s = '1'+i%10;//*s = '0'+i%10;itoa(i/10,s-1);}void main(){long n;char str[7]="";scanf("%ld",&n);/****** 2 ******/itoa(n,str+6);// itoa(n,str+5);printf("%s",str);}5、#include <stdio.h>#define N 10void main(){int i,j,min,temp;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++)/****** 1 ******/if (a[min]<=a[j])min =j; // if (a[min]>=a[j])/****** 2 ******/temp=a[min]; a[min]=a[j]; a[j]=temp;/* 数据交换*/// temp=a[min]; a[min]=a[i]; a[i]=temp;}printf("\nThe sorted numbers: \n"); /* 输出排序结果*/for (i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}6、#include <stdio.h>void main(){char s1[80],s2[40];int i=0,j=0;printf("\nInput the first string:");scanf("%s",s1);printf("\nInput the second string:");scanf("%s",s2);while (s1[i] !='\0')/****** 1 ******/i+1;// i= i+1;while (s2[j] !='\0')/****** 2 ******/s1[++i]=s2[++j];/* 拼接字符到s1 *///s1[i++]=s2[j++];s1[i] ='\0';printf("\nNew string: %s",s1);}}7、#include <stdio.h>void main(){ int i,a,n,t=0;/***** 1 *****/s=0;// int s=0;scanf("%d%d",&a,&n);for(i=1;i<=n;i++) {/******* 2 ******/t=t*10+i; // t=t*10+1;s=s+t;}s=s*a;printf("%d\n",s);}8、#include <stdio.h>#include <math.h>void main(){ float x,eps,s=1,t=1,i=1;scanf("%f%f",&x,&eps);do {/***** 1 *****/t=-t*x/++i;// t = -t * x / i++;s+=t;/***** 2 *****/} while(fabs(t)<eps) // while(fabs(t)>=eps) ;printf("%f\n",s);}9、#include <stdio.h>void main(){ float x,max,min; int i;/******** 1 *******/for(i=0;i<=10;i++) { // i<10循环的个数不对,如果i<=10话则i=1;那下面的应改为i==1 scanf("%f",&x);/******* 2 ********/if(i=1) { max=x;min=x;} // i==0保证第一次时条件成立if(x>max) max=x;if(x<min) min=x;}printf("%f,%f\n",max,min);}10、. 在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
#include <stdio.h>#include <ctype.h>void main(){ char a[80]; int n[5]={0},i;gets(a);for(i=0; a[i]!=’\0’; i++)/***** 1 *****/switch(tolower(a+i)) { // (tolower(a[i]))case 'a': n[0]++; break;case 'e': n[1]++; break;case 'i': n[2]++; break;case 'o': n[3]++; break;/***** 2 *****/case'U': n[4]++; break; // ‘u’}for(i=0;i<5;i++) printf("%d\n",n[i]);}11、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)该程序功能:输入n(0<n<10)后,输出1个数字金字塔。
如输入n为4,则输出:1222333334444444#include <stdio.h>void main(){ int i,j,n;/***** 1 *****/scanf("%d",n); // &nfor(i=1;i<=n;i++) {for(j=1;j<=n+1-i;j++)putchar(' ');for(j=1;j<=2*i-1;j++)putchar((char)(i+48));/****** 2 *****/putchar(\n); // ‘\n’}}12、在考生目录下,有Modify.c程序,该程序中“/***** N *****/”的下一行中有错误,请改正(注意:不得加行、减//行、加句、减句,否则后果自负)。
该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
#include <stdio.h>#include <string.h>#include <stdlib.h>void main(){ int n,i;/***** 1 *****/char str;// char *strscanf("%d\n",&n); str=(char*)malloc(n); gets(str);/***** 2 *****/for(i=1;i<strlen(str);i++) // i=0if(str[i]>='a'&& str[i]<='z') str[i]=str[i]-32 ;puts(str);}。