




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實用標(biāo)準(zhǔn)文案實驗報告C語言程序設(shè)計班級CS1108日期 2012/5/26 學(xué)生姓名 王一微 學(xué)號 U201114404第3次上機實驗1編譯預(yù)處理 (一)實驗?zāi)康?1)掌握文件包含、宏定義、條件編譯、assert宏的使用;(2)練習(xí)帶參數(shù)的宏定義、條件編譯的使用;(3)練習(xí)assert宏的使用;(4)使用集成開發(fā)環(huán)境中的調(diào)試功能:單步執(zhí)行、設(shè)置斷點、觀察變量值。(二)實驗內(nèi)容及要求1.源程序改錯下面是用宏來計算平方差和交換兩數(shù)的源程序。在這個源程序中.存在若干語法和邏輯錯誤,要求 在計算機上對這個源程序進行調(diào)試修改,使之能夠正確完成計算平方差和交換兩數(shù)的任務(wù)。源程序:#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上運行后出現(xiàn)精彩文檔.實用標(biāo)準(zhǔn)文案修改后為:運行測試為:精彩文檔.實用標(biāo)準(zhǔn)文案2.源程序修改替換下面是用函數(shù)實現(xiàn)求三個數(shù)中最大數(shù)、計算兩數(shù)之和的源程序。在這個源程序中存在若干語法和 邏輯錯誤,要求:(1)對這個例子程序進行調(diào)試修改,使之能夠正確完成指定任務(wù)。(2)用帶參數(shù)的宏替換函數(shù)max,來實現(xiàn)求最大數(shù)的功能。源程序: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源程序修改后為:精彩文檔.實用標(biāo)準(zhǔn)文案運
5、行測試為:(2)按要求修改源程序如下:精彩文檔.實用標(biāo)準(zhǔn)文案運行測試為3.跟蹤調(diào)試程序下面程序的功能是利用R計算圓的面積s,以及面積s的整數(shù)部分?,F(xiàn)要求: (1)修改程序,使程序編譯通過且能運行。源程序修改如下:精彩文檔.實用標(biāo)準(zhǔn)文案運行測試為:(2)單步執(zhí)行。進入函數(shù)integer_fraction時,watch窗口中x為何值?在返回main時,watch 窗口中i為何值?單步執(zhí)行,進入integer_fraction時,watch窗口中x=254. 468796.返回 ma i n 時,watch 中 i =254.(3)排除錯誤,使程序能正確輸出面積s值的整數(shù)部分,不會輸出錯誤信息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; 精彩文檔.實用標(biāo)準(zhǔn)文案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 數(shù)組實驗 (-)實驗?zāi)康?1)掌握數(shù)組的說明、初始化和使用。(2)掌握一維數(shù)組作為函數(shù)參數(shù)時實參和形參的用法。(二)實驗內(nèi)容及要求1 .源程序改錯下面是用來將數(shù)組a中元素按升序排序后輸出的源程序。分析源程序中存在的問題,并對源程序 進行修改,使之能夠正確完成任務(wù)。源程序:#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;源程序修改如下:精彩文檔.實用標(biāo)準(zhǔn)文案運行測試為:2 .源程序完善、修改、替換 (1)下面的源程序用于求解瑟夫問題:M個人
9、圍成一圈,從第一個人開始依次從1至N循環(huán)報數(shù), 每當(dāng)報數(shù)為N時報數(shù)人出圈,直到圈中只剩下一個人為止。請在源程序中的下劃線處填寫合適的 代碼來完善該程序。源程序:#include<stdio.h>#define M 10#define N 3void ma in(void)(int aM, bM; /*數(shù)組a存放圈中人的編號,數(shù)組b存放出圈人的編號*/int i. j. k;for(i = 0; i < M: i+)/對圈中人按順序編號1M */ai = i + 1;for(i = M, j = 0: i > 1; i) /* i表示圈中人個數(shù),初始為M個,剝1個人時結(jié)束
10、循環(huán);J表示當(dāng)前報數(shù)人的位置*/for (k = 1; k <= N; k+)/* 1 至 N 報數(shù) */精彩文檔.實用標(biāo)準(zhǔn)文案if(rj > i - 1) j = 0:/*最后一個人報數(shù)后第一個人接著報,形成一個圈*/bM-i = j? aj-1 : ai-1 ; /*將報數(shù)為N的人的編號存入數(shù)組b */if(j)for(k = j: k < i; k+) /*壓縮數(shù)組a,使報數(shù)為N的人出圈*/ak=ak+1;for(i = 0;i < M - 1; i+) /*按次序輸出出圈人的編號*/printf( um,? , bi);printf( umnn , a0) ;/
11、*輸出圈中最后一個人的編號*/運行測試為:(2)上面的程序中使用數(shù)組元素的值表示圈中人的編號,故每當(dāng)有人出圈時都要壓縮數(shù)組,這種 算法不夠精煉。如果采用做標(biāo)記的辦法,即每當(dāng)有人出圈時對相應(yīng)數(shù)組元素做標(biāo)記,從而可省掉 壓縮數(shù)組的時間,這樣處理效率會更高一些。因此,請采用做標(biāo)記的辦法修改(1)中的程序, 并使修改后的程序與(1)中的程序具有相同的功能。源程序為:精彩文檔.實用標(biāo)準(zhǔn)文案運行測試為:3 .跟蹤調(diào)試源程序在下面所給的源程序中,函數(shù)strncat (s. t, n)本來應(yīng)該將字符數(shù)組t的前n個字符連接到字符 數(shù)組s中字符串的尾部。但函數(shù)strncat在定義時代碼有誤,不能實現(xiàn)上述功能。請按
12、下面的要 求進行操作,并回答問題和排除錯誤。(1)單步執(zhí)行源程序。進入函數(shù)strncat后觀察表達式s、t和i。當(dāng)光條落在for語句所在行 時,i為何值?當(dāng)光條落在strncat函數(shù)塊結(jié)束標(biāo)記(右花括號)所在行時,s、t分別為何值?光條落在for語句所在行時,i=22光條落在strncat函數(shù)塊結(jié)束標(biāo)記所在行時精彩文檔.實用標(biāo)準(zhǔn)文案(2)分析函數(shù)出錯的原因,排除錯誤,使函數(shù)正確實現(xiàn)功能,最后寫出程序的輸出結(jié)果。源程序:#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=、。匕)調(diào)試發(fā)現(xiàn)S, t和i值有誤,修改后源程序為:精彩文檔.實用標(biāo)準(zhǔn)文案運行輸出結(jié)果為:程序設(shè)計:編寫并上機調(diào)試運行能實現(xiàn)以下功能的程序。area?s(sa)(sb)(s?c)2cO/ba?sCa. b. c 已
14、知三角形的面積是,其中,(1)試編寫一程序,為三角形的三邊。定義兩個帶參數(shù)的宏,area, , s一個用來求另一個用來求用 帶參數(shù)的宏來計算三角形的面積。1()源程序如下:運行測試為:精彩文檔.實用標(biāo)準(zhǔn)文案結(jié)果正確。(2)使用條件編譯方法編寫一程序,其功能要求是,輸入一行電報文字,可以任選兩種輸出:一為 原文輸出;二為變換字母的大小寫(如小寫'a,變成大寫,A',大寫'D,變成小寫'+),其他 字符不變。命令控制是否變換字母的大小寫“例如,#define CHANGE 1則輸出變換 后的文字,若#(18件的CHANGE 0則原文輸出。(2)源程序如下:運行測試為:精彩文檔.實用標(biāo)準(zhǔn)文案將#(仰MCHANGE 1換為#define CHANGE 0后源程序為:運行測試為:精彩文檔.實用標(biāo)準(zhǔn)文案結(jié)果正確。(3)編寫一個程序,從鍵盤讀取數(shù)據(jù),對一個3、4矩陣進行賦值,求其轉(zhuǎn)置矩陣,然后輸出原矩 陣和轉(zhuǎn)置矩陣。(3)源程序如下:運行測試如下:精彩文檔.實用標(biāo)準(zhǔn)文案結(jié)果正確。實驗心得與體會:編程時要多看多做多改。暫時沒有思路的程序,可以看一些類似的例題,多看 看別人是怎么做的,可以用什么方法。做出來的程序,不能認為自己已經(jīng)完全會了,而不去理會, 應(yīng)該試著用其他句型修改一下程序,看看會產(chǎn)生什么效果,盡量簡化程序,讓程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 榆林能源科技職業(yè)學(xué)院《播音表達訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 洛陽商業(yè)職業(yè)學(xué)院《基本統(tǒng)計分析軟件應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島遠洋船員職業(yè)學(xué)院《建筑工程施工技術(shù)與組織》2023-2024學(xué)年第二學(xué)期期末試卷
- 中華女子學(xué)院《二維動畫設(shè)計與制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 無錫太湖學(xué)院《土木工程測量》2023-2024學(xué)年第二學(xué)期期末試卷
- 民辦合肥財經(jīng)職業(yè)學(xué)院《橡膠工藝原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 紅河學(xué)院《建筑結(jié)構(gòu)抗震設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 玉溪職業(yè)技術(shù)學(xué)院《前端框架應(yīng)用開發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州鐵路職業(yè)技術(shù)學(xué)院《工程識圖與制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧地質(zhì)工程職業(yè)學(xué)院《民族文化專題實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 生物新教材培訓(xùn)的心得體會
- 2024年07月長沙農(nóng)村商業(yè)銀行股份有限公司2024年招考3名信息科技專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 中醫(yī)預(yù)防流感知識講座
- 上海市2024年中考英語試題及答案
- 臨床患者體位管理
- 砂光機培訓(xùn)課件
- 米酒的制作流程
- 施工現(xiàn)場防高墜培訓(xùn)
- 船舶水下輻射噪聲指南 2025
- 2024年黑龍江哈爾濱市中考英語真題卷及答案解析
- DB31-T 1310-2021 火花探測和熄滅系統(tǒng)應(yīng)用指南
評論
0/150
提交評論