ImageVerifierCode 换一换
格式:DOCX , 页数:60 ,大小:36.71KB ,
资源ID:12805441      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12805441.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C程序设计.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C程序设计.docx

1、C程序设计1.将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串-1234,则函数把它转换为整数值 -1234。long fun ( char *p) /* 以下代码仅供参考 */ int i, len, t; /* len为串长,t为正负标识 */ long x=0; len=strlen(p); if(p0=-) t=-1; len-; p+; else t=1; /* 以下完成数字字符串转换为一个数字 */ while(*p) x = x*10-48+(*p+); return x*t; 2. 将M行N列的二维数组中的字符数据, 按列的顺序

2、依次放到一个字符串中。 例如, 二维数组中的数据为:W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH。 void fun(char sN, char *b) int i,j,n=0; for(i=0; i N;i+) /* 请填写相应语句完成其功能 */ for(j = 0 ; j M ; j+) bn = sji ; n = i * M + j + 1; bn=0; 3. 统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干个空格隔开, 一行的开始没有空格。 int fun( char *

3、s) int k = 1 ; while(*s) if(*s = ) k+ ; s+ ; return k ; 4. 统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d0中,把10至19岁年龄段的人数放在d1中,把20至29岁年龄段的人数放在d2中,其余依此类推, 把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+ ; e

4、lse bj+ ; 5. 删去一维数组中所有相同的数, 使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如, 一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 int fun(int a, int n) int i, j = 1, k = a0 ; for(i = 1 ; i n ; i+) if(k != ai) aj+=ai ; k = ai ; aj = 0 ; return j ; 6. 移动字符串中的内容,移动的规则如下: 把第

5、1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。 例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。void fun(char *w, int m) /* 可调用fun1函数左移字符 */ int i; for(i = 0 ; i 10000) w %= 10000 ; else if(w1000) w %= 1000 ; else if(w100) w %= 100 ; else if(w10) w %=10 ; return w ; 8.程序定义了NN的二维数组,并在主函数中自

6、动赋值。请编写函数fun(int aN, int n),函数的功能是:使数组左下三角元素中的值乘以n 。 例如:若n的值为3,a 数组中的值为; | 1 9 7 | | 2 3 8 | 4 5 6 | 则返回主程序后a数组中的值应为;| 3 9 7 | | 6 9 8 | 12 15 18| int fun ( int aN, int n ) int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j = i; j+) aij *= n ; 9. 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后

7、。例如, 一维数组中的原始内容为: 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 i, j = 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. 请编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入asd af aa z67, 则输出为 as

8、dafaaz67。int fun(char *str) char *p = str ; int i = 0 ; while(*p) if(*p != ) stri+ = *p ; p+ ; stri = 0 ; 11. 将放在字符串数组中的M个字符串(每串的长度不超过N), 按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。例如, 字符串数组中的M个字符串为 AAAA BBBBBBB CC 则合并后的字符串的内容应是: AAAABBBBBBBCC。 提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。void fun(char aMN, char *

9、b) /* 以下代码仅供参考 */ int i; *b=0; for(i = 0 ; i M ; i+) strcat(b, ai) ; 12. 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。函数fun中给出的语句仅供参考。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 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 i,j,np=

