C语言程序改错2

合集下载

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]);

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

二级C语言上机改错题 常见错误类型

二级C语言上机改错题 常见错误类型

二级C语言上机改错题常见错误类型※(1) 漏写“ ; ”(所有完整语句后面都应该有“ ; ”)※(2) 数据类型定义错误(包括int, long, char, float, double, 字符串, 数组和指针等类型互相不能用错)(3) 定义函数时后面多加“ ; ”(如: void fun (char *s); 后面的分号不能加)※(4) 当判断相等的时候,误把“ == ” 写成赋值的“ = ”※(5) 函数类型定义错误(比如说自定义一个没有返回值的函数却定义成int fun() )※(6) 条件语句漏写“ () ”(包括for语句、if语句、while语句等等)(7) 符号写错(如除法的“ / ” 写成“\” 等等)(8) 字符串符号" " 与字符符号' ' 弄错(9) 函数行参类型定义错误(比如:本意为带入指针类型的实参,却写成 void fun (char s) 正确应为 void fun (char *s) )(10) 漏写大括号“ { ” 或“ } ”中的一个第二大类:逻辑错误(此类错误都和题意有关,需结合具体题意改正)※(1) 大小关系弄反(比如本该为if(x<y) ...... 误写成if(x>y) ...... )(2) “ ++ ” 和“ -- ” 弄反(比如本该为 for(i=j; i!=k; i++) 误写成for(i=j; i!=k; i--) )(3) 变量赋值错误(包括赋初值错误或没有赋初值等,如:依题意,本该赋值 int i=0; 却赋错值 int i=1; )(4) 依次载入数据时没有写“ ++ ” 或“ -- ”(如: for(i=0;i<n;i++) s[j++]=i; 写错成for(i=0;i<n;i++) s[j]=i; )※(5) 代换关系弄错(如: p=q; 误写成q=p; 或p=q+i; 误写成q=p+i; )(6) 循环中初值或终值写错(如:依题意应为 for(i=0; i<n; i++) ...... 写错为for(i=0; i<m; i++) ...... )(7) “ == ” 和“ != ”逻辑关系弄错(8) 逻辑与“ && ” 和逻辑或“ || ”弄错(9) 临界值弄错(如“ <= ” 和“ < ” 等)(10) 其他逻辑错误:原语句不符题意或与题意相悖的一切逻辑错误。

C语言程序改错2

C语言程序改错2
31有一数组内放10个整数要求找出最小数和它的下标然后把它和数组中最前面的元素即第一个数对换位置
1、以下程序的功能是求如 + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』 :1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或 s= s + 1.0 /t; 2、题目:函数 fun 的功能是:根据整型形参 m 的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 例如,若 m=5,则应输出:0.536389 『答案』 :1 for(i=2;i<=m;i++)或 for(i=2;i<m+1;i++) 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 3 return y; 或 return (y); 3、函数 fun 的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于 0.0001。 π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7 『答案』 :1 #include "math.h" 或 #include <math.h> 2 float s=0,t=1,p=1; 3 while(fabs(t)>1e-4)或 while(fabs(t)>0.0001) 4 printf("pi=%f\n", s * 4 ); 4、功能:计算正整数 num 的各位上的数字之积。例如,输入 252,则输出应该是 20。 『答案』 :1 long k=1; 或 long int k=1; 2 num/=10; 或 num=num/10; 3 scanf("%ld",&n); 4 printf("\n%ld\n",fun(n)); 5、功能: (与上题略有不同)计算正整数 num 的各位数字之积。例如,若输入:252,则输 出应该是:20。若输入:202,则输出应该是:0。 『答案』 :1 {long k=1; 2 num/=10; 或 num=num/10; 3 } while(num) ; 或 }while(num!=0); 或 }while(num>0); 6、题目:判断 m 是否为素数,若是返回 1,否则返回 0。 『答案』 :1 int fun( int m) 或 fun( int m) 2 for(i=2;i<m;i++) 3 if( m%i == 0 ) k=0; 4 return(k); 或 return k; 7、功能:找出大于 m 的最小素数,并将其作为函数值返回。 『答案』 :1 for(k=2;k<i;k++) 或 for(k=2;k<=i-1;k++) 或 for(k=2;k<=sqrt(i);k++) 2 if( i%k == 0 ) break; 或 if(!(i%k)) break; 3 if(i<=k)或 if( k == i ) 或 if(k>sqrt(i)) 4 return i; 或 return (i);

