華南農(nóng)業(yè)大學C語言程序設計習題冊答案_第1頁
華南農(nóng)業(yè)大學C語言程序設計習題冊答案_第2頁
華南農(nóng)業(yè)大學C語言程序設計習題冊答案_第3頁
華南農(nóng)業(yè)大學C語言程序設計習題冊答案_第4頁
華南農(nóng)業(yè)大學C語言程序設計習題冊答案_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言程序設計上機實驗指導與習題參考答案實驗1 C語言程序初步一、實驗目的(1)了解所用的計算機系統(tǒng)的基本操作方法,學會獨立使用該系統(tǒng)。(2)了解在該系統(tǒng)上如何編輯、編譯、連接和運行一個C程序。(3)通過運行簡單的C程序,初步了解C程序的特點。(4)在教師的指導下,學會使用JudgeOnline實驗系統(tǒng)。二、實驗內容1.運行第一個C程序題目:The first C Program將下列程序輸入TC(或VC+),編譯、連接和運行該程序。void main()printf(The first C Programn);具體操作步驟以Turbo C上的操作為例(1)Windows進入后,按照第一章中介

2、紹的方法,進入Turbo C。(2)在編輯窗口中輸入程序。(3)保存程序,取名為a1.c。(4)按照第一章中介紹的方法,編譯、連接和運行程序。2.在JudgeOnline系統(tǒng)中提交實現(xiàn)了計算a+b功能的程序題目1001:計算a+b由鍵盤輸入兩個整數(shù),計算并輸出兩個整數(shù)的和。實現(xiàn)該功能的程序如下,void main()inta,b;scanf(%d%d,&a,&b); printf(%d,a+b);(1)在程序編輯窗口中輸入程序。(2)保存程序,取名為a2.c。(3)按照前二章中介紹的方法,編譯、連接和運行程序。(4)在程序運行過程中,輸入1530(表示輸入回車符)(5)如果看到如下輸出結果,則

3、表明15+30的結果正確,如果得不到如下結果,則需檢查并更正程序。45(6)按照第三章中介紹的方法進入JudgeOnline實驗系統(tǒng)。(7)顯示題目列表,點擊題號為1001,題名為“計算a+b”的題目。(8)查看完題目要求后,點擊頁面下端的“sumbit”,參照第二章提交程序的方法提交程序a2.c。(9)查看評判結果,如果得到“accepted”則該題通過,否則返回第一步檢查程序是否正確。 實驗2基本數(shù)據(jù)類型、運算和表達式一、實驗目的(1)掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型和實型的變量,以及對它們賦值的方法。(2)掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。(3)學會使用C的有關算術運算符,以及包

4、含這些運算符的表達式,特別是自加(+)和自減(-)運算符的使用。(4)進一步熟悉C程序的編輯、編譯、連接和運行的過程。二、實驗內容1.變量的定義題目1117:變量定義,按要求完成程序下面給出一個可以運行的程序,但是缺少部分語句,請按右邊的提示補充完整缺少的語句。voidmain()intinta,b;i,j;/*定義整型變量a和b*/*定義實型變量i和j*/a=5;b=6;i=3.14;j=i*a*b;printf(a=%d,b=%d,i=%f,j=%fn,a,b,i,j);具體操作步驟(1)將代碼補充完整;(2)在TC或VC+上運行通過;(3)在JudgeOnline實驗系統(tǒng)上提交;2.賦值

5、表達式與賦值語句題目1118:賦值表達式與賦值語句,寫出程序運行結果閱讀下面程序,寫出運行結果:void main()float a;int b,c;char d,e;a=3.5;b=a;c=330;d=c;3e=;printf(%f,%d,%d,%c,%c,a,b,c,d,e);運行結果為:3.500000,3,330,J,提示賦值語句具有類型轉換的功能,但可能會改變數(shù)據(jù)。3.基本運算題目1119:基本運算,寫出程序運行結果閱讀下面程序,寫出運行結果:void main()int a,b,c;float d=15,e,f;a=35%7;b=15/10;c=b+;e=15/10;f=d/10;

