版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文案实验报告C语言程序设计班级CS1108日期 2012/5/26 学生姓名 王一微 学号 U201114404第3次上机实验1编译预处理 (一)实验目的(1)掌握文件包含、宏定义、条件编译、assert宏的使用;(2)练习带参数的宏定义、条件编译的使用;(3)练习assert宏的使用;(4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。(二)实验内容及要求1.源程序改错下面是用宏来计算平方差和交换两数的源程序。在这个源程序中.存在若干语法和逻辑错误,要求 在计算机上对这个源程序进行调试修改,使之能够正确完成计算平方差和交换两数的任务。源程序:#include<s
2、tdio.h># define SUM a+b# define DIF a-b# def ine SWAP (a, b) a = b, b二avoid ma in(void)(int b. t;pr intf(Input two integers a. b:);scant (%d. %d. &a. &b):pr intf (SUM二爷dn the difference between square of a and square of bis:%d. SUM, SUM*DIF);SWAP (a.b);Printf (Now a=%d, b=%dn. a. b);)源程序在
3、code: blocks上运行后出现精彩文档.实用标准文案修改后为:运行测试为:精彩文档.实用标准文案2.源程序修改替换下面是用函数实现求三个数中最大数、计算两数之和的源程序。在这个源程序中存在若干语法和 逻辑错误,要求:(1)对这个例子程序进行调试修改,使之能够正确完成指定任务。(2)用带参数的宏替换函数max,来实现求最大数的功能。源程序:void ma in(void)(int a. b, c:float d. e;pr intf (Enter three integers:);scant (%d,%d.%d,&a.&b,&c);pr intf (the maxi
4、mum of them is %dn.max (a, b. c):pr intf (Enter two floating point numbers:); scanf (%f, %f. &d, &e);pr intf (the sum of them is %fn, sum(d, e);1int max (int x. int y, int z)int t;if (x>y) t=x;elset=y; if (t<z)t=z;return t;)float sum(float x. float y)(return x+y;1(D源程序修改后为:精彩文档.实用标准文案运
5、行测试为:(2)按要求修改源程序如下:精彩文档.实用标准文案运行测试为3.跟踪调试程序下面程序的功能是利用R计算圆的面积s,以及面积s的整数部分。现要求: (1)修改程序,使程序编译通过且能运行。源程序修改如下:精彩文档.实用标准文案运行测试为:(2)单步执行。进入函数integer_fraction时,watch窗口中x为何值?在返回main时,watch 窗口中i为何值?单步执行,进入integer_fraction时,watch窗口中x=254. 468796.返回 ma i n 时,watch 中 i =254.(3)排除错误,使程序能正确输出面积s值的整数部分,不会输出错误信息ass
6、ertion failedo程序代码: #def i ne R void ma in(void) ( float r. s: int s_integer” pr intf (input a number:); scanf (%f, &r); #ifdef Rs=3. 14159*r*r; 精彩文档.实用标准文案printf (area of round is: %fn, s):s_integer= i nteger_fract i on(s);printf( he integer fraction of area is *dn, s_integer); assert (s-s_i nt
7、eger)<1.0);#end i f)int integer_fracti on(fI oat x)(int i=x;return i;1实验2 数组实验 (-)实验目的(1)掌握数组的说明、初始化和使用。(2)掌握一维数组作为函数参数时实参和形参的用法。(二)实验内容及要求1 .源程序改错下面是用来将数组a中元素按升序排序后输出的源程序。分析源程序中存在的问题,并对源程序 进行修改,使之能够正确完成任务。源程序:#include<stdio.h>void main(void)(int a10 = (27, 13. 5. 32. 23, 3, 17, 43. 55. 39)
8、;void sort (int . int);int i;sort(a0,10);for(i = 0; i < 10; i+)pr intf (m, ai);printf ():)void sort (int b, int n)(int i, j. t;for (i = 0; i < n - 1; i+)for ( j = 0; j < n - i - 1: j-H-)if(bj < bj+1)t = bj, bj = bj+1. bj+1 = t;源程序修改如下:精彩文档.实用标准文案运行测试为:2 .源程序完善、修改、替换 (1)下面的源程序用于求解瑟夫问题:M个人
9、围成一圈,从第一个人开始依次从1至N循环报数, 每当报数为N时报数人出圈,直到圈中只剩下一个人为止。请在源程序中的下划线处填写合适的 代码来完善该程序。源程序:#include<stdio.h>#define M 10#define N 3void ma in(void)(int aM, bM; /*数组a存放圈中人的编号,数组b存放出圈人的编号*/int i. j. k;for(i = 0; i < M: i+)/对圈中人按顺序编号1M */ai = i + 1;for(i = M, j = 0: i > 1; i) /* i表示圈中人个数,初始为M个,剥1个人时结束
10、循环;J表示当前报数人的位置*/for (k = 1; k <= N; k+)/* 1 至 N 报数 */精彩文档.实用标准文案if(rj > i - 1) j = 0:/*最后一个人报数后第一个人接着报,形成一个圈*/bM-i = j? aj-1 : ai-1 ; /*将报数为N的人的编号存入数组b */if(j)for(k = j: k < i; k+) /*压缩数组a,使报数为N的人出圈*/ak=ak+1;for(i = 0;i < M - 1; i+) /*按次序输出出圈人的编号*/printf( um,? , bi);printf( umnn , a0) ;/
11、*输出圈中最后一个人的编号*/运行测试为:(2)上面的程序中使用数组元素的值表示圈中人的编号,故每当有人出圈时都要压缩数组,这种 算法不够精炼。如果采用做标记的办法,即每当有人出圈时对相应数组元素做标记,从而可省掉 压缩数组的时间,这样处理效率会更高一些。因此,请采用做标记的办法修改(1)中的程序, 并使修改后的程序与(1)中的程序具有相同的功能。源程序为:精彩文档.实用标准文案运行测试为:3 .跟踪调试源程序在下面所给的源程序中,函数strncat (s. t, n)本来应该将字符数组t的前n个字符连接到字符 数组s中字符串的尾部。但函数strncat在定义时代码有误,不能实现上述功能。请按
12、下面的要 求进行操作,并回答问题和排除错误。(1)单步执行源程序。进入函数strncat后观察表达式s、t和i。当光条落在for语句所在行 时,i为何值?当光条落在strncat函数块结束标记(右花括号)所在行时,s、t分别为何值?光条落在for语句所在行时,i=22光条落在strncat函数块结束标记所在行时精彩文档.实用标准文案(2)分析函数出错的原因,排除错误,使函数正确实现功能,最后写出程序的输出结果。源程序:#include<stdio.h>void strncat (char , char , int);void ma in(void)(char a50=The ado
13、pted symboI is .b27=abcdefghijkImnopqrstuvwxyz; strncat (a, b, 4);pr intf (%sn. a);)void strncat (char s. char t, int n)(int i = 0. j;whiIe (si+);for(j =0; j < n && tj;)si+ = tj+:si=、。匕)调试发现S, t和i值有误,修改后源程序为:精彩文档.实用标准文案运行输出结果为:程序设计:编写并上机调试运行能实现以下功能的程序。area?s(sa)(sb)(s?c)2cO/ba?sCa. b. c 已
14、知三角形的面积是,其中,(1)试编写一程序,为三角形的三边。定义两个带参数的宏,area, , s一个用来求另一个用来求用 带参数的宏来计算三角形的面积。1()源程序如下:运行测试为:精彩文档.实用标准文案结果正确。(2)使用条件编译方法编写一程序,其功能要求是,输入一行电报文字,可以任选两种输出:一为 原文输出;二为变换字母的大小写(如小写'a,变成大写,A',大写'D,变成小写'+),其他 字符不变。命令控制是否变换字母的大小写“例如,#define CHANGE 1则输出变换 后的文字,若#(18件的CHANGE 0则原文输出。(2)源程序如下:运行测试为:精彩文档.实用标准文案将#(仰MCHANGE 1换为#define CHANGE 0后源程序为:运行测试为:精彩文档.实用标准文案结果正确。(3)编写一个程序,从键盘读取数据,对一个3、4矩阵进行赋值,求其转置矩阵,然后输出原矩 阵和转置矩阵。(3)源程序如下:运行测试如下:精彩文档.实用标准文案结果正确。实验心得与体会:编程时要多看多做多改。暂时没有思路的程序,可以看一些类似的例题,多看 看别人是怎么做的,可以用什么方法。做出来的程序,不能认为自己已经完全会了,而不去理会, 应该试着用其他句型修改一下程序,看看会产生什么效果,尽量简化程序,让程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《富集在海水中的元素-氯》课堂教学实录
- 北师大版七年级语文上册全册完整教案及教学计划
- 小学语文二年级上册总复习之全册词语表
- DB11T 1064-2014 数字化城市管理信息系统地理空间数据获取与更新
- 阀门技术规格书
- 天津市滨海新区田家炳中学2024-2025学年高二年级上学期期中考试语文试题(含答案)
- 江苏省宿迁市沭阳县2024-2025学年八年级上学期11月期中物理试题(含答案)
- 医用去污剂产业深度调研及未来发展现状趋势
- 假体的安装调试行业经营分析报告
- 台钟产业运行及前景预测报告
- 丧葬费家庭协议书范文范本
- 中小学119消防宣传月活动方案3篇
- 中汇富能排矸场设计
- 2024年保安员证考试题库及答案(共160题)
- 2024年大学试题(财经商贸)-统计预测与决策考试近5年真题集锦(频考类试题)带答案
- 大学生职业生涯规划成品
- 主要负责人和安全生产管理人员安全培训课件初训修订版
- 人教版2024新版八年级全一册信息技术第1课 开启物联网之门 教学设计
- 2024220kV 预制舱式模块化海上风电升压站
- 2024秋期国家开放大学《国家开放大学学习指南》一平台在线形考(任务一)试题及答案
- 2024年新人教版道德与法治一年级上册 9 作息有规律 教学课件
评论
0/150
提交评论