10、0; /* np用作b数组下标 */ for(i = 0 ; i nn ; i+) for(j = 0 ; j mm ; j+) bnp = sji ; np = i * mm + j + 1; *n=np; 13.将M行N列的二维数组中的数据,按行的顺序 依次放到一维数组中, 一维数组中数据的个数存放在形参n所指的存储单元中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 55 55 55 55。void fun(int (*s)10, int *b, int *

11、n, int mm, int nn) int i, j, k ; for(i = 0 ; i mm ; i+) for(j = 0 ; j nn ; j+) k = i * nn + j ; bk = sij ; *n = mm * nn ; 14. 判断字符串是否为回文?若是, 函数返回1,主函数中输出: YES, 否则返回0, 主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如, 字符串LEVEL是回文, 而字符串123312就不是回文。int fun(char *str) int i, j = strlen(str) ; for(i = 0 ; i s; STREC *p; p=

12、h-next; while(p) if(p-smax ) max=p-s; p=p-next; return max; 16. 对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa 。int fun(char *s,int num) char ch ; int i, j ; for(i = 1 ; i 6 ; i+) for(j = i + 1 ; j 6 ; j+) if(*(s + i) *(s + j) ch = *(s + j) ; *(s + j) = *(s +i) ; *(s + i

13、) = ch ; 17. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。int fun( STREC *a,STREC *b,int l, int h ) int i,j = 0 ; for(i = 0 ; i = l & ai.s = h) bj+ = ai ; return j ; 18. 将

14、s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:ABCDEFG12345,其中字符A的ASCII码值为奇数、字符1的ASCII码值也为奇数、 都应当删除,其它依此类推。最后t所指的数组中的内容应是:BDF24。void fun(char *s, char t) int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2=0) tj+ = si ; tj = 0 ; 19. 将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量

15、c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。 例如,当a45,b=12。调用该函数后,c=2415。void fun(int a, int b, long *c) *c = (b%10)*1000+(a/10)*100+(b/10)*10+a%10; 20. 函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为 61。int fun ( int aMN ) int tot = 0, i ; for(i = 0 ; i N ;

16、i+) tot += a0i ; tot += aM-1i ; for(i = 1 ; i M - 1 ; i+) tot += ai0 ; tot += aiN-1 ; return tot ; 21. 程序定义了NN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。 例如:a 数组中的值为 |0 1 2 7 9| |1 9 7 4 5| a = |2 3 8 3 1| |4 5 6 8 2| |5 9 1 4 1| 则返回主程序后s的值应为: 3.375。double fun ( int wN ) int i, n=0; d

17、ouble sum=0; for ( i =0; iN; i+ ) sum+=w0i+wN-1i; n+=2; for ( i =1; iN - 1; i+ ) sum +=wi0+wiN-1; n+=2; return sum/n; 22. 将两个两位数的正整数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/1

18、0)*10+(a/10); 23. 函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。int fun(int lim, int aaMAX) /* 以下代码仅供参考 */ int i,j,k=0; /* 其中变量k用于统计素数个数 */ for(i=2;i=lim;i+) /* 以下完成判断aa数组中小于或等于lim的素数并统计个数 */ for(j = 2 ; j (i/2) aak+ = i; return k; 24. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功

19、能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数int fun( STREC *a, STREC *b ) int i, j = 0, min=a0.s ; for(i = 0 ; i ai.s) j = 0 ; bj+ = ai ; min = ai.s ; else if(min = ai.s) bj+ = ai ; return j ; 25. 将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:ABCDEFG12345,其中字符B的ASCII码值为偶数、字

20、符2的ASCII码值为偶数、 都应当删除,其它依此类推。最后t所指的数组中的内容应是:ACEG135。void fun(char *s, char t) int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ; 26. 求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传送给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 void fun ( int m, int *a , int *n ) int i ; *n=0

21、 ; for(i=7 ; i=eps) s+=t; n+; t=t*n/(2.0*n+1); return (s*2.0); 28. 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7 和 11 整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。 void fun (int *a, int *n) int i ; *n = 0 ; for(i = 7 ; i 1000 ; i+) if(i % 7) = 0 | (i % 11) = 0) & (i % 77) != 0) a(*n)+ = i ; 29. 学生的记录由学号和成绩组成,N名学生的数据已在主函数

22、中放入结构体数组s中, 请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。double fun( STREC *a, STREC *b, int *n ) double t=0 ; int i ; *n = 0 ; for(i = 0 ; i N ; i+) t = t + ai.s ; t = t / N ; for(i = 0 ; i t) b(*n)+ = ai ; return t ; 30.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

23、函数fun中给出的语句仅供参考。 例如,字符串中的内容为:*A*BC*DEF*G*,移动后,字符串中的内容应当是:A*BC*DEF*G*。在编写函数时, 不得使用C语言提供的字符串函数。 void fun( char *a ) /* 以下代码仅供参考 */ char *p,*q; int n=0; p=a; while(*p=*) /* 统计串头*个数n */ n+; p+; q=a; /* 向前复制字符串,请填写相应的语句完成其功能 */ while(*p) *q=*p; p+;q+; for(;n0;n-) /* 在串尾补n个* */ *q+=*; *q=0; 31. 请编写一个函数voi

24、d fun (char a,char b,int n),其功能是:删除一个字符串中指定下标的字符。其中, a指向原字符串, 删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串: World,然后输入3,则调用该函数后的结果为: Word。void fun (char a, char b, int n) strncpy(b, a, n) ; bn = 0 ; strcat(b, a + n + 1) ; 32. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号; 若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。函数fun中给出的语句仅供参考。 例如,字符串中的内容为:*A*BC*DEF*G*,若n的值为4,删除后,字符串中的内容应当是:*A*BC*DEF*G*;若n的值为8,则字符串中的内容仍为:*A*BC*DEF*G*。n的值在主函数中输入。 在编写函数时,不得使用 C语言提供的字符串函数。 void fun(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1