2020年全国计算机等级考试二级c语言上机题库(共40套)

上传人:微*** 文档编号:168050861 上传时间:2022-11-07 格式:DOCX 页数:140 大小:179.66KB
收藏 版权申诉 举报 下载
2020年全国计算机等级考试二级c语言上机题库(共40套)_第1页
第1页 / 共140页
2020年全国计算机等级考试二级c语言上机题库(共40套)_第2页
第2页 / 共140页
2020年全国计算机等级考试二级c语言上机题库(共40套)_第3页
第3页 / 共140页
资源描述:

《2020年全国计算机等级考试二级c语言上机题库(共40套)》由会员分享,可在线阅读,更多相关《2020年全国计算机等级考试二级c语言上机题库(共40套)(140页珍藏版)》请在装配图网上搜索。

1、2020年全国计算机等级考试二级c语言上机精选题库(共40套)第1套题、 填空题请补充main函数,该函数的功能是:计算每个学生科目的平 均分,并把结果保存在数组bb中。例如,当scoreNM=78.5,84,83,65,63,88,91.5,89,93,95,72.5,65,56,75,77时,三个学生的平均分为:74,7 91.3 69.1 仅在横线上填入所编写的若干表达式或语句,勿改动函数中的 其他任何内容。#include #define N 3#define M 5main()int i, j;static float scoreNM=78.5,84, 83, 65,63,88,91

2、.5,89, 93, 95),72.5,65,56, 75, 77);float bbN;for (i=0; iN; i+)1;for (i=0; iN; i+)for (j=0; jM; j+)2;bbi /= M;for (i=0; iN; i+)printf(nstudent%dtaverage=%5.1f, i+1, bbi);二、改错题下列给定程序中,函数fun的功能是:根据整型行参m,计算如下公式的值。1y=+100x1001 11200x200 300x300HF1mx/n例如,若m=2000,则应该输出:0.000160。请改正程序中的错误,使它能得出正确的结果。#includ

3、e #include /* *found* */fun(int m)(double y = 0, d;int i;/* * found* */for (i= 100, i=m, i+=100)d = (double)i*(double)i;y += 1.0/d;)return (y);main()(int n = 2000;printf(nThe result is %lfn, fun(n);)三、编程题请编写函数fun,该函数的功能是:统计个年龄段的人数。N 个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函 数把。至9岁年龄段的人数放在d0中,把10至19岁年龄段的人数 放在d

4、l中,把20至29岁年龄段的人数放在d2中,其余依此类推, 把!00岁(含!00)以上年龄的人数都放在d10中。结果在主函数 中输出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。#include #define N 50#define M 11void fun(int *a, int *b) double rnd()(static t=29, c=217, m=1024, r=0;r=(r*t+c)%m;return(double)r/m);main()int ageN, i, dM;FILE *out;for(i=0; iN; i+)agei