C语言计算机二级改错题

C语言计算机二级改错题

功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

------------------------------------------------------*/#include "stdio.h"#define N 11main(){int i,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf("please enter an integer to insert in the array:\n");/**********ERROR**********/scanf("%d",&number)printf("The original array:\n");for(i=0;i<N-1;i++)printf("%5d",a[i]);printf("\n");/**********ERROR**********/for(i=N-1;i>=0;i--)if(number<=a[i])/**********ERROR**********/a[i]>=a[i-1];else{a[i+1]=number;/**********ERROR**********/exit;}if(number<a[0]) a[0]=number;printf("The result array:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}1.scanf("%d",&number);2.for(i=N-2;i>=0;i--)for(i=N-2;0<=i;i--)3.a[i+1]=a[i];4.break;功能:用下面的和式求圆周率的近似值。

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));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;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));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(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}//注意:voidjhmaxmin(p,n)intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn)voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*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改错技巧

举例
MODI18
3. 整型数组处理错误
数组处理错误通常表现在数组元素下标的错误 表示上。 表示上。 数组元素的下标从0 数组元素的下标从0开始编号 在程序中使用数组,数组元素的下标变化规律 在程序中使用数组, 显得十分重要。 显得十分重要。
举例
MODI6
4. 字符串处理错误
字符数组中,数组元素下标出错; 字符数组中,数组元素下标出错; 单引号和双引号使用错误; 单引号和双引号使用错误;
运算符书写错误
– “=”和“==”的区别,前者是赋值运算符,后者是关系运算符; ==”的区别,前者是赋值运算符,后者是关系运算符; – “/”和“\”的区别,前者是除法运算,后者是转义字符的表示。 /”和 的区别,前者是除法运算,后者是转义字符的表示。
符号错误
– 字符常量用‘ ’括起来,字符串使用“”,不能混用; 字符常量用‘ 括起来,字符串使用“” 不能混用; “”, – “()”、“{}”、“[ ]”应成对出现,没有成对即出现错误。 {}”、 ]”应成对出现 没有成对即出现错误。 应成对出现, ()”
语句书写错误
– “;”是语句的组成部分,在语句结束时必须打上“;”,没有 是语句的组成部分,在语句结束时必须打上“ 就会出现错误。 “;”就会出现错误。
举例
MODI2
2.简单逻辑错误 2.简单逻辑错误
判断条件错。 判断条件错。
① 循环条件始终为“真”,导致程序出现死循环, 循环条件始终为“ 导致程序出现死循环, ② 循环条件第一次判断就为假,循环一次都没有执行,从而出 循环条件第一次判断就为假,循环一次都没有执行, 现错误结果。 现错误结果。 ③ 该用“&&”运算,却用成了“||”;该用“>”,却用成了“<” 该用“&&”运算 却用成了“||”;该用“>”,却用成了“ 运算, 等

C语言程序改错题

C语言程序改错题