6、printf(%d,%d,%d,%f,%f,%f,a,b,c,d,e,f);運行結果為:0,2,1,15.000000,1.000000,1.500000提示除法分整除與普通除法之分。4實驗3基本輸入與輸出一、實驗目的(1)熟練掌握putchar、getchar、printf、scanf函數(shù)的使用方法。(2)掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉換符。二、實驗內容題目1126:字符的輸入與輸出編程實現(xiàn)由鍵盤輸入一個字符后,在屏幕上輸出該字符。第一組自測數(shù)據(jù)鍵盤輸入a正確輸出a參考程序:#includestdio.hmain()第二組自測數(shù)據(jù)鍵盤輸入+正確輸出+char ch;c

7、h=getchar();putchar(ch);題目1127:計算加法編程實現(xiàn)由鍵盤輸入一個加法式,輸出正確的結果。(兩個加數(shù)均為整數(shù))第一組自測數(shù)據(jù)鍵盤輸入10+20正確輸出30參考程序:#includestdio.hmain()第二組自測數(shù)據(jù)鍵盤輸入-15+60正確輸出45int a,b;scanf(%d%*c%d,&a,&b);printf(%d,a+b);題目1014:求圓面積由鍵盤輸入圓半徑r,請計算該圓的面積。(注:取3.14159,結果保留兩位小數(shù)位;另外,程序只要能對r在0到10000范圍的情況輸出正確答案即可)第一組自測數(shù)據(jù)鍵盤輸入565.2正確輸出13355.02第二組自測

8、數(shù)據(jù)鍵盤輸入11.2正確輸出394.08提示結果保留兩位小數(shù)可采用printf函數(shù)的格式控制字符來實現(xiàn)。參考程序:#includestdio.hmain()float area,r;scanf(%f,&r);area=3.14159*r*r;printf(%0.2f,area);2題目1015:計算攝氏溫度值從鍵盤輸入一個華氏溫度值,要求按格式輸出其對應的攝氏溫度值,精確到小數(shù)點后兩位。數(shù)學公式描述為:C59(F32)第一組自測數(shù)據(jù)鍵盤輸入100正確輸出37.78提示注意公式中的除為普通除法。參考程序:#includevoid main()第二組自測數(shù)據(jù)鍵盤輸入100正確輸出37.78floa

9、t f,c;scanf(%f,&f);c=5.0/9*(f-32);printf(%.2f,c);3實驗4選擇結構程序設計一、實驗目的(1)了解C語言表示邏輯的方法(以0代表“假”,以非0代表“真”)。(2)學會正確使用邏輯運算符和邏輯表達式。(3)熟練掌握if語句和switch語句。(4)結合程序掌握一些簡單的算法。二、實驗內容題目1120:判斷點是否在圓上由鍵盤輸入一個點的坐標,要求編程判斷這個點是否在單位圓上,點在圓上輸出Y,不在圓上輸出N。使用小數(shù)點后3位精度進行判斷。第一組自測數(shù)據(jù)鍵盤輸入0.707,0.707正確輸出Y第二組自測數(shù)據(jù)鍵盤輸入0.5,0.5正確輸出N提示(1)平面上的

10、點與圓的關系分為在圓內、在圓上、在圓外三種,本題要求判斷是否在圓上;(2)判斷兩實數(shù)相等采用判斷這兩實數(shù)的差的絕對值小于規(guī)定誤差精度(本題為0.001)的方法實現(xiàn)。參考程序:#includestdio.h#includemath.hvoid main()float a,b;scanf(%f,%f,&a,&b);if(fabs(a*a+b*b-1)99999999)place=9;else if(n9999999)else if(n999999)else if(n99999)place=8;place=7;place=6;else if(n9999)else if(n999)else if(n9

