C語言程序設(shè)計(jì)-實(shí)驗(yàn)C語言實(shí)驗(yàn)報告_第1頁
C語言程序設(shè)計(jì)-實(shí)驗(yàn)C語言實(shí)驗(yàn)報告_第2頁
C語言程序設(shè)計(jì)-實(shí)驗(yàn)C語言實(shí)驗(yàn)報告_第3頁
C語言程序設(shè)計(jì)-實(shí)驗(yàn)C語言實(shí)驗(yàn)報告_第4頁
已閱讀5頁,還剩122頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

等ザ科技火孚課程實(shí)驗(yàn)報告課程名稱: C語言程序設(shè)計(jì) 專業(yè)班級: 信息安全1302班學(xué)號: 姓名: 指導(dǎo)教師: 報告日期: 2014年6月16日計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院目錄TOC\o"1-5"\h\z目求 1\o"CurrentDocument"1實(shí)驗(yàn)概述 3\o"CurrentDocument"2第一次實(shí)驗(yàn) 31實(shí)驗(yàn)?zāi)康?3\o"CurrentDocument"2實(shí)驗(yàn)內(nèi)容 3\o"CurrentDocument"3實(shí)驗(yàn)小結(jié) 13\o"CurrentDocument"3第二次實(shí)驗(yàn) 14\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?14\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 14\o"CurrentDocument"實(shí)驗(yàn)小結(jié) 21\o"CurrentDocument"4第三次實(shí)驗(yàn) 21\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?21\o"CurrentDocument"4.2實(shí)驗(yàn)內(nèi)容 21\o"CurrentDocument"3實(shí)驗(yàn)小結(jié) 29\o"CurrentDocument"5第四次實(shí)驗(yàn) 29\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?29\o"CurrentDocument"5.2實(shí)驗(yàn)內(nèi)容 29\o"CurrentDocument"3實(shí)驗(yàn)小結(jié) 34\o"CurrentDocument"6第五次實(shí)驗(yàn) 34\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?34\o"CurrentDocument"2實(shí)驗(yàn)內(nèi)容 34\o"CurrentDocument"6.3實(shí)驗(yàn)小結(jié) 41\o"CurrentDocument"7第六次實(shí)驗(yàn) 42\o"CurrentDocument"1實(shí)驗(yàn)?zāi)康?42\o"CurrentDocument"2實(shí)驗(yàn)內(nèi)容 42\o"CurrentDocument"3實(shí)驗(yàn)小結(jié) 51\o"CurrentDocument"8第八次實(shí)驗(yàn) 521實(shí)驗(yàn)?zāi)康?52\o"CurrentDocument"2實(shí)驗(yàn)內(nèi)容 52\o"CurrentDocument"3實(shí)驗(yàn)小結(jié) 61\o"CurrentDocument"9書本上的程序設(shè)計(jì) 62\o"CurrentDocument"程序設(shè)計(jì)1 62\o"CurrentDocument"程序設(shè)計(jì)2 64\o"CurrentDocument"程序設(shè)計(jì)3 69\o"CurrentDocument"程序設(shè)計(jì)4 78\o"CurrentDocument"程序設(shè)計(jì)5 86\o"CurrentDocument"程序設(shè)計(jì)6 93\o"CurrentDocument"程序設(shè)計(jì)7 100\o"CurrentDocument"程序設(shè)計(jì)8 113\o"CurrentDocument"程序設(shè)計(jì)9 124\o"CurrentDocument"10實(shí)驗(yàn)總結(jié) 129\o"CurrentDocument"參考文獻(xiàn) 130!實(shí)驗(yàn)概述在圖書館由自動化建設(shè)階段向數(shù)字化階段轉(zhuǎn)變的過程中,出現(xiàn)了大量的數(shù)字化資源,而數(shù)字圖書館相關(guān)技術(shù)的研究卻顯得相對滯后。這就導(dǎo)致ー方面資源利用率的下降。同時豐富的資源在給讀者更多的選擇的同時卻帶來信息檢索的不便。讀者在實(shí)際科研工作中,我們常常會因?yàn)樯倭课墨I(xiàn)的漏查而導(dǎo)致大量的重復(fù)工作。C語言,是ー種通用的、過程式的編程語言,廣泛用于系統(tǒng)與應(yīng)用軟件的開發(fā)。具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的可移植性等特點(diǎn),在程序員中備受青睞。最近25年是使用最為廣泛的編程語言。通過C語言的使用,我們可以更好的處理數(shù)據(jù),更好的簡化原本大量重復(fù)的工作。2第一次實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?初步了解C語言的輸入輸出函數(shù),變量和常量的定義,以及其符號規(guī)則。2,自主完成一些簡單的C語言程序設(shè)計(jì)任務(wù),熟悉相關(guān)規(guī)則。.學(xué)會在VC上對C語言的調(diào)試。實(shí)驗(yàn)內(nèi)容(一)設(shè)計(jì)ー個程序,在字符模式下,以某個字符拼出“王”漢字圖形,顯示輸出。程序代碼:#include<stdio.h>intmain(void)(”********print— * \iT);printグ * \nM);

printf(M ***** \nM);printf(M * \nM);printf(u * \nH);printf(ハ*********、n'');return0;)輸出效果:Pressanykeytocontinue輸出效果:(二)輸入ー個華氏溫度,要求輸出攝氏溫度。公式為c=5/9*(f-32)。程序代碼:#include<stdio.h>intmain(void)(floatx,y;printf("Inputthetemperature(C):\nn);scanf(M%r\&x);y=5.0*9/(x-32);printf(Mthetemperature(F):\n%.2f\nM,y);return0;}輸出效果:■u:\users\AaminisrraTor\ue5Krop\iInputthetenpei*atui*e<C>:33thetemperature<F>:45.00Pressanykeytocontinue(三)設(shè)計(jì)3種算法完成交換整形兩個變量值的程序。算法思想:算法1:定義一個新的變量t,借助它完成交換.算法2:由異或運(yùn)算的特點(diǎn)決定的,ー個數(shù)與同數(shù)異或兩次不變。算法3:通過算數(shù)運(yùn)算規(guī)則使值交換。程序代碼:算法1:#include<stdio.h>intmain(void)(inta,b,t;printf(*Inputaandb:\n");scanf("%d%d”,&a,&b);a=t;a=b;b二t;printf("a=%d,b=%d”,a,b);2223375727777return0;}算法2:8include<stdio.h>intmain(void)(inta,b;printf("Inputaandb:\n");a=a*b;b=ab;a=a*b;printf("a=%d,b=%d*,a,b);return0;)算法3:^include<stdio.h>intmain(void)(inta,b;printf("Inputaandb:\n");scanf("%d%d",&a,&b);a=a+b;b=a-b;a=a-b;printf("a=%d,b=%d",a,b);return0;}輸出效果:■"C:\Users\Administrator\Desktop\STDIO\Inputaandb~32a=2,b=3Pressanykeytocontinue(四)設(shè)計(jì)ー個程序,完成如下功能:輸出ー個三位數(shù),將他反向輸出。如輸入123.輸出321〇算法思想:利用整型數(shù)字除法的方法將三位數(shù)的百位,十位,個位數(shù)字提取出來并交換位置,達(dá)到反向輸出的目的。程序代碼:#include<stdio.h>intmain(void)(inta,b,c,x;printf("原數(shù):〃);scanf("%d",&x);a=x/100;b=(x-a*100)/10;c=(x-a*100-b*10);printf("變換:%d\n”,c*100+b*10+a);return0;)輸出效果:a*C:\Users\Administrator\Desktora:123變境321Pressanykeytocontinue(五)設(shè)計(jì)兩種完成計(jì)算max{x,y,z}的程序。算法思想:算法1:使用if語句比較大小進(jìn)行運(yùn)算。算法2:使用【】?【】:【】替換if進(jìn)行計(jì)算。程序代碼:算法1:#include<stdio.h>intmain(void)

