



版權(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í): 信息安全二班學(xué)號(hào):U201315132姓名: 許彥夫指導(dǎo)教師: 周時(shí)陽(yáng)報(bào)告日期: 20期年6月16日計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院目錄TOC\o"1-5"\h\z1實(shí)驗(yàn)概述 1\o"CurrentDocument"2第一次實(shí)驗(yàn) 3\o"CurrentDocument"!實(shí)驗(yàn)?zāi)康?3實(shí)驗(yàn)內(nèi)容 3\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 15\o"CurrentDocument"3第二次實(shí)驗(yàn) 15\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?15\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 16\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 29\o"CurrentDocument"4第三次實(shí)驗(yàn) 29\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?29\o"CurrentDocument"4.2實(shí)驗(yàn)內(nèi)容 29\o"CurrentDocument"3實(shí)驗(yàn)小結(jié) 42\o"CurrentDocument"5第四次實(shí)驗(yàn) 42\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?42\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 42\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 51\o"CurrentDocument"6第五次實(shí)驗(yàn) 51\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?51\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 51\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 61\o"CurrentDocument"7第六次實(shí)驗(yàn) 61\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?61\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 62\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 778第七次實(shí)驗(yàn) 781實(shí)驗(yàn)?zāi)康?78\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 78\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 881實(shí)驗(yàn)?zāi)康?88\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 88\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 10010課本第十次實(shí)驗(yàn) 101\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 101\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 11911實(shí)驗(yàn)總結(jié) 121參考文獻(xiàn) 1221實(shí)驗(yàn)概述在今天,C語(yǔ)言對(duì)于學(xué)習(xí)計(jì)算機(jī)的我們來(lái)說(shuō),十分的重要,它是我們接觸的第一門專業(yè)性課程,C語(yǔ)言同樣也有著它獨(dú)特的優(yōu)點(diǎn),首先C語(yǔ)言語(yǔ)法結(jié)構(gòu)很簡(jiǎn)潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用c語(yǔ)言去描述算法本身,所以,如果我們想在程序設(shè)計(jì)方面有所建樹,就必須去學(xué)它。同時(shí)c語(yǔ)言的語(yǔ)言簡(jiǎn)潔緊湊,目標(biāo)代碼質(zhì)量高,語(yǔ)言表達(dá)能力強(qiáng),弱類型,書寫自由,使用靈活,可移植性好。同時(shí)很多新型語(yǔ)言都是衍生自c語(yǔ)言,在經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí),我們就可以掌握更多的語(yǔ)言。作為學(xué)習(xí)計(jì)算機(jī)專業(yè)的我們,學(xué)好C學(xué)精C便是我們義不容辭的責(zé)任,所以為了更好地復(fù)習(xí)和掌握本學(xué)期學(xué)習(xí)的知識(shí),本學(xué)期ー共進(jìn)行了六次上機(jī)實(shí)驗(yàn),還有課后數(shù)不清的練習(xí),最后共同構(gòu)成了這份報(bào)告。本次報(bào)告主要由兩個(gè)方面構(gòu)成,首先是課本上一些基礎(chǔ)的作業(yè)練習(xí),除去課本第一次上機(jī)實(shí)驗(yàn),原因是本人機(jī)器中C語(yǔ)言的開發(fā)環(huán)境與第一次上機(jī)要求的不同,總共完成了課本第二次到第十次,共九次的上機(jī)練習(xí),它們分別從表達(dá)式與標(biāo)準(zhǔn)輸入輸出,流程控制實(shí)驗(yàn),函數(shù)與程序結(jié)構(gòu)實(shí)驗(yàn),編譯預(yù)處理實(shí)驗(yàn),數(shù)組實(shí)驗(yàn),指針實(shí)驗(yàn),結(jié)構(gòu)與聯(lián)合實(shí)驗(yàn),文件實(shí)驗(yàn),再次強(qiáng)化了本人對(duì)c語(yǔ)言的掌握程度與認(rèn)識(shí),同時(shí)每次上機(jī)實(shí)驗(yàn)的內(nèi)容,從最基本的源程序改錯(cuò)題開始,到源程序修改替換,到最后的程序設(shè)計(jì),從基礎(chǔ)開始,掌握c;五百レロpq〇本次報(bào)告的第二個(gè)部分,是由老師所給的word補(bǔ)充題構(gòu)成,本人完成了六次,每一次在課本的練習(xí)完成之后,又有了新的提高,源程序與結(jié)果截圖都在前六次上機(jī)的實(shí)驗(yàn)教材題之后,同時(shí)在word補(bǔ)充題中,ー些較為難懂的實(shí)驗(yàn)還有一些或簡(jiǎn)單或復(fù)雜的算法思想,同時(shí)在word題中出現(xiàn)的與課本實(shí)驗(yàn)相同的題目,本人也嘗試再編寫一次,嘗試不同的方法和思想,盡力對(duì)原有的實(shí)驗(yàn)進(jìn)行完善。同時(shí)word實(shí)驗(yàn)的大部分的運(yùn)行結(jié)果中,包含了對(duì)幾種不同類型數(shù)據(jù)的處理結(jié)果,也在嘗試簡(jiǎn)單的給測(cè)試數(shù)據(jù)做ー些分類。同時(shí)所有程序都盡量配有提示性的語(yǔ)句,在運(yùn)行時(shí)能清楚地知道要輸入什么。同時(shí)這份報(bào)告的排版統(tǒng)ー,格式也比較清晰,整體看上去比較舒服。但最后由于時(shí)間原因,ー些實(shí)驗(yàn)的測(cè)試數(shù)據(jù)給的還不夠完善,分類不夠系統(tǒng),同時(shí)課本上機(jī)實(shí)驗(yàn)當(dāng)中的程序缺少了算法思想和分類的測(cè)試數(shù)據(jù),可能一些程序的算法設(shè)計(jì)的還比較繁瑣,不夠完善,同時(shí)還不夠積極,平常上課時(shí)提出的一些問(wèn)題,即使及時(shí)的上機(jī)驗(yàn)證之后也沒(méi)有摘錄到報(bào)告中??傊瓹語(yǔ)言上機(jī)是讓我們進(jìn)ー步了解C的語(yǔ)法,語(yǔ)義,掌握ー些簡(jiǎn)單的算法思想,我想經(jīng)過(guò)這些上機(jī)實(shí)驗(yàn),我也已經(jīng)完成了這些基本的要求,同時(shí)這也為我暑假進(jìn)ー步了解C,學(xué)習(xí)C,精通C,打下了基礎(chǔ)。ー個(gè)優(yōu)秀的程序員,毫無(wú)疑問(wèn),都需要無(wú)數(shù)次的上機(jī)實(shí)驗(yàn)與調(diào)試,相信這只是ー個(gè)開始,開始讓我對(duì)編程有了興趣,相信會(huì)有一個(gè)精彩的未來(lái)在等著我。2第一次實(shí)驗(yàn)2.1實(shí)驗(yàn)?zāi)康?熟悉VC6.0++程序的開發(fā)環(huán)境。.掌握C程序的編輯、編譯、鏈接和運(yùn)行方法。.通過(guò)運(yùn)行簡(jiǎn)單的C程序,學(xué)會(huì)在集成開發(fā)環(huán)境中調(diào)試程序的方法。.掌握C程序中輸入輸出的技巧.2實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)教材題.源程序改錯(cuò)下面給出了一個(gè)簡(jiǎn)單C語(yǔ)言程序例程,用來(lái)完成以下工作:(I)輸入華氏溫度f(wàn),將它轉(zhuǎn)換成攝氏溫度c后輸出;(2)輸入圓的半徑值r,計(jì)算并輸出圓的面積s;(3)輸入短整數(shù)k、p,將k的高字節(jié)作為結(jié)果的低字節(jié),p的高字節(jié)作為結(jié)果的高字節(jié),拼成一個(gè)新的整數(shù),然后輸出;在這個(gè)例子程序中存在若干語(yǔ)法和邏輯錯(cuò)誤。要求參照2.1.3和2.1.4的步驟對(duì)下面程序進(jìn)行調(diào)試修改,使之能夠正確完成指定任務(wù)。源程序:#include<stdio.h>#definePI3.14159;voidmain(void){intf;shortp,k;doublec,r,s;/*fortask1*/printf(aInputFahrenheit:w;scanf("%d",f);c=5/9*(f-32);printf("\n%d(F)=%.2f(C)\n\n”,f,c);/*fortask2*/printf(z,inputtheradiusr:〃);scanf("%f",&r);s=PI*r*r;printf('\nTheacreageis%.2f\n\n〃,&s);/*fortask3*/printf(''inputhexintk,p:〃);scanf(,z%x%x,z,&k,&p);newint=(p&OxffOO)|(k&OxffOO)<<8;printf(zznewint=%x\n\nzz,newint);)修改完了之后:#include<stdio.h>#definePI3.14159intmain(void){intf;unsignedp,k,newint;doublec,r,s;/*fortask1*/printf(z,InputFahrenheit:,z);scanf('z%d",&f);c=(5./9)*(f-32);printfC\n%d(F)=%.21f(C)\n〃,f,c)/*fortask2*/printf("Inputtheradiusr:");scanf("%lf",&r);s二PI*r*r;printf("\nTheacreageis%.21f\n\n",s);/*fortask3*/printf(z,Inputhexintk,p:〃);scanf(,z%x%x〃,&k,&p);newint=(p&OxffOO)|((k&Oxff00)?8);printf(^newint=%x\n,z,newint);return0;}運(yùn)行結(jié)果:InputFahrenheit:55<F>=-15.00<C>Inputtheradiusr:9Theacreageis254.47Inputhexintk,p:12345678newint=5612.源程序修改替換下面的程序利用常用的中間變量法實(shí)現(xiàn)兩數(shù)交換,請(qǐng)改用不使用第3個(gè)變量的方法實(shí)現(xiàn)。該程序中t是中間變量,要求將定義語(yǔ)句中的t刪除,修改下劃線處的語(yǔ)句,使之實(shí)現(xiàn)兩數(shù)對(duì)調(diào)的操作。源程序:#include<stdio.h>voidmain()tinta,b,t;printf(uInputtwointegers:n);scanf(“%d知”,&a,&b);t=a;a=b;b=t;prinf(u\na=%d,b=%d'',a,b);)替換完如下:#include<stdio.h>intmain()inta,b;printf("Inputtwointegers:");scanfC%d%d,z,&a,&b);a=a+b;b=a-b;a=a-b;printf(〃、na=%d,b二%d”,a,b);return0;)運(yùn)行結(jié)果:Inputtwointegers:59L=9,b=5.程序設(shè)計(jì)編寫并上機(jī)調(diào)試運(yùn)行能實(shí)現(xiàn)以下功能的程序。(1)編寫一個(gè)程序,輸入字符C,如果C是大寫字母,則將C轉(zhuǎn)換成對(duì)應(yīng)的小寫,否則C的值不變,最后輸出C〇源程序:#include<stdio.h>intmain(){charc;printf("Inputacharacterplease:\n");scanf("%c",&c);c=(c>=A'&&cく二'Z')?(c+32):(c);printf("%c",c);return0;運(yùn)行結(jié)果:(2)、編寫ー個(gè)程序,輸入無(wú)符號(hào)短整數(shù)x,m,n(0Wmく15,1WnW16-m),取出x從第m位開始向左的n位(m從右至左編號(hào)為〇?15),并使其向左端(第15位)靠齊。源程序:#include<stdio.h>intmain(){unsignedshortx,m,n;printf(z/pleaseenterthreeunsignedintegerx,m,n,〇く初く二15,1く=nく=m+l\n");scanf(〃%hd%hd%hd”,&x,&m,&n);x=x?(m-n+1)?(16~n);printf(,zthenewnumberis%u\nz,,x);return(0);)運(yùn)行結(jié)果:pleaseenterthreeunsignedintegerx,m,n,0<=n<=15,1<=n<=m+lア532thenewnumberis49152(3)、IP地址通常是4個(gè)用句點(diǎn)分隔的小整數(shù)(即點(diǎn)分十進(jìn)制),如32.55.1.102o這些地址在機(jī)器中用無(wú)符號(hào)長(zhǎng)整形表示。編寫ー個(gè)程序,以機(jī)器存儲(chǔ)的形式讀入ー個(gè)互聯(lián)網(wǎng)IP地址,對(duì)其譯碼,然后用常見的句點(diǎn)分隔的4部分的形式輸出。例如,整形676879571二進(jìn)制表示就是:00101000010110000101110011010011.按照8位ー組可表示為:408892211,由于CPU處理數(shù)據(jù)的差異,它的順序是顛倒的,所有最終格式為211.92.88.40。源程序:#include<stdio.h>#defineAOxffOOOOOO#defineBOxOOffOOOO#defineCOxOOOOffOO#defineDOxOOOOOOffintmain()(unsignedlongx;printf("InputtheIDplease:");scanf&x);printfr%lu.%lu.%lu.%lu",x&D,(x&C)?8,(x&B)?16,(x&A)?24);return0;運(yùn)行結(jié)果:InputtheIDplease:6768795710Word附加題(-)設(shè)計(jì)ー個(gè)程序,在字符模式下,以某個(gè)字符拼出“王”漢字圖形,顯示輸出。源程序:#include<stdio.h>voidmain(void){printf(〃*****\n");printf('*\n");printfC*\n〃);printf(〃*****\n");printf(〃*\n");printfC*\n");printf(〃*****\n");運(yùn)行結(jié)果:?Pressanykeytocontinue(二)輸入ー個(gè)華氏溫度,要求輸出攝氏溫度。公式為c=5/9*(f-32)。源程序:ttinclude<stdio.h>voidmain(void)floatf,c;scanf&f);if(f>0&&f<300){c=(5*(f-32))/9;printf("%.Of(F)=%.2f(c)\n”,f,c);}elseprintf(z/error\n,z);)運(yùn)行結(jié)果:00<F>=37.78<c>K>i*essanykeytocontinuejrror .PressanykeytocontinueH(三)設(shè)計(jì)3種算法,完成交換整型兩個(gè)變量值的程序。源程序:#include<stdio.h>voidmain(void)(intx,y,t;scanfC%d%d',&x,&y);printf("%d%d\n〃,x,y);t=x;x=y;y=t;printf(,z%d%d\n”,x,y);return0;)運(yùn)行結(jié)果:2552Pressanykeytocontinue源程序:#include<stdio.h>voidmain(void)(inta,b;scanfC%d%d,z,&a,&b);a=b-a;b=b-a;a=a+b;printf(,z%d%d\n”,a,b);return0;)運(yùn)行結(jié)果:56Pressanykeytocontinue源程序:#include<stdio.h>voidmain(void)ミinta,b;scanfC%d%dz,,&a,&b);a=ab;b=ba;a=ab;printf(〃%d%d\n”,a,b);)運(yùn)行結(jié)果:5665Pressanykeytocontinue(四)設(shè)計(jì)ー個(gè)程序,完成如下功能:輸出ー個(gè)三位數(shù),將它反向輸出。如輸入127,輸出721。源程序:#include<stdio.h>voidmain(void)intx,g,s,b;printf("輸入ー個(gè)三位數(shù)”);scanf("%d",&x);g=x%10;s=(x/10)%10;b=x/100;x=g*100+s*10+b;printf("%d\n',x);return0;}運(yùn)行結(jié)果:輸入一,ドニ位題89987Pressanykeytocontinue(五)設(shè)計(jì)2種完成計(jì)算MAX{x,y,z}的程序。源程序:#include<stdio.h>voidmain(void)(intx,y,z,m;scanf("%d%d%d”,&x,&y,&z);if(x>=y)m=x;elsem=y;if(m>=z)printf(〃max(x,y,z)二%d\n〃,m);else{printf("max(x,y,z)=%d\n",m);}運(yùn)行結(jié)果:L25689nax<xJ,y,z>=89Pressanykeytocontinue源程序:#include<stdio.h>voidmain(void)(intx,y,z;scanf("%d%d%d",&x,&y,&z);if(x>=y)if(x>=z)printf(z,%d\n",x);elseprintf("%d\n",z);elseif(y>=z)printf("%d\n",y);elseprintf("%d\n",z);運(yùn)行結(jié)果:12235656Pressanykeytocontinue(六)設(shè)計(jì)ー個(gè)程序,完成計(jì)算3個(gè)數(shù)的居中數(shù)。源程序:ttinclude<stdio.h>voidmain(void)(inta,b,c,t;scanf("%d%d%d”,&a,&b,&c);if((a>=b&&a<=c)||(a<=b&&a>=c))t=a;if((b>=a&&b<=c)II(b<=a&&b>=c))t=b;if((c>=a&&c<=b)II(c<=a&&c>=b))t=c;printfC%d\nz,,t);運(yùn)行結(jié)果:125689 №6128956 .6PressanykeytocontinueHPressanykeytocontinuePressanykeytocontinue(七)設(shè)計(jì)計(jì)算一元二次方程的根的程序。源程序:#include<stdio.h>#include<math.h>voidmain(void){floata,b,c,d,xl,x2;printf(”請(qǐng)輸入一元二次方程的系數(shù)a,b,c\n");scanf &a,&b,&c);if(a==0)if(b!=0)printf(z/error\nz/);elseprintf(z,xcanbeanynumber!\nzz);else{d=b*b-4*a*c;if(d<0)printf(zzerror\nzz);else{xl=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("%.2f%.2f\n”,xl,x2);運(yùn)行結(jié)果:青輸入一元二次方程的系數(shù)aXc323青輸入一元二次方程的系數(shù)aXc32351*1*01*Pressanykeytocontinue請(qǐng)輸入一元二次方程的系數(shù)aXc002xcanbeanynumber?Pressanykeytocontinue晴輸入一元二次方程的系數(shù)a.b.cT-2.00-1.00ressanykeytocontinue(ハ)根據(jù)任意三角形的面積公式(海倫公式):S=Vp(p-a)(p-b)(p-c),其中,p=(a+b+c)/2,a.b.c為三角形三邊,設(shè)計(jì)ー個(gè)程序計(jì)算任意三角形的面積。源程序:#include<stdio.h>#include<math.h>voidmain(void)doublea,b,c,p,s;printf("輸入三角形的三邊'n");scanf(*%lf%lf%lf*,&a,&b,&c);if(a+b〉c&&a+c〉b&&b+c>a)(p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printfく’%.2f\n",s);)elseprintf("errror!\n");}運(yùn)行結(jié)果:輸入三角形的三邊 熟人三角形的三邊345 型236.00 Herrror!Press any key tocontinueHPressany key tocontinui2.3實(shí)驗(yàn)小結(jié)接觸c語(yǔ)言還沒(méi)有太長(zhǎng)時(shí)間,句法還未完全熟悉,總是漏掉應(yīng)有的符號(hào),以后再編寫程序時(shí)要耐心、細(xì)心,不要等到程序出錯(cuò)時(shí)再返工糾錯(cuò)。在算法的構(gòu)思方面,思維還是太狹窄,導(dǎo)致代碼繁瑣難懂,在構(gòu)思算法方面還需通過(guò)多寫多思考來(lái)加強(qiáng)。另外,我覺得在scanf語(yǔ)句中真的不能忘掉地址符,少了一個(gè)它真的對(duì)程序影響很大。學(xué)號(hào)C語(yǔ)言最重要的就是培養(yǎng)編程興趣和養(yǎng)成好的編程習(xí)慣,希望在以后的學(xué)習(xí)過(guò)程中能不斷進(jìn)步。3第二次實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?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)編寫程序。(3)練習(xí)轉(zhuǎn)移語(yǔ)句和標(biāo)號(hào)語(yǔ)句的使用。(4)使用集成開發(fā)環(huán)境中的調(diào)試功能:單步執(zhí)行、設(shè)置斷點(diǎn)、觀察變量值。實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)教材題1.源程序改錯(cuò)下面是計(jì)算s=n!的源程序,在這個(gè)源程序中存在若干語(yǔ)法和邏輯錯(cuò)誤。要求在計(jì)算機(jī)上對(duì)這個(gè)例子源程序進(jìn)行調(diào)試修改,使之能夠正確完成指定任務(wù)。例如,8!=40320〇源程序:#include<stdio.h>intmain()(inti,n,s=l;printf(,zPleaseentern:〃);scanf(〃/d〃,n);for(i=l,i<=n,i++)s=s*i;printf(〃%d!=%d〃,n,s);}return0;修改完了之后:#include<stdio.h>intmain(){inti,n,s=l;printf(z,Pleaseentern:〃);scanf("%d",&n);for(i=l;i<=n;i++)s二s*i;printf(〃%d!二%d",n,s);return0;運(yùn)行結(jié)果如下:Pleaseentern:8B!-40320.源程序修改替換(1)修改上述計(jì)算s=n!的源程序,要求分別用while和do-while語(yǔ)句替換for語(yǔ)句。源程序:While語(yǔ)句:#include<stdio.h>intmain()(intn,i;ints=l;printf(z,Pleaseentern:");scanf(,z%dz,,&n);二n;while(n>0)(s=s*n;n二n一!.;)printf(zz%d!=%d,z,i,s);return0;Dowhile語(yǔ)句:#include<stdio.h>intmain()iintn,i;ints=l;printf(zzPleaseentern:〃);scanf(〃/d〃,&n);i=n;do{s*=n;n=n-l;)while(n>0);printf(z/%d!=%dz,,i,s);return0;)運(yùn)行結(jié)果:Inputtwointegers-59a=9,b=5(2)修改上述計(jì)算s=n!的源程序,要求輸入改為“整數(shù)S”,輸出改為“滿足的最小整數(shù)n”。例如,輸入整數(shù)為40310,輸出結(jié)果為n=8。源程序:#include<stdio.h>intmain()iints;inti=l,n=l;printf(Z/Pleaseenters:");scanf("%d〃,&s);i=n;do{i=i*n;n=n+l;)while(i<s);printf("%d",nT);return0;}運(yùn)行結(jié)果:Pleaseenters:4031.0x.程序設(shè)計(jì)編寫并上機(jī)調(diào)試運(yùn)行能實(shí)現(xiàn)以下功能的程序。(1)假設(shè)エ資稅金按以下方法計(jì)算:x<1000元,不收取稅金;,收取5%的稅金;,收取10%的稅金;,收取15%的稅金;,收取20%的稅金;,收取25%的稅金。編寫ー個(gè)程序,輸入工資金額,輸出應(yīng)收取稅金額度,要求分別用if語(yǔ)句和switch語(yǔ)句來(lái)實(shí)現(xiàn)。源程序:IF語(yǔ)句#include<stdio.h>intmain(){floatx,y;printf("Inputasalarynumber\n");scanf&x);if(x<1000&&x!=1000)y=x;if((x-1000)*(x-2000)<=0&&x!=2000)y=(x-1000)*0.05;if((x-2000)*(x-3000)<=0&&x!=3000)y=(x-2000)*0.10+50;if((x-3000)*(x-4000)<=0&&x!=4000)y=(x-3000)*0.15+150;if((x-4000)*(x-5000)<=0&&x!=5000)y=(x-4000)*0.20+300;if(x>=5000)y=(x-5000)*0.25+500;printf("Thesalarytaxis%g",y);return0;Switch語(yǔ)句#include<stdio.h>intmain()floatx,y;printf("'Inputasalarynumber\n,z);scanf&x);if(x>=5000)printfC%g*,y=(x-5000)*0.25+500);elseswitch((int)(x/1000))case4:printfCThesalarytaxis龍",y=(x-4000)*0.20+300);break;case3:printf(z,Thesalarytaxis%g",y=(x-3000)*0.15+150);break;case 2:printf("Thesalarytaxis%g",y=(x-2000)*0.10+50);break;case1:printf("Thesalarytaxis%g",y=(x-1000)*0.05);break;case0:printf(,zThesalarytaxisy=x);break;}return0;}運(yùn)行結(jié)果:Inputasalarynumbei*2345Thesalarytaxis84.5(2)編寫ー個(gè)程序,將輸入的一行字符復(fù)制到輸出,復(fù)制過(guò)程中將一個(gè)以上的空格字符用ー個(gè)空格代替。源程序:#include<stdio.h>enum{copy,start,end);intmain()charc;intstate=copy;printf(z,inputatextendofCtrl+z:\n〃);while((c=getchar())!=EOF)switch(state){casecopy:if(c==''){printf(z,zz);state=start;}elseputchar(c);break;casestart:if(c==,')state=end;elsestate=copy;break;caseend:if(c!=一){putchar(c);state=copy;jbreak;}return0;)運(yùn)行結(jié)果:inputatextendofCtrl?z:asdfgghjghjasdfghjghj(3)編寫一個(gè)程序,打印如下的楊輝三角形。TOC\o"1-5"\h\z1 2 113 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 2856705628 8 11 9 36 84 126 126 84 36 9 1每個(gè)數(shù)據(jù)值可以由組合(表示第i行第j列位置的值),而的計(jì)算如下:(i=0,1,2,???)(j=0,1,2,3,…,i)說(shuō)明:本程序中為了打印出金字塔效果,要注意空格的數(shù)目。一位數(shù)之間是3個(gè)空格,兩位數(shù)之間有2個(gè)空格,3位數(shù)之間只有一個(gè)空格,程序編制過(guò)程中要注意區(qū)分。源程序:#include<stdio.h>ttdefineN10voidmain()(unsignedinti,j,k;unsignedintb,c;for(i=0;i<N;i++)(for(j=N;j>i;j—)printf("");for(j=0;j<=i;j++)(b=c=l;if(j>=l)(for(k=i-j+l;k<=i;k++)b*=k;for(k=l;k<=j;k++)c*=k;)printf("%4d”,b/c);}printf("\n");運(yùn)行結(jié)果:(4)編寫ー個(gè)程序,將用戶輸入的任意正整數(shù)逆轉(zhuǎn)。例如,輸入1234,輸出4321〇源程序:#include<stdio.h>intmain()(inta;printfCinputaninteger'n");scanf("%d",&a);while(a!=0)(printf(*%d*,a%10);a=a/10;)return0;運(yùn)行結(jié)果:inputaninteger12344321 Word附加題(九)設(shè)計(jì)一個(gè)計(jì)算個(gè)人所得稅的程序。源程序:#include<stdio.h>intmain(void)
floatx,y;printf("輸入所得的工資\n〃);scanf&x);if(x<=3500)y=0;elseif((x-3500)<=1500)y=(x-3500)*0.03;elseif((x-3500)<=4500)y=(x-3500)*0.1-105;elseif((x-3500)<=9000)y=(x-3500)*0.2-555;elseif((x-3500)<=35000)y=(x-3500)*0.25-1005;elseif((x-3500)<=55000)y=(x-3500)*0.3-2755;elseif((x-3500)<=80000)y=(x-3500)*0.35-5505;elsey=(x-3500)*0.45-13505;printf(/z%.2f\n",y);return0;運(yùn)行結(jié)果:輸入所得的工資1000輸入所得的工資10000.00Pressanykeytocontinue輸入所得的工資500045.00Pressanykeytocontinue輸入所得的工資8000345.00輸入所得的工資8000345.00Pressanykeytocontinue輸入所得的工資120001145.00Pressanykeytocontinue輸入所得的工資35000輸入所得的工資350006870.00Pressanykeytocontinue輸入所得的工資5500012695.00Pressanykeytocontinue輸入所得的工資8000021270.00Pressanykeytocontinue(十)計(jì)算兩個(gè)自然數(shù)的最大公約數(shù)和最小公倍數(shù)。算法思想:利用輾轉(zhuǎn)相除發(fā)得到兩個(gè)自然數(shù)的最大公約數(shù),再利用最大公約數(shù)和最小公倍數(shù)的關(guān)系得到最小公倍數(shù),設(shè)置ー個(gè)變量,將每次相除所得的余數(shù)儲(chǔ)存其中,再將各個(gè)值交換,依次循環(huán),得到最大公約數(shù)。源程序:#include<stdio.h>intmain(void)(intx,y,a,b,r;do{printf(,zinputx,yisN\n〃);scanf &x,&y);}while((x<l)II(y<D);if(x<=y)y=x;x=a;)b=x*y;r=x%y;while(r!=0)x=y;y=r;r=x%y;b=b/y;printf(z,%d%d\n”,y,b);return0;}運(yùn)行結(jié)果:inputx,yisN56124168Pressanykeytocontinue(十一)輸入ー個(gè)數(shù)n(22),判定n是否為素?cái)?shù)。。算法思想設(shè)立一個(gè)循環(huán),將1到sqrtn(n)分別整除n如果跳出循環(huán)時(shí)還沒(méi)有循環(huán)到sqrt(n),則N不為素?cái)?shù),否則N為素?cái)?shù)。源程序:#include<stdio.h>#include<math.h>intmain(void){intn,i,j,r;do{printf(z/inputn:\n");scanf(〃%d〃,&n);}while(n<2);if(n==2)elseif(n>2){i=l;j=sqrt(n);do{++i;r=n%i;}while(r&&i<=j);)if(r)printf(〃%disaprime'n”,n);
elseprintfC%delseprintfC%disnotaprime\n〃,n);return0;)運(yùn)行結(jié)果:inputn: input n:2 252isaprime 25is not a primePressany keytocontinueP**ess any key to continueinput,n:iI)putn:771:apr11H*Pressanykeytocontinue(十二)輸出2—100范圍內(nèi)的所有素?cái)?shù)。要求:不使用子函數(shù)。算法思想:從2到200設(shè)立一個(gè)大循環(huán),循環(huán)到N時(shí),再設(shè)立一個(gè)循環(huán),將1到sqrtn(n)分別整除n如果跳出循環(huán)時(shí)還沒(méi)有循環(huán)到sqrt(n),則N不為素?cái)?shù),否則N為素?cái)?shù)。源程序:#include<stdio.h>#include<math.h>intmain(void)(intn,i,j,r;for(n=2;n>=2&&n<=100;n=++n){if(n==2)n=n;elseif(n>2){i=l;j=sqrt(n);do{++i;r=n%i;}while(r&&i<=j);)if(r)printf("%4d〃,n);)printf(z,%\n/z);}運(yùn)行結(jié)果:2 3 5 7111317192329313741434753596167717379838997'ressanykeytocontinue(十三)輸出九九乘法口訣表源程序:#include<stdio.h>intmain(void){inti,n;for(i=l;i<=9;i++)(for(n=l;n<=9;n++)(printf(*%d*%d=%2.Od”,n,i,i*n);if(n==9)printf("\n");}))運(yùn)行結(jié)果:
2*5=10
2*6=12
2*7=14
2*fi=16
2*9=18
anukeyto3*1=33*2=63*3=93*4=123*5=153*6=183*7=213*8=243*9=274*1=44*2=84*3=124*4=164*5=204*6=244*7=284*8=324*9=365*1=55*2=105*3=155*4=205*5=255*6=305*7=355*8=405*9=45?1?2*3*46*5=306*6=362*5=10
2*6=12
2*7=14
2*fi=16
2*9=18
anukeyto3*1=33*2=63*3=93*4=123*5=153*6=183*7=213*8=243*9=274*1=44*2=84*3=124*4=164*5=204*6=244*7=284*8=324*9=365*1=55*2=105*3=155*4=205*5=255*6=305*7=355*8=405*9=45?1?2*3*46*5=306*6=366*7=426*8=486*9=547*1=77*2=147*3=217*4=287*5=357*6=427*7=497*8=567*9=638*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=648*9=72continue3.3實(shí)驗(yàn)小結(jié)通過(guò)幾個(gè)禮拜的c語(yǔ)言的學(xué)習(xí),難度也開始不斷加深了,尤其是九九乘法表ー題,雖然在算法上不是很難,但是整個(gè)流程非??简?yàn)?zāi)托呐c細(xì)心。另外,感覺自己比較偏愛if和for語(yǔ)句,在switch語(yǔ)句和do-while語(yǔ)句的掌握上還比較薄弱,以后還得多加操練。4第三次實(shí)驗(yàn)4.1實(shí)驗(yàn)?zāi)康?1)熟悉和掌握函數(shù)的定義、聲明,函數(shù)調(diào)用與參數(shù)傳遞方法,以及函數(shù)返回值類型的定義和返回值使用。(2)熟悉和掌握不同存儲(chǔ)類型變量的使用。(3)熟悉多文件編譯技術(shù)。4.2實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)教材題.源程序改錯(cuò)下面是計(jì)算s=l!+2!+3!+…+n!的源程序,在這個(gè)源程序中存在若干語(yǔ)法和邏輯錯(cuò)誤。要求在計(jì)算機(jī)上對(duì)這個(gè)例子源程序進(jìn)行調(diào)試修改,使之能夠正確完成指定任務(wù)。源程序:ttinclude<stdio.h>intmain(void)(intk;for(k=l;k<6;k++)printf(z,k=%d\tthesumis%ld\n,z,k,sum_fac(k));}return0;longsum_fac(intn)(longs=0;inti;longfac;for(i=l;i<=n;i++)fac*=i;s+=fac;returns;}修改完了之后:ftinclude<stdio.h>longsum_fac(intn);intmain(void)(intk;for(k=1;kく6;k++)printf(〃k二%d\tthesumis%ld\n〃,k,sum_fac(k));return0;}longsum_fac(intn)longs=0;inti;longfac=l;for(i=l;i<=n;i++){fac*二i;s+=fac;returns;運(yùn)行結(jié)果:k-1thesumis1卜=2thesumis3thesumis9k=4thesumis33k?5thesumis153.源程序修改替換(1)修改上述源程序中的sum_fac的函數(shù),使其計(jì)算量最小。源程序:ttinclude<stdlib.h>longsum_fac(intn);intmain()(intk;for(k=l;k<6;k++)printf("k二%d\tthesumis%ld\nz/,k,sum_fac(k));return0;)longsum_fac(intn){longsニ〇;inti=l;longfac=l;while(i<=n){s+=(fac?二i);i++;returns;運(yùn)行結(jié)果:(2)修改上述源程序中的sum-fac的函數(shù),計(jì)算源程序:#include<stdlib.h>doublesum_fac(intn);intmain()(int
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 華為會(huì)議課件
- 廣州高職高考數(shù)學(xué)試卷
- 2025年中國(guó)吹水機(jī)行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資方向研究報(bào)告
- 2018-2024年中國(guó)味精行業(yè)市場(chǎng)深度調(diào)查評(píng)估及投資方向研究報(bào)告
- 健康科普宣傳的意義
- 融媒體中心內(nèi)部管理及績(jī)效考核辦法
- 葛洲壩集團(tuán)應(yīng)急管理辦法
- 虹口區(qū)倉(cāng)儲(chǔ)配送管理辦法
- 融資性公司管理暫行辦法
- 衡陽(yáng)市審計(jì)現(xiàn)場(chǎng)管理辦法
- 【高一下】連云港市2024~2025學(xué)年第二學(xué)期高一語(yǔ)文期末調(diào)研考試含答案
- 卡片設(shè)計(jì)模板核心要素
- 事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度培訓(xùn)
- 北京市豐臺(tái)區(qū)2025屆小升初考試數(shù)學(xué)試卷(無(wú)答案)
- 安全生產(chǎn)標(biāo)準(zhǔn)化全套檔案
- 第1課+中國(guó)古代政治制度的形成與發(fā)展(情境化教學(xué)課件)+歷史統(tǒng)編版選擇性必修1
- 輕型卒中臨床診療中國(guó)專家共識(shí)解讀
- 安全生產(chǎn)知識(shí)培訓(xùn)試題及答案
- 2025玉林市陸川縣事業(yè)單位考試歷年真題
- 2025年河北省中考?xì)v史試卷(含答案解析)
- 【課件】運(yùn)動(dòng)的描述.課件-2024-2025學(xué)年人教版物理八年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論