11、9)place=5;place=4;place=3;else if(n9)place=2;elseplace=1;printf(%ldn,place);題目1018:數(shù)的排序由鍵盤輸入三個整數(shù)a、b、c,按從小到大的順序輸出這三個數(shù)。第一組自測數(shù)據(jù)鍵盤輸入65,45,90正確輸出45,65,90參考程序:#includemain()第二組自測數(shù)據(jù)鍵盤輸入9,6,3正確輸出3,6,9int a,b,c,t;scanf(%d,%d,%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(%d,%d,%d,a

12、,b,c);題目1016:字符變換由鍵盤輸入5個字符,將其中的大寫字母變成小寫,其它類型的字符不變,并按輸入順序逐個輸出。第一組自測數(shù)據(jù)鍵盤輸入ApPLe正確輸出apple第二組自測數(shù)據(jù)鍵盤輸入a+B=5正確輸出a+b=5提示下面代碼實現(xiàn)由鍵盤讀入一個字符,并按題意處理后輸出chara;a=getchar();if(a=A&a=Z)a=a+32;putchar(a);5現(xiàn)在,題目要求處理5個字符,怎么做呢?請自己思考參考程序:#includemain()char a,b,c,d,e;scanf(%c%c%c%c%c,&a,&b,&c,&d,&e);if(a=A)a=a+32;if(b=A)b=

13、b+32;if(c=A)c=c+32;if(d=A)d=d+32;if(e=A)e=e+32;printf(%c%c%c%c%c,a,b,c,d,e);題目1019:數(shù)的整除由鍵盤輸入5個整數(shù),逐個判斷它們能否被27整除,能的輸出“YES”,不能的輸出“NO”(注意,輸出時,一個判斷結果占一行,5個數(shù)的判斷共占5行)。第一組自測數(shù)據(jù)鍵盤輸入第二組自測數(shù)據(jù)鍵盤輸入82717577325 548 27 17577 325 54正確輸出NOYESYESNOYES提示整除即除得余數(shù)為0參考程序:#includestdio.hmain()正確輸出NOYESYESNOYESint a,b,c,d,e;sc

14、anf(%d%d%d%d%d,&a,&b,&c,&d,&e);if(a%27=0)printf(YESn);else printf(NOn);if(b%27=0)printf(YESn);else printf(NOn);if(c%27=0)printf(YESn);else printf(NOn);if(d%27=0)printf(YESn);else printf(NOn);if(e%27=0)printf(YESn);else printf(NOn);題目1020:正負奇偶判斷由鍵盤輸入非零整數(shù)x,判斷該數(shù)正負,正數(shù)輸出positive,負數(shù)輸出negative,接著判斷該數(shù)的奇偶性,奇

15、數(shù)輸出odd,偶數(shù)輸出even。第一組自測數(shù)據(jù)鍵盤輸入-43正確輸出negativeodd第二組自測數(shù)據(jù)鍵盤輸入698正確輸出參考程序:#includestdio.hmain()positiveevenint n;scanf(%d,&n);if(n0)printf(negativen);else printf(positiven);if(n%2=0)printf(evenn);else printf(oddn);題目1023:簡單計算器下面程序是實現(xiàn)一個簡單的運算器(保留兩位小數(shù)點),如果由鍵盤輸入10+50,計算機可以輸出結果60.00;如果輸入86,計算機輸出48.00;如果輸入20/4,

16、計算機輸出5.00;如果輸入8-6,計算機輸出2.00,請在空處填上適當?shù)拇a,運行通過后并提交。#includestdio.hvoid main()float a,b,c;char op;scanf(%f%c%f,switch(op);casecasecase+:-:*:;_;_;case/:_;default:printf(error);return;printf(result=第一組自測數(shù)據(jù)鍵盤輸入45*2正確輸出90,c);第二組自測數(shù)據(jù)鍵盤輸入50.1-23正確輸出27.107參考程序:#includeint main()float a,b,c;char op;scanf(%f%c%

