已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言程序設(shè)計(jì) 實(shí)驗(yàn)報(bào)告專業(yè) 信息安全 班級(jí) 1103 日期 成績(jī) 實(shí)驗(yàn)組別 第 1次實(shí)驗(yàn) 指導(dǎo)教師 學(xué)生姓名 嚴(yán)志穎 學(xué)號(hào) U201114113 同組人姓名 實(shí)驗(yàn)名稱 編譯預(yù)處理實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康? 掌握文件包含、宏定義、條件編譯、assert宏的使用;2 練習(xí)帶參數(shù)的宏定義、條件編譯的使用;3 練習(xí)assert宏的使用;4 使用codeblocks開發(fā)環(huán)境中的調(diào)試功能:?jiǎn)尾綀?zhí)行、設(shè)置斷點(diǎn)、觀察變量值。二、實(shí)驗(yàn)任務(wù)1源程序改錯(cuò)題下面是用宏來計(jì)算平方差、交換兩數(shù)的源程序,在這個(gè)源程序中存在若干語法和邏輯錯(cuò)誤。要求在計(jì)算機(jī)上對(duì)這個(gè)例子程序進(jìn)行調(diào)試修改,使之能夠正確完成指定任務(wù)。#include stdio.h#define SUM a+b#define DIF a-b#define SWAP(a,b) a=b,b=avoid main int b, t; printf(Input two integers a, b:); scanf(%d,%d, &a,&b); printf(nSUM=%dn the difference between square of a and square of b is:%d,SUM, SUM*DIF); SWAP(a,b); Printf(nNow a=%d,b=%dn,a,b);2源程序修改替換題下面是用函數(shù)實(shí)現(xiàn)求三個(gè)數(shù)中最大數(shù)、計(jì)算兩數(shù)之和的程序,在這個(gè)源程序中存在若干語法和邏輯錯(cuò)誤。要求:1)對(duì)這個(gè)例子程序進(jìn)行調(diào)試修改,使之能夠正確完成指定任務(wù);2)用帶參數(shù)的宏替換函數(shù)max,來實(shí)現(xiàn)求最大數(shù)的功能。void main(void) int a, b, c; float d, e; printf(Enter three integers:); scanf(%d,%d,%d,&a,&b,&c); printf(nthe maximum of them is %dn,max(a,b,c);printf(Enter two floating point numbers:);scanf(%f,%f,&d,&e);printf(nthe sum of them is %fn,sum(d,e);int max(int x, int y, int z) int t; if (xy) t=x; else t=y; if (tz) t=z; return t;float sum(float x, float y) return x+y;3跟蹤調(diào)試題 下面程序利用R計(jì)算圓的面積s,以及面積s的整數(shù)部分。#define Rvoid main(void)float r, s;int s_integer=0; printf (input a number: ); scanf(%f,&r); #ifdef R s=3.14159*r*r; printf(area of round is: %fn,s); s_integer= integer_fraction(s); printf(the integer fraction of area is %dn, s_integer); assert(s-s_integer)1.0); #endifint integer_fraction(float x) int i=x; return i;1)修改程序,使程序編譯通過且能運(yùn)行;2)單步執(zhí)行。進(jìn)入函數(shù)decimal_fraction時(shí)watch窗口中x為何值?在返回main時(shí), watch窗口中i為何值?3)排除錯(cuò)誤,使程序能正確輸出面積s值的整數(shù)部分,不會(huì)輸出錯(cuò)誤信息assertion failed。4編程設(shè)計(jì)題(1)三角形的面積是,其中,a,b,c為三角形的三邊,定義兩個(gè)帶參數(shù)的宏,一個(gè)用來求s,另一個(gè)用來求area。編寫程序,用帶參數(shù)的宏來計(jì)算三角形的面積。(2)用條件編譯方法來編寫程序。輸入一行電報(bào)文字,可以任選兩種輸出:一為原文輸出;二為變換字母的大小寫(如小寫a變成大寫A,大寫D變成小寫d),其他字符不變。用#define命令控制是否變換字母的大小寫。例如,#define CHANGE 1 則輸出變換后的文字,若#define CHANGE 0則原文輸出。三、實(shí)驗(yàn)步驟及結(jié)果1源程序改錯(cuò)題修改后的程序如下:#include #define SUM (a+b)#define DIF (a-b)#define SWAP(a,b) t=a,a=b,b=tint main(void) int a,b,t; printf(Input two integers a b:); scanf(%d%d, &a,&b); printf(nSUM=%dnthe difference between square of a and square of b is:%d,SUM,SUM*DIF); SWAP(a,b); printf(nNow a=%d,b=%dn,a,b); return 0;運(yùn)行結(jié)果:2源程序修改替換題(1):修改后的程序#includeint max(int x, int y, int z) int t; if (xy) t=x; else t=y; if (tz) t=z; return t;float sum(float x, float y) return (x+y);int main() float d, e; int a,b,c; printf(Please input three numbers:); scanf(%d%d%d,&a,&b,&c); printf(nThe max of them is %dn,max(a,b,c); printf(Enter two float numbers:); scanf(%f%f,&d,&e); printf(nThe sum of them is %.2fn,sum(d,e); return 0;運(yùn)行結(jié)果:(2)替換后的程序:#include#define sum (d+e)#define max(int x, int y, int z) (if(xy) t=y ;else t=x ;if(tz) t=z ;return t)int main() float d, e; int a,b,c; printf(Please input three numbers:); scanf(%d%d%d,&a,&b,&c); printf(nThe max of them is %dn,max(a,b,c); printf(Enter two float numbers:); scanf(%f%f,&d,&e); printf(nThe sum of them is %.2fn,sum); return 0;運(yùn)行結(jié)果:3跟蹤調(diào)試題(1)修改后的程序:#include#define Rint integer_fraction(float x);int main() float r, s; int s_integer; printf(Input a number:); scanf(%f,&r); #ifdef R s=3.14159*r*r; printf(The area of round is: %fn,s); s_integer=integer_fraction(s); printf(The integer fraction of area is %dn,s_integer); assert(s-s_integer)1.0); #endif return 0;int integer_fraction(float x) int i=x; return i;(2)單步調(diào)試:(3)運(yùn)行結(jié)果:4編程設(shè)計(jì)題(1)計(jì)算三角形面積的帶宏的程序如下:#include#include#define S(a,b,c) (a+b+c)/2#define AREA(s,a,b,c) sqrt(s*(s-a)*(s-b)*(s-c)int main() float a,b,c,s,area; printf(Input three edges of the trianglen); scanf(%f%f%f,&a,&b,&c); s=S(a,b,c); area=AREA(s,a,b,c); printf(area=%.2fn,area); return 0;運(yùn)行結(jié)果:(2)源程序如下:#include#define N 100#define CHANGE 1int main() char strN; int i=0; printf(Please enter a str:); gets(str); while(stri!=0)#if CHANGE while(stri=A&stri=a&stri=A&stri=Z) stri=stri+a-A;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 政府公共關(guān)系(第二版)課件 第9章 政府公共關(guān)系傳播的模式與方法
- 小學(xué)六年級(jí)語文教學(xué)工作計(jì)劃
- 2022年學(xué)校后勤工作總結(jié)七篇
- 初一生物教師工作計(jì)劃
- 節(jié)水的建議書范文匯編7篇
- 書的演講稿范文錦集10篇
- 大學(xué)寒假實(shí)習(xí)報(bào)告模板合集7篇
- 創(chuàng)造性思維與創(chuàng)新能力的講義
- 彩色多普勒超聲在臨床的應(yīng)用
- 未來的教室6篇
- 曼娜回憶錄完整版三篇
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 青島市平度市2022-2023學(xué)年七年級(jí)上學(xué)期期末地理試題
- 抖音小店客服管理制度及考核機(jī)制
- 2024屆廣東省深圳市羅湖區(qū)中考適應(yīng)性考試化學(xué)試題含解析
- 醫(yī)保信息系統(tǒng)管理制度范文
- 售后響應(yīng)時(shí)間保障措施
- 《工業(yè)數(shù)據(jù)采集技術(shù)》課程標(biāo)準(zhǔn)
- 智慧農(nóng)業(yè)的無人機(jī)與遙感技術(shù)
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量檢測(cè)生物試題(含答案解析)
- 循證護(hù)理在骨科中的護(hù)理
評(píng)論
0/150
提交評(píng)論