答案[计算机软件技术基础(2)]_第1页
答案[计算机软件技术基础(2)]_第2页
答案[计算机软件技术基础(2)]_第3页
答案[计算机软件技术基础(2)]_第4页
答案[计算机软件技术基础(2)]_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

计算机软件技术基础 计算机软件技术基础 2 2 要求 要求 1 独立完成 作答时要写明题型 题号 2 作答方式 手写作答或电脑录入 使用 A4 格式白纸 3 提交方式 以下两种方式任选其一 1 手写作答的同学可以将作业以图片形式打包压缩上传 2 提交电子文档的同学可以将作业以 word 文档格式上传 4 上传文件命名为 中心 学号 姓名 科目 rar 或 中心 学号 姓名 科目 doc 5 文件容量大小 不得超过 10MB 请在以下五组题目中任选一组作答 满分请在以下五组题目中任选一组作答 满分 100100 分 分 第一组 第一组 一 一 程序编写题程序编写题 每小题 每小题 2525 分 共分 共 100100 分 分 一 在编写的程序中 要求 1 用 fun 函数完成 求 n 以内 不包括 n 能被 3 整除的所有自然数之和 并把结果 作为函数值返回 2 在 main 函数中输入一个自然数 调用 fun 函数 输出 fun 函数返回的结果 include int fun int n int sum k sum 0 for k 1 k n k if k 3 0 sum sum k return sum void main int n s printf 输入自然数 n n scanf d s fun n printf nn 以内 不包括 n 能被 3 整除的所有自然数之和为 d s 二 请编写函数 int fun char str 该函数的功能是 判断字符串是否为回文 若是则函数 返回 1 主函数中输出 yes 否则返回 0 主函数中输出 no 回文是指顺读和倒读都是一样 的字符串 include int fun char str int i 0 j 0 while str i 0 i i for j i i j if str i str j break if j i return 0 else return 1 void main char a 100 int flat 0 printf 请输入字符串 n gets a flat fun a switch flat case 1 printf yes n break case 0 printf no n break 三 设 A B 是两个线性表 其表中元素递增有序 长度分别为 m 和 n 试写一算法分别以顺序 存储和链式存储将 A 和 B 归并成一个仍按元素值递增有序的线性表 C 1 顺序存储 SeqList Seqmerge SeqList A SeqList B SeqList C i 0 j 0 k 0 i i k 分别为顺序表 A B C 的下标 while i m i else C data k B data j j B 中当前元素较小 k if i m for t j tdata k B data t k B 表长度大于 A 表 else for t i tdata k A data t k A 表长度大于 B 表 C length m n return C 2 链式存储 void MergeList L Listlink pa La next pb Lb next Lc pc La 用 La 的头结点作为 Lc 的头结点 while pa pc pa pa pa next else pc next pb pc pb pb pb next pc next pa pa pb free Lb 四 设有一个带头结点的单链表 表中各数据元素为无序的正整数 编写下列 2 个函数 1 node find min node node h 找出头指针 h 指向的单链表中数据值最小的结点 打 印该结点的数据值 并返回该结点指针 2 void switch next node node p 若指针 p 指向的结点数据值为奇数 则将该结点 与其直接后继结点的数值交换 若指针 p 指向的结点无后继结点或数据值为偶数 则不做 任何操作 Typedef struct node int data struct node next node Void main node head p head create 创建单链表 p find min node head 查找数据值最小的结点 switch next node p include include typedef struct node int data struct node next node struct node creat struct node head struct node p1 p2 int i 1 p1 p2 struct node malloc sizeof struct node printf 请输入值 值小于等于 0 结束 值存放地址为 p1 ADDR d n p1 scanf d p1 next NULL while p1 data 0 if head NULL head p1 else p2 next p1 p2 p1 p1 struct node malloc sizeof struct node i i 1 printf 请输入值 值小于等于 0 结束 值存放地址为 p d ADDR d n i p2 scanf d free p1 p1 NULL p2 next NULL printf 链表输入结束 END n return head void print struct node head struct node temp temp head printf n n n 链表存入的值为 n while temp NULL printf 8d n temp data temp temp next printf 链表打印结束 node find min node node h int min node p t if h NULL return NULL p h next t NULL min p data while p NULL if p datadata p p next printf min d n t data return t void switch next node node p node q int t q p next if q NULL p data 2 0 return t p data p data q data q data t void main node head p head NULL head creat head p find min node head switch next node p print head 第二组 第二组 一 一 程序编写题程序编写题 每小题 每小题 2525 分 共分 共 100100 分 分 一 编程实现 bubble 函数 功能是 对 12 个整数进行冒泡排序 要求排成升序 include include main int i j t a 12 0 for i 0 i 12 i scanf d for i 0 i 11 i for j 0 j 11 i j if a j a j 1 t a j a j a j 1 a j 1 t for i 0 i0 n n n 1 编写程序 计算并输出 n 三 设指针 la 和 lb 分别指向两个不带头结点的单链表的首结点 设计从表 la 中删除第 i 个元 素起共 len 个元素 并将这些元素插入到 lb 中第 j 个结点之前的算法 四 1 编写递归函数求 1 2 3 m 的值 2 设指针 la 和 lb 分别指向两个不带头结点的单链表的首结点 设计从表 la 中删除第 i 个 元素起共 len 个元素 并将这些元素插入到 lb 中第 j 个结点之前的算法 第三组 第三组 一 一 程序编写题程序编写题 每小题 每小题 2525 分 共分 共 100100 分 分 一 1 编写函数 void fun 其功能是计算并输出 100 以内的偶数之和 2 编写函数 void fun 它的功能是 计算并输出 100 以内的所有素数 3 编写程序 计算并输出 5 6 4 编写程序 计算并输出 X3 2 二 给出用单链表存储多项式的结构 并编写一个按指数值递增次序输入所产生的多项式链表 的过程 三 1 单链表 L 是一个递减有序表 试写一高效算法 删除表中值大于 min 且小于 max 的 结点 若表中有这样的结点 同时释放被删结点空间 这里 min 和 max 是两个给定 的参数 2 编写一个算法将一个头结点指针为 pa 的单链表 A 分解成两个单链表 A 和 B 其头结 点指针分别为 pa 和 pb 使得 A 链表中含有原链表 A 中序号为奇数的元素 而 B 链 表中含有原链表 A 中序号为偶数的元素 且保持原来的相对顺序 四 已知由单链表表示的线性表中 含有三类字符的数据元素 如 字母字符 数字字符和其他 字符 试编写算法构造三个以循环链表表示的线性表 使得每个表中只含有同一类的字符 且利用原表中的结点空间作为这三个表的结点空间 头结点可另辟空间 第四组 第四组 一 一 程序编写题程序编写题 每小题 每小题 2525 分 共分 共 100100 分 分 一 1 试用顺序表作为存储结构 实现将线性表 a0 a1 a2 an 1 就地逆置的操作 所谓 就地 是指辅助空间为 O 1 2 设顺序表 L 是一个递增 允许有相同的值 有序表 试写一算法将 x 插入 L 中 并使 L 仍为一个有序表 二 根据上题的单链表存储多项式的结构 编写一个过程实现两个多项式相加的运算 三 假设以两个元素值递增有序排列的线性表 A B 分别表示两个集合 要求另辟空间构造一个 线性表 C 其元素为两集合的交集 且表 C 中的元素值也递增有序排列 用顺序表实现并 写出 C 的算法 四 己知 A B 和 C 为三个递增有序的线性表 现要求对 A 表进行如下操作 删去那些既在 B 表 中出现又在 C 表中出现的元素 试对顺序表编写实现上述操作的算法 注 题中未特别指明 同一表中的元素值各不相同 第五组 第五组 一 一 程序编写题程序编写题 每小题 每小题 2525 分 共分 共 100100 分 分 一 编程实现 ret 函数 函数功能是 将一维数组 a 有 n 个元素 且任何元素均不为零 分拆为两个数组 b 和 c 使 a 中大于零的元素存放在 b 中 小于零的元素存放在 c 中 二 1 编写函数double fun intn 它的功能是 计算并输出下列级数和 s 1 1 2 1 2 3 1 n n 1 2 请编写函数void fun char s char t 其功能是 将s所指字符串中除了下标为偶 数 同时ascii值也为偶数的字符外 其余的全都删除 串中剩余字符所形成的一个新串放 在t所指的一个数组中 三 设计一段程序 函数 difference A B 用于求两集合之差 C A B 即当

温馨提示

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

最新文档

评论

0/150

提交评论