欢迎来到天天文库!上传客服QQ1290478887点击这里,给天天文库发消息,QQ:1290478887 | 帮助中心 分享价值,快乐你我!
天天文库
全部分类
  • 学术论文 >
    毕业论文 毕业设计 临时分类
    学术论文
    毕业论文 毕业设计 临时分类 土木工程毕业设计 asp毕业设计 安卓毕业设计 php毕业设计 文献综述 其他论文 外文翻译 Java毕业设计 asp.net论文 英语论文 机械毕业设计 船舶工程毕业论文 法学专业毕业论文 工商管理毕业论文 汉语言文学毕业论文 行政管理毕业论文 护理学毕业论文 化学专业毕业论文 会计学毕业论文 计算机论文 教育学论文 金融管理论文 景观设计毕业论文 旅游管理毕业论文 文秘秘书毕业论文 人力资源管理毕业论 期刊论文 数学专业毕业论文 心理学毕业论文 平面艺术设计论文 开题报告 音乐专业毕业论文 市场营销论文 装修毕业论文
  • 应用文档 >
    商业计划 设计方案 施工方案
    应用文档
    商业计划 设计方案 施工方案 事迹材料 使用与维护手册 工作思想汇报 表格清单 应急预案 调研报告 策划书 项目建议书 技术措施与指南 可行性研究报告 分析报告 演讲稿 自查报告 党校课件 党校讲课稿 合同协议范本 ppt模板 工作总结 工作计划 工作报告 讲话稿 心得体会 活动方案 规章制度 读后感 汇报材料 其他办公文档
  • 行业资料 >
    专业技术 解决措施 指导说明书
    行业资料
    专业技术 解决措施 指导说明书 组织施工设计 技术规范 国家标准 行业标准 经营营销
  • 教育资源 >
    课后答案 笔记讲义 主题班会
    教育资源
    课后答案 笔记讲义 主题班会 医学课件 PDF书籍 商业培训 优质公开课课件 考试资料 教学课件 职业培训课件 大学学习资料 高中学习资料 初中学习资料 小学学习资料 其他学习资料 练习与试题 英语资料 课程设计 临时分类
  • 其他资料 >
    其他文档 免费文档
    其他资料
    其他文档 免费文档
  • 首页 天天文库 > 资源分类 > DOC文档下载
     

    c语言程序设计实验指导书参考答案[2]

    • 资源ID:18800034       资源大小:115.50KB        全文页数:95页
    • 资源格式: DOC        下载权限:游客/注册会员    下载费用:20积分 【人民币20元】
    游客快捷下载 游客一键下载
    会员登录下载
    下载资源需要20积分 【人民币20元】

    邮箱/QQ:
    温馨提示:
    支付成功后,系统会根据您填写的邮箱或者QQ号作为您下次登录的用户名和密码(如填写的是QQ,那登陆用户名和密码就是QQ号),方便下次登录下载和查询订单;
    特别说明:
    付款后即可正常下载,下载内容为可编辑文档格式,推荐使用支付宝;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    1、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器);
    2、文档下载后都不会有天天文库的水印,预览文档经过压缩,下载后原文更清晰;
    3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
    4、所有文档都是可以预览的,天天文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供保证;
    5、文档的总页数、文档格式和文档大小以系统显示为准(不同办公软件显示的页数偶尔有区别),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
    6、如果您还有什么不清楚的,可以点击右侧栏的客服对话;
    下载须知 | 常见问题汇总

    c语言程序设计实验指导书参考答案[2]

    C C 语言程序设计实验指导书参考答案语言程序设计实验指导书参考答案[2][2] C 语言程序设计 上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学 目录 上机实验. ............................................................. ............................................................. ........................................1 实验 1 C 语言程序初步 ............................................................. ............................................................. .........1 一、实验目的 ............................................................. ............................................................. .................1 二、实验内容 ............................................................. ............................................................. .................1 实验 2 基本数据类型、运算和表达式 ............................................................. ..............................................3 一、实验目的 ............................................................. ............................................................. .................3 二、实验内容 ............................................................. ............................................................. .................3 实验 3 基本输入与输出 ............................................................. ............................................................. ........5 一、实验目的 ............................................................. ............................................................. .................5 二、实验内容 ............................................................. ............................................................. .................5 实验 4 选择结构程序设计 ............................................................. ............................................................. .....4 一、实验目的 ............................................................. ............................................................. .................4 二、实验内容 ............................................................. ............................................................. .................4 实验 5 循环结构程序设计(一) ............................................................. ......................................................9 一、实验目的 ............................................................. ............................................................. .................9 二、实验内容 ............................................................. ............................................................. .................9 实验 6 循环结构程序设计(二) ............................................................. ....................................................15 一、实验目的 ............................................................. ............................................................. ...............15 二、实验内容 ............................................................. ............................................................. ...............15 实验 7 数组. ............................................................. ............................................................. .........................17 一、实验目的 ............................................................. ............................................................. ...............17 二、实验内容 ............................................................. ............................................................. ...............17 实验 8 字符数组的应用 ............................................................. ............................................................. ......22 一、实验目的 ............................................................. ............................................................. ...............22 二、实验内容 ............................................................. ............................................................. ...............22 实验 9 函数的基本应用 ............................................................. ............................................................. ......24 一、实验目的 ............................................................. ............................................................. ...............24 二、实验内容 ............................................................. ............................................................. ...............24 实验 10 指针与结构体 ............................................................. ............................................................. ........26 一、实验目的 ............................................................. ............................................................. ...............26 二、实验内容 ............................................................. ............................................................. ...............26 *实验 11 链表. ............................................................. ............................................................. ....................29 一、实验目的 ............................................................. ............................................................. ...............29 二、实验内容 ............................................................. ............................................................. ...............29 *实验 12 文件. ............................................................. ............................................................. ...................32 一、实验目的 ............................................................. ............................................................. ...............32 二、实验内容 ............................................................. ............................................................. ...............32 上机实验 实验 1 C 语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个 C 程序。 (3)通过运行简单的 C 程序,初步了解 C 程序的特点。 (4)在教师的指导下,学会使用 JudgeOnline 实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目The first C Program] 将下列程序输入 TC(或 VC) ,编译、连接和运行该程序。 void main { printfThe first C Program\n; } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2. 在 JudgeOnline 系统中提交实现了计算 ab 功能的程序 [题目 1001计算 ab] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程 序如下, void main { int a, b; scanfdd, a, b; printfd, a b; } (1)在程序编辑窗口中输入程序。 (2)保存程序,取名为 a2.c。 (3)按照前二章中介绍的方法,编译、连接和运行程序。 (4)在程序运行过程中,输入 15 30↙ ↙表示输入回车符 (5)如果看到如下输出结果,则表明 1530 的结果正确,如果得不到如下结果,则需检查并更正程序。 45 (6)按照第三章中介绍的方法进入 JudgeOnline 实验系统。 (7)显示题目列表,点击题号为 1001,题名为“计算 ab”的题目。 (8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章 提交程序的方法提交程序 a2.c。 (9)查看评判结果,如果得到“ accepted”则该题通过,否则返回第一步检查程序是否正确。 实验 2 基本数据类型、运算和表达式 一、实验目的 (1)掌握 C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它 们赋值的方法。 (2)掌握不同的类型数据之间赋值的规律。 (3)学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加 ()和自减(--)运 算符的使用。 (4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。 二、实验内容 1. 变量的定义 [题目 1117变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提 示补充完整缺少的语句。 void main { int a, b; /*定义整型变量 a 和 b*/ int i, j; /*定义实型变量 i 和 j*/ a5; b6; i3.14; ji*a*b; printfad,bd,if,jf\n, a, b, i, j; } [具体操作步骤] (1)将代码补充完整; (2)在 TC 或 VC上运行通过; (3)在 JudgeOnline 实验系统上提交; 2. 赋值表达式与赋值语句 [题目 1118赋值表达式与赋值语句,写出程序运行结果 ] 阅读下面程序,写出运行结果 void main { float a; int b, c; char d, e; a3.5; ba; c330; dc; e\\; printff,d,d,c,c, a,b,c,d,e; } 运行结果为 3.500000,3,330,J,\ [提示]赋值语句具有类型转换的功能,但可能会改变数据。 3. 基本运算 [题目 1119基本运算,写出程序运行结果] 阅读下面程序,写出运行结果 void main { int a, b, c; float d15, e, f; a357; b15/10; cb; e15/10; fd/10; printfd,d,d,f,f,f, a,b,c,d,e,f; } 运行结果为 0,2,1,15.000000,1.000000,1.500000 [提示]除法分整除与普通除法之分。 实验 3 基本输入与输出 一、实验目的 (1)熟练掌握 putchar、getchar、printf、scanf 函数的使用方法。 (2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转 换符。 二、实验内容 [题目 1126字符的输入与输出] 编程实现由键盘输入一个字符后,在屏幕上输出该字符。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] a↙ ↙ [正确输出] [正确输出] a 参考程序 include stdio.h main { char ch; ch getchar; putcharch; } [题目 1127计算加法] 编程实现由键盘输入一个加法式,输出正确的结果。 (两个加数均为 整数) [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 1020↙ -1560↙ [正确输出] [正确输出] 30 45 参考程序 include stdio.h main { int a, b; scanfd*cd, a,b; printfd, ab; } [题目 1014求圆面积] 只,程序位;另外数位小两留果保,结 3.14159 取 π注。 (积面的圆计算该请,r 圆半径输入由键盘 要能对 r 在 0 到 10000 范围的情况输出正确答案即可) [第一组自测数据] [键盘输入] 5 65.2↙ [键盘输入] [正确输出] 11.2↙ 13355.02 [正确输出] [第二组自测数据] 394.08 [提示]结果保留两位小数可采用 printf 函数的格式控制字符来实现。 参考程序 include stdio.h main { float area,r; scanff,r; area3.14159*r*r; printf0.2f,area; } [题目 1015计算摄氏温度值] 从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值, 精确到小数点后两位。 数学公式描述为 32 9 5 - FC [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 100↙ 100↙ [正确输出] [正确输出] 37.78 37.78 [提示]注意公式中的除为普通除法。 参考程序 includestdio.h void main { float f,c; scanff,f; c5.0/9*f-32; printf.2f,c; } 实验 4 选择结构程序设计 一、实验目的 (1)了解 C 语言表示逻辑的方法(以 0 代表“假” ,以非 0 代表“真” ) 。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握 if 语句和 switch 语句。 (4)结合程序掌握一些简单的算法。 二、实验内容 [题目 1120判断点是否在圆上] 由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上, 点在圆上输出 Y, 不在圆上输出 N。使用小数点后 3 位精度进行判断。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 0.707,0.707↙ 0.5,0.5↙ [正确输出] [正确输出] Y N [提示](1)平面上的点与圆的关系分为在圆内、在圆上、在圆外三 种,本题要求判断是否在圆上;(2) 判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度 (本题为 0.001)的方法实现。 参考程序 include stdio.h include math.h void main { float a,b; scanff,f,a,b; iffabsa*ab*b-11e-3 printfY\n; else printfN\n;} } [题目 1017求数的位数] 由键盘输入一个不多于 9 位的正整数,要求输出它是几位数。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 349213↙ 10000↙ [正确输出] [正确输出] 6 5 [提示]划定一位数、二位数、、九位数的范围,然后用 if else if else 语句实现判断。 参考程序 main { int n,place; scanfld,n; ifn99999999 place9; else ifn9999999 place8; else ifn999999 place7; else ifn99999 place6; else ifn9999 place5; else ifn999 place4; else ifn99 place3; else ifn9 place2; else place1; printfld\n,place; } [题目 1018数的排序] 由键盘输入三个整数 a、b、c,按从小到大的顺序输出这三个数。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 65,45,90↙ 9,6,3↙ [正确输出] [正确输出] 45,65,90 3,6,9 参考程序 includestdio.h main { int a,b,c,t; scanfd,d,d,a,b,c; ifab {ta;ab;bt;} ifac {ta;ac;ct;} ifbc {tb;bc;ct;} printfd,d,d,a,b,c; } [题目 1016字符变换] 由键盘输入 5 个字符,将其中的大写字母变成小写,其它类型的字符不变,并 按输入顺序逐个输出。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] ApPLe↙ aB5↙ [正确输出] [正确输出] apple ab5 [提示]下面代码实现由键盘读入一个字符,并按题意处理后输出 char a; agetchar; ifaA aZ aa32; putchara; 现在,题目要求处理 5 个字符,怎么做呢请自己思考 参考程序 include stdio.h main { char a,b,c,d,e; scanfccccc,a,b,c,d,e; ifaZaA aa32; ifbZbA bb32; ifcZcA cc32; ifdZdA dd32; ifeZeA ee32; printfccccc,a,b,c,d,e; } [题目 1019数的整除] 由键盘输入 5 个整数,逐个判断它们能否被 27 整除,能的输出“YES” ,不能的输出“NO” (注意, 输出时,一个判断结果占一行, 5 个数的判断共占 5 行) 。 ]数据自测二组第[ ]数据自测一组第[ [键盘输入] [键盘输入] 8 27 17577 325 54↙ 8 27 17577 325 54↙ [正确输出] [正确输出] NO NO YES YES YES YES NO NO YES YES [提示]整除即除得余数为 0 参考程序 include stdio.h main { int a,b,c,d,e; scanfd d d d d,a,b,c,d,e; ifa270 printfYES\n;else printfNO\n; ifb270 printfYES\n;else printfNO\n; ifc270 printfYES\n;else printfNO\n; ifd270 printfYES\n;else printfNO\n; ife270 printfYES\n;else printfNO\n; } [题目 1020正负奇偶判断] 由键盘输入非零整数 x,判断该数正负,正数输出 positive,负数输出 negative,接着判断该数的奇 偶性,奇数输出 odd,偶数输出 even。 [第一组自测数据] negative [键盘输入] odd -43↙ [第二组自测数据] [正确输出] [键盘输入] 98↙ positive [正确输出] even 参考程序 include stdio.h main { int n; scanfd,n; ifn0printfnegative\n; else printfpositive\n; ifn20printfeven\n; else printfodd\n; } [题目 1023简单计算器] 下面程序是实现一个简单的运算器(保留两位小数点) ,如果由键盘 输入 1050,计算机可以输出结 果 60.00;如果输入 8*6,计算机输出 48.00;如果输入 20/4,计算机输出 5.00;如果输入 8-6,计算机 输出 2.00,请在空处填上适当的代码,运行通过后并提交。 include stdio.h void main { float a,b,c; char op; scanffcf, ; switch op { case ; case - _; case * _; case / __ ; default printferror; return ; } printfresult , c; } [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 45*2↙ 50.1-23↙ [正确输出] [正确输出] 90 27.10 参考程序 include stdio.h int main { float a,b,c; char op; scanffcf,a,op,b; switchop { case cab;break; case -ca-b;break; case *ca*b;break; case /ca/b;break; defaultprintferror; break; } printfresult.2f,c; } 实验 5 循环结构程序设计(一) 一、实验目的 (1)熟悉掌握用 while 语句、do-while 语句和 for 语句实现循环的方法。 (2)掌握在程序设计中用循环实现一些常用算法(如穷举、迭代、 递推等) 。 二、实验内容 [题目 1024计算阶乘] 输入正整数 n,计算 n,结果用长整型数表示(注 n1*2*3*...*n) [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 5↙ 8↙ [正确输出] [正确输出] 120 40320 参考程序 includestdio.h main { long i,n1,a; scanfld,a; fori1;ia;i nn*i; printfld\n,n; } [题目 1025计算数列和] 有数列 1,3,5,7,9,11, 现要求由键盘输入 n,计算输出该数列的前 n 项和。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 2↙ 5↙ [正确输出] [正确输出] 4 25 9 参考程序 includestdio.h main { long n,sum0,i,t1; scanfld,n; fori1;in;i { sumsumt; tt2; } printfld\n,sum; } 或 include stdio.h main { long n,sum; scanfld,n; sumn*n; printfld,sum; } 注评判系统不对程序实现细节进行分析,只对运行结果进行评测。 [题目 1026累加一行字符中的数字] 由键盘输入一行字符(总字符个数从 1 个至 80 个均有可能,以回车符表示结束) ,将其中每个数字 字符所代表的数值累加起来,输出结果。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] abc123↙ A6H7T65↙ [正确输出] [正确输出] 6 24 [提示](1)可以使用下面程序段逐个读入键盘输入的一行字符 char ch; whilechgetchar\n {} (2)数字字符转为对应的数值可用 ach-0 参考程序 includestdio.h main { char c; int s0,a; whilecgetchar\n { ifc0c9 { ac-48; ssa; } } printfd,s; } [题目 1029求最大公约数] 由键盘输入两个正整数 m、n(m、n 用长整数表示) ,计算它们的最大公约数。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 16,24↙ 17,25↙ [正确输出] [正确输出] 8 1 [提示]公约数是既能整除 m 又能整除 n 的数,题目要求满足这一条件的最大的一个。 参考程序 includestdio.h main { long r,m,n,temp; scanfld,ld,m,n; whilem0 { rnm; nm; mr; } printfld\n,n; } 或 includestdio.h main { long m,n,t,i,s; scanfld,ld,m,n; tmnnm; for it-1;i1;i-- { if mi0ni0 { si; break; } } printfd,s; } [题目 1030字符变换] 由键盘输入一个句子(总字符个数从 1 个至 80 个均有可能,以回车符表示结束) ,将其中的大写字 符变成小写(其它类型的字符不变) ,最后输出变换后的句子。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] How Are You↙ ThiS IS My fIrSt C ProgrAm↙ [正确输出] [正确输出] how are you this is my first c program 参考程序 include stdio.h main { char c; whilecgetchar\n { ifcAcZ cc32; putcharc; } } [题目 1037计算数列和] 有数列 编程实现,由键盘输入 n,计算输出数列前 n 项和。 (结果保留四位小数) [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 20↙ 30↙ [正确输出] [正确输出] 32.6603 88.0403 参考程序 includestdio.h main { int i,t,n; float a2,b1,s0; scanfd,n; fori1;in;i { ssa/b; ta;aab;bt; } printf.4f\n,s; } [题目 1044输出最小值] 从键盘输入十个整数,输出最小值 [自测数据] [键盘输入] 12 45 7687 587 4355 9921↙ [正确输出] 5 参考程序 include stdio.h main { int i,t,min; scanfd, min; fori1;i10;i { scanfd, t; iftmin mint; } printfd\n,min; } *[题目 1031统计单词个数] 由键盘输入一个句子(总字符个数从 1 个至 80 个均有可能,以回车符表示结束) ,以空格分割单词, 要求输出单词的个数。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] How Are You↙ There are many students and many [正确输出] trees↙ 3 [正确输出] 7 参考程序 includestdio.h main { int i,num0,word0; char c; fori0;cgetchar\n;i ifc word0; else ifword0 { word1; num; } printfd,num; } *[题目 1042百万富翁] 一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。 该计划如下我每天给你 m 元, 而你第一天只需给我一分钱。第二天我仍给你 m 元,你给我 2 分钱。第三天,我仍给你 m 元,你给我 4 分钱。依次类推,你每天给我的钱是前一天的两倍,直到一个月38天。 百万富翁很高兴,欣然接受这 个契约。现要求,编写一个程序,由键盘输入 m,计算多少天后,百万富翁开始亏钱。 [第一组自测数据] 18 [键盘输入] [第二组自测数据] 100↙ [键盘输入] [正确输出] 10000↙ [正确输出] 25 参考程序 include stdio.h include math.h main { int n,m,i; scanf d,m; for i1;i38;i if 0.01*pow2,i-1-1-i*m0 break; printfd,i-1; } 实验 6 循环结构程序设计(二) 一、实验目的 (1)进一步熟悉掌握用 while 语句、do-while 语句和 for 语句实现循环的方法。 (2)掌握在程序设计中使用多重循环。 二、实验内容 [题目 1028求素数] 输出 2 到 200 之间(包括 2、200)的所有素数(注要求 1 行 1 个素数,按由小到大的顺序输出) 。 数。素是否为断判行进数对循环层的数,内之间 200 到 2 产生循环 层外循环,双重用采]提示[ 参考程序 includestdio.h includemath.h main { int m,k,i; form2;m200;m { ksqrtm; fori2;ik;i ifmi0 break; ifik printfd\n,m; } } [题目 1035打印菱形] 由键盘输入正数 n,要求输出 2*n1 行的菱形图案。要求菱形左边紧靠屏幕左边。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 3↙ 2↙ [正确输出] [正确输出] * * *** *** ***** ***** ******* *** ***** * *** * 参考程序 include stdio.h include math.h main { int n,i,j,k; scanfd,n; fori1;i2*n1;i { kabsn1-i; forj1;jk;j printf ; forj1;j2*n1-2*k;j printf*; printf\n; } } [题目 1038打印图案] 由键盘输入正数 n,要求输出中间数字为 n 的菱形图案。要求菱形左边紧靠屏幕左边。 [第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 4↙ 3↙ [正确输出] [正确输出] 1 1 121 121 12321 12321 1234321 121 12321 1 121 1 参考程序 includestdio.h includemath.h main { int n,i,j,k,h; scanfd,n; fori-n1;in-1;i { forj0;jabsi;j printf ; fork1;kn-absi;k printfd,k; forhn-absi-1;h1;h-- printfd,h; printf\n; } } 实验 7 数组 一、实验目的 (1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 (2)掌握与数组有关的算法。 二、实验内容 [题目 1039倒序] 由键盘输入 10 个整数,倒序输出。 (数字间由一个空格分隔) [自测数据] [键盘输入] 70 5 1420 192 99 67 13 66↙ [正确输出] 66 13 6799 219 2014 5 70 参考程序 includemath.h main { int a[10]; int i; fori0;i10;i scanfd,a[i]; fori9;i0;i-- printfd\n,a[i]; } [题目 1040统计不同数字个数] 由键盘输入 20 个整数,统计不同数字的个数。 [自测数据] [键盘输入] 70 5 1422 192 99 67 13 66 5 93 44 38 22 11 39 2233 11↙ [正确输出] 16 [提示]上述答案中,因为 5 有 1 个重复数字, 11 有 1 个重复数字, 22 有 2 个重复数字,故不同数字有 16 个,分别是 70 514 2219 299 6713 66 93443811 3933 17 参考程序 includestdio.h main { int a[20]; int i,t,p0; fori0;i20;i { scanfd,a[i]; fort0;ti;t ifa[t]a[i]break; ifti p; } printfd,p; } [题目 1062打印矩阵] 由键盘输入一个 34 的矩阵,要求输出它的转置矩阵。 [自测数据] [键盘输入] [正确输出] 1 6 9 3 1 1 1 1 1 0 2 6 1 9 1 9 8 99 0 8 3 2 9 参考程序 includestdio.h main { int a[3][4],b[4][3],i,j; fori0;i3;i forj0;j4;j { scanfd,a[i][j]; b[j][i]a[i][j]; } fori0;i4;i { forj0;j3;j printfd ,b[i][j]; printf\n; } } *[题目 1047冒泡排序] 由键盘输入 10 个数,用 “冒泡法”对 10 个数从小到大排序,并按格式要求输出。代码如下,请填充完 整。数字间由一个空格分隔。 incude stdio.h main { int a[10], i, j, t; fori0;i10;i scanfd,___________ ; for ___________ { forj0;j____;j if ___________ {___________} } fori0;i10;i printfd ,a[i]; } [自测数据] [键盘输入] 70 5 1420 192 99 67 13 66↙ [正确输出] 2 5 13 14 19 20 66 67 70 99 参考程序 includestdio.h main { int a[10]; int i,j,t; fori0;i10;i scanfd,a[i]; fori0;i9;i { forj0;j9-i;j ifa[j]a[j1] { ta[j]; a[j]a[j1]; a[j1]t; } } fori0;i10;i printfd ,a[i]; } *[题目 1046计算高精度加法] 由键盘输入两个位数很长的整数(一行一个数,每个数最长不超过 80 位) ,试计算并输出这两个数 的和。 [自测数据] [键盘输入] 1234567890123456789↙ 987654321098765↙ [正确输出] 1235555544444555554 参考程序 include stdio.h include string.h main { int a[100]{0},b[100]{0},c[100]{0}; char s[101]; int i0,n10,n20,max0,e0; getss; n1strlens; forin1-1;i0;i-- a[n1-1-i]s[i]-0; getss; n2strlens; forin2-1;i0;i-- b[n2-1-i]s[i]-0; ifn1n2 maxn1; else maxn2; fori0;imax;i { c[i]a[i]b[i]e10; ea[i]b[i]e/10; } ifc[max]0 printfd,c[max]; forimax-1;i0;i-- printfd,c[i]; } *[题目找矩阵中的鞍点] 由键盘输入一个 34(3 行 4 列)的矩阵,输出矩阵中的鞍点(即在矩阵行中最大,列中最小 的数) 。 若没有鞍点,输出“NO”字样。 [自测数据] [键盘输入] 87 90 110 98↙ 70 97 210 65↙ 98 45 120 30↙ [正确输出] 110 参考程序 include stdio.h main { int i,j,k,a[3][4],max,maxj,flag; fori0;i3;i forj0;j4;j scanfd,a[i][j]; fori0;i3;i { maxa[i][0]; maxj0; forj0;j4;j ifa[i][j]max {maxa[i][j]; maxjj; } flag1; fork0;k3;k ifmaxa[k][maxj] { flag0; break; } ifflag {printfd,max;break;} } ifflag printfNO; } 实验 8 字符数组的应用 一、实验目的 (1)掌握字符数组和字符串函数的使用。 (2)掌握与字符串处理有关的算法。 二、实验内容 [题目 1121定义存贮字符串的字符数组] 在下面程序中填充定义字符数组的语句,使程序完整。 include string.h void main { char s[80]; /*定义字符数组 s*/ strcpys, abcdefghijklmn; printfs, s; } 参考程序 [题目 1123字符串的输入与输出] 下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的 语句。 include stdio.h void main { char s[50]; printfWhats your name; getss; /*由键盘读入字符串*/ printfYour name is , ; printfs, s; /*打印字符串*/ } 参考程序 [题目 1122字符串的合并] 从键盘输入 3 个字符串(每个字符串以回车符做为结束标志) ,将 3 个字符串以输入先后顺序合并到 字符串 s 中,请填空使用程序完整。 include stdio.h include string.h main { char s[100]; char a[30]; getsa; strcats, a; getsa; strcats, a; getsa; strcats, a; /*可以写多行代码*/ printfs, s; } [自测数据] [键盘输入] [正确输出] 123 123abc456abc 456 参考程序 [题目 1050寻找字符串] 由键盘输入两个字符串(假设第一个字符串必包含第二个字符串, 如第一个字符串为 ABCDEF,第 二个为 CDE,则 CDE 包含在 ABCDEF 中) ,现要求编程输出第二字符串在第一行字符串中出现的 位置。 (如果第二个字符串在第一个字符串中出现多次,则以最前出现的 为准) [第一组自测数据] [第二组自测数据] [键盘输入][键盘输入] ABCDEFG↙ hellhello↙ DE↙ hello↙ [正确输出] [正确输出] 4 5 [提示]方法 1建立双重循环,外层循环变量指示第一个串的查找起始位置,内 层循环从起始位置开始判 断第二个字符中是否出现在此处;方法 2使用字符串函数 strstr。 参考程序 include stdio.h main { int i,j; char a[80], b[80]; getsa; getsb; fori0;a[i]\0;i { forj0;b[j]\0;j ifa[ij]b[j] break; ifb[j]\0 break; } if a[i]\0 printfd,i1; else printfNot Found; } 实验 9 函数的基本应用 一、实验目的 (1)掌握定义函数的方法。 (2)掌握函数实参与形参的对应关系,以及“值传递”的方式。 (3)掌握函数的嵌套调用和递归调用的方法。 (4)掌握全局变量和局部变量、动态变量、静态变量的概念和使用 方法。 二、实验内容 [题目 1059函数定义] 下面是使用辗转相除法,求最大公约数的程序,请补充完整程序中 函数的定义与调用。 include stdio.h int fint m, int n { int r; while rmn0 { mn; nr; } return n; } main { int a, b, n; scanfdd, a, b; printfd\n, fa, b ; } [题目 1083编写函数计算阶乘] 下面程序实现由键盘读入整数 n,计算并输出 n,请补充完整计算阶乘的函数。 long fancint a { long i,n1; fori1;ia;i nn*i; return n; } void main { int n; scanfd, n; printfld, fancn; } [题目 1124函数中的变量] 写出下面程序的运行结果 int f1int x { static int z3,y0; y; z; returnxyz; } main { int a1,k; fork0;k3;k printf4d,f1a; } 程序运行结果为 6 810 *[题目 1084编写递归调用函数,实现十进制数转二进制数] 下面程序,实现由键盘输入一个正整数不大于 100000000,输出其对应的二进制数(原码表示) 。 请填空 include stdio.h void fun int i { if i1 funi/2 ; printfd, i2; } main { int n; scanfd, n; funn ; } 实验 10 指针与结构体 一、实验目的 (1)通过实验进一步掌握指针的概念,会定义和使用指针变量。 (2)能正确使用数组的指针和指向数组的指针变量。 (3)能正确使用字符串的指针和指向字符中的指针变量。 (4)掌握结构体类型变量的定义和使用。 二、实验内容 [题目 1091交换两数,由大到小输出] 下面程序,交换两数,使两数由大到小输出,请填空 include stdio.h void swap int *p1, int *p2 { int temp; temp*p1; *p1*p2; *p2temp; } int main { int a,b; int *pa,*pb; scanfdd, a, b; paa; pbb; ifab swap pa, pb ; printfd d\n,a,b; } [题目 1065数组中的指针] 设有如下数组定义 int a[3][4]{{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 计算下面各项的值(设数组 a 的首地址为 2000,一个 int 类型数占四个字节) 。注意地址则输出地址, 变量则输出变量值;要求一行一个答案,不允许多余空行及空格。 (1)a[2][1](2)a[1](3)a(4)a1 (5)*a1(6)*a1(7)a[2]1(8)*a11 (9)**a22) 参考程序 include stdio.h main { printf19\n; printf2016\n; printf2000\n; printf2016\n; printf2004\n; printf2016\n; printf2036\n; printf2020\n; printf21; } [题目 1092函数实现求字符串长度] 下面程序以指针方式传递参数,由函数实现求字符串长度,请填空 完成 include stdio.h include string.h int fchar *p { return strlenp; } int main { char s[80]; int i; scanfs, s; ifs; printfd, i; } [题目 1125定义结构体类型] 要求定义一个名为 student 的结构体类型,其包含如下成员 (1)字符数组 name,最多可存放 10 个字符; (2)字符变量 sex,用于记录性别; (3)整数类型变量 num,用于记录学号; (4)float 类型变量 score,用于记录成绩; 并使下列代码完整。 /*定义结构体类型*/ struct student { char name[20]; char sex; int num; float score; } main { struct student stu; scanfs, stu.name; scanf*cc, stu.sex; scanfd, stu.num; scanff, stu.score; printfs\n, stu.name; printfc\n, stu.sex; printfd\n, stu.num; printff\n, stu.score; } *实验 11 链表 一、实验目的 (1)理解链表的概念。 (2)掌握结构体、指针在链表中的运用。 (3)掌握链表的常用操作,包括创建、显示、添加等。 二、实验内容 [题目 1098链表结点的插入] 有结构体类型定义, struct student { long num; /*学号*/ int score; /*成绩*/ struct student *next; /*指针*/ }; 程序首先完成创建两个链表,要求补充完成按学号顺序插入链表结 点的函数 struct student *insertstruct student *head, struct student *stud { struct student *p0,*p1,*p2; p1head; p0stud; ifheadNULL{headp0;p0-nextNULL;} else {whilep0-nump1-nump1-nextNULL { p2p1; p1p1-next;} ifp0-nump1-num { ifheadp1headp0; else p2-nextp0; p0-nextp1; } else {p1-nextp0;p0-nextNULL;} } returnhead; } [题目 1099链表的合并] 有结构体类型定义, struct student { long num; /*学号*/ int score; /*成绩*/ struct student *next; /*指针*/ }; 程序首先完成创建两个链表,要求补充完成实现将第二个链表合并 到第一个链表未尾的函数。 struct student *mergestruct student *head, struct student *head2 { struct student *p1; p1head; whilep1-nextNULLp1p1-next; p1-nexthead2; returnhead; } [题目 1104链表的倒序] 有结构体类型定义, struct student { long num; /*学号*/ int score; /*成绩*/ struct student *next; /*指针*/ }; 程序首先完成程序创建一个链表,要求补充完成实现将链表中各结 点变为倒序排列的函数。 struct student *reversestruct student *head { struct student *p1,*p2,*p3; p2head;p3head-next; do { p1p2;p2p3;p3p2-next;p2-nextp1; } whilep3NULL; head-nextNULL; returnp2; } [题目 1101链表的排序] 有结构体类型定义, struct student { long num; /*学号*/ int score; /*成绩*/ struct student *next; /*指针*/ }; 程序首先完成程序创建一个链表,要求补充完成实现将链表中各结 点按学号由小到大排序的函数。 struct student *sortstruct student *head { struct student *p1,*p2; p2head;p1head; p2p2-next; p1-nextNULL; p1p2; whilep2-nextNULL { p2p2-next; p1-nextNULL; headinserthead,p1; p1p2; } headinserthead,p1; returnhead; } *实验 12 文件 一、实验目的 (1)学会使用文件打开、关闭、读、写等文件操作函数。 二、实验内容 [题目 1105文本文件操作_字符读入] 在当前目录中存在文件名为data1.in的文本文件,现要求你使用 fopen 函数命令打开该文件,读出 里面的所有字符,遇到大写字母的,将其变为小写字母,其它字符 不变,最后将所有字符按顺序在屏幕 上输出。请填空完成程序 (如 data1.in 内容如下) Hello my Dear Have a GooD Time (在屏幕上输出结果如下) hello my dear have a good time 程序如下,请填空, include stdio.h main { FILE *fp; char ch; iffpfopendata1.in,r NULL return 0; whilechfgetcfpEOF { if Ach chZ ch ch 32; putcharch ; } fclosefp; } [提示] 在提交前要测试自己的代码是否正确,可在源文件所有目录 自己创建一个名为 data1.in 的文本文 件,在文件中自己打入一些字母,以便测试自己的代码是否正确 [题目 1106文本文件操作_字符写入] 由键盘输入任意个字符(以连着的三个小写字符 bye 做为结束标志) ,将所有字符(包括 bye) ,写 入新建的文件 answer.txt 中(注文件放在当前目录) 。请完成该功能, (如键盘输入内容如下) He, can you write the code Yes, you can.bye (程序执行后,在文件 answer.txt 中内容如下) He, can you write the code Yes, you can.bye 参考程序 include stdio.h main { FILE *fp; char ch, ch1 , ch2 , ch3 ; iffpfopenanswer.txt, wNULL return 1; whilechgetcharEOF { fputcch, fp; ch1ch2;ch2ch3;ch3ch; if ch1bch2ych3e break; } fclosefp; } [题目 1107文本文件操作_单词的排序] 在当前目录有文件“data1.in” ,文件里存放有多个(总个数不超过 10000 个)英文单词(每个英文单 词不会超过 10 个字文字符) ,每行一个,单词未排序。现要求,将文件中的所 有单词按字典顺序排序, 然后将排序好的单词写入新建的文件 answer.txt 中(注文件存放于当前目录) 。请完成程序,实现该 功 能, (如 data1.in 文件中原内容如下) hello bye yes (程序执行后,在文件 answer.txt 中内容如下) bye hello yes 参考程序 include stdio.h include string.h main { FILE *fp1,*fp2; char str[1000][11],str1[11]; int n0,i,j; iffp1fopendata1.in,rNULL return 0; iffp2fopenanswer.txt,wNULL return 0; whilefscanffp1,s,str[n]0 n; fori0;in;i forji1;jn;j { ifstrcmpstr[i],str[j]0 { strcpystr1,str[i]; strcpystr[i],str[j]; strcpystr[j],str1; }; } fori0;in;i fprintffp2,s\n,str[i]; fclosefp1; fclosefp2; }

    注意事项

    本文(c语言程序设计实验指导书参考答案[2])为本站会员(myk79025)主动上传,收益归上传者所有,天天文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知天天文库(发送邮件至[email protected]或直接QQ联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

    网站客服QQ:1290478887        微信公众号:iwenku365

    [email protected] 2017-2027 wenku365.com 网站版权所有   聚力网络工作室

    经营许可证编号:鄂ICP备17008239号-1 

    收起
    展开