inta,b,c,Max;printf("inputa,bandc\nM);scanf(M%d%d%dM,&a,&b,&c);if(a>b)(if(a>c)Max=a;elseMax=c;}else{if(b>c)Max=b;elseMax=c;)printf(MTheMaxis%d\nM,Max);return0;}算法2:算法2:intmain(void)inta,b,c,Max;printfiinputa,bandc\n");scanf("%d%d%d”,&a,&b,&c);Max=a>b?(a>c?a:c):(c>b?c:b);printf(*TheMaxis%d\n*,Max);return0;輸出效果:輸出效果:?,E:\學(xué)習(xí)、C語言Xliuxvzhe\Cproject5\Debug\Cproject5.epleaseinputthreenumbers123345456max<123,345,456>=456Pressanykeytocontinue(六)設(shè)計(jì)ー個程序,完成計(jì)算三個數(shù)的居中數(shù)。程序代碼:#include<stdio.h>intmain(void)(intayb,c,Middle;printfiinputa,bandc'n");scanf(*%d%d%d*,&a,&b,&c);Middle=a>b?(b>c?b:(a>c?c:a)):(a>c?a:(b>c?c:b));printf(*TheMiddleis%d\n*,Middle);return0;)輸出效果:inputandc1urJTheMiddleis2nPressanykeytocontinueinputandc112TheMiddleis1Pressanykeytocontinue(七)設(shè)計(jì)計(jì)算一元二次方程組的根的程序。算法思想:核心為將一元二次方程求根方法其轉(zhuǎn)化為C語言進(jìn)行表達(dá),.注意用if語句考慮多種情況,調(diào)用math,h頭文件程序代碼:#include<stdio.h>#include<math.h>intmain(void){floata,b,c,x,xl,x2;printf(*Likea*x*x+b*x+c=0,Inputa,b,c\n");scanf &a,&b,&c);if(a==0&&b==0)(if(c==0)printf("Everyfigure'n");elseprintf("ERROR!!\n");}else(if(a==0&&b!=0)(x=-(c/b);printf("x=%.2f\n",x);}elseif((b*b-4*a*c)>=0)if((b*b-4*a*c)==0)(x=(-b)/(2*a);printf("x=%.2f\n",x);)if((b*b-4*a*c)<0)(xl=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(~b-sqrt(b*b-4*a*c))/(2*a);printf(*xl=%.2f,x2=%.2f\n”,xl,x2);)elseprintf("xisnofigure\n");))return0;)輸出效果:inputabc144x=-2.000000Pressanykeytocontinueinputabc143xl—1.000000,x2-3.000000

