广工Anyview试题答案第八章.docx

上传人:h**** 文档编号:1228864 上传时间:2018-12-30 格式:DOCX 页数:12 大小:19.03KB
下载 相关 举报
广工Anyview试题答案第八章.docx_第1页
第1页 / 共12页
广工Anyview试题答案第八章.docx_第2页
第2页 / 共12页
广工Anyview试题答案第八章.docx_第3页
第3页 / 共12页
广工Anyview试题答案第八章.docx_第4页
第4页 / 共12页
广工Anyview试题答案第八章.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、/*【习题 8.011】请编写函数 func(char s, char t, int n),由数组 s 中长度为 n 的字符序列构造其逆序列,并存储在数组 t 中。例如,由给定字符序列 s=“are“求得逆序列 t=“era“;由 s=“time“求得 t=“emit“。*/void func(char s, char t, int n) /* 数组 s 的前 n 个元素存放给定的字符序列,数组 t 的前 n 个元素存放 s 的逆序列。注意:数组的下标从 0 开始。*/ for(int i=0;i=0)个字符开始的所有字符,按升序的次序构成字符串 t。*/void substr(char *s

2、, int m, char *t)/* s 为字符串的起始地址,m=0,t 为新字符串的起始地址,注意:字符串尾字符之后跟随着一个结束符0 ,即 ASCII 码为 0 的字符,结束符不属于字符串。要求:s 串不能发生改变,t 串存放新的字符串。*/ int f=0;for(int i=m;si!=0;i+)tf+=si;tf=0;if(m=0|m=1|m=2)break;else char c=t0; int k=0;for(i=0;ti!=0;i+)for(int j=i;tj!=0;j+)if(c=tj)c=tj;tj=tk;tk+=c;c=tk; /*【习题 8.020】在字符串 s 中

3、查找字符 c,如果找到,返回字符 c首次出现在字符串 s 中的位置指针;否则,返回空指针 NULL。*/char *match(char *s, char c) /* 返回字符在串 s 中首次出现的位置指针 */for(int i=0;si!=0;i+)if(*(s+i)=c)return s+i;return NULL;/*【习题 8.033】编写函数,计算年份 year 中第 yearday 天相应的月和日。例如,调用函数 month_day(2000,61,if(year%4=0for(int i=0;i0for(int i=0;i0)个整数中的最大值。注意:要求在函数中采用指针(而不是

4、下标)来处理数组元素。*/int findmax(int s, int n) /* 返回 s 中 n(0)个整数的最大值。注意:要求在函数中采用指针(而不是下标)来处理数组元素。*/int t=*s;for(int i=0;it)t=*(s+i);return t;/*【习题 8.124】请编写一个函数 min3adj(int s, int n),数组 s 中有 n(0)个整数,返回在 s 中相邻三个数的和中的最小值。*/int min3adj(int s, int n) /* 数组 s 含 n(=3)个整数,返回在 s 中相邻三个数的和中的最小值。*/int t=*(s+n-1)+*(s+n

5、-2)+*(s+n-3);for(int i=n-1;i1;i-)if(t*(s+i)+*(s+i-1)+*(s+i-2)t=*(s+i)+*(s+i-1)+*(s+i-2);return t;/*【习题 8.132】编写函数,通过指针参数 sum 将 x 和 y 的和赋给相应实际参数。例如,若 x=134、y=378,则 sum的实参变量被赋值 512。*/void func(int x, int y, int *sum)*sum=x+y;/*【习题 8.136】编写函数,返回指针参数 x 和 y 所指向的变量的值之和。*/int func(int *x, int *y)return *x+

6、*y;/*【习题 8.138】编写函数,比较指针参数 x 和 y 分别指向的变量,若前者的值较大,则交换两者的值,并返回 1;否则无须交换,返回 0。*/int func(int *x, int *y)if(*x*y)int t=*x;*x=*y;*y=t;return 1;return 0;/*【习题 8.143】假设指针 a 指向某数组中的一个元素。编写函数,在从元素*a 开始的 n 个元素范围内,向后查找给定值 x,一旦找到值等于 x 的元素,则返回该元素的序号;若找不到,则返回 0。例如,假定 a 指向的10 个元素依次为 5,6,3,0,-4,8,9,-6,8,-7,若 x=5,则返

7、回 1;若 x=8,则返回 6;若 y=4,则返回 0。*/int func(int n, int *a, int x)for(int i=0;in;i+)if(*(a+i)=x)return i+1;return 0;/*【习题 8.146】假设指针 a 指向某数组中的一个元素。编写函数,对从元素*a 开始的 n 个元素,统计并返回值为 x 的元素个数(若不存在这样的元素,则返回 0) 。*/int func(int n, int *a, int x)int t=0;for(int i=0;in;i+)if(*(a+i)=x)t+;if(t=0)return 0;return t;/*【习题

8、 8.203】编写函数,返回指针参数 s 所指向的字符串的长度。例如,若该串为“I am a student.“,则函数返回值是 15。注意:字符串结束符是0 ,不计入长度。不允许调用库函数 strlen()。*/int func(char *s) for(int i=0;*(s+i)!=0;i+)return i;/*【习题 8.212】编写函数,在指针参数 s 所指向的字符串中顺序查找由 c 指定的字符。一旦找到,则返回该字符在串中的序号(串的首个字符的序号为 1) ,否则返回 0。例如,若该串为 “I am a student.“,c=t,则函数返回值为 9。注意:字符串结束符是0,不允

9、许调用字符串库函数。*/int func(char *s, char c)for(int i=0;*(s+i)!=0;i+)if(*(s+i)=c)return i+1;/*【习题 8.215】编写函数,在指针参数 s 所指向的字符串中统计并返回由 c 指定的字符的个数。例如,若该串为“I am a student.“,c=t ,则函数返回值为 2。注意:字符串结束符是0,不允许调用字符串库函数。*/int func(char *s, char c)int t=0;for(int i=0;*(s+i)!=0;i+)if(*(s+i)=c)t+;return t;/*【习题 8.222】编写函数

10、,复制指针参数 s 指向的字符串到由指针参数 t 已经指向的存储区域。注意:字符串结束符是0,不允许调用字符串库函数。*/void func(char *s, char *t)for(int i=0;*(s+i)!=0;i+)*(t+i)=*(s+i);*(t+i)=0;/*【习题 8.225】编写函数,由指针参数 s 指向的字符串头 n 个字符构造一个字符串,并存储到到由指针参数 t 已经指向的存储区域。例如,若 s 指向的字符串为“I am a student.“,n=4,则 t 指向的串为“I am“。注意:字符串结束符是0 ,不允许调用字符串库函数。*/void func(char *

11、s, int n, char *t) for(int i=0;in;i+)*(t+i)=*(s+i);*(t+i)=0;/*【习题 8.228】编写函数,由指针参数 s 指向的字符串后 n 个字符构造一个字符串,并存储到到由指针参数 t 已经指向的存储区域。例如,若 s 指向的字符串为“I am a student.“,n=8,则 t 指向的串为“student.“。注意:字符串结束符是 0,不允许调用字符串库函数。*/void func(char *s, int n, char *t) for(int i=0;*(s+i)!=0;i+)int k=0;for(int j=i-n;*(s+j)

12、!=0;j+)*(t+(k+)=*(s+j);*(t+k)=0;/*【习题 8.231】编写函数,由指针参数 s 指向的字符串中第 i 个字符开始的 n 个字符构造一个字符串,并存储到到由指针参数 t 已经指向的存储区域。例如,若 s 指向的串为 “I am a student.“,i=8,n=7,则 t 指向的串为“student“。注意:字符串结束符是0,不允许调用字符串库函数。*/void func(char *s, int i, int n, char *t) int k=0;for(int j=i-1;kn;j+)*(t+(k+)=*(s+j);*(t+k)=0;/*【习题 8.23

13、4】编写函数,通过将 s 字符串中所有小写字母转换成大写字母,构造一个字符串并存储在 t 已经指向的存储区域,但原来的 s 串不改变。例如,若 s 字符串为“I am a student.“,则构造的 t 串为“I AM ASTUDENT.”。*/void func(char *s, char *t)for(int i=0;*(s+i)!=0;i+) if(a=*(s+i)else *(t+i)=*(s+i);*(t+i)=0;/*【习题 8.237】编写函数,通过将 s 字符串中所有大写字母转换成小写字母,构造一个字符串并存储在 t 已经指向的存储区域,但原来的 s 串不改变。例如,若 s

14、字符串为“I Am a Student.“,则构造的 t 串为“i am astudent.”。*/void func(char *s, char *t)for(int i=0;*(s+i)!=0;i+) if(A=*(s+i)else *(t+i)=*(s+i);*(t+i)=0;/*【习题 8.243】编写函数,在字符串 s 中顺序查找字符串 t,若找到,则返回其出现的位置,否则返回 0。例如,设 s=“I am a student.“,若 t=“stu“,则返回值是 8;若 t=“an“,则返回值是 0。注意:字符串结束符是0,不允许调用字符串库函数。*/int func(char *s, char *t)int k=0;for(int i=0;*(s+i)!=0;i+)if(*(s+i)=*(t+k)if(*(s+i+1)=*(t+k+1)return i+1;return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。