程序改错(1)汇总

合集下载

C语言常见改错

C语言常见改错
2:在子函数中注意大括号外定义类型与里面的要相同。 见例三 三、格式错误
1:常见格式 int→%d,long→%ld,float→%f,double→%lf 2:所需输出结果与已定义类型不同,可以利用强制转 换符。如定义 sum 为 int,但要输出实数 float,可以(float) sum 。见例一 四、固定语句格式错误 1:for( ; ; ); 2:while( ); 3:switch(){ };(for,while,switch 后面无分号) 见例五 4:do{ }while( );(do{ }while 结构后面有分号)
if(isSuShu(i)==0) /*(4)条件表达错,应改为(isSuShu(i)==1)或(isSuShu(i))*/ {
count=0; /*(5)本句应改为:count++;或 count+=1;*/
printf("%d\t",i);
if(count%K==0)
printf("\n");
case 6: b[2]++; break;
case 7: b[3]++; break;
case 8: b[4]++; break;
case 9: b[5]++;
/*(4)行末应加:break; */
default: b[5]++;
}
}
}
printf("The result is: \n");
for (i=1; i<6; i++) printf("%d0 number is: \n ", i+4,b[i]);

程序改错1

程序改错1

程序改错1.计算下列分段函数的值,输入x输出y的值f(x)= x*2 x<0且x≠-3sin(x) 0<=x<10 且x≠2且x≠3x*x+x-1 其他1)scanf(“%f,&x); 2)y=sin(3*x);3)printf(“%f\n”,y);2.输入两个整数n1,n2(n1<n2),统计两整数范围内被3整除的数的个数。

1)scanf(“%d%d”,&n1,&n2);2)n2=j; 3)if(j%3==0) n++;3.输入一个长整数,求各位数字的平方和。

如果输入的是负数,求其相反数的个位数字的平方和。

例如输入-123输出14.1)scanf(“%ld”,&in);2)While(in>0);3)in=in/10;4.从键盘上输入20个元素的值存入以为数组m中,然后将下标为奇数的元素赋值给数组n,最后输出数组n的内容。

1)for(a=0;a<20;a++) 2)if(a%2==1)3)b++; 4)for(a=0;a<10;a++)5.从键盘输入10个学生的成绩,统计最高分max,最低分min和平均分avg。

1)float a[8],min,max,avg;2)scanf(“%f”,&a[i]);3)max=min=avg=a[0]; 4)if(a[i]<min)6.一数列从第0项开始的前3项分别0,0,1,以后各项是相邻前三项和。

求该数列的前n 项平方根之和sum,n的值通过形参传入。

例如,当n=10时程序的输出结果应为23.197745.1)double fun (int n) 2)sum=1.0;3)s2=1.0; 4)for(k=4;k<=n;k++)7.求1/2的圆面积,函数通过形参得到的圆半径。

例:半径19.527,输出s=598.950017.1)float fun(float r)2)s=1.0/2*3.14159*r*r;3)return s;8.求1到10的阶乘和。

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

程序改错完整版---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个字符,以相反顺序打印出来。

程序改错

程序改错
(3)逻辑错误 发生在运行之后,不显示错误信息,仅表现为运行结果不正确。排除逻辑错误,一般也要用跟踪法查明错误点和错误原因。
发生错误后都要回到编辑阶段,分析错误原因,修改C源程序,再重复上述操作,直到程序能得到正确的运行结果,程序才算调试成功。程序发生错误,其原因很复杂。学会调试程序,也是学习C程序设计的重点和难点之一,必须多练、多分析,积累经验。
scanf(“%d”,&n);
while(i<n)
i+=2;
sum+=i;
if(n%2==0) n--;
printf(“输出1+3+5+……+%d=%ld\n”,n,sum);省略号是在中文状态下输入的。
}
第四题:程序功能:定义计算三角形面积的函数。计算公式:
s=(a+b+c)/2
a、b、c为三角形的边长。
{
char str[80]="a*b$c(d!EEE !!a.";
fun(str[80]);
printf("\n");
puts(str);
}
4、下列程序,其功能是:从s所指向的串中,找出包含有t所指字符串的个数。例如:s所指向的串为abcdabfab,t所指字符串为ab,则所求个数为3。请改正程序中的错误,使程序能输出正确的结果。
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
int a[]={1,2,3,4,5,6,7,8,9,10},i=10,n;
if((fp=fopen(“file6.txt”,”w”))==NULL)

