程序改错(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 四、设计性试:

C语言改错题-含答案

C语言改错题-含答案

第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个随机整数从小到大排序。

程序改错题

程序改错题

程序改错题共2题,每题5 分答题注意事项:调试程序中要修改、编译、运行,观察结果的正确性容易出现VC死掉现象,这时用Ctrl+Del+Alt组合键进入Windows任务管理器,结束VC进程。

就可以继续操作了。

第一题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求1到10的阶乘的和。

------------------------------------------------------*/#include "stdio.h"main(){ int i;float t,s=0;float fac(int n);/**********FOUND**********/for(i=1;i<10;i++)/**********FOUND**********/s=fac(i);printf("%f\n",s);}float fac(int n){ /**********FOUND**********/int y=1;int i;for(i=1 ;i<=n;i++)y=y*i;/**********FOUND**********/return;}修改后的程序:/*------------------------------------------------------【程序改错】功能:求1到10的阶乘的和。

------------------------------------------------------*/#include "stdio.h"main(){ int i;float t,s=0;float fac(int n);/**********FOUND**********/for(i=1;i<10;i++)/**********FOUND**********/s=s+fac(i);printf("%f\n",s);}float fac(int n){ /**********FOUND**********/int y=1;int i;for(i=1 ;i<=n;i++)y=y*i;/**********FOUND**********/return y;}老师得分:2分标准答案:第二题/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。

-程序改错部分试题及答案

-程序改错部分试题及答案

第1题/*i【程序改错】功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

------------------------------------------------------------------------------------ * #include <stdio. h>ttdefine N 11main(){int i,number,a[N] = {l,2,4,6,8t9t12,15,149,156);printf(^please enter an integer to insert in the array:\n n):/**********FOUND**********/scanf(”%d&number)printf("The original array:\rT);for(i=0;i<N-l;i++)printf (^%5(1 M,a[i]);printf(*\n n);/**********FOUND**********/for(i=N-l;i>二0;i--)if(number<=a[il)/**********FOUND**********/a[i]=a[i-l]:else{a[i+l]=number;/**********FOUND**********/exit;}if(number<a[0]) aL0]二number;printf(^The result array:\n”);for(i=0;i<N;i++)printf(n%5d w,a[il);printf(H\n H);}第2题/♦ ------------------------------------------------------------------------------------ 【程序改错】功能:求如下表达式:S = 1 + ——+ ——+ .................. + ------------1+2 1+2+3 1+2+3+ ......... +n------------------------------------------------------------------------------------ */ #include <stdio.h>main()int n;double fun ();printf ("Please input a nilmber:R):/**********FOUND**********/print("^d^.n);printf(H%10. 6f\n w,fun(n));}/♦♦********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********POUND**********/while(i=l;i<=n;i++);{t=0;for(j=l;j<=i;j++)t=t+j;/ **********P*OL1ND**********/=s+l/t;}return s;}第3题/* ---------------------------------------------------------- 【程序改错】功能:判断m是否为素数,若是返回1,否则返回0。

计算机等级考试二级C语言程序改错题(一)

计算机等级考试二级C语言程序改错题(一)

一、下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。

例如,当s中的数为123456789时,t中的数为2468。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>// ****found****void proc(long s,long *t){long sl=10;s/=10;*t=s%10;// ****found****while (s>0){s=s/100;*t=s%10*sl+*t;sl=sl*10;}}int main(){long s,t;printf("Please enter s:");scanf("%ld",&s);proc(s,&t);printf("The result is:%ld\n",t);return 0;}参考答案:(1)错误:void proc(long s,long t)正确:void proc(long s,long *t)(2)错误:while (s<0)正确:while (s>0)【解析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。

因此“void proc(long s,long t)”应改为“void proc(long s,long *t)”;要从低位开始取出长整型变量s 中偶数位上的数,每次变量S要除以100,然后判断其是否大于0来决定是否要继续,因此“while(s>0)”。

给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>// ****found****void proc(double m[]){int i;for (i=0; i<10;i++){// ****found****m[i]=m[i]/5;}}int main(){int i;double m[10];printf("before calling\n");for (i=0;i<10;i++){m[i]=i+20;printf("%lf ",m[i]);}proc(m);printf("\nafter calling\n");for(i=0; i<10; i++)printf("%lf ",m[i]);printf("\n");return 0;}参考答案:(1)错误:int proc(int m[])正确:void proc(int m[])(2)错误:m[i]=m[i]%5;正确:m[i]=m[i]/5;【解析】由主函数中的函数调用可知,函数proc()没有返回值。

程序改错(1)

程序改错(1)

程序改错有情提示I的大写自己在VB中改下本人建议尽量别粘贴复制1 求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现Private Sub Form_Click()Dim i as Integer, s as Integer********FOUND*******For i =1 To 7 For i=1 To 7 Step2s=s+fact(i)********FOUND*******Public Function fact() Public Function fact(ByVal n As Integer ) Dim t as Integer,i as Integer********FOUND*******Fact=I fact=t2 求s=2!+4!+6!+8!,阶乘的计算用Function过程fact实现Private Sub Form_Click()Dim i as integer, s as Long********FOUND*******For i=2 To 8 For i=2 TO 8 Step 2s=s+fact(i)********FOUND*******Public Function fact() Public Function fact(ByVal n As Integer ) Dim as Long********FOUND*******fact=I Fact=tEnd Function3 程序功能为打印下列图形:**********Private Sub Form_Click()ClsDim i As IntegerDim j As Integer********FOUND*******For i = 1 To 7 For i =1 To 5********FOUND*******For j =1 To 5 For j = 1 To iPrint”*”********FOUND*******Next I Next jPrintNext iEnd Sub4 在窗体上有两个命令按钮和一个文本框,名称分别为村民dstart(“开始”),cmdend(“结束”)和Text1.文本框Text1中的字符个数不超过200个.程序刚开始运行时,”结束”按钮成灰色,单击”开始”按钮后,将文本框Text1.Text中的字符按其ASCII码值由大到小自左而右重新组合,并在窗体上输出重组后的字符串,同时使”结束”按钮能响应而”开始”按钮不能响应. Private Sub Form_load()********FOUND*******Cmdend.Enabled=True Cmdend.Enabled= FalseEnd Sub********FOUND*******For I =0 To n-1 For I =1 To n-1p=IFor j=I+1 To n********FOUND*******If a(p)<a(j) Then j=p If a(p)<a(j) Then p=jNext jIf p<> Then t=a(I): a(I)=a(p): a(p)=t5 本程序将一个大于100的偶数n分解为两个素数之和,其中nflag逻辑函数用于判断自然数x是否为素数Private Sub Form_Click()Dim n As Integer, x As Integer ,y As Integern=Val(InputBox(“请输入一个大于100的偶数”,”输入数据”,100))For x=3 To n\2 Step 2********FOUND*******If x=0 Then If nflag(x) Theny=n-x********FOUND*******If nflag(x) Then If nflag(y) ThenForm1.Print n;”=”;x;”+”;yExit ForEnd If********FOUND*******If x Mod k=0 Then flag = True If x Mod k=0 Then flag= FalseK= k+1Loop6 本程序功能用于将学生学过得单词在列表框中显示出来。

【550】程序改错程序改错【1】程序功能已知24有8个正整数因子1224而24正好被其因子。。。

【550】程序改错程序改错【1】程序功能已知24有8个正整数因子1224而24正好被其因子。。。

程序改错【1】程序功能:已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。

求[100,300]之间能被其因子数目整除的数中最大的数。

程序中有两行有错误。

改正错误,使它能输出正确的结果。

Private Sub Command1_Click() Dim N As Integer Dim s As Integer Dim i As Integer For N = 300 To 100 s = 0 For i = 1 To N If N Mod i = 0 Then s = s + 1 End If Next i If s Mod N = 0 Then Print N Exit For End If Next N End Sub【296 】【2】程序功能:求这样的一个三位数,其个位数不大于2。

若将个位数移动到百位之前(如:321移成132),新三位数大于原三位数的两倍。

程序中有两行错误,改正错误,使程序能输出正确的结果。

Private Sub Command1_Click() For i = 0 To 9 For j = 0 To 9 For k = 0 To 9 n = 100 * i + 10 * j + k m = 100 * k + 10 * i + j If m >= 2 * n Then Print n Next k Next j Next i End Sub【102】【3】程序功能:有一堆桃子(个数不超过1000),如果分成4个一组余2个;7个一组余3个; 9个一组余5个。

求这堆桃子的个数有几种可能。

程序中有错误,改正错误,使程序能输出正确的结果。

Private Sub Command1_Click() For x = 1 To 1000 If x Mod 4 = 2 Or x Mod 7 = 3 Or x Mod 9 = 5 Then i = i + 1 End If Next x Print i End Sub【4】【4】程序功能:求个位数是6,且能被3整除的所有四位数之和。

程序改错(自我总结)answer

程序改错(自我总结)answer

1、给定程序modi.c中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。

#include <stdio.h>void fun(){int a[3][3],sum;int i,j;/************found************/ _______; sum=1for (i=0;i<3;i++){ for (j=0;j<3;j++)/************found************/ scanf("%d" a[i][j]);scanf("%d",&a[i][j]);2、给定程序modi.c中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

double fun(int n){double t,sn=1.0;int i,j;for(i=1;i<n;i++){t=1.0;for(j=1;j<=i;j++)t=t*j;sn+=1.0/t;}return sn;}确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/************found************/if (i%k!=0) if(i%k==0)break;/************found************/if (k<i) if (k==i)3、给定程序modi.c中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。

/************found************/ p=j p=j ;for (i=j;i<n;i++)if(a[i]<a[p])/************found************/p=j; p=i;4、给定程序modi.c中fun函数的功能是:根据整型参数m,计算如下公式的值。

(完整word版)C语言程序改错总结

(完整word版)C语言程序改错总结

难度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. 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列矩阵的外框的元素值之和。

相关文档
最新文档