5、=(int)( 115 *md();printf(The original data :n);for(i=0; iN; i+)printf(i+l)%10=0?%4dn:%4d,agei);printf(nn);fun( age, d);out=fopen (out.dat,w);for(i=0;i 10;i+)(printf(%4d%4d : %4dn,i*10, i*10+9, di);fprintf(out, %4d%4d : %4dn, i*10, i*l0+9, di);printf( Over 100 : %4dn, d10);fprintf(out, Over 100 : %4d

6、n, d10);fclose (out);答案:一、1、bbi=O 或 (bb+i)=O2 bbi+=scoreij 或 bbi=bi+scoreij 或bbi=scoreij+bbi二、1、fun(int m)应改为 double fun(int m)2、for(i=100,i=m,i+=100)应改为 for(i= 100;i=m;i+= 100)三void fun (int *a, int *b)(int i, j;for(j=0;jM;j+)bj=O;for(i=0;i=0&ai= 10&ai=20&ai=30&ai=40&ai=50&ai=60&ai=70&ai=80&ai=90&a

7、i=99) b9+=l;elseb10+=l;第2套:填空题请补充main函数,该函数的功能是:从键盘输入组字符串,以,*, 结束输入,并显示出这个字符串。例如,输入abcdef *,结果显示abcdef。仅在横线上添入所编写的若干表达式或语句,勿改动函数中的其他 任何内容。ttinclude #define N 80main()int i = T, j = 0;char strN;printf (/zn Input a string n);doi+;scanf(_1_); while (_2_);printf (z,n * display the string *;while (j i)pr

8、intf(_3_);j+;答案:“%c,&str(2)stri! = *(3) %c , strj改错题:下列给定程序中,函数fun的功能是:计算并输出high以内最大的 10个素数之和。High由主函数传给fun函数。若high的值为100, 则函数的值为732。#include #include #include int fun(int high)int sum = 0, n = 0, j, yes;while (high = 2) & (n 10)yes = 1;for (j=2; j=high/2; j+)/*found*/if (high%j = 0)yes = 0;breakif

9、(yes)|sum += high;n+;high;)return sum;)main ()(printf(%dn”, fun(100);)答案:break改为break;程序设计:请编写函数fun,该函数的功能是:统计一行字符串中单词的个 数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由 小写字母组成,单词之间由若干个空格隔开,一行的开始和结束都没 有空格。ttinclude ttinclude #define N 80int fun(char *s) main ()char lineN;int num=0;FILE *out;char *test = Hello World!,

10、 This is a test string. , a b , cde f g, sf 1 );printf(Enter a string :n);gets(line);num=fun( line );printf (The number of word is ; %dnn,num);out=fopen(out. dat, w);for (num=0;num4;num+)printf(out, %dn, fun(testnum);fclose(out);第3套第一题:已知学生的记录由学号和学习成绩构成,N名学生的数据已 存入a结构体中,给定程序的功能是找出成绩最低的学生记录,通过 形参返回函数

11、。请勿改动主函数main和其他函数中的任何内容,仅在fun函 数的横线上填入所编写的若干表达式或语句。#include #include #define N 10typedef struct sschar num10;int s; STU;fun(STU a, STU *s)stu h;int i;h = a0;for (i=l; iN; i+)if (ai.s h.s)h = ai;*s =_h;main()STU aN=(AOI, 81, A02, 89, A03, 66, A04, 87,A05, 77, A06, 90, A07, 79, A08, 61,A09, 80, A10,71

12、, m;int i;printf(* The original data *n);for (i=0; iN; i+)printf(No = %s Mark = %dn, ai.num, ai.s);fun(a, &m);print出* THE RESULT *n);printf(The lowest : %s , %dn, m.num, m.s);第二题:下列给定程序中,函数fun的功能是:将字符串p中的所有 字符复制到字符串b中,要求每复制三个字符之后插入一个空格。例 如,在调用fun函数之前给字符串a输入ABCDEFGHIJK,调用函数 之后,字符串之后,字符串b中的内容则为ABCDEFG

13、HI JK。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程 序的结构!#include void fun(char *p, char *b)(int i, k = 0;while (*p) i = 0;/* * fk)und* */while (i3 & *p) bk = *p;k+;P+; i+; )if (*P)b*+l = bk = 、;) main() (char a80, b80;printf(Enter a string:);gets(a);printf(The original string: );puts(a);fun(a,

14、b);printf(nThe string after insert space: ); puts(b);printf(nn);第三题:请编写个函数fun,它的功能是:计算并输出给定整数n的 所有因子(不包括1与自身)之和。规定n的值不大于lOOOo例如,若主函数从键盘给n输入的值为856,则输出为 sum=763。请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。#include int fun(int n) main()(int n,sum;FILE *out;printf(Input n:); scanf(%d,&n); sum=fun(n);

