大学大一C语言程序设计实验室上机题全部代码答案(实验报告).pdf_第1页
大学大一C语言程序设计实验室上机题全部代码答案(实验报告).pdf_第2页
大学大一C语言程序设计实验室上机题全部代码答案(实验报告).pdf_第3页
大学大一C语言程序设计实验室上机题全部代码答案(实验报告).pdf_第4页
大学大一C语言程序设计实验室上机题全部代码答案(实验报告).pdf_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

C 语言实验报告语言实验报告 实验实验 1 1 hello world 程序 源代码 源代码 include main printf hello world n system pause 实验实验 1 2 完成 3 个数据的输入 求和并输出计算结果的程序 源代码 源代码 include main int i j k sum scanf d d d sum i j k printf sum d sum system pause 实验实验 1 3 在屏幕上输出如下图形 A BBB CCCCC 源代码 源代码 include main printf A n printf BBB n printf CCCCC n system pause 实验实验 2 1 计算由键盘输入的任何两个双精度数据的平均值 源代码 源代码 include main double a b scanf lf lf printf 1lf n a b 2 system pause 实验实验 2 2 写一个输入 7 个数据的程序 把输入的数据代入 a b c d e f g 表达式进行运算 源代码 源代码 include main float a b c d e f g x scanf f f f f f f f x a b c d e f g printf x f x system pause 实验实验 2 3 编写一个 C 语言程序 测试下列各表达式 i j i 1 j 1 i j i j i j 源代码 源代码 include main int i 1 j 1 printf d d n i 1 j 1 printf d d n i j printf d d n i j printf d n i j system pause 实验实验 2 4 输入存款金额 money 存期 year 和年利率 rate 根据下列公式计算存款到期时的利息 interest 税前 输出时保留 2 位小数 interest money 1 rate year money 源代码 源代码 include include main int year 2 float rate 0 1 money 1000 float futureMoney futureMoney money pow 1 rate year printf 10 2f futureMoney system pause 实验实验 2 5 输入华氏温度 输出对应的摄氏温度 计算公式如下 c 5 f 32 9 其中 c 表示摄氏温度 f 表示华氏温度 源代码 源代码 include main int c f scanf d c 5 f 32 9 printf d c system pause 实验实验 3 1 编写一个程序完成输入一个整数 输出它的符号 源代码 源代码 include main int i scanf d if i 0 printf else printf system pause 实验实验 3 2 请编写居民应交水费 并提供各种测试数据 居民应交水费 y 元 与月用水量 x 吨 的函数关系式如下 0 x 15 源代码 源代码 include main float x y scanf f if x 0 printf f y system pause 实验实验 3 3 请根据输入的学生成绩给出成绩等级的判断 判断规则如下 如果输入的成绩大于等于 90 则输出优秀 如果输入的成绩小于 90 大于等于 80 则输出良好 如果输入的成绩小于 80 大于等于 70 则输出中等 如果输入的成绩小于 70 大于等于 60 则输出及格 其他输出不及格 源代码 源代码 include main int x scanf d if x 90 printf 优秀 n else if x 80 else printf 不及格 n system pause 实验实验 3 4 运输公司对用户计算运费 路程 s 越远 每公里运费越低 标准如下 s 250km没有折扣 250km s 500km2 折扣 500km s 1000km5 折扣 1000km s 2000km8 折扣 2000km s 3000km10 折扣 3000km s15 折扣 设每公里每吨货物的基本运费为 p 货物重为 w 距离为 s 折扣为 d 则总运费的计 算公式为 f p w s 1 d 请编程实现 从键盘输入基本运费 p 货物重 w 距离 s 计算输出用户最终需要支付 的运费 源代码 源代码 include main int p w s f scanf d d d float d f p w s 1 d if s 250 d 0 printf d f else if s 250 printf d f system pause 实验实验 4 1 已知 xyz yzz 532 其中 x y z 都是数字 0 9 编写一个程序求出 x y z 分别代表 什么数字 源代码 源代码 include main int x y z for x 1 x 9 x for y 1 y 9 y for z 1 z 9 z if 100 x 10 y z 100 y 10 z z 532 printf d d d x y z system pause 实验实验 4 2 编写一个程序打印如下对称图形 行数由键盘输入 1 9 范围的值 例如下面是输入的数字 4 时的情形 4444444 33333 222 1 222 33333 4444444 源代码 源代码 include main int i j k n printf 请输入一个数字 n scanf d i n for i 0 i n k 2 n 2 i for j 0 j k j printf for j 0 j 2 n k 1 j printf d n k printf n system pause 实验实验 4 3 学校有近千名学生 在操场上排队 5 人一行余 2 人 7 人一行余 3 人 3 人一行余 1 人 编写一个程序求该校的学生人数 源代码 源代码 include main int i for i 900 i 1100 i if i 5 2 break system pause 实验实验 4 4 学校某班 A B C D 四位同学中的一位做了好事不留名 表扬信来了之后 班主任问这 四位是谁做了好事 四位回答如下 A 说 不是我 B 说 是 C C 说 是 D D 说 他胡说 已知三个人说的是真话 一个人说的是假话 请根据这些信息 找出做了好事的人 源代码 源代码 include main int i j a b c d for i 0 i 4 i for j 0 j 4 j if j i switch j case 0 a 1 b 0 c 0 d 0 break case 1 a 0 b 1 c 0 d 0 break case 2 a 0 b 0 c 1 d 0 break case 3 a 0 b 0 c 0 d 1 break default break if a b c 1 system pause 实验实验 5 1 从键盘输入一个长度为 N 比如 10 的整型数组 而后将数组中小于零的元素移动到数组 的前端 大于零的元素移到数组的后端 等于零的元素留在数组中间 比如原来数组为 2 5 89 75 0 89 0 93 48 0 经过处理后的数组为 5 89 89 0 0 0 75 93 48 2 由于不要求数组有 序 所以不允许用排序方法 源代码 源代码 include include define N 10 main int a N 2 5 89 75 0 89 0 93 48 0 int i t j for i 0 i N i printf 4d a i printf n for i 0 i N i for j i 1 j0 a i a j a j t else if a i 0 a i a j a j t for i 0 i N i printf 4d a i printf n system pause 实验实验 5 2 设数组 a 的定义如下 inta 20 2 4 6 8 10 12 14 16 已存入数组中的数据值已经按由小到大的顺序存放 现从 键盘输入一个数据 把它插入到数组中 要求插入新数据以后 数组数据仍然保持有序 请 编写一个程序实现上述功能 源代码 源代码 include main int a 9 2 4 6 8 10 12 14 16 int i j number printf 原数组 n for i 0 i 8 i 输出数组原有的元素 printf d a i printf n printf 请输入一个数据 n scanf d i 0 以下三行找到插入位置 while a i numberj 将插入点以后的元素顺序往后移一位 a j 1 a j a i number 插入数据 printf 输出改变后的数组 n for i 0 i 8 i 输出插入后仍有序的数组 printf d a i system pause 实验实验 5 3 写一个 3 x 5 矩阵的转置程序 输出其原矩阵的值和转置以后的结果 源代码 源代码 include include main int i j int a 3 5 1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 for i 0 i 3 i for j 0 j 5 j printf d a i j printf n printf 转置后的矩阵为 n for i 0 i 5 i for j 0 j 3 j printf d a j i printf n system pause 实验实验 5 4 编程实现随机产生 10 个位于区间 100 200 互不相等的整数 并将其按降序排序和输出 源代码 源代码 include include include define random x rand 101 100 main int i j k n 产生随机数 int a 10 srand int time 0 for i 0 i 9 i a i random 200 printf d a i printf n for i 0 i 9 i 排序 k i for j i j 10 j if a k a j k j n a i a i a k a k n printf 排序后的数组为 n for i 0 i 10 i printf d a i system pause 实验实验 6 1 写一个函数 int digit int n int k 它返回数 n 的从右向左的第 k 个十进数字值 例如 函数 调用 digit 1234 2 将返回值 3 源代码 源代码 include include int digit int n int k int i j a b b n 10 a n 10 10 j n 100 10 i n 1000 10 n 1000 i 100 j 10 a b if k 1 printf d b else if k 2 printf d a else if k 3 printf d j else if k 4 printf d i main int x y printf 请输入一个数据 n scanf d d digit x y system pause 实验实验 6 2 写一个函数 int isprime int n 当 n 是质数时 函数返回非零值 当 n 是合数时 函数返回零 值 源代码 源代码 include include int isprime int n int i for i 2 i sqrt n i if n i 0 判断 return 0 else return 1 main int x printf 请输入一个数据 n scanf d printf d isprime x system pause 实验实验 6 3 写一个函数 reverse char s 将字符串 s 中的字符串倒序输出 试分别用递归和非递归两 种形式编写 源代码 源代码 递归 递归 include include include void res char s int len if len 0 printf c s len 1 len res s len getchar void reverse char b res b strlen b void main char a 100 gets a reverse a system pause 源代码 源代码 非递归 非递归 include include void reverse char s void main char s 100 gets s reverse s void reverse char s 非递归调用的 reverse 函数 int j i 0 do i while s i 0 for j i 1 j 0 j printf c s j printf n system pause 实验实验 6 4 写一个主函数输入测试数据 自己指定 并调用上述函数 检查函数功能的正确性 源代码 源代码 include int max int a int b if a b return a if a b return b main int a b scanf d d printf d n max a b 实验实验 6 5 一个数如果从左到右和从右到左读 数字是相同的 则称这个数字为回文数 比如 898 1221 15651 都是回文数 求 既是回文数又是质数的 5 位十进制数有多少个 要求 回文判断和 质数判断都需要通过子函数实现 输出的时候要求 5 个数字一行 源代码 源代码 include stdio h int hw int n int a 5 i k n j for i 2 i n 2 i if n i 0 return 0 else for i 0 i 5 i a i k 10 k k 10 if n a 0 10000 a 1 1000 a 2 100 a 3 10 a 4 return 1 else return 0 int main int i s j 0 for i 10000 imax midl max found s max min l else min found s max min l getchar int main int a 100 i n for i 0 i 10 i scanf d scanf d found a 9 0 n system pause 实验实验 7 1 编写一个函数 char delk char sp 把 sp 所指向的字符串中所有的 字符删除 并把处 理后的字符串指针返回 源代码 源代码 include include void delchar char s char c char s2 50 int i j for i 0 j 0 s i 0 i if s i c s2 j s i j s2 j 0 for i 0 s2 i 0 i s i s2 i s i 0 int main char str 20 abcdef delchar str c puts str system pause 实验实验 7 2 写一个函数 int find char s1 char s2 函数 find 的功能是查找串 s1 中是否包含指定的词 s2 指向 如果存在则返回第 1 次出现的位置 否则返回 1 约定串中的词由 1 个或 1 个以上的 空格符分隔 源代码 源代码 include int find char s1 char s2 int i 0 j 0 char p s2 for s1 0 s1 i if s1 s2 s2 p j 0 if s1 s2 j s2 if s2 0 return i j 2 return 1 int main char s1 I am a girl s2 am printf d find s1 s2 printf n 实验实验 7 3 编程实现将输入的十进制整数 n 通过函数 DtoH 转换为十六进制数 并将转换结果以字符形 式输出 例如 输入十进制数 79 将输出十六进制数 4f 源代码 源代码 include include int DtoH int n int a int i 0 while n 0 int bit n 16 a i bit i n n 16 return i int main int x printf please enter a number n scanf d int a 10 0 int nbits DtoH x a int i printf 转换后的数为 n for i nbits 1 i 0 i if a i 9 printf c a i 10 A else printf d a i printf n system pause 实验实验 7 4 定义函数 void Merge int a int n int b int m 参数 a b 为一维数组 数组中的数据为升 序排列 n 和 m 分别为它们的元素个数 函数的功能为 将数组 a 和 b 合并为一个数组 合 并后的结果存放于数组 a 中 要求合并后的数组 a 仍旧为升序排列 请编程实现 并编写 main 函数对其测试 源代码 源代码 include void Merge int a int n int b int m int p q i j k p a q b for i 0 i0 q for i 0 i 10 i for j i 1 j p j k p i p i p j p j k main int a 10 2 3 5 7 9 b 5 1 4 6 8 10 int i Merge a 10 b 5 for i 0 i 10 i printf 3d a i 实验实验 8 1 编写一个书名排序程序 输入 10 个书名存入一个二维数组 用函数 void sortstring char name int n 实现它们的字典顺序 源代码 源代码 include include void sortstring char name int n char p int i j for i 0 i n 1 i for j i 1 j0 p name i name i name j name j p main char name hello world start end then first follow watch see hear int a sortstring name 10 for a 0 a 10 a printf s n name a 实验实验 8 2 编写函数 void search char s1 char s2 char s3 函数 search 从已知的两个字符串 s1 与 s2 中找出它们都包含的最长的单词放入字符串 s3 约定字符串中只有小写字母和空格字符 单词用 1 个或 1 个以上空格分隔 源代码 源代码 include include include void search char s1 char s2 char s3 char p int word i m n char a 20 p s1 s3 0 0 while p 0 word 0 for i 0 p i 0 i 记录单词的长度 i if p i m i else if p i break if p i 0 if word 1 将单词复制到 atemp 中 strncpy a p m n m a n m 0 puts s3 char pfind strstr 找出 atemp 字符串在 s2 字符串中第一次出现的 位置 if pfind strstr s2 a NULL finded 只是找到包含 如果完全一致 应该将找到对应的单词取出 来再比较 if pfind strlen a pfind strlen a 0 if strlen a strlen s3 strcpy s3 a p p n else break main char s1 What s your name char s2 My name is 007 char s3 20 search s1 s2 s3 printf s n s3 实验实验 8 3 编写一个主函数 测试上述两个函数的正确性 结果如上两题所示 实验实验 8 4 输入一个字符串 内有数字和非数字字符 例如 A123cdf 456 78cpc876 9er 849 1 将其中连续的数字作为一个实数 依次存放到一数组 a 中 例如 123 存放在 a 0 456 78 存放在 a 2 依次类推 统计共有多少个数 并输出这些数 源代码 源代码 include void f char sp float b char p float value int power i 0 j 0 p sp while p for p 0 p i value value 10 p 0 power power 10 value value power b j value printf 数字个数为 d n i void main int j float b 4 0 char a A123cdf 456 78cpc876 9er 849 1 f a b for j 0 j 4 j printf 2f n b j 实验实验 9 1 编写一个建立单链表的函数 设链表的表元素信息包含学号 姓名 一门课的成绩 写一个 按照学号查学生成绩的函数 最后写一个主函数 它先调用建立函数 再调用查询函数 显 示查到学生的姓名和成绩 源代码 源代码 include struct student int num char name 20 float score stu 4 1 zeng 98 2 pu 90 3 wu 90 4 wang 89 main int i j printf 请输入学号 n scanf d for j 0 j 4 j if stu j num i printf 4d 8s 12f n stu j num stu j name stu j score 实验实验 9 2 编一程序 能把从终端输入的一个字符串中的小写字母全部转换成大写字母 要求输入的字 符的同时指定该字符在字符串中的序号 即字符在字符串中的顺序号 例如第 1 个字符的序 号为 1 字符和序号存入结构体中 字符串存入结构体数组中 然后显示结构体数组的结 果 用字符 表示输入字符串的结束 源代码 源代码 include struct str char a int num s 10 main int i 0 printf 请输入字母 以 为结束标志 n while 1 scanf c if s i a s i num i 1 else break if s i a Z s i a s i a 32 printf c d n s i a s i num i 实验实验 9 3 在本实验的实验内容 1 的基础上 实现在链表元素 index 之前插入元素的操作 Insert struct node head int index 和删除指定位置元素的操作 Delete struct node head int index 并编写 主函数测试 源代码 源代码 include include include include struct student char name 15 char num 15 char risk 15 struct student next struct student fun struct student p q head q head NULL char str 15 0 printf 请依次输入学生的姓名 学号 成绩 以 0 作为结束标志 n while 1 scanf s str if str 0 0 break p struct student malloc sizeof struct student strcpy p name str scanf s p num scanf s p risk if head NULL head q p else q next p q p q next NULL return head struct student park struct student head int i char str 15 struct student p q printf 你想要删除某个学生的信息吗 是 否 1 0 n scanf d if i return head printf 请输入你想要删除的学生姓名 n scanf s str for p head q NULL p NULL q p p p next if strcmp p name str break if p NULL printf 没有你要删除的学生的信息 n return head else if q NULL head p next else q next p next free p return head struct student wall struct student head int i j k 1 struct student p q r printf 你想要添加某个学生的信息吗 是 否 1 0 n scanf d if i return head printf 请输入你想要添加的学生的信息 依次为 姓名 学号 成绩 n p struct student malloc sizeof struct student scanf s p name scanf s p num scanf s p risk printf 请输入你想要添加到的位置 n scanf d for q head r NULL q NULL r q q q next if j 1 p next head head p break if k j p next q r next p break k if q NULL p next NULL if q NULL return head void prin struct student head struct student p for p head p NULL p p next printf s p name printf s p num printf s p risk printf n main struct student head head fun head wall head head park head prin head 实验实验 10 1 编写一个程序 读取磁盘上的一个 C 语言程序文件 要求加上注释后再存放到磁盘上 文 件可以另外命名 源代码

温馨提示

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

最新文档

评论

0/150

提交评论