第1题程序改错功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面;例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”;------------------------------------------------------/ include <>include <>include <>void fun char s, char t{/FOUND/int i;sl = strlens;for i=0; i<sl; i++/FOUND/ti = ssl-i;for i=0; i<sl; i++tsl+i = si;/FOUND/t2sl = "0";}main{char s100, t100;printf"\nPlease enter string s:"; scanf"%s", s;funs, t;printf"The result is: %s\n", t;}答案:1. int i,sl;2. ti = ssl-i-1;3. t2sl = '\0'; 或 t2sl = 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 = doublea / 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 funint n2. s = s + doublea / b; 或 s += doublea / b; 或 s += a /doubleb; 或 s=s+a/doubleb;3. return s;第3题程序改错功能:读入一个整数m 5≤m≤20 ,函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序;例如:若输入整数7,则应输出:3 10 17 28 32 36 47;------------------------------------------------------/include ""include <>sortpb int n, int a{/FOUND/int i, j, p, tfor j = 0; j < n-1 ; j++{p = j;for i = j + 1; i < n ; i ++/FOUND/if ap > aj p = i;/FOUND/if p == j{t = aj;aj = ap;ap = t;}}}double rnd{static t = 29, c = 217, m = 1024, r = 0;r = rt + c %m; return double r/m ;}getarr int n, int x{int i;for i = 1; i <= n; i++, x++ x = int 50rnd ;}putarr int n, int z{int i;for i = 1; i <= n; i++, z++{printf "%4d", z ;if i%10 printf "\n" ;}printf"\n";}main{int aa20, n;printf "\nPlease enter an integer number between 5 and 20: " ; scanf "%d", &n ;getarr n, aa ;printf "\n\nBefore sorting %d numbers:\n", n ; putarr n, aa ; sortpb n, aa ;printf "\nAfter sorting %d numbers:\n", n ; putarr n, aa ;}答案:1. int i, j, p, t;2. if ap > ai p = i;3. if p = j第4题程序改错--------------------------------------------------------功能:以下程序能求出11+22+......+nn<=1000中满足条件的最大的n;------------------------------------------------------/include <>include ""main{int n,s;/FOUND/s==n=0;/FOUND/whiles>1000{++n;s+=nn;}/FOUND/printf"n=%d\n",&n-1;}答案:1. s=n=0;2. whiles<=10003. printf"n=%d\n",n-1;第5题程序改错-------------------------------------------------------- 功能:求出a所指数组中最大数和次最大数规定最大数和次最大数不在a0和a1中,依次和a0、a1中的数对调;例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8, 输出的结果为:12、11、7、0、3、6、9、10、5、8;------------------------------------------------------/ include <>include <>define N 20void fun int a, int n{int k,m1,m2,max1,max2,t;max1=max2= -32768; m1=m2=0;for k = 0; k < n; k++if ak>max1{max2 = max1; m2 = m1;max1 = ak; m1 = k;}/FOUND/else if ak>max1{max2 = ak; m2 = k; }/FOUND/t = a0;am1=a0;am1 = t;/FOUND/t = a1;am2=a1;am2 = t;}main{int bN={7,10,12,0,3,6,9,11,5,8}, n=10, i;for i = 0; i<n; i++printf"%d ",bi;printf"\n";fun b, n;for i=0; i<n; i++printf"%d ",bi;printf"\n";}答案:1. else if ak>max22. t = a0; a0=am1; am1 = t;3. t = a1; a1=am2; am2 = t;第6题程序改错-------------------------------------------------------- 功能:读入一个整数k2≤k≤10000,打印它的所有质因子即所有为素数的因子;例如:若输入整数:2310,则应输出:2、3、5、7、11;请改正程序中的语法错误,使程序能得出正确的结果;------------------------------------------------------/ include ""include <>/FOUND/isPrimeinteger n{int i, m;m = 1;for i = 2; i < n; i++/FOUND/if n%i{m = 0;break;}/FOUND/return n ;}main{int j, k;printf "\nPlease enter an integer number between 2 and 10000: " ; scanf "%d", &k ;printf "\n\nThe prime factors of %d is are :", k ;for j = 2; j <= k; j++if k%j&& IsPrimej printf "\n %4d", j ;printf"\n";}答案:1. IsPrimeint n2. ifn%i3. return m ;第7 题程序改错--------------------------------------------------------功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素;------------------------------------------------------/include <>main{int a10;void input;void output;void max_min;inputa,10;max_mina,10;outputa,10;}void inputint arr,int n{int p,i;p=arr;printf"please enter 10 integers:\n";fori=0;i<n;i++/FOUND/scanf"%d",p;}void max_minint arr,int n{int min,max,p,t;min=max=arr;forp=arr+1;p<arr+n;p++/FOUND/ifp<maxmax=p;else ifp<min min=p;t=arr;arr=min;min=t;/FOUND/ifmax=arr max=min;t=arr+n-1;arr+n-1=max;max=t;}void outputint arr,int n{int p,i;p=arr;printf"The changed array is:\n";/FOUND/whilei=0;i<n;i++printf"%3d",p++;printf"\n";}答案:1. scanf"%d",p ++; 或 scanf"%d",arri; 或 scanf"%d",p+i; 或 scanf"%d",arr+i;2. ifp>max 或 ifmax<p3. if max == arr4. fori=0;i<n;i++ 或 fori=0;n>i;i++ 或 forp=arr;p<arr+n; 或 fori=0;i<=n-1;i++ 或fori=0;n-1>=i;i++ 或 forp=arr;p<=arr+n-1; 或 forp=arr;arr+n-1>=p;第8题程序改错--------------------------------------------------------功能:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL;例如:当字符串中的内容为:"abcdabfabcdx",t中的内容为:"ab"时,输出结果应是:abcdx;当字符串中的内容为:"abcdabfabcdx",t中的内容为:"abd"时,则程序输出未找到信息:not found;------------------------------------------------------/include <>include <>include <>char fun char s, char t{char p , r, a;/FOUND/a == NULL;while s{p = s;r = t;while r/FOUND/if r == p{r++;p++;}elsebreak;/FOUND/if r ='\0' a = s;s++;}return a ;}main{char s100, t100, p;printf"\nPlease enter string S :"; scanf"%s", s ;printf"\nPlease enter substring t :"; scanf"%s", t ;p = fun s, t ;if pprintf"\nThe result is : %s\n", p;elseprintf"\nNot found \n" ;}答案:1. a = NULL;2. if r == p3. if r == '\0' a = s;第9题程序改错-------------------------------------------------------- 功能:从m个学生的成绩中统计出高于和等于平均分的学生人数, 此人数由函数值返回;平均分通过形参传回,输入学生成绩时,用-1结束输入,由程序自动统计学生人数;例如:若输入 8 名学生的成绩,输入形式如下:60 72 98 88 64 -1结果为:The number of students :4Ave = ;------------------------------------------------------/include <>include <>define N 20int fun float s, int n, float aver{float av, t ; int count , i;count = 0; t=;for i = 0; i < n; i++ t += s i ;av = t / n; printf "ave =%f\n",av ;for i = 0; i < n; i++/FOUND/if s i < av count++;/FOUND/aver = av;/FOUND/return count}main{float a, s30, aver;int m = 0;printf "\nPlease enter marks -1 to end:\n ";scanf"%f",&a ;while a>0{sm = a;m++;scanf "%f", &a ;}printf "\nThe number of students : %d\n" , fun s, m, &aver ; printf "Ave = %6.2f\n",aver ;}答案:1. if s i >= av count++;2. aver = av;3. return count;第10题程序改错--------------------------------------------------------功能:根据以下公式求π值,并作为函数值返回;例如:给指定精度的变量eps输入时,应当输出Pi=;π 1 1 2 1 2 3 1 2 3 4— = 1 + — + — x — + — x — x — + — x — x — x — + ...2 3 3 5 3 5 7 3 5 7 9------------------------------------------------------/include <>double fundouble eps{double s,t;int n=1;s=;t=1;/FOUND/whilet<=eps{s+=t;/FOUND/t=n/2n+1t;n++;}/FOUND/return s;}main{double x;scanf"%lf",&x;printf"\neps=%lf,Pi=%lf\n\n",x,funx;}答案:1. whilet>eps 或 whileeps<t 或 whilet>=eps 或 whileeps<=t 或 while t>eps 或 while eps<t 或 while t>=eps 或 while eps<=t2. t=tn/2n+1; 或 t=n/2n+1t; 或 t=n/2n+t; 或 t=n/n+1t; 或 t=n/n+t; 或 t=n/n+t;3. return 2 s ; 或 return 2s; 或 return2s; 或 return s2; 或 returns2;第11题程序改错--------------------------------------------------------功能:实现两个字符串的连接;例如:输入dfdfqe和12345时,则输出dfdfqe12345.------------------------------------------------------/include <>main{char s180,s280;void scatchar s1,char s2;getss1;getss2;scats1,s2;putss1;}void scat char s1,char s2{int i=0,j=0;/FOUND/whiles1i= ='\0'i++;/FOUND/whiles2j= ='\0'{/FOUND/s2j=s1i;i++;j++;}/FOUND/s2j='\0';}答案:1. while s1i = '\0' 或 whiles1i 或 while s1i = 02. while s2j = '\0' 或 whiles2j 或 while s2j = 03. s1i=s2j;4. s1i='\0'; 或 s1+i='\0'; 或 s1i=0;第12题程序改错-------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积;例如:输入圆的半径值:输出为:s = ;------------------------------------------------------/ include <>include <>/FOUND/double fun r{double s;/FOUND/s=1/2 r r;/FOUND/return r;}main{float x;printf "Enter x: ";scanf "%f", &x ;printf " s = %f\n ", fun x ;}答案:1. float funfloat r 或 double funfloat r 或 double fundouble r2. s=2 r r;3. return s;第13题程序改错--------------------------------------------------------功能:利用二维数组输出如图所示的图形;------------------------------------------------------/include <>include <>/FOUND/define N= 7main{char aNN;int i,j,z;fori=0;i<N;i++forj=0;j<N;j++/FOUND/aij=;z=0;fori=0;i<N+1/2;i++{forj=z;j<N-z;j++aij='';z=z+1;}z=0;fori=N+1/2;i<N;i++{z=z-1;forj=z;j<N-z;j++aij='';}fori=0;i<N;i++{forj=0;j<N;j++/FOUND/printf"%d",aij;printf"\n";}}答案:1. define N 72. aij=' ';3. z=z-1; 或 z--; 或 z=-1+z;4. printf"%c",aij;第14题程序改错-------------------------------------------------------- 功能:读取7个数1-50的整数值,每读取一个值,程序打印出该值个数的;------------------------------------------------------/ include <>main{int i,a,n=1;/FOUND/whilen<7{do{scanf"%d",&a;}/FOUND/whilea<1&&a>50;/FOUND/fori=0;i<=a;i++printf"";printf"\n";}}答案:1. whilen<=7 或 whilen<82. whilea<1||a>50; 或 whilea>50||a<1;3. fori=1;i<=a;i++。