17、f,&a,&op,&b);switch(op)case+:c=a+b;break;case-:c=a-b;break;case*:c=a*b;break;case/:c=a/b;break;default:printf(error);break;printf(result=%.2f,c);8實驗5循環(huán)結構程序設計(一)一、實驗目的(1)熟悉掌握用while語句、do-while語句和for語句實現(xiàn)循環(huán)的方法。(2)掌握在程序設計中用循環(huán)實現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。二、實驗內容題目1024:計算階乘輸入正整數(shù)n,計算n!,結果用長整型數(shù)表示(注n!=1*2*3*.*n)第一組自測數(shù)

18、據(jù)鍵盤輸入5正確輸出120參考程序:#includemain()第二組自測數(shù)據(jù)鍵盤輸入8正確輸出40320long i,n=1,a;scanf(%ld,&a);for(i=1;i=a;i+)n=n*i;printf(%ldn,n);題目1025:計算數(shù)列和有數(shù)列1,3,5,7,9,11,現(xiàn)要求由鍵盤輸入n,計算輸出該數(shù)列的前n項和。第一組自測數(shù)據(jù)鍵盤輸入2正確輸出4第二組自測數(shù)據(jù)鍵盤輸入5正確輸出259參考程序:#includemain()long n,sum=0,i,t=1;scanf(%ld,&n);for(i=1;i=n;i+)sum=sum+t;t=t+2;printf(%ldn,su

19、m);或#includemain()long n,sum;scanf(%ld,&n);sum=n*n;printf(%ld,sum);注:評判系統(tǒng)不對程序實現(xiàn)細節(jié)進行分析,只對運行結果進行評測。題目1026:累加一行字符中的數(shù)字由鍵盤輸入一行字符(總字符個數(shù)從1個至80個均有可能,以回車符表示結束),將其中每個數(shù)字字符所代表的數(shù)值累加起來,輸出結果。第一組自測數(shù)據(jù)鍵盤輸入abc123正確輸出6第二組自測數(shù)據(jù)鍵盤輸入A6H7T+65正確輸出24提示(1)可以使用下面程序段逐個讀入鍵盤輸入的一行字符charch;while(ch=getchar()!=n)(2)數(shù)字字符轉為對應的數(shù)值可用a=ch-

20、0參考程序:#includemain()char c;int s=0,a;while(c=getchar()!=n)if(c=0&c=9)a=c-48;s=s+a;printf(%d,s);10題目1029:求最大公約數(shù)由鍵盤輸入兩個正整數(shù)m、n(m、n用長整數(shù)表示),計算它們的最大公約數(shù)。第一組自測數(shù)據(jù)鍵盤輸入16,24正確輸出8第二組自測數(shù)據(jù)鍵盤輸入17,25正確輸出1提示公約數(shù)是既能整除m又能整除n的數(shù),題目要求滿足這一條件的最大的一個。參考程序:#includemain()long r,m,n,temp;scanf(%ld,%ld,&m,&n);while(m!=0)r=n%m;n=m

21、;m=r;printf(%ldn,n);或#includemain()long m,n,t,i,s;scanf(%ld,%ld,&m,&n);t=mn?n:m;for(i=t-1;i=1;i-)if(m%i=0&n%i=0)s=i;break;printf(%d,s);題目1030:字符變換由鍵盤輸入一個句子(總字符個數(shù)從1個至80個均有可能,以回車符表示結束),將其中的大寫字符變成小寫(其它類型的字符不變),最后輸出變換后的句子。第一組自測數(shù)據(jù)鍵盤輸入How Are You?正確輸出how are you?第二組自測數(shù)據(jù)鍵盤輸入ThiS IS My fIrSt C ProgrAm!正確輸出t