Pressanykeytocontinueinputabc111xisnofigurePressanykeytocontinui(A)根據(jù)任意三角形的面積公式(海倫公式):s=根號下p(p-a)(p-b)(p-c),其中,p=(a+b+c)/2,abc為三角形的三條邊,設(shè)計(jì)ー個程序計(jì)算任意三角形的面積。算法思想:首先用宏定義P,再用if語句對用戶輸入的三條邊長進(jìn)行判斷,判斷其是否可組成三角形,再編寫程序進(jìn)行計(jì)算。程序代碼:#include<stdio.h>升includeくmath.h>^definep((a+b+c)/2)intmain(void){floata,b,c;doubleS;printf(*Inputa,b,c:\n*);scanf("%f%f%f”,&a,&b,&c);if((a>=b+c)II(b>=a+c)||(c>=a+b))printf("inputiserror\n");else(S=sqrt(p*(p-a)*(p-b)*(p-c));printf("S=%.2f",S);}return0;}輸出效果:Inputa,b,c:121inputiserrorPressanykeytocontinueInput35S=6.00Pressanykeytocontinue實(shí)驗(yàn)小結(jié)通過這次上機(jī)實(shí)驗(yàn),我初步掌握了一些C語言的編程方法。試驗(yàn)了宏定義#Define,if語句對程序的判定以及for的循環(huán)控制。其次是熟悉了C語言的ー些符號構(gòu)成,程序構(gòu)成的語法規(guī)則。并且鍛煉了思維,使程序設(shè)計(jì)的更加嚴(yán)謹(jǐn),高效。3第二次實(shí)驗(yàn)3.1實(shí)驗(yàn)?zāi)康?學(xué)會使用循環(huán)語句,用循環(huán)語句解決問題。.通過解決ー些實(shí)際問題更加深入地了解各種運(yùn)算符的運(yùn)算功能。.通過自己上網(wǎng)查找資料等方法自己處理一些實(shí)際問題,比如求個人所得稅問題。.2實(shí)驗(yàn)內(nèi)容(-)設(shè)計(jì)ー個計(jì)算個人所得稅的程序。算法思想:由網(wǎng)絡(luò)取得稅收方式,用函if和goto的表達(dá)式編寫相關(guān)程序。程序代碼:#include<stdio.h>intmain(void)(intn,m;printf(MINPUTTHENUMBERN\nH);scanf(M%dn,&n);if(n<=1500)|m=n*3/100;gotoinx;}if(n<=4500)(m=1500*3/100+(n-1500)*10/100-105;gotoinx;}if(n<=9000)(m=1500*3/100+(4500-1500)*10/100+(n-4500)*20/100-555;gotoinx;}if(n<=35000)(m=l500*3/100+(4500-1500)*10/100+(9000-4500)*20/100+(n-9000)*25/100-1005;gotoinx;}if(n<=55000)(m=1500*3/100+(4500-1500)*10/100+(9000-4500)*20/100+(35000-9000)*25/100+(n-35000)*30/100-2755;gotoinx;}if(n<=80000)(m=1500*3ハ00+(4500-1500)*10/100+(9000-4500)*20/100+(35000-9000)*25/100+(55000-35000)*30/100+(n-55000)*35/100-5505;gotoinx;)elsem=1500*3/100+(4500-1500)*10/100+(9000-4500)*20/100+(35000-9000)*25/100+(55000-35000)*30/100+(80000-55000)*35/100+(n-80000)*45/100-13505;gotoinx;)inx:printf(M%dn,m);return0;輸出效果:INPUTTHENUMBERN4500240Pressanykeytocontinu(二)計(jì)算兩個數(shù)的最大公約數(shù)和最小公倍數(shù)。算法思想:最大公約數(shù):用a,b中較大數(shù)取余較小數(shù),并且把較小數(shù)賦給原較大,取余數(shù)賦給較小數(shù),for控制循環(huán)知道余數(shù)為0;此時的較小數(shù)為0,較大數(shù)即為最大公約數(shù)。最小公倍數(shù):最大公倍數(shù)與最小公約數(shù)的乘積等于兩個數(shù)的積,只要計(jì)算出最大公約數(shù)就可以直接得出最大公倍數(shù)。程序代碼:#include<stdio.h>intmain(void)(intn,m,a,b,k;print*INPUTTHENUMBERnANDm\nH);scanf(M%d%dH,&n,&m);if(m>n)(m=m+n;n=m-n;m=m-n;)lf(n%m==O)(a=m;b=n*m/a;gotoinx;}a=n%m;b=m;while(b%a!=0)(k=a;a=b%a;b=k;}b=n*m/a;inx: printf(M%d%dH,a,b);return0;輸出效果:INPUTTHENUMBERnANDr128424Pressanykeytocontinue(三)輸入一個數(shù)n(>=2),判定n是否為素?cái)?shù)。算法思想:從i=2開始到i/2進(jìn)行循環(huán)計(jì)算,計(jì)算n是否可以整除i若能,判斷i是否小于n,若小于,則n不是素?cái)?shù),若i小于n時不能被n整除,則n是素?cái)?shù)。程序代碼:#include<stdio.h>intmain(void)(intn,i;printf(nINPUTTHENUMBERN(N>2)\nu);scanf(n%d'\&n);for(i=2;i<=n/2;i++)(if(n%i==0)gotoiny;)printf(MTHENUMBER%dISPRIME!!,?;return0;iny:printf(nTHENUMBER%dISNOTPRIME!!n,n);return0;)輸出效果:INPUTTHENUMBERN<N>2>4THENUMBER4ISNOTPRIME!?PressanykeytocontinueINPUTTHENUMBERN<N>2>7THENUMBER7ISPRIME??Pressanykeytocontinue(四)輸出2700范圍內(nèi)的所有素?cái)?shù)。要求:不使用子函數(shù)。算法思想:用嵌套循環(huán),令外層對n進(jìn)行循環(huán),內(nèi)層與上題相似。程序代碼:#include<stdio.h>intmain(void)(intij;for(i=2;i<=100;i++)(inx: if(i==2)(printf(M%d\tHJ);i++;gotoinx;}for(j=2;j<=(i/2);j++)(if((i%j)==O)(:++;gotoinx;}}if(i<=100)printf(H%d\tM,i);)return0;)輸出效果:|2 35 711131719232931374143475359616771r79838997Pressanykeytocontinue(五)輸出九九乘法口訣表。算法思想:對i*n的形式定義兩次循環(huán),首先對n進(jìn)行循環(huán),從1開始到9結(jié)束,再對i=l進(jìn)行循環(huán)直到i=n,并在每次對i循環(huán)時輸出ー個運(yùn)算式,每次對n進(jìn)行循環(huán)時換行,同時注意間隔。程序代碼:#include<stdio.h>intmain(void)(inti,j;for(i=l;i<10;i++)(for(j=l;j<=i;j++)(printf("%d*%dis%d\t"j,i,i*j);)printf("\n");)return0;)輸出效果:1*1isl1*2is22*2is4l*3is32*3is63*3is9l*4is42*4is83*4isl24*4isl6l*5is52*5isl03*5isl54*5is205*5is25l*6is62*6isl23*6isl84*6is245*6is306*6is36l*7is?2*7isl43*7is214*7is285*7is356*7is427*7is491*8is82*8isl63*8is244*?is325*Bis406*6is487*8is568*?is641*9is92*9isl83*9is274*9is365*9is456*9is547*9is638*9is729*9is81Pressianykeytc)continue.3實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),我對c語言有了更加深的了解,實(shí)驗(yàn)并且使用ー些簡單的程序解決實(shí)際問題,更加熟練地掌握了if,goto以及ー些簡單表達(dá)式,了解了循環(huán)語句的重要性以及goto在循環(huán)中的運(yùn)用和相關(guān)注意事項(xiàng),希望在以后的實(shí)驗(yàn)中能更加的熟練。4第三次實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?加強(qiáng)對問題的處理能力和編程能力。.學(xué)習(xí)for循環(huán)和if的使用,以及嵌套結(jié)構(gòu)。.初步了解溢出的概念,并學(xué)會ー些規(guī)避溢出問題的方法。實(shí)驗(yàn)內(nèi)容(-)求n個數(shù)的最大值,最小值和平均值。要求:不使用數(shù)組。算法思想:在進(jìn)行計(jì)較時每次只取兩個數(shù),并對這兩個數(shù)進(jìn)行比較,取其中最大或最小值與下ー個數(shù)進(jìn)行比較,直到數(shù)據(jù)取完,數(shù)字的個數(shù)開始由用戶自己輸入。并在每次取數(shù)據(jù)時統(tǒng)計(jì)數(shù)據(jù)個數(shù)和計(jì)算總和,最終計(jì)算平均值。程序代碼:#include<stdio.h>intmain(void)(floataverage,max,min,sum=O,x;inti,n;printf("pleaseinputn\nM);scanf(M%dH,&n);printf("Inputthenumber\n");scanf("%f",&x);sum+=x;max=x;min=x;for(i=2;i<=n;i++)|printf("lnputnumber\n");scanf("%f",&x);sum二sum+x;if(x>max)max=x;elseif(x<min)min=x;}printf("min=%.2f",min);printf("max=%.2f",max);average=1.0*sum/n;printf("average=%.2f\n",average);return0;)輸出效果:pleaseinputn11Inputthenunber12Inputnunber13Inputnunber14Inputnumber15Inputnumber16Inputnumber17Inputnumber18Inputnumber19Inputnumber201nputnumber1Inputnumber2min=1.00max=20.00auerage=13.36Pressanykeytocontinue.(二)依據(jù)1/1-1/3+1/5-1/7+1/9- =pi/4,計(jì)算圓周率pi,要求最后ー項(xiàng)<10A-6。程序代碼:#include<stdio.h>#include<math.h>intmain(void)(doublesum;inti,j=0;printf(',r,);for(i=l;i+2;i<=1000000)sum+=(pow((-1),j))*(double)(1/i);j++;printf(w%f',sum);return0;輸出效果:P.141594Pressanykeytocontinue(三)完全數(shù)是一種特殊的自然數(shù)。它所有的真因子(即除了自身以外的約數(shù))