C语言程序改错

C语言程序改错

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语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));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;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));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(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}//注意:voidjhmaxmin(p,n)intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn)voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*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语言程序改错题

第 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语言二级改错题总结

二级C语言上机考试改错题总结一、上机改错题的特点和注意事项1.上机改错的试题中通常包含两个(或三个)错误需要修改。

2.试题中用"******found******/"来提示在下一行(或下面第二行)有错。

3.错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处。

4.特别要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要自己另编程序。

二、上机改错测试时,建议按以下步骤进行1.首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。

2.调出源程序后,审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做到心里有数。

3.先对测试程序进行检查是否有语法错误。

当编译提示有语法错时,可参考编译提示来查找并改正错误。

4.当不再出现语法错时,执行程序,按照试题的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。

5.当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定错误所在。

例如,题目要求数据按由小到大排序,而结果数据是按由大到小进行了排序,问题可能出现在条件判断上。

又如,输出的字符串比预期的短,就有可能字符串的结束标志放错了位置。

再如做循环的时候数组上限下限错误了,基数是从0开始而不是1开始的。

修改程序中的逻辑错时,要求考生认真读懂程序代码。

6.修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。

三、改错题的错误主要分为以下几类:1、if或while语句若错误行是if或者while语句,则要注意以下点:1)首先判断是否正确书写if或while关键字;/************found************/If(substr[k+1]=='\0')/************found************/wihle( q>p )2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号;if后面必须加上小括号/************found************/if n = = 03)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符;void fun(char *p, char *b)/************found************/b[k]=p;4)若if条件表达式中只有一个等于号即数学等号(=),则要改写成两个等于号即逻辑等号(= =);/************found************/if (d%2=0)5)若if条件表达式为其他的比较运算符,则一般是进行逆转或加一个等于号;/**********found**********/if( *a>*c )2、for语句若错误行是for语句,则要注意以下几点:1)首先判断for有没有书写正确;2)然后看for中的表达式是不是用分号(;)隔开,若不是则改为分号。

