版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、9第一套一、改错题1 题目要求下列给定程序中函数fun的功能是:计算函数F(x, y, z)= (x + y)/(x y) + (z+ y)/(z y)的值。其中x和y的值 不相等,z和y的值不相等。例如,当x的值为9, y的值为11, z的值为15时,函数值为一 3.50。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件 MODI1 .C中,不得增行或删行,也不得更改程序的结构。#i nclude #in elude #in elude #defi ne FU(m, n) (m/n) float fun (float a3float b,float c) float valu
2、e;fo un dvalue=FU(a+b,a-b)+FU(c+b,c-b);Return(Value);mai n()float x,y,z,sum;prin tf(l nput x y z:”);scan f(”f%f%f, &x, &y,& z);prin tf(,x=%f,y=%f,z=%fn,x,y,z);if (x=y|y=z)pri ntf(Data error!nH);exit(0); sum=fu n(x,y,z); printf(*The result is : %5.2fn,sum);2 算法分析 #define FU(m,n) (m/n) 错误这样定义 FU (m,n)
3、造成语句 value=FU(a+b,a-b)+FU(c+b,c-b)执行为 value=(a+b/a-b)+(c+b/c-b) ,所以应该将语句 #define FU(m,n) (m/n)改为 #define FU(m,n) (m)/(n) 语句Retum(Value);错误C语言中大小写字母有不同的含义,此处希望执行返回value的值的操作所以应该改为return(value);二、填空题1 .题目要求下列给定程序中,函数fun的功能是:有NXN矩阵,以主对角线为对称线,对称元素相加并将结果 存放在左下三角元素中,右上三角元素置为0。例如,若N二3,有下列矩阵123456789计算后结果为1
4、 0 06501014请在程序的下划线处填入正确的内容并把下划线删除。使程序得出正确的结果。注意:部分源程序在文件BLANK1.C 中。不得增行或删行,也不得改程序的结构!#i nelude #defi ne N 4void fun(int (*t) 1_ )inti.j;for(i=1; iN; i+) for(j=0;ji; j+)2_3_ =0;mai n()int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10, i, j; prin tf(nThe origi nal array:1 nn);for(i=0; iN; i+)for
5、(j=0;jN;j+) prin tf(-%2d”,tij);prin tf(”n”);fun (t);prin tf(nThe result is:n);for(i=0; iN; i+)for(j=0;jN;j+) prin tf(H%2d M,ti0);prin tf(”n”);2算法分析 N形参t被定义为行数组指针变量,它指向包含N个元素的一位数组。 tij以主对角线为对称线,对称元素相加的值应该赋予左下三角元素的tij。 皿根据题意,为零的应该是右上三角元素的值。三、编程题1 题目要求规定输入的字符串中只包含字母和号。编写函数fun,其功能是:将字符串中的前导.号全部刪除,中间和尾部的
6、号不删除。例如,字符串中的内容为:*a*bc*DEF*G*,删除后字符串中的内容应当是:A*BC*DEF*G*编写函数时,不得使用 C语言提供的字符串函数。注意:部分源程序在文件PROG1.(中。请勿改动主函数main和其它函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。#i nelude void fun( char *a ) mai n() char s81;void NONO ();prin tf(E nter a stri ng:rT );gets(s);fun( s);printf(The string after deleted:n);puts(s);NONO()
7、;void NONO()/本函数用于打开文件,输入数据,调用函数,输出数据,矢闭文件。*/FILE *in, *out;int i ; char s81;in = fopen(“in.datTr”);out = fopen(nout.dat,7,wn);for(i = 0 ; i 10 ; i+) fscanf(in, ”s”, s);fun (s);fprin tf(out, ,%snH, s);fclose(i n);fclose(out);2 算法分析(1) 主要数据结构char *a(2) 算法描述 记录第一个非的符号的地址; 将包括第一个在内的非字符串全部赋予另一个数组。3 实现代码
8、void fun( char *a )char *p=a; while(*p=*) p+;for(;*p!=0:p+,a+)*a=*p;*a=,0,;4 程序调试及测试结果经运行程序调试,将出现的错误分析如下:(1) 编译错误(2) 连接错误(3) 运行错误经过修改程序测试结果正确,符合要求。第二套、改错题1 题目要求形成新的字符串,并取代下列给定程序中,函数fun的功能是:依次取出字符串中所有的数字字符 原字符串。请改正函数fun中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#in elude #in elude #in elu
9、de void fun( char *s) int i,j;for(i=0,j=0;si!= 0f; i+)*fo un dsD=si; *X-J*to un a*ysD= ovoid mai n()char item80;system(CLS);prin tf(nEn ter a stri ng: );gets(item); printf(nnThe string is:%sn”,item);fun( item);printf(HnnThe string of changing is :%sn,f5item);2算法分析 语句Sj=si;错误。程序在这里应该执行将是数字的字符赋予Sj并将j自
10、加1 ,所以这里应该改为 s j+ : =s : i : 语句sj= ” ”错误。这里应该是将字符0,赋予sj,而非字符串,所以应该改为s :j=0 *-、填空题1 .题目要求给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件 BLANK1 .C中。请勿改动main函数和其他函数中的任何内容,仅在函数 fun的横线上填入所编写的若干表达式或语句。#in elude f)/*fo un dvoid fun( char *s5
11、 int a, doublechar ch;fp = fope n(Hfile1.txtH, HwH); fprin tf(fp, %s %d %fnn, s, a, f);fclose(fp);fp = fope n(Hfile1 .txtH, HrH); prin tf(,fnThe result:nnH); ch = fgetc(fp);/*fo un dwhile (!feof(_2_) putchar(_3_ ; ch = fgetc(fp);putchar(frT); fclose(fp);mai n() char a10=Hello!n; double int b=12345;
12、c= 98.76; fun( a,b,c);2 算法分析 FILE *易知这里是为了定义文件指针fp,因此这里应该填FILE * ; fp这里是为了对该文件类型数据进行操作,因此填写fp ;此处应该填写ch。 ch为了实现用字符方式从此文本文件中逐个读入并显示在终端屏幕上,三、编程题1 题目要求请编写函数fun,该函数的功能是:将M亍N列的二维数组中的字符数据,按列的顺序依此放到一个字符串 中0例如,若二维数组中的数据为W W W WSSSSH H H H则字符串中的内容应是:WSHWSHWSHWSH注意:部分源程序在文件PR0G1.(中。请勿改动main函数和其他函数中的任何内容,仅在函数f
13、un的花括号中填入所编写的若干语句。#in clude#defi ne M3#defi ne N4void fun( char (*s)N,char *b) void mai n()FILE *wf;char a100,wMN= W, W, *W,,W,S, S, S,H; int i,j;prin tf(The matrix: nH);for(i=0;iM;i+)for(j=0;jN;j 卄)prin tf(n%3cH,wij);prin tf(HnH);fun( w,a);prin tf(The A stri ng:n!);puts(a);prin tf(unnn);严*$*$*$*wf=
14、fope nCout.dafVw); fprin tf(wf,”s“,a); fclose(wf); it*2算法分析(1) 主要数据结构char (*s)N,char *b(2) 算法描述将原数组行列互换后逐一记录至另一个以为数组,记录完成后将另一个数组的最后加上结束标志 0 。3 实现代码void fun(char (*s)N,char *b)int i,j,k=O;for(i=0;iN;i+)for(j=0;jvM;j+) bk+=sOi; bk=*O:4 程序调试及测试结果经运行程序调试,将出现的错误分析如下:(1) 编译错误(2) 连接错误(3) 运行错误经过修改程序测试结果正确,符
15、合要求。第三套一、改错题1 题目要求下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正 确的结果。注意:部分源程序在文件 MODI1 .C中,不得增行或删行,也不得更改程序的结构! #i nelude #in elude #defi ne MAXLINE 20 fun ( char *pstr)int i, j ; char *p ;for (i = 0 ; i 0)p = *(pstr + i);fo un d*(pstr + i) = pstr + j ;*(pstr + j) = p ; mai n() inti ;char *pstr6
16、, strMAXLINE;for(i = 0; i 6 ; i+) pstri = stri;printf( unEnter 6 string(1 string at each line): rT);for(i = 0 ; i 6 ; i+) scan f(”s”,pstri);fun( pstr);prin tf(The stri ngs after sort in g:n);for(i = 0 ; i 6 ; i+) pri ntf(%sn”, pstri);2算法分析 语句for(j = i + i,jv6,j+)错误。for语句中的各语句之间应该用“;”号隔开,而非“,”号,所以此处应
17、该改为 for (j = i + 1; j v 6; j +)。 语句*(pstr + i) = pstr + j;错误。根据题意,这里程序想执行的是将数组的第j个元素赋予数组的第i个元素,而非将数组的第j个元素的地址赋予数组的第i个元素,所以这里应该改为*(pstr + i) = *(pstr + j);。二、填空题1 题目要求下列给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持 数字字符串和非数字字符串原有的次序。例如,s所指的字符串为def35adh3kjsdf7,执行后结果为defadhajsdf3537。请在程序的下划线处填入正确的内容把下
18、划线删除,使程序得出正确的结果。注意:部分源程序在文件 BLANK1 .C中。不得增行或删行,也不得更改程序的结构!#in elude void fun( char *s)int i, j=0, k=0; char t1 80, t280; for(i=0; si!=0:i+)t2D=si;-1else t1 k+=si; t2j=0; t1 k=0;*|q un j*for(i=0; ik; i+) */*fo un d*for(i=0; i;i+)sk+i=t2i;main () char s80=ba3a54j7sd567sdffs;printf(nThe original string
19、 is :%sn,s);fun( s);prin tf(nThe result is :%snn,s);2 算法分析j+使j自加一,当下一次条件再一次满足条件时,能够把对应Si的元素记录到数组t2中的下一个元素中; si=t1i将非数字的兀素组成的数组t1逐个地把它的元素赋给数组s;j将由数字组成的数组t2中的元 素在t1后逐个赋给数组s中第 k后的元素。三、编程题1.题目要求编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。注意:部分源程序在文件PROG1.(中。请勿改动主函数main和其它函数中的任何内容,
20、仅在函数fun的花括号中填入你编写的若干语句。#i nclude #in elude #defi ne M 81 int fun( char *ss, char c)mai n() char aM, ch;void NONO ();prin tf(”nPlease en ter a stri ng:f,); gets(a);printf(f,nPlease enter a char:1); ch = getchar();7prin tf(HnThe nu mber of the char is: %dn fun(a, ch);NONO ();void NONO ()本函数用于打幵文件,输入测试
21、数据,调用 fun函数,输出数据,矢闭文件。int i ;FILE *rf, *wf;char aM, bM, ch ;rf = fope n(”in.dat,;,rH);wf = fopen(,out.dat,7,wu);for(i = 0 ; i 10 ; i+) fscanf(rf, %s, a);fscanf(rf, %s, b);ch = *b ;fprin tf(wf, %c=%dn, ch, fun (a, ch);fclose(rf);fclose(wf);2算法分析(1) 主要数据结构char *ss, char c(2) 算法描述 得出字符数组的所包含的字符数的值并赋给m;
22、j加上1,最后返回j的 逐一比较数组中与特定字符相同的字符,若有数组中有一个成立,就让 值,j的值就是所要求的数组中与特定字符相同的字符个数。3 实现代码int fun( char *ss, char c)int i,j=0,m; m=strle n(ss); for(i=0;im;i+)if(ssi=c)j+;return j;4 程序调试及测试结果经运行程序调试,将出现的错误分析如下:(1) 编译错误(2) 连接错误(3) 运行错误经过修改程序测试结果正确,符合要求。第四套、改错题1 .题目要求F列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c。请改正程序中的错误,使它能得
23、出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!#in elude void fun( char *s ) int i,j;for(i=j=0; si!=0:i+) if(si!=V)s01=si;*fo un dsi=0;main ()char s80;prin tf(E nter a stri ng:”); gets(s);printf(The original string:”); puts(s);fun (s);printf(The string after deleted :”); puts(s);printf(,nnM);2算法分析 语
24、句Sj=si;错误。当数组中的元素部位C是则记录下该元素并将它赋给元素Sj,同时让j自加1,方便记录下下一个不是C的元素,所以这里应该改为sD+=si; 语句si=0;错误。根据题意,程序在这里想将所记录的最后一个不是C的元素的后面一位赋予结束符号“ 0”,所以这里应该改为sD= - 0 、填空题1 .题目要求程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如,a所指变量中的学号、姓名和三门课的成绩依次是:10001、ZhangSan、95、80、88,则
25、修改后输出b中的数据应为:10002、,LiSiH、95、80、88。请在下划线处填入正确的内容并将下划线刪除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!#in elude #in elude struct stude nt long sno;char n ame10;float seore3;;void fun( struct stude nt a) struct stude nt b; int i;w*fo un db= 1b.s no = 10002;z*fo un d*/ strcpy(_2_, ”LiSi“);prin tf
26、(nThe data after modified :n);prin tf(nNo: %ld Name: %snScores: ”,b.s no, b.n ame);prin tf(”6.2f ”,b._3_);un dfor (i=0; iv3; i+) prin tf(nnM); mai n() struct stude nt s=10001,ZhangSan, 95, 80, 88; inti;prin tf(Hnn);prin tf(fl%6.2f s.scorei);printf(unnThe original data :n);prin ti(”nNo: %ld Name: %sn
27、Scores: ,s.s no, s.n for (i=0; i3; i+) amefun( s); 2 .算法分析 a b name scorei将a赋予b;将子符串LiSi复制到原名子处,将将三项成绩逐个输出。LiSi作为新的;三、编程题1 题目要求规定输入的字符串中只包含字母和号。请编写函数fun,其功能是:将字符串中的前导号全部移到字符串的尾部。例如,字符串中的内容为:*a*bc*dEF*G*,移动后,字符串中的内容应当是:A*BC*DEF*G*。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROG1.(中。请勿改动主函数main和其它函数中的任何内
28、容,仅在函数fun的花括号中填入你编写的若干语句。#i nelude void fun( char *a ) mai n() char s81; int n=0; void NONO ();prin tf(fE nter a stri ng:nf, );gets(s);fun( s );printf(HThe string after moveing:nn);puts(s);NONO();void NONO ()广本函数用于打开文件,输入数据,调用函数,输出数据,尖闭文件。*/FILE *in, *out;int i ; char s81;in = fopen(,in.dat,T,);out
29、= fopen(,out.dat,J,w,);for(i = 0 ; i 0;i+,j)ai$;ai=,0,;4 程序调试及测试结果经运行程序调试,将出现的错误分析如下:(1) 编译错误(2) 连接错误(3) 运行错误经过修改程序测试结果正确,符合要求。第五套一、改错题1 .题目要求下列程序中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。请改正程序的错误,使它
30、能得出正确结果。注意:部分源程序在文件 MODI1 .C中,不得增行或删行,也不得更改程序的结构。#i nclude #defi ne SIZE 20 fun( double *s, double *w) int k,i; double sum;for(k=2,i=0;iSIZE;i+) si=k; k+=2;*fo un dsun=0.0;for(k=0,i=0;iSIZE;i+)sum+=si;*-J*to un d *if(i+1%5=0)wk=sum/5; sum=O; k+; return k;mai n()double aSIZE,bSIZE/5;int i, k;k = fun
31、(a,b);prin tf(The origi nal data: n”);for(i=0; iSIZE; i+)if(i%5=0) pri ntf(HnH);printf(”4.0f”, ai);prin tf(nnThe result :n ”);for(i=0; ik; i+) prin tf(”6.2f”,bi);prin tf(nnnn);2算法分析语句sun=0.0;错误变量sun在程序中未被定义此处应该是书写错误应该改为 sum=0.0;语句if(i+1%5=0)错误运算符的优先级高于运算符+,根据题意,程序在这里是为了判断sum是否已为5个元素的和,所以应该是先让i加上1后再取
32、余,因此应该改为if(i+1)%5=0)、填空题1 题目要求下列给定程序中,函数fun的功能是:把形参a所指数组中的最大值放在a0中,接着求出a所指数组中的最小值放 在中,再把a所指数组元素中的次大值放在a2中,把a数组元素中的次小值放在a3中,以此类推。例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C 中O不得增行或删行,也不得更改程序的结构!#in elude #de
33、fi ne N 9 z*fo un d*/void fun (i nt 1 _ , int n)int i, j, max, min, px, pn, t; y*fo un d*/for (i=0; i; i+= _ 2 _) max = min = ai;px = pn = i;/*fo un d*/for (j=_3_; jvn; j+)if (max aj) min = aj; pn=j;if (px != i)t = ai; ai = max; apx = t;if (pn = i) pn= px;if (pn != i+1)t = ai+1; ai+1 = min; apn = t;
34、mai n()int bN=1,4,2,3,9,6,5,8,7,i;prin tf(nThe origi nal data :n);for (i=0; iN; i+) prin tf(H%4d ”, bi);prin tf(Hn ”);fun (b, N);prin tf(nThe data after movi ng :n ”);for (i=0;iN; i+) prin tf(H%4d ”,bi);prin tf(Hn ”);2 算法分析 amain()函数中调用fun函数时实参为b和N,所以fun函数的形参应该是数组a; 2因为第一个for循环语句执行一次要记录两个值,所以此处应该填写2
35、 ; i+1将ai的值赋予max和min后,程序要比较从ai下一个元素幵始的元素,所以j的值应该为i+1三、编程题1 题目要求学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,其功能是:把低于平均分的学生数据放入 b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序在文件PROG1.(中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#i nelude #defi ne N 8typedef structchar num10;double s;STREC;double
36、 fun( STREC *a, STREC *b, i nt *n ) mai n() STREC sN=”GA05”,85,”GA03”,76,”GA02“,69,”GA04”,85,fGAOl ”,91 ,”GA07”,72,”GA08”,64,”GA06“,87;STREC hN,t;FILE *out;int ij, n; double ave;ave=fun( s,h, &n );printf(The %d student data which is lower than %7.3f:n”,n,ave); for(i=0;i n; i+)prin tf(”s %4.1fnH,hi.
37、num,hi.s);prin tf(Hn ”);out = fopen(,out.dat;,w,);fprintf(out, H%dn%7.3fn, n, ave);for(i=0;i n_1 ;i+)for(j=i+1;jhj.s) t=hi:hi=hO; hj=t;for(i=0;i n; i+)fprintf(out,”4.1fn”,hi.s);fclose(out);2算法分析(1) 主要数据结构STREC *a, STREC *b, i nt *n(2) 算法描述 通过for语句进行全体学生成绩的求和,再让和值sum除以N值计算成绩平均值ave ; 通过if语句判断各个学生成绩是否大
38、于成绩平均值ave,若小于平均值,则将该学生信息赋给另一个数组,并通过另一个变量记录成绩小于平均值的学生人数(条件满足一次让该变量自加-),再将该变量最后的值赋予一指针变量。3 实现代码double fun( STREC *a, STREC *b, int *n )inti,j;double sum=0.0,ave=0.0;for(i=0;iai.s)bO=ai;j+;*n=j;return ave;4 程序调试及测试结果经运行程序调试,将出现的错误分析如下:(1) 编译错误(2) 连接错误(3) 运行错误经过修改程序测试结果正确,符合要求。第六套一、改错题1 .题目要求,放入pt所指给定程序
39、MODI1.C中函数fun的功能是:将m(Kme10)个字符串连接起来,组成一个新串存储区中。 例如:把三个串,abc,- “CD”、“EF”连接起来,结果是“abcCDEF”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1 .C中,不得增行或删行,也不得更改程序的结构。#i nclude #in elude void fun ( char str1O, i nt m, char *pt)尸珅龙和枠押枠壬I jrA/4*fInt k, q, i ;for ( k = 0; k m; k+ ) q = strlen ( str k);for (i=0; iq; i+)
40、y*fo un*/-J*pt += q ; ptO = 0 ; mai n()int m, h ;char s1010, p120;prin tf( *nPlease en ter m:);scanf(%d, &m);gets(s0);prin tf( ”nPlease en ter %d stri ng:n”,m );for ( h = 0; h m; h+ ) gets( sh);fun (s, m, p);prin tf( AnThe result is :%sn, p); 语句int k, q, i ;错误类型标识符int属于矢键字,大小写字母会有不同的含 义,此处是为了定义整型数据,
41、所以应该改为int k,q,i; 语句pti = strk,i;错误二维数组的表示方式应该为strki 所以此句应该改为pti=strki;二、填空题1 题目要求给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。请在程序的下画线处填入正确的内容并把下画线删除 注意:部分源程序在文件 BLANK1 .C中。请勿改动main函数和其他函数中的任何内容,仅在函数 #in elude typedef struct int num;char n ame10;JPERSON;*fo un d*void fun( PERSON _1,使程序得出正确的结果。fun的
42、横线上填入所编写的若干表达式或语句。)y*fo un d*/_2_ temp;if(stdO. nu mstd1. num)temp=std0; stdO=std1;if(stdO. num std2. num) temp=std0;std0=std2;if(std1. nu mstd2. num) temp=std1; std1=std2;mai n() PERSON std = 5,”Zha ngh,2;Wa ngLi“,6,”Li nMinM; inti;y*/*fo un d*/fun( _3 _);prin tf(nThe result is :n); for(i=0; iv3; i
43、+)prin tf(%d,%sn,stdi. nu m,stdi. name);std1=temp;std2=temp;std2=temp; std PERSON是对数组std进行操作,所以此处应该填算根据后面的程序可知,该处应该定义为数组;根据后面的程序,程序有将数组std的元素赋给temp,所以temp的数据类型应该与数组std相同,都为PERSONstd根据题意fun函数 std 。三、编程题1 题目要求请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。注意:部
44、分源程序在文件PROG1.(中。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#in clude#in clude#defi ne N 80int fun( char *s)void mai n()FILE *wf;char lin eN; int num=0;printf(Enter a string:n ”);gets(l in e);num=fun( li ne);prin tf(nThe nu mber of word is:%dnn n, nu m);嗫*/wf=fope n(Mout.datn,Hwn); fprin tf(wf,”d”,
45、fu n(Ha big car); fclose(wf);嗫* */2 .算法分析(1) 主要数据结构char *s(2) 算法描述逐个输入数组s中的字符,将该字符与字符比较,若该字符不是字符,则再将该字符的下一个字符与字符或字符0七匕较,若两个条件都满足,就让另一个变量自加1,最后返回该变量的值,则得出单词个数。3 实现代码int fun( char *s)int i,j=0;for(i=0;si!=0,;i+)if(si!=f *&( si+1=f |si+1=,0,)j+;return j;4 程序调试及测试结果经运行程序调试,将出现的错误分析如下:(1) 编译错误(2) 连接错误(3)
46、 运行错误经过修改程序测试结果正确,符合要求。第七套一、改错题1 .题目要求下列给定程序中,函数fun的功能是:找岀100n(不大于1000)之间三个位上的数字都相等的所有整数些整数放,把这 在s所指的数组中,个数作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#in elude #defi ne N 100int fun (in t *s, int n) int i,j,k,a,b,c;j=0;for(i=100; in; i+)*fo un d*a=k%10;k/=10;fo un db=k/10;c=k/10;if(a=b & a=c)sj+=i;return j;void mai n()int aN, n,num=0, i;doprin tf(nEn ter n( 1000);num= fun( a, n);prin tf(unnThe result:n”); for(i=0; inum; i+)prin tf(”5d”,ai);prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预防未成年犯罪工作制度
- 食品药品检验所工作制度
- 2026四川广安安创人力资源有限公司招聘协议制人员8人建设笔试参考题库及答案解析
- 2026医学前沿交叉学院、天健先进生物医学实验室(郑州大学)、代谢紊乱与食管癌防治全国重点实验室(郑州大学)招聘建设笔试模拟试题及答案解析
- 未来五年桥梁建筑附着升降脚手架行业市场营销创新战略制定与实施分析研究报告
- 未来五年书法用笔行业市场营销创新战略制定与实施分析研究报告
- 2026年福建省“三支一扶”计划招募1469人建设笔试备考题库及答案解析
- 2026年南平武夷山职业学院4月人才招聘建设笔试备考题库及答案解析
- 2026榆林市定边县兴源幼儿园教师招聘建设考试参考试题及答案解析
- 2026四川宜宾兴文县兴投发展有限责任公司招聘2人建设笔试备考试题及答案解析
- 【量子位智库】2025年度具身智能创业投融资全景报告
- 城市内涝风险评估方案
- 江西省国有资本运营控股集团有限公司2026年第一批批次公开招聘参考考试试题附答案解析
- 2025春季日照银行校园招聘考察人员笔试历年典型考题及考点剖析附带答案详解
- (16区全套) 上海市16区2026届初三一模化学试卷合集(含答案)
- 交通安全技术教学
- 深水井施工专项方案
- 2025青海新泉财金投资管理有限公司招聘2人(二)笔试历年备考题库附带答案详解
- 2026年水产养殖学专业水产种业创新与产业发展答辩
- 心肺康复治疗进展
- 2026年心理咨询师考试题库300道附参考答案(综合题)
评论
0/150
提交评论