



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
聲中科技大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱: C語(yǔ)言程序設(shè)計(jì)專業(yè)班級(jí): 信息安全1302班學(xué)號(hào): 姓名: 指導(dǎo)教師: 報(bào)告日期:2014年6月16日計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院目錄1.實(shí)驗(yàn)概述 錯(cuò)誤!未定義書(shū)簽。TOC\o"1-5"\h\z\o"CurrentDocument"2第一次實(shí)驗(yàn) 4\o"CurrentDocument"3第二次實(shí)驗(yàn) 19\o"CurrentDocument"4第三次實(shí)驗(yàn) 38\o"CurrentDocument"6第四次實(shí)驗(yàn) 69?第五次實(shí)驗(yàn) 87\o"CurrentDocument"8第六次實(shí)驗(yàn) 115\o"CurrentDocument"9第七次實(shí)驗(yàn) 143\o"CurrentDocument"10實(shí)驗(yàn)總結(jié) 152\o"CurrentDocument"參考文獻(xiàn) 1541.實(shí)驗(yàn)概述C語(yǔ)言是ー種程序設(shè)計(jì)語(yǔ)言,它既有高級(jí)語(yǔ)言的特點(diǎn)也有匯編語(yǔ)言的特點(diǎn),是C++,C#,JAVAscript的基礎(chǔ)。因?yàn)樗咝А㈧`活、功能豐富、表達(dá)力強(qiáng)和較高的可移植性等特點(diǎn),在程序員中備受青睞,成為最近25年來(lái)使用最廣泛的編程語(yǔ)言。C語(yǔ)言簡(jiǎn)潔緊湊,靈活方便。雖然ー共オ有32個(gè)關(guān)鍵字,9中控制語(yǔ)句,但是實(shí)現(xiàn)了將高級(jí)語(yǔ)言的基本結(jié)和低級(jí)語(yǔ)言的實(shí)用性結(jié)合在ー起。而且涵蓋豐富的運(yùn)算符,如賦值,強(qiáng)制類型轉(zhuǎn)換等,使表達(dá)式更靈活多變。包含整型,實(shí)型,字符型,數(shù)組,指針,結(jié)構(gòu)體,共用體等??蓪?shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。C語(yǔ)言也有不足之處。第一,數(shù)據(jù)封裝性不還,使得數(shù)據(jù)在安全性上有很大缺憾。第二,語(yǔ)法限制不嚴(yán)格,對(duì)變量類型約束不嚴(yán)格,影響程序的安全性。如,不檢查數(shù)組下標(biāo)是否越界。但是瑕不掩疵,C語(yǔ)言仍是ー門生動(dòng)的藝術(shù),值得我們深入探究。而本門課程就是將C語(yǔ)言的語(yǔ)法和課程設(shè)計(jì)結(jié)合,在掌握語(yǔ)法規(guī)則的基礎(chǔ)上,不斷加深對(duì)于程序設(shè)計(jì)的理解。掌握語(yǔ)法并不是目的,最終運(yùn)用C語(yǔ)言去解決問(wèn)題オ是我們應(yīng)該從這門課程中學(xué)會(huì)的。本程序設(shè)計(jì)報(bào)告共分為七次上機(jī)實(shí)驗(yàn),總共包括??次小實(shí)驗(yàn),涵蓋表達(dá)式和標(biāo)準(zhǔn)輸入輸出,流程控制,函數(shù)與程序結(jié)構(gòu),預(yù)編譯處理,數(shù)組,指針和文件實(shí)驗(yàn)。不當(dāng)之處,煩請(qǐng)指正。2第一次實(shí)驗(yàn)2.1.1實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)名稱熟悉C語(yǔ)言程序的開(kāi)發(fā)環(huán)境(1)熟悉code::blocks等C語(yǔ)言程序的開(kāi)發(fā)環(huán)境;(2)掌握C程序的編輯,編譯,鏈接和運(yùn)行方法;(3)通過(guò)運(yùn)行簡(jiǎn)單的C程序,學(xué)會(huì)在集成開(kāi)發(fā)環(huán)境中調(diào)試程序的方法。2.1.2實(shí)驗(yàn)內(nèi)容A.試驗(yàn)任務(wù)(-)輸入2個(gè)源程序,然后進(jìn)行編譯、鏈接、運(yùn)行以及調(diào)試程序的方法,使程序最終輸出正確的結(jié)果。1)源程序1說(shuō)明:以下程序可以實(shí)現(xiàn)輸入三角形三遍a,b,c的值,計(jì)算并輸出三角形面積。面積公式為Area=[どは-の2-ム)。-c)其中s為三角形半周長(zhǎng)。源程序1:Sinclude<stdio.h>ttinclude<math.h>intmain(void)I:floata,b,c,s,t;printf(aInputthreeedgeofthetriangle'n”);scanf(a%f%f%fw,&a,&b,&c);s=(a+b+c)/2;t=s*(s-a)*(s-b)*(s-c);area=sqrt(t);printf("area二%d\n”,area);return0;}2)源程序2說(shuō)明:輸入十個(gè)整數(shù)輸出十個(gè)數(shù)的累加和。源程序2:#include<stdio.h>#defineN5;intsum(intx[],intn);intmain(void)Iinti,a[N],total;printf("'Input%dintegersplease!\n",N);for(i=0;i<N;i++)scanf(繪d”,&a[i]);total=sum(a,N);printf("Thesumis%d\n",total);return0;)intsum(intx[],intn)Iinti,s;for(s=0,i二〇;iくn;i++);s+=x[i];returns;
B.實(shí)驗(yàn)過(guò)程及結(jié)果(-)源代碼1:1)創(chuàng)建工程;2)鍵入源代碼,編譯;ncssaycInfunction?main*:error:'area'undeclared(firstuseinthisfunction)note:eachundeclaredidentifierisreportedonlyonceforeachfunctionitappearsin-Buildfailed:1error(s),0warning(s)(0minute(s),0second(s))—3)根據(jù)提示,檢查語(yǔ)法錯(cuò)誤,發(fā)現(xiàn)沒(méi)有定義area,修改后,編譯;NewfromtemplateNewfromtemplate—Build:Debugin實(shí)驗(yàn)(compiler:GNUGCCCompiler)—Infunction'main':yarning;fornatsxpsctsargumentoftype'iat1,butargument2hastype'double'[^format]—Buildfinished:0error(s)r1warning(s)(0minute(s)r1second(s))=4)定義為float,輸出為%d,導(dǎo)致warning,更改輸出為%f,編譯;
Outputfileisbin\Debug\^k^.exewithsize28.88KBProcessterminatedwithstatus0(0minute(s)z1second(s))0error(s)f0warning(s)(0minute(s),1second(s))5)運(yùn)行程序く1>正常數(shù)據(jù)く2>異常數(shù)據(jù)故更改后源代碼為#include<stdio.h>#include<math.h>intmain(void)floata,b,c,s,t,area;printf("'Inputthreeedgeofthetriangle\n,z);scanf(zz%f%f%fzz,&a,&b,&c);s=(a+b+c)/2;t=s*(s-a)*(s-b)*(s-c);area=sqrt(t);printf(zzarea二%f\n”,area);return0;)鏈接源代碼2:1)創(chuàng)建工程,鍵入源代碼,編譯;note:eachundeclaredidentifierisreportedonlyonceforeachfunctioniterror:?total1undeclared(firstuseinthisfunction)error:expected?),before?;?token=Buildfailed:6error(s),0warning(s)(0minute(s),0second(s))=2)根據(jù)提示,修改語(yǔ)法錯(cuò)誤,編譯:Outputfileisbin\Debug\^£5&.exewithsize28.88KBProcessterminatedwithstatus0(0minute(s),1second(s))0error(s),0warning(s)(0minute(s)z1second(s))3)運(yùn)行程序發(fā)現(xiàn)在輸入5個(gè)數(shù)字后程序便運(yùn)行了,修改預(yù)編譯為#defineN10?在此運(yùn)行■C:\Users\lenovo\Desktop\JSSilfi5WC\ls2\bin\Debug\ls2.exeInput10integersplease?1234567890Thesunid45Processreturned0<0x0>executiontine:7.098sPressan9keytocontinue.■源代碼修改為Sinclude<stdio.h>#defineN10intsum(intx[],intn);intmain(void)I:inti,a[N],total;printf(z,Input%dinegersplease!\n,N);for(i=0;i<N;i++);scanf(〃%d〃,&a[i]);total=sum(a,N);printflFhesumis%d\n”,total);return0;}intsum(intx[],intn)Iinti,s;for(s=0,i二〇;iくn;i++)s+=x[i];returns;)鏈接2.1.3實(shí)驗(yàn)小結(jié)(1)熟悉了code::blocks等C語(yǔ)言程序的開(kāi)發(fā)環(huán)境;(2)掌握了C程序的編輯,編譯,鏈接和運(yùn)行方法;(3)通過(guò)運(yùn)行簡(jiǎn)單的C程序,學(xué)會(huì)了在集成開(kāi)發(fā)環(huán)境中調(diào)試程序的方法;(4)提升來(lái)了關(guān)注細(xì)節(jié)的能力和加強(qiáng)了耐心;(5)為接下來(lái)的難度較高實(shí)驗(yàn)的編輯,調(diào)試打下了基礎(chǔ)。2.2.1實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)名稱表達(dá)式和標(biāo)準(zhǔn)輸入輸出實(shí)驗(yàn)(1)熟練掌握各種運(yùn)算符的運(yùn)算功能,操作數(shù)的類型,運(yùn)算結(jié)果的類型及運(yùn)算過(guò)程中的類型轉(zhuǎn)換,重點(diǎn)是C語(yǔ)言特有的運(yùn)算符,例如位運(yùn)算符,都好運(yùn)算符等,熟記運(yùn)算符的優(yōu)先性和結(jié)核性;(2)掌握getchar,putchar和printf函數(shù)的用法;(3)掌握簡(jiǎn)單C程序(順序結(jié)構(gòu)程序)的編寫(xiě)方法。2.2.2實(shí)驗(yàn)內(nèi)容A.實(shí)驗(yàn)任務(wù)(一)給出一個(gè)簡(jiǎn)單的C元語(yǔ)言程序?qū)嵗?,用以完成以下工?(1)輸入華氏溫度f(wàn),將它轉(zhuǎn)換成攝氏溫度C后輸出;(2)輸入圓的半徑r,計(jì)算并輸出圓的面積s;(3)輸入短整數(shù)k,p,將k的高字節(jié)作為結(jié)果的低字節(jié),p的高字節(jié)作為結(jié)果的高字節(jié),拼出ー個(gè)新的整數(shù),完成后輸出;以上例子程序中存在若干語(yǔ)法和邏輯錯(cuò)誤,要求參照對(duì)實(shí)驗(yàn)進(jìn)行調(diào)試修改,是指能夠正確完成指定任務(wù)。程序代碼:#include<stdio.h>#definePI3.14159;shortp,k;doublec,r,s;/*fortask1*/printf(/zInputFahrenheit:w);scanf("%d”,f);c=5/9*(f-32);printf(u\n%d(F)=%.2f(C)\n\nw,f,c);/*fortask2*/printf("inputtheradiusr:");scanf&r);s=PI*r*r;printf("\nTheacreageis%.2f\n\n",&s);/*fortask3*/printf("inputhexintk,p:");scanf("%x%x",&k,&p);newint=(p&OxffOO)I(k&OxffOO)?8;printf("newint=%x\n\n",newint);(二)編寫(xiě)ー個(gè)程序,輸入字符c,如果c是大寫(xiě)字母,則將其轉(zhuǎn)換為小寫(xiě),否則C值不變,最后輸出Co(三)編寫(xiě)ー個(gè)程序,輸入無(wú)符號(hào)短整數(shù)x,m,n(OWmく15,l〈nW16-m),取出x從第m位向左的n位(m從右至左編號(hào)0—15),并使其向左端(第十五位)靠齊。(四)IP地址通常是4個(gè)用句點(diǎn)分隔的小整數(shù),如32.55.1.102.這些地址在機(jī)器中用無(wú)符號(hào)長(zhǎng)整形表示。編寫(xiě)ー個(gè)程序,以機(jī)器存儲(chǔ)的形式讀入一個(gè)互聯(lián)網(wǎng)的IP地址,對(duì)其譯碼,然后用常見(jiàn)的句點(diǎn)分隔的四部分的形式輸出。例如:整型676879571的二進(jìn)制表示是00101000010110000101110011010011.按照8位ー組可表示為408892211o由于CPU處理數(shù)據(jù)的差異,它的順序是顛倒的,所以最終格式為211.92.88.40。B.實(shí)驗(yàn)過(guò)程及結(jié)果(一).(1)創(chuàng)建工程,鍵入程序,編譯;earning:format'lx1sxpsctsargumentoftype*unsignedintbutargument3haerror:?newint?undeclared(firstuseinthisfunction)note:eachundeclaredidentifierisreportedonlyonceforeachfunctionitappea:=Buildfailed:1error(s),4warning(s)(0minute(s)r0second(s))=(2)按提示,重新定義intnewint,更改數(shù)據(jù)類型,輸入輸出對(duì)應(yīng)的格式和類型,編譯;Processterminatedwithstatus0(0minute(s),1second(s))0error(s),0yarning(s)(0minute(s)z1second(s))(3)運(yùn)行程序く1>一般數(shù)據(jù)く2>特殊數(shù)據(jù)D:供驗(yàn)ゝbin\Debug供驗(yàn).exeInputFahrenheit:0e(F)=-17.78(C)inputtheradiusr:0Theacreageis0.00inputhexintk,p:00newint=0Processreturned0(0x0)executiontime:4.266sPressanykeytocontinue.度狗拼音輸入法半:故源代碼修改為:#include<stdio.h>^definePI3.14159intmain()(intf;unsignedintnewint,p,k;doublec,r,s;/*fortask1*/printf("InputFahrenheit:");scanf("%d〃,&f);c=5.0/9*(f-32);printf("\n%d(F)=%.2f(C)\n\n",f,c);/*fortask2*/printfCinputtheradiusr:〃);scanf("%lf",&r);s=pi*r*r;printf("\nTheacreageis%,2f\n\n",s);/*fortask3*/printf(,zinputhexintk,p:');scanf("知刎“,&k,&p);newint=(p&OxffOO)|((k&Oxff00)?8);printf("newint=%x\n\n",newint);return0;)鏈接(二)(1)在草稿紙上寫(xiě)出算法和表達(dá)式;(2)創(chuàng)建工程,鍵入程序,編譯;#include<stdio.h>intmain(){charc;printf("Pleaseinputacharacter:\n");c=getchar();if(Cc>='A*)&&Cc<=Z'))('c'=‘c'」A'+'a';}else1}putchar(c);return0;)error:lvaluerequiredasleftoperandofassignment=Buildfailed:1error(s),0warning(s)(0minute(s),0second(s))提示if語(yǔ)句塊內(nèi)有錯(cuò),對(duì)常數(shù)進(jìn)行賦值運(yùn)算;更改為c=,c-A,+,a;再次編譯ProcessterminatedひitAstatus0(0minute(s),1second(s)))error(s),0yarning(s)(0minute(s),1second(s))(3)運(yùn)行程序;bji u:\nj?s\oin\ueoug\Ln?a.exePleas?inputacharacter:Q°Processreturned0(0x0)executiontime:2.141sPressanykeytocontinue.發(fā)現(xiàn)運(yùn)行結(jié)果不正確,調(diào)試發(fā)現(xiàn)條件永真,修改為#include<stdio.h>intmain()Iintc;printf("Pleaseinputacharacter:\n");c=getchar();if((c>二'A')&&(c<=,Z'))putchar(c-'A'+'a');elseputchar(c);return0;)編譯完成后,運(yùn)行:ffj u:\LijtB\Din\MeDug\iZGts.exePleaseinputacharacter:ftaProcessreturned0(0x0)executiontime:3.172sPressanykeytocontinue.3leaseinputacharacter:aaProcessreturned〇(0x0)executiontime:Pressanykeytocontinue.鏈接(三)(1)在草稿紙上寫(xiě)出算法和表達(dá)式;(2)鍵入源代碼,#include<stdio.h>intmain()(unsignedintx,m,n,ans;printf("Pleaseinputx,m,n(0<=m<=15,K=n<=16-m):\n");scanf("%d%d%d",&x,&m,&n);if((m>=0)&&(m<=15)&&(n>=l)&&(n<=(l6~m)))(ans=(x?(16-m-n))&&(0xffff?(16-m-n));Iprintf("%d",ans);return0;編譯:^rocsssternzinatsdwithstatus0(0minute(s)f0second(s)))error(s)f0warning(s)(0minute(s),0second(s))(3)運(yùn)行程序>leaseinputx,m,n(0<=m<=15,1<=n<=16-m):,,ヰ,1S,rocessreturned0(0x0)executiontime:15.985>ressanykeytocontinue.(四)(1)思考算法和寫(xiě)出重要表達(dá)式;(2)創(chuàng)建工程,鍵入源代碼,編譯Processterminatedwithstatus0(0minute(s),0second(s))error(s),0warning(s)(0minute(s),0second(s))源代碼如下#include<stdio.h>intmain()(unsignedintm;shorta,b,c,d;printf(zzPleaseinputanip:\n");scanf&m);a=(m?24)&&0x000000ff;b=(((m?8))?24)&&0x000000ff;c=((m?16)?24)&&0x000000ff;d=m&&0x000000ff;printf(,zipis%d.%d.%d.%dz,,d,c,b,a);return0;(3)運(yùn)行程序leaseinputanip:>478397395734.pis1.1.1.1>rocessreturned0(0x0)executiontime:21.328s>ressanykeytocontinue.錯(cuò)誤,檢查源代碼,發(fā)現(xiàn)位運(yùn)算用錯(cuò),更改為#include<stdio.h>intmain()Iunsignedlongm;shorta,b,c,d;printf("Pleaseinputanip:\n");scanf("%u",&m);a=(m?24)&0x00ff;b=(m?16)&0x00ff;c=(m?8)&0x00ff;d=m&&0x00ff;printf("ipis%d.%d.%d.%d",d,c,b,a);return0;)再次編譯運(yùn)行。Pleaseinputanip:89174359014664768ipis1.106.36.104Processreturned0(0x0)executiontime:1Pressanykeytocontinue.go2.3實(shí)驗(yàn)小結(jié)(1)熟悉了各種運(yùn)算符的運(yùn)算功能,能自行使用調(diào)試功能找出程序邏輯錯(cuò)誤之處;(2)掌握了標(biāo)準(zhǔn)輸入輸出函數(shù)getchar,putchar,printf,scanf等。(3)掌握了C語(yǔ)言中最基礎(chǔ)的順序流程的程序的書(shū)寫(xiě);(4)學(xué)會(huì)了抽象化文字問(wèn)題,用數(shù)學(xué)方法和語(yǔ)言解決。3第二次實(shí)驗(yàn)1.1實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)名稱流程控制實(shí)驗(yàn)(1)掌握復(fù)合語(yǔ)句,if語(yǔ)句,switch語(yǔ)句的使用,熟悉掌握f(shuō)or,while,do-while三種基本的循環(huán)控制語(yǔ)句的使用,掌握重復(fù)循環(huán)技術(shù),了解轉(zhuǎn)移語(yǔ)句與標(biāo)號(hào)語(yǔ)句;(2)熟練運(yùn)用for,while,do-while語(yǔ)句來(lái)編寫(xiě)程序;(3)聯(lián)系轉(zhuǎn)移語(yǔ)句與標(biāo)號(hào)語(yǔ)句的使用;(4)使用集成開(kāi)發(fā)環(huán)境下的調(diào)試功能:單步執(zhí)行、設(shè)置斷點(diǎn)、觀察變量值:實(shí)驗(yàn)名稱函數(shù)與程序結(jié)構(gòu)實(shí)驗(yàn)(5)熟悉和掌握函數(shù)的定義、聲明,函數(shù)的調(diào)用與參數(shù)的傳遞方法,以及函數(shù)返回值類型的定義和返回值使用;(6)熟悉和掌握不同存儲(chǔ)類型變量的使用;(7)熟悉多文件編譯技術(shù)。1.2實(shí)驗(yàn)內(nèi)容A.實(shí)驗(yàn)任務(wù)(一)編寫(xiě)并上機(jī)調(diào)試運(yùn)行能實(shí)現(xiàn)以下功能的程序:假設(shè)エ資稅金按以下方法計(jì)算:x<1000元,不收取稅金;1000くxV2000,收取5%的稅金;2000WxV300〇,收取10%的稅金;3000くxV400〇,收取15%的稅金;4000くxV500〇,收取20%的稅金;x>5000,收取25%的稅金。編寫(xiě)ー個(gè)程序,輸入工資金額,輸出應(yīng)收取稅金額度,要求分別用if語(yǔ)句和switch語(yǔ)句來(lái)實(shí)現(xiàn)。(二)編寫(xiě)一個(gè)程序,將輸入的一行字符復(fù)制到輸出,復(fù)制過(guò)程中將一個(gè)以上的空格字符用ー個(gè)空格代替。(三)編寫(xiě)ー個(gè)程序,打印如下的楊輝三角。TOC\o"1-5"\h\z1 2 13 16 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 1每個(gè)數(shù)據(jù)值可以由組合ぐ計(jì)算(表示第i行第j列位置的值),而〈的計(jì)算如下:(i=0,l,2,...)Ci=Ci*(i-j+D/j 0=0,1,2,…)說(shuō)明:本程序中為了打印出金字塔的效果,要注意空格的數(shù)目。一位數(shù)之間是三個(gè)空格,兩位數(shù)之間有2個(gè)空格,3位數(shù)之間只有一個(gè)空格,程序編制過(guò)程中要注意區(qū)分。(四)編寫(xiě)ー個(gè)程序,將用戶輸入的任意正整數(shù)逆轉(zhuǎn)。例如,輸入1234,輸出4321〇(五)編寫(xiě)一個(gè)程序,讓用戶輸入兩個(gè)整數(shù),計(jì)算兩個(gè)數(shù)的最大公約數(shù)并輸出之。要求用遞歸函數(shù)實(shí)現(xiàn)求最大公約數(shù),同時(shí)以單步方式執(zhí)行該程序,觀察其遞歸過(guò)程。(六)編寫(xiě)ー個(gè)程序,驗(yàn)證哥德巴赫猜想:ー個(gè)大于等于4的偶數(shù)都是兩個(gè)素?cái)?shù)之和。(七)編寫(xiě)一個(gè)程序,證明對(duì)于在符號(hào)常量BEGIN和END之間的偶數(shù)這ー猜想成立。例如BEGIN為10,END為20,則程序的輸出應(yīng)為:GOLDBATCH'SCONJECTURE:Everyevennumbern>=4isthesumoftwopicture.10=3+712=5+720=3+17B.實(shí)驗(yàn)過(guò)程和結(jié)果(一)(1)構(gòu)思算法和表達(dá)式;(2)創(chuàng)建工程,鍵入表達(dá)式,編譯;利用if語(yǔ)句源代碼:#include<stdio.h>intmain(void)Iintx;floata;printf(/zPleaseinputyourincome:\nz,);scanf("%d",&x);if(x<1000)a=0;if((x>=1000)&&(x<2000))a=x*O.05;if((x>=2000)&&(x<3000))a=x*0.1;if((x>=3000)&&(x<4000))a=x*0.15;if((x>=4000)&&(x<5000))a二x?0.2;if(x>5000)a=x*0.25;printf("tax:%f\n,a);return0;)hitputfileisbin\Debug\.exewithsize28.71KBProcessterminatedwithstatus0(0minute(s),0second(s)))error(s)z0warning(s)(0minute(s),0second(s))運(yùn)行程序Pleaseinputyourincome:89444tax:22361.000000Processreturned0(0x0)executiontime:3.547sPressanykeytocontinue.Pleaseinputyourincome:0tax:0.000006Processreturned0(0x0)executiontime:1.953sPressanykeytocontinue.go利用switch語(yǔ)句源代碼:#include<stdio.h>intmain(void){intx;floata;printf(/zPleaseinputyourincome:\nz,);scanf(zz%d,z,&x);switch(x/1000)(case0:a=0;break;case1:a二x*0.05;break;case2:a=x*0.10;break;case3:a=x*0.15;break;case4:a二x?〇.2;break;default:a=x*0.25;break;)printf("tax=%fzz,a);return0;編譯:Processterminatedwithstatus0(0minute(s),0second(s))0error(s),0warning(s)(0minute(s)z0second(s))運(yùn)行程序Pleaseinputyourincome:4998tax=999,599976Processreturned0(OxO)executiontimePressanykeytocontinue.“easeinputyourincome:3tax=0.000000Jrocessreturned0(0x0)executiontime:4.3)ressanykeytocontinue.go(二)(1)設(shè)計(jì)算法(2)鍵入程序,編譯源代碼ttinclude<stdio.h>ttinclude<stdlib.h>intmain()Iinta=0;charb;printf(""Pleaseinputsentences:\nz/);while((b=getchar())!=EOF)if((bニニ'')&&(!a))putchar(b);a二1;)elseif(b!二',){putchar(b);a二〇;return0;}Processterminatedyithstatus0(0minute(s)f0second(s))0error(s),0warning(s)(0minute(s),0second(s))(3)運(yùn)行程序Pleaseinputsentences:luosdefoadfluosdefoadfsfdafhsfdafh(三)(1)設(shè)計(jì)算法;(2)鍵入源代碼,編譯;4include<stdio.h>ttinclude<stdlib.h>intF(inti,intj)if(j==0)return1;elsereturnF(i,j_l)*(i-j+l)/j;)intmain()(intx=O,y=O,k=21;for(;x<=9;x++)(printf(*%*d*?F(x,y));y++;k-=2;for(;y<=x;y++)printfF(x,y));y=0;printf("\n");)return0;)Processterminatedwithstatus0(0minute(s),0second(s))0error(s),0warning(s)(0minute(s),0second(s))(4)運(yùn)行程序go(四)(1)設(shè)計(jì)算法;(2)鍵入源代碼,編譯;ttinclude<stdio.h>ttinclude<stdlib.h>Sinclude<math.h>intmain()I:intnum,m,i,a,newnum;printf(/zPleaseinputthedigitofnumber:\nz,);scanf(zz%dzz,&m);printf(zzPleaseinputthenumber:\nzz);scanf(z,%dzz,&num);newnum=0;for(i=l;num<=10;i++)a=num%10;num=num/10;
newnum=newnum+a*pow(10,m-i);printf('%d〃,newnum);return0;)Processterminatedwithstatus0(0minute(s)z0second(s))フerror(s),0warning(s)(0minute(s)z0second(s))(3)運(yùn)行程序PleaseinputthePleaseinputthe12340ProcessreturnedPressanykeytoPleaseinputthePleaseinputthe12340ProcessreturnedPressanykeytonumber:0(0x0)executiontime:4.797scontinue.程序含有邏輯錯(cuò)誤,開(kāi)始調(diào)試;循環(huán)語(yǔ)句條件寫(xiě)錯(cuò),更改后ttinclude<stdio.h>Sinclude<stdlib.h>ttinclude<math.h>intmain()intnum,m,i,a,newnum;printf("Pleaseinputthedigitofnumber:\n");scanf("%d",&m);printf("Pleaseinputthenumber:\n");scanf("%d",&num);newnum=0;for(i=l;num!=0;i++)
a=num%10;num=num/10;newnum=newnum+a*(int)pow(10,m-i);)printfnewnum);return0;)編譯Processterminatedwithstatus0(0minute(s),0second(s))フerror(s)z0warning(s)(0minute(s),0second(s))運(yùn)行程序Pleaseinputthe3Pleaseinputthe123321ProcessreturnedPressanykeytodigitofnumber:Pleaseinputthe3Pleaseinputthe123321ProcessreturnedPressanykeytonumber:0(0x0)executiontimecontinue.ff-jソ.'ULB日ハンDUuy'山[曰Pleaseinputthedigitofnumber:Pleaseinputthenumber:12344321Processreturned0(0X0)executiontime:5.298sPressanykeytocontinue.go(五)(1)設(shè)計(jì)算法;(2)鍵入源程序,編譯Sinclude<stdio.h>#include<stdlib.h>Sinclude<math.h>intmain(){inti,a,b,c,j;printf("Pleaseinput2interges:\n");scanf("%d,刎”,&a,&b);if(b>a)c=a,a=b,b=c;for(i=b;i>=l;i=i—)tif((b%i)&&(a%i)==O)printf("%d\n",i);elseprintf("None!\n");:!for(j=a;j<=a*b;j=j++)(if((j%a)&&(j%b))printf("%d\n",j);}return0;}warning:operationon1maybeundefinedf-Wsequence-point]warning:operationonfj1maybeundefined[-Usequence-point]=Buildfinished:0error(s),2warning(s)(0minute(s),0second(s))=(3)修改好運(yùn)行程序,發(fā)現(xiàn)死循環(huán)調(diào)試程序后更改為#include<stdio.h>intgys(intx,inty)Iif(x%y==O)returny;elsereturngys(y,x%y);)intmain()I:intx,y,n;printf("pleaseinputx\n");scanf("%d",&x);printf("pleaseinputy\n");scanf("%d",&y);n=gys(x,y);printf("x和y的最大公約數(shù)是:%d",n);return0;)Go
編譯Processterminatedwithstatus0(0minute(s),0second(s))0error(s),0warning(s)(0minute(s)z0second(s))運(yùn)行程序pleaseinputx2446pleaseinputyx和y的最大公約數(shù)是:2Processreturned0(OxO)executiontime:5.656sPressanykeytocontinue.pleaseinputx3377pleaseinputyx和y的最大公約數(shù)是:11Processreturned0(0x0)executiontime:5.643sPressanykeytocontinue.單步執(zhí)行:scan£("%d"scan£("%d",&y);n=gcd(x,y);printf("x和y白勺最:return0;intxrintxry,n;prin'tf("pleaseinpiscanf("%d"r&x);printf("pleaseinp'x=12;y=36n=213056716!■"C:\Users\lichuangjian\pleaseinputx12pleaseinputy36執(zhí)行完畢后:3|H<Intxry,n;printf("pleaseinputx\iscan£("%d"r&x);printf("pleaseinputy\iscanf(",d",fcy);n=gcd(x,y);printf("x和y的最大公的areturn0;BLocalvariablesx=12y=36n=12(BFunctionArguments■'C:\Users\lichuangjian\Deslctoppleaseinputx12pleaseinputy36m和y的最大公約數(shù)是:12結(jié)果與預(yù)計(jì)相符,程序正確運(yùn)行(六)(1)設(shè)計(jì)算法;(2)鍵入源代碼,編譯#include<stdio.h>voidmain(){intx,y,z,i,J;for(x=4;x<100;x++)for(y=l;y<x;y++){for(i=2;i<y;i++)if(y%i==O)break;if(i==y){z=x-y;for(j=2;j<=z;j++)if(z%j==O)break;if(j==z)printf(/z%d=%d+%d\tzz,x,y,z);printf[\n丿;earning;returntypeof'main1isnot'inff-inamj=Buildfinished:0error(s),1warning(s)(0minute(s),0second(s))—提示說(shuō)明main函數(shù)出口參數(shù)有錯(cuò),更改后源代碼為#include<stdio.h>intmain(){intx,y,z,i,j;for(x=4;x<100;x++)for(y=l;y<x;y++){for(i=2;i<y;i++)if(y%i==O)break;if(i==y){z=x-y;for(j=2;j<=z;j++)if(z%j==O)break;if(j==z)printf("%d=%d+%d\t”,x,y,z);printf("\n");return0;)GO再次編譯4=2+25=2+3 5=3+2 6=3+3 7=2+57=5+28=3+58=5+39=2+79=7+210=3+710=5+510=7+312=5+712=7+513=2+1113=11+214=3+1114=7+714=11+315=2+1315=13+216=3+1316=5+1116=11+516=13+318=5+1318=7+1118=11+718=13+519=2+1719=17+220=3+1720=7+1320=13+720=17+321=2+1921=19+222=3+1922=5+1722=11+1122=17+522=19+324=5+1924=7+1724=11+1324=13+1124=17+724=19+525=2+2325=23+226=3+2326=7+1926=13+1326=19+726=23+328=5+2328=11+17 28=17+1128=23+530=7+2330=11+1930=13+1730=17+13 30=19+1130=23+731=2+2931=29+232=3+2932=13+1932=19+13 32=29+333=2+3133=31+234=3+3134=5+2934=11+2334=17+1734=23+11 34=29+534=31+336=5+3136=7+2936=13+2336=17+19I 36=19+17 36=23+1336=29+736=31+538=7+3138=19+1938=31+739=2+3739=37+240=3+3740=11+2940=17+2340=23+1740=29+11 40=37+342=5+3742=11+3142=13+29I42=19+2342=23+19 42=29+1342=31+1142=37+543=2+4143=41+244=3+4144=7+3744=13+31 44=31+1344=37+744=41+345=2+4345=43+246=3+4346=5+4146=17+29 46=23+2346=29+1746=41+546=43+348=5+4348=7+4148=11+37 48=17+3148=19+29?48=29+1£148=31+1748=37+11 48=41+748=43+549=2+4749=47+250=3+4750=7+4350=13+3750=19+31 50=31+1950=37+1350=43+750=47+352=5+4752=11+41 52=23+2952=29+2352=41+1152=47+554=7+4754=11+43 54=13+4154=17+3754=23+3154=31+2354=37+17 54=41+1354=43+1154=47+755=2+5355=53+256=3+5356=13+43 56=19+3756=37+19I56=43+1356=53+358=5+5358=11+47 58=17+4158=29+29I58=41+1758=47+11岫為比ア妗ス旺平.程序正常運(yùn)行,說(shuō)明哥德巴赫假說(shuō)正確。(七)(1)設(shè)計(jì)算法;(2)鍵入源代碼,編譯#include<stdio.h>ttdefineBEGIN10SdefineEND20#include<math.h>intmain()(inta,b,c,d;for(a二BEGIN;a<=END;a+=2)for(b=3;b<=a/2;b+=2)for(c=2;c<=sqrt(b);c++)if(b%c==0)break;if(c>sqrt(b))d=a-b;elsecontinue;for(c=2;c<=sqrt(d);c++)if(d%c==0)break;if(c>sqrt(d))printf("%d=%d+%d\rT,a,b,d);))return0;)Processterminatedwithstatus0(0minute(s),0second(s))0error(s),0warning(s)(0minute(s),0second(s))(3)運(yùn)行程序10=3+710=5+512=5+714=3+1114=7+716=3+1316=5+1118=5+1318=7+1120=3+1720=7+13Processreturned0(0x0)executiontime:0.469sPressanykeytocontinue.go3.1.3實(shí)驗(yàn)小結(jié)(l)本次實(shí)驗(yàn)使我熟練掌握了符合語(yǔ)句,if語(yǔ)句,switch語(yǔ)句是的使用,熟悉Tfor,while,do-while三種基本的循環(huán)控制語(yǔ)句的使用,掌握了重復(fù)循環(huán)技術(shù),了解了轉(zhuǎn)移語(yǔ)句與標(biāo)號(hào)語(yǔ)句;(2)實(shí)習(xí)了開(kāi)發(fā)環(huán)境中的調(diào)試功能:單步執(zhí)行,設(shè)置斷點(diǎn),觀察變量值;(3)熟悉了函數(shù)的定義,生命,函數(shù)的調(diào)用和參數(shù)的傳遞,以及函數(shù)返回至類型的定義和返回值使用;了解了不同存儲(chǔ)類型變量的使用;(5)學(xué)會(huì)了小組合作,交流想法,從他人的算法中提煉精華,彌補(bǔ)自己算法不足之處;(6)培養(yǎng)了耐心和細(xì)心的良好編程品質(zhì)。4第三次實(shí)驗(yàn)4.1.1實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)名稱編譯預(yù)處理實(shí)驗(yàn)(1)掌握文件包含,宏定義,條件編譯,assert宏的調(diào)用;(2)聯(lián)系帶參數(shù)的宏定義,條件編譯的使用;(3)聯(lián)系assert宏的使用;(4)使用集成開(kāi)發(fā)環(huán)境中的調(diào)試功能:單步執(zhí)行,設(shè)置斷點(diǎn),觀察變量值;實(shí)驗(yàn)名稱數(shù)組實(shí)驗(yàn)(5)掌握數(shù)組的說(shuō)明;(6)掌握ー維數(shù)組作為函數(shù)參數(shù)時(shí)實(shí)參和形參的用法;(7)掌握字符串處理函數(shù)的設(shè)計(jì),包括串操作函數(shù)及數(shù)字串與數(shù)之間轉(zhuǎn)換函數(shù)的實(shí)現(xiàn)算法;(8)掌握基于分治策略的二分法查找算法和選擇排序算法的思想,以及相關(guān)算法的實(shí)現(xiàn)。4.1.2實(shí)驗(yàn)內(nèi)容A.實(shí)驗(yàn)任務(wù)(一)^defineDIFa-b#defineSWAP(a,b)a=b,b=aintmain()fintb,t;printfCinputtwointegersa,b:');scanf(,z%d,%d",&a,&b);printf(,z\nSUM=%d\nthedifferencebetweensquareofbis:%d",SUM,SUM*DIF);SWAP(a,b);Printf('\nNowa=%d,b=%d\n",a=b);return0;)(二)源程序修改替換下面是用函數(shù)實(shí)現(xiàn)求兩個(gè)數(shù)中最大數(shù),計(jì)算兩數(shù)和的源程序。在這個(gè)源程序中存在若干邏輯和語(yǔ)法錯(cuò)誤,要求:(1)對(duì)這個(gè)例子的源程序進(jìn)行調(diào)試修改,使之能夠完成正確的任務(wù)。(2)用帶參數(shù)的宏替換函數(shù)max,實(shí)現(xiàn)求最大數(shù)的功能。voidmain(void)I:inta,b,c;floatd,e;printflEnterthreeintergers:");scanf("%d,%d,%d",&a,&b,&c);printf('\nthemaxofthemis%d\n,max(a,b,c));printf("Entertwofloatingpointnumbers:");scanf("%f,%f",&d,&e);printf("\nthesumofthemis%f\n",sum(d,e));return0;)intmax(intx,inty,intz)if(x>y)t=x;elset=y;if(t<z)t=z;returnt;)floatsum(floatx,floaty)creturnx+y;(三)跟蹤調(diào)試程序下面程序的功能是利用R計(jì)算圓的面積是s,以及面積s的整數(shù)部分?,F(xiàn)要求:(1)修改程序,使程序編譯通過(guò)能夠運(yùn)行(2)單步執(zhí)行。進(jìn)入函數(shù)decimal-fraction時(shí),watches窗口中x為何值?在返回main時(shí),watches窗口中i為何值?(3)排除錯(cuò)誤,使程序能夠正確求出面積s值的整數(shù)部分,不會(huì)輸出錯(cuò)誤信息asserationfailedo#defineRintmain()Ifloatr,s;ints_integer=O;printf(inputanumber:");scanf("%f",&r);ttifdefRs=3.14159*r*r;printfC'areaofroundis:%f\nz/,s);s_integer=integer_fraction(s);printf(/ztheintegerfractionofareais%d\nzz,s_integer);assert((s-s_integer)<1.0);#endifreturn0;)intinteger_fraction(floatx)cinti=x;returni;}編寫(xiě)并上機(jī)調(diào)試運(yùn)行能實(shí)現(xiàn)以下功能的程序:(四)已知三角形的面積area=Js(s-a)(s-b)(s-c)?其中s=(a+b+c)/2,a,b,c為三角形的三邊。定義兩個(gè)帶參數(shù)的宏,一個(gè)用來(lái)求s,另一個(gè)用來(lái)求area,試編寫(xiě)ー程序,用帶參數(shù)的宏來(lái)計(jì)算三角形的面積。(五)使用條件編譯方法編譯ー個(gè)程序,其功能要求是,輸入一行電報(bào)文字,可以任選兩種輸出,ー為原文輸出;二為換字母大小輸出寫(xiě)(如小寫(xiě)a變成大寫(xiě)A,大寫(xiě)D變成小寫(xiě)d),其他字符串不變,用#define命令控制是否變換字母的大小寫(xiě)。用#define命令控制是否變換字母的大小寫(xiě)。例如,#defineCHANGE1,則輸出變換后的文字,若#defineCHANGE0.則原文輸出。(六)源程序改錯(cuò)源程序#include<stdio.h>inta[10]={27,13,5,32,23,3,17,43,55,39);voidsort(int[],int);inti;sort(a[0],10);for(i=0;i<10;i++)printf("%6d",a[i]);printf("\n");return0;)voidsort(intb[],intn)(inti,j,t;for(i=0;i<n-l;i++)for(j=0;j<n-l-i;j++)if(b[j]<b[j+l])t=b[i],b[j]=b[j+l],b[j+l]=t;)(七)源程序修改替換#include<stdio.h>#defineM10#defineN3intmain()Iinta[M],b[M];inti,j,k;for(i=0;i<M;i++)a[i]=i+l;for(i=M,j=0;i>l;i—)for(k=l;k<=N;k++)if(++j>i-l)j=0;b[M-i]=j? ;if(j)for(k=—j;k<i-l;k++))for(i=0;i<M-l;i++)printf("%6d”,b[i]);printf("%6d\n",a[〇]);return0;)(ハ)跟蹤調(diào)試程序#include<stdio.h>voidstrncat(char[],char[],int);intmain()I:symbol ischar a[50]=〃the adoptedsymbol is,b[27]=z,abcdefghijklmnopqrstuvwxyz;strncat(a,b,4);printf(級(jí)s\n〃,a);return0;)voidstrncat(chars[],chart[],intn)I:inti二〇,j;while(s[i++]);for(j=0;j<n&&t[j];)s[i++]=t[j++];
s[i]=\0);(九)辨析一個(gè)程序,從鍵盤讀取數(shù)據(jù),對(duì)ー個(gè)3x4矩陣進(jìn)行賦值,求其轉(zhuǎn)置矩陣,然后輸出原矩陣和轉(zhuǎn)置矩陣。(十)編寫(xiě)ー個(gè)程序,其功能要求是:輸入ー個(gè)整數(shù),將它在內(nèi)存中二進(jìn)制表示的每一位轉(zhuǎn)換為對(duì)應(yīng)的數(shù)學(xué)自負(fù),存放到ー個(gè)字符數(shù)組中,然后輸出該整數(shù)的二進(jìn)制表zj\〇(十一)編寫(xiě)ー個(gè)程序,其功能要求是:輸入n個(gè)學(xué)會(huì)僧的姓名和C語(yǔ)言課程的成績(jī),將成績(jī)按從高到低的次序排列,姓名同時(shí)作相應(yīng)調(diào)整,輸出排序后學(xué)生的姓名和C語(yǔ)言課程的成績(jī)。然后,輸入ー個(gè)C語(yǔ)言課程成績(jī)值,用二分法查找進(jìn)行搜索。如果查找到有該成績(jī),輸出該同學(xué)的姓名和C語(yǔ)言課程的成績(jī);否則,輸出提示“notfound!n〇B.實(shí)驗(yàn)過(guò)程與結(jié)果(-)鍵入源代碼,編譯D:\CodeBlocks\ D:\CodeBlocksヽ...8D:\CodeBlocks\...9D:\Cod?Block?\...9D:\CodeBlocks\...9D:\CodeBlocks\...9D:\CodBBlocks\...D:\CodeBlocks\ D:\CodeBlocksヽ...8D:\CodeBlocks\...9D:\Cod?Block?\...9D:\CodeBlocks\...9D:\CodeBlocks\...9D:\CodBBlocks\...11D:[CodeBlocks\ 12D:[CodeBlocksヽ...7D:{CodeBlocks..11根據(jù)提示修改源代碼為#include<stdio.h>#defineSUM(a+b)#defineDIF(a-b)#defineSWAP(a,b)t=b;b=a;a二tintmain()inta,b,t;printf("inputtwointegersa,b:");scanf("%d%d",&a,&b);printf("\nSUM=%d\nthedifferencebetweensquareofbis:%d",SUM,SUM*DIF);SWAP(a,b);printf("\nNowa=%d,b=%d\n",a,b);return0;)再次編譯,無(wú)錯(cuò)誤與警告運(yùn)行程序inputtwointegersa-b:23SUM=5thedifferencebetweensquareofbis:-5Nowa=3,b=2Processreturned0<0x0>executiontine:Pressanykeytocontinue.SO(二)鍵入源代碼,編譯FileLineMessageId:\CodeBlocks\...2warning:returntypeof9maln*Isnot'Int9 |D:\CodeBlocks\...Infunction'main?:Dr\Cod&Blockg\ Swarning:Implicitdeclarationoffunction'printf9D:90dユock小 7warning:Implicitdeclarationoffunction'scanf9Dr\CodeBlocks\...8warning:Implicitdeclarationoffunction'max9Dr90d?\...11warning:implicitdeclarationoffunction'sum9Dr\CodBBlocks\ 12warning:doubleformat,differenttypearg(arg2)Dr\CodoBlockg\ 12warning:'return9wlthavalue.InfunctionreturningD:\CodeBlocks\ 26error:conflictingtypesfor'sum'D:\CodeBlock?\ 11error:previousimplicitdeclarationof,sum*washer=Buildfinished:2errors,7warnings=根據(jù)提示修改源代碼為#include<stdio.h>intmax(int,int,int);floatsum(float,float);intmain()I:inta,b,c;floatd,e;printf("Enterthreeintergers:");scanf("%d%d%d",&a,&b,&c);printf("\nthemaxofthemis%d\n",max(a,b,c));printf("Entertwofloatingpointnumbers:");scanf("%f%f",&d,&e);printf("\nthesumofthemis%f\n",sum(d,e));return0;)intmax(intx,inty,intz)Iintt;if(x>y)t=x;elset=y;if(t<z)t=z;returnt;floatsum(floatx,floaty)
returnx+y;再次編譯,發(fā)現(xiàn)沒(méi)有錯(cuò)誤與警告,運(yùn)行程序Enterthreeintergers:173121432thenaxofthenisEntertwofloating432thenaxofthenisEntertwofloating432pointnunbers:14歸hesunofthenis歸hesunofthenis5.000000processreturned0<0x0)executiontprocessreturned0<0x0)executiontpressanykeytocontinue.£2帶參數(shù)的宏替換函數(shù)pressanykeytocontinue.£2帶參數(shù)的宏替換函數(shù)max源代碼如下#include<stdio.h>#defineMAX(a,b,c)if(a>b)t=a;elset=b;if(t<c)t=cfloatsum(float,float);intmain()Iinta,b,c,t;floatd,e;printf("'Enterthreeintergers:");scanf("%d%d%d",&a,&b,&c);MAX(a,b,c);printf("\nthemaxofthemis%d\n",t);printf("Entertwofloatingpointnumbers:");scanf("%f%f",&d,&e);printf("\nthesumofthemis%f\n",sum(d,e));return0;floatsum(floatx,floaty)returnx+y;編譯后運(yùn)行程序DEntei*threeintergers:173121432themaxofthemisEntertwofloating432pointnumbers:14xhesumofthenis5.000000Processreturned0<0x0>executiontpressanykeytocontinue.(三)floatsum(floatx,floaty)returnx+y;編譯后運(yùn)行程序DEntei*threeintergers:173121432themaxofthemisEntertwofloating432pointnumbers:14xhesumofthenis5.000000Processreturned0<0x0>executiontpressanykeytocontinue.(三)D:\capace\zuoy...not*:anargumenttypethathasadefaultpromotioncan,tmatchanesqptyD:\cspace\zuoy 11note:previousillicitdeclarationof'integerfraction'washere=Buildfinished:1errors,€warnings=SdefineR#include<stdio.h>ttinclude<assert.h>intinteger_fraction(float);intmain()Ifloatr,s;ints_integer=O;printf("inputanumber:");scanf("%f",&r);#ifdefRs=3.14159*r*r;printf("areaofroundis:%f\n",s);s_integer=integer_fraction(s);printf("theintegerfractionofareais%d\n",s_integer);assert((s-s_integer)<1.0);#endifreturn0;)intinteger_fraction(floatx)Iinti=x;returni;Watches XBLocalvariablesL-i=-2GFunctionArgumentsL-x=50.2654419Watches XEiLocalvariables=50臼FunctionArgumentsLx=50.2654419go(四)(1)設(shè)計(jì)算法;(2)鍵入源代碼#include<stdio.h>#defineAREAarea=sqrt(s*(s-a)*(s-b)*(s-c));#defineSs=(a+b+c)/2;intmain()(floata,b,c;printf("Pleaseinputthetriangle'slengthofthreeside:\n");scanf("%f%f%f',&a,&b,&c);if((a+b<=c)||(a+c<=b)||(c+b<=a)||a<0||b<0||c<0)(printf("InputError!!\n");)else{AREA;S;printf("Theareais%f',area);)return0;)編譯error:?area*undeclared(firstuseinthisfunction)note:eachundeclaredidentifierisreportedonlyonceforeachfunctionitappearsiierror:*s*undeclared(firstuseinthisfunction)=Buildfailed:2error(s),0warning(s)(0minute(s),0second(s))=對(duì)于帶參數(shù)的宏定義仍然不熟悉,造成漏定義變量,改正后,源代碼為#include<stdio.h>#defineAREAarea=sqrt(s*(s-a)*(s-b)*(s-c));#defineSs=(a+b+c)/2;intmain()(floata,b,c,s,area;printf("Pleaseinputthetriangle'slengthofthreeside:\n");scanf("%f%f%f;&a,&b,&c);if((a+b<=c)||(a+c<=b)||(c+b<=a)||a<0||b<0||c<0)(printf("InputError!!\n");)else{AREA;S;printf("Theareais%f\area);)return0;)編譯提醒未初始化s,調(diào)整S的位置,源代碼如下#include<stdio.h>#include<math.h>#defineAREAarea=sqrt(s*(s-a)*(s-b)*(s-c));#defineSIZEs=(a+b+c)/2;intmain()floata,b,c,s,area;printf("Pleaseinputthetriangle*slengthofthreeside:\n");scanf("%f%f%f',&a,&b,&c);SIZE;if((a+b<=c)||(a+c<=b)||(c+b<=a)||a<0||b<0||c<0)printf("InputError!!\n");)else{AREA;printf("Theareais%f\area);)return0;)編譯Processterminatedwithstatus0(0minute(s),1second(s))0error(s),0warning(s)(0minute(s),1second(s))運(yùn)行程序Pleaseinputthetriangle'slength
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 系統(tǒng)維保協(xié)議書(shū)
- 早餐店桌子轉(zhuǎn)讓協(xié)議書(shū)
- 股份劃分協(xié)議書(shū)
- 簽訂婚內(nèi)協(xié)議書(shū)
- 葡萄栽種協(xié)議書(shū)
- 曲棍球競(jìng)賽招標(biāo)協(xié)議書(shū)
- 遣散員工協(xié)議書(shū)
- 結(jié)婚入戶協(xié)議書(shū)
- 自愿退兵協(xié)議書(shū)
- 線路修整協(xié)議書(shū)
- 鷹眼無(wú)人機(jī)商業(yè)計(jì)劃書(shū)
- 第七單元 第2課時(shí) 觀察運(yùn)動(dòng)中的物體(大單元教學(xué)設(shè)計(jì)) 一年級(jí)數(shù)學(xué)下冊(cè) (蘇教版2025)
- 創(chuàng)傷急救知識(shí)的試題及答案詳解
- 游泳館安全運(yùn)營(yíng)管理措施
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案題(中小學(xué)組)
- 2025-2030中國(guó)細(xì)胞培養(yǎng)設(shè)備行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 廣州順德區(qū)2025年高考生物四模試卷含解析
- 人教版八年級(jí)英語(yǔ)下冊(cè)Unit 9 Section A單詞詞匯課件
- 兒童支氣管哮喘診斷與防治指南(2025)解讀
- 無(wú)人機(jī)吊運(yùn)材料的安全管理要求
- API RP 5A3-2023 套管、油管和管線管的螺紋脂推.薦方法
評(píng)論
0/150
提交評(píng)論