计算机二级c语言程序设计题评分标准

计算机二级c语言程序设计题评分标准

计算机二级c语言程序设计题评分标准
计算机二级C语言程序设计题评分标准如下:
1. 选择题:共40题,每题1分,按标答给分。

2. 程序填空:共3处空,每空6分,共18分。

按标答给分,如果和标答的写法不一样,就算对的也没有分。

每一空有每一空的分数,做对一空就给6分。

3. 程序改错:共2处错误,每处9分,共18分。

都是/found/下面的一行有错误,按标答给分,如果和标答的写法不一样,就算对的也没有分。

4. 程序编制题:共24分。

按程序结果给分。

计算机二级成绩等第分为优秀、良好、及格、不及格四等。

100-90分为优秀,89-80分为良好,79-60分为及格,59-0分为不及格。

C语言程序改错

C语言程序改错

/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:给一个不多于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语言程序改错题(必过)

目录题目一前N项和问题 (3)题目二SS字符串问题 (4)题目三变量互换问题1 (4)题目三变量互换问题2 (5)题目三变量互换问题3 (5)题目四最大公约数问题 (6)题目五长数变短数1 (7)题目五长数变短数2 (7)题目五长数变短数3 (8)题目五长数变短数4 (9)题目五长数变短数5 (9)题目五长数变短数6 (10)题目五长数变短数7 (11)题目五长数变短数8 (11)题目五长数变短数9 (12)题目六斐波拉契数列 (13)题目七链表1 (14)题目七链表2 (15)题目七链表3 (16)题目七链表4 (17)题目八非素数问题 (19)题目九排序问题1 (19)题目九排序问题2 (20)题目九排序问题3 (21)题目九排序问题4 (22)题目九排序问题5 (23)题目九排序问题6 (24)题目九排序问题6 (25)题目九排序问题7 (26)题目十平均值问题1 (26)题目十平均值问题2 (27)题目十平均值问题3 (28)题目十平均值问题4 (29)题目十平均值问题5 (30)题目十一字符串连接1 (30)题目十一字符串连接2 (31)题目十一字符串连接3 (32)题目十一字符串连接4 (33)题目十二求和问题1 (33)题目十二求和问题2 (34)题目十二求和问题3 (35)题目十二求和问题4 (36)题目十二求和问题6 (38)题目十二求和问题7 (38)题目十二求和问题8 (39)题目十二求和问题9 (39)题目十二求和问题10 (40)题目十二求和问题11 (41)题目十二求和问题12 (42)题目十二求和问题13 (42)题目十二求和问题14 (43)题目十二求和问题15 (44)题目十二求和问题16 (44)题目十二求和问题17 (45)题目十二求和问题18 (46)题目十二求和问题19 (46)题目十三整数问题 (47)题目十四字符串逆置 (48)题目十五进制转换1 (48)题目十五进制转换2 (49)题目十六素数问题1 (50)题目十六素数问题2 (50)题目十六素数问题3 (51)题目十六素数问题4 (52)题目十六素数问题5 (53)题目十七删除字符串中指定项1 (53)题目十七删除字符串中指定项2 (54)题目十八最小公倍数问题 (55)题目十九字符串替换问题1 (55)题目十九字符串替换问题2 (56)题目二十找最长字符串 (58)题目二十一数组问题1 (58)题目二十一数组问题2 (59)题目二十一数组问题3 (60)题目二十二求平方根问题 (61)题目二十三短字符串变长字符串1 (62)题目二十三短字符串变长字符串2 (62)题目二十三短字符串变长字符串3 (63)题目二十三短字符串变长字符串4 (64)题目二十四字符串s问题1 (64)题目二十四字符串s问题2 (65)题目二十四字符串s问题3 (66)题目二十五求方程的根 (67)题目二十六求阶乘1 (68)题目二十六求阶乘2 (69)题目二十七方阵问题 (70)题目二十八查找字符串中某元素的数目 (71)题目二十九最大值问题1 (72)题目二十九最大值问题2 (72)题目二十九最大值问题3 (73)题目三十大小写转换1 (74)题目三十大小写转换2 (75)题目三十大小写转换3 (76)题目三十一:计算数字位数的问题1 (77)题目三十一:计算数字位数的问题2 (78)题目三十一:计算数字位数的问题3 (79)题目三十一:计算数字位数的问题4 (80)题目三十二统计字母数字个数问题1 (81)题目三十二统计字母数字个数问题2 (82)题目三十二统计字母数字个数问题3 (83)题目三十二统计字母数字个数问题4 (83)题目三十三对角线问题 (84)题目三十四比较字符串大小 (85)题目一前N项和问题.下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。

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