的和恰好等于它本身。試求出「1000范圍內(nèi)的所有完全數(shù)。程序代碼:#include<stdio.h>intmain(void)(intij,sum=0;for(i=l;i<=1000;i++)(fora=l;j<(int)(i/2)+l;j++)(if(i%j==O)sum+=j;}if(sum==i)printf(MTHENUMBERIS%d\tM);}return0;)輸出效果:(四)水仙花數(shù)是指ー個三位數(shù),它的每個位上的數(shù)字的三次幕之和等于它本身。

例如:M3+5ハ3+3人3=153。試求出所有的水仙花數(shù)。算法思想:用for循環(huán)語句循環(huán)100到999的所有三位數(shù)。將n各個位數(shù)相分離并進(jìn)行乘方和求和運(yùn)算,結(jié)果與n比較,若相等,輸出n。程序代碼:#include<stdio.h>#include<math.h>intmain(void)intij,k=0,a[999];doublesum;for(i=0;i<999;l++)a[i]=0;for(i=100;l<999;i++){for(j=100;j<i;j++)(if(i%j==O)(j=a[k];k++;}for(j=0;j<=k;j++)sum+=pow(a|j],3);if((int)sum==i)printf("%d\n"3);)return0;}輸出效果:L53370371107Pressanykeytocontinue(五)一個數(shù),其七進(jìn)制和九進(jìn)制均為3位數(shù),且三位數(shù)的數(shù)字正好相反,試求出這個數(shù)。算法思想:定義循環(huán)n,使其取得100到999的所有三位數(shù),并使其代表為欲求數(shù)的七進(jìn)制表示,將其各位數(shù)字反置,令所得數(shù)表示欲求數(shù)的九進(jìn)制,同時將七進(jìn)制和九進(jìn)制轉(zhuǎn)化為十進(jìn)制,若二者轉(zhuǎn)化所得的十進(jìn)制相等,則此十進(jìn)制數(shù)即為所求。程序代碼:#include<stdio.h>intmain(void)(inta,b,c,s,n,tl,t2;for(s=100;s<=999;s++){a=s/100;b=(s-a*100)/10;c=s-a*100-b*10;n=c*100+b*10+a;tl=a*7*7+b*7+c;t2=c*9*9+b*9+a;return0;輸出效果:輸出效果:(六)求解13人13的尾數(shù)三位是什么。算法思想:ー個數(shù)的尾數(shù)與另ー個數(shù)的尾數(shù)相乘所得的數(shù)的尾數(shù)與這兩個數(shù)直接相乘所得的尾數(shù)相同,利用循環(huán)語句進(jìn)行13次循環(huán)即可得到結(jié)果程序代碼:#include<stdio.h>intmain(void)(inta=l,i;for(i=l;i<14;i++)(a*=13;if(a>999)a%=1000;}printf(M%d\nn,a);return0;)輸出效果:Q53[Pressanykeytocontinue(七)求解100!尾數(shù)有多少個。.算法思想:100!中能產(chǎn)生〇的為2和5的因式,2的因式足夠,故只需要考慮5的個數(shù),沒隔5的產(chǎn)生1個5,每隔25多產(chǎn)生1個5,統(tǒng)計(jì)5的個數(shù)即可。程序代碼:#include<stdio.h>intmain(void)(inti=lJ=0;for(;i<=100;l++)(if(i%5==0)j++;if(i%25==0)j++;}printf(MTHENUMBEROFZEROIS%dHj);return0;}輸出效果:JHENUMBEROFZEROIS24.Pressanykeytocontinue實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),我學(xué)會了讓一些循環(huán)控制和循環(huán)設(shè)計(jì)方面的知識,也鞏固了C語言編程的知識,學(xué)習(xí)到了一些新的算法。希望在以后的實(shí)驗(yàn)中能更加的熟練。5第四次實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康?學(xué)習(xí)C語言中子函數(shù)的應(yīng)用,了解其定義形式和引用方法。.了解子函數(shù)在程序中的作用和意義。.靈活運(yùn)用子函數(shù)的返回值與參數(shù)。5.2實(shí)驗(yàn)內(nèi)容(七)斐波那契數(shù)列Fo=O,Fi=1,Fn=Fn-i+Fn-2(n>=2,neN*),求F”算法思想:定義變量a、b使a表示偶數(shù)項(xiàng),b表示奇數(shù)項(xiàng)。從fO和fl開始依次向后向后相加,直到fn。程序代碼:#include<stdio.h>intmain(void)intn,i;longa[51],*p=a;printf(MINPUTTHENUMBERN(2<N<=50)\nM);scanf(M%dn,&n);*p=0;*(p+l)=l;for(i=2;i<=n;i++)(*(p+i)=*(p+i-l)+*(p+i-2);}printf(M%u\nH,*(p+i-l));return0;)輸出結(jié)果:printf("輸入n和x以及從aO到an的值:\n”);scanf(M%d%r\&n,&x);scanグ%f”,&a);sum=a;b=x;for(m=l;m<=n;m++){scanf(u%F\&a);i=l;x=b;while(i<m){x=x*b;i++;}sum=sum+(a*x);)printf(M%.2f\n,\sum);return0;)輸出效果:輸入n和x以及從a。到奇值:5112345621.00Pressanykeytocontinue(三)設(shè)計(jì)ー個計(jì)算兩個x和y的最大值函數(shù)max(x,y),并利用該函數(shù)實(shí)現(xiàn)求n個數(shù)的最大值。算法思想:將max定義為子函數(shù),通過子函數(shù)傳參將上次求得的最大值和新值進(jìn)行運(yùn)算。程序代碼:#include<stdio.h>floatmax(floatx,floaty);intmain(void)(inti,n;floata[100],*p=a;printf(MINPUTN\nM);scanf(M%dn,&n);for(i=();i<n;i++)(printf(MINPUTTHENUMBER\nM);scanf(M%f\p+i);}for(i=l;i<n;i++){*(p+i)=max(*(p+i-l),*(p+i));}printf(n%.2r\*(p+i-l));return0;)floatmax(floatx,floaty)(if(x>y)y=x;returny;)輸出效果:INPUTN3INPUTTHENUMBER2.1INPUTTHENUMBER1INPUTTHENUMBER44.00Pressanykeytocontinue(四)設(shè)計(jì)ー個判斷x是否是素?cái)?shù)的函數(shù)prime(x),并利用該函數(shù)實(shí)現(xiàn)輸出2—100范圍內(nèi)的所有素?cái)?shù)。程序代碼:#include<stdio.h>intprime(intx);intmain(void)|inti;for(i=2;i<=100;i++)(if(prime(i))printf(M%d\tn,i);}return0;)intprime(intx)(inti;for(i=2;i<=(int)(x/2);i++)(if(x%i==O)return0;}return1;)輸出效果:INPUTN3INPUTTHENUMBER2.1INPUTTHENUMBER1INPUTTHENUMBER44.00Pi*essanykeytocontinue3實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),初步了解了子函數(shù)進(jìn)和原函數(shù)的關(guān)系,學(xué)習(xí)了子函數(shù)的聲明與使用,以及一些傳參類型和方法,了解到了C語言子程序?qū)φ麄€程序設(shè)計(jì)的優(yōu)點(diǎn)。6第五次實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?學(xué)習(xí)C語言中子函數(shù)的應(yīng)用,了解其定義形式和引用方法.學(xué)會運(yùn)用遞歸的方式求解實(shí)際問題。.靈活運(yùn)用子函數(shù)的返回值與參數(shù)。實(shí)驗(yàn)內(nèi)容(-)設(shè)計(jì)ー個實(shí)現(xiàn)多個功能(如,N個數(shù)求最大數(shù)和一元二次方程求根等等)的演示系統(tǒng)。算法思想:在項(xiàng)目中定義多個子函數(shù)文件,在main函數(shù)中設(shè)計(jì)引用方式,