15、printf(,sum=%dn,sum); out=fopen (out.dat,w); fprintf(out, %dn, fun(123); fprintf(out, %dn, fun(456); fprintf(out, %dn, fun(789); fprintf(out, %dn, fun(147); fprintf(out, %d, fun(258);fclose (out);)int fun(int n)(int s=0,i;for(i=2;i=n-l;i+) if(n%i=0) s+=i;return s;第4套填空题请补充main函数,该函数的功能是:把字符串str!中的非空

16、格字符拷贝到字符串str2中.例如,若 strl=,nice to meet you!,则 str2=nicetomeetyou!”仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任 何内容.#include #define N 80main()(static char strlN = nice to meet you!;char str2N;int i = 0, j = 0;printf(n* strl *田);puts(strl);while (strl i)(iff一1一)str2j+ = strli;_.2;printf(n* str2 *n );for (i=0; ij;

17、i+)printf(%c, str2i);改错题下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母 之后的第五个字母;若小写字母为vz,使小写字母的值减21.转换后的 小写字母作为函数值返回.例如,若形参是字母A,则转换字母为小写字 母f;若形参是字母W,则转换为小写字母b.请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结 构!#include #include char fun(char c)if(c=A & c=a & c=v & c=z)c = c-21;return c;)main()(char cl, c2;

18、printf(nEnter a letter(A-Z):);cl = getchar();if (isupper(c 1)(c2 = fun(cl);printf(nnThe letter %c change to %cn, cl, c2);else(printf(nEnter (A-Z)!n);)编程题请编写函数fun,其功能是:将s所指字符串中ASCH值为奇数的字 符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG12345,其中字符A的ASCH码值为奇数、字符1的ASCII码值也为奇数、都应当删除,其他依次类推。最 后t所指的叔祖中的内容应是

19、BDF24o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。#include #include #include void fun( char *s, char t) main()char s100, t100, Msg = Please enter string S:;FILE *out;printf(Msg);scanf(%s, s);fun(s, t);printf(nThe result is :%sn, t);out=fopen (out.dat,w);fun(Msg, t);fprintf(out, %s, t);fclose (out

20、);答案:第一题:第 1 处填空 strl用!=或!= strli第2处填空i+或+i或i+=l或i=i+l第二题:第 1 处:c=c-32;应改为 c=c+32;第2处:c=c-5;应改为c=c+5;第三题:void fun (char*s,char t)(int I, j=0, n;n=strlen(s);for(i=0;in;i+)if(si%2= =0)(tj=si;j+;)tj=,O,第5套填空题请补充main函数,该函数的功能是:输出个N*N矩阵,要求 非周边元素赋值。,周边元素赋值1。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其 他内容。#include #defin

21、e N 10 main() (int bbNN;int i, j, n;printf( nlnput n:n);scanf(%d, &n);for (i=0; in; i+) for(j=0;jn;j+) if (i=0|i=n-l Hj=O|lj=n-1) 一1一;else2;printf(n * the result * n);for (i=0; in; i+)(printf(nn);for(j=0;jn;j+)printf(%4d,bbij);)改错题下列给定程序中函数fun的功能是:从低位开始取出长整型变量s 中奇数位上的数,依次构成一个新数放在t中,例如,当s中的数为 7654321

22、时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!#include #include /* *found* */void fun(long s, long t)(long si = 10;*t = s%10;while (s 0)s = s/100;*t = s%10*sl + *t;/* found */ si = si *100;main()(long s, t;printf(nPlease enter s:);scanf(%ld, &s);fun(s, &t);printf(The result is:

23、%ldn, t);编程题请编写函数fun,其功能是:将两个两位数的正整数a、b合并形 成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放 在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和 千位上。例如,当a=45, b=12,调用该函数后,c=2415o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的 花括号中填入所编写的若干语句。#include #include void fun (int a, int b, long *c)main ()(int a, b;long c;FILE *out;printf (Input a, b;);scanf(%d%d

24、, &a, &b);fun (a, b, &c);printf (The result is : %ldn, c); out=fopen (out.dat,w);for (a = 20; a 50; a+=3)fun(a, 109-a, &c);fprintf(out, %ldn, c);fclose (out);答案第一题(填空题)第!处填空:bbi|j=l第2处填空:bbi|j=O第二题(改错题)第 1 处:void fun(long s, long t)丿曳改为 void fun(long s, long *t)第 2 处:sl=sl*10;应改为 sl=sl*10;第三题(编程题)vo

25、id fun (int a, int b, long *c)*c=(b% 10) 1000+(a/10)* 100+(b/10)* 10+a% 10;第6套填空题给定程序的功能是计算并输出下列级数的前N项之和厶,直到 品大于Q为止,Q的值通过形参传入。例如,若Q的值为50.0,则函数值为50.416687。请勿改动主函数main和其他函数中的任何内容,仅在fun函数 的横线上填入所编写的若干表达式或语句。试题程序:#include double fun(double q) (int n;double s;n = 2;s = 2.0;while (s 1 q) s = s + (double)(

26、n+1)/n;2;printf(n=%dn”,n); 3;)main () printf(H%fnH, fun (50);)第1处填空:=第2处填空:n+或n+=l或n=n+l第 3 处填空:return s return (s)改错题下列给定程序中,函数fun的功能是:根据整型参m的值,计算 如下公式的值。例如,若m中的值为5,则应输出:0.536389请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序 的结构!试题程序:#include #include double fun (int m) (double y = 1.0;int i;I

27、夫夫夫夫夫夫夫*found夫夫夫夫夫夫夫I for (i=2; im; i+)/夫夫夫夫夫 found* */ y -= 1/ (i*i);return(y);) main () int n = 5;printf(HnThe result is %lfn, fun(n); )第 1 处:for (i=2;im;i+)应改为 fbr(i=2;i=m;j+)第 2 处:y-=l/(i*i);应改为 y-=L0/(i*i)编程题请编写个函数void fun(char a,char b,int n)淇功能是:删除 个字符串中指定下标的字符。其中,a指向原字符串,删除后的字符 串存放在b所指的数组中,n

28、中存放指定的下标。例如,输入一个字符串World,然后输入3,则调用该函数后的结果为Word 0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的 花括号中填入所编写的若干语句。试题程序:# include # include # define LEN 20void fun (char a,char b , int n) main () char strlLEN,str2LEN;int n;FILE *out;printf(Enter the string:n);gets(strl);printf(Enter the position of the str

29、ing deleted:);scanf(%d,&n);fun(strl, str2, n);printf(The new string is:%sn,str2);fun(Hello World!, str2, 9);out = fopen(out.dat, w);fprintf(out, %s, str2); fclose(out);答案是:void fun(char a, char b, int n)int I,j=0;for(i=0;iLEN;i+) if(i!=n)b=ai;j+;)bj尸、;第7套填空题函数fun的功能是:统计长整数n的各个位上出现数字1, 2, 3的次 数,并通过外部