C语言程序设计改错信息

C语言程序设计改错信息
十二、123页:将图5-2的地址法列中:&a[0]+0、&a[0]+1、&a[0]+2、&a[1]+0、&a[1]+1、&a[1]+2的&全部删除
十三、159页:删除第7行:函数名就是这个函数源代码在内存中的起始地址,编译器将不带“()”的函数名解释为该函数的入口地址.中的“源”字
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有
printf("%d,%o,%u\n",a,a,A.。
}
改为
6.下面程序输出结果是().
#include <stdio.h>
main()
{
int a=-1。
printf("%d,%o,%u\n",a,a,a)。
}
第76页
10.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是().
void main()
{
int a。
float b,c。
scanf("%2d%3f%4f",&a,&b,&c)。
printf("\na=%d,b=%.1f,c=%.1f\n",a,b,c)。
}
第76页
5.执行下面程序:
#include <stdio.h>
main()
{
int a=0,b=9。
printf("a=%%d,b=%%d\n",a,B.。
s=s+i。
printf("s=%d\n",s)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、以下程序的功能是求如下表达式:1 1 1S = 1 + ——+ ———+ ...... + ———————1+2 1+2+3 1+2+3+......+n『答案』:1 scanf("%d",&n);2 float fun(int n)3 for(i=1;i<=n;i++)4 s+=1.0/t 或s= s + 1.0 /t;2、题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。

1 1 1t = 1- ——- ——- ... - ——2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 『答案』:1 for(i=2;i<=m;i++)或for(i=2;i<m+1;i++)2 y-=1.0/(i*i); 或y=y-1.0/(i*i);3 return y; 或return (y);3、函数fun的功能是:用下面的和式求圆周率的近似值。

直到最后一项的绝对值小于等于0.0001。

π 1 1 1—= 1 - —+ —- —+ ...4 35 7『答案』:1 #include "math.h" 或#include <math.h>2 float s=0,t=1,p=1;3 while(fabs(t)>1e-4)或while(fabs(t)>0.0001)4 printf("pi=%f\n", s * 4 );4、功能:计算正整数num的各位上的数字之积。

例如,输入252,则输出应该是20。

『答案』:1 long k=1; 或long int k=1;2 num/=10; 或num=num/10;3 scanf("%ld",&n);4 printf("\n%ld\n",fun(n));5、功能:(与上题略有不同)计算正整数num的各位数字之积。

例如,若输入:252,则输出应该是:20。

若输入:202,则输出应该是:0。

『答案』:1 {long k=1;2 num/=10; 或num=num/10;3 } while(num) ; 或}while(num!=0); 或}while(num>0);6、题目:判断m是否为素数,若是返回1,否则返回0。