并引用子文件進(jìn)行計(jì)算。程序代碼:#include<stdio.h>#include<math.h>intmain(void)(intx9i9a[100]9n9xl9x29p,q;floata,b,c,d;printfC'IFGETTHENUMBEROFNFORTHELARGESTNUMBER,INPUT1;IFGETTEOQUADRATICEQUATION,INPUT0\nM);scanf(n%dM,&x);if(x==0)gotoinx;if(x==l)gotoiny;elseprintf(nERROE!!M);inx:printf(MINPUTa,b,cM\n);scanf(M%f%f%r\a,b,c);d=b*b-4*a*c;p=(-l)*b/(2*a);q=(sqrtd)/(2*a);if(d>=0){xl=p+q;x2=p-q;printf(M%f%r,9xl,x2\n);return0;}else(q=((sqrt(-d))/2)/a;xl=p+q;x2=p-q;printf(M%f%f\nM9xl,x2);return0;}iny:printfC'INPUTN(N<100)\n");scanf("%d",&n);for(i=0;i<n;i++){printfC'INPUTTHENUMBERXn");scanf("%d",&a[i]);}for(i=0;i<n-l;i++)Iif(a[i]>a[i+l]){a[i+l|=a[i];)]printf("%d,a[n-l]");return0;}輸出效果:inputthreequotlentstotheequation:s2=^^該

It弦雷

re2.希想想

einputthreequotlentstotheequation:s2=^^該

It弦雷

re2.希想想

e一一果果果1AC入入輸pleaseinputthreequotientstotheequation:。方大該

e希想想

