C语言编程题及答案46651_第1页
C语言编程题及答案46651_第2页
C语言编程题及答案46651_第3页
C语言编程题及答案46651_第4页
C语言编程题及答案46651_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1请编写函数fun,其功能是:找出2m整型二维数组中最大元素的值,并将此值返回调用函数。int fun (int a m)int i,j,maxa00;for(i0;i2;i)for(j0;jm;j)if(maxeps)/*当某项大于精度要求时,继续求下一项*/s1s1sss1;/*求和*/n;return 23编写函数fun,其功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。void fun(int *a,int *n)int i,j0;精品.for(i1;iave0.0;精品.for(i0;iaveaav

2、easi;/*求各门成绩的总和*/aaveaave/n;/*求平均分*/7 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。double fun(strec *h)double av0.0;strec *phnext;/*p直接指向头结点的下一个结点,即第一个成绩*/while(p!null)精品.avavps;/*求总分数*/ppnext;return av/n;/*返回平均值*/8编写函数fun,其功能是:将所有大于1小于

3、整数m的非素数存入xx所指数组中,非素数的个数通过k返回。例如,若输入17,则应输出:46891012141516。void fun(int m, int *k, int xx)int i,j,n0;for(i4;im;i)/*找出大于1小于整数m的非素数*/for(j2;ji;j)if(i%j0) break;精品.if(ji) xxni;*kn;/*返回非素数的个数*/9编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。int fun(char *ss, char c)int i0;for(;*ss!0;s

4、s)if(*ssc) i;/*求出ss所指字符串中指定字符的个数*/return i;精品.10编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。float fun (float *a, int n)float av0.0;int i;for(i0;in;i)/*求分数的总和*/avavai;return (av/n);/*返回平均值*/11学生的记录由学号和成绩组成,n名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意

5、:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。精品.int fun (strec *a, strec *b)int i,j0,maxa0s;for(i0;in;i)if(maxais) maxais;/*找出最大值*/for(i0;in;i)if(maxais) bjai;/*找出成绩与max相等的学生的记录,存入结构体b中*/return j;/*返回最高成绩的学生人数*/12规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用c语言提供的字符串函数。精品.例如,字符串中的内容为:*a*bc*d

6、ef*g*,删除后,字符串中的内容应当是:*abcdefg。void fun(char *a)int i0;char *pa;while(*p&*p*)ai*p;i;p;while(*p)if(*p!*)ai*p;i;精品.p;ai0;13编写函数void fun(char *tt,int pp),统计在tt所指的字符串中a到z26个小写字母各自出现的次数,并依次放在pp所指的数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0void fun(char *tt,

7、 int pp)int i;for(i0;ia&*ttz) pp*tta; 14规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。例如,字符串中的内容为:*a*bc*def*g*,删除后,字符串中的内容应当是:*a*bc*def*g。在编写函数时,不得使用c语言提供的字符串函数。void fun (char *a);while(*a!0) a;a;/*指针a指向字符串的尾部*/while(*a*) 精品.a;/*指针a指向最后一个字母*/*(a1)0; /*在字符串最后加上结束标志符*/15编写函数fun,其功能是:比较字符串的长

8、度,(不得使用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。例如,输入beijingshanghai(为回车键),函数将返回shanghai。char *fun(char *s, char *t)int i,j;for(i0;si! 0;i); /*求字符串的长度*/for(j0;tj! 0;j);if(ij)/*比较两个字符串的长度*/精品.return s;/*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/else return t;16学生的记录由学号成绩组成,n名学生的数据已放入主函数中的结构体数组s中,请编写函数f

9、un,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置1,作为函数值返回。(用于字符串比较的函数是strcmp)。strec fun(strec *a, char *b)int i;strec str0,1;/*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置1) if(strcmp(ainum,b)0) /*找到指定学号的学生数据精品.*/strai;return str;/*返回学生记录*/17编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数

10、的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a45,b12时,调用该函数后,c 5142。void fun(int a,int b,long *c)*cb%10(a/10)*10(b/10)*100(a%10)*1000;18编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)x0的一个实根。精品.xn1cos(xn)迭代步骤如下:(1)取x1初值为0.0;(2)x0x1,将x1的值赋给x0;(3)x1cos(x0),求出一个新的x1;(4)若x0x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2);(5)所求x1就是方程cos(x)x0

11、的一个实根,作为函数值返回。程序将输出结果root0.739086。float fun()float x10.0,x0;dox0x1;x1cos(x0);精品.while (fabs(x0-x1)1e6);return x1;19规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。例如,字符串中的内容为:*a*bc*def*g*,移动后,字符串中的内容应当是:a*bc*def*g*。在编写函数时,不得使用c语言提供的字符串函数。void fun(char *a)int i0,n0;char *p;pa;while (*p*) /*判断*p是

12、否是*号,并统计精品.*号的个数*/n;p;while(*p) /*将前导*号后的字符传递给a*/ai*p;i;p;while(n!0)ai*;i;n;ai0; 20编写函数fun,其功能是:将两个两位数的正整数a、b精品.合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a45,b12时,调用该函数后,c1524。void fun(int a,int b,long *c)*ca/10(b%10)*10(a%10)*100(b/10)*1000;21编写函数fun,其功能是计算:s作为函数值返回。在c语言

13、中可调用log(n)函数求ln(n)。log函数的引用说明为:double log(double x)。例如,若m的值为20,则fun函数值为6.506583。double fun(int m)int i;精品.double s0.0;for(i1;im;i) sslog(i);/*计算sln(1)ln(2)ln(3)ln(m)*/return sqrt(s);/*对s求平方根并返回*/22规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*

14、号的个数。在编写函数时,不得使用c语言提供的字符串函数。例如,字符串中的内容为:*a*bc*def*g*,删除后,字符串中的内容应当是:a*bc*def*g。void fun (char *a,int n ,int h , int e)int i,j0;精品.for(ih;ine;i)/*第一个字母和最后一个字母之间的字符全不删除*/ajai;aj0; /*在字符串最后加上结束标识*/23函数fun的功能是:将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为abcdefghijk时,在t所指数组中的内容应是:bdfhj。void fun(c

15、har *s,char t)int i,j0,kstrlen(s);/*k为字符串的长度*/for(i1;ik;ii2)/*将s所指字符串中下标为奇数的字符存入t所指字符串中*/tjsi;精品.24编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。例如,当a45,b12,调用该函数后c2415。void fun(int a,int b,long *c)*ca%10(b/10)*10(a/10)*100(b%10)*1000;25假定输入的字符串中只包含字

16、母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用c语言提供的字符串函数。例如,字符串中的内容为*a*bc*def*g*,删除后,字符串中的内容应当是abcdefg*。void fun(char *a,char *p)精品.char *ta;for(;tp;t)if(*t!*) *(a)*t;/*将p以前所有不是*号的字符保留下来*/for(;*t!0;t)*(a)*t;/*将p以后的所有*号保留下来*/*a0;/*在字符串最后加上字符串结束标识*/26学生的记录由学号和成绩组成,n名学生的数据已放

17、入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。void fun (strec a)int i,j;精品.strec t;for(i1;in;i)/*用冒泡法进行排序,进行n1次比较*/ for(j0;jn1;j)/*在每一次比较中要进行n1次两两比较*/if(ajsaj1s)taj;ajaj1;aj1t;/*按分数的高低排列学生的记录,高分在前*/27学生的记录由学号和成绩组成。n名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平

18、均分通过函数值返回。double fun (strec *a,strec *b, int *n)int i;精品.double av0.0;*n0;for(i0;in;i)avavais;avav/n;/*求平均值*/for(i0;in;i) if(avais) b*nai;*n*n1;/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/return av;/*返回平均分*/28编写函数fun,其功能是:将1到m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出:711142122283335424449void fun

19、(int m, int *a, int *n)精品.int i,j0;for(i1;is;while(h!null)/*通过循环找到最高分数*/精品.if(maxs) maxhs; hhnext;return max;31请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。void fun(int a,int n, int *max, int *d)int i;*maxa0;*d0;for(i0;in;i)/*将最大的元素放入指针m

20、ax精品.所指的单元,最大元素的下标放入指针d所指的单元*/if(*maxai)*maxai;*di;32编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ascii值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串的内容为:abcdefg12345,其中字符a的ascii码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ascii码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为:135。void fun(char *s,char t) int i,j0,n;nst

21、rlen(s);for(i0;in;i)精品.if(i%2!0&si%2!0) tjsi;/*将下标为奇数同时ascii码值为奇数的字符放入数组t中*/ j;tj0; /*最后加上结束标识符*/33编写函数fun,其功能是:实现baa,即将矩阵a加上a的转置,存放在矩阵b中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为: 程序输出:26106 1014精品.101418void fun (int a33, int b33)int i,j;for(i0;i3;i)for(j0;j3;j) bijaijaji; /*把矩阵a加上a的转置,存放在矩阵b中*/34请编写函数fun,

22、该函数的功能是:统计各年龄段的人数。n个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0至9岁年龄段的人数放在d0中,把10至19岁年龄段的人数放在d1中,把20至29岁年龄段的人数放在d2中,依此类推,把100岁(含100岁)以上年龄的人数都放在d10中。结果在主函数中输出。void fun(int *a, int *b)int i,j;精品.for(j0;j100) b10;/*如果年龄大于等于100,b10自增1;/*如果年龄小于100,则将其分别统计到bai/10中*/35学生记录由学号和成绩组成,n名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是

23、:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。int fun(strec *a,strec *b)int i,j0,n0,min;mina0s;for(i0;in;i) if(aismin)精品. minais;for(i0;in;i) if(aismin) *(bj)ai;j;n; return n;36请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则是把第1m个字符,平移到字符串的最后,把第m1到最后的字符移到字符串的前部。例如,字符串中原有的内容为abcdefghijk,m的值为3,移动后,字符串中的内容应该是de

24、fghijkabc。void fun (char *w,int m)int i,j;char t;精品.for(i1;i10000) return w%10000;/*求出n位整数w的后n1位的数*/if(w1000) 精品.return w%1000;if(w100) return w%100;if(w10) return w%10;39请编写函数fun,该函数的功能是:将m行n列的二维数组中的数据,按行的顺序依此放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为:333333334444444455555555则一维数组中的内容应该是3333333

25、34444444455555555void fun (int (*s)10, int *b, int *n, int mm, int nn)精品.int i,j,k0;for(i0;imm;i)/*将二维数组s中的数据按行的顺序依次放到一维数组b中*/for(j0;jnn;j)bksij;*nk;/*通过指针返回元素个数*/40编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。 例如:若n的值为11时,函数的值为1.833333float fun(int n)int i,s10;float s0.0;for(i1;in;i)精品.s1s1i;/*求每一项的

26、分母*/ ss1.0/s1;/*求多项式的值*/ return s; s1s1i;/*求每一项的分母*/ ss1.0/s1;/*求多项式的值*/ return s; 41编写函数fun,其功能是:将s所指字符串中ascii值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。例如,若s所指字符串中的内容为:abcdefg12345,其中字符a的ascii码值为奇数、字符1的ascii码值也为奇数、都应当删除,其它依此类推。最后t所指的数组中的内容应是:bdf24。精品.void fun(char *s,char t)int i,j0,n;nstrlen(s);for(i0;in;i)/*找出

27、ascii码值为偶数的字符依次存入数组中*/if(si%20)tjsi;j;tj0;?42下列程序定义了nn的二维数组,并在主函数中自动赋值。请编写函数fun(int an),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为:精品.a1 9 72 3 84 5 6则返回主程序后a数组中的值应为: 0 9 7 0 0 8 0 0 043规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,形参p指向字符串的中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。例如,若字

28、符串中的内容为*a*bc*def*g*,删除后,字符串中的内容应当是:*abcdefg*。在编写函数时,不得使用c语言提供的字符串函数。void fun(char *a,char *h,char *p)精品.int i0;char *qa;while (qh)/*判断前导*号的结束*/ai*q;q;i;while (qn)/*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/ while(*p)ai*(pkn);精品.i; p; ai0;/*在字符串最后加上结束标识位*/46编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十

29、位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a45,b12时,调用该函数后c2514。void fun(int a,int b,long *c)*ca/10(b/10)*10(a%10)*100(b%10)*1000;精品.47请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。例如,若输入字符串1234,则函数把它转换为整数值1234。long n0;int flag1;if(*p)/*负数时置flag为1;flag 1;else if(*p)/*正数时置flag为1p;while(*p!0

30、)nn*10*p0;/*将字符串转成相应的整数*/p;return n*flag;48编写函数fun,其功能是:求fibonacci数列中大于t精品.的最小的数,结果由函数返回。fibonacci数列f(n)的定义为:f(0)0,f(1)1f(n)f(n1)f(n2)例如,当t1000时,函数值为1597。int fun(int t)int f00, f11,f;doff0f1;f0f1; f1f;while(fa&ssin)while(*p&ptn1)ai*p; i;p; 精品. ai0;53函数fun的功能是:将s所指字符串中除下标为偶数同时ascii码值也为偶数的字符外,其余的全部删除;

31、字符串中剩余字符所形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为:abcdefg123456,其中字符a的ascii码值为奇数,因此应当删除;其中字符b的ascii码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ascii码值为偶数,但在数组中的下标为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是246。void fun(char*s, char t)int i,j0;for(i0;si!0;i)if(i%20&si%20) /*将s所指字符串中下标和精品.ascii码值都为偶数的字符放入数组t中*/tjsi;tj0/*在字符串最后加上结束标识*/5

32、4函数fun的功能是:将两个两位数的正整数 a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a45,b12时,调用该函数后c4152。void fun(int a,int b,long *c)*cb%10(a%10)*10(b/10)*100(a/10)*1000;55学生的记录由学号和成绩组成,n名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把指定分数范围内的学生数据放在精品.b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是6069,则应当把分数在6

33、069的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。int fun (strec *a, strec *b, int l, int h )int i,j0;for(i0;il&aish) /*将分数高于l,低于h的学生记录存于结构体数组b中*/bjai;return j;/*返回分数范围内的学生人数*/56请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。精品.例如,输入如下整数:876 675 896 101 301 401 980 431 451 77

34、7则输出结果为6,980。int fun(int *s,int t,int *k)int i;*k0;/*k所指的数是数组的下标值*/for(i0;it;i)if(s*ksi) *ki;/*找到数组的最大元素,把该元素的下标赋给k所指的数*/return s*k;/*返回数组的最大元素*/57请编写函数fun,其功能是:计算并输出当x0.97时,如下多项式的值,直到|snsn1|1e6);精品.return sum;58编写函数fun,它的功能是:根据以下公式求p的值,结果作为函数值返回。m与n为两个正数且要求mn。pm!/(n!(mn)!)例如,m12,n8时,运行结果为 495.00000

35、0。float fun (int m, int n)int i;double p1.0;for(i1;im;i) pp*i;/*求m!*/for(i1;in;i) pp/i;/求m!/n!*/for(i1;imn;i)精品. pp/i;/*求m!/(n!(mn)!)*/ return p;59请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为13579299946999813570则函数值为61。int fun( int amn)int i,j,sum0;精品.for(i0;im;i)for(j0;jn;j)if(i

36、0|im1|j0|jn1)/*只要下标中有一个为0或m1或n1,则它一定是周边元素*/sumsumaij;/*将周边元素相加*/return sum;60请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都一样的字符串。例如,字符串level是回文,而字符串123312就不是回文。int fun(char *str)精品.int i,n0,fg1;char *pstr;while(*p)/*将指针p置位到字符串末尾,并统计字符数*/n;p;for(i0;in/2;i)/*循环比较字符*/if(stristrn1i) ;/*相同,什么都不作*/else/*不同,直接跳出循环*/fg0;break;return fg;精品.61编写函数int fun(int lim, int aamax),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数

温馨提示

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

评论

0/150

提交评论