




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)指導(dǎo)與習(xí)題參考答案華南農(nóng)業(yè)大學(xué)上機(jī)實(shí)驗(yàn)實(shí)驗(yàn) 1 C語言程序初步一、實(shí)驗(yàn)?zāi)康?了解所用的計(jì)算機(jī)系統(tǒng)的根本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。2了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè) C程序。3通過運(yùn)行簡單的 C程序,初步了解 C程序的特點(diǎn)。4在教師的指導(dǎo)下,學(xué)會(huì)使用 JudgeOnline實(shí)驗(yàn)系統(tǒng)。二、實(shí)驗(yàn)內(nèi)容1. 運(yùn)行第一個(gè) C 程序題目:The first C Program將以下程序輸入 TC或 VC+,編譯、連接和運(yùn)行該程序。void main()printf(The first C Programn);具體操作步驟以 Turbo C 上的操作為例1Windows
2、進(jìn)入后,按照第一章中介紹的方法,進(jìn)入 Turbo C。2在編輯窗口中輸入程序。3保存程序,取名為 a1.c。4按照第一章中介紹的方法,編譯、連接和運(yùn)行程序。2.在 JudgeOnline系統(tǒng)中提交實(shí)現(xiàn)了計(jì)算 a+b功能的程序題目 1001:計(jì)算 a+b由鍵盤輸入兩個(gè)整數(shù),計(jì)算并輸出兩個(gè)整數(shù)的和。實(shí)現(xiàn)該功能的程序如下,void main()inta, b;scanf(%d%d, &a, &b);1printf(%d, a + b);1在程序編輯窗口中輸入程序。2保存程序,取名為 a2.c。3按照前二章中介紹的方法,編譯、連接和運(yùn)行程序。4在程序運(yùn)行過程中,輸入1530(表示輸入回車符)5如果看到
3、如下輸出結(jié)果,那么說明 15+30的結(jié)果正確,如果得不到如下結(jié)果,那么需檢查并更正程序。456按照第三章中介紹的方法進(jìn)入 JudgeOnline實(shí)驗(yàn)系統(tǒng)。7顯示題目列表,點(diǎn)擊題號(hào)為 1001,題名為“計(jì)算 a+b的題目。8查看完題目要求后,點(diǎn)擊頁面下端的“sumbit,參照第二章提交程序的方法提交程序 a2.c。9查看評(píng)判結(jié)果,如果得到“accepted那么該題通過,否那么返回第一步檢查程序是否正確。2實(shí)驗(yàn) 2根本數(shù)據(jù)類型、運(yùn)算和表達(dá)式一、實(shí)驗(yàn)?zāi)康?掌握 C語言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型和實(shí)型的變量,以及對(duì)它們賦值的方法。2掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。3學(xué)會(huì)使用 C的有關(guān)算術(shù)運(yùn)算符,
4、以及包含這些運(yùn)算符的表達(dá)式,特別是自加+和自減-運(yùn)算符的使用。4進(jìn)一步熟悉 C程序的編輯、編譯、連接和運(yùn)行的過程。二、實(shí)驗(yàn)內(nèi)容1.變量的定義題目 1117:變量定義,按要求完成程序下面給出一個(gè)可以運(yùn)行的程序,但是缺少局部語句,請(qǐng)按右邊的提示補(bǔ)充完整缺少的語句。voidmain()intinta, b;i, j;/*定義整型變量 a和 b*/*定義實(shí)型變量 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將代碼補(bǔ)充完整;2在 TC 或 VC+上運(yùn)行通過;3在 JudgeOnline 實(shí)驗(yàn)系
5、統(tǒng)上提交;2. 賦值表達(dá)式與賦值語句題目 1118:賦值表達(dá)式與賦值語句,寫出程序運(yùn)行結(jié)果閱讀下面程序,寫出運(yùn)行結(jié)果: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);運(yùn)行結(jié)果為:3.500000,3,330,J,提示賦值語句具有類型轉(zhuǎn)換的功能,但可能會(huì)改變數(shù)據(jù)。3. 根本運(yùn)算題目 1119:根本運(yùn)算,寫出程序運(yùn)行結(jié)果閱讀下面程序,寫出運(yùn)行結(jié)果:void main() int a, b, c;float d=15, e, f;a=35%7;b=15/1
6、0;c=b+;e=15/10;f=d/10;printf(%d,%d,%d,%f,%f,%f, a,b,c,d,e,f);運(yùn)行結(jié)果為:0,2,1,15.000000,1.000000,1.500000提示除法分整除與普通除法之分。4實(shí)驗(yàn) 3根本輸入與輸出一、實(shí)驗(yàn)?zāi)康?熟練掌握 putchar、getchar、printf、scanf函數(shù)的使用方法。2掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。二、實(shí)驗(yàn)內(nèi)容題目 1126:字符的輸入與輸出編程實(shí)現(xiàn)由鍵盤輸入一個(gè)字符后,在屏幕上輸出該字符。第一組自測(cè)數(shù)據(jù)鍵盤輸入a正確輸出a參考程序:#include stdio.hmain()第二組
7、自測(cè)數(shù)據(jù)鍵盤輸入+正確輸出+char ch;ch = getchar();putchar(ch);題目 1127:計(jì)算加法編程實(shí)現(xiàn)由鍵盤輸入一個(gè)加法式,輸出正確的結(jié)果。兩個(gè)加數(shù)均為整數(shù)第一組自測(cè)數(shù)據(jù)鍵盤輸入10+20正確輸出30參考程序:#include stdio.hmain()第二組自測(cè)數(shù)據(jù)鍵盤輸入-15+60正確輸出45int a, b;scanf(%d%*c%d, &a,&b);printf(%d, a+b);題目 1014:求圓面積由鍵盤輸入圓半徑 r,請(qǐng)計(jì)算該圓的面積。注:取 3.14159,結(jié)果保存兩位小數(shù)位;另外,程序只要能對(duì) r在 0到 10000范圍的情況輸出正確答案即可第
8、一組自測(cè)數(shù)據(jù)鍵盤輸入565.2正確輸出13355.02第二組自測(cè)數(shù)據(jù)鍵盤輸入11.2正確輸出394.08提示結(jié)果保存兩位小數(shù)可采用 printf函數(shù)的格式控制字符來實(shí)現(xiàn)。參考程序:#include stdio.hmain()float area,r;scanf(%f,&r);area=3.14159*r*r;printf(%0.2f,area);2題目 1015:計(jì)算攝氏溫度值從鍵盤輸入一個(gè)華氏溫度值,要求按格式輸出其對(duì)應(yīng)的攝氏溫度值,精確到小數(shù)點(diǎn)后兩位。數(shù)學(xué)公式描述為:C59(F 32)第一組自測(cè)數(shù)據(jù)鍵盤輸入100正確輸出37.78提示注意公式中的除為普通除法。參考程序:#includevo
9、id main()第二組自測(cè)數(shù)據(jù)鍵盤輸入100正確輸出37.78float f,c;scanf(%f,&f);c=5.0/9*(f-32);printf(%.2f,c);3實(shí)驗(yàn) 4選擇結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?了解 C語言表示邏輯的方法以 0代表“假,以非 0代表“真。2學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。3熟練掌握 if語句和 switch語句。4結(jié)合程序掌握一些簡單的算法。二、實(shí)驗(yàn)內(nèi)容題目 1120:判斷點(diǎn)是否在圓上由鍵盤輸入一個(gè)點(diǎn)的坐標(biāo),要求編程判斷這個(gè)點(diǎn)是否在單位圓上,點(diǎn)在圓上輸出 Y,不在圓上輸出N。使用小數(shù)點(diǎn)后 3位精度進(jìn)行判斷。第一組自測(cè)數(shù)據(jù)鍵盤輸入0.707,0.707正確輸出
10、Y第二組自測(cè)數(shù)據(jù)鍵盤輸入0.5,0.5正確輸出N提示1平面上的點(diǎn)與圓的關(guān)系分為在圓內(nèi)、在圓上、在圓外三種,此題要求判斷是否在圓上;2判斷兩實(shí)數(shù)相等采用判斷這兩實(shí)數(shù)的差的絕對(duì)值小于規(guī)定誤差精度此題為 0.001的方法實(shí)現(xiàn)。參考程序:#include stdio.h#include math.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 i
11、f(n9999)else if(n999)else if(n99)place=5;place=4;place=3;else if(n9)place=2;elseplace=1;printf(%ldn,place);題目 1018:數(shù)的排序由鍵盤輸入三個(gè)整數(shù) a、b、c,按從小到大的順序輸出這三個(gè)數(shù)。第一組自測(cè)數(shù)據(jù)鍵盤輸入65,45,90正確輸出45,65,90參考程序:#includemain()第二組自測(cè)數(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;
12、if(bc) t=b;b=c;c=t;printf(%d,%d,%d,a,b,c);題目 1016:字符變換由鍵盤輸入 5個(gè)字符,將其中的大寫字母變成小寫,其它類型的字符不變,并按輸入順序逐個(gè)輸出。第一組自測(cè)數(shù)據(jù)鍵盤輸入ApPLe正確輸出apple第二組自測(cè)數(shù)據(jù)鍵盤輸入a+B=5正確輸出a+b=5提示下面代碼實(shí)現(xiàn)由鍵盤讀入一個(gè)字符,并按題意處理后輸出chara;a=getchar();if(a=A & a=Z) a=a+32;putchar(a);5現(xiàn)在,題目要求處理 5個(gè)字符,怎么做呢?請(qǐng)自己思考參考程序:#include main()char a,b,c,d,e;scanf(%c%c%c%
13、c%c,&a,&b,&c,&d,&e);if(a=A) a=a+32;if(b=A) b=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個(gè)整數(shù),逐個(gè)判斷它們能否被 27整除,能的輸出“YES,不能的輸出“NO注意,輸出時(shí),一個(gè)判斷結(jié)果占一行,5個(gè)數(shù)的判斷共占 5行。第一組自測(cè)數(shù)據(jù)鍵盤輸入第二組自測(cè)數(shù)據(jù)鍵盤輸入82717577325 548 27 17577 325 54正確輸出NOYESYESNOYES提示整除即除得余數(shù)為 0參考程序:#incl
14、ude stdio.hmain()正確輸出NOYESYESNOYESint a,b,c,d,e;scanf(%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:正負(fù)
15、奇偶判斷由鍵盤輸入非零整數(shù) x,判斷該數(shù)正負(fù),正數(shù)輸出 positive,負(fù)數(shù)輸出 negative,接著判斷該數(shù)的奇偶性,奇數(shù)輸出 odd,偶數(shù)輸出 even。第一組自測(cè)數(shù)據(jù)鍵盤輸入-43正確輸出negativeodd第二組自測(cè)數(shù)據(jù)鍵盤輸入698正確輸出參考程序:#include stdio.hmain()positiveevenint n;scanf(%d,&n);if(n0)printf(negativen);else printf(positiven);if(n%2=0)printf(evenn);else printf(oddn);題目 1023:簡單計(jì)算器下面程序是實(shí)現(xiàn)一個(gè)簡單的運(yùn)
16、算器保存兩位小數(shù)點(diǎn),如果由鍵盤輸入 10+50,計(jì)算機(jī)可以輸出結(jié)果 60.00;如果輸入 86,計(jì)算機(jī)輸出 48.00;如果輸入 20/4,計(jì)算機(jī)輸出 5.00;如果輸入 8-6,計(jì)算機(jī)輸出 2.00,請(qǐng)?jiān)诳仗幪钌线m當(dāng)?shù)拇a,運(yùn)行通過后并提交。#include stdio.hvoid main()float a,b,c;char op;scanf(%f%c%f,switch (op);casecasecase+:-:*:;_;_;case/:_;default:printf(error);return ;printf(result=第一組自測(cè)數(shù)據(jù)鍵盤輸入45*2正確輸出90, c);第二組自測(cè)
17、數(shù)據(jù)鍵盤輸入50.1-23正確輸出27.107參考程序:#include int main()float a,b,c;char op;scanf(%f%c%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實(shí)驗(yàn) 5循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一一、實(shí)驗(yàn)?zāi)康?熟悉掌握用 while語句、do-while語句和 for語句實(shí)現(xiàn)循環(huán)的方法。2掌握在程序設(shè)計(jì)中用循環(huán)
18、實(shí)現(xiàn)一些常用算法如窮舉、迭代、遞推等。二、實(shí)驗(yàn)內(nèi)容題目 1024:計(jì)算階乘輸入正整數(shù) n,計(jì)算 n!,結(jié)果用長整型數(shù)表示注 n!=1*2*3*.*n第一組自測(cè)數(shù)據(jù)鍵盤輸入5正確輸出120參考程序:#includemain()第二組自測(cè)數(shù)據(jù)鍵盤輸入8正確輸出40320long i,n=1,a;scanf(%ld,&a);for(i=1;i=a;i+) n=n*i;printf(%ldn,n);題目 1025:計(jì)算數(shù)列和有數(shù)列 1,3,5,7,9,11,現(xiàn)要求由鍵盤輸入 n,計(jì)算輸出該數(shù)列的前 n項(xiàng)和。第一組自測(cè)數(shù)據(jù)鍵盤輸入2正確輸出4第二組自測(cè)數(shù)據(jù)鍵盤輸入5正確輸出259參考程序:#includ
19、emain() long n,sum=0,i,t=1;scanf(%ld,&n);for(i=1;i=n;i+) sum=sum+t;t=t+2;printf(%ldn,sum);或#include main() long n,sum;scanf(%ld,&n);sum=n*n;printf(%ld,sum);注:評(píng)判系統(tǒng)不對(duì)程序?qū)崿F(xiàn)細(xì)節(jié)進(jìn)行分析,只對(duì)運(yùn)行結(jié)果進(jìn)行評(píng)測(cè)。題目 1026:累加一行字符中的數(shù)字由鍵盤輸入一行字符總字符個(gè)數(shù)從 1個(gè)至 80個(gè)均有可能,以回車符表示結(jié)束,將其中每個(gè)數(shù)字字符所代表的數(shù)值累加起來,輸出結(jié)果。第一組自測(cè)數(shù)據(jù)鍵盤輸入abc123正確輸出6第二組自測(cè)數(shù)據(jù)鍵盤輸入A
20、6H7T+65正確輸出24提示1可以使用下面程序段逐個(gè)讀入鍵盤輸入的一行字符charch;while(ch=getchar()!=n)2數(shù)字字符轉(zhuǎn)為對(duì)應(yīng)的數(shù)值可用 a=ch-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ù)由鍵盤輸入兩個(gè)正整數(shù) m、nm、n用長整數(shù)表示,計(jì)算它們的最大公約數(shù)。第一組自測(cè)數(shù)據(jù)鍵盤輸入16,24正確輸出8第二組自測(cè)數(shù)據(jù)鍵盤輸入17,25正確輸出1提示公約數(shù)是既能整除 m又能整除 n的數(shù),題目
21、要求滿足這一條件的最大的一個(gè)。參考程序:#includemain() long r,m,n,temp;scanf(%ld,%ld,&m,&n);while(m!=0) r=n%m;n=m;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:字符變換由鍵盤輸入一個(gè)句子總字符個(gè)數(shù)從 1個(gè)至 80個(gè)均有可能,以回車符表示結(jié)束,將其中的大寫字符變成小寫其它類型的字
22、符不變,最后輸出變換后的句子。第一組自測(cè)數(shù)據(jù)鍵盤輸入How Are You?正確輸出how are you?第二組自測(cè)數(shù)據(jù)鍵盤輸入ThiS IS My fIrSt C ProgrAm!正確輸出this is my first c program!11參考程序:#include main()char c;while(c=getchar()!=n)if(c=A&c=Z)c=c+32;putchar(c);題目 1037:計(jì)算數(shù)列和有數(shù)列:編程實(shí)現(xiàn),由鍵盤輸入 n,計(jì)算輸出數(shù)列前 n項(xiàng)和。結(jié)果保存四位小數(shù)第一組自測(cè)數(shù)據(jù)鍵盤輸入20正確輸出32.6603參考程序:#includemain()第二組自測(cè)
23、數(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;printf(%.4fn,s);題目 1044:輸出最小值從鍵盤輸入十個(gè)整數(shù),輸出最小值自測(cè)數(shù)據(jù)鍵盤輸入124576 875 8743 5599 21正確輸出512參考程序:#include stdio.hmain() int i,t,min;scanf(%d, &min);for(i=1;i10;i+)scanf(%d, &t);if(tmin) min=t;printf(%dn,min);題目 10
24、31:統(tǒng)計(jì)單詞個(gè)數(shù)由鍵盤輸入一個(gè)句子總字符個(gè)數(shù)從 1個(gè)至 80個(gè)均有可能,以回車符表示結(jié)束,以空格分割單詞,要求輸出單詞的個(gè)數(shù)。第一組自測(cè)數(shù)據(jù)鍵盤輸入How Are You?正確輸出3第二組自測(cè)數(shù)據(jù)鍵盤輸入There 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:百萬富翁一個(gè)百萬富翁遇到一個(gè)陌生人,
25、陌生人找他談了一個(gè)換錢的方案。該方案如下:我每天給你 m元,而你第一天只需給我一分錢。第二天我仍給你 m元,你給我 2分錢。第三天,我仍給你 m元,你給我 4分錢。依次類推,你每天給我的錢是前一天的兩倍,直到一個(gè)月(38)天。百萬富翁很快樂,欣然接受這個(gè)契約?,F(xiàn)要求,編寫一個(gè)程序,由鍵盤輸入 m,計(jì)算多少天后,百萬富翁開始虧錢。第一組自測(cè)數(shù)據(jù)鍵盤輸入100正確輸出18第二組自測(cè)數(shù)據(jù)鍵盤輸入1000013正確輸出參考程序:#include #include main()25int n,m,i;scanf (%d,&m);for (i=1;i=0) break;printf(%d,i-1);14實(shí)
26、驗(yàn) 6循環(huán)結(jié)構(gòu)程序設(shè)計(jì)二一、實(shí)驗(yàn)?zāi)康?進(jìn)一步熟悉掌握用 while語句、do-while語句和 for語句實(shí)現(xiàn)循環(huán)的方法。2掌握在程序設(shè)計(jì)中使用多重循環(huán)。二、實(shí)驗(yàn)內(nèi)容題目 1028:求素?cái)?shù)輸出 2到 200之間包括 2、200的所有素?cái)?shù)注:要求 1行 1個(gè)素?cái)?shù),按由小到大的順序輸出。提示采用雙重循環(huán),外層循環(huán)產(chǎn)生 2到 200之間的數(shù),內(nèi)層循環(huán)對(duì)數(shù)進(jìn)行判斷是否為素?cái)?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.#inc
27、ludevoid 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中先打印15000的,再打印50009999的?;蛘咴贕CC環(huán)境下運(yùn)行)2.#include #include int 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; i
28、f(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()int i;for(i=7;i=9999;i+)if(i%7=0)p(i);單元測(cè)試:打印星號(hào)空心菱形#includeint main()int i,j,k,line,m;printf(請(qǐng)輸入行數(shù):);scanf(%d,&line);m=(line+1)/2;for(i=1;i=m;i+)for(k=0;k
29、m-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+)printf( );printf(*);printf(n);return 0;題目 1035:打印菱形由鍵盤輸入正數(shù) n,要求輸出 2*n+1行的菱形圖案。要求菱形左邊緊靠屏幕左邊。第一組自測(cè)數(shù)據(jù)鍵盤輸入3正確輸出*第二組自測(cè)數(shù)據(jù)鍵盤輸入2正確輸出*15參考程序:#include stdio.h#incl
30、ude math.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:打印圖案由鍵盤輸入正數(shù) n,要求輸出中間數(shù)字為 n的菱形圖案。要求菱形左邊緊靠屏幕左邊。第一組自測(cè)數(shù)據(jù)鍵盤輸入4正確輸出1121123211234321123211211參考程序:# include# includemain()第二組自測(cè)數(shù)據(jù)鍵盤輸入3正確輸出1121123211211int n,i,
31、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實(shí)驗(yàn) 7數(shù)組一、實(shí)驗(yàn)?zāi)康?掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出方法。2掌握與數(shù)組有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容題目 1039:倒序由鍵盤輸入 10個(gè)整數(shù),倒序輸出。數(shù)字間由一個(gè)空格分隔自測(cè)數(shù)據(jù)鍵盤輸入70514 2019 299671366正確輸出661367 992 1920 14570參考程序:#includemain()int a10;int i;for(i=0;i=0;
32、i-) printf(%dn,ai);題目 1040:統(tǒng)計(jì)不同數(shù)字個(gè)數(shù)由鍵盤輸入 20個(gè)整數(shù),統(tǒng)計(jì)不同數(shù)字的個(gè)數(shù)。自測(cè)數(shù)據(jù)鍵盤輸入70514 2219 299671366 5 93 44 38 22 11 39 22 33 11正確輸出16提示上述答案中,因?yàn)?5有 1個(gè)重復(fù)數(shù)字,11有 1個(gè)重復(fù)數(shù)字,22有 2個(gè)重復(fù)數(shù)字,故不同數(shù)字有 16個(gè),分別是 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
33、;ti;t+)if(at=ai)break;if(t=i)p+;printf(%d,p);題目 1062:打印矩陣由鍵盤輸入一個(gè) 34的矩陣,要求輸出它的轉(zhuǎn)置矩陣。自測(cè)數(shù)據(jù)鍵盤輸入正確輸出1 6 9 31 1 0 21 9 8 9169311021989參考程序:#includemain()int a34,b43,i,j;for(i=0;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個(gè)數(shù),用“冒泡法對(duì) 10個(gè)
34、數(shù)從小到大排序,并按格式要求輸出。代碼如下,請(qǐng)?zhí)畛渫暾?。?shù)字間由一個(gè)空格分隔。#incude stdio.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);自測(cè)數(shù)據(jù)鍵盤輸入70514 2019 299671366正確輸出251314192066677099參考程序:#includemain()int a10;int i,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)for(
35、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-)printf(%d,ci);題目:找矩陣中的鞍點(diǎn)由鍵盤輸入一個(gè) 343行 4列的矩陣,輸出矩陣中的鞍點(diǎn)即在矩陣行中最大,列中最小的數(shù)。假設(shè)沒有鞍點(diǎn),輸出“NO字樣。自測(cè)數(shù)據(jù)鍵盤輸入87901109870989745210
36、 65120 30正確輸出11020參考程序:#include main()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) flag=0; break; if(flag)printf(%d,max);break;if(!flag)printf(NO);第7單元單元測(cè)試:打印楊輝三角#include int c(x,y) /求楊輝三角形的第
37、x行第y列的值int x,y; int z; if(y=1)|(y=x+1) /假設(shè)為x行的第1或第x+1列,剛輸出1 return (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); /控制輸入正確的值以保證屏幕顯示的圖形正確for(i=0;i=n;i+) /控制輸出N行 /for(j=0;j12-i;j+) /控制輸出第i行前面的空格 /printf( ); for(j=1;ji+2;j+) /輸出第
38、i行的第j個(gè)值 printf(%6d,c(i,j); printf(n);#include stdio.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,n); for(i=0;in;i+) for(j=0;j=i;j+) printf(%d,aij); putchar(n); 3.#include main()
39、 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實(shí)驗(yàn) 8字符數(shù)組的應(yīng)用一、實(shí)驗(yàn)?zāi)康?掌握字符數(shù)組和字符串函數(shù)的使用。2掌握與字符串處理有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容題目 1121:定義存貯字符串的字符數(shù)組在下面程序中填充定義字符數(shù)組的語句,使程序完整。#include string.hvoidmain()char s80;/*定義字符數(shù)組 s*/strcpy(s, abcdefghijklmn);printf(%s, s);參考程序:
40、題目 1123:字符串的輸入與輸出下面程序?qū)崿F(xiàn)從鍵盤讀入字符串,然后輸出到屏幕,請(qǐng)?zhí)畛浔匾恼Z句。#include stdio.hvoidmain()chars50;printf(Whats your name?);gets(s);/*由鍵盤讀入字符串*/printf(Your name is , );printf(%s, s); /*打印字符串*/參考程序:題目 1122:字符串的合并從鍵盤輸入 3個(gè)字符串每個(gè)字符串以回車符做為結(jié)束標(biāo)志,將 3個(gè)字符串以輸入先后順序合并到字符串 s中,請(qǐng)?zhí)羁帐褂贸绦蛲暾?include stdio.h#include string.hmain()char
41、s100=;char a30;gets(a); strcat(s, a);22gets(a); strcat(s, a);gets(a); strcat(s, a);/*可以寫多行代碼*/printf(%s, s);自測(cè)數(shù)據(jù)鍵盤輸入123正確輸出123abc456abc456參考程序:題目 1050:尋找字符串由鍵盤輸入兩個(gè)字符串假設(shè)第一個(gè)字符串必包含第二個(gè)字符串,如第一個(gè)字符串為 ABCDEF,第二個(gè)為 CDE,那么 CDE包含在 ABCDEF中,現(xiàn)要求編程輸出第二字符串在第一行字符串中出現(xiàn)的位置。如果第二個(gè)字符串在第一個(gè)字符串中出現(xiàn)屢次,那么以最前出現(xiàn)的為準(zhǔn)第一組自測(cè)數(shù)據(jù)鍵盤輸入ABCDE
42、FGDE正確輸出4第二組自測(cè)數(shù)據(jù)鍵盤輸入hellhello!hello正確輸出5提示方法 1:建立雙重循環(huán),外層循環(huán)變量指示第一個(gè)串的查找起始位置,內(nèi)層循環(huán)從起始位置開始判斷第二個(gè)字符中是否出現(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!=0) printf(%d,i+1);else printf(Not Fo
43、und);判斷字符串是否回文#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實(shí)驗(yàn) 9函數(shù)的根本應(yīng)用一、實(shí)驗(yàn)?zāi)康?掌握定義函數(shù)的方法。2掌握函數(shù)實(shí)參與形參的對(duì)應(yīng)關(guān)系,以及“值傳遞的方式。3掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。4掌握全局變量和局部變量、動(dòng)態(tài)變量、靜態(tài)變量的概念和使用方法。二、實(shí)驗(yàn)內(nèi)容題目 1059:函數(shù)定義下面是使用輾轉(zhuǎn)相除法,求最大公約數(shù)的程序,請(qǐng)補(bǔ)充完
44、整程序中函數(shù)的定義與調(diào)用。#include stdio.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ù)計(jì)算階乘下面程序?qū)崿F(xiàn)由鍵盤讀入整數(shù) n,計(jì)算并輸出 n!,請(qǐng)補(bǔ)充完整計(jì)算階乘的函數(shù)。long fanc(int a)long i,n=1;for(i=1;i=a;i+) n=n*i;return n;voidmain()int n;scanf(%d, &n);24printf(%ld
45、, fanc(n);題目 1124:函數(shù)中的變量寫出下面程序的運(yùn)行結(jié)果: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實(shí)驗(yàn) 10指針與結(jié)構(gòu)體一、實(shí)驗(yàn)?zāi)康?通過實(shí)驗(yàn)進(jìn)一步掌握指針的概念,會(huì)定義和使用指針變量。2能正確使用數(shù)組的指針和指向數(shù)組的指針變量。3能正確使用字符串的指針和指向字符中的指針變量。4掌握結(jié)構(gòu)體類型變量的定義和使用。二、實(shí)驗(yàn)內(nèi)容題目 1091:交換兩數(shù)
46、,由大到小輸出下面程序,交換兩數(shù),使兩數(shù)由大到小輸出,請(qǐng)?zhí)羁?include stdio.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-next=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于項(xiàng)目協(xié)調(diào)的決策
- 陜西省商洛市商南縣2024-2025學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 湖南省邵陽市新邵縣第二中學(xué)2024-2025學(xué)年高三下學(xué)期2月開學(xué)考試生物學(xué)試題(含答案)
- 小學(xué)生作文素材故事解讀
- 風(fēng)險(xiǎn)評(píng)估與應(yīng)對(duì)策略分析表
- 蓋板制作工程 現(xiàn)場(chǎng)質(zhì)量檢驗(yàn)報(bào)告單
- 基于人工智能的智能交通管理系統(tǒng)預(yù)案
- 餐飲行業(yè)廚師勞動(dòng)合同
- 年度辦公室工作任務(wù)安排表
- 如何理解和運(yùn)用動(dòng)詞:七年級(jí)英語語法專題
- 部編版初中語文文言文對(duì)比閱讀 九年級(jí)下冊(cè)(下)(解析版)
- 停電計(jì)劃現(xiàn)場(chǎng)勘查培訓(xùn)課件
- 變電運(yùn)維講安全
- 《合理使用零花錢》課件
- 網(wǎng)絡(luò)溝通教學(xué)課件
- 2024陸上風(fēng)電場(chǎng)改造拆除與循環(huán)利用設(shè)計(jì)導(dǎo)則
- 財(cái)務(wù)用發(fā)票分割單原始憑證 發(fā)票分割單范本
- 2023入團(tuán)積極分子考試題庫(附答案)
- 中國慢性病報(bào)告2023
- 《創(chuàng)業(yè)融資》課件
- 中國教育行業(yè)調(diào)查報(bào)告-《中國教育行業(yè)白皮書》
評(píng)論
0/150
提交評(píng)論