C语言程序改错题汇总.doc

C语言程序改错题汇总.doc

C语言程序改错题汇总程序改错题汇总1、用“起泡法“对连续输入的十个字符排序后按从小到大的次序输出. 2、分别统计字符串中大写字母和小写字母的个数。

3、求1到10的阶乘的和。

4、判断m是否为素数,若是返回1,否则返回0。

5、用选择法对数组中的n个元素按从小到大的顺序进行排序。

6、求一个3行4列矩阵的外框的元素值之和。

7、以下程序把两个数按由大到小的顺序输出来。

8、求1到20的阶乘的和。

9、判断字符ch是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

(指针)10、已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

下列给定程序中,函数fun的功能是计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。

11、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少12、编写函数fun计算下列分段函数的值x*xx x0.0 { 累计营业额;输入下一笔交易额;} 输出营业额;} 记一笔交易额为变量sale,营业额为sigma。

124、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少125、编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。

例如输入35=或5-2=或3*4=或4/2=,求表达式结果。

126、输入字符序列,字符序列以特殊字符“”结束。

程序从前向后依次读入字符,并翻译出新的字符输出。

翻译的规则是如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符包括数字符需重复输出n1次如果当前读入的字符不是数字符,则输出该字符。

输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。

翻译直至当前读入的字符为字符‘’,结束翻译和输出。

127、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下每位数字都加上5,然后除以10的余数代替该位数字。

程序改错题——精选推荐

程序改错题——精选推荐

1、Gaicuo1.cpp的功能是:1!+2!+3!+……+20!。

程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>void main(){float s=0,t;int n,i;for(n=1;n<=20;n++)/****found*****/{for(i=1,t=1;i<=n;i++)t=t*i;/****found****/s=s+t;}printf("the sum is:%e.\n",s);}2、gaicuo2.cpp的功能是:输入两个不等的整数分别给x和y,输出其中的大数。

程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>void main( ){ int x,y;printf("Enter x & y:\n");scanf("%d%d",&x,&y);if(x<y)printf ("max=%d",y) ;elseprintf ("max=%d",x) ;}3、gaicuo3.cpp的功能是交换两个数,若输入10和20,则输出20和10。

程序有两处错误,在****found****处附近有错,请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>void main( ){int x,y,t;printf("Enter x & y:\n");scanf("%d%d",&x,&y);t=x;x=y; y=t;printf("x=%d y=%d",x,y) ;}4. gaicuo4.cpp的功能是输入一个整数,判别它是否能被3整除,若能整除,打印YES;不能打印NO。

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1

程序编程题目1、第一大类(交换类)共7道2. 程序修改(第3套)给定程序中函数fun 的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。

例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b 中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。

例如给a和b分别输入60和65,输出为:a=65 b=60/**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。

例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n项之和。

2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。

例如n=5,则应输出:。

/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n项的值。

从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求 s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。

例如,a=3,n=6,则以下表达式为:S=333333-33333-3333-333-33-3其值是296298。

C语言实验答案(2-6)

C语言实验答案(2-6)
实验二 1.验证性实验 (1) 程序运行结果
x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109
(2)程序运行结果
输入:
1,2 3,4 5,6 7,6 a,b
运行一: 1 0,1,0,0
运行二: 2 0,0,1,1
运行三: 3 0,0,0,1
运行四: 4 1,0,0,0
运行五: 5 1,0,0,0
输入不同数据以后,a,b,c,d 的结果不一样,分析其原因主要在于:输入值不同, switch 语句进入的 case 分支不同;当分支语句中未出现 break 时 switch 语句会继 续继续进入下一 case 分支分支执行,直到遇到 break 或最后。
实验三
一、验证性试验 15M5.55
b=25,y=2.6,c2=N a= 15,b=25 x=5.550000,y=2.600000 c1=M,c2=N 在 scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为 有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入 a 的值后,接 下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是 先输字符再输一个数,其间就可以用空格。 二、程序填空: ①a/b ②a%b ③quot,resi 三、程序改错: scanf("%f %f ",&x,&y) 改为 scanf("%d%d",&x,&y); printf("%d+%d=%d",x+y) 改为 printf("%d+%d=%d",x,y,x+y) ; (2) getchar(x) 改为 x=getchar() y=x-32 改为 y=x+32 四、设计性试:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:将 m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中。

例如:把3个串:“abc”,“CD”,“EF”串连起来,结果是“The result is: abcCDEF”。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>int fun ( char str[][10], int m, char *pt ){/**********ERROR**********/int k, q, ifor ( k = 0; k < m; k++ ){q = strlen ( str [k] );for (i=0; i<q; i++)/**********ERROR**********/pt[i] = str[k,i] ;/**********ERROR**********/pt = q ;pt[0] = 0 ;}}main( ){int m, h ;char s[10][10], p[120] ;printf( "\nPlease enter m:" ) ;scanf("%d", &m) ; gets(s[0]) ;printf( "\nPlease enter %d string:\n", m ) ;for ( h = 0; h < m; h++ ) gets( s[h]) ;fun(s, m, p) ;printf( "\nThe result is : %s\n", p) ;}【改错1】正确【学生答案】int k, q, i;【参考答案】int k, q, i;============================================================【改错2】错误【学生答案】pt[i] = str[k,i] ;【参考答案】pt[i] = str[k][i] ;============================================================【改错3】错误【学生答案】pt = q ;【参考答案】pt += q ;pt=pt+q;============================================================/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:使数组左下三角元素中的值乘以n 。