『答案』:1 int fun( int m) 或fun( int m)2 for(i=2;i<m;i++)3 if( m%i == 0 ) k=0;4 return(k); 或return k;7、功能:找出大于m的最小素数,并将其作为函数值返回。

『答案』:1 for(k=2;k<i;k++) 或for(k=2;k<=i-1;k++) 或for(k=2;k<=sqrt(i);k++)2 if( i%k == 0 ) break; 或if(!(i%k)) break;3 if(i<=k)或if( k == i ) 或if(k>sqrt(i))4 return i; 或return (i);8、功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。

k的值由主函数传入,若k的值为500,则函数值为4622。

『答案』:1 while ( (k>=2) && (mc<10) )或while ( (k>=2) && (mc<=9) )2 if(!(k%17!=0 && k%13!=0 )) 或if( ( k%13 == 0 ) || ( k%17 == 0 ) )3 k--; 或k=k-1; 或k-=1; 或--k;4 return m; 或return(m);9、在一个一维整型数组中找出其中最大的数及其下标。

程序中共有4条错误语句,请改正错误。

『答案』:1 int fun(int *a,int *b,int n)2 *b=c-a;}3 scanf("%d",&a[i]); 或scanf("%d", a + i );4 max=fun(a,&p,N);10、通过键盘输入10个整数为一维数组各个元素赋值;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出调整后的数组元素。

