




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章第七章 数组数组 通过本章实验作业应达目标 1 学习并掌握一维数组与二维数组的定义 使用及初始化方法 2 熟练掌握字符数组和字符串的使用方法 3 掌握数组的一种排序算法 4 学会用数组保存多个相关的同类数据 并对这一组数据进行各类操作 本章上交作业 程序 7 1 c7 1 c 7 3 c7 3 c 7 5 c7 5 c 7 7 c7 7 c 上传至 211 64 135 121 casp 实验一 一维数组的定义和简单应用 实验目的实验目的 学会定义一维数组 掌握一维数组的遍历操作 掌握在一组数组中求最大值 最小 值的方法 实验内容实验内容 从键盘读入 5 个成绩到一个数组中 求其中的最大值 最小值和平均成绩 在屏幕 上显示输入成绩的提示信息 用键盘输入一个成绩 接着提示输入下一个 直到结束 以以 7 1 c7 1 c 命名本程序并上交 命名本程序并上交 程序运行界面程序运行界面 实验提示实验提示 求最大 小 值通常用 打擂台 的方法 首先设计两个变量 如 max 和 min 分别 用来存放最大值和最小值 并将数组的首元素赋给这两个变量 这就是到目前为止的最 大 小 值 然后利用循环依次比较其他的元素 总是将当前最大 小 值赋给 max 和 min 直至比较到最后 max 和 min 中的数据就是最大值和最小值 求平均值还要设置一个变量 sum 用来累加各元素的值 实验二 一维数组的排序 实验目的实验目的 熟练掌握一维数组三种基本排序方法 选择法 冒泡法 比较法 实验内容实验内容 从键盘上接收 10 个成绩 存放到一个一维数组 score 中 分别利用三种排序方法 将数组从小到大排序并在屏幕上显示排序结果 分别以 7 2 1 c 7 2 2 c 和 7 2 3 c 命名三个程序 实验提示实验提示 所谓排序是指把一组杂乱无章的数据按照大小顺序排列 将被排序的 n 个数据存放在一个数组中 假如按升序排列 我们将数组定义为 a n 数据存放在 a 0 到 a n 1 中 1 1 比较排序法 比较排序法 将 a 0 与 a 1 比较 若 a 1 a 1 则二者交换 否则不变 a 1 再与 a 2 比较 前者大就交换 依次两两比较至到 a n 2 与 a n 1 比较 经过一轮以后 最大者 沉 到了最后 小数往上 冒 所以得名 冒泡法 第二轮 比较数组的前 n 1 个 即 a 0 a n 2 重复此过程 直到所有的元素比较完毕 实验三 一维数组元素的调换 实验目的实验目的 进一步加强对数组的应用 实验内容实验内容 找出数组中的最小数和次小数 并把最小数和 a 0 中的数对调 次小数和 a 1 中 的数对调 其余数据位置不变 例如 程序运行时若输入 2 4 6 11 3 9 7 0 5 8 则输出 0 2 6 11 3 9 7 4 5 8 以以 7 3 c7 3 c 命名本程序并上交 命名本程序并上交 部分程序如下 define N 10 main int a N i for i 0 i N i scanf d 编写程序 实现功能 for i 0 ia mid 时 则要查找的 x 在数组的前半 部分 这样数组的后半部分就不用去查找了 查找范围缩小为一半 然后在前半部分再 找一个中点 与 x 比较 如此一半一半缩小 如果 x 在数组当中 终能找到 x a mid 由于每次缩小近一半的范围 所以数组的上 下界是要变化的 不妨用变量 low high mid 分别表示数组当前的上界 下界和中点 问题 如果 x 不在数组当中 最终怎样知道 实验内容实验内容 在一个已经排好序的数组 升序 中 从键盘上输入某数 x 查找 x 是否在数组内 若在 则在屏幕上输出其下标值 若不存在 则在屏幕上显示 Not found 假设 数组 a 10 的每个元素分别为 1 2 3 4 6 7 9 10 11 15 若从键盘上读入数 x 为 9 则在屏幕上输出 the number s position is 7 若读入数为 8 则屏幕上输出 Not found 1 顺序查找法编写的程序如下 请完善程序 并以 7 4 1 c 命名本程序 include define N 10 void main int a N 1 2 3 4 6 7 9 10 11 15 int i x scanf d for i 0 i N i if printf the number s position is d n i 1 if i N printf Not found n 2 折半查找法编写的程序如下 请完善程序 并以 7 4 2 c 命名本程序 include define N 10 void main int a N 1 2 3 4 6 7 9 10 11 15 int low high mid i x scanf d for low 0 high N 1 mid if a mid x printf the number s position is d n mid 1 break if printf Not found n if a mid x 讨论与思考讨论与思考 比较一下两种两种查找方法的优缺点 实验五 统计指定字符个数 实验目的实验目的 熟悉字符串的存取和结束标记 实验内容实验内容 编写程序从键盘上输入一个字符串和一个字符 统计所指定字符的个数 例如 从键盘输入字符串为 abaaAAbcaaaca 指定字符为 a 则在屏幕上输出结 果是 7 以以 7 5 c7 5 c 命名本程序并上交 命名本程序并上交 下面给出程序的部分代码 include void main char a 200 b int num puts Please input a string gets a puts Please enter a character b getchar 编写程序 实现功能 pirntf The result is d n num 实验六 从字符串中删字符 实验目的实验目的 熟悉字符串的存取和结束标记 并掌握从一维数组中删除元素的方法 实验内容实验内容 编写程序从键盘上输入一个字符串和一个字符 实现从字符串中删除该字符 例如 从键盘输入字符串为 abaaAAbcaaaca 要删除的字符为 a 则在屏幕上输 出 bAAbcc 下面给出程序的部分代码 请完善程序 并以 7 6 c 命名本程序 void main char s 20 ch int i j printf Please input a string n gets s printf Please input a character n ch getchar for i 0 i 编写程序 实现功能 puts s 实验提示实验提示 要考虑被删除的字符在字符串出现多次 而且连续排列的情况 实验七 数据加密 实验目的实验目的 学习通过字符数据的 ASCII 值进行加密的方法 实验内容实验内容 某个单位要传递机密数据 数据是 10 位以内的整数 从键盘输入 在传递过程中 是加密的 加密规则如下 每位数字都加上 5 然后用该和除以 10 的余数代替该数字 在屏幕上显示加密后的数字 以以 7 7 c7 7 c 命名本程序并上交 命名本程序并上交 例如 输入数据 327895123 显示结果为 872340678 实验提示实验提示 1 应用字符数组来解决该问题 2 主程序中将各位数字以字符的形式存放 在加密的过程中应该注意 0 跟 0 的区别 实验八 将数字字符串转换为相应实数 实验目的实验目的 学习数字字符串与数值之间的转换问题 实验内容实验内容 将键盘上输入的一个数字字符串转换为相应的实数 在屏幕上输出 转换时遇到第 一个非数字字符时停止 不包含第一个小数点和起始的负号 例如 若输入字符串 123a45 得到实数 x 123 0 若输入字符串 123 45 765 得到实数 x 123 45 若输入字符串 123 56 78 得到实数 x 123 0 若输入字符串 123 得到实数 x 0 123 下面给出不考虑负数的程序 请在下述程序的基础上补充完善为也能考虑负数的程 序 并以 7 8 c 命名本程序 include void main char str 100 int i sign double x k gets str str 中存放的是一个数字字符串 sign 1 k 0 1 sign 是一个标志 标识是否出现了第一个小数点 x 0 for i 0 str i i if sign 1 if str i 0 k 0 1 else break printf x lf n x x 中记录的是转换后得到的数值 实验提示实验提示 只有起始的负号 才能作为负数标志 中间的 只能被看做非法字符 使转换结束 实验九 万年历问题 实验目的实验目的 学会使用二维数组解决万年历问题 实验内容实验内容 已知 1900 年 12 月 31 号是星期一 编写程序 键盘输入 1901 2300 年内任意一 个日期 程序输出这一天是星期几 以 7 9 c 命名本程序 实验提示实验提示 1 第四章中有一个实验要求是给出当前日期 求出该日期是本年度中的第几天的 程序 大家可以回想以下那个程序中的 case 语句对应的每一个天数是如何得到的 我们 将这个问题用数组来解决 2 假设我们要求 x 年 y 月 z 日是星期几 必须知道两个日期相间隔的天数 3 使用二维数组来存放每月的天数 第一行存放平年的每月天数 第二行存放闰 年的各月天数 3 普通年份有 365 天 365 7 1 所以求总天数时可以不必将年份差 365 天 讨论与思考讨论与思考 既然是万年历问题 就应能测任一日期 如果要求能够测任何一日期 1900 年之前 和之后的任何一天 为周几 本题应如何处理 注意前推和后推的方法有所不同 习题 1 定义如下变量和数组 int k int a 3 3 1 2 3 4 5 6 7 8 9 则下面语句的输出结果是 for k 0 k 3 k printf d a k 2 k A 357B 369 C 159D 147 2 执行下面的程序段后 变量 k 中的值为 int k 3 s 2 s 0 k k s 1 10 A 不定值B 33C 30D 10 3 设有数组定义 char array China 则数组 array 所占的空间为 A 4 个字节 B 5 个字节 C 6 个字节 D 7 个字节 4 如下程序的输出结果是 main int n 5 0 0 0 i k 2 for i 0 i k i n i n i 1 printf d n n k A 不确定的值B 2C 1D 0 5 有如下程序 main int a 3 3 1 2 3 4 5 6 i j s 0 for i 1 i 3 i for j 0 j i j s a i j printf d n s 该程序的输出结果是 A 18B 19C 20D 21 6 以下程序的输出结果是 main int i x 3 3 1 2 3 4 5 6 7 8 9 for i 0 i 3 i printf d x i 2 i A 1 5 9 B 1 4 7 C 3 5 7 D 3 6 9 7 当执行下面的程序时 如果输入 ABC 则输出结果是 include stdio h include string h main char ss 10 1 2 3 4 5 gets ss strcat ss 6789 printf s n ss A ABC6789B ABC67C 12345ABC6D ABC456789 8 以下程序段的输出结果是 char s 141 141abc t printf d n strlen s A 9B 12C 13D 14 9 下面是对 s 的初始化 其中不正确的是 A char s 5 abc B char s 5 a b c C char s 5 D char s 5 abcde 10 以下程序的输出结果是 main char s abcdef s 3 0 printf s n s 11 下列程序段的输出结果是 main char b Hello you b 5 0 printf s n b 12 在 C 语言中 二维数组元素在内存中的存放顺序是 13 设有定义语句 int a 3 4 1 2 3 则 a 1 1 值为 a 2 1 的值为 14 若在程序中用到 putchar 函数时 应在程序开头写上包含命令 若在程序中用到 strlen 函数时 应在程序开头写上 包含命令 15 下面程序的功能是输出数组 s 中最大元素的下标 请填空 main int k p int s 1 9 7 2 10 3 for p 0 k p ps k printf d n k 16 以下程序执行时输入 Language Programming的结果是 include main char str 30 scanf s str printf str s n str 17 以下程序可把输入的十进制长整型数以十六进制数的形式输出 请填空 main char b 17 0123456789ABCDEF int c 64 d i 0 base 16 long n printf Enter a number n scanf 1d do c i i n n base while n 0 printf Transmite new base n for i i 0 i d c i printf c b 18 以下数组定义中 错误的是 A int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理疑难病例分析与讨论模板下载
- 五年级作文题库专项训练范文
- 教师读书心得分享与反思范文
- 中考语文表达能力针对性练习题
- 幼儿园保育员年度工作计划范文
- 企业贷款申请书写作范例及模板
- 小学阶段语文测试题汇编与解析
- HSK考试口语答题技巧与实战题库
- 初中英语月考真题含解析
- 2025年跨境电子商务合作协议标准文本
- 药学部利用PDCA循环降低住院患者抗菌药物使用强度品管圈
- 创伤记忆的集体性遗忘-洞察及研究
- 玻璃、铝板幕墙施工方案
- 2025北京高三一模数学汇编:圆锥曲线的方程章节综合
- 酒店餐饮部主管考试题库
- 产业策划投标方案(3篇)
- 2025年广西专业技术人员继续教育公需科目(一)答案
- 家校社协同育人机制的创新构建与实践探究
- 近视管理白皮书(2025)专家共识-
- 护理学基础:会阴部擦洗
- 征收置换商铺协议书
评论
0/150
提交评论