版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
華南農(nóng)業(yè)大學(xué)C語言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案華南農(nóng)業(yè)大學(xué)C語言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案華南農(nóng)業(yè)大學(xué)C語言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案華南農(nóng)業(yè)大學(xué)C語言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:C語言程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)指導(dǎo)與習(xí)題參考答案(第四版)(學(xué)生改編)實(shí)驗(yàn)1C語言程序初步一、實(shí)驗(yàn)?zāi)康模?)了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。(2)了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。(3)通過運(yùn)行簡(jiǎn)單的C程序,初步了解C程序的特點(diǎn)。(4)在教師的指導(dǎo)下,學(xué)會(huì)使用在線評(píng)判系統(tǒng)。二、實(shí)驗(yàn)內(nèi)容1.運(yùn)行第一個(gè)C程序[題目:ThefirstCProgram]將下列程序輸入visualc++,編譯、連接和運(yùn)行該程序。#include""main(){printf("ThefirstCProgram\n");}[具體操作步驟](1)在編輯窗口中輸入程序。(2)保存程序,取名為。(3)按照第一章中介紹的方法,編譯、連接和運(yùn)行程序。(4)按照第三章介紹的方法,將代碼提交到在線評(píng)判系統(tǒng),系統(tǒng)返回“通過”,則該題完成。2.在在線評(píng)判系統(tǒng)中提交實(shí)現(xiàn)了計(jì)算a+b功能的程序[題目1001:計(jì)算a+b]由鍵盤輸入兩個(gè)整數(shù),計(jì)算并輸出兩個(gè)整數(shù)的和。實(shí)現(xiàn)該功能的程序如下,#include""main(){inta,b;scanf("%d%d",&a,&b);printf("%d",a+b);}(1)在程序編輯窗口中輸入程序。(2)保存程序,取名為。(3)按照前二章中介紹的方法,編譯、連接和運(yùn)行程序。(4)在程序運(yùn)行過程中,輸入1530↙(↙表示輸入回車符)(5)如果看到如下輸出結(jié)果,則表明15+30的結(jié)果正確,如果得不到如下結(jié)果,則需檢查并更正程序。45(6)按照第三章中介紹的方法進(jìn)入在線評(píng)判系統(tǒng)。(7)顯示題目列表,點(diǎn)擊題號(hào)為1001,題名為“計(jì)算a+b”的題目。(8)查看完題目要求后,點(diǎn)擊頁面下端的“sumbit”,參照第二章提交程序的方法提交程序。(9)查看評(píng)判結(jié)果,如果得到“accepted”則該題通過,否則返回第一步檢查程序是否正確。3實(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)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(++)和自減(--)運(yùn)算符的使用。(4)進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。二、實(shí)驗(yàn)內(nèi)容1.變量的定義[題目1117:變量定義,按要求完成程序]下面給出一個(gè)可以運(yùn)行的程序,但是缺少部分語句,請(qǐng)按右邊的提示補(bǔ)充完整缺少的語句。#include""main(){inta,b;/*定義整型變量a和b*/inti,j;/*定義實(shí)型變量i和j*/a=5;b=6;i=;j=i*a*b;printf("a=%d,b=%d,i=%f,j=%f\n",a,b,i,j);}[具體操作步驟](1)將代碼補(bǔ)充完整;(2)在codeblocks或VC++上運(yùn)行通過;(3)在在線評(píng)判系統(tǒng)上提交;[題目6568:在顯示屏上顯示指定字符]要求編寫一個(gè)程序,在顯示屏上顯示如下內(nèi)容(全為半角字符,且不包括空格):C:\[提示]注意轉(zhuǎn)義字符在程序中的使用。參考程序:#include""intmain(){ printf("C:\\");}2.賦值表達(dá)式與賦值語句[題目1118:賦值表達(dá)式與賦值語句,寫出程序運(yùn)行結(jié)果]閱讀下面程序,寫出運(yùn)行結(jié)果:#include""intmain(){floata;intb,c;chard,e;a=;b=a;c=330;d=c;e='\141;printf("%f,%d,%d,%c,%c",a,b,c,d,e);}運(yùn)行結(jié)果為:,3,330,J,a[提示]賦值語句具有類型轉(zhuǎn)換的功能,但可能會(huì)改變數(shù)據(jù)。3.基本運(yùn)算[題目1119:基本運(yùn)算,寫出程序運(yùn)行結(jié)果]閱讀下面程序,寫出運(yùn)行結(jié)果:#include""main(){inta,b,c;floatd=15,e,f;a=35%7;b=15/10;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,,,[提示]除法分整除與普通除法之分。5實(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[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]+↙[正確輸出]+參考程序:#include""main(){charch;ch=getchar();putchar(ch);}[題目1127:計(jì)算加法]編程實(shí)現(xiàn)由鍵盤輸入一個(gè)加法式,輸出正確的結(jié)果。(兩個(gè)加數(shù)均為整數(shù))[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]10+20↙[正確輸出]30[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]-15+60↙[正確輸出]45參考程序:#include""main(){inta,b;scanf("%d%%d",&a,&b);printf("%d",a+b);}[題目1014:求圓面積]由鍵盤輸入圓半徑r,請(qǐng)計(jì)算該圓的面積。(注:π取,結(jié)果保留兩位小數(shù)位;另外,程序只要能對(duì)r在0到10000范圍的情況輸出正確答案即可)[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]2↙[正確輸出][第二組自測(cè)數(shù)據(jù)][鍵盤輸入]↙[正確輸出][提示]結(jié)果保留兩位小數(shù)可采用printf函數(shù)的格式控制字符來實(shí)現(xiàn)。參考程序:#include""main(){floatarea,r;scanf("%f",&r);area=*r*r;printf("%",area);}3[題目1015:計(jì)算攝氏溫度值]從鍵盤輸入一個(gè)華氏溫度值,要求按格式輸出其對(duì)應(yīng)的攝氏溫度值,精確到小數(shù)點(diǎn)后兩位。數(shù)學(xué)公式描述為:C=5*(F-32)/9[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]100↙[正確輸出][第二組自測(cè)數(shù)據(jù)][鍵盤輸入]100↙[正確輸出][提示]注意公式中的除為普通除法。參考程序:#include""main(){floatf,c;scanf("%f",&f);c=9*(f-32);printf("%.2f",c);}[題目11127:各個(gè)數(shù)字]從鍵盤輸入一個(gè)3位數(shù)的正整數(shù),要求先后輸出該數(shù)字的百位數(shù)字與個(gè)位數(shù)字,各占一行。[第一組自測(cè)數(shù)據(jù)][第一組自測(cè)數(shù)據(jù)][鍵盤輸入][鍵盤輸入]123654[正確輸出][正確輸出]1634[提示]合理使用整除與求模(即求余)運(yùn)算。參考程序:#include""main(){ intn,i,j; scanf("%d",&n); i=n/100; j=n%10; printf("%d\n%d",i,j);}實(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é)合程序掌握一些簡(jiǎn)單的算法。二、實(shí)驗(yàn)內(nèi)容[題目1018:數(shù)的排序]由鍵盤輸入三個(gè)整數(shù)a、b、c,按從小到大的順序輸出這三個(gè)數(shù)。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]65,45,90↙[正確輸出]45,65,90[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]9,6,3↙[正確輸出]3,6,9參考程序:#include""main(){inta,b,c,t;scanf("%d,%d,%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){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);6現(xiàn)在,題目要求處理5個(gè)字符,怎么做呢請(qǐng)自己思考……參考程序:#include""main(){chara,b,c,d,e;scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);if(a<='Z'&&a>='A')a=a+32;if(b<='Z'&&b>='A')b=b+32;if(c<='Z'&&c>='A')c=c+32;if(d<='Z'&&d>='A')d=d+32;if(e<='Z'&&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ù)][鍵盤輸入]8271757732554↙[正確輸出]NOYESYESNOYES[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]8271757732554↙[正確輸出]NOYESYESNOYES[提示]整除即除得余數(shù)為0參考程序:#include""main(){inta,b,c,d,e;scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);if(a%27==0)printf("YES\n");elseprintf("NO\n");if(b%27==0)printf("YES\n");elseprintf("NO\n");if(c%27==0)printf("YES\n");elseprintf("NO\n");if(d%27==0)printf("YES\n");elseprintf("NO\n");if(e%27==0)printf("YES\n");elseprintf("NO\n");}[題目1020:正負(fù)奇偶判斷]由鍵盤輸入非零整數(shù)x,判斷該數(shù)正負(fù),正數(shù)輸出positive,負(fù)數(shù)輸出negative,接著判斷該數(shù)的奇偶性,奇數(shù)輸出odd,偶數(shù)輸出even。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]-43↙[正確輸出]negativeodd[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]798↙[正確輸出]positiveeven參考程序:#include""main(){intn;scanf("%d",&n);if(n<0)printf("negative\n");elseprintf("positive\n");if(n%2==0)printf("even\n");elseprintf("odd\n");}[題目1023:簡(jiǎn)單計(jì)算器]下面程序是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的運(yùn)算器(保留兩位小數(shù)點(diǎn)),如果由鍵盤輸入10+50,計(jì)算機(jī)可以輸出結(jié)果;如果輸入8*6,計(jì)算機(jī)輸出;如果輸入20/4,計(jì)算機(jī)輸出;如果輸入8-6,計(jì)算機(jī)輸出,請(qǐng)?jiān)诳仗幪钌线m當(dāng)?shù)拇a,運(yùn)行通過后并提交。#include""voidmain(){floata,b,c;charop;scanf("%f%c%f",);switch(op){case'+':;case'-':_;case'*':_;case'/':__;default:printf("error");return;}printf("result=",c);}[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]45*2↙[正確輸出]90[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]↙[正確輸出]8參考程序:#include""intmain(){floata,b,c;charop;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);}[題目1007:判斷整數(shù)是否為平方數(shù)]由鍵盤輸入一個(gè)正整數(shù),判斷該數(shù)是否為平方數(shù),是輸出Y,否輸出N。[第一組自測(cè)數(shù)據(jù)][第二組自測(cè)數(shù)據(jù)][鍵盤輸入][鍵盤輸入]3618[正確輸出] [正確輸出]YN參考程序:#include""#include""main(){ inta,b; scanf("%d",&a); b=(int)sqrt(a); if(b*b==a)printf("Y"); elseprintf("N");}[題目1017:求數(shù)的位數(shù)]由鍵盤輸入一個(gè)不多于9位的正整數(shù),要求輸出它是幾位數(shù)。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]349213↙[正確輸出]6[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]10000↙[正確輸出]5[提示]劃定一位數(shù)、二位數(shù)、…、九位數(shù)的范圍,然后用if…elseif…else語句實(shí)現(xiàn)判斷。5參考程序:main(){intn,place;scanf("%ld",&n);if(n>)place=9;elseif(n>9999999)place=8;elseif(n>999999)place=7;elseif(n>99999)place=6;elseif(n>9999)place=5;elseif(n>999)place=4;elseif(n>99)place=3;elseif(n>9)place=2;elseplace=1;printf("%ld\n",place);}[1120:判斷點(diǎn)是否在圓上]由鍵盤輸入一個(gè)點(diǎn)的坐標(biāo),要求編程判斷這個(gè)點(diǎn)是否在單位圓上,點(diǎn)在圓上輸出Y,不在圓上輸出N。使用小數(shù)點(diǎn)后3位精度進(jìn)行判斷。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入],↙[正確輸出]Y[第二組自測(cè)數(shù)據(jù)][鍵盤輸入],↙[正確輸出]N[提示](1)平面上的點(diǎn)與圓的關(guān)系分為在圓內(nèi)、在圓上、在圓外三種,本題要求判斷是否在圓上;(2)判斷兩實(shí)數(shù)相等采用判斷這兩實(shí)數(shù)的差的絕對(duì)值小于規(guī)定誤差精度(本題為)的方法實(shí)現(xiàn)。參考程序:#include""#include""intmain(){floata,b;scanf("%f,%f",&a,&b);if(fabs(a*a+b*b-1)<1e-3)printf("Y\n");elseprintf("N\n");}}實(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)實(shí)現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。二、實(shí)驗(yàn)內(nèi)容[題目1024:計(jì)算階乘]輸入正整數(shù)n,計(jì)算n!,結(jié)果用長(zhǎng)整型數(shù)表示(注n!=1*2*3*...*n)[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]5↙[正確輸出]120[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]8↙[正確輸出]40320參考程序:#include""main(){longi,n=1,a;scanf("%ld",&a);for(i=1;i<=a;i++)n=n*i;printf("%ld\n",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↙[正確輸出]2510參考程序:#include<>main(){longn,sum=0,i,t=1;scanf("%ld",&n);for(i=1;i<=n;i++){sum=sum+t;t=t+2;}printf("%ld\n",sum);}或#include<>main(){longn,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ù)][鍵盤輸入]A6H7T+65↙[正確輸出]24[提示](1)可以使用下面程序段逐個(gè)讀入鍵盤輸入的一行字符charch;while((ch=getchar())!='\n'){……}(2)數(shù)字字符轉(zhuǎn)為對(duì)應(yīng)的數(shù)值可用a=ch-'0'參考程序:#include""main(){charc;ints=0,a;while((c=getchar())!='\n'){if(c>='0'&&c<='9'){a=c-48;s=s+a;}}printf("%d",s);}11[題目1029:求最大公約數(shù)]由鍵盤輸入兩個(gè)正整數(shù)m、n(m、n用長(zhǎng)整數(shù)表示),計(jì)算它們的最大公約數(shù)。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]16,24↙[正確輸出]8[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]17,25↙[正確輸出]1[提示]公約數(shù)是既能整除m又能整除n的數(shù),題目要求滿足這一條件的最大的一個(gè)。參考程序:#include""main(){longr,m,n,temp;scanf("%ld,%ld",&m,&n);while(m!=0){r=n%m;n=m;m=r;}printf("%ld\n",n);}或#include""main(){longm,n,t,i,s;scanf("%ld,%ld",&m,&n);t=m>nn:m;for(i=t-1;i>=1;i--){if(m%i==0&&n%i==0){s=i;break;}}printf("%d",s);}[題目1044:輸出最小值]從鍵盤輸入十個(gè)整數(shù),輸出最小值[自測(cè)數(shù)據(jù)][鍵盤輸入]1245768758743559921↙[正確輸出]513參考程序:#include""main(){inti,t,min;scanf("%d",&min);for(i=1;i<10;i++){scanf("%d",&t);if(t<min)min=t;}printf("%d\n",min);}[題目1030:字符變換]由鍵盤輸入一個(gè)句子(總字符個(gè)數(shù)從1個(gè)至80個(gè)均有可能,以回車符表示結(jié)束),將其中的大寫字符變成小寫(其它類型的字符不變),最后輸出變換后的句子。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]HowAreYou↙[正確輸出]howareyou[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]ThiSISMyfIrStCProgrAm!↙[正確輸出]thisismyfirstcprogram!12參考程序:#include""main(){charc;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↙[正確輸出][第二組自測(cè)數(shù)據(jù)][鍵盤輸入]30↙[正確輸出]參考程序:#include""main(){inti,t,n;floata=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("%.4f\n",s);}*[題目1031:統(tǒng)計(jì)單詞個(gè)數(shù)]由鍵盤輸入一個(gè)句子(總字符個(gè)數(shù)從1個(gè)至80個(gè)均有可能,以回車符表示結(jié)束),以空格分割單詞,要求輸出單詞的個(gè)數(shù)。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]HowAreYou↙[正確輸出]3[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]Therearemanystudentsandmanytrees!↙[正確輸出]7參考程序:#include""main(){inti,num=0,word=0;charc;for(i=0;(c=getchar())!='\n';i++)if(c=='')word=0;elseif(word==0){word=1;num++;}printf("%d",num);}*[題目1042:百萬富翁]一個(gè)百萬富翁遇到一個(gè)陌生人,陌生人找他談了一個(gè)換錢的計(jì)劃。該計(jì)劃如下:我每天給你m元,而你第一天只需給我一分錢。第二天我仍給你m元,你給我2分錢。第三天,我仍給你m元,你給我4分錢。依次類推,你每天給我的錢是前一天的兩倍,直到一個(gè)月(38)天。百萬富翁很高興,欣然接受這個(gè)契約?,F(xiàn)要求,編寫一個(gè)程序,由鍵盤輸入m,計(jì)算多少天后,百萬富翁開始虧錢。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]100↙[正確輸出]18[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]10000↙14[正確輸出]25參考程序:#include""#include""main(){intn,m,i;scanf("%d",&m);for(i=1;i<=38;i++)if*(pow(2,i-1)-1)-i*m>=0)break;printf("%d",i-1);}15實(shí)驗(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)容[題目1035:打印菱形]由鍵盤輸入正數(shù)n,要求輸出2*n+1行的菱形圖案。要求菱形左邊緊靠屏幕左邊。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]3↙[正確輸出]*************************[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]2↙[正確輸出]*************16參考程序:#include""#include""main(){intn,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");}}[題目1137:找到滿足要求的數(shù)字]輸出1到9999中能被7整除,而且至少有一個(gè)數(shù)字是5的所有數(shù)字。輸出時(shí)一行一個(gè)數(shù)字,且按由小到大的排序輸出。[提示]判斷一個(gè)數(shù)字中是否有數(shù)字5,首先要掌握拆數(shù)字的方法,一種算法如下:一個(gè)整數(shù)a,使用a%10,可以得到a的個(gè)位數(shù),然后使用a=a/10,可以將a中的個(gè)位數(shù)字除去,上述過程重復(fù)則可以的到原數(shù)a中其他位上的數(shù)字。參考程序:#include""main(){inti,j;for(i=7;i<=9999;i=i+7){j=i;while(j!=0){if(j%10==5)break;j=j/10;}if(j!=0)printf("%d\n",i);}}[題目1038:打印圖案]由鍵盤輸入正數(shù)n,要求輸出中間數(shù)字為n的菱形圖案。要求菱形左邊緊靠屏幕左邊。[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]4↙[正確輸出]1121123211234321123211211[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]3↙[正確輸出]1121123211211參考程序:#include""#include""main(){intn,i,j,k,h;scanf("%d",&n);for(i=-n+1;i<=n-1;i++){for(j=0;j<abs(i);j++)printf("");for(k=1;k<=n-abs(i);k++)printf("%d",k);for(h=n-abs(i)-1;h>=1;h--)printf("%d",h);printf("\n");}}實(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ù)][鍵盤輸入]705142019299671366↙[正確輸出]661367992192014570參考程序:#include""main(){inta[10];inti;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=9;i>=0;i--)printf("%d\n",a[i]);}[題目1062:打印矩陣]由鍵盤輸入一個(gè)3×4的矩陣,要求輸出它的轉(zhuǎn)置矩陣。[自測(cè)數(shù)據(jù)][鍵盤輸入]169311021989參考程序:[正確輸出]111619908329#include<>main(){inta[3][4],b[4][3],i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){scanf("%d",&a[i][j]);b[j][i]=a[i][j];}for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}*[題目1047:冒泡排序]由鍵盤輸入10個(gè)數(shù),用“冒泡法”對(duì)10個(gè)數(shù)從小到大排序,并按格式要求輸出。代碼如下,請(qǐng)?zhí)畛渫暾?shù)字間由一個(gè)空格分隔。#incude""main(){inta[10],i,j,t;19for(i=0;i<10;i++)scanf("%d",___________);for(___________){for(j=0;j<____;j++)if(___________){___________}}for(i=0;i<10;i++)printf("%d",a[i]);}[自測(cè)數(shù)據(jù)][鍵盤輸入]705142019299671366↙[正確輸出]251314192066677099參考程序:#include""main(){inta[10];inti,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++){for(j=0;j<9-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<10;i++)printf("%d",a[i]);}[題目1040:統(tǒng)計(jì)不同數(shù)字個(gè)數(shù)]由鍵盤輸入20個(gè)整數(shù),統(tǒng)計(jì)不同數(shù)字的個(gè)數(shù)。[自測(cè)數(shù)據(jù)][鍵盤輸入]7051422192996713665934438221139223311↙[正確輸出]16[提示]上述答案中,因?yàn)?有1個(gè)重復(fù)數(shù)字,11有1個(gè)重復(fù)數(shù)字,22有2個(gè)重復(fù)數(shù)字,故不同數(shù)字有16個(gè),分別是70514221929967136693443811393318參考程序:#include""main(){inta[20];inti,t,p=0;for(i=0;i<20;i++){scanf("%d",&a[i]);for(t=0;t<i;t++)if(a[t]==a[i])break;if(t==i)p++;}printf("%d",p);}*[題目1046:計(jì)算高精度加法]由鍵盤輸入兩個(gè)位數(shù)很長(zhǎng)的整數(shù)(一行一個(gè)數(shù),每個(gè)數(shù)最長(zhǎng)不超過80位),試計(jì)算并輸出這兩個(gè)數(shù)的和。[自測(cè)數(shù)據(jù)][鍵盤輸入]456789↙1098765↙[正確輸出]55555420參考程序:#include""#include""main(){inta[100]={0},b[100]={0},c[100]={0};chars[101];inti=0,n1=0,n2=0,max=0,e=0;gets(s);n1=strlen(s);for(i=n1-1;i>=0;i--)a[n1-1-i]=s[i]-'0';gets(s);n2=strlen(s);for(i=n2-1;i>=0;i--)b[n2-1-i]=s[i]-'0';if(n1>n2)max=n1;elsemax=n2;for(i=0;i<=max;i++){c[i]=(a[i]+b[i]+e)%10;e=(a[i]+b[i]+e)/10;}if(c[max]>0)printf("%d",c[max]);for(i=max-1;i>=0;i--)printf("%d",c[i]);}*[題目:找矩陣中的鞍點(diǎn)]由鍵盤輸入一個(gè)3×4(3行4列)的矩陣,輸出矩陣中的鞍點(diǎn)(即在矩陣行中最大,列中最小的數(shù))。若沒有鞍點(diǎn),輸出“NO”字樣。[自測(cè)數(shù)據(jù)][鍵盤輸入]879011098↙709721065↙984512030↙[正確輸出]11021參考程序:#include<>main(){inti,j,k,a[3][4],max,maxj,flag;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){max=a[i][0];maxj=0;for(j=0;j<4;j++)if(a[i][j]>max){max=a[i][j];maxj=j;}flag=1;for(k=0;k<3;k++)if(max>a[k][maxj]){flag=0;break;}if(flag){printf("%d",max);break;}}if(!flag)printf("NO");}22實(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""voidmain(){chars[80];/*定義字符數(shù)組s*/strcpy(s,"abcdefghijklmn");printf("%s",s);}參考程序:[題目1123:字符串的輸入與輸出]下面程序?qū)崿F(xiàn)從鍵盤讀入字符串,然后輸出到屏幕,請(qǐng)?zhí)畛浔匾恼Z句。參考程序:#include""voidmain(){chars[50];printf("What'syourname");gets(s);/*由鍵盤讀入字符串*/printf("Yournameis",);printf("%s",s);/*打印字符串*/}{題目1145:回文串}讀入一行字符串(不多于80個(gè)字符,以回車結(jié)束),判斷該字符串是否為回文串(即從左向右拼寫與從右向左拼寫是一樣的),是輸出Y,否輸出N。參考程序:#include””#include””main(){ charc[80]; inti=0,k,n=0; gets(c); k=strlen(c)-1; for(i=0;i<k;i++) if(c[i]!=c[k-i]) { n=1;break; } if(n==1)printf("N"); elseprintf("Y");}自測(cè)數(shù)據(jù):1、輸入2、輸入abaabc輸出輸出YN[題目1122:字符串的合并]從鍵盤輸入3個(gè)字符串(每個(gè)字符串以回車符做為結(jié)束標(biāo)志),將3個(gè)字符串以輸入先后順序合并到字符串s中,請(qǐng)?zhí)羁帐褂贸绦蛲暾?include""#include""main(){chars[100]="";chara[30];gets(a);strcat(s,a);gets(a);strcat(s,a);gets(a);strcat(s,a);/*可以寫多行代碼*/printf("%s",s);}[自測(cè)數(shù)據(jù)][鍵盤輸入]123abc456[正確輸出]123abc456[題目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ù)][鍵盤輸入]ABCDEFG↙DE↙[正確輸出]4[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]hellhello!↙hello↙[正確輸出]5[提示]方法1:建立雙重循環(huán),外層循環(huán)變量指示第一個(gè)串的查找起始位置,內(nèi)層循環(huán)從起始位置開始判斷第二個(gè)字符中是否出現(xiàn)在此處;方法2:使用字符串函數(shù)strstr()。參考程序:#include""main(){inti,j;chara[80],b[80];gets(a);gets(b);for(i=0;a[i]!='\0';i++){for(j=0;b[j]!='\0';j++)if(a[i+j]!=b[j])break;if(b[j]=='\0')break;}if(a[i]!='\0')printf("%d",i+1);elseprintf("NotFound");}24實(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ǔ)充完整程序中函數(shù)的定義與調(diào)用。#include""intf(intm,intn){intr;while((r=m%n)!=0){m=n;n=r;}returnn;}main(){inta,b,n;scanf("%d%d",&a,&b);printf("%d\n",f(a,b));}[題目1083:編寫函數(shù)計(jì)算階乘]下面程序?qū)崿F(xiàn)由鍵盤讀入整數(shù)n,計(jì)算并輸出n!,請(qǐng)補(bǔ)充完整計(jì)算階乘的函數(shù)。longfanc(inta){longi,n=1;for(i=1;i<=a;i++)n=n*i;returnn;}voidmain(){intn;scanf("%d",&n);25printf("%ld",fanc(n));}[題目1124:函數(shù)中的變量]寫出下面程序的運(yùn)行結(jié)果:intf1(intx){staticintz=3,y=0;y++;z++;return(x+y+z);}main(){inta=1,k;for(k=0;k<3;k++)printf("%4d",f1(a));}程序運(yùn)行結(jié)果為:6810*[題目1084:編寫遞歸調(diào)用函數(shù),實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)]下面程序,實(shí)現(xiàn)由鍵盤輸入一個(gè)正整數(shù)(不大于0),輸出其對(duì)應(yīng)的二進(jìn)制數(shù)(原碼表示)。請(qǐng)?zhí)羁眨?include""voidfun(inti){if(i>1)fun(i/2);printf("%d",i%2);}main(){intn;scanf("%d",&n);fun(n);}[題目1151:求函數(shù)值]輸入x(x為整數(shù)),求下列函數(shù)值。函數(shù)定義如下:F(x)=xx小于3F(x)=F(x/3)*2x大于等于3且x為3的倍數(shù)F(x)=F((x-1)/3)+1x大于等于3且x除3余1F(x)=F((x-2)/3)+2x大于等于3且x除3余2[第一組自測(cè)數(shù)據(jù)][鍵盤輸入]2[正確輸出]2[第二組自測(cè)數(shù)據(jù)][鍵盤輸入]100000[正確輸出]65[提示]采用遞歸函數(shù)實(shí)現(xiàn)。參考程序:#include""intF(intx){ inty; if(x<3)y=x; elseif(x%3==0)y=F(x/3)*2; elseif(x%3==1)y=F((x-1)/3)+1; elsey=F((x-2)/3)+2; returny;}main(){ intx; scanf("%d",&x); printf("%d",F(x));}26實(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ù),由大到小輸出]下面程序,交換兩數(shù),使兩數(shù)由大到小輸出,請(qǐng)?zhí)羁?include""voidswap(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}intmain(){inta,b;int*pa,*pb;scanf("%d%d",&a,&b);pa=&a;pb=&b;if(a<b)swap(pa,pb);printf("%d%d\n",a,b);}[題目1065:數(shù)組中的指針]設(shè)有如下數(shù)組定義:inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};計(jì)算下面各項(xiàng)的值(設(shè)數(shù)組a的首地址為2000,一個(gè)int類型數(shù)占四個(gè)字節(jié))。注意:地址則輸出地址,變量則輸出變量值;要求一行一個(gè)答案,不允許多余空行及空格。(1)a[2][1](2)a[1](3)a(4)a+1(5)*a+1(6)*(a+1)(7)a[2]+1(8)*(a+1)+1(9)*(*(a+2)+2)27參考程序:#include""main(){printf("19\n");printf("2016\n");printf("2000\n");printf("2016\n");printf("2004\n");printf("2016\n");printf("2036\n");printf("2020\n");printf("21");}[題目1092:函數(shù)實(shí)現(xiàn)求字符串長(zhǎng)度]下面程序以指針方式傳遞參數(shù),由函數(shù)實(shí)現(xiàn)求字符串長(zhǎng)度,請(qǐng)?zhí)羁胀瓿?include""#include""intf(char*p){returnstrlen(p);}intmain(){chars[80];inti;scanf("%s",s);i=f(s);printf("%d",i);}[題目1125:定義結(jié)構(gòu)體類型]要求定義一個(gè)名為student的結(jié)構(gòu)體類型,其包含如下成員:(1)字符數(shù)組name,最多可存放10個(gè)字符;(2)字符變量sex,用于記錄性別;(3)整數(shù)類型變量num,用于記錄學(xué)號(hào);(4)float類型變量score,用于記錄成績(jī);并使下列代碼完整。/*定義結(jié)構(gòu)體類型*/structstudent{charname[20];charsex;intnum;floatscore;}main(){structstudentstu;scanf("%s",;scanf("%*c%c",&;scanf("%d",&;scanf("%f",&;printf("%s\n",;printf("%c\n",;printf("%d\n",;printf("%f\n",;}[題目11128:字符串與指針]請(qǐng)寫出下列程序的運(yùn)行結(jié)果#include""intmain(){ charstring[30]="How_are_you"; char*p=&string[0],*p2=string+8; printf("%s,%s\n",p,p2);}程序運(yùn)行結(jié)果為:How_are_you,you*實(shí)驗(yàn)11鏈表一、實(shí)驗(yàn)?zāi)康模?)理解鏈表的概念。(2)掌握結(jié)構(gòu)體、指針在鏈表中的運(yùn)用。(3)掌握鏈表的常用操作,包括創(chuàng)建、顯示、添加等。二、實(shí)驗(yàn)內(nèi)容[題目1098:鏈表結(jié)點(diǎn)的插入]有結(jié)構(gòu)體類型定義,structstudent{longnum;/*學(xué)號(hào)*/intscore;/*成績(jī)*/structstudent*next;/*指針*/};程序首先完成創(chuàng)建兩個(gè)鏈表,要求補(bǔ)充完成按學(xué)號(hào)順序插入鏈表結(jié)點(diǎn)的函數(shù):structstudent*insert(structstudent*head,structstudent*stud){structstudent*p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num>p1->num)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}if(p0->num<=p1->num){if(head==p1)head=p0;elsep2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}return(head);}[題目1099:鏈表的合并]有結(jié)構(gòu)體類型定義,structstudent{longnum;/*學(xué)號(hào)*/intscore;/*成績(jī)*/structstudent*next;/*指針*/};程序首先完成創(chuàng)建兩個(gè)鏈表,要求補(bǔ)充完成實(shí)現(xiàn)將第二個(gè)鏈表合并到第一個(gè)鏈表未尾的函數(shù)。structstudent*merge(structstudent*head,structstudent*head2){structstudent*p1;p1=head;while(p1->next!=NULL)p1=p1->next;p1->next=head2;return(head);}[題目1104:鏈表的倒序]有結(jié)構(gòu)體類型定義,structstudent{longnum;/*學(xué)號(hào)*/intscore;/*成績(jī)*/structstudent*next;/*指針*/};程序首先完成程序創(chuàng)建一個(gè)鏈表,要求補(bǔ)充完成實(shí)現(xiàn)將鏈表中各結(jié)點(diǎn)變?yōu)榈剐蚺帕械暮瘮?shù)。structstudent*reverse(structstudent*head){structstudent*p1,*p2,*p3;p2=head;p3=head->next;do{p1=p2;p2=p3;p3=p2->nex
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國球墨鑄鐵管市場(chǎng)運(yùn)營動(dòng)態(tài)與盈利前景預(yù)測(cè)報(bào)告
- 2024-2030年中國物流臺(tái)車行業(yè)營銷策略分析及投資規(guī)劃研究報(bào)告
- 2024年臨床路徑信息系統(tǒng)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2024-2030年中國烘焙油脂行業(yè)競(jìng)爭(zhēng)策略及投資盈利預(yù)測(cè)報(bào)告
- 2024年桿菌肽類產(chǎn)品項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2024-2030年中國淺層地?zé)崮苄袠I(yè)發(fā)展現(xiàn)狀投資規(guī)劃分析報(bào)告
- 2024-2030年中國洗潔精行業(yè)銷售模式及發(fā)展戰(zhàn)略建議報(bào)告
- 2024-2030年中國汽車真皮座椅面套行業(yè)發(fā)展前景預(yù)測(cè)及投資規(guī)劃分析報(bào)告
- 2024-2030年中國汽車書籍項(xiàng)目可行性研究報(bào)告
- 網(wǎng)絡(luò)服務(wù)平臺(tái)用戶安全管理制度
- 自發(fā)性氣胸的臨床治療指南解讀
- 電網(wǎng)雷電預(yù)警技術(shù)研究及預(yù)警系統(tǒng)開發(fā)項(xiàng)目驗(yàn)收匯報(bào)
- 灌溉試驗(yàn)常規(guī)觀測(cè)
- 教師專業(yè)發(fā)展的文化自覺
- 2023年大西北游考察報(bào)告
- 人行道透水磚施工解決方案2445
- 2023年高考浙江卷英語試題(2023年1月考試-含聽力音頻、聽力原文和答案)
- 中國歷史文選第四單元 典志體政書、詔令奏議
- YC/T 11.4-2006煙草機(jī)械產(chǎn)品圖樣及設(shè)計(jì)文件第4部分:編號(hào)原則
- GB 4806.1-2016食品安全國家標(biāo)準(zhǔn)食品接觸材料及制品通用安全要求
- 輸出共模電感規(guī)格書
評(píng)論
0/150
提交評(píng)論