『答案』:1 scanf("%d",p++); 或scanf("%d",&arr[i]); 或scanf("%d",p+i);2 if(*p>*max) 或if(*max<*p)3 if( max == arr )4 for(i=0;i<n;i++)或for(p=arr;p<arr+n;)11、用起泡法对10个整数从小到大排序。

『答案』:1 for(j=0;j< n -1 -i ;j++)2 if(x[j]>x[ j + 1 ]) 或if(x[ j + 1] <x[j])3 scanf("%d",&a[i]); 或scanf("%d",a+i);4 sort(a,n); 或sort(&a[0],n);12、在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

『答案』:1 scanf("%d",&number);2 for(i=N-2;i>=0;i--) 或for(i=N-2;0<=i;i--)3 a[ i + 1 ]=a[i];4 break;}13、将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。

『答案』:1 { char *p1,*p2; 或{ char *p2,*p1;2 p1= str1 + m -1; 或p1=-1+ str1 + m ;3 while(*p1) 或while(*p1!='\0')4 strcopy(str1,str2,m);14、将一个字符串中的大写字母转换成小写字母。

例如:输入aSdFG输出为asdfg。

『答案』:1 char fun(char *c)2 return *c; 或return (*c); 或return(*c);3 { char s[81],*p=s;4 putchar(*p); 或printf("%c",*p);15、题目:将若干学生的档案存放在一个文件中,并显示其内容。

『答案』:1 { struct student *p;2 FILE *fp;3 for(p=stu;p< stu + 3 ;p++) 或for(p=stu; stu + 3 >p;p++)4 printf("%4d %-10s %4d\n",(*p).num ,p->name,(*p).age);16、题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。

『答案』:1 for(i=1;i<=10;i++) 或for(i=1;i<11;i++)2 s= s + fac(i) ; 或s+=fac(i);3 float y=1.0; 或float y=1;4 return y; 或return(y);17、题目:函数fun的功能是:求1到20的阶乘的和。

『答案』:1 t=1; 或t=1.0;2 t= t * j ; 或t*=j;3 s= s + t ; 或s+=t;4 printf("jiecheng=%f\n",s);18、函数fun的功能是:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

『答案』:1 printf("%8.0f",f1); 或printf("%f",f1);2 for(i=1;i<20;i++)或for(i=2;i<=20;i++)或for(i=1;i<=19;i++)3 f1=f2;4 f2=f3;19、函数fun的功能是:实现交换两个整数的值。

例如给a和b分别输入3和6 ,输出为a=6 b=3『答案』:1 void fun (int *a,int *b) 或fun (int *a,int *b)2 t=*a;3 *a=*b;4 *b=t;20、已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项的和。

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

输出由主函数完成。

例如,当n=10时,程序的输出结果应为23.197745。

『答案』:1 double fun (int n)2 sum=1.0; 或sum=1;3 s2=1.0; 或s2=1;4 for(k=4;k<=n;k++)或for(k=4;k<n+1;k++)21、函数fun的功能是:根据以下公式求π值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。

π 1 1 2 1 2 3 1 2 3 4— = 1 + — + — x — + — x — x — + — x — x — x — + ...2 3 3 5 3 5 7 3 5 7 9『答案』:1 while(t>eps) 或while (t>=eps)2 t=t*n/(2*n+1); 或1.0*n/(2*n+1)*t;3 return 2 * s ; 或return (2*s);22、题目:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。

例如,若给num1和num2分别输入49和21,则输出的最大公约数为7。

『答案』:1 a=b;2 b=t;3 r=a%b;}4 return b; 或return (b); 或return(b);23、题目:在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。

下列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

例如,数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。

『答案』:1 double sum=0.0; 或double sum=0;2 while( s[i] != 0 )或while(s[i])3 sum/=c; 或sum=sum/c;4 return sum; 或return (sum);24、fun函数的功能是:给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。

相关文档
最新文档