30、(全局)变量cl,c2,c3返回主函数。例如,当=123114350 时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的 横线上填入所编写的若干表达式或语句。试题程序如下:#include int cl, c2, c3;void fun(long n) -cl = c2 = c3 = 0;while (n)(switch (1)(case 1:cl+;2;case 2:c2+;3;case 3:c3+;)n /= 10;)main ()long n = 123114350L;fun(n);printf(nThe

31、 result :n);printf(Hn=%ld cl=%d c2=%d c3=%dn, n, cl, c2, c3);)第1处填空:n%10第2处填空:break第3处填空:break改错题下列给定程序中函数fun的功能是:用选择法对数组中的n个元 素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序 的结构!试题程序:#include #define N 20void fun (int a口,int n)(int i, j, t, p;for (j=0; jn-l; j +)/foun夫Zp = jfor (i

32、=j; in; i+) if(ai ap) (p = i;t = a p;a p = a ;a i = t;main ()(int a N = 9, 6, 8, 3, -1, i, m = 5; printf(AADdQ);for (i=0; im; i+)printf(H%d, ai);printf(Hn);fun(a, m);printf (,AADd6 );for (i=0; im; i+)printf(”%d,”,a i);printf(Hnn);)第1处:p=j应改为p=j;第2处:p = i应改为p=j;编程题请编写个函数int fun(int*s,int t,int*k),用来求

33、出数组的最大元素在 数组中的下标并存放在k所指的存储单位中。例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为:6, 980注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。试题程序:# include # include void fun (int s, int t , int *k) main ()inta10=876,675,896,101,301,401,980,431,451,777), k ;FILE *out;fun(a,10,&k);printf(H

34、%d, %dnH, k, ak); out = fopen(out.dat, w); fprintf(out, %dn%d, k, ak); fclose(out);)答案是:void fun (int *s,int t,int *k)int I ,max;max=s 0;for(i=0;imax) (max=si;*k=I;第8套填空题请补充main函数,该函数的功能是:从键盘输入组整数,使用条 件表达式找出最大的整数。当输入的整数为0时结束。例如,输入1 23 5 40时,最大的数为5。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横 线上填入所编写的若干表达式或语句。试题

35、程序:#include #include #define N 100 main () (int numN;int i = -1;int max = 0;printf(nlnput integer number: nH); do i+ ;printf(num%d=z i);scanf(%d, 1);max = 2 numi : max; while (3);printf(max=%dn, max);)第1处填空:&numi或num+i第 2 处填空:maxmax?第 3 处填空:numi!=0 或 0!=numi改错题 下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码 值最大

36、的字符,将其放在第一个位置上;并将该字符前的原字符向后 顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调 用后字符串中的内容为eABCDFGH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结 构!试题程序:#include /夫夫大 found* */void fun(char *p);(char max, *q;int i = 0;max = pi;while (pi != 0)|if (max p)(*q = *(q-1);q;)p0 = max;)main ()char str80;printf(Enter a

37、 string: );gets(str);printf(nThe original string:);puts(str);fun(str);printf(nThe string after moving:);puts(str);printf(nn);第 1 处:void fun(char *p);应改为 void fun(char *p) 第2处:p=q+I;应改为q=p+i;编程题编写函数fun函数功能是:根据以下公式计算s计算结果作为函 数值返回;n通过型参传入。S = 1 + +?+.+51+2 1+2+31+2+3+ n例如:若n的值为11时,函数的值为1.833333。注意:部分源程

