《计算机二级上C语言机题库.pdf》由会员分享,可在线阅读,更多相关《计算机二级上C语言机题库.pdf(138页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 套:1.填空题给定程序中,函数fun的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。例如,输入一个数:27638496,新的数为:7391.void fun(unsigned long*n)unsigned long x=0,i;int t;i=l;while(*n)y*fo u n c|*/t=*n%_ l_;/*found*/if(t%2!=_2_)x=x+t*i;i=i*10;*n=*n/10;)y*found*/*n=3;答案:102.改错题(2)0(3)x给定程序MODI1.C中函数fun的
2、功能是:计算n!。例如,给 n 输入5,则输出120.000000。double fun(int n)double result=1.0;/*found*/if n=0return 1.0;while(n 1&n=O&si=9)/*found*/sj=si;/*found*/sj=O;答案:Sj+=si;(2)sO=0;3.编程题请编写函数fu n,函数的功能是:将 m 行 n 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:w w w ws s s sH H H H则字符串中的内容应该是:WSHWSHWSHovoid fun(cha r sN,cha r*
3、b)int i,j,n=O;for(i=0;i N;i+)/*请填写相应语句完成其功能*/for(j=0;j next=NULL;for(i=l;ida ta=ra nd()%m;s-next=p-next;p-next=s;p=p-next;)/*found*/return p;答案:(l)p=(NODE*)ma lloc(sizeof(NODE);(2)return h;3.编程题请编写函数fun,函数的功能是:统计行字符串中单词的个数,作为函数值返回。-行字符串在主函数中输入,规定所有的单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。int fun(cha r*s)in
4、t k=1;while(*s)if(*s=)k+;s+;)return k;第 4 套:1.填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数据均以二进制方式输出到文件中,函数fun的功能是从形参filena me所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filena me所指的文件中,覆盖原来的文件内容。void fun(cha r*filena me)FILE*fp;STU sNL t;/*foundint i,j;*/fp=fopen(filena me,_ 1_);frea d(s,sizeof(STU)
5、,N,fp);fclose(fp);for(i=0;iN-l;i+)for(j=i+l;j(3)fwrite2.改错题给定程序M0DI1.C中函数fun的功能是:在字符串的最前端加入n 个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。void fun(cha r s,int n)cha r a 80,*p;int i;/*found*/s=p;for(i=0;in;i+)a i=*;do a i=*P;i+;)/*found*/while(*p+)a i=0;strcpy(s,a);答案:(l)p=s;(2)while(*p+);3.编程题请编写函数fu n,函数的功能是:统
6、计各年龄段的人数。N 个年龄通过调用随机函数获得,并放在主函数的a ge数组中;要求函数把0 至 9 岁年龄段的人数放在d中,把 10至 19岁年龄段的人数放在dl中,把 20至 29岁年龄段的人数放在d中,其余依次类推,把 100岁(含100岁)以上年龄的人数放在d10中。结果在主函数中输出。void fun(int*a,int*b)int i,j;for(i=0;i M;i+)bi=0;for(i=0;i 10)bM-1+;else bj+;第 5 套:1.填空题给定程序中,函数fun的功能是将参数给定的字符串、整数浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数a
7、 toi和 a tof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。void fun(cha r*s,int a,double f)/*found*/_ 1 fp;cha r str100,strl100z str2100;int a l;double fl;fp=fopen(filel.txtz w);fprintf(fp,%s%d%fn,s,a,f);/*found*/_ 2 _ ;fp=fopenCfilel.txt,Mr);/*found*!fsca nf(_3_,%s%s%s,str,strl,str2);fclose(fp);a l=a toi(strl);fl=a to
8、f(str2);printf(HnThe result:nn%s%d%fnz str,a l,fl);)答案:FILE*(2)fclose(fp)(3)fp2.改错题给定程序M ODILC中函数fu n 的功能是:对 n 名学生的学习成绩,按从高到低的顺序找出前 m(mW10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。STU*fun(STU a,int m)STU bN,*t;int i,j,k;/*found*/t=(STU*)ca lloc(sizeof(STU),m)for(i=0;iN;i+)bi=a i;for(k=0;km;k+)f
9、or(i=j=0;ibj.s)j=i;/*found*/t(k)=b(j);bj.s=O;)return t;)答案:(l)t=(STU*)ca lloc(sizeof(STU),m);(2)tk=bj;3.编程题请编写函数fu n,函数的功能是:删去维数组中所有相同的数,使之只剩个。数组中的数已按由小到大的排序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10o 除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10int fun(int a,int n)int i,j=1,k=a O;fo
10、r(i=1;i sl)return t;elsereturn s;)答案:cha r*fun(cha r*s,cha r*t)(2)ss+;(3)tt+;3.编程题请编写函数fu n,函数的功能是:移动字符串中的内容,移动的规则如下:把 第 1 到第m 个字符,平移到字符串的最后,把 第 m+1到最后的字符移动到字符串的前部。例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC。void fun(cha r*w,int m)/*可调用 funl 函数左移字符*/int i;for(i=0;i m;i+)funl(w);第 7 套
11、:1.填空题程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。/*found*/void show(STU _1_)int i;printf(n%d%s%c%d-%d-%d,tt.num,tt.na me,tt.sex,tt.birthda y.yea r,tt.birthda y.month,tt.birthda y.da y);for(i=0;i3;i+)/*found*/printf(%5.1fz 2);printf(n);ma in()STU std=l,”Zha nghua,M,1961,10,8,76.5,78.0,82.0;pr
12、intf(nA student da ta:n);/*found*/show(-3一);答案:tt(2)tt.scorei(3)std2.改错题给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a 0中的数对调、次最大数和a l中的数对调。int fun(int*a,int n)int i,m,t,k;for(i=0;i2;i+)/*founcl*/m=0;for(k=i+l;ka m)k=m;t=a i;a i=a m;a m=t;)答案:(l)m=i;(2)if(a 伙 a m)m=k;3.编程题请编写一个函数unsigned fun(unsigned w
13、),w是一个大于10的无符号整数,若 w 是 n(n22)位的整数,函数求出w 的低n-l位的数作为函数值返回。例如:w 值 为 5 9 2 3,则函数返回923;w 值为923则函数返回23。unsigned fun(unsigned w)if(w10000)w%=10000;else if(w1000)w%=1000;else if(w100)w%=100;else if(w10)w%=10;return w;第 8 套:L 填空题给定程序通过定义并赋初值的方式,利用结构体变量存储了 名学生的学号、姓名和3 门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。/*found*
14、/void modify(_1_*ss,floa t a)int i;for(i=0;i_2_*=a;)ma in()STU std=l/Zha nghua,76.5,78.0,82.0;floa t a;printf(nThe origina l number a nd na me a nd scores:n);show(std);printf(nlnputa number:);sca nf(%f,&a);/*found*modify(_3_,a);printf(nA result of modifying:nH);show(std);答案:(l)STU(2)scorei(3)&std2.改
15、错题给定程序M 0DILC中函数fun的功能是:求 k!(k0return(k*fun(k-l);/*found*/else if(k=0)return IL;答案:if(k0)(2)else if(k=0)3.编程题程序定义了 n X n 的二维数组,并在主函数中自动赋值。请编写函数Fun(inta NLintn),函数的功能是:使数组左下三角元素中的值乘以n例如:若 n 的值为3,a数组中的值为a=1973972 3 8 则返回主程序后a数 组 中的值应为6 9 84 5 612 15 18int fun(int a N,int n)int i,j;for(i=0;i N;i+)for(j
16、=0;j da ta q-da ta)t=p-da ta;p-da ta =q-da ta;q-da ta =t;q=q-next;)y*Q|jp|*/P=_ 3 _ ;答案:(l)p-next(2)q(3)p-next2.改错题给定程序M0DI1.C中函数fun的功能是:将 s 所指字符串的字母转换为按字母序列的后续字母(但Z 转换为A,z 转换为a),其它字符不变。void fun(cha r*s)/*found*/while(*s!=)if(*s=A&*s=a&*s=z)if(*s=Z)*s=A;else if(*s=z)*s=a;else*s+=1;)/*Q U P|*/(*s)+;答
17、案:(l)while(*s)(l)s+;3.编程题请编写函数fu n,函数的功能是:移动一维数组中的内容;若数组中有n 个整数,要求把下标从0 到 p(含p,p 小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p 的值为3。移动后,-一 维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。void fun(int*w,int p,int n)int iJ=0,bN;for(i=p+1;i n;i+)bj+=wi;for(i=0;i=p;i+)bj+=wi;for(i=0;i n;i+)wi=bi;)第 10套:1.填
18、空题给定程序中,函数fun的功能是:判定形参a所指的N X N(规定N 为奇数)的矩阵是否是吆J方“,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3 X 3 的矩阵就是一个“幻方”:4 9 23 5 78 16int fun(int(*a)N)int ij,m l,m2,row,colum;ml=m2=0;for(i=0;iN;i+)j=N-i-l;ml+=a ii;m2+=a ij;if(ml!=m2)return 0;for(i=0;iN;i+)/*QUQ J*/row=colum=_ 1 _;for(j=
19、0;jN;j+)row+=a ij;colum+=a ji;/*found*/if(row!=colum)_ 2 _ (row!=ml)return 0;)/*found*Ireturn _ 3 _;答案:o(2)11(3)12.改错题给定程序MODI1.C中 fun函数的功能是:根据整型形参m,计算如下公式的值。1 1 1T=l-2 3 m例如,若主函数中输入5,则应输出-0.283333double fun(int m)double t=1.0;int i;for(i=2;i next;p-next=NULL;while(q)r=q-next;q-next=p;/*found*/p=q;q
20、=_ 3 _;h-next=p;)答案:(l)next(2)0(3)r2.改错题给定程序MODI1.C中函数fun的功能是:计算s 所指字符串中含有t 所指字符串的数目,并作为函数值返回。int fun(cha r*s,cha r*t)int n;cha r*p,*r;n=0;while(*s)p=s;/*found*/r=p;while(*r)if(*r=*p)r+;p+;else brea k;/*found*Iif(*r=0)n+;s+;)return n;答案:(l)r=t;(2)if(*r=0)3.编程题请编写函数fun,函数的功能是:将放在字符串数组中的m 个字符串(每串的长度不超
21、过n),按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。例如,字符串数组中的M 个字符串为AAAABBBBBBBCC则合并后的字符串的内容应是:AAAABBBBBBBCCovoid fun(cha r a MNz cha r*b)/*以下代码仅供参考*/int i;*b=0;for(i=0;i next;p-next=NULL;while(q)/*found*7r=q-_2_jq-next=p;p=q;/*found*/q=_ 3 _ ;)return p;答案:NODE(2)next(3)r2.改错题给定程序M0DI1.C中函数fun的功能是:将 S 所指字符串中位于奇数位置的
22、字符或ASCII码为偶数的字符放入t 所指数组中(规定第一个字符放在第0 位中)。例如,字符串中的数据为:AABBCCDDEEFF,则输出应当是:ABBCDDEFFvoid fun(cha r*s,cha r t)int i,j=0;for(i=0;istrlen(s);i+)/*found*/if(i%2&si%2=0)tj+=si;/*found*/ti=O;答案:if(i%2 1 1 si%2=0)5 1=2;3.编程题请编写函数fu n,函数的功能是:将 m 行 n 列的二维数组中的数据,按列的顺序依次放到一维数组中。函数fun中给出的语句仅供参考。例如,二维数组中的数据为:33 33
23、 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 44 55 33 44 55 33 44 55 33 44 55。void fun(int(*s)10,int*b,int*n,int mm,int nn)int ij,np=0;/*np 用作 b 数组下标*/for(i=0;i nn;i+)for(j=0;j da ta _ 3 _ q-da ta)t=p-da ta;p-da ta =q-da ta;q-da ta =t;q=q-next;)p=p-next;答案:(l)h-next(2)p-next(3)=2.改错题给定程序M0DI1.C是建立一个带头
24、结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值并且作为函数值返回。fun(NODE*h)int ma x=-l;NODE*p;/*found*/P=h;while(p)if(p-da ta ma x)ma x=p-da ta;/*found*/p=h-next;return ma x;)答案:p=h-next;(2)p=p-next;3.编程题请编写函数fu n,函数的功能是:将 M 行 N 列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n 所指的存储单元中。例如,二维数组中的数据为:33
25、33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 33 33 33 44 44 44 44 55 55 55 5 5。void fun(int(*s)10,int*b,int*n,int mm,int nn)int i,j,k;for(i=0;i mm;i+)for(j=0;j da ta%2=0)sum+=p-da ta;/*found*/p=h-next;)return sum;答案:(l)p=h-next;(2)p=p-next;3.编程题请编写函数fu n,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:Y E S,否则返回0
26、,主函数中输出N。回文是指顺读和倒读都一样的字符串。例如,字符 串 LEVEL是回文,而字符串123312就不是回文。int fun(cha r*str)int i,j=strlen(str);for(i=0;i j/2;i+)if(stri!=strj-i-1)return 0;return 1;第 15套:1.填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数据均以二进制方式输出到student.da t文件中。函数fu n 的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3 分,修改后重写文件中该学生的数
27、据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。void fun(cha r*filena me,long sno)FILE*fp;STU n;int i;fp=fopen(filena me,rb+);/*found*/while(!feof(_ 1 _)frea d(&n,sizeoffSTU),1,fp);/*found*/if(n.sno_ 2 _ sno)brea k;if(!feof(fp)for(i=0;i3;i+)n.scorei+=3;/*found*/fseek(_3一 -lL*sizeof(STU),SEEK_CUR);fwrite(&n,si
28、zeof(STU),1,fp);)fclose(fp);答案:fp2.改错题(2)=fp给定程序M0DI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行曲排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前三个字符依然有序;再把第四个字符插入到前三个字符中,。待排序的字符串已在主函数中赋予。void insert(cha r*a a)int i,j,n;cha r ch;/*found*n=strlen a a ;for(i=l;i=0)&(chs;STREC*p;p=h-next;while(p)if(p-sma x)ma x=p
29、-s;p=p-next;return ma x;第 16套:1.填空题给定程序中,函数fu n 的功能是:求出形参s s 所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M 个字符串,且串长N。void fun(cha r(*ss)N)int,n,len=0;for(i=0;in)n=len;)for(i=0;iM;i+)/*found*!n=strlen(_1_);for(j=0;j 2/*found*/ssin+j+-3 _=0;)答案:(l)ssi(2)n+j2.改错题(3)1给定程序M0DI1.C中 fun函数的功能是:将
30、p 所指字符串中每个单词的最后一个字母改成大写。(这里的 单词 是指由空格隔开的字符串)。例如,若输入I a m a student to ta kethe exa mina tion.,则应输出 I a M A studenT tO ta kE thE exa mina tion.,void fun(cha r*p)int k=0;for(;*p;p+)if(k)/*found*/if(p=)k=0;/*found*/*(p-l)=toupper(*(p-l)elsek=1;答案:if(*P=)(2)*(p-1)=toupper(*(p-1);3.编程题请编写函数fu n,对长度为7 个字符
31、的字符串,除首、尾字符外,将其余5 个字符按ASCII码降序排列。例如,原来的字符串为CEAedca,排序后输出为CedcEAa。int fun(cha r*s,int num)cha r ch;int i,j;for(i=1;i 6;i+)for(j=i+l;j 6;j+)if(*(s+i)*(s+j)ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;)1.填空题程序通过定义学生结构体数组,存放了若干名学生的学号、姓名和3 门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。void fun(struct student a,int
32、n)/*founc|*/1 t;int i,j;/*found*/for(i=0;i_ 2 _;i+)for(j=i+l;j 0)t=a i;a i=a j;a j=t;答案:(l)struct student(2)n-l(3)a i.na me,a j.na me2,改错题给定程序M0DI1.C中函数fun的功能是:在 p 所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGHofun(cha r*p)cha r ma x,*q;int i=0;ma x
33、=pi;while(pi!=0)if(ma xp)*q=*(q-l);q-;)p0=ma x;答案:q=p+i;(2)while(qp)3.编程题学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函数fu n,它的功能是;把指定分数范围内的学生数据放在b 所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60 6 9,则应当把分数在60到 69的学生数据进行输出,包含60分利69分的学生数据。主函数中将把60放 要 low中,把 69放 在 heigh中。int fun(STR EC*a,STREC*b,int I,int h)int i,j=
34、0;for(i=0;i=I&a i.s=h)bj+=a i;return j;)第 18套:L 填空题给定程序中,函数fun的功能是:将形参s 所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例 如,s 所指字符串为:a sdl23fgh543df,处理后新字符串为 a sdfghdfl23543.cha r*fun(cha r*s)int,j,k,n;cha r*p,*t;n=strlen(s)+l;t=(cha r*)ma lloc(n*sizeof(cha r);p=(cha r*)ma lloc(n*sizeof(cha r);j=0;k=0
35、;for(i=0;i=a)&(si=A)&(si=2)/*found*/皿=_ l_;j+;else pk=si;k+;)/*foun(j*/for(i=0;i _ 2 _;i+)tj+i=pi;/*found*/tj+k卜 _ 3 _;return t;)答案:si2.改错题(2)k(3)0给定程序M0DI1.C中函数fun的功能是:将 s 所指字符串中最后一次出现的与t l 所指字符串相同的子串替换成t2 所指字符串,所形成的新串放在w 所指的数组中。此处,要求t l 和t2 所指字符串的长度相同。例 如,当 s 所指字符串中的内容为:a bcdbfa bc,tl所指子串中的内容为:a b
36、cda bf99c”。int fun(cha r*s,cha r*tl,cha r*t2,cha r*w)int i;cha r*p,*r,*a;strcpy(w,s);/*QJJpj*!while(w)p=w;r=tl;while(*r)/*found*/IF(*r=*p)r+;p+;else brea k;if(*r=0)a =w;w+;)r=t2;while(*r)*a =*r;a+;r+;答案:while(*w)(2)if(*r=*p)3.编程题函数fun的功能是:将 s 所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中。例如,若 S 所指字符串中
37、的内容为:ABCDEFG12345,其中字符A 的 ASCII码值为奇数、字 符 1 的 ASCII码值也为奇数、都应当删除,其它依次类推。最后t 所指的数组中的内容应是:BDF24。void fun(cha r*s,cha r t)int i,j=0;for(i=0;i sno=10002;strcpy(a-na me,LiSi);/*foun(j*/for(i=0;iscorei(3)a2.改错题给定程序M0DI1.C中函数fu n 的功能是:从 N 个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。/*found*7fun(cha r(
38、*sq)M)int i;cha r*sp;sp=sqO;for(i=0;iN;i+)if(strlen(sp)strlen(sqi)sp=sqi;/*foun(j*/return sq;)答案:(l)cha r*fun(cha r(*sq)M)(2)return sp;3.编程题函数fun的功能是:将 a、b 中的两个两位正整数合并形成一个新的整数放在c 中。合并的方式是:将 a中的十位和个位数依次放在变量c 的百位和个位上,b 中的卜位和个位数依次放在变量c 的十位和千位上。例 如,当 a=45,b=12。调用该函数后,c=2415。void fun(int a,int b,long*c)*
39、c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;第 20套:L 填空题给定程序中,函数fun的功能是:计算形参x 所指数组中N 个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10 个正数:46 30 32 40 6 17 45 15 48 2 6,平均值为:30.500000 移动后的输出为:30 6 17 15 26 46 32 40 45 48double funfdouble*x)int i,j;double a
40、v,yN;a v=0;/*found*/for(i=0;iN;i+)a v+=_ 1_;for(i=j=0;iN;i+)if(xia v)/*found*7i=0;yj=xi;xi=-l;while(iN)if(xi!=-l)yU+=xi;/*found*/_ 3 _;for(i=0;iN;i+)xi=yi;return a v;答案:xi/N(2)j+i+2.改错题给定程序M0DI1.C中函数fu n 的功能是:统计字符串中各元音字母(即:A、E、I、0、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、Oofun(cha r*sz
41、 int num5)int kz i=5;for(k=0;k=0)numi+;)答案:(l)numk=0;(2)switch(*s)3.编程题请编写函数fu n,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为12613993599579979480则函数值为61.int fun(int a MN)int tot=0,i,j;for(i=0;i N;i+)tot+=a 0i;tot+=a M-li;)for(i=l;i M-l;i+)tot+=a i0;tot+=a iN-l;)return tot;第 21套:1.填空题给定程序中,函
42、数fun的功能是:计算形参x 所指数组中N 个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x 所指数组的后部,平均值作为函数值返回,10 个正数:46 30 32 40 6 17的输出为:46 32 40 45 48double funfdouble*x)int i,j;double s,a v,yN;s=0;for(i=0;iN;i+)s=s+xi;y*fo u nj*/a v=_ 1 _;for(i=j=0;ia v)/*Q JJP Q|*/y _ 2_=xi;xi=-l;for(i=0;iN;i+)/*found*/if(xi!=
43、_3_)yj+=xi;for(i=0;iN;i+)xi=yi;return a v;在主函数中输出平均值和移动后的数据。例如,有45 15 4830 62 6,平均值为:30.500000移动后17 15 26答案:s/N(2)j+2.改错题3)-1给定程序M0DI1.C的功能是:读入个英文文本本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的 单词 是指山空格隔开的字符串)。例如,若输入:I a m astudent to ta ke the exa mina tion.,则应输出:I Am A Student To Ta ke TheExa mina tion,o/*fou
44、nd*/include/*found*/upfst(cha r p)int k=0;for(;*p;p+)if(k)if(*P=,)k=0;else if(*p!=)k=1;*p=toupperf*p);答案:(l)#include(2)upfst(cha r*p)3.编程题程序定义了 N X N的二维数组,并在主函数中赋值。请编写函数f u n,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。例如:a数组中的值为则返回主程序后s的值应为:3.375。double fun(int w N)int i,j,n=0;double sum=0;for(i=0;iN;i+)sum+
45、=w0i+wN-li;n+=2;)for(i=1;iN-1;i+)sum+=wi0+wiN-l;n+=2;return sum/n;第2 2套:1.填空题给定程序中,文本文件中,int fun(cha r FILE*fp;函数fu n的功能是:将自然数1 10以及它们的平方根写到名为m yfile3.txt的然后再顺序读出显示在屏幕上。*fna me)int i,n;floa t x;if(fp=fopen(fna me,w)=NULL)return 0;for(i=l;i=10;i+)/*f o u n dfprintff_1_*%d%fnJ,sqrt(double)i);printf(nS
46、ucceed!n);/*found*/2;printf(nThe da ta in file:n);/*found*/if(fp=fopen(_ 3_zr)=NULL)return 0;fsca nf(fp/%d%f,&n,&x);while(!feof(fp)printf(%d%fn,n,x);fsca nf(fp,%d%fHz&n,&x);fclose(fp);return 1;答案:fp(2)fclose(fp)(3)fna me2.改错题给定程序M0DI1.C中 fun函数的功能是:将 n 个无序整数从小到大排序。fun(int nz int*a )int i,j,p,t;for(j=
47、0;jn-l;j+)p=j;/*found*/for(i=j+l;ia i)/*found*7t=i;if(p!=j)t=a j;a j=a p;a p=t;)答案:for(i=j+l;in;i+)P=i;3.编程题函数fun的功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将 a数的十位和个位数依次放在c 数的个位和百位上,b 数的十位和个位数依次放在c数的十位和千位上。例如,当 a=45,b=12时,调用该函数后,c=2514。void fun(int a,int b,long*c)*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/
48、10);)第 23套:1.填空题给定程序中,函数fun的功能是:找出N X N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。void fun(int(*a)N,int*b)int ij;for(i=0;iN;i+)/*found*/for(j=l;jN;j+)/*found*/if(bi_2_a ji)bi=a ji;ma in()int xNN=12,5,8,7,6,1,9,3,1,2,3,4)42,8,4,3 zyNJJ;printf(nThe ma trix:nH);for(i=0;iN;i+)for(j=0;jN;j+)printf(%4dH,xiU);pri
49、ntf(n);/*found*/fu n(_3_);printf(nThe result is:);for(i=0;iN;i+)printf(%3d,yi);printf(n);答案:(l)a Oi(2)(3)x,y2.改错题给定程序M 0DI1.C中函数fu n的功能是:交换主函数中两个变量的值。例如:若变量a中的值原为8,b中的值为3。程序运行后a中的值为3,b中的值为8。/*found*Iint fun(int xjnt y)int t;/*fo u n dt=x;x=y;y=t;*!答案:(l)int fun(int*x,int*y)(2)t=*x;*x=*y;*y=t;3.编程题编写
50、函数fu n,函数的功能是求出小于或等于lim的所有素数并放在a a数组中,函数返回所求出的素数的个数。int fun(int lim,int a a MAX)/*以下代码仅供参考*/int i,j,k=O;/*其中变量k用于统计素数个数*/for(i=2;i=lim;i+)/*以下完成判断a a数组中小于或等于lim的素数并统计个数*/for(j=2;j (i/2)a a k+=i;)return k;第2 4套:1.填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fu n的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如:传给形参