



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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語言程序設(shè)計(jì)專業(yè)班級(jí): 信息安全1302班學(xué)號(hào): U201315142姓名: 陳天陽指導(dǎo)教師: 周時(shí)陽報(bào)告日期: 2014年6月16日計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院目錄TOC\o"1-5"\h\z\o"CurrentDocument"1實(shí)驗(yàn)概述 1\o"CurrentDocument"2第一次實(shí)驗(yàn) 1\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?1\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 2\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 9\o"CurrentDocument"3第二次實(shí)驗(yàn) 10\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?10\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 10\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 154第三次實(shí)驗(yàn) 16\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?16\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 16\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 22\o"CurrentDocument"5第四次實(shí)驗(yàn) 23\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?23\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 23\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 276第五次實(shí)驗(yàn) 281實(shí)驗(yàn)?zāi)康?28\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 29\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 39\o"CurrentDocument"7第六次實(shí)驗(yàn) 40\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?40\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 40\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 48\o"CurrentDocument"8第7次實(shí)驗(yàn) 48\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?48\o"CurrentDocument"8.2實(shí)驗(yàn)內(nèi)容 48\o"CurrentDocument"9實(shí)驗(yàn)總結(jié) 74\o"CurrentDocument"參考文獻(xiàn) 1351實(shí)驗(yàn)概述C語言是目前全球范圍內(nèi)流行和使用最為廣泛的ー種程序設(shè)計(jì)語言。運(yùn)用C語言進(jìn)行上機(jī)操作能培養(yǎng)我們的實(shí)際動(dòng)手能力,即培養(yǎng)了跟蹤程序、設(shè)置斷點(diǎn)、調(diào)試程序的能力,排除程序中的語法、邏輯方面錯(cuò)誤與故障的能力,并養(yǎng)成細(xì)致、周密、嚴(yán)謹(jǐn)?shù)木幊套黠L(fēng)。本實(shí)驗(yàn)報(bào)告主要內(nèi)容包括7次上機(jī)實(shí)驗(yàn)內(nèi)容:第一次上機(jī)實(shí)驗(yàn)主要是熟悉code:blocks等的c語言程序的開發(fā)環(huán)境;掌握c程序的編輯、編譯、鏈接和運(yùn)行方法;通過運(yùn)行簡(jiǎn)單的c語言程序,學(xué)會(huì)在集成開發(fā)環(huán)境中調(diào)試程序的方法;運(yùn)用簡(jiǎn)單的語句、結(jié)果解決簡(jiǎn)單的實(shí)際問題。第二、三次上機(jī)實(shí)驗(yàn)主要是掌握選擇語句以及三種循環(huán)語句,尤其是它們之間的嵌套。綜合運(yùn)用各種語句設(shè)計(jì)程序;學(xué)會(huì)用程序工具處理數(shù)學(xué)問題;掌握程序直接無法解決問題的間接解決,設(shè)計(jì)更加貼切的算法與程序,善于利用循環(huán)及相應(yīng)的數(shù)學(xué)知識(shí)。第四、五次上機(jī)實(shí)驗(yàn)主要是掌握用遞歸方法、調(diào)用函數(shù)法來進(jìn)行程序設(shè)計(jì);學(xué)會(huì)設(shè)計(jì)被調(diào)用函數(shù),能正確地調(diào)用函數(shù);掌握宏運(yùn)算的定義、用法,學(xué)會(huì)用宏處理實(shí)際問題,設(shè)計(jì)程序。第六次上機(jī)實(shí)驗(yàn)主要是掌握數(shù)組的創(chuàng)建,賦值,和函數(shù)的編寫,并通過指針傳遞在函數(shù)中對(duì)數(shù)組進(jìn)行改變;掌握ー維數(shù)組作為函數(shù)參數(shù)時(shí)參與形參的用法。第七次上機(jī)實(shí)驗(yàn)主要是初步了解文件的讀寫,熟悉和掌握動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu) 鏈表的創(chuàng)建與修改。而后面的《C語言實(shí)驗(yàn)課程設(shè)計(jì)》部分的實(shí)驗(yàn)內(nèi)容則是我們自己課下自己練習(xí)、鞏固C語言知識(shí)點(diǎn)和編程技巧之用。里面前面部分比較簡(jiǎn)單,雖然部分題目涉及到了算法設(shè)計(jì)等高級(jí)課程。面最后ー題,要求的是系統(tǒng)工程的構(gòu)建,由于時(shí)間不足,經(jīng)驗(yàn)不夠,便是沒有進(jìn)行練習(xí)。對(duì)于本學(xué)期的上機(jī)實(shí)驗(yàn),作為記錄的實(shí)驗(yàn)報(bào)告顯得尤為重要。它記錄的我們寫代碼過程的點(diǎn)點(diǎn)滴滴:疑惑,思索,探究與嘗試。同時(shí)也反映了我們學(xué)習(xí)C語言不斷進(jìn)步的過程。希望以本學(xué)期程序設(shè)計(jì)為ー個(gè)良好的開端,為自己以后的學(xué)習(xí)打下ー個(gè)良好的基礎(chǔ),非常感謝老師和同學(xué)的幫助,オ讓我順利完成了本學(xué)期的實(shí)驗(yàn)任務(wù)。2第一次實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康?掌握基本輸入輸出語句用法。.完成簡(jiǎn)單的計(jì)算任務(wù)。.懂得頭文件的意義與使用方法。2.2實(shí)驗(yàn)內(nèi)容(一)設(shè)計(jì)ー個(gè)程序,在字符模式下,以某個(gè)字符拼出“王”漢字圖形,顯示輸出。程序代碼:#include<stdio.h>intmain()(printf(,,OOOOOOOOOOOOOOOOOOOOOO\nM);printf("print-printf(H00 \nM);00 \nM);00 \nM);printf(,,OOOOOOOOOOOOOOOOOOOOOO\nH);printf("printf("print*"00 \n");00 \n");00 \n");printf(MOOOOOOOOOOOOOOOOOOOOOO\nn);return0;} 輸出效果:MaCFTOymming\Source\Fir$t\Expril.exe .0000000。鳶歸而Beeeee0000000000000000000000000000000000(-)輸入ー個(gè)華氏溫度,要求輸出攝氏溫度。公式為c=5/9*(f?32)。程序代碼:#include<stdio.h>intmain()(floatHua=5.0;scanfCW.&Hua);printf(M%F\5.0/9*(Hua?32));return0;
輸出效果:F*■E:\C.Programm?ng\§ource\Fir5t\Ej(pri2e9S- --J4s7.222222Processreturned0<0x0>executiontine:8.050sPressanykeytocontinue.(三)設(shè)計(jì)3種算法完成交換整形兩個(gè)變量值的程序。算法思想:算法一:尋找另ー變量作為中間變量完成交換。算法二:取a、b之間的差值對(duì)a和b進(jìn)行四則運(yùn)算,完成a、b的交換。算法三:根據(jù)ー數(shù)與另ー數(shù)異或兩次后仍得原數(shù)的規(guī)律,將a、b值進(jìn)行交換。程序代碼:算法ー#include<stdio.h>intmain(){inta,b,c;scanf("%d,%d”,&at&b);c=b;b=a;a=c;printf("a=%d,b=%d\n”,a,b);return0;)算法二:#include<stdio.h>intmainO(inta,b;scanfC%d,%d",&a,&b);a=a+b;b=a-b;a=a-b;printf("a=%d,b=%d\n”,a,b);return0;)
算法三:#include<stdio.h>intmain(){inta,b;scanf("%d,%d",&a,&b);a*=b;b*=a;a八二b;printf("a=%d,b=%d”,a,b);return0;輸出效果:■E:\C.Programming\Scxjrce\First\Expri33.exe戸a-9,b*5Processreturned0<0x0>executiontiwe:3.058sPressanykeytocontinue.(四)設(shè)計(jì)ー個(gè)程序,完成如下功能:輸出ー個(gè)三位數(shù),將他反向輸出。如輸入123,輸出321〇程序代碼:#include<stdio.h>intmain(){inta;scanf("%d",&a);a=100*(a%10)+((a%100)-(a%10))+(a/100);printf("a=%d",a);return0;輸出效果:(五)設(shè)計(jì)兩種完成計(jì)算max{x,y,z}的程序。算法思想:算法一:使用傳統(tǒng)if語句.算法二:使用三目運(yùn)算語句()?():()進(jìn)行計(jì)算。程序代碼:算法一:#include<stdio.h>intmain()(intx,y,z;scanf(,,%d,%d,%d,,,&x,&y,&z);if(x>y)y=x;elseif(y>z)z=y;printf(M%dM,z);return0;)算法二:#include<stdio.h>intmainO(intx,y,z;scanf(*%d,%d,%d",&x,&y,&z);x=(x>y)?x:y;z=(x>z)?x:z;printf("%d”,z);return0;輸出效果:輸出效果:134.1233.5421233Processreturned0<0x0>Pressanykeytocontinue.executiontine:4.805s(六)設(shè)計(jì)ー個(gè)程序,完成計(jì)算三個(gè)數(shù)的居中數(shù)。程序代碼:#includeくstdio.h>intmain()(intx,y,z;scanf(*%d,%d,%d",&x,&y,&z);if(x>y){xへ=y;yへ=x;X*=y;}if(y>z)(y*=z;z八二y;y*=z;)if(y<x)y=x;printf('%d”,y);return0;)輸出效果:>E:\C.ProgramminQ\Source\first\Expri6.exe,23.43.2343Processreturned0<0x0>executiontine:4.618sPressanykeytocontinue.(七)設(shè)計(jì)計(jì)算一元二次方程組的根的程序。算法思想:根據(jù)所掌握的一元二次方程求解的數(shù)學(xué)知識(shí),將其轉(zhuǎn)化為C語言進(jìn)行表達(dá),用求根公式進(jìn)行計(jì)算,并對(duì)各種情況進(jìn)行預(yù)測(cè)。程序代碼:#include<stdio.h>#include<math.h>intmainO(floata,b,c,x,y;printf(*Pleaseinputthestatisticsastheformatヽ"x,y,z\"\n);scanf("%f,%f,%f",&a,&b,&c);if(a==0){if(b==0)(printf("Nosolution!\n");return1;)else(x=-c/b;printf("x=%f",x);return0;))if((b*b-4*a*c)<0){y=(-b)/(2*a);x=sqrt(-b*b+4*a*c)/(2*a);printf("xl=%.3f+%.3fix2=%.3f-%.3fi",y,x,y,x);)elseif((b*b-4*a*c)=0)=(-b)/(2*a);printf(<xl=x2=%.3f”,x);)else(x=(-b+sqrt(b*b-4*a*c))/(2*a);printf(*xl=%.3f”,x);x=(-b-sqrt(b*b-4*a*c))/(2*a);printf("x2=%.3f",x);}return0;)輸出效果:(ハ)根據(jù)任意三角形的面積公式(海倫公式):s二根號(hào)下p(p-a)(p?b)(p?c),其中,p=(a+b+c)/2,abc為三角形的三條邊,設(shè)計(jì)ー個(gè)程序計(jì)算任意三角形的面積。算法思想:首先對(duì)用戶輸入的三條邊長(zhǎng)進(jìn)行判斷,判斷其是否可組成三角形,再進(jìn)行計(jì)算。程序代碼:#include<stdio.h>#include<math.h>intmainO(floata,b,c,s,p;scanf("%f,%f,%f",&a,&b,&c);if(!(((a+b)>c)&&((a+c)>b)&&((b+c)>a)))(printf("Error\n");return0;)else{p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("S=%f",s);}return0;
輸出效果:S-6.000000輸出效果:S-6.000000Processreturned0<0x0>executiontine:1.903sPressanykeytocontinue.2.3實(shí)驗(yàn)小結(jié)通過實(shí)驗(yàn),掌握了最基本的輸入輸出語句用法并且能夠利用C語言進(jìn)行簡(jiǎn)單的計(jì)算。實(shí)現(xiàn)了最基本的C語言運(yùn)用,在試驗(yàn)中出現(xiàn)的問題也使得自己對(duì)于C語言有了更加深刻的理解。課上學(xué)到的只是在實(shí)驗(yàn)中融會(huì)貫通。3第二次實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?利用C語言解決實(shí)際問題。.學(xué)會(huì)利用網(wǎng)絡(luò)對(duì)不熟悉的知識(shí)加以利用。.熟悉各種循環(huán)語句的使用環(huán)境和使用方法。.2實(shí)驗(yàn)內(nèi)容(一)設(shè)計(jì)ー個(gè)計(jì)算個(gè)人所得稅的程序。算法思想:首先借助互聯(lián)網(wǎng)了解最新的稅收辦法,再編寫算法。程序代碼:#include<stdio.h>intmain(){floatshb,salary,sum=O;//shb為個(gè)人繳納的社會(huì)保險(xiǎn)和住房公積金intflag;printf(f>InputyoursalarythismonthandyourSheHuiBaoXiao,please!\nn);scanf(M%f,%fH,&salary,&shb);salary=salary-shb-3500;if(salary<=0)flag=0;elseif(salary>80000)flag=7;elseif(salary>55000)flag=6;elseif(salary>35000)flag=5;elseif(salary>9000)flag=4;elseif(salary>4500)nag=3;elseif(salary>1500)flag=2;elseif(salary>0)flag=1;switch(flag){case〇:{sum=0;break;)case7:{flag-=1;sum=(salary?80000)*045-13505;salary=80000;}case6:{flag-=1;sum+=(salary-55000)*0.35-5505;salary=55000;}case5:{flag-=1;sum+=(salary-35000)*0.3-2755;salary=35000;)case4:{flag-=1;sum+=(salary-9000)*0.25-1005;salary=9000;}case3:{flag-=1;sum+=(salary-4500)*0.2-555;salary=4500;)case2:{flag-=1;sum+=(salary-1500)*0.1-105;salary=1500;}case1:{sum+=salary*0.03;break;))printf(MThetaxis%.2f\sum);return0;輸出效果:■E:\C_Programming\Source\Second\Expir9.exe I、D|凹Inputyoui*salarythismonthand901IオSheHuiBaoXiao,please?1234,55Thetaxis0.00Processreturned0<0x0>executiontime:6.521sPressanykeytocontinue.ァし\C_Programming\Source\Second\Expir9.exe [01回InputyoursalarythismonthandyourSheHuiBaoXiao,please?12331,433Thetaxis464.60Processreturned0<0x0>executiontime:3.448sPressanykeytocontinue.(二)計(jì)算兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)。算法思想:最大公約數(shù):從i=2開始進(jìn)行對(duì)要求解的兩數(shù)進(jìn)行循環(huán)計(jì)算,計(jì)算兩數(shù)對(duì)i能否整除,若能,輸出i,結(jié)束循環(huán),否則,將i加1繼續(xù)計(jì)算,直到1等于兩數(shù)中的最小數(shù)。最小公倍數(shù):從i等于兩數(shù)中的最大數(shù)開始進(jìn)行循環(huán)計(jì)算,計(jì)算i是否能整除兩數(shù),若能,輸出i,結(jié)束循環(huán),否則,i+1繼續(xù)循環(huán)知道i能給整除兩數(shù)。程序代碼:Sinclude<stdio.h>intmain()(inta,b,c,d,e;scanf("%d,%d",&a,&b);d=a;e=b;if(a>b){a*=b;bへ二a;a*=b;}while(b%a!=0)(c=b%a;b=a;a=c;}printfiGongbeishushi%d\n',a);d=d/a;e=e/a;d=d*e*a;printfiGongyueshishi%d\n”,d);
return0;輸出效果:■E:\C_Programming\Source\Second\Expril0.exe34,33GongbeishushiGongyueshishi11122ProcessreturnedPressanykeytocontinue.■E:\C_Programming\Source\Second\Expril0.exeI回?234,343Gongbeishushi1Gongyueshishi80262Processreturned0<0x0>Pressanykeytocontinue.executiontime5.351s(三)輸入一個(gè)數(shù)n(>=2),判定n11122ProcessreturnedPressanykeytocontinue.■E:\C_Programming\Source\Second\Expril0.exeI回?234,343Gongbeishushi1Gongyueshishi80262Processreturned0<0x0>Pressanykeytocontinue.executiontime5.351s(三)輸入一個(gè)數(shù)n(>=2),判定n是否為素?cái)?shù)。算法思想:從i=2開始進(jìn)行循環(huán)計(jì)算,計(jì)算!!是否可以整除i若能,判斷i是否小于n,若小于,則n不是素?cái)?shù),若i小于n時(shí)不能被n整除,則n是素?cái)?shù)。程序代碼:#include<stdio.h>#include<math.h>intmain(){intn,qn,k,i;scanf(M%dH,&n);if(2==n){printf(nShisushun);return0;}qn=(int)sqrt(n);k=0;for(i=2;i<=qn;i++)(if(0==n%i){k=l;break;}if(O==k)printf(MShisushuM);elseprintf(nBushisushu**);return0;}輸出效果:E:\C_Programming\Source\Second\Exprill.exeBushisushuProcessreturned0<0x0>executiontime:1.513sPressanykeytocontinue.E:\C_Programming\Source\Second\Exprill.exe97ShisushuProcessreturned0<0x0>executiontime:1.794sPressanykeytocontinue.(四)輸出2-100范圍內(nèi)的所有素?cái)?shù)。要求:不使用子函數(shù)。算法思想:定義兩次循環(huán),外層對(duì)n進(jìn)行循環(huán),內(nèi)層用上題算法進(jìn)行判斷,若n是素?cái)?shù),則輸出。程序代碼:#include<stdio.h>#include<math.h>intmain()(intn,qn,k9i;printf(M2H);for(n=3;n<=100;n++){qn=(int)sqrt(n);k=0;for(i=2;i<=qn;i++)(if(0==n%i){k=1;break;)}if(O==k)printfC'%d”,n);}return0;
)輸出效果:■T5E:\C_Programming\Source\Second\Expnl2.exe |ii?Fl23S711131719—23293137414347535961677173 079838997Processreturned0<0x0>executiontine:0.047sPressanykeytocontinue?(五)輸出九九乘法口訣表。算法思想:對(duì)i*n的形式定義兩次循環(huán),首先對(duì)n進(jìn)行循環(huán),從1開始到9結(jié)束,再對(duì)i=l進(jìn)行循環(huán)直到i=n,并在每次對(duì)i循環(huán)時(shí)輸出ー個(gè)運(yùn)算式,每次對(duì)n進(jìn)行循環(huán)時(shí)換行。程序代碼:#include<stdio.h>intmain(){for(inti=1;i<=9;i++){for(intj=l;j<=i;j++){printf(M%2dx%2d=%2du,ij,i*j);)printf(M\nH);)return0;}輸出效果:■E:\C.Programming\Source\Second\Expnl3.exelx1-12x1-22x2?43x1-33x2-63x3-94x1-44x2-84x3-124x4-16Sx1-5Sx2-10Sx3-ISSx4-20Sx5-256x1-66x2,126x3-186x4-246x5-306x6-367x1-77x2-147x3-217x4-287x5-357x6,427x7-498x1-88x2-168x3-248x4-328x5-408x6-488x7-569x1-99x2-189x3-279x4-369x5-459x6-549x7-638x8-649x8-729x9-813.3實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),學(xué)會(huì)了利用C語言解決實(shí)際問題,并且意識(shí)到了對(duì)于不熟悉的問題要善于利用互聯(lián)網(wǎng)進(jìn)行學(xué)習(xí)。并且,試驗(yàn)的驗(yàn)證加深了對(duì)于循環(huán)語句的認(rèn)知,做到了熟練運(yùn)用循環(huán)語句解決復(fù)雜的計(jì)算問題。4第三次實(shí)驗(yàn)4.1實(shí)驗(yàn)?zāi)康?繼續(xù)加深對(duì)循環(huán)語句的應(yīng)用能力。.學(xué)習(xí)掌握嵌套語句的應(yīng)用環(huán)境。.了解溢出的概念,并學(xué)會(huì)解決計(jì)算溢出的問題。.2實(shí)驗(yàn)內(nèi)容(-)求n個(gè)數(shù)的最大值,最小值和平均值。要求:不使用數(shù)組。算法思想:在進(jìn)行計(jì)較時(shí)每次只取兩個(gè)數(shù),并對(duì)這兩個(gè)數(shù)進(jìn)行比較,取其中最大或最小值與下ー個(gè)數(shù)進(jìn)行比較,知道數(shù)據(jù)取完。并在每次取數(shù)據(jù)時(shí)統(tǒng)計(jì)數(shù)據(jù)個(gè)數(shù)和計(jì)算總和,最終計(jì)算平均值。程序代碼:#include<stdio.h>intmain()
floatmax=0,min=0,Avg=0,t;intn;printfC'Inputthenumberofyournumbers!\nM);scanf(M%d**,&n);printf(nThenyoucaninputyournumbers!\nM);scanf(M%r\&t);min=t;max=t;for(inti=2;i<=n;i++)(scanf(M%fM,&t);max=(max>t)?max:t;min=(min<t)?min:t;Avg=Avg+t;}Avg/=n;printf「TheMaximumis%.2f,theMinimumis%.2f,andtheaverageis%.2f.M,max,min,Avg);return0;}輸出效果:■E\C_Pro9ramming\Source\Third\Expnl4.exeInputthenunberofyournumbers!SThenyoucaninputyournumbers!executiontine:13.432s6S2323365426TheHaximinis654.00,theHiniminis23.0。,andtheaverageis187.20.executiontine:13.432sProcessreturned0<0x0>Pressanykeytocontinue.■E:\C_Programming\Source\Third\Expri14,exeInputthenunberofvournumbers?BThenyoucaninputyournumbers?34786234900344981444TheMaxinunis900.00,theMininunis4.00.andtheaverageis313.75Processreturned0<0x0>executiontine-28.517sPressanykeytocontinue.(二)依據(jù)1/L1/3+1/5-1/7+1/9-……=pi/4,計(jì)算圓周率pi,要求最后ー項(xiàng)<10へー6。程序代碼:#include<stdio.h>intmain()floatPi=0;intnJ;i=l;do{n=2*i-1;if(i%2)Pi=Pi+1.0/n;elsePi=Pi-1.0/n;i++;}while(1.0/n>=le-34);Pi=4*Pi;printf(M%r\Pi);return0;} 輸出效果:■E:\C_Programming\Source\Third\Expril5.exeProcessreturned0<0x0>executiontine:0.062sPressanykeytocontinue.(三)完全數(shù)是一種特殊的自然數(shù)。它所有的真因子(即除了自身以外的約數(shù))的和恰好等于它本身。試求出1~1000范圍內(nèi)的所有完全數(shù)。算法思想:定義兩次循環(huán),外層為n的循環(huán),內(nèi)層則尋找n的真因子并進(jìn)行求和,之和與n相比較,若相等則輸出n。程序代碼:#include<stdio.h>#include<math.h>intmain()(for(inti=2;i<=1000;i++)(intk=(int)sqrt(i),s=0;for(intj=1;j<=k;j++){if(!(i%j)){s=s+j+i/j;}if(sqrt(i)-k==O)s=s-k;if(s==i)printf(M%dM,i);return0;}輸出效果:E:\C_Programming\Source\Third\Expril6.exe628496Processreturned0《0x0〉executiontine:0.047sPressanykeytocontinue.(四)水仙花數(shù)是指ー個(gè)三位數(shù),它的每個(gè)位上的數(shù)字的三次幕之和等于它本身。例如:17+57+37=153。試求出所有的水仙花數(shù)。算法思想:定義n循環(huán),循環(huán)100到999的所有三位數(shù)。將n各個(gè)位數(shù)相分離并進(jìn)行乘方和求和運(yùn)算,結(jié)果與n比較,若相等,輸出n。程序代碼:#include<stdio.h>intcf(intx);intmain(){for(inti=100;i<=999;i++)(intk=i%10;k=cf(k)+cf(((i%100)-k)/10)+cf(i/100);if(k==i)printf(H%dH,i);}return0;intcf(intx){returnx*x*x;輸出效果:E:\C_Programming\Source\Third\Expril7.exe153370371407Processreturned0<0x0> executiontime:0.047sPressanykeytocontinue.(五)一個(gè)數(shù),其七進(jìn)制和九進(jìn)制均為3位數(shù),且三位數(shù)的數(shù)字正好相反,試求出這個(gè)數(shù)。算法思想:定義循環(huán)n,使其取得100到999的所有三位數(shù),并使其代表為欲求數(shù)的七進(jìn)制表示,將其各位數(shù)字反置,令所得數(shù)表示欲求數(shù)的九進(jìn)制,同時(shí)將七進(jìn)制和九進(jìn)制轉(zhuǎn)化為十進(jìn)制,若二者轉(zhuǎn)化所得的十進(jìn)制相等,則此十進(jìn)制數(shù)即為所求。程序代碼:#include<stdio.h>intmain()(intsl,s2;for(inti=l;i<=6;i++)for(intj=0;j<=6;j++)for(intk=1;k<=6;k++)(si=i+7*j+49*k;s2=k+9*j+81*i;if(si==s2)printfC*%dM,sl);}return0;)輸出效果:E:\C_Programming\Source\Third\Expril8.exe248Processreturned0<0x0>executiontime:0.047sPressanykeytocontinue.(六)求解1373的尾數(shù)三位是什么。算法思想:根據(jù)已有數(shù)學(xué)知識(shí),ー個(gè)數(shù)的尾數(shù)三位與另ー數(shù)相乘,所得數(shù)的尾數(shù)三位與原數(shù)與一數(shù)相乘所得的尾數(shù)三位一致。定義循環(huán)進(jìn)行十三次運(yùn)算,每次運(yùn)算結(jié)果對(duì)1000求余數(shù),即只保留尾數(shù)三位,再將尾數(shù)三位進(jìn)行新的計(jì)算,直到循環(huán)結(jié)束。算法思想:程序代碼:#include<stdio.h>intmain(){intn=1;for(inti=1;i<=13;i++)(n=n%100〇;n*=13;}printf(M%d,,,n%1000);return0;}輸出效果:■E:\C_Programming\Source\Third\Expril9.exe253Processreturned0<0x0)executiontime:0.031sPressanykeytocontinue.(七)求解100!尾數(shù)有多少個(gè)0.算法思想:定義循環(huán),從1到99求積。每次相乘后對(duì)所得結(jié)果進(jìn)行對(duì)10求余的循環(huán)知道結(jié)果不為0,每次結(jié)果為()時(shí)進(jìn)行計(jì)次。再用所得的不為〇的數(shù)進(jìn)行下面的運(yùn)算。最終次數(shù)再加2即為所求.程序代碼:#include<stdio.h>intmain(){ints=Oj;for(inti=5;i<=100;i+=5){j=i;while(!(j%5))s=s+1;j=j/5;})printf("%d",s);return0;} 輸出效果:
■E:\C_Programming\Source\Third\Expri20.exe0.031s24Processreturned0<0x0〉executiontimePressanykeytocontinue.0.031s4.3實(shí)驗(yàn)小結(jié)繼續(xù)加深了對(duì)循環(huán)語句的應(yīng)用能力,學(xué)習(xí)掌握了嵌套語句的應(yīng)用環(huán)境和使用方式。明白了溢出的概念,并學(xué)會(huì)解決計(jì)算溢出的問題。學(xué)會(huì)了利用C語言解決較為復(fù)雜的實(shí)際問題。5第四次實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?學(xué)習(xí)C語言中子函數(shù)的應(yīng)用,了解其定義形式和引用方法。.了解子函數(shù)在程序中的作用和意義。.靈活運(yùn)用子函數(shù)的返回值與參數(shù)。實(shí)驗(yàn)內(nèi)容(七)斐波那契數(shù)列Fo=1,F1=1,Fn=Fn-i+Fn.2(n>=2,nGN*),求F?算法思想:定義變量a、b使a表示偶數(shù)項(xiàng),b表示奇數(shù)項(xiàng)。從m和n開始依次向后向后相加,直到fn。程序代碼:#include<stdio.h>intmain(){intn;intarr[2];printf("Inputthen!\n");scanf("%d",&n);arr[O]=1;arr[l]=1;if(n<0)printf("Error!");return1;}if(0==n)(printf("O");return0;}if(l==n){printf("l");return0;)n=n-2;for(inti=l;i<=n;i++)(arr[l]=arr[O]+arr[l];arr[0]=arr[l]-arr[0];}printf(M%dM,arr[l]);return0;)輸出效果:?E:\C_Programming■t:\C_ProgrammincInputthen?55.MACA#1IE:\C_PrograrnmincInputthen?£3233(二)計(jì)算多項(xiàng)式的值anxn+an-ixn'Inputthen?1+an-2Xn'2+...+a3x3+a2x2+aix1+a0Inputthen?1程序代碼:#include<stdio.h>intmain()(intn;floatal,a2,s,x;s=0;al=0;a2=0;printf(nPleaseinputthen!\nM);scanf(M%dM,&n);printf(uPleaseinputthex!\nn);scanf(n%fn,&x);printf(nPleaseinputthedatafromantoal!\nH);for(inti=l;i<=n;i++){s=s*x;scanf(M%fM,&al);s=s+al;}printf(M%r\s);return0;}輸出效果:■E:\C_Programming\Source\Fourth\Expri22.exePleaseinputthen!Please1inputthex!Pleaseinputthedatafforantoal?122333544126.000000■E:\C_Programming\Source\Fourth\Expri22.exePleaseinputthen!6Pleaseinputthex!2Pleaseinputthedatafrowantoal!124355443331757.000000■E:\C_Programming\Source\Fourth\Expri22.exePleaseinputthenf10Pleaseinputthexf3pleaseinputthedatafromantoal!ェ238651.90875676282502.000000(三)設(shè)計(jì)ー個(gè)計(jì)算兩個(gè)x和y的最大值函數(shù)max(x,y),并利用該函數(shù)實(shí)現(xiàn)求n個(gè)數(shù)的最大值。算法思想:將max定義為子函數(shù),在傳參使將上次求得的最大值和新值進(jìn)行運(yùn)算。程序代碼:#include<stdio.h>intmax(intx,inty);intmain(){intn,x,y,z;printfC'Inputthenumberofyournunbers!\nH);scanf(n%dH,&n);if(n<2)(printf(MError!Pleaseinputmorethan2numbers!\nM);return1;)printf(MThenyoucaninputthedata!\n");scanf(n%d,\&x);n=n-1;for(inti=1;i<=n;i++)(scanf(M%dM,&y);x=max(x,y);)printグ%d”,x);return0;}intmax(intxjnty)(if(x>y)returnx;elsereturny;}輸出效果:E:\C_Programming\Source\Fourth\Expri23.Inputthenumbei*ofyournunbersf5Thenyoucaninputthedata!12439838778387E:\C_Programming\Source\Fourth\Expri23.e>Inputthenunberofyournunbers!9Thenyoucaninputthedata!3434123653345卜23E:\C_Programming\Source\Fourth\Expri23.exeInputthenumberofyournunbers!BThenyoucaninputthedata!245422223567543,5(四)設(shè)計(jì)ー個(gè)判斷x是否是素?cái)?shù)的函數(shù)prime(x),并利用該函數(shù)實(shí)現(xiàn)輸出2—100范圍內(nèi)的所有素?cái)?shù)。程序代碼:#include<stdio.h>intisprm(intx);intmain()(printf(M23H);for(inti=4;i<=100;i++)(if(isprm(i))printf(M%dM,i);)return0;intisprm(intx){intk=(int)sqrt(x),b;b=1;for(inti=2;i<=k;i++){if(!(x%i))(b=0;break;)}if(b)return1;elsereturn0;)輸出效果:3實(shí)驗(yàn)小結(jié)通過實(shí)驗(yàn),對(duì)子函數(shù)的知識(shí)進(jìn)行了進(jìn)ー步的強(qiáng)化,對(duì)其有了更明確的認(rèn)識(shí),試驗(yàn)中的反復(fù)運(yùn)用加強(qiáng)的對(duì)子函數(shù)的應(yīng)用能力。6第五次實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康?學(xué)習(xí)C語言中子函數(shù)的應(yīng)用,了解其定義形式和引用方法。.學(xué)會(huì)運(yùn)用遞歸的方式求解實(shí)際問題。.靈活運(yùn)用子函數(shù)的返回值與參數(shù)。6.2實(shí)驗(yàn)內(nèi)容(-)設(shè)計(jì)ー個(gè)實(shí)現(xiàn)多個(gè)功能(如,N個(gè)數(shù)求最大數(shù)和一元二次方程求根等等)的演示系統(tǒng)。算法思想:在項(xiàng)目中定義多個(gè)子函數(shù)文件,在main函數(shù)中設(shè)計(jì)引用方式,并引用子文件進(jìn)行計(jì)算。程序代碼:Experi5.c:#include<stdio.h>#include<stdlib.h>/*#include"huashi.h"#includeHyyerci.hM#includeMgyb.hM#include"tnangle.hM#includenprime.h"#include"mutiplel.hM*/intmain()(charc=*y,;while(('y'==c)||(Y==c))(fflush(stdin);system(M
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度居家養(yǎng)老生活照料與情感陪伴合同
- 國際結(jié)算(第三版)-課件 第十章 跨境電子商務(wù)的支付與結(jié)算
- 核反應(yīng)堆熱工水力設(shè)計(jì)合同
- 揚(yáng)帆計(jì)劃培訓(xùn)簡(jiǎn)報(bào)
- 兒童小古文課件設(shè)計(jì)要點(diǎn)
- 2022第34個(gè)“全國愛牙日”口腔健康全身健康專題
- 口罩的樣子課件
- 培訓(xùn)行業(yè)施工知識(shí)課件
- 高端AI學(xué)術(shù)論文自動(dòng)生成系統(tǒng)使用權(quán)購買合同
- 2025年度專業(yè)舞臺(tái)劇演員團(tuán)體合作協(xié)議書
- 2025歷年退役軍人考試題庫及答案
- 第一二單元月考綜合試卷(試題)四年級(jí)上冊(cè)數(shù)學(xué)滬教版
- 2025級(jí)新生軍訓(xùn)開訓(xùn)儀式動(dòng)員大會(huì)
- JJF(紡織)083-2018織物沾水度儀校準(zhǔn)規(guī)范
- JJG 861-2007酶標(biāo)分析儀
- GB/T 12717-2007工業(yè)用乙酸酯類試驗(yàn)方法
- 教師薪酬與考核 新東方
- 一個(gè)華為客戶經(jīng)理回憶錄資料講解
- 中國文學(xué)理論批評(píng)史全套教學(xué)課件
- 新人教版九年級(jí)下冊(cè)初中化學(xué)全冊(cè)課前預(yù)習(xí)單
- 工廠規(guī)章制度員工守則.doc
評(píng)論
0/150
提交評(píng)論