22、his is my first c program!11參考程序:#includemain()char c;while(c=getchar()!=n)if(c=A&c=Z)c=c+32;putchar(c);題目1037:計算數(shù)列和有數(shù)列:編程實現(xiàn),由鍵盤輸入n,計算輸出數(shù)列前n項和。(結果保留四位小數(shù))第一組自測數(shù)據(jù)鍵盤輸入20正確輸出32.6603參考程序:#includemain()第二組自測數(shù)據(jù)鍵盤輸入30正確輸出88.0403int i,t,n;float a=2,b=1,s=0;scanf(%d,&n);for(i=1;i=n;i+)s=s+a/b;t=a;a=a+b;b=t;pr

23、intf(%.4fn,s);題目1044:輸出最小值從鍵盤輸入十個整數(shù),輸出最小值自測數(shù)據(jù)鍵盤輸入124576 875 8743 5599 21正確輸出512參考程序:#includestdio.hmain()int i,t,min;scanf(%d,&min);for(i=1;i10;i+)scanf(%d,&t);if(tmin)min=t;printf(%dn,min);題目1031:統(tǒng)計單詞個數(shù)由鍵盤輸入一個句子(總字符個數(shù)從1個至80個均有可能,以回車符表示結束),以空格分割單詞,要求輸出單詞的個數(shù)。第一組自測數(shù)據(jù)鍵盤輸入How Are You?正確輸出3第二組自測數(shù)據(jù)鍵盤輸入The

24、re are many students and manytrees!正確輸出7參考程序:#includemain()int i,num=0,word=0;char c;for(i=0;(c=getchar()!=n;i+)if(c=)word=0;else if(word=0)word=1;num+;printf(%d,num);題目1042:百萬富翁一個百萬富翁遇到一個陌生人,陌生人找他談了一個換錢的計劃。該計劃如下:我每天給你m元,而你第一天只需給我一分錢。第二天我仍給你m元,你給我2分錢。第三天,我仍給你m元,你給我4分錢。依次類推,你每天給我的錢是前一天的兩倍,直到一個月(38)天。

25、百萬富翁很高興,欣然接受這個契約。現(xiàn)要求,編寫一個程序,由鍵盤輸入m,計算多少天后,百萬富翁開始虧錢。第一組自測數(shù)據(jù)鍵盤輸入100正確輸出18第二組自測數(shù)據(jù)鍵盤輸入1000013正確輸出參考程序:#include#includemain()25int n,m,i;scanf(%d,&m);for(i=1;i=0)break;printf(%d,i-1);14實驗6循環(huán)結構程序設計(二)一、實驗目的(1)進一步熟悉掌握用while語句、do-while語句和for語句實現(xiàn)循環(huán)的方法。(2)掌握在程序設計中使用多重循環(huán)。二、實驗內容題目1028:求素數(shù)輸出2到200之間(包括2、200)的所有素數(shù)

26、(注:要求1行1個素數(shù),按由小到大的順序輸出)。提示采用雙重循環(huán),外層循環(huán)產(chǎn)生2到200之間的數(shù),內層循環(huán)對數(shù)進行判斷是否為素數(shù)。參考程序:#include#includemain()int m,k,i;for(m=2;m=200;m+)k=sqrt(m);for(i=2;ik)printf(%dn,m);題目1137:找到滿足要求的數(shù)字1.#includevoid main()int a,b,n;for(n=0;n=9999;n+)if(n%7=0)a=n;while(a!=0)b=a/10;b=a-b*10;a=a/10;if(b=5)printf(%dn,n);break;(在C中先打印

27、15000的,再打印50009999的。或者在GCC環(huán)境下運行)2.#include#includeint main()int i,j,k,m,n;for(i=0;i=9;i+)for(j=0;j=9;j+)for(k=0;k=9;k+)for(m=1;m=9;m+)n=i*1000+j*100+k*10+m;if(n%7=0)&(n%1000=5|n%100=5|n%10=5)printf(%dn,n);return 0;3.#includevoid p(int i)int j;for(j=i;j0;j/=10)if(j%10=5)printf(%dn,i);break;int main()