------------------------------------------------------*/#include <stdio.h>#include <conio.h>#include <stdlib.h>#define N 3int fun ( int a[][N], int n ){/**********ERROR**********/int i;j;for(i=0; i < N; i++)/**********ERROR**********/for(j=0; j<N; j++)/**********ERROR**********/a[i][j]=*n;}main ( ){int a[N][N], n, i, j;printf("***** The array *****\n");for ( i =0; i<3;i++){for ( j =0; j<3;j++){a[i][j] = rand()%10;printf( "%4d", a[i][j] );}printf("\n");}don = rand();while ( n >=5||n<1 );printf("n = %4d\n",n);fun ( a, n );printf ("***** THE RESULT *****\n");for ( i =0; i<3;i++){for ( j =0; j<3;j++)printf( "%4d", a[i][j] );printf("\n");}【改错1】正确【学生答案】int i,j;【参考答案】int i,j;============================================================【改错2】错误【学生答案】for(j=1; j<N; j++)【参考答案】for(j=0; j<=i; j++)============================================================【改错3】错误【学生答案】a[i][j]==n;【参考答案】a[i][j]*=n;============================================================/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:以下程序是用选择法对10个整数按升序排序。

-------------------------------------------------------*/#include <stdio.h>/**********FILL**********/_____main(){int i,j,k,t,a[N];for(i=0;i<=N-1;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++){/**********FILL**********/_____/**********FILL**********/for(j=i+1; _____;j++)if(a[j]<a[k]) k=j;/**********FILL**********/if(_____){t=a[i];a[i]=a[k];a[k]=t;}}printf("output the sorted array:\n");for(i=0;i<=N-1;i++)printf("%5d",a[i]);printf("\n");}【空1】错误【学生答案】_____【参考答案】#define N 10============================================================【空2】错误【学生答案】_____【参考答案】k=i============================================================【空3】错误【学生答案】for(j=i+1; _____;j++)【参考答案】j<NN>jj<=N-1N-1>=j============================================================【空4】错误【学生答案】if(_____)【参考答案】k!=ii!=k============================================================/*------------------------------------------------------- 【程序填空】---------------------------------------------------------功能:文件操作。

-------------------------------------------------------*/# include <stdio.h># include <stdlib.h>void main(){/* 定义一个文件指针fp *//**********FILL**********/_____ *fp;char ch, filename[10];printf("Please input the name of file: ");scanf("%s", filename); /* 输入字符串并赋给变量filename */ /* 以读的使用方式打开文件filename *//**********FILL**********/if((fp=fopen(filename, "_____")) == NULL){printf("Cannot open the file.\n");exit(0); /* 正常跳出程序 */}/* 关闭文件 *//**********FILL**********/_____;}【空1】错误【学生答案】_____ *fp;【参考答案】FILE============================================================【空2】错误【学生答案】if((fp=fopen(filename, "_____")) == NULL)【参考答案】r============================================================【空3】错误【学生答案】break;【参考答案】fclose(fp)============================================================/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:求一个3行4列矩阵的外框的元素值之和。

相关文档
最新文档