




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档整数分离与合并(1) 将两个两位的正整数a、b合并形成一个整数放在c中:将a的十位和个位数放在c的千位和十位,b的十位和个位数放在c的百位和个位。例如:若a = 45, b = 12,使c = 4152。 void fun(int a, int b, int *c)/ c是指针 *c = a/10*1000+b/10*100+a%10*10+b%10; (2) 判断整数x是否是同构数(规定x是不大于100的正整数)。若是,函数返回1,否则返回0。如果某个整数能够在它的平方数的最右边出现,就是“同构数”。例如:5的平方数是25,5是25右边的数,所以5是同构数。 int fun(int x) return (x = 10 & x*x%100 = x); (3) w是大于10的无符号整数,求w后n-1位的数作为函数值返回。例如:若w是234,则返回34。 unsigned fun(unsigned w) unsigned t = w, m = 1; while (t) t /= 10; m *= 10; return w % (m / 10); 四舍五入(4) 对变量x中的值保留2位小数,并对第3位进行四舍五入(规定x中的值为正数)。 double fun(double x) return (int)(x * 100 + 0.5) / 100.0; (5) 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根,并作为函数值返回。整除和素数问题 double fun(int n) int i; double s = 0; for (i = 1; i n; i+) if (i % 3 = 0 & i % 7 = 0) s += i; return sqrt(s);/平方根 (6) 求1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过函数返回这些数的个数。 int fun(int *a, int m) int i, j = 0; for (i = 1; i = m; i+) if (i % 7 = 0 | i % 11 = 0) aj+ = i;/ j+模式 return j; (7) 求3到n之间所有素数的平方根之和,并返回。 double fun(int n) int i, k; double s = 0; for (i = 3; i = n; i+) for (k = 2; k i; k+)/判断素数 if (i % k = 0) break;/整除中止 if (i = k) s += sqrt(i);/是素数 return s; (8) 求出小于或等于lim的所有素数并放在a数组中,该函数返回所求的素数的个数。 int fun(int lim, int aMAX) int i, k, j = 0; for (i = 2; i = lim; i+) for (k = 2; k i; k+) if (i % k = 0) break; if (k = i) aj+ = i;/ j+模式 return j; (9) 将大于整数m且紧靠m的n个素数存入x所指的数组中。 void fun(int m, int n, int x ) int i, k, j = 0; for (i = m + 1; j n; i+) for (k = 2; k i; k+) if (i % k = 0) break; if (k = i) xj+ = i;/ j+模式 (10) 求数组前n个数的小数部分的和,并返回。求总和均值极值 double fun(int n, double a ) int i; double s = 0; for (i = 0; i n; i+) s += ai - (int)ai;/原数-整数 return s; (11) 把a数组的n个数的平方值,与b数组中逆序的n个数的平方值一一对应相加,存放在c数组中。 void fun(int a , int b , int c , int n) int i; for (i = 0; i n; i+)ci = ai * ai + bn-1-i * bn-1-i; (12) 计算并返回a数组中n门课程的平均分。 double fun(int *a, int n) int i; double s = 0; for (i = 0; i n; i+) s += ai; return s / n; (13) 返回a数组n个学生中低于平均分的人数,并将低于平均分的分数放在b所指的数组中。 int fun(int a , int n, int b ) int i, j = 0; double s = 0; for (i = 0; i n; i+) s += 1.0 * ai / n;/平均分 for (i = 0; i n; i+) if (ai s) bj+ = ai;/ j+模式 return j; (14) 求NN的二维数组周边元素的平均值并作为函数值返回给主函数。 double fun(int aNN) int i, k; double s = 0; for (i = 0; i N; i+) for (k = 0; k N; k+) if (i=0 | k=0 | i=N-1 | k=N-1) s += aik; return s / (4*N-4);/除以个数 (15) 求出s数组t个元素中最大元素在数组中的下标,并存放在k所指的存储单元中。 void fun(int *s, int t, int *k) int i, m = 0; for (i = 1; i sm) m = i; *k = m; (16) 求出数组aMN里每列中的最小元素,并依次放入bN数组中。 void fun(int aMN, int bN) int i, k, m; for (k = 0; k N; k+)/共N列 m = a0k; for (i = 0; i M; i+)/每列M行 if (aik m) m = aik;bk = m; (17) 求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中数列f(n)的定义为:数学公式求值 f(0) = 0,f(1) = 1,f(n) = f(n-1) + f(n-2) int fun(int t) int a = 0, b = 1, c = 0; while (c = t) c = a + b; a = b; b = c; return c; (18) 根据以下公式求P的值,结果由函数值带回。 float fun(int m, int n) int i; float x = 1, y = 1, z = 1;for (i = 1; i = m; i+) x *= i;/ m!for (i = 1; i = n; i+) y *= i;/ n!for (i = 1; i = m-n; i+) z *= i;/ (m-n)! return x / y / z; (19) 根据以下公式计算s,结果由函数值返回。 double fun(int m) int i; double s = 0; for (i = 1; i = m; i+)s += log(i); return sqrt(s);/平方根 (20) 计算下列级数和,结果由函数值返回。若x = 0.3,n = 10,则函数值为1.349859。 double fun(double x, int n) int i; double s = 1, z = 1, m = 1; for (i = 1; i = n; i+)s += (z *= x) / (m *= i); return s; (21) 根据以下公式计算s,结果由函数值返回。 float fun(int n) int i, t = 0;/ t作分母 float s = 0; for (i = 1; i = e) s += v; v *= n+ / (2*n+1); return s * 2; (23) 求给定10个数的方差,结果作为函数值返回:其中X是10个数的平均值。 double fun(double x10) int i; double v = 0, s = 0; for (i = 0; i 10; i+) v += xi / 10;/ v是平均值 for (i = 0; i = 1e-6); return x1; (25) 把二维数组左下角元素全置为0。 如:原来值为:4 9 2 则返回:0 9 2矩阵问题 3 5 7 0 0 7 8 1 6 0 0 0 void fun(int aNN) int i, k; for (i = 0; i N; i+) for (k = 0; k = i; k+)/循环至i列 aik = 0; (26) 矩阵转置,如:输入10 20 30 输出10 40 70 (即行列互换)40 50 6020 50 8070 80 9030 60 90 void fun(int aNN) int i, k, t; for (i = 0; i N; i+) for (k = 0; k i; k+)/至i-1列 t = aik; aik = aki; aki = t; (27) 将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如:s数组中存放ABCD0EFGH0则a中应保存AEBFCGDH。 void fun(char sMN, char *a) int i, k, j = 0; for (k = 0; k N - 1; k+)/跳过0列 for (i = 0; i M; i+) aj+ = sik;/ j+模式 aj = 0;/串尾添0 (28) 一维数组a中有n个整数,把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。移动数组元素 void fun(int a , int p, int n) int i, k, t; for (k = 0; k = p; k+) t = a0; for (i = 1; i n; i+) ai-1 = ai;/数据前移 an-1 = t; (29) 假定输入的字符串中只包含字母和*号,将字符串中的前导*号全部移到字符串的尾部。 void fun(char *a) int i, n = strlen(a); while (a0 = *) for (i = 1; i n; i+) ai-1 = ai;an-1 = *;/尾部添*号 (30) 统计一个长度为2的字符串a在另一个字符串b中出现的次数。 int fun(char *a, char *b)统计子串个数 int i, n = 0;/计数器置0 for (i = 0; i strlen(b); i+) if (bi = a0 & bi+1 = a1) n+; return n; (31) 统计字符串中单词的个数,作为函数值返回。字符串在主函数中输入,规定单词之间由若干空格隔开,一行的开始和结束都没有空格。 int fun(char s ) int i, n = 0;/计数器置0 for (i = 0; i strlen(s); i+) if (si != & (si+1 = | si+1 = 0) n+; return n; (32) 判断字符串是否为回文数。若是则函数返回1,否则返回0。回文是指顺读和倒读都是一样的串。 int fun(char *a)字符串回文 int i, m = strlen(a); for (i = 0; i m / 2; i+) if (ai != am-1-i) return 0; return 1; 数据分类统计(33) 统计数组a中的各年龄段的人数(N个)。09岁的人数放在b0中,1019岁的人数放在b1中,以此类推,100岁及以上的放在b10中。 void fun(int *a, int b11) int i; for (i = 0; i 11; i+) bi = 0;/计数器置0 for (i = 0; i = 100) b10+; else bai/10+; (34) 统计在t字符串中26个字母a到z各自出现的次数,并依次放在p所指的数组中。 void fun(char *t, int p ) int i; for (i = 0; i 26; i+) pi = 0;/计数器置0 for (i = 0; i = a & ti = z) pti-a+; (35) 统计在字符串a中,以下字符出现的次数,并存到b数组中,其中:字符+出现的次数存到b0中,字符-出现的次数存到b1中,字符*出现的次数存到b2中,字符/出现的次数存到b3中,字符&出现的次数存到b4中,其它字符出现的次数存到b5中。 void fun(char *a, int b ) int i; b0 = b1 = b2 = b3 = b4 = b5 = 0; for (i = 0; i strlen(a); i+)if (ai = +) b0+;else if (ai = -) b1+;else if (ai = *) b2+;else if (ai = /) b3+;else if (ai = &) b4+;else b5+;/其它字符 (36) 把字符串a中的内容逆置。字符串转换 void fun(char *a) char t; int i, m = strlen(a); for (i = 0; i m / 2; i+) t = ai; ai = am-1-i; am-1-i = t; (37) 将s所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *s) int i; for (i = 1; i = a & si = z) si -= 32;/转为大写 (38) 将一个字符串转换为一个整数,例:把456转换为456,把-23转换为-23。 long fun(char *a) int i = 0, t = 1; long s = 0; if (a0 = -) t = -1; i = 1; /处理负号 for ( ; i strlen(a); i+) s = s * 10 + ai - 0; return s * t; (39) 在字符串的所有数字字符前加一个$字符。例如:输入:A1B23CD4,输出:A$1B$2$3CD$4。 void fun(char *s) char tN; int i, j = 0; for (i = 0; i = 0 & si = k ? a : b); 删除指定数据(42) 删除一个字符串中指定位置的字符。其中a存放原字符串,b存放删除后的字符串。例如,a串为World,n为3,则使b串为Word。 void fun(char a , char b , int n) strcpy(b, a); strcpy(b+n, a+n+1); (43) 将a所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的新串放在t所指的数组中。 void fun(char *a, char *t) int i, j = 0, m = strlen(a); for (i = 0; i m; i += 2) if (ai%2 = 0) tj+ = ai;/ j+模式 tj = 0;/串尾加0 (44) 删除数组中相同的数,使之只剩一个。数组已按从小到大排列,函数返回删除后数组中数据个数。若原数组是:2 2 2 3 4 4 5 5 6 6 6,删除后,数组前面元素的内容是:2 3 4 5 6,函数返回5。 int fun(int a , int n) int i, j = 0; for (i = 0; i = 0) si = 0;/尾部置0 (48) 字符串只包含字母和*号,使字符串尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做。字符串中间和前面的*号不删除。不得使用字符串函数。 void fun(char *a, int n) int i = 0, t = 0, v; while (ai) i+;/后移到0 v = i;/存串长度 while (a-i = * & i = 0) t+;/计*号个数 if (t n) av-(t-n) = 0;/截断串 (49) 字符串只包含字母和*号,除了字符串前导的*号之外,将串中其它*号删除。不得使用字符串函数。 void fun(char *s) int i = 0, j; while (si = *) i+;/找第1字母 for (j = i; si; i+) if (si != *) sj+ = si;/ j+模式 sj = 0;/串尾加0 (50) 字符串只包含字母和*号,除了前导和尾部*号之外,删除其它*号。指针h已指向第一个字母,p已指向最后一个字母。不得使用字符串函数。 void fun(char s , char *h, char *p) int j = h - s, i; for (i = h - s; i p - s; i+) if (si != *) sj+= si;/ j+模式 while (sj+ = si+) ;/拷尾部*号 (51) 从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。 void fun(char (*a)81, int num, char *max)二级指针 int i; *max = a0; for (i = 0; i strlen(*max) *max = ai; (52) 对a数组中长度为n个字符的字符串,除首尾字符外,将其余n-2个字符按ASCII码降序排列。排序问题 void fun(char *a, int n) char t; int i, k; for (i = 1; i n - 2; i+)/冒泡排序 for (k = i + 1; k n - 1; k+) if (ai ak)t = ai; ai = ak; ak = t; (53) N名学生的学号和成绩已放入结构体数组w中,按分数从高到低排列结构体数组中N个记录。 typedef struct char a10; int b; S; void fun(S wN) S t; int i, k; for (i = 0; i N - 1; i+)/冒泡排序 for (k = i + 1; k N; k+) if (wi.b wk.b) t = wk; wk = wi; wi = t; (54) 把分数最低的学生数据放在b数组中(可能不止一个),函数返回分数最低的学生的人数。 typedef struct char a10; int n; S;在结构体中查找 int fun(S aN, S bN) i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全国海船船员考试(轮机部船舶电气7101)经典试题及答案
- 知识产权保护培训交流会课件
- 2025年信息化管理师考试题
- 2025年初级碳管理区块链笔试题
- 知识产权人才培训论坛课件
- 钟表课件收费
- 2025年工程测量员初级面试题库
- 知识与培训主题英语作文课件
- 钉钉直播课件页面设置
- 钉钉直播课件使用步骤
- “三重一大”决策 标准化流程图 20131017
- Cpk 计算标准模板
- 信息科技课程标准新课标学习心得分享
- 小学生元宵中秋猜谜语竞赛题目
- 环保与物业公司合作协议
- FZ/T 01057.2-2007纺织纤维鉴别试验方法 第2部分:燃烧法
- 面条制品-课件
- 2023年重庆市社区工作者考试试题
- 四上科学第一单元《多样的动物》知识梳理
- 微观经济学-范里安varian中级
- 《印章移交登记表》
评论
0/150
提交评论