38、序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。试题程序:#include#include#includefloat fun (int n) main ()int n;float s;FILE *out;printf(HnPlease enter N:);scanf(%d,&n);s=fun (n);printf(The result is: %fn”,s);s = fun (28);out = fopen(out.dat, w);fprintf(out, %f, s);fclose(out);)答案是:float fun(int n)

39、(int i;float s=l.O,t=l.O;for(i=2;i=n;i+)(t=t+i;s=s+l/t;return s;填空题给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串SS输入:AaaaBBbl23CCccccd,则输出结果应为: upper=5, lower=9 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横 线上填入所编写的若干表达式或语句。试题程序:#include void fun (char *s, int *a, int *b)|while (*s)(if (*s= * A, & *s= * a, & *s=z)2;s+;)m

40、ain ()(char s 100;int upper = 0, lower = 0;printf(HnPlease a string :);gets (s);fun(s, Supperz Slower);printf(n upper = %d lower = %dn, 3); 第 1 处填空:(*a)+或+(*a)或*a=*a+l 或a+=l第 2 处填空:(*b)+或+(*b)或*b=*b+l 或*b+=l第 3 处填空:upper,lower改错题下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低 于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver 所指的存储单

41、元中。例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为4 (平均分为:75.5625).请改正程序中的错误,使程序能统计出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!试题程序:#include include define N 20int fun (float *s, int n, float *aver)float ave, t = 0.0;int count = 0, k, i;/夫 found* */for (k=0; kn; k+)t = s k;ave = t/n;for (i=0; i

42、n; i+)if (si ave)count+;/夫夫夫夫foundZ*aver = &ave;return count;)main ()float s30, aver;int m, i;printf(HnPlease enter m: );scanf(H%d, &m);printf(nPlease enter %d mark :n , m);for (i=0; in。例如:m=12,n=8时,运行结果为495.000000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。试题程序:#include #include flo

43、at fun( int m, int n) main ()(FILE *out;printf(nP=%fnHz fun(12,8); out = fopen (out. daf, w); fprintf(out, %f, fun(12,6); fclose(out);)答案是:float fun(int m,int n)(float p,t=1.0;int i;for (i=l;i=m;i+)t=t*i;p=t;for(t= 1.0,i= 1 ;i=n;i+)t=t*i;p=p/t;for(t=1.0,i=l;i=m-n;i+)p=p/t;return p;第10套填空题请补充main函数,该

44、函数的功能是:从键盘键盘输入3个整数然后 找出最大的数并输出。例如,输入:12 45 43,输出为45注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其 他任何内容。试题程序:#include include main ()int a, b, c, max;printf(nlnput three numbers:n);scanf(%d,%d,%d, &a, &b, &c);printf(The three numbers are:%d,%d,%dn”, a, b, c);if (a b)1;else2;if (max c)printf(max=%dn, max)

45、;)第1处填空:max=a第2处填空:max=b第3处填空:max=c 改错题下列给定程序中,函数fun的功能是:将s所指字符串出现的tl所指 子串全部替换成12所指子字符串,错形成的新串放在w所指的数组 中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指 字符串的内容为abcdabfab,tl所指子串中的内容为ab, t2所指子串中 的内容为99时,结果,在w所指的数组中的内容为99cd99f99。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结 构!试题程序:#include #include #include /夫夫大

46、 found夫 */void fun(char *s, *tlz *t2, *w) |int i;char *p, *r, *a;strcpy(w, s);while (*w)p = w;r = tl;/ found* * while (r)if (*r = *p) r+;p+; elsebreak;if (*r = 0 )(a = w;r = t2;while (*r)(*a = *r;a+;r+;w += strlen(t2);elsew+;)main ()|char s100z tl 100, t2 100z w100;printf(HnPlease enter string s:H);

47、scanf(% s, s);printf(nPlease enter substring 11:);scanf (%s, tl);printf(nPlease enter substring t2:);scanf (,%s, t2);if (strlen(tl) = strlen (t2)|fun (s, tlz t2, w);printf(nThe result is :%snz w);)elseprintf(Error :strlen(tl)!=strlen(t2)n);)第 1 处:void fun(char *s,*tl,*t2,*w)应改为 void fun(char *s,char

48、*t 1,char *t2,char *w)第 2 处:while(r)应改为 while(*r)编程题编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程式 cos(x)-x=0的个实根。X,用=cos(x.)迭代步骤如下:(1)取X1初值为0.0;(2) x0=xl,把xl的值赋给x0;(3) xl=cos(x0),求出个新的 xl;(4)若xO-xl,的绝对值小于0.000001,则执行步骤(5),否则执行 步骤(2);(5)所求xl就是方程cos(x)-x=0的个实根,作为函数值返回。程序将输出结果Root=0.739085o注意:部分源程序给出如下。请勿改动主函数main和其

49、他函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。试题程序:#include include include float fun () main ()(FILE *out;float f = fun();printf(Root=%fn”, f);out = fopen(out.dat, w);fprintf(out, %f, f);fclose(out);答案是:float fun()float x 1=0.0,xO;do(x0=x1;xl=cos(x0);while(fabs(xO-x 1 )=le-6);return x 1;第11套填空题给定程序中,涵数fun的功能是:

50、把形参s所指字符串中下标为奇数 的字符右移到下个奇数位置,最右边被移出字符串的字符串的字符 绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf.注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其 他任何内容。试题程序:#include void fun(char *s) (int iz n, k;char c;n = 0;for (i=0; si! = *0; i+) n+;if (n%2 = 0)k = n-1; elsek = n-2;c = 2 ;for (i

51、=k-2; i=l; i=i-2)si+2 = si;sl =3;main ()(char s 80 = abcdefgh;printf (HnThe original string is :%sn”, s);fun (s);printf(HnThe result is : %sn, s);第1处填空:1第2处填空:sk或(s+k)第3处填空:c 改错题下列给定程序中,函数FUN的功能是:将一个由八进制数字字符组 成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最 多只能包含5位8进制数字。例如,若输入77777,则输出将是327670 请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的 结构!试题程序:#include #include include int fun(char *p)int n;Ifound夫n=*p-o;p+;!夫夫夫found夫夫夫夫 while (*p 1= 0)n=n*7+*p-o p+;)return n;)char int intmain ()S 6;i;n;printf(Enter a string (octal digits): ); gets (s);if (strlen(s) 5)printf(Error:string too long

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!