28、int i;for(i=7;i=9999;i+)if(i%7=0)p(i);單元測試:打印星號空心菱形#includeint main()int i,j,k,line,m;printf(請輸入行數(shù):);scanf(%d,&line);m=(line+1)/2;for(i=1;i=m;i+)for(k=0;km-i;k+)printf();printf(*);if(i=1)printf(n);continue;for(j=0;j0;i-)for(k=0;km-i;k+)printf();printf(*);if(i=1)printf(n);continue;for(j=0;j2*i-3;j+)p

29、rintf();printf(*);printf(n);return 0;題目1035:打印菱形由鍵盤輸入正數(shù)n,要求輸出2*n+1行的菱形圖案。要求菱形左邊緊靠屏幕左邊。第一組自測數(shù)據(jù)鍵盤輸入3正確輸出*第二組自測數(shù)據(jù)鍵盤輸入2正確輸出*15參考程序:#includestdio.h#includemath.hmain()int n,i,j,k;scanf(%d,&n);for(i=1;i=2*n+1;i+)k=abs(n+1-i);for(j=1;j=k;j+)printf();for(j=1;j=2*n+1-2*k;j+)printf(*);printf(n);題目1038:打印圖案由鍵盤

30、輸入正數(shù)n,要求輸出中間數(shù)字為n的菱形圖案。要求菱形左邊緊靠屏幕左邊。第一組自測數(shù)據(jù)鍵盤輸入4正確輸出1121123211234321123211211參考程序:#include#includemain()第二組自測數(shù)據(jù)鍵盤輸入3正確輸出1121123211211int n,i,j,k,h;scanf(%d,&n);for(i=-n+1;i=n-1;i+)for(j=0;jabs(i);j+)printf();for(k=1;k=1;h-)printf(%d,h);printf(n);16實驗7數(shù)組一、實驗目的(1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出方法。(2)掌握與數(shù)組有關的算法。

31、二、實驗內容題目1039:倒序由鍵盤輸入10個整數(shù),倒序輸出。(數(shù)字間由一個空格分隔)自測數(shù)據(jù)鍵盤輸入70514 2019 299671366正確輸出661367 992 1920 14570參考程序:#includemain()int a10;int i;for(i=0;i=0;i-)printf(%dn,ai);題目1040:統(tǒng)計不同數(shù)字個數(shù)由鍵盤輸入20個整數(shù),統(tǒng)計不同數(shù)字的個數(shù)。自測數(shù)據(jù)鍵盤輸入70514 2219 299671366 5 93 44 38 22 11 39 22 33 11正確輸出16提示上述答案中,因為5有1個重復數(shù)字,11有1個重復數(shù)字,22有2個重復數(shù)字,故不同

32、數(shù)字有16個,分別是705142219299 67 13 6693 44 38 11 39 3317參考程序:#includestdio.hmain()int a20;int i,t,p=0;for(i=0;i20;i+)scanf(%d,&ai);for(t=0;ti;t+)if(at=ai)break;if(t=i)p+;printf(%d,p);題目1062:打印矩陣由鍵盤輸入一個34的矩陣,要求輸出它的轉置矩陣。自測數(shù)據(jù)鍵盤輸入正確輸出1 6 9 31 1 0 21 9 8 9169311021989參考程序:#includemain()int a34,b43,i,j;for(i=0;

33、i3;i+)for(j=0;j4;j+)scanf(%d,&aij);bji=aij;for(i=0;i4;i+)for(j=0;j3;j+)printf(%d,bij);printf(n);題目1047:冒泡排序由鍵盤輸入10個數(shù),用“冒泡法”對10個數(shù)從小到大排序,并按格式要求輸出。代碼如下,請?zhí)畛渫暾?。?shù)字間由一個空格分隔。#incudestdio.hmain()int a10,i,j,t;18for(i=0;i10;i+)scanf(%d,_);for(_)for(j=0;j_;j+)if(_)_for(i=0;i10;i+)printf(%d,ai);自測數(shù)據(jù)鍵盤輸入70514 20