er果果果input0toendyoui*numbersx=果果果aロロ口12Act(二)設(shè)計(jì)ー個遞歸程序計(jì)算組合數(shù)C(n,m)=A(n,m)/m!o1 (〃=0或〃=氏時1C軸に如(0ホ〃時)算法思想:將子函數(shù)定義為遞歸形式,循環(huán)調(diào)用函數(shù)自身體,直到子函數(shù)中返回確定值。程序代碼:#include<stdio.h>intf(intn,intm);intmain(void){intn,m;printf("INPUTNANDM\nM);scanf(M%d%d,,,&n,&m);printf(M%d,,,f(n,m));return0;)intf(intn,intni){intsum=0;if((m==n)||(n==0))sum+=l;else(sum+=f(n-l,m-l)+f(n,m-l);)returnsum;}輸出效果:INPUTNANDM246PressanykeytocontinueINPUTNANDM3510Pressanykeytocontinue(三)mccathy函數(shù)m(x)定義如下,編寫ー個遞歸程序計(jì)算給定x的m(x)的值。<x-I〇 x>!〇〇M(M(x+11))XS1OO程序代碼:#include<stdio.h>intM(intx);intmain(void)(intx;printf(MINPUTX\nM);scanf(u%dH,&x);prmtf(H%du,M(x));return0;)intM(intx){if(x>100)return(x-10);elsereturnM(M(x+ll));INPUTX4輸出效果:91Pi*essanykeytocontinue輸出效果:(四)根據(jù)任意三角形的面積公式(海倫公式):S=Vp(p-a)(p-b)(p-c),其中,p=(a+b+c)/2,a.b.c為三角形三邊,使用宏計(jì)算計(jì)算任意三角形的面積。算法思想:利用宏定義將復(fù)雜的海倫公式用一個簡單符號表示,用符號表示公式使主函數(shù)中求三角形面積變得更簡便程序代碼:#include<stdio.h>#include<math.h>#definep(a+b+c)/2intmain(void)(inta,b,c,S;printf(HINPUTa,b,c\nH);scanf(M%d%d%dM,&a,&b,&c);if((a+b)<=c)printf(MERROR!!\nu);if((a+c)<=b)printf(MERROR!!\nn);if((b+c)<=a)printf(MERROR!!\nM);S=sqrt((p)*(p-a)*(p-b)*(p-c));printf(M%dM,S);return0;}輸出效果:INPUTa,b,c3456PressanykeytocontinueINPUTa」b,c123ERROR??BPressanykeytocontinue實(shí)驗(yàn)小結(jié)本次實(shí)驗(yàn)是C語言程序設(shè)計(jì)的強(qiáng)化,讓我更深入地了解子函數(shù),宏定義,宏計(jì)算在復(fù)雜程序中重要的作用,也是為了使程序更加簡潔明了,培養(yǎng)了我們良好的編程風(fēng)格。其次還學(xué)習(xí)到了遞歸的方法設(shè)計(jì)程序,以循環(huán)的方式計(jì)算多次重復(fù)問題,十分高明,希望能學(xué)到更多。7第六次實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)掌握數(shù)組的相關(guān)知識。了解數(shù)組在計(jì)算機(jī)中的存儲方式。了解數(shù)組作為參數(shù)的傳遞過程。7.2實(shí)驗(yàn)內(nèi)容(一)設(shè)計(jì)ー個函數(shù)reverse(a,n),將一維數(shù)組a的值逆置。如,逆置前,A:20、10、90、59、60、80、y0,

逆置后,A:70、80、60、59、90、10、20〇算法思想:在子函數(shù)中使用中間變量,將數(shù)組兩端的值進(jìn)行替換然后再將第二項(xiàng)和倒數(shù)第二項(xiàng)的值進(jìn)行替換,以此類推,直到數(shù)組中央所有值均替換完畢。程序代碼:#include<stdio.h>intreverse(inta[],intn);intmain(void)(intn=7,i;inta[7]={20,10,90,59,60,80,70);reverse(p,n);for(i=0;i<n;i++){printf("%d\t",a[i]);}return0;}intreverse(inta[],intn){inti;for(i=0;i<n/2;i++){a[i]+=a[n-l-i];a[n-l-i]=a[i]-a[n-l-i];a[i]=a[i]-a[n-l-i];}return0;}輸出效果:70 80 60 59 90 10 201Pressanykeytocontinue(二)設(shè)計(jì)ー個函數(shù)BubbleSort(a,n),采用冒泡排序算法,實(shí)現(xiàn)ー維數(shù)組的整數(shù)進(jìn)行排序的功能。算法思想:首先由用戶輸入需要排序的數(shù)組元素個數(shù),然后輸入數(shù)組具體數(shù)字,傳參給冒泡函數(shù)之后,冒泡函數(shù)對數(shù)組的元素進(jìn)行比較大小,將大的數(shù)移向最右邊,小數(shù)移向左邊,最后完成排序,輸出出相應(yīng)結(jié)果。程序代碼:#include<stdio.h>intBubbleSort(inta[]9intn);intmain(void){inta[101={9,8,7,6,5,43,2,l,0},n=10,i;BubbleSort(a,n);for(i=0;i<n;i++)printグ%dM,a[i]);return0;)intBubbleSort(intaロ,intn)(intij;for(i=0;i<n-l;i++){for(j=0;j<n-i-l;j++){if(aU]>a[j+l])(a[j]+=alj+l];a[j+l]=a[j]-a[j+l];a[j]-=a[j+l];)))return0;}輸出效果:pi23456789Pressanykeytocontinue(三)設(shè)計(jì)ー個一個函數(shù)而d(a,n,x),實(shí)現(xiàn)對在ー個數(shù)組的整數(shù)進(jìn)行查找功能。如果給定值X在數(shù)組a中,返回其所在的位置(即下標(biāo)值),否則返回ー1。算法思想:子函數(shù)將用戶輸入到數(shù)組中的元素ーー與用戶需要查找的元素進(jìn)行比較,沒比較一次,計(jì)數(shù)器加一,如果找到該數(shù)字,返回計(jì)數(shù)器記下的數(shù)字,如果沒找到,返回-1,通過if語句,將表達(dá)出“您查找的數(shù)值不在數(shù)組內(nèi)”程序代碼:#include<stdio.h>intfind(inta[]9intn,intx);intmain(void){inti;inta[10]={0,l,2,3,4,5,6,7,8,l},n=10,x=l;for(i=0;i<10;i++)printf(M%dM,a[i]);printf(H\nx=%d\nn=%d\nM,x,n);printf(M%dM,find(a,n,x));return0;)intfind(inta[],intn,intx){inti;for(i=0;i<n;i++)(if(a[i]==x)returni;)return-1;)輸出效果:0123456781x=ln=101Pressanykeytocontinue(四) 輸入一個已經(jīng)按升序排序過的數(shù)組和一個數(shù)字,在數(shù)組中查找兩個數(shù),使得它們的和正好是輸入的那個數(shù)字。如果有多對數(shù)字的和等于輸入的數(shù)字,輸出任意ー對即可。例如,輸入數(shù)組1、2、4、7、11、15和數(shù)字15。由于4+11=15,因此,輸出4和11。算法思想:設(shè)計(jì)ー個嵌套循環(huán)語句,內(nèi)層嵌套將數(shù)組的每一個數(shù)與后面的所有數(shù)兩兩相加并與用戶輸入的數(shù)比較,外層嵌套循環(huán)數(shù)組中所有的數(shù),實(shí)現(xiàn)數(shù)組中所有數(shù)的兩兩求和,若得到相同的數(shù)就輸出結(jié)果程序代碼:#include<stdio.h>intAdd(inta[]9intn,intx);intmain(void)(inti;inta[6]={l,2,4,7,H,15},n=6,x=15;for(i=0;i<6;i++)printf(M%dM,a[i]);printf(H\nn=%d\nx=%d\nn,&n,&x);Add(a,n,x);return0;}intAdd(inta[]9intn,intx)(intij;for(i=0;i<n-l;i++){for(j=i+l;j<n;j++){if(a[i]+a[j]==x)(printf("%d%d",a[i],a[j]);return0;)}printf("NONE");return0;輸出效果:124711151=1638184“16381804llPressanykeytocontinue(五)檢驗(yàn)并打印魔方矩陣在下面的5x5階魔方矩陣中,每一行、每一列、每ー對角線上的元素之和都是相等的,試編寫程序?qū)⑷我?x5階矩陣中的元素存儲到ー個二維整型數(shù)組中,然后檢驗(yàn)其是否為魔方矩陣,并將其按如下格式顯示到屏幕上。TOC\o"1-5"\h\z17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311182529算法思想:用嵌套循環(huán)使二維數(shù)組儲存一個5*5矩陣,將矩陣每一行,每一列,每ー對角線元素相加,得到結(jié)果相比較,如果兩兩相等,則確認(rèn)為魔方矩陣。程序代碼:#include<stdio.h>intmain(void)(inta[5][5],sum=0,b=0,ij;for(j=0;j<5;j++)(printf(MINPUTTHENUMBERfor(i=0;i<5;i++){scanf(H%dM,&a[i][j]);)printf(M\nM);}prin懂「INPUTOVER!!!M);for(i=0;i<5;i++)b+=a[i][0];for(j=l;j<5;j++)(for(i=0;i<5;i++)(sum+=a[i]|jl;)if(sum!=b)gotoinx;sum=0;}for(i=0;i<5;l++)for(j=0;j<5;j++)(sum+=a[i][j];)if(sum!=b)gotoinx;sum=0;}for(i=0J=0;i<5J<5;i++J++)sum+=a[i][j];if(sum!=b)gotoinx;for(j=0;j<5;j++)(for(i=0;i<5;i++){printf("%d",a[i][j]);)printf("\n");}return0;inx:printf("ERROR");return0;)輸出效果:INPUTTHENUMBER17241815INPUTTHENUMBER235,1416INPUTTHENUMBER4h132022INPUTTHENUMBER101219213INPUTTHENUMBER111825215INPUTOUER!??17241815235714164613202210121921311182529PressAnykeytocontinue

INPUTTHENUMBER234515INPUT3THENUMBER7J5()INPUTTHENUMBER73427INPUTTHENUMBER83747INPUTTHENUMBER82367INPUTOUER???ERRORPi*essanykeytocontinue7.3實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),我進(jìn)ー步的學(xué)習(xí)到了C語言的編程技巧和思想方法,培養(yǎng)了良好的編程風(fēng)格,提高了自己的編程能力。其次還練習(xí)到了if,for等多種的方法設(shè)計(jì)程序,希望能學(xué)到更多。8第八次實(shí)驗(yàn)8.1實(shí)驗(yàn)?zāi)康?通過實(shí)驗(yàn),進(jìn)ー步熟悉C語言的編程技巧,相關(guān)循環(huán)控制。.自主完成一些簡單的C語言程序設(shè)計(jì)任務(wù),熟悉相關(guān)規(guī)則。3,理解學(xué)習(xí)更多的算法。.2實(shí)驗(yàn)內(nèi)容(-)編寫ー個函數(shù)swap(x,y),分別采用3種不同的算法實(shí)現(xiàn)兩個變量值的交換功能。Sinclude<stdio.h>intswap(inta,intb);intmain(void){inta,b;printf("INPUTTHEaANDb〃);scanf("%d%dz,,&a,&b);swap(a,b);return0;)intswap(inta,intb)(intt;t=a;a二b;b=t;printf("a二%d,b二%d”,a,b);return0;Sinclude<stdio.h>intswap(inta,intb);intmain(void){inta,b;printf("INPUTTHEaANDb〃);scanf("%d%d”,&a,&b);swap(a,b);return0;)intswap(inta,intb)(intt;t=a;a=b;b二t;printf("a二%d,b二%d〃,a,b);return0;)Sinclude<stdio.h>intswap(inta,intb);intmain(void){inta,b;printf("INPUTTHEaANDb");scanf("%d%d",&a,&b);swap(a,b);return0;)intswap(inta,intb)a=ab;b=ab;a=ab;printf(z,a=%d,b=%d”,a,b);return0;INPUTTHEaANDb3sa=5,b=3Pressanykeytocontinue(二)設(shè)計(jì)ー個計(jì)算MAX{a,b}的程序,要求a和b,以命令行中參數(shù)形式給出。ttinclude<stdio.h>intmain(intargc,char*argv口){inta,b;if(argc!=3)printf("ERROE!!!\n〃);if(*argv[1]>*argv[2])printf("%d",*argv[l]);else printf(,z%d,z,*argv[2]);return0;)(三)設(shè)計(jì)ー個函數(shù)create(L),其功能是建立一個“先進(jìn)后出”的鏈表。(四)設(shè)計(jì)ー個函數(shù)insert。,i,e),其功能是在鏈表L中的第i個元素之間插入新元素eo#include<stdio.h>#include<stdlib.h>structlistintdata;structlist*next;);structlist*creat(int*a,intn)(structlist*loc_head=NULL;if(n==0)returnNULL;else(loc_head=(structlist*)malloc(sizeof(structlist));loc_head->data二?a;loc_head->next二creat(a+1,nT);returnloc_head;voidinsert(structlist*1,inti,intx)(intk=l;structlist*p=l,*loc_head;while(k<i)(p=p->next;k++;}loc_head=(structlist*)malloc(sizeof(structlist));loc_head->data=x;loc_head-〉next二pー〉next;pー〉next=loc_head;intmain()(structlist*head,*p;inti,a[100],n,w,x;printf(,zcinn\n〃);scanf&n);printfiinputdata\n");for(i=O;i<n;i++)scanf&a[i]);head=creat(a,n);printf〈inputwhereandwhatyouwant\n〃);scanf("%d%d”,&w,&x);if(w==0)printf(〃%d",x);elseinsert(head,w,x);p=head;while(p){printf(,z%d〃,pー〉data);p=p->next;)getchar();getchar();return0;:inn4inputdata^dcudaadinputwhereandwhatyouwant-858993460-858993460-858993460-858993460-858993460Pressanykeytocontinue(五)設(shè)計(jì)ー個函數(shù)deletedi),其功能是刪除在鏈表L中的第i個元素元素。#include<stdio.h>#include<stdlib.h>structlistIintdata;structlist*next;);structlist*creat(int*a,intn)(structlist*loc_head=NULL;if(n==0)returnNULL;else{loc_head=(structlist*)malloc(sizeof(structlist));loc_head->data二?a;loc_head->next二creat(a+1,n-l);returnloc_head;voiddeletel(structlist*1,inti)(intk=l;structlist*p=l,*loc_head;while(k<i-l){p=p->next;k++;pー〉next二p-〉next->next;)intmain()(structlist*head,*p;inti,a[100],n,w,x;printficinn\n");scanf("%d",&n);for(i=O;i<n;i++)scanf("%d",&a[i]);head=creat(a,n);printfCinputwhereyouwant'n");scanf(〃%d〃,&w);if(w==1)head=head-〉next;elsedeletel(head,w);p=head;while(p)(printf(〃%d,z,p->data);p二pー〉next;)getchar();getchar();return0;)(六)設(shè)計(jì)ー個程序,利用鏈表輸出約瑟夫環(huán)的結(jié)果序列。注釋:約瑟夫環(huán)是ー個數(shù)學(xué)的應(yīng)用問題:已知n個人(以編號1,2,3.?.n分別表示)圍坐在ー張圓桌周圍。從編號為k的人開始報數(shù),數(shù)到m的那個人出列;他的下ー個人又從1開始報數(shù),數(shù)到m的那個人又出列;依此規(guī)律重復(fù)下去,直到圓桌周圍的人全部出列。#include<stdio.h>#include<stdlib.h>structlist{intdata;structlist*next;};intn;structlist*creat(inti)(structlist*head_loc;if(i==n+l)returnNULL;else(head_loc=(structlist*)malloc(sizeof(structlist));head_loc->data=i;head_loc->next=creat(i+1);returnhead_loc;Avoidprint(structlist*headp){inti;structlist*p;p=headp;for(i=0;i<n;i++)(printf(,z%d〃,p->data);p=p->next;printfl\n〃);}*/intmain(){structlist*head,*p,*q;intk,m,i,t=0,s=0;printf(”請輸入人的個數(shù)N,開始的位置K,出列號M\n〃);scanf("%d%d%d”,&n,&k,&m);head=creat(1);p=head;for(i=0;i<n-l;i++)p=p->next;p->next=head;p=head;for(i=0;i<k-l;i++)p=p->next;//printf('%d”,pー〉data);q二P;while(t!=n-l)(s++;if(s%m==0)(q->next=q->next->next;t++;s=0;)q二P;p=p->next;//print(p);printf('%d”,p->data);return0;請輸入人的個數(shù)N,開環(huán)的蒞置K,田列每M7134Pressanykeytocontinue8.3實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),我學(xué)習(xí)到了一些鏈表的知識,接觸并逐漸掌握了一些動態(tài)變量的申明調(diào)用的知識并學(xué)會了基本的使用方法。其次是更加熟悉了C語言程序設(shè)計(jì)的方法,學(xué)習(xí)到了更多的算法,希望能學(xué)到更多。9書本上的程序設(shè)計(jì)程序設(shè)計(jì)1熟悉c語言程序的開發(fā)環(huán)境ー、實(shí)驗(yàn)?zāi)康?1)熟悉Code::Blocks等C語言程序的開發(fā)環(huán)境。(2)掌握C程序的編輯、編譯、鏈接和運(yùn)行方法。(3)通過運(yùn)行簡單的C程序,學(xué)會在集成開發(fā)環(huán)境中調(diào)試程序的方法。二、實(shí)驗(yàn)任務(wù)上機(jī)輸入教材上的兩個源程序(詳見課本P41),然后進(jìn)行編譯、鏈接、運(yùn)行以及調(diào)試程序,使程序最終輸出正確結(jié)果。三、實(shí)驗(yàn)步驟及結(jié)果(要求給出源程序和程序運(yùn)行結(jié)果。另外,根據(jù)實(shí)驗(yàn)內(nèi)容,記錄編輯、編譯、鏈接、調(diào)試程序的操作過程和實(shí)驗(yàn)現(xiàn)象).源程序1實(shí)驗(yàn)步驟及結(jié)果。修改源程序如下:#include<stdio.h>#include<math.h>intmain(void)(floata,b,c,s,t,area;printf(nInputthreeedgeofthetriangle\nM);scanf(u%f%f%r,&a,&b,&c);s=(a+b+c)/2;t=s*(s-a)*(s-b)*(s-c);area=sqrt(t);printf(narea=%f\nンarea);return0;運(yùn)行測試,交付Release目標(biāo)文件,重新編譯,編譯運(yùn)行結(jié)果如圖:Inputthreeedgeofthetriangle345area=6.00Pressanykeytocontinue.源程序2實(shí)驗(yàn)步驟及要求修改源程序如下:ttinclude<stdio.h>ttdefineN10intsum(intx[],intn);intmain(void)(inti,a[N],total;printf("Input%dintegersplease!\n");for(i=0;i<N;i++)(scanf("%d",&a[i]);}total=sum(a,N);printf("Thesumis%d\n,total);return0;}intsum(intx[],intn)inti,s;for(s=0,i=O;i<n;i++)(s+=x[i];)returns;)Input0integersplease?90Fhesunis45Pressanykeytocontinue四、實(shí)驗(yàn)體會在編寫較長的程序時,能夠一次成功而不含任何錯誤是不容易的,這需要進(jìn)行長期大量的練習(xí),編寫的程序若已沒有編譯錯誤,可以成功運(yùn)行,但執(zhí)行結(jié)果不對時,需要靈活地借助調(diào)試工具對程序進(jìn)行跟蹤調(diào)試,分析并查找出錯原因。通過對Code::blocks編輯源文件,編譯、鏈接,以及對調(diào)試器的使用,加深了對集成開發(fā)環(huán)境的理解,也可以更熟練地使用VC、Code::Blocks等集成開發(fā)環(huán)境進(jìn)行C語言程序的編寫調(diào)試及發(fā)布,對以后C語言的學(xué)習(xí)有了更大的幫助。程序設(shè)計(jì)2表達(dá)式和標(biāo)準(zhǔn)輸入與輸出實(shí)驗(yàn)ー、實(shí)驗(yàn)?zāi)康?1)熟練掌握各種運(yùn)算符的運(yùn)算功能,操作數(shù)的類型,運(yùn)算結(jié)果的類型及運(yùn)算過程中的類型轉(zhuǎn)換,中點(diǎn)是C語言特有的運(yùn)算符,例如位運(yùn)算符,問號運(yùn)算符,逗號運(yùn)算符等;熟記運(yùn)算符的優(yōu)先級和結(jié)合性。(2)掌握getchar,putchar,scanf和printf函數(shù)的用法。(3)掌握簡單C程序(順序結(jié)構(gòu)程序)的編寫方法。二、實(shí)驗(yàn)任務(wù)1、源程序改錯使用實(shí)驗(yàn)2.1的實(shí)驗(yàn)步驟對書上源程序進(jìn)行調(diào)試修改,使之能夠正確完成指定任務(wù)2、源程序修改替換刪除定義語句中的t,修改書本劃線處語句,使之實(shí)現(xiàn)兩書對調(diào)的操作。3、程序設(shè)計(jì)(1)編寫ー個程序,輸入字符c,如果c是大寫字母,則c轉(zhuǎn)換成對應(yīng)的小寫,否則C的值不變,最后輸出C。(2)編寫ー個程序,輸入無符號短整數(shù)x,m,n(0<=m<=15,K=n<=16-m),取出x從第m位開始向左的n位(m從右至左編號為015),并使其向左端(第15位)靠齊。(3)IP地址通常是4個用句點(diǎn)分割的小整數(shù)(即點(diǎn)分十進(jìn)制),入32.55.1.102〇這些地址再機(jī)器中用無符號長整形表示。編寫ー個程序,以機(jī)器存儲的形式讀入ー個互聯(lián)網(wǎng)IP地址,對其譯碼,然后用常見的句點(diǎn)分隔的4部分的形式輸出。三、實(shí)驗(yàn)步驟及結(jié)果(要求給出源程序和程序運(yùn)行結(jié)果。另外,根據(jù)實(shí)驗(yàn)內(nèi)容,記錄編輯、編譯、鏈接、調(diào)試程序的操作過程和實(shí)驗(yàn)現(xiàn)象)1、源程序改錯修改后的程序代碼如下:#include<stdio.h>#definePI3.14159intmain(void)(intf;shortp,k,newwint;doublec,r,s;printf("InputFahrenheitAn");scanf("%d",&f);c=5*(f-32)/9;printf(n\n%d(F)=%.2f(C)\n\n'\f,c);printf("Inputtheradiusr:n);scanfC%lf;&r);s=PI*r*r;printf(M\nTheacreageis%lf\n\nn,s);printf("Inputhexintk,p/n");scanf(n%x%x'\&k,&p);newwint=(p&OxffOO)|(k&OxOOff);printf(nnewint=%x\n\n'\newwint);return0;)InputFahrenheit:132132<F>=55.00<C>Inputtheradiusr:22Theacreageis1520.529560Inputhexintk,p34newint=3Pressanykeytocontinue2、源程序修改替換修改后的程序代碼如下:#include<stdio.h>voidmain()(inta,b;printf(nInputtwointegers:");scanf("%d%d\&a,&b);a=a+b;b=a-b;a=a-b;printf("\na=%d,b=%d",a,b);Inputtwointegers:23a=3,b=2Pressanykeytocontinue3、程序設(shè)計(jì)(1)#include<stdio.h>intmain(void)(charx;scanf("%c",&x);if((0x41<=x)&&(x<=0x5A))printf("%c\n",x+32);if((97<=x)&&(x<=122))printf("%c\n",x);if(((x<0x41)||(x>0x5A))&&((x<97)||(x>122))) printf(nERROR!!");return0aaPressanykeytocontinueERROR??Pressanykeytocontinue(2)#include<stdio.h>intmain(void)(unsignedshortx,m,n;printf(MINPUTx,m,n\nH);scanf(n%hu%hu%hun,&x,&m,&n);printf(,,%d",(x?(16-m-n+l))&((-0?n)));return0;}INPUT23153anukeu七。continue(3)#include<stdio.h

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論