C语言函数库.ppt_第1页
C语言函数库.ppt_第2页
C语言函数库.ppt_第3页
C语言函数库.ppt_第4页
C语言函数库.ppt_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础 C语言 学生函数库2010 1 15初稿2010 1 20二稿 函数名与函数功能 isprime 素数判断swap 交换sca 输入prt 输出sum 累加和max 最大值min 最小值find 查找 count 计数sort 排序select 筛选 选择copy 复制shift 移位issym 对称判断reverse 逆序split 分解merge 合并 学生学习 编程 考试时常用的函数库 函数名的前缀与后缀 前缀用于说明类型正常 int前缀 l long前缀 f float前缀 p 指针前缀 str 字符串前缀 strs 多字串前缀 stu 学生 后缀用于说明额外条件后缀 p 素数后缀 a 大于后缀 ae 大于等于后缀 b 小于后缀 be 小于等于后缀 n n个后缀 0 直到0 函数列表 1 intisprime intn voidsca inta intn voidprt inta intn voidprt p inta intn voidprt m inta intn intm intsca n inta intsca 0 inta longsum inta intn intmax inta intn intmin inta intn 判断素数输入函数输出函数条件输出按行输出输入n个输入至0累加和最大值最小值 练习1 2练习3练习4练习3a练习5练习6练习7练习8练习9 1 素数函数 isprime intisprime intn inti if n 2 return0 for i 2 i n i if n i 0 return0 return1 判断整数n是否为素数 是则返回1 否则返回0 熟练 调用模板intn if isprime n 练习1 输入整数n 如果n是素数 则输出Yes 否则输出No 如输入 5则输出 Yes如输入 6则输出 No 程序1 输入整数n 若n为素数则输出Yes 否则输出No includeintisprime intn main intn scanf d 每个程序都应该具备 不再重复被调用子函数放在主函数之前不再重复说明代码见前主函数一般放在最后 自底向上整数n定义输入整数n调用并判断n是否素数是则输出Yes否则输出No 练习2 将4到100的所有偶数分解为两个素数之和 main intn i for n 4 n 100 n 2 for i 2 i n i if isprime i include等略n分解i与n i和i与n i均为素数只需一个公式 2 输入函数 sca voidsca inta intn inti for i 0 i n i scanf d 从键盘上输入n个整数到数组a中熟练 调用模板inta 10 sca a 10 练习3 输入10个整数 输出其中素数 如输入 269911018171615141则输出 2101716141 程序3 输入10个整数 输出其中素数 main inta 10 i sca a 10 for i 0 i 10 i if isprime a i printf d a i printf n 3 输出函数 prt voidprt inta intn inti for i 0 i n i printf d a i printf n 输出a数组的n个整数 并换行 熟练 调用模板inta 10 prt a 10 有 d 或 d t 或 8d 等不同格式 练习4 先输入10个整数 再输出这10个整数 如输入 10个整数可分多行输入 269911018171615141则输出 10个整数在一行内输出 269911018171615141 程序4 main inta 10 sca a 10 prt a 10 4 条件输出函数 prt p voidprt p inta intn inti for i 0 i n i if isprime a i printf d a i printf n 输出数组中的所有素数 掌握 调用模板inta 10 prt p a 10 有 d 或 d t 或 8d 等不同格式 程序3a 输入10个整数 输出其中素数 main inta 10 sca a 10 prt p a 10 调用模板inta 10 prt m a 10 5 按行输出函数 prt m voidprt m inta intn intm inti for i 0 i n i if i m m 1 i n 1 printf d n a i elseprintf d t a i 按每行m个数的形式输出数组中的所有数 掌握每行最后一数或最后一数输出后换行否则输出后跳格 练习5 输入10数 按每行3数输出 main inta 10 sca a 10 prt m a 10 3 6 输入函数 sca n intsca n inta intn i scanf d 从键盘上输入整数n 再输入n个整数到数组a中 然后返回n 掌握 调用模板inta 100 n n sca n a 练习6 输入n和n个整数 输出n个整数中的素数 如输入 n和n个整数可分多行输入 7269911018171则输出 在一行内输出 210171 程序6 main inta 100 n n sca n a prt p a n 合理假设 设n不超过100定义a数组的元素个数为该假设的上限验证n是否超界的代码可以省略 7 输入函数 sca 0 intsca 0 inta intn for n 0 1 n scanf d 从键盘上输入整数到数组a中 直到输入0时终止 返回0之前整数个数 掌握 调用模板inta 100 n n sca 0 a 练习7 输入连续一批整数 直至输入0时终止 按每行5数形式输出0之前的所有整数 如输入 所有数据可分多行输入 72699110181710则输出 8个整数在分2行输出 7269911018171 程序7 main inta 100 n n sca 0 a prt m a n 5 合理假设 设n不超过100定义a数组的元素个数为该假设的上限验证n是否超界的代码可以省略 8 累加和函数 sum longsum inta intn longs 0 inti for i 0 i n i s a i returns 计算a数组中n个整数的累加和并返回 熟练 调用模板inta 10 longs s sum a 10 练习8 输入n和n个整数 计算并输出累加和和平均值 保留一位小数 如输入 52010405030则输出 Sum 150Average 30 0 程序8 main inta 100 n longs n sca n a s sum a n printf Sum ld n s printf Average 1f n float s n 9 最大值函数 max intmax inta intn intx i x a 0 for i 0 i n i if x a i x a i returnx 计算并返回a数组中n个整数的最大值 熟练 调用模板inta 10 x x max a 10 10 最小值函数 min intmin inta intn intx i x a 0 for i 0 ia i x a i returnx 计算并返回a数组中n个整数的最小值 熟练 调用模板inta 10 x x min a 10 练习9 输入10个整数 输出10个整数的最大值和最小值如输入 699110181712615141则输出 Max 101 Min 2 程序9 main inta 10 mx mn sca a 10 mx max a 10 mn min a 10 printf Max d Min d n mx mn 函数列表 2 intfind inta intn intx intcount inta intn intx voidswap int p int q voidsort inta intn intselect a intb inta intn intselect p intb inta intn intx voidcopy intb inta intn voidshift intb inta intn intm intissym inta intn voidreverse inta intn 顺序查找统计次数交换数据冒泡排序筛选条件复制移位对称逆序 练习10练习11 12练习13练习14练习15 16练习17练习18练习19练习20练习21 11 顺序查找函数 find intfind inta intn intx inti for i 0 i n i if a i x returni return 1 查找n个整数的数组a中值为x的元素并返回其下标 如果没找到则返回 1 熟练 调用模板inta 10 x k k find a 10 x 练习10 输入10个整数 输出最大值及其下标 main inta 10 mx k sca a 10 mx max a 10 k find a 10 mx printf Max a d d n k mx 12 统计函数 count intcount inta intn intx intct 0 i for i 0 i n i if a i x ct returnct 统计n个整数的数组a中值为x的元素并返回其个数 熟练 调用模板inta 10 x m m count a 10 x 练习11 输入10个整数 输出其中只出现一次的数 main inta 10 i sca a 10 for i 0 i 10 i if count a 10 a i 1 printf d a i printf n 输入遍历统计a i 出现次数并输出 练习12 输入10个整数 输出其中正好出现2次的数 仅第一次出现时输出 main inta 10 i sca a 10 for i 0 i 10 i if count a i a i 0 输入遍历之前次数 0本身与之后出现2次输出 13 交换函数 swap voidswap int p int q intt t p p q q t 交换指针p和q所指变量的值 可用于重写reverse与sort函数掌握 调用模板intx y swap 练习13 输入整数x和y 交换顺序后输出 main intx y scanf d d 14 冒泡排序函数 sort voidsort inta intn inti j t for i 0 ia j 1 t a j a j a j 1 a j 1 t 对a数组的n个整数按从小到大顺序排序 熟练swap 调用模板inta 10 sort a 10 使用swap函数的sort voidsort inta intn inti j for i 0 ia j 1 swap 对a数组的n个整数按从小到大顺序排序 掌握 调用模板inta 10 sort a 10 练习14 输入10个整数 从小到大排序后输出 main inta 10 sca a 10 sort a 10 prt a 10 15 筛选函数 select a intselect a intb inta intn intx inti k 0 for i 0 ix b k a i returnk 将a数组n个整数中值大于x的元素复制到数组b中 并返回满足条件的个数 熟练 调用模板inta 10 b 10 k k select a b a 10 练习15 输入n和n个整数 选择其中正数部分 排序后输出 main inta 100 b 100 n m n sca n a m select a b a n 0 sort b m prt b m 练习16 091机试 1 B 3 程序功能 输入10个整数 存贮在一维数组a中 按示例格式计算并输出以下结果 1 输出最大值及其所在下标 输入的第一个整数对应下标0 2 计算并输出平均值 浮点数 输出时保留1位小数 3 输出10个整数中大于平均值并且最接近平均值的数 4 按从小到大的顺序排序并输出这10个整数 如输入 50607080909585756555则输出 Max a 5 95Average 72 5X 75Sort 50556065707580859095示例说明 输入10个整数放在a数组中 最大值95对应的下标为5 平均值为72 5 大于平均值且最接近平均值的数为75 main inta 10 b 10 k x n m longs floatave sca a 10 x max a 10 k find a 10 x s sum a 10 ave float s 10 n select a b a 10 ave m min b n sort a 10 printf Max a d d n k x printf Average 1f n ave printf X d nSort m prt a 10 16 条件筛选 select p intselect p intb inta intn inti k 0 for i 0 i n i if isprime a i b k a i returnk 将a数组n个整数中的素数元素复制到数组b中 并返回满足条件的个数 掌握 调用模板inta 10 b 10 k k select a b a 10 练习17 输入10个整数 按每行3数形式输出其中素数 main inta 10 b 10 k sca a 10 k select p b a 10 prt m b k 3 输入选择素数输出素数 17 复制函数 copy voidcopy intb inta intn inti for i 0 i n i b i a i a数组的n个整数复制到b数组中 熟练 调用模板inta 10 b 10 copy b a 10 练习18 输入9个整数 输出大小居中的整数及其在原序中的下标位置 如输入 6677889910090807060则输出 Midd a 6 80 程序18 main inta 9 b 9 k sca a 9 copy b a 9 sort b 9 k find a 9 b 4 printf Midd a d d n k a k 输入复制排序查找输出 18 移位函数 shift voidshift intb inta intn intm inti for i 0 i n i b i m n n a i a数组的n个整数右移m个位置后复制到数组b中 m为负表示左移 掌握 公式分析 调用模板inta 10 b 10 shift b a 10 1 练习19 输入整数m和10个整数 右移m个位置后输出 m为负表示左移 main inta 10 b 10 m scanf d 19 对称函数 issym intissym inta intn inti j for i 0 j n 1 i j i j if a i a j return0 return1 判断a数组n个整数是否对称排列 是返回1 否则返回0 掌握 调用模板inta 10 if issym a 10 练习20 输入n和n个整数 如果n个整数首尾对称 则输出Yes 否则输出No main inta 100 n n sca n a if issym a n printf Yes n elseprintf No n 20 逆序函数 reverse voidreverse inta intn inti j t for i 0 j n 1 i j i j t a i a i a j a j t 将a数组n个整数逆序排列 掌握 调用模板inta 10 reverse a 10 使用swap函数实现逆序 reverse voidreverse inta intn inti j for i 0 j n 1 i j i j swap 将a数组n个整数逆序排列 掌握 调用模板inta 10 reverse a 10 练习21 输入10个整数 从小到大排序输出 再从大到小排序输出 main inta 10 sca a 10 sort a 10 prt a 10 reverse a 10 prt a 10 函数列表 3 intsplit inta longd intm 进制分解 练习22longmerge inta intn intm 进制合并 练习23 24 25 21 进制分解函数 split intsplit inta longd intm inti for i 0 1 i a i d m d d m if d 0 returni 1 将长整数d拆分n位m进制 数值存于a数组中 长度返回 a 0 存最低位掌握 调用模板inta 10 split a 10 练习22 输入一个长整数 从低到高逐位输出该数的各个位数 main longd inta 10 n scanf d 22 进制合并函数 merge longmerge inta intn intm longs 0 k 1 inti for i 0 i n i s k a i k m returns 将m位n进制数转换为长整数 a 0 对应最低位掌握 调用模板inta 10 n s merge a n 10 练习23 输入一个整数 输出该整数各个倍数重新组成构成的最大值与最小值如输入 123987则输出 Max 987321Min 123789 程序23 main longd mx mn inta 10 n scanf ld 输入按10进制分解从小到大排序合并成最大值逆序合并成最小值输出 练习24 输入10进制长整数 转换为7进制数并输出 main longd inta 10 n scanf ld 或d merge a n 10 printf ld n d 练习25 输入7进制整数 转换为10进制数并输出 main longd inta 10 n scanf ld 模拟练习 1 输入一批整数直至输入0为止 输出0之前的所有素数并计算其累加和与平均值 如输入 26617181911010则输出 26171101Sum 235Averge 58 8 参考程序 1 main inta 100 b 100 n k longs n sca 0 a k select p b a n prt b k s sum b k printf Sum ld n s printf Average 1f n float s k includeintisprime intn inti if n 2 return0 for i 2 i n i if n i 0 return0 return1 intsca 0 inta intn for n 0 1 n scanf d 模拟练习 2 输入n和n个整数 按从小到大顺序输出其中素数 同时删除其中重复的素数 如输入 109161413121411016172则输出 27314161101 参考程序 2 main inta 100 b 100 n k i n sca n a k select p b a n sort b k for i 0 i k i if count b i b i 0 printf d b i printf n includeintisprime intn inti if na j 1 t a j a j a j 1 a j 1 t intcount inta intn intx intct 0 i for i 0 i n i if a i x ct returnct main inta 100 b 100 n k i n sca n a k select p b a n sort b k for i 0 i k i if count b i b i 0 printf d b i printf n 模拟练习 3 输入n和n个成绩 按成绩高低输出这些成绩及其名次如输入 59099889990则输出 1 991 993 903 905 88 参考程序 3 voidsort b inta intn inti j t for i 0 i n 1 i f

温馨提示

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

评论

0/150

提交评论