




免费预览已结束,剩余57页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 语言程序设计上机实验报告 学院 机械工程学院 班级 机自 161213 姓名 刘昊 学号 20162181310 实验时间 2017 年 3 月 6 号 任课老师 张锐 C 语言程序设计上机实验报告 实验一 一 实验名称 C 程序的运行环境和运行 C 程序的方法 二 实验目的 了解在 C 编译系统上如何编辑 编译 连接和运行一个 C 程序 三 实验内容 1 输入并运行一个简单的 C 程序 2 设计程序 对给定的两个数求和 3 设计程序 对给定的两个数进行比较 然后输出其中较大的数 四 源程序代码 代码 1 运行结果 1 程序分析 1 该程序用来判断所输入的整数是否为一个素数 如果一个数能被除了 1 和它本身整除 还能被其它数整除 那么它就不是一个素数 因此 用 for 循环来进行整除过程的简写 代码 2 运行结果 2 程序分析 2 简单的使用 printf 和 scanf 函数进行简单的数据运算 代码 3 运行结果 3 程序分析 3 使用 if 语句进行判断 五 实验总结 C 语言程序设计上机实验报告 实验二 一 实验名称 顺序结构程序设计 二 实验目的 正确使用常用运算符 算术运算符 赋值运算符 的用法 熟练掌握算术运算符及其表达式 逻辑运算符和逻辑表达式 三 实验内容 1 编写程序 实现小写字母转大写 2 编写程序 实现输入两个不同类型数据后 经过适当的运算 加 减 乘 除 后输出 3 编写程序 计算三角形面积 立方体的体积和表面积 圆的面积和周 长 4 编写程序 实现单字符 getchar 和 putchar 输入输出 5 编写程序 实现十进制 八进制 十六进制不同数制的输出 四 源程序代码 代码 1 运行结果 1 程序分析 1 所有的字符都有一个对应的数字与之对应 每一个小写字母对应的数 与大写字母对应的数之间总是相差 32 所以只需要对所输入的字符进行减 法运算就可以转换为与之对应的大写字母 代码 2 运行结果 2 程序分析 2 简单的数据运算和格式字符的输出 代码 3 运行结果 3 程序分析 3 简单的数据运算实现相应的功能 代码 4 运行结果 4 程序分析 4 getchar 函数的返回值是用户输入的第一个字符的 ASCII 码 如出错返 回 1 且将用户输入的字符回显到屏幕 代码 5 运行结果 5 程序分析 5 重要的是格式字符的使用 d 输出十进制整型数 o 以八进制 格式输出整形数 x 以十六进制格式输出整型数 f 以带小数点的形 式输出浮点数 c 输出一个字符 s 输出字符串 直到遇到 0 五 实验总结 C 语言程序设计上机实验报告 实验三 一 实验名称 选择结构程序设计 二 实验目的 正确使用逻辑运算符和逻辑表达式 熟练掌握 if 语句和 switch 语句 学习调试程序 三 实验内容 1 编写程序 用 if 语句编程实现一分段函数的求解 2 用 if 语句编写程序 求一元二次方程的根 3 用 switch 语句编写程序 给出一个百分制成绩 要求输出成绩等级 A B C D E 90 分以上为 A 80 90 分为 B 70 79 分为 C 60 69 分为 D 60 分以下为 E 4 用 switch 语句编写程序 输入一小于 6 位数的整数 判断它是几位 并逆序输出 5 用 if 语句编写程序 判断某一年是否为闰年 四 源程序代码 代码 1 运行结果 1 程序分析 1 使用 if 函数对不同的输入参数进行不同的算术运算 代码 2 运行结果 2 程序分析 2 运用 math 库函数中的根号运算 sqrt 函数实现求根公式的表达 代码 3 运行结果 3 程序分析 3 运用 switch 语句对所有的情况分开 注意如果没有 break 语句 那 么判断到要执行的 case 后 其后面的语句也要执行 代码 4 运行结果 4 程序分析 4 重要的是判断一个数几位数的算法 每次对 10 取整 记录一次 降低 了一位位数 直到取整位 0 就降到了一位数 计数完毕 然后 对于不同的基 数值 输出相应的判断结果 代码 5 运行结果 5 程序分析 5 重要的是闰年判断条件 四年一闰 百年不闰 四百年一闰 的 c 语 言表示 i 4 0 for i 0 i 7 i printf c b i printf n void fun2 char d int j for j 0 j 7 j printf c d j main char a 8 A B C D E F G char c 8 H I J K L M N fun1 a fun2 c 运行结果 1 程序分析 1 执行两次同样的输出函数 代码 2 include void fun1 double b double d double max max b if d b max d printf 两个数中较大的数是 f n max void fun2 double b double d double j j b d printf f f f n b d j main double a c printf 请输入两个数 数据之间用空格隔开 n scanf lf lf fun1 fun2 运行结果 2 程序分析 2 将两个功能通过两个函数来单独完成 有利于程序的阅读 代码 3 include int max int n1 int n2 int main int i j k l m n o printf 请输入四个数 用空格隔开 n scanf d d d d m max i j n max k l o max m n printf 四个数中最大的数为 d n o return 0 int max int n1 int n2 if n1 n2 return n1 else return n2 运行结果 3 程序分析 3 代码 4 include long jc int m main int n jg printf 该程序用来计算阶乘 n printf 你要计算的是几的阶乘就输入几 n scanf d jg jc n printf d 的阶乘是 d n n jg long jc int m if m 0 return 1 else return m jc m 1 运行结果 4 程序分析 4 5 5 4 3 2 1 5 5 4 4 4 3 3 3 2 2 2 1 1 1 0 0 1 实现函数的直接递归调用 并且递归使用的是选择结构 一定会有结束递 归调用的语句 例如上题中 if m 0 的执行语句 return 1 就结束了再次调用 函数 jc 函数 代码 5 运行结果 5 程序分析 5 只需要传递一个简单的整形数据即可 注意功能函数 里的变量一定要 注明类型 五 实验总结 C 语言程序设计上机实验报告 实验六 一 实验名称 一维和二维数组 二 实验目的 掌握与数组有关的排序算法 冒泡排序和选择排序 三 实验内容 1 用一维数组 对给定的一组数据逆序输出 2 用一维数组 对 10 个数进行由小到大的冒泡排序 3 用二维数组 求一个矩阵中的最大数据元素及所在的行列位置 4 用一维数组 对 10 个数进行由小到大的选择排序 5 用二维数组 求一个矩阵的转置矩阵 四 源程序代码 代码 1 include main int i j m t a 100 printf 请输入一维数组的元素个数 注意 数组元素个数最多为 100 n scanf d j m 1 printf 请输入一维数组的元素 注意 每输入一个数据按回车再输入下 一个数据 n for i 0 i m i scanf d printf 你所输入一维数组为 for i 0 i m i printf d t a i printf n if m 2 0 printf 该一维数组逆序输出为 for i 0 i m 2 i t a i a i a j a j t j if m 2 0 printf 该一维数组逆序输出为 for i 0 i m 1 2 i t a i a i a j a j t j for i 0 i m i printf d t a i 运行结果 1 程序分析 1 代码 2 include main int i j m t a 100 printf 请输入一维数组的列数 注意 列数最多为 100 n scanf d printf 请输入一维数组的元素 注意 每输入一个数据按回车再输入 下一个数据 n for i 0 i m i scanf d printf 你所输入的一维数组为 n for i 0 i m i printf d t a i for i 1 i m i for j 0 ja j 1 t a j a j a j 1 a j 1 t printf n printf 你所输入的一维数组由小到大排序为 n for i 0 i m i printf d t a i 运行结果 2 程序分析 2 代码 3 include main int i j m n p 1 o 1 max1 a 100 100 printf 请输入二维数组的行数 注意 行数最多为 100 n scanf d printf 请输入二维数组的列数 注意 列数最多为 100 n scanf d printf 请输入二维数组的元素 注意 每输入一个数据按回车再输入 下一个数据 一行输入完后 再输入下一行 n for i 0 i m i for j 0 j n j scanf d printf 你所输入的二维数组为 n for i 0 i m i for j 0 j n j printf d t a i j if j n 1 printf n max1 a 0 0 for i 0 i m i for j 0 jmax1 max1 a i j o j 1 p i 1 printf 该数组中最大的数为 d n 其位于该数组的第 d 行第 d 列 max1 p o 运行结果 3 程序分析 3 代码 4 include main int i j m t a 100 printf 请输入一维数组的列数 注意 列数最多为 100 n scanf d printf 请输入一维数组的元素 注意 每输入一个数据按回车再输入 下一个数据 n for i 0 i m i scanf d printf 你所输入的一维数组为 n for i 0 i m i printf d t a i for i 0 i m i for j i 1 j m j if a j a i t a i a i a j a j t printf n printf 你所输入的一维数组由小到大排序为 n for i 0 i m i printf d t a i 运行结果 4 程序分析 4 代码 5 include main int i j m n t a 100 100 printf 请输入二维数组的行数 注意 行数最多为 100 n scanf d printf 请输入二维数组的列数 注意 列数最多为 100 因为是矩阵 要求行数等于列数 n scanf d printf 请输入二维数组的元素 注意 每输入一个数据按回车再输入 下一个数据 一行输入完后 再输入下一行 n for i 0 i m i for j 0 j n j scanf d printf 你所输入的二维数组为 n for i 0 i m i for j 0 j n j printf d t a i j if j n 1 printf n for i 0 i m 1 i for j i 1 j n j t a i j a i j a j i a j i t printf 你所输入的二维数组转置后为 n for i 0 i m i for j 0 j n j printf d t a i j if j n 1 printf n 运行结果 5 程序分析 5 五 实验总结 C 语言程序设计上机实验报告 实验七 一 实验名称 字符数组和字符串 二 实验目的 学会字符数组的输入 输出和初始化 掌握对字符数组进行连接 复制 和比较的函数 掌握对字符数组进行排序的有关算法 了解字符串变 量及字符串数组的使用技巧 三 实验内容 1 用一维字符数组 实现字符数组的输入 输出和初始化 及对字符数组进行连 接 复制和比较运算 2 用一维字符数组 对输入一行字符的字母 数字 空格和其他字符的个数分别 予以统计 并输出 3 用二维字符数组 实现输出钻石图形 4 用二维字符数组 对 8 个姓氏进行由小到大的冒泡排序 或选择排序 5 用字符串数组 输入输出一组学生的简单信息 四 源程序代码 代码 1 include include void fun1 char g char h int i j k printf a b 两个数组比较的结果为 n j strlen g k strlen h for i 0 i j i printf c g i printf for i 0 i k i printf c h i printf t printf d strcmp g h printf n void fun2 char c char d strcat c d printf a b 两个字符数组连接后的结果为 n puts c printf n void fun3 char e char f int m i strcpy e f printf 把 b 字符数组复制粘贴到 a 字符数组后两个数组元素的情况为 n m strlen e for i 0 i m i printf a d c t i e i printf n m strlen f for i 0 i m i printf b d c t i f i main char a 100 b 100 int i m printf 请输入第一个字符数组中的元素 注意 字符个数不得超过 100 字 符串结束符也占一个存储空间 n gets a printf a 字符数组为 n m strlen a for i 0 i m i printf a d c t i a i printf n printf 请输入第二个字符数组中的元素 注意 字符个数不得超过 100 字 符串结束符也占一个存储空间 n gets b printf b 字符数组为 n m strlen b for i 0 i m i printf a d c t i b i printf n printf n fun1 a b printf n fun2 a b printf n fun3 a b 运行结果 1 代码 2 include int main printf 请输入字符串 按回车键结束 n char str 100 int i 0 int num 0 ch 0 blank 0 other 0 gets str while str i 0 if str i A else if str i blank else other i printf 数字 d 个 字母 d 个 空格 d 个 其他 d 个 n num ch blank other return 0 运行结果 2 程序分析 2 代码 3 include int main int i j m 0 n 7 char a 5 8 for i 0 i 5 i for j 0 j 8 j a i j for j 1 j 7 j a 0 j for i 1 i 5 i a i m a i n m n for i 0 i 5 i for j 0 j 8 j printf c a i j printf n return 0 运行结果 3 代码 4 include include int main int i j char a 100 100 t 100 printf 对 8 个姓氏进行由小到大的冒泡排序 n printf 请依次输入姓氏的拼音 n for i 0 i 8 i printf 请输入第 d 个姓氏的拼音 i 1 gets a i for i 0 i 8 1 i for j 0 j0 strcpy t a j strcpy a j a j 1 strcpy a j 1 t printf 对 8 个姓氏进行由小到大进行重新排序的结果为 n for i 0 i 8 i puts a i return 0 运行结果 4 程序分析 4 代码 5 include include int main int i j char a 100 100 printf 请输入学生的姓名 gets a 0 printf 请输入学生的性别 gets a 1 printf 请输入学生的年龄 gets a 2 printf 请输入该学生的学号 gets a 3 printf 该学生的简明信息为 n printf 姓名 t 性别 t 年龄 t 学号 n for i 0 i 4 i printf s t a i return 0 运行结果 5 五 实验总结 C 语言程序设计上机实验报告 实验八 一 实验名称 指针 二 实验目的 能正确使用数组的指针和指向数组的指针变量 以及字符串的指针和 指向字符串的指针变量 三 实验内容 1 用指针和函数通过地址传递 实现输入三个数 按照由大到小的顺序输出 2 使用指向数组的指针变量 实现数组元素的输出 3 用一个函数实现两个字符的比较 函数原型为 int strcmp char p1 char p2 4 两个字符串 s1 s2 由 main 函数输入 strcmp 函数的返回值也由 main 函数输出 5 用指针数组 实现对字符串进行由小到大的选择排序 用指向指针的指针 实 现字符串的输出 四 源程序代码 代码 1 include include int main void int len 3 i j Temp printf 请输入你要建立一个多大的数组 len scanf d int p int malloc sizeof int len printf 请输入三个整数 n for i 0 i len i scanf d for i 0 i 2 i for j i 1 jp i Temp p i p i p j p j Temp printf 你所输入的整数按照从大到小的顺序排序为 n for i 0 i len i printf d t p i free p p NULL return 0 运行结果 1 代码 2 include include int main void int len i printf 请输入你要建立一个多大的数组 len scanf d int p int malloc sizeof int len printf 请输入数组元素 n for i 0 i len i scanf d printf 你所输入的数组为 n for i 0 i len i printf d t p i free p p NULL return 0 运行结果 2 代码 3 include 当不包含头文件时 strcmp 函数就是一个自定义的函数 因此本题的目的在于编写一个标准函数 int strcmp char s1 char s2 void main char str1 21 str2 21 printf 第一段字符为 最长为 20 gets str1 printf n 第二段字符为 最长为 20 gets str2 printf n 比较结果为 d n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版六年级语文下册主题教学设计
- 2024-2025学年新教材高中历史 第九单元 中华人民共和国成立和社会主义革命与建设 第26课 中华人民共和国成立和向社会主义的过渡说课稿1 新人教版必修《中外历史纲要(上)》
- 第18课《在长江源头各拉丹冬》教学设计 统编版语文八年级下册
- 小学语文腊八粥说课稿编写指南
- 6.2《五石之瓠》教学设计统编版高二语文选择性必修上册
- 第1单元七子之歌-《七子之歌-澳门》说课稿 人音版初中音乐八年级上册
- 建筑行业智能化施工技术推广方案
- Unit2DifferentfamiliesPartB(教学设计)-人教PEP版英语三年级上册
- 2025住宅楼购销合同(范本)
- 申请书入团范本
- 港区泊位码头工程施工组织设计(图文)
- 2023年全国职业院校技能大赛-融媒体内容策划与制作赛项规程
- 《水利工程施工监理规范》SL288-2014
- 胸外科讲课完整全套课件
- 产品知识培训-汽车悬架系统
- 维生素C在黄褐斑治疗中的作用
- 台球市场调研报告
- 【联合验收】房地产企业展示区联合验收考评表
- 糖尿病周围神经病变知多少课件
- 儿童肺炎支原体肺炎诊疗指南(2023年版)解读
- 多源数据融合技术-概述
评论
0/150
提交评论