34、19 299671366正確輸出251314192066677099參考程序:#includemain()int a10;int i,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;for(i=0;i=0;i-)an1-1-i=si-0;gets(s);n2=strlen(s);for(i=n2-1;i=0;i-)bn2-1-i=si-0;if(n1n2)max=n1;else max=n2;for(i=0;i0)printf(%d,cmax);for(i=max-1;i=0;i-

35、)printf(%d,ci);題目:找矩陣中的鞍點由鍵盤輸入一個34(3行4列)的矩陣,輸出矩陣中的鞍點(即在矩陣行中最大,列中最小的數(shù))。若沒有鞍點,輸出“NO”字樣。自測數(shù)據(jù)鍵盤輸入87901109870989745210 65120 30正確輸出11020參考程序:#includemain()int i,j,k,a34,max,maxj,flag;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);for(i=0;i3;i+)max=ai0;maxj=0;for(j=0;jmax)max=aij;maxj=j;flag=1;for(k=0;kakmaxj

36、)flag=0;break;if(flag)printf(%d,max);break;if(!flag)printf(NO);第7單元單元測試:打印楊輝三角#includeint c(x,y)/求楊輝三角形的第x行第y列的值int x,y;int z;if(y=1)|(y=x+1)/若為x行的第1或第x+1列,剛輸出1return(1);z=c(x-1,y-1)+c(x-1,y);/否則,其值為前一行中第y-1列與第y列值之和return(z);void main()int i,j,n=13;printf(N=);while(n12)scanf(%d,&n);/控制輸入正確的值以保證屏幕顯示的

37、圖形正確for(i=0;i=n;i+)/控制輸出N行/for(j=0;j12-i;j+)/控制輸出第i行前面的空格/printf();for(j=1;ji+2;j+)/輸出第i行的第j個值printf(%6d,c(i,j);printf(n);#includestdio.h#define N 50void yang(int aN,int n)int i,j;for(i=0;in;i+)ai0=1;aii=1;for(i=2;in;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;void main()int n,j,i;int aNN;scanf(%d,&n);yang(a

38、,n);for(i=0;in;i+)for(j=0;j=i;j+)printf(%d,aij);putchar(n);3.#includemain()long i,j,n,k;scanf(%ld,&n);for(i=1;i=n;i+)k=1;for(j=1;ji;j+)printf(%ld,k);k=k*(i-j)/j;printf(1n);21實驗8字符數(shù)組的應用一、實驗目的(1)掌握字符數(shù)組和字符串函數(shù)的使用。(2)掌握與字符串處理有關的算法。二、實驗內容題目1121:定義存貯字符串的字符數(shù)組在下面程序中填充定義字符數(shù)組的語句,使程序完整。#includestring.hvoidmain(

39、)char s80;/*定義字符數(shù)組s*/strcpy(s,abcdefghijklmn);printf(%s,s);參考程序:題目1123:字符串的輸入與輸出下面程序實現(xiàn)從鍵盤讀入字符串,然后輸出到屏幕,請?zhí)畛浔匾恼Z句。#includestdio.hvoidmain()chars50;printf(Whats your name?);gets(s);/*由鍵盤讀入字符串*/printf(Your name is,);printf(%s,s);/*打印字符串*/參考程序:題目1122:字符串的合并從鍵盤輸入3個字符串(每個字符串以回車符做為結束標志),將3個字符串以輸入先后順序合并到字符串s

