c语言 求助字符串中指定字符的个数 并返回此值 1234,二级C语言程序设计题.doc...

二级C语言程序设计题.doc

C语言程序设计请编写函数fun,其功能是找出2M整型二维数组中最大元素的值,并将此值返回调用函数。int fun int aMint i,j,maxa00; fori0;i2;i forj0;jM;j ifmaxaij maxaij; return max;编写函数fun,其功能是根据以下公式求的值要求精度0.0005,即某项小于0.0005时停止迭代。 程序运行后,若输入精度0.0005,则程序应输出为3.14。double fun double eps double s1.0,s11.0; int n1; whiles1eps /*当某项大于精度要求时,继续求下一项*/ s1s1*n/2*n1; /*求多项式的每一项*/ sss1; /*求和*/ n; return 2*s;编写函数fun,其功能是求出11000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。void fun int *a, int *n int i,j0; fori1;i1000;i /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/ ifi70i110i770 aji; *nj; 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为A*BC*DEF*G*,删除后字符串中的内容应当是ABCDEFG。void fun char *a int i,j0; fori0;ai0* ajai; /*若不是要删除的字符*则留下*/ aj0*A*BC*DEF*G,删除后字符串中的内容应当是A*BC*DEF*G。编写函数时,不得使用C语言提供的字符串函数。void fun char *a char *pa; while*p* p; /*指针p指向字符串第一个字母*/ for;*p0 /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/ *a0 for;tp;t if*t* *a*t; for;*t0 *a0A*BC*DEF*G*,删除后,字符串中的内容应当是A*BC*DEF*G。void fun char *a, int n,int h,int e int i,j0; forih;in-e;i /*第一个字母和最后一个字母之间的字符全不删除*/ ajai; aj0 char *pa; while*p*p* ai*p; i; p; while*p if*p* ai*p;i; p; ai0A*BC*DEF*G*,删除后,字符串中的内容应当是A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。void fun char *a while*a0 a; a; /*指针a指向字符串的尾部*/ while*a* a; /*指针a指向最后一个字母*/ *a10*A*BC*DEF*G,移动后,字符串中的内容应当是A*BC*DEF*G*。在编写函数时,不得使用C语言提供的字符串函数。void fun char *a int i0,n0;char *p;pa;while *p* /*判断*p是否是*号,并统计*号的个数*/ n;p;while*p /*将前导*号后的字符传递给a*/ ai*p;i;p;whilen0ai*n;ai0 fori0;p1i0 forj0;p2j0 p1i0 a-ave0.0; fori0;iN;i a-avea-avea-si; /*求各门成绩的总和*/ a-ave/N; /*求平均分*/N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是求出平均分,并由函数值返回。例如,若学生的成绩是8576698591726487,则平均分应当是78.625。double fun STREC *h double ave0.0; STREC *ph-next; whilepNULL aveavep-s; pp-next; return ave/N;编写函数fun,其功能是将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。例如,若输入17,则应输出46891012141516。void fun int m, int *k, int xx int i,j,n0;fori4;im;i /*找出大于1小于整数m的非素数*/ forj2;ji;j ifij0 break; ifji xxni;*kn; /*返回非素数的个数*/ 编写函数fun,其功能是求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。int funchar *ss, char cint i0; for;*ss0/*求出ss所指字符串中指定字符的个数*/ return i;编写函数fun,其功能是计算n门课程的平均分,结果作为函数值返回。例如若有5门课程的成绩是90.5,72,80,61.5,55,则函数的值为71.80。float fun float *a , int n int i; float av0.0; fori0; in;i /*求分数的总和*/ avavai; returnav/n; /*返回平均值*/学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是把分数最高的学生数据放在b所指的数组中。注意分数最高的学生可能不止一个,函数返回分数最高的学生的人数。int fun STREC *a, STREC *b int i,j0,maxa0.s; /*找出最大值*/ fori0;iN;i ifmaxai.s maxai.s; fori0;iN;i ifmaxai.s bjai; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/编写函数void funchar *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 funchar *tt, int ppint i; fori0;i26;i ppi0; /*初始化pp数组各元素为0*/ for;*tt0a*ttz pp*tt-a; 编写函数fun,其功能是比较字符串的长度,不得使用C语言提供的求字符串长度的函数,函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。例如,输入beijingCRshanghaiCRCR为回车键,函数将返回shanghai。char *fun char *s, char *t int i,j; fori0;si 0 /*求字符串的长度*/ forj0;tj 0 ifij /*比较两个字符串的长度*/ return t; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return s;学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。用于字符串比较的函数是strcmp。STREC fun STREC *a, char *b int i; STREC str0,-1; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置1*/ fori0;iN;i ifstrcmpai.num,b0 /*找到指定学号的学生数据*/ strai; return str; /*返回学生记录*/函数fun的功能是将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。void funchar *s, char t int i,j0; fori0;si0 si20 /*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/ tjsi; tj0 x10.0;dox0x1;x1cosx0;whilefabsx0-x11e-6;return x1;学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是把分数最低的学生数据放入b所指的数组中,注意分数最低的学生可能不止一个,函数返回分数最低的学生人数。int fun STREC *a, STREC *b int i,j0,mina0.s; fori0;iN;i ifminai.s minai.s; /*找出最小值*/ fori0;iN;i ifminai.s bjai; /*找出成绩与min相等的学生的记录,存入结构体b中*/ return j; 编写函数fun,其功能是计算s作为函数值返回。 在C语言中可调用logn函数求lnn。log函数的引用说明为double logdouble x。 例如,若m的值为20,则fun函数值为6.506583。double fun int m int i; double s0.0; fori1;im;i sslogi; /*计算sln1ln2ln3lnm*/ return sqrts; /*对s求平方根并返回*/函数fun的功能是将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为ABCDEFGHIJK时,在t所指数组中的内容应是BDFHJ。void funchar *s, char tint i,j0,kstrlens; /*k为字符串的长度*/ fori1;ik;ii2 /*将s所指字符串中下标为奇数的字符存入t所指字符串中*/ tjsi; tj0学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是按分数降序排列学生的记录,高分在前,低分在后。void fun STREC a int i,j; STREC t; fori1;iN;i /*用冒泡法进行排序,进行N1次比较*/ forj0;jN-1;j /*在每一次比较中要进行N1次两两比较*/ ifaj.saj1.s taj;ajaj1;aj1t; /*按分数的高低排列学生的记录,高分在前*/学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。double fun STREC *a, STREC *b, int *n int i; double av0.0; *n0; fori0;iN;i avavai.s; avav/N; /*求平均值*/ fori0;iN;i ifavai.s b*nai;*n*n1; /*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/ return av; /*返回平均分*/编写函数fun,其功能是将1到m之间含m能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出711142122283335424449void fun int m, int *a , int *n int i,j0; fori1;im;i ifi70i110 /*求出1到m含m之内能被7或11整除的所有整数放在数组a中*/ aji; *nj; /*返回这些数的个数*/N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是找出学生的最高分,并由函数值返回。double fun STREC *h double maxh-s; whilehNULL /*通过循环找到最高分数*/ ifmaxh-s maxh-s; hh-next; return max;请编写函数fun,其功能是找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。void funint a,int n, int *max, int *d int i; *maxa0; *d0; fori0;in;i /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if*maxai *maxai;*di;编写函数fun,其功能是将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串的内容为ABCDEFG12345,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为135。void funchar *s, char t int i,j0,n; nstrlens; fori0;in;i ifi20si20 tjsi; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j; tj0,即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵其转置矩阵为 程序输出 void fun int a33, int b33int i,j; fori0;i3;i forj0;j3;j bijaijaji;/*把矩阵a加上a的转置,存放在矩阵b中*/请编写函数fun,该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是33 44 55 33 44 55 33 44 55 33 44 55void funint *s10,int *b,int *n,int mm,int nn int i,j; forj0;jnn;j /*将二维数组中的数据按列的顺序依次放入一维数组中*/ fori0;imm;i b*n**sij; *n*n1; /*通过指针返回元素个数*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值