《C语言程序设计》期末程序设计练习题库.pdf

上传人:s****u 文档编号:12791828 上传时间:2020-05-24 格式:PDF 页数:9 大小:187.98KB
返回 下载 相关 举报
《C语言程序设计》期末程序设计练习题库.pdf_第1页
第1页 / 共9页
《C语言程序设计》期末程序设计练习题库.pdf_第2页
第2页 / 共9页
《C语言程序设计》期末程序设计练习题库.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述
C语言程序设计期末程序设计练习题库 第 3章 程序流程 1、写程序,判断某一年是否闰年。(判断闰年条件:非整百年数除以 4,无余为闰,有余为平;整百年 数除以 400,无余为闰有余平。 ) 2、输入三个数 a,b,c,要求按由小到大的顺序输出。 3、打印出 100-999之间所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于 该数本身。 4、输出 101至 1000以内的所有的质数。 5、运输公司对用户计算运费。距离( s)越远,每公里运费越低。具体标准如下: s250 ( km) 没 有 折扣 250=s500 ( km) 2%折扣 500=s1000( km) 5%折扣 1000=s2000( km) 8%折扣 2000=s3000( km) 10%折扣 3000=s ( km) 15%折扣 设 每公里每 吨货物 的 基 本运费为 p, 货物重 为 w,距离为 s, 折扣 为 d, 则总 运费计算公 式 为: f=p*w*s*(1-d) 编 程要求: 1)输入 p、 w、 s数 据 , 能够 输出 总 运费。 2)用 switch结构实现编 程。 6、 编 写程序求下 列分段函 数的 值 。 0 x-5 f(x)= 5x 2 +5 -5 x5 10 x-10 x 5 7、 编 写程序输出 100-1000中 17的 倍 数,每 行 输出 5个数,每个数 占 5位。 8、有一 组 序 列 : 2/1 3/2 5/3 8/5 13/8 21/13 34/21 55/34 ,编 程计算 前 20项 的和, 并 输 出计算 结果 。 9、输入一 串 字 符 ,以 回车键作 为 结束 , 统 计出其 中英文 字 母 、数字和其 他 字 符 的个数。 10.编 程计算 2!+4!+6!+8!+10!+12!+14!+16!+18!+20!, 并 输出 结果 。 第 4章 数组 1、 采 用“ 冒泡法 ”对 任意 输入的 10个整数按由小到大的顺序 排 序。 算法过程必须小的数向上冒,也就是第 一遍扫描结束,最小的数组元数放在 a0,第二遍扫描结束,次小的数组元数放在 a1。要求程序 代码完 整,程序 在 运 行过 程 中 输入 10个整数, 10个整数一 行 输入,每个整数输入 时空 一个 空格 ; 在排 序算 法处理 后 ,按由小到 达 的顺序输出,输出 也 一 行 输出,每个整数之间 空 一个 空格 。 2、 已知二维 数 组 a34为 12 11 10 9 8 7 6 5 4 3 2 1 , 请实现这 个 二维 数 组 的 转置 , 将 数 组转换成 b43, 效 果 为 12 8 4 11 7 3 10 6 2 9 5 1 。要求如下:用 双重循环 输入数 组 a的每个 元 数, 并 用 双重循环 输出数 组 b。输入输出 效 果 如下: 3、由 键盘任意 输入 10个字 符串 , 找 出其 中最 大的 串 。 4、 请 判断字 符 数 组中 的字 符 是否 构成回文 。 回文就 是字 符从左向右读 和 从右向左读都 一 样 。字 符串长 度不 超 过 20个字 符 。 5、用三 维 数 组 来保存 输入的数 据 , 并 输出其 中 的 值 。数 组 为 两 个 面 ,每个 面两 行 ,每 行 3列 。数 组元 素 的 值请 直接初始化 处理 , 不 用输入 函 数运 行 的 时 候 输入。输出 效果 如下 图 。 6、 采 用“ 直接插 入 法 ”对 任意 输入的 10个整数按由小到大的顺序 排 序 并 输出。 7、 设 一 维 数 组中已 存储 一个 从 小到大的 10个整数序 列 , 请 使 用 折 半 ( 二分 ) 查 找法 查 找 指 定 整数 key,如 找 到,输出“ found”,如 没 有 找 到,输入” not found”。 8、 往 数 组中 输入 长 度 小于 50的字 符串 , 将 其 中 的数字字 符 按输入顺序 提 出, 并 存储 到 digital数 组中 , 然 后 输出该数 组 。 9、 设 计一个 密 码 验证 程序, 已知 密 码长 度不超 过 12位, 系 统 密 码 为“ admin”。程序要求 :密 码 验证错误超 过 3次 , 提示 “ sorry”。 10、 请 输入 10个 学生 的 名 字, 找 出 姓名 中 字 符长 度 最长 的 名 字。 第 5章 函数 1、由 键盘任意 输入 两 个整数,求 两 个整数的 最 小公 倍 数。 2、 编 写 fun函 数,其 功 能 是: 将 一个 N*N的 二维 数 组 进 行转置 , 转置 以 后 的 结果 仍然存放 在 原来 的 二维 数 组中 。 在 main函 数 中 按如下数 据 对一个 二维 数 组 a进 行 初始化 , 并 输出 原始 数 组 , 调 用 main函 数,输出 转置 的数 组 。 原始 数 据 1 2 3 4 转置后 的数 据 1 3 5 7 3 4 5 6 2 4 6 8 5 6 6 7 3 5 6 9 7 8 9 0 4 6 7 0 3、 编 写 函 数 fun,该 函 数的 功 能 是:求出整 型 数 组 a中 N个数 值 的平 均 值 , 并将 大于平 均 值 的整数 放 入数 组 b中 ,数 组 b中 的个数 作 为 函 数 值 返 回 。 在 main函 数 中 ,输入 N个整数, 调 用 fun函 数, 最后 输出 这 N个整数 中 所有大于平 均 值 的整数,每 行 输出 5个数。 4、数 组元 素 作 为 函 数 参 数 ,任 输入 10个三位数,计算有 多少 个数其各位数字和是 5 5、用 递归 法 求 n! 6、 请编 写一个 函 数 完成将 用户输入的一 串 整 型 数字字 符转换 为整 型 数 值 , 例 如用户输入 串 ” 567”, 应 该 能 返 回 整数 值 567。 7、 请编 写一 函 数 strcpy, 函 数 原型声明 为: void strcpy(char* target, char *src); 能实现将 字 符串src拷贝 到字 符 数 组 target。 8、 请编 写一 函 数 getFileExtName, 函 数 原型声明 为: char *getFileExtName(char *filename);能实现 返 回 传 入 文 件 名 的 扩展名 , 例 如用户 传 入的 文 件 名 为” d:finalexameexam.c”, 函 数 返 回 字 符串 ” c”。 9、 请编 写一 函 数 strcmp, 函 数 原型声明 为: int strcmp(char *str1, char *str2);能实现 两 个 串 的大小 比较 , 若 str1比 str2大 返 回 1, 若 str1等于 str2返 回 0, 若 str1小于 str2返 回 -1。 10. 请编 写一 函 数 draw, 函 数 原型声明 为: void drawPyramid(int level);能实现 绘制 level层高度 的 金 字 塔 。 例 如,输入 层高 为 12,输出如下的 图形 第 7章 指针 一、 读 程序 并回 答问题 #include stdio.h void fun( int *a, int bott, int top) int i, j; i=bott; j=top; while(ij) t=ai; ai=aj; aj=t; i+; j-; void main() int a10=1,2,3,4,5,6,7,8,9,0; fun(a, 0, 3); fun(a, 4, 9); fun(a, 0, 9); for(i=0; i10; i+) printf(%d,ai); 写出程序的运 行结果 : _. 二 、 自定义 函 数 SumColumMin的 功 能 是:求出 M行 N列二维 数 组 每 列元 素 中 的 最 小 值 ,计算 这 些 最 小 值 和, 通 过函 数 返 回 【 函 数 头部规定 如下: int SumColumMin(int aMN, int *min)】 。 在 主 函 数 中 调 用 SumColumMin函 数, 任意 输入 M*N个数,输出所有 列 的 最 小 值 和 这 些 最 小 值 之和。 三 编 写 fun()函 数 【提示 : void fun(char *a,int *t)】 ,其 功 能 是 实现统 计 形 式 参 数 s所指字 符串中 数 字字 符 出 现 的 次 数, 并 存放 在 形参 t所指的 变量 中 。 例 如: 形参 s所指字 符串 为: abcdef35agd3khe7, 则 数 字出 现 的 次 数为 4次 。 在 main()函 数 中 , 从键盘 输入一 行 字 符 (字 符 个数 不超 过 80个)到字 符 数 组 str中 , 调 用 fun()函 数, 统 计出数字出 现 的 次 数, 并在 屏幕上 输出 结果 。要求:用指 针 实现 fun函 数的 功 能 ,否 则 按 零 分处理 。 四 、 编 写一个 fun函 数,判断一个字 符串中 指 定 字 符 出 现 的 次 数。 在 主 函 数 中从键盘 上 任意 输入一个字 符串 和一个指 定 的字 符 ,输出该字 符在 字 符串中 出 现 的 次 数。要求:用指 针 实现 fun函 数的 功 能 ,否 则 按 零 分处 理 , 函 数 头部 如下 定义 : int findchar(char *src,char ch)。 五 、 invert 函 数 功 能 : 将 数 组 a中 的数 据 按 相反 的顺序 存放 。 在 主 函 数 中 , 任意 输入 10个整数, 调 用 invert 函 数, 最后 输出 逆 序 存放 的。要求:用指 针 实现 invert函 数的 功 能 ,否 则 按 零 分处理 。 六 、 在 主 函 数 中任意 输入一字 符串 , 调 用 func函 数, 并 输出 结果 。 func函 数 完成 : 将 字 符串 逆 序 排列 , 并 统 计该字 符串中 所有的数字字 符 个数, 函 数 返 回统 计出 来 的个数。要求:用指 针 实现 func函 数的 功 能 ,否 则 按 零 分处理 。 七 、 函 数 void insert(char *s1,char *s2)的 功 能 是: 在 字 符串 s1中 插 入一个 新 串 s2, 在 字 符串 s1中 查 找 s2串 的 第 一个字 符 ,如 果找 到, 则在 此 位 置 插 入 s2串 , 注 意 插 入 时 会 将找 到的字 符 覆盖 ;如 果没找 到, 即 s2串中 的 第 一个字 符没 有 被 s1所 包含 , 则在 s1尾 部插 入。 main函 数 中 输入字 符串 s1和 s2, 调 用 insert函 数,输出 插 入 后 的字 符串 。 例 如: 若 字 符串 s1为 abcdef, s2为 d45,输出 abcd45ef; 若 字 符串 s1为 abcdef, s2为 45,输出 abcdef45。 八 、用指 针 编 程 实现 : 将 用户输入的由数字字 符 和非数字字 符组成 的字 符串 (字 符 个数 不超 过 256个) 中 的 数字 提 取 出 来 , 例 如:输入“ msl123xyz456hkl789”, 则 提 取 的数字 分 别 是 123、 456和 789。 将结果 打印 在 屏幕上 (要求每个数字一 行 )。要求:用指 针 实现函 数的 功 能 ,否 则 按 零 分处理 。 九 、 编 写字 符串 比较 函 数 mystrcpy,其 功 能 :对 两 个字 符串 进 行 比较 , 若 这 两 个字 符串 相 等, 则 返 回 0, 若 这 两 个字 符串 不相 等, 则 返 回 它们第 一个 不 同 字 符 的 ASCII码 差 ; 编 写 main()函 数: 从键盘 输入 两 个字 符 串 , 调 用 mystrcpy函 数,输出 比较 结果 。要求:用指 针 实现 mystrcpy函 数的 功 能 ,否 则 按 零 分处理 。 十 编 写 函 数 fun,其 功 能 是 实现 对 从 指 定 位 置 m开 始 的 n个数 反 序。 编 写 main函 数, 在 main函 数 中 ,输 入 10个数,指 定 位 置 m和要 反 序的数 据 个数 n; 调 用 fun函 数, 最后 输出 反 序 后 的 10个数。 例 如:输入的 数为: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10。 若 要对 从 第 3个数 开 始 的 7个数 进 行 反 序, 则最后 输出的 结果 为: 1, 2, 9, 8, 7, 6, 5, 4, 3, 10。要求:用指 针 实现 fun函 数的 功 能 ,否 则 按 零 分处理 。 十 一 自定义 函 数 完成 库 函 数 strcat, strcpy, strlen等字 符串函 数的 功 能 , 并编 写 主 函 数 来 测试 。要求: 用指 针 实现 strcat, strcpy, strlenn函 数的 功 能 ,否 则 按 零 分处理 。 第 8章 结构体 1、 建 立 100个 人 的 电话号 码 薄信息 。其 中 : (1) 编 号 : code,整 型 。 (2) 姓名 : name, 不超 出 10个字 符 。 (3) 电 码 号 码 : tel, 不超 出 15个字 符 要求: (1) 任 何常 量 数字(如“ 100”) 在 整个程序 中 只 能 出 现 1次 (数字 1、 0除 外 )! (2) 从键盘 上 输入 这 100个 联 系 人 的 信息 。 (3) 输出每个 联 系 人 的 信息 (每个 人 的 信息单独 占 一 行 ,各 属性 之间用“ t” 分 隔 ) 2、 建 立 30个 学生 的 信息表 ,每个 学生 的数 据 包括 学 号 、 姓名 、三 门课 的 成 绩 。其 中 : (1) 学 号 : no, 12位数字 组成 的字 符串 , 长 度 固 定 。 (2) 姓名 : name, 不超 出 10个字 符 。 (3) 三 门课 程的 成 绩 : C、 WEB、 DS, 均 为整 型 要求: (1) 任 何常 量 数字(如“ 30”) 在 整个程序 中 只 能 出 现 1次 (数字 1、 0除 外 ) ! (2) 从键盘 上 输入 这 30个 学生 的 信息 (3) 输出 时 显 示 每个 学生 的平 均 成 绩 ( 保 留 一位小数) (4) 输出每个 学生 的 信息 (每个 学生 的 信息单独 占 一 行 ,各 属性 之间用“ t” 分 隔 ) 3、 学生 信息管 理 系 统中 需 要 记录 学生 如下 信息 : (1) 学 号 : 12位数字 组成 的字 符串 , 长 度 固 定 。 (2) 姓名 : 不超 出 10个字 符 。 (3) 性别 : 单 个字 符 F( 女 ) 或 M( 男 ) 表 示 。 (4) 生 日 : 分 别 由年、 月 、 日 三个整 型 构成 。 (5) C语言课 程的 成 绩 :整 型 各 信息 标 识 符 名 称 如下: num name gender birthday score year month day 要求: (1) 请 合 理 定义 能够 表 示学生 信息 的 结构 体,其 中 birthday须 使 用 嵌套 结构 体。 (2) 假 设 程序 处理 30位 同 学 的 信息 , 请 使 用 合 理 的数 据结构 去 存储 他 们 的 信息 。 (3) 任 何常 量 数字(如“ 30”) 在 整个程序 中 只 能 出 现 1次 (数字 1、 0除 外 ) ! (4) 依 次接 收 用户输入所有 学生 的 全 部 信息 。 (5) 输出每个 学生 的 信息 (每个 学生 的 信息单独 占 一 行 ,各 属性 之间用“ t” 分 隔 ) 4、 银 行 大 厅办 理 业务 时 , 客 户 需 要 根 据 先 后 次 序 领取 排 号单 , 然 后 等 待广播 里 喊 到 自 己 的 号 码 , 才办 理 业 务 。本程序 模拟此 排 号流 程,要求如下: (1) 操 作 人员 通 过键盘 输入每个 客 户的 ID号 ( 假 设 ID号 不超 出 10个字 符 且唯 一, 即 输入 时 不 考虑 重 复 问题 ), 表 示 有一个 客 户 排 队 。 (2) 可 以输入 任意 个 客 户 ID号 , 并 且可 以 随 时 停止 输入。 (3) 停止 输入 后 ,按 排 队 顺序 依 次 输出 现 有 客 户的 ID号信息 。 5、 学生 信息管 理 系 统中 需 要 记录 学生 如下 信息 : (1) 学 号 : 12位数字 组成 的字 符串 , 长 度 固 定 。 (2) 姓名 : 不超 出 10个字 符 。 (3) 年 龄 :整 型 。 (4) C语言课 程的 成 绩 : 允许带 一位小数。 现在 要求如下: (1) 从键盘 上接 收 30个 学生 信息 。 特 别 说 明 : a) 此 功 能 由 函 数 createdata()完成 ,每 调 用一 次 , 表 示 输入一个 学生 信息 b) 假 设 createdata()函 数 已 经 实现 , 只需 直接调 用 即 可 (2) 自定义 一个 函 数 FindMaxScore(), 功 能 是: 从 学生 信息 中 查 找分 数 最 高 的 学生 信息 。 (3) 在 main()中 : 调 用 自定义 的 函 数 FindMaxScore(), 找 到 最 高 分 的 学生 , 并 输入其 信息 。 第 9章 文件 1、 编 写程序。 找 出 被 2、 3、 5整除 时 余数 均 为 1的 最 小的 10个 自然 数, 并 写入到 文 件 c:tmp.txt中 。要 求: 查 找 满足 条件的 自然 数的 操 作在 一个 独 立的 函 数 fun中完成 , 并 负责 将找 到的数 存 入到一个一 维 数 组 中 。 主 函 数 负责 调 用该 函 数, 并将 fun函 数 找 到的 结果 显 示 在 屏幕上 , 同 时 写到指 定 的 文 件 中 。 2、 编 写程序。 从键盘 接 收 一 行 字 符 , 将 该 行 字 符 及 各字 符 的 ASCII码 保存 到 C:tmp.txt文 件 中 。 例 如,输入一 行 字 符 : Hello world! 则在 C:tmp.txt中 保存 的内 容 为: H(72)e(101)l(108)l(108)o(111) (32)w(119)o(111)r(114)l(108)d(100)!(33) 3、 从键盘 输入 学生 数 据 , 然 后 把 它们 写入到 磁 盘文 件 c:stu.dat中 。 要求: 学生 数 据 包括 : 学 号 、 姓名 、年 龄 、 成 绩 ,其 中 学 号 和年 龄 用整数 表 示 , 姓名 用字 符串 表 示 , 成 绩 用 实 数 表 示 。 学生 数 据采 用 结构 体的方 式 按 块 写入 文 件 中 ;每输入 完 一个 学生 所有数 据后 , 提示 用户是否 继续 输入, 若 回 答 Y或 y则 继续 ,否 则结束 程序。 最后从 stu.dat文 件 中读 出所有 学生 数 据 显 示 在 屏幕上 。 4、输入 5个 学生 的 信息 : 学 号 、 姓名 、 3门课 的 成 绩 。计算每个 学生 的平 均 成 绩 , 将 所有数 据 写入 文 件 c:stu.dat中 。 最后从 c:stu.dat中读 出所有 学生 数 据 显 示 在 屏幕上 。 要 示 : 学生 信息 采 用 自定义 结构 体 类 型存储 。 5、 编 写程序。 将 指 定 文 本 文 件的内 容 读 出 并 显 示 在 屏幕上 。 要求: 文 本 文 件的 名 称 从 命令 行 输入。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!