40、中,請?zhí)羁帐褂贸绦蛲暾?includestdio.h#includestring.hmain()char s100=;char a30;gets(a);strcat(s,a);22gets(a);strcat(s,a);gets(a);strcat(s,a);/*可以寫多行代碼*/printf(%s,s);自測數(shù)據(jù)鍵盤輸入123正確輸出123abc456abc456參考程序:題目1050:尋找字符串由鍵盤輸入兩個字符串(假設第一個字符串必包含第二個字符串,如第一個字符串為ABCDEF,第二個為CDE,則CDE包含在ABCDEF中),現(xiàn)要求編程輸出第二字符串在第一行字符串中出現(xiàn)的位置。(如果第

41、二個字符串在第一個字符串中出現(xiàn)多次,則以最前出現(xiàn)的為準)第一組自測數(shù)據(jù)鍵盤輸入ABCDEFGDE正確輸出4第二組自測數(shù)據(jù)鍵盤輸入hellhello!hello正確輸出5提示方法1:建立雙重循環(huán),外層循環(huán)變量指示第一個串的查找起始位置,內層循環(huán)從起始位置開始判斷第二個字符中是否出現(xiàn)在此處;方法2:使用字符串函數(shù)strstr()。參考程序:#includemain()stdio.hint i,j;char a80,b80;gets(a);gets(b);for(i=0;ai!=0;i+)for(j=0;bj!=0;j+)if(ai+j!=bj)break;if(bj=0)break;if(ai!=

42、0)printf(%d,i+1);else printf(Not Found);判斷字符串是否回文#include#includeint main()int i,j,len;char str1200;while(gets(str)!=NULL)len=strlen(str);for(i=0,j=len-1;i=j)printf(Yesn);return 0;23實驗9函數(shù)的基本應用一、實驗目的(1)掌握定義函數(shù)的方法。(2)掌握函數(shù)實參與形參的對應關系,以及“值傳遞”的方式。(3)掌握函數(shù)的嵌套調用和遞歸調用的方法。(4)掌握全局變量和局部變量、動態(tài)變量、靜態(tài)變量的概念和使用方法。二、實驗內容

43、題目1059:函數(shù)定義下面是使用輾轉相除法,求最大公約數(shù)的程序,請補充完整程序中函數(shù)的定義與調用。#includestdio.hint f(int m,int n)int r;while(r=m%n)!=0)m=n;n=r;returnn;main()int a,b,n;scanf(%d%d,&a,&b);printf(%dn,f(a,b);題目1083:編寫函數(shù)計算階乘下面程序實現(xiàn)由鍵盤讀入整數(shù)n,計算并輸出n!,請補充完整計算階乘的函數(shù)。long fanc(int a)long i,n=1;for(i=1;i=a;i+)n=n*i;return n;voidmain()int n;scan

44、f(%d,&n);24printf(%ld,fanc(n);題目1124:函數(shù)中的變量寫出下面程序的運行結果:int f1(int x)static int z=3,y=0;y+;z+;return(x+y+z);main()int a=1,k;for(k=0;k1)fun(i/2)printf(%d,i%2);main();int n;scanf(%d,&n);fun(n);25實驗10指針與結構體一、實驗目的(1)通過實驗進一步掌握指針的概念,會定義和使用指針變量。(2)能正確使用數(shù)組的指針和指向數(shù)組的指針變量。(3)能正確使用字符串的指針和指向字符中的指針變量。(4)掌握結構體類型變量的

45、定義和使用。二、實驗內容題目1091:交換兩數(shù),由大到小輸出下面程序,交換兩數(shù),使兩數(shù)由大到小輸出,請?zhí)羁?includestdio.hvoid swap(int*p1,int*p2)int temp;temp=*p1;*p1=*p2;*p2=temp;int main()int a,b;int*pa,*pb;scanf(%d%d,&a,&b);pa=&a;pb=&b;if(anext=NULL;elsewhile(p0-nump1-num)&(p1-next!=NULL)p2=p1;p1=p1-next;if(p0-numnum)if(head=p1)head=p0;else p2-next=p0;p0-n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論