




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 31 3 实验一实验一 熟悉熟悉 C C 语言的语言的 VC 6 0VC 6 0 编程环境编程环境 一 实验目的与要求 1 学会使用 Visual C 集成开发环境 2 掌握简单 C 程序的编写 编辑 编译 连接和运行 3 初步学会 Visual C 环境下简单调试 C 程序的方法 二 实验内容 1 1 程序运行题程序运行题 1 打开 VC 6 0 环境 2 在 VC 6 0 环境的编辑窗口中 输入如下程序保存为 myexp1 1 cpp 3 选择 组建 编译 myexp1 1 cpp 可按快捷键 CTRL F7 命令对程序进行 编译 4 选择 组建 组建 按快捷键 F7 命令对程序进行连接 5 单击 按钮或选择 组建 执行 菜单项 按快捷键 F5 运行程序 6 判断结果正确与否 include void main int a b sum a 123 b 456 sum a b printf a b d n sum 填写运行结果 关闭上面的程序 按上面的步骤再次输入如下的程序 进行编译 连接和运行 写出 运行结果 include void main int m 7 n 4 float a 38 4 b 6 4 x x m 2 n a b 1 2 printf f n x 填写运行结果 思考思考 把前面的语句 x m 2 n a b 1 2 改为 x m 2 0 n a b 1 0 2 运行结果将会是什么 2 2 程序改错题程序改错题 程序改错程序改错 1 1 输入如下错误的程序 然后进行编译和连接 仔细检查并修改错误 再进行编译连 接 直到没有错误为止 运行程序 include void mian printf We are studying C language n 程序改错程序改错 2 2 输入并运行下面一个需要在运行时输入数据的程序 程序要求从键盘输入三个实数 输出它们的和 include mian float a b c sum printf Input a b c scanf f f f sum a b c printf n sum f n sum 输入该程序 然后进行编译和连接 如果出错 仔细检查并修改错误 再进行编译 连接 直到没有错误为止 运行程序 按照输入输出示例提示输入 a b c 三个变量的值 变量值之间用空格 分隔 输入完毕按回车键 Enter 查看运行结果 判断结果正确与否 输入输出示例输入输出示例 Input a b c 3 5 6 sum 14 0 再次运行程序并按如下的格式输入数据 观察结果是否正确 为什么 Input a b c 3 5 6 sum 思考思考 改正程序的错误后 把 printf 语句中的 f 改成 d 再运行程序 有什么结果 Input a b c 3 5 5 5 6 5 结果 3 3 程序完整题程序完整题 完整题完整题 1 1 二整数整除程序模板如下 include void main int a b div printf Input a b 提示输入二个数 scanf d d 从键盘输入二个数存储在变量 a b 中 除法运算 相除的结果放在变量 div 中 用 d 输出结果 输入输出示例输入输出示例 思考思考 把上述 int a b div 改成 float a b div scanf d d 中的 d 改成 f 同时把输出语句中的 d 改成 f 运行程序后 再用前 面的数据输入 结果会发生如何变化 为什么有这样的变化 完整题完整题 2 2 Input a b 3 5 div 0 Input a b 5 3 div 1 Input a b 3 5 div Input a b 5 3 div 仿照教材中例仿照教材中例 1 21 2 程序 在横线地方填写语句程序 在横线地方填写语句 输入圆柱体的半径和高 计算并输出圆输入圆柱体的半径和高 计算并输出圆 柱体的体积和表面积 柱体的体积和表面积 include void main 定义变量 printf 请输入圆的半径和高 n 在屏幕上显示提示信息 scanf f f 从键盘输入半径和高给变量 r 计算体积 计算表面积 printf v f s f n v s 输出体积和表面积 输入与输出输入与输出 试一试试一试 如果把上述程序中所有的 f 改成 d 再次运行程序 仍然输入 5 0 8 0 输出结果 会是什么 分析结果 把上述程序中的第一个 n 去掉 再编译运行程序 有什么变化 试说出 n 的作用 请输入圆的半径和高 5 0 8 0 输出结果 2 52 5 实验二实验二 编写几个简单的编写几个简单的 C C 程序程序 一 实验目的与要求一 实验目的与要求 1 掌握 C 语言基本数据类型的概念 理解数据类型与运算的关系 2 掌握简单变量的定义 算术表达式和赋值表达式的使用 3 掌握基本输出语句的使用 4 进一步熟悉 C 程序的编辑 编译 连接和运行的过程 5 掌握简单 C 程序查错方法 编写几个简单程序 6 实验 4 学时 二 实验内容二 实验内容 1 程序验证或填空 1 编译和运行下面程序 查看执行的结果 include int main void int si 1 float f 5 double df 3 printf si d f f f lf n si f df return 0 若把输出语句中的格式控制中的格式说明符的顺序改变一下 会有什么结果 再把 lf 修改为 f 运行会有什么结果 2 分析程序 并上机运行验证运行结果 include stdio h void main printf t n printf t b n printf t b b n 3 运行程序 并分析结果 include stdio h void main int a 10 x 5 y 6 a a 6 x y y x a x y printf d d d n a x y 4 不用第 3 个变量 实现将二个数进行对调 请填空 include stdio h void main int a b scanf d d printf a d b d n a b a b a printf a d b d n a b 2 程序改错 改正下面程序中的多处错误 计算某个数 x 的平方 y 并分别以 y x x 和 x x y 的形式输出 x 和 y 的值 x 的值由键盘输入 输出示例输出示例 假设 x 的值为 3 9 3 3 3 3 9 源程序源程序 有错误的程序 include int main void int y y x x printf d d d x 输出 printf d d d y 3 一般编程题 编程题 1 编写程序 输入二个整数 计算它们的和 差 积 商和余数 并按 5 11 16 这样的 输出格式输出结果 编程题 2 编写程序 输入二个实数 计算它们的和 差 积 商 并按 32 24 12 2 20 04 这样 的输出格式输出结果 实数分别定义为单精度实数或双精度实数 编程题 3 编写程序 从键盘输入一个大写字母 改用小写字母输出 编程题 4 求华氏温度 150 对应的摄氏温度 计算公式如下 其中 c 表示摄氏温度 f 表示 华氏温度 32 9 5 9 5 fc 要求输出结果为 fahr 150 celsius 66 思考 思考 如果使用公式计算华氏温度 150 所对应的摄氏温度 计算结果 9 32 5 f c 是否一样 为什么 编程题 5 编写程序 从键盘输入学生的三门课成绩 求其平均成绩 保留小数点后 1 位 4 较难编程题 编程题 1 当 n 为三位十进制整数时 分别求出 n 的个位数字 digit1 十位数字 digit2 和百 位数字 digit3 的值 输出示例 输出示例 n 为整数 152 时 它的个位数字是 2 十位数字是 5 百位数字是 1 提示 提示 n 的个位数字 digit1 的值是 n 10 十位数字 digit2 的值是 n 10 10 百位 数字 digit3 的值是 n 100 编程题 2 将从键盘输入的实型十进制数分离为整数部分和小数部分后输出 如输入 233 55 输 出为 233 55 233 0 55 编程题 3 计算定期存款的本金与利息之和 设银行定期存款的年利率 rate 为 2 25 存款期为 n 年 存款本金为 money 元 具体的数字由键盘输入 编程计算 n 年后的本金与利息之和 提示 利用 pow 函数 3 53 5 实验三实验三 选择结构程序设计选择结构程序设计 一 实验目的与要求一 实验目的与要求 1 理解 C 语言表示逻辑量的方法 学会正确使用逻辑运算符和逻辑表达式 2 掌握利用 if 结构实现选择结构的方法 3 掌握利用 switch 结构实现多分支选择结构 4 结合程序掌握一些简单的算法 学习调试程序 5 实验 4 学时 二 实验内容二 实验内容 这里增 加了一 个题目 1 程序改错题 程序改错题 改正下面程序中的错误 输入实数 x 计算并输出下列分段函数 f x 的值 保留 1 位小数 100 1 x x xfy 100 xx 输入输出示例输入输出示例 1 1 改正后程序的运行结果 Enter x 100 f 100 00 0 1 输入输出示例输入输出示例 2 2 改正后程序的运行结果 Enter x 23 f 23 00 23 0 源程序源程序 有错误的程序 include include void main void double x printf Enter x n scanf f x if x 100 y 1 sqrt x else x 100 y x printf f 2f 1f n x y 2 2 一般编程题 一般编程题 编程题编程题 1 输入任意三个整数 a b c 求 3 个数中的最大值和最小值 编程题编程题 2 输入 x 计算并输出下面分段函数 f x 的值 保留 2 位小数 请调用 sqrt 函数求平方 根 调用 pow 函数求幂 0 1 2 1 2 x x xx xf 0 xx 输入输出示例输入输出示例 共运行 3 次 Enter x 10 f 10 00 3 16 Enter x 0 5 f 0 50 2 75 Enter x 0 f 0 00 0 00 成本 编程题编程题 3 有一函数 x 5 x 0 y x 1 x 0 x 1 0 x 10 编写程序 要求用 scanf 函数输入 x 的值 输出 y 的值 具体要求如下 1 用 if 语句实现分支 自变量和函数值均用实数类型 2 自变量用 scanf 函数输入 给一些输入提示 3 运行程序 输入 x 的值 分别为 5 x 0 x 0 0 x 10 三种情况 检查输出的 y 值 是否正确 编程题编程题 4 某服装店经营成套服装的买卖 同时也允许单件销售 若一次购买不少于 70 套 则每 套 90 元 若不足 70 套 则每套 110 元 只买上衣每件 70 元 只买裤子每条 60 元 请编 写程序假设用户买入 x 件上衣和 y 条裤子 请编写程序计算相应的应付款是多少 编程题编程题 5 编写程序实现 输入一个整数 判断它能否被 3 5 7 整除 同时输出如下信息 1 能同时被 3 5 7 整除 2 能同时被其中的哪二个数整除 3 能被其中的哪一个数整除 4 不能被 3 5 7 任一个数整除 3 3 较难编程题 较难编程题 编程题编程题 1 请用 switch 语句编程计算员工每月的薪水 exph3 1 cpp 已知某公司员工的保底薪水为 500 某月所接工程的利润 profit 整数 与提成的关系如下 计量单位 元 profit 1000 没有提成 1000 profit 2000提成 10 2000 profit 5000提成 15 5000 profit 10000提成 20 10000 profit 提成 25 分析 为使用 switch 语句 必须将利润 profit 与提成的关系 转换成某些整数与提成的关 系 分析本题可知 提成的变化点都是 1000 的整数倍 1000 2000 5000 如果 将利润 profit 整除 1000 则相邻两个区间的重叠 为解决相邻两个区间的重叠问题 最简 单的方法就是 利润 profit 先减 1 最小增量 然后再整除 1000 即可 profit 1000 对应 0 1000 profit 2000对应 1 2000 profit 5000对应 2 3 4 5000 profit 10000对应 5 6 7 8 9 10000 profit对应 10 11 12 编程题编程题 2 编写程序实现如下功能 输入二个运算数 exp1 exp2 和一个运算符 op 计算表 达式 exp1 op exp2 的值 其中 OP 可以为 五个符号中的任一种 提示 用 switch 语句实现 4 54 5 实验四实验四 循环结构程序设计循环结构程序设计 一 实验目的与要求一 实验目的与要求 1 熟练掌握用 while 语句 do while 语句实现循环的方法 2 熟练掌握用 for 语句实现循环的方法 3 对循环语句的三种形式进行分析 比较 以掌握各种形式的共同之处与其特点 4 掌握循环结构的嵌套 掌握 break 语句和 continue 语句在循环体中的作用 5 实验 4 学时 二 实验内容二 实验内容 1 程序验证题与改错题 1 程序验证 从键盘输入一个整数 在屏幕上将其逆序数输入 例如输入 8193 输出 3918 include void main int x number printf 请输入一个整数 scanf d do x number 10 number number 10 printf d x while number 0 printf n 如果输入的是一个负整数 程序应该如何改 2 2 程序改错 程序改错 计算表达式 1 2 3 10 的值 改正下面程序中的多处错误 源程序源程序 有错误的程序 include void main void int sum1 sum2 i j for i 1 i 10 i for j 1 jb swap a b printf d t d a b 思考 为什么 a b 的值没有交换 调用函数 fun 计算 m 1 2 3 4 9 10 并输出结果 请验证下面的程序是否符 合题目要求 include stdio h int fun int n int m i for i 1 i n i m i return m void main printf m d n fun 10 在上面程序的基础上 修改程序 计算 m 1 2 3 4 9 10 2 程序改错题 下列程序的功能是利用自定义函数计算一无符号的整数各位数字的乘积 include unsigned f unsigned num unsigned k 0 do k num 10 num 10 while k return k void main int x printf input x n scanf d x printf d f x 2 2 一般编程题一般编程题 编程题编程题 1 编写一函数 把输入的 4 个数字字符转换成一个 int 数据存放 如输入 4123 这 字符转换为 4123 这个整数 并通过主函数验证结果 编程题编程题 2 编写程序求 1 1 1 2 2 2 3 3 3 4 4 4 5 5 51 1 1 2 2 2 3 3 3 4 4 4 5 5 5 提示 主函数用来现实结果 f1 函数用来求一个数的立方 f2 函数用来求和 include int f1 int n int f2 int m void main 编程题编程题 3 定义两个带参数的宏 将两个参数的值相加和相减 并写出程序 输入两个数作 为使用宏时的实参 输出相加和相减后的和与差 编程题编程题 4 编程输出 2 到 10000 之间的所有完数 所谓完数是指因子之和与它本身相等的数 如 6 1 2 3 6 是一个完数 要求 定义函数 factor m 判断 m 是否为完数 由主函数调用它 来对所有 2 到 10000 之 间的所有数进行判断 include include int factor int m int i s 0 void main int i m sum 3 较难编程题 编程题编程题 1 1 用函数调用实现求两个数的最大公因子和最小公倍数 编程题编程题 2 2 用递归方法求 1 2 3 并将其中素数去除后之和 include include int isprime int number long fact int n void main int m sum 6 46 4 实验六实验六 数组数组 一 一 实验目的与要求实验目的与要求 1 掌握一维数组的定义 赋值和输入输出的方法 2 理解一维数组的存储方法及下标的表示方法 3 掌握与数组有关的算法 特别是排序算法 4 掌握二维数组的定义 赋值和输入输出的方法 5 理解二维数组的存储方法及下标的表示方法 6 实验 4 学时 二 实验内容二 实验内容 1 程序验证题与改错题 1 程序验证题 给定一个整型数组 a 要求求出其中小于 0 的元素的个数 请验证下面的程序是否 符合题目要求 define N 10 void main int a N 11 2 4 1 5 3 66 0 10 5 int i 变量 i 用于 for 循环 int count 0 变量 count 用于技术 初始化为 0 for i 0 i N i if a i 0 count 如果元素 a i 0 count 计数 1 printf d n count 给定一个整型二维数组 a 3 3 要求求出对角线元素的和 请验证下面的程序是 否符合题目要求 include define N 3 void main int a N N 1 2 3 4 5 6 7 8 9 int i j 变量 i j 用于 for 循环 int sum 0 变量 sum 用于求和 初始化为 0 for i 0 i N i for j 0 j N j if i j sum a i j 如果是对角线元素 sum a i j 这里有改动 printf d n sum return 0 注 1 在程序验证题 的基础上 修改程序 求出数组 a 中大于 a 0 的元素之和 注 2 对上述程序 进行优化 消除内循环 实现同样的效果 在 的基础上 修改 程序 求出数组 a 中反对角线元素之和 提示 内循环用逆序 i j N 1 2 程序改错题 2 一般编程题 编程题编程题 1 从键盘输入 10 个整型数据 放入数组 a 中 求其最大值 最小值及其所在元素 的下标位置 并输出 程序提示 定义 10 个元素的数组 用 for 循环语句逐一输入数据 定义最大值变量和最小 值变量 用 for 循环语句遍历所有数组元素 逐一比较查找最大值和最小值 编程题编程题 2 给定一个字符数组 a 要求将数组的内容倒置 如 执行前数组的内容为 1 2 3 4 5 6 7 8 执行后数组的内容为 8 7 6 5 4 3 2 1 提示 用 i 表示数组的第一个元素的下标 用 j 表示数组最后一个元素的下标 交换 a i 和 a j 当 ie 若找到相等元素 则返 回元素下标 否则返回 1 表示无此数 7 47 4 实验七实验七 字符与字符串处理字符与字符串处理 一 实验目的与要求一 实验目的与要求 1 掌握 C 语言字符型数据的概念 理解字符型与整型数据之间的关系 2 掌握字符的输入与输出 3 掌握转义字符常量 字符串常量的使用 4 掌握字符 字符串与字符数组的输入与输出 5 掌握字符串函数的使用 字符串数组的使用 6 实验课时 2 学时 二 实验内容二 实验内容 1 程序改错题 程序改错题 调试下列程序 使之具有如下功能 任意输入两个字符串 如 ningbo 和 china 并存放在 a b 两个数组中 然后把较短的字符串放在 a 数组 较长的字符串放在 b 数 组 并输出 程序中的 strlen 是库函数 功能是求字符串的长度 它的原型保存在头 文件 string h 中 调试时注意库函数的调用方法 不同的字符串输入方法 通过错误 提示发现程序中的错误 include include void main char a 10 b 10 ch int c d k scanf s scanf s error printf a s b s n a b c strlen a d strlen b if c d for k 0 k d k error ch a k a k b k b k ch a k 0 error printf a s n a printf b s n b 下列给定程序中 函数 fun 的功能是 依次取出字符串中所有数字字符 形成 新的字符串 并取代原字符串 请改正函数 fun 中的错误 使它能得出正确的结果 注意 不要改动 main 函数 不得增行或删行 也不得更改程序的结构 include void fun char s int i j for i 0 j 0 s j 0 i error if s i 0 s j 0 error void main char item 80 printf nEnter a string gets item printf n nThe string is s n item fun item printf n nThe string of changing is s n item 2 一般编程题一般编程题 编程题编程题 1 请编一个函数 fun char s 该函数的功能是把字符串中的内容逆置 例如 字符串中原有的字符串为 abcdefg 则调用该函数后 串中的内容为 gfedcba 注意 部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容 仅在函数 fun 的花括号中填入所编写的若干语句 include include define N 81 void fun char s 请填写完整 void main char a N printf Enter a string gets a printf The original string is puts a fun a printf n printf The string after modified puts a 编程题编程题 2 请编写输入以下图案 1 2 的程序 图案的行数由输入的值确定 1 2 3 3 较难编程题 较难编程题 编程题编程题 1 编写程序 程序功能是从键盘接收一个字符串 然后按照字符顺序从小到大进行排序 例如 若输入 edcba 则应输出 abcde include include void main int i j char string 100 c printf Please input a string gets string 请填写完整 printf result s n string 编程题编程题 2 编写程序 程序功能是统计子串 substr 在母串 str 中出现的次数 要求编写并调用函数 fun 的功能是 从 str 所指字符串中 找出 substr 所指子串的个数作为函数值返回 例如 当 str 所指字符串中的内容为 abcdabfab substr 所指字符串的内容为 ab 则 函数返回整数 3 include count char str char substr 请填写完整 void main char str 80 substr 80 int n gets str gets substr printf d n count str substr 8 48 4 实验八实验八 指针指针 一 一 实验目的与要求实验目的与要求 1 理解和掌握指针的概念 定义和使用指针变量 2 掌握函数之间指针的传递关系 3 掌握通过指针操作数组中元素的方法 4 实验 2 学时 二 实验内容二 实验内容 1 程序调试 1 调试本程序 了解运算符 与 float xptr xptr 此处是否可以用 xptr x 7 9 printf The address of x is x n printf The value of xptr is x n xptr printf The value of x is f n x printf The value of xptr is f n xptr 程序运行结果如下 在上面的程序中 注意区别 ptr 的不同意义 语句 中的 表示此处的 xptr 是作为一 个指针变量来定义的 而语句 中的 则表示取变量 xptr 所指向的值 在本题中就是变量 x 的值 这时的 可以作为运算符来看待 这也可以理解为什么语句 中用了 xptr int p1 p2 p3 定义 3 个指针变量 void swap int p1 int p2 scanf d d d p1 p2 p3 3 个指针分别指向 3 个整型变量 用 swap 函数交换 2 个数 使较小数放到变量 a 中 较大数放到变量 b 中 if a b swap p1 p2 if a c swap p1 p3 if b c swap p2 p3 printf d d d a b c 按从小到大的顺序输出 3 个数 void swap int p1 int p2 swap 函数试图实现 2 个数的交换 int x x p1 p1 p2 p2 x 本题编译连接都没有问题 但是不能运行出正确结果 原因在哪里呢 对语句 的调 用进行分析 请大家仔细观察 swap 函数的实现部分 语句 表明 a b 成立 因此需要将 变量 a 和 b 中的数值进行调换 使其满足从小到大的排列顺序 swap 函数中定义了一个指 针变量 x 语句 是以指针变量 x 作为中间变量 将形参指针 p1 和 p2 所指的方向进行 了调换 即 使形参指针 p2 指向了较小值 而 p1 指向了较大值 但是这种交换对变量 a 和 b 并没有产生任何影响 当 swap 函数调用完毕后 变量 a 和 b 依然维持原有情况 无法 使它们中的数值按从小到大的顺序重新排列 因此无法得到正确的运行效果 对 swap 函数如何改造才能得到正确结果呢 请大家结合本题进行改错 2 程序完整题 运用指针对传递进来的两个整型量计算它们的和与积之后 通过参数返回 并予以输 出 划横线的位置是本程序缺失的部分 请填写正确内容并运行此程序 include void compute int m int n int sum int p void main int x y sum product scanf d d 输入两个整型量 compute x y 将两数和存入变量sum 积存入变量product printf d d n sum product 3 一般编程题 一般编程题 1 用指针法统计 10 个数中正数 负数和零的个数 并分别求正数的总和 负数的总和 2 通过指向整型数组的指针将数组 a m n 的内容按 m 行 n 列的格式输出 如一个 2 3 的数组将显示为如下所示的 2 行 3 列的形式 4 较难编程题 较难编程题 1 输入一行字符 开始用一个指针指向这行字符的开头 并依次向后移 分别统计出其 中英文字母 空格 数字和其它字符的个数 2 输入一个正整数表示一个星期中的某一天 若此数字在 1 7 内 则 输出对应英文星期 名 否则表示输入错误 例如 输入 2 程序输出 Tuesday 输入 16 程序输出 Illegal day 要求用指针数组处理 9 49 4 实验九实验九 结构体与链表结构体与链表 一 一 实验目的与要求实验目的与要求 1 掌握结构体类型变量的定义和使用 2 掌握结构体类型数组的定义和使用 3 掌握利用结构和指针处理单向链表的方法 4 实验 4 学时 二 实验内容二 实验内容 1 程序完整题 定义一个结构体变量 包括年 月 日 计算该日在本年中是第几天 注意闰年问题 以下的程序没有考虑闰年问题 请调试以下程序 并将闰年的判断加在程序中使其完整 include struct int year int month int day date void main int i days int day tab 13 0 31 28 31 30 31 30 31 31 30 31 30 31 printf Input year month day scanf d d d days 0 for i 1 i date month i days day tab i days date day 此处遗漏判断闰年的语句 请补充此处遗漏判断闰年的语句 请补充 printf d d is the dth day in d date month date day days date year 2 程序改写题 改写上面的程序 用一个函数 days 来实现上面第 1 题的计算 由主函数将年 月 日 传递给 days 函数 计算后将日数传回主函数输出 include struct int year int month int day date main daysum int year int month int day 3 一般编程题一般编程题 1 宁波大学阳明学院分流 信息科学与工程学院有 4 个专业 分别是通信工程 电子信 息科学与工程 自动化 光电信息工程 编写程序统计每个专业的报名人数 描述候 选专业的信息用专业名和报名数表示 2 从键盘输入 n 个学生的 3 门课程 语文 数学和英语 考试成绩 计算每个学生的平 均成绩 并按平均成绩从高到低排序输出每个学生的信息 要求使用结构体数据类型 3 利用下面的节点结构 struct Node char data struct Node link 实现 从键盘输入一行字符 然后按输入顺序建立链表 最后输出整个链表 其中建立链 表和输出链表的过程分别用不同的函数实现 4 假设有 a b 两个链表 每个链表中的节点包括学号 一门课程的成绩 要求把两个链 表合并 按学号升序排列 两个链表中不存在重复的学号 4 较难编程题较难编程题 1 用结构体数组修改教材上的例 9 2 输入 n 个职工的姓名 工资 奖金和扣款 对每个 职工在原来工资的基础上增加 5 计算职工的实发工资并输出每个职工的工资条 2 编写一个程序实现对学生数据的操作 每个学生结点包括学号和三门课程的成绩以及 平均分 要求 输入若干学生的学号和成绩建立链表 能对链表进行输出 能根据学号删除指定的学生结点 能插入给定的学生结点 围绕以上 4 个功能建立 一个简单的菜单 使用户能方便地选择不同功能进行操作 第第 10 章章 文件文件 10 110 1 知识要点知识要点 1 文件的功能 文件的引入 使得 c 处理大量数据时非常方便 可以从存储介质上直接导入导出 而 不必从键盘上一个一个数据输入 使用文件时 首先要定义一个文件指针 FILE fp C 语言把文件看成是一个字符 字节 的序列 即由一个一个字符的数据顺序组成 根据数据的组织形式 可分成 ASCII 文件和二进制文件 区别如下所示 十进制整数 10000 内存中存放形式 00100111 00010000 二进制文件中的存放形式 00100111 00010000 ASCII 码文件中的存放形式 00110001 00110000 00110000 00110000 00110000 ASCII 优点 容易移植 缺点 占用存储空间大 耗时 二进制优点 占用存储空间少 存储时间快 缺点 不易移植 2 文件的打开 关闭 文件打开 if fp fopen file1 c r NULL printf cannot open this file n exit 0 文件关闭 fclose fp 3 文件读写及定位操作 常用的读写函数 fputc fgetc fputs fgets fscanf fprintf fread fwrite 定位函数 rewind fseek ftell 10 210 2 常见错误和难点分析常见错误和难点分析 文件打开和关闭时 一定要指明打开或关闭的方式 如 r w a 分别表示只读形式 写入形式 附加形式 1 文件指针的定义 对文件进行操作 首先 必须要建立文件指针 文件类型指针的定义方式 FILE 文件指针变量名 注意 编程的时候 所有的标点符号必须在英文输入状态英文输入状态下输入 2 打开与关闭文件 文件要使用时 必需先对文件打开 使用后 在程序结束之前 必须要关闭文件 也 就是说 fopen 和 fclose 是成对出现 3 掌握输入输出函数 fscanf fprintf fread fwrite 等中每个参数的意义 以及相对位置 参数书写位置一定不能搞错 如 fscanf fp d f 绝对不可以不可以写成 fscanf d f 10 310 3 测试与练习题测试与练习题 1 程序阅读题程序阅读题 有如下程序 include void main FILE fp int i 20 j 30 k n fp fopen data dat w fprintf fp d n i fprintf fp d n j fclose fp fp fopen data dat r fscanf fp d d printf d d n k n fclose fp 程序运行后的输出结果是 A 20 30 B 10 30 C 10 20 D 20 10 2 程序填空题程序填空题 阅读下面题目 请补充完整 include stdio h include stdlib h void main FILE fp char ch if fp fopen file s txt w NULL printf can t open this file n exit 0 ch getchar while ch fputc 1 ch getchar 2 1 A fp ch B ch file s C ch fp D file s ch 2 A exit 0 B fclose fp C exit fp D fclose 0 3 编程题编程题 1 函数 ff str ch 的功能是统计并返回字符 ch 在字符串 str 中出现的次数 例如 调用 ff every e 后返回 2 因为在字符串 every 中字符 e 出现了 2 次 从键盘输入一个字符 ch 输出该字符在文本文件 input txt 的每一行中出现的次数 必必 须须调用函数 ff str ch 例如 如果文件 input txt 中存放了下列数据 every 121 I am a student 运行程序 并输入 e 后 输出 2 0 1 2 编写程序 从键盘输入 3 个学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版旅游产业三方借款协议范本
- 2025年高速公路冲孔桩加固工程劳务合同
- 2025年度文化娱乐合伙人合同范本标准
- 2025年专用发电机组买卖及电力工程设计合同
- 2025年度范文定制化服务与版权保护介绍费合同
- 2025版通信器材智能电网设备供应合同
- 2025版石油化工产品营销代理及推广服务合同范本
- 2025年度房地产开发商短期借款合同范本
- 2025大理石石材进出口代理协议范本
- 2025年度网络安全防护软件升级变更协议书
- 2025版电子购销合同模板
- 护理中医小讲课课件
- 2025年中煤电力有限公司招聘笔试参考题库含答案解析
- 动词教学课件
- 盐雾测试报告
- 外科学教案-腹外疝
- 寺院电路改造方案(3篇)
- 监理公司财务管理制度
- NBT 11551-2024 煤矿巷道TBM法施工及验收标准
- 生产环境条件管理制度
- 试用期员工绩效考核表新版本
评论
0/150
提交评论