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

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)手冊(cè)學(xué)號(hào):_姓名:_班級(jí):_老師:_第一講:c語(yǔ)言概述2第二講:數(shù)據(jù)的存儲(chǔ)與運(yùn)算8第三講:控制結(jié)構(gòu)(一)(順序、選擇結(jié)構(gòu)設(shè)計(jì))12第四講:控制結(jié)構(gòu)(二)(循環(huán)結(jié)構(gòu)設(shè)計(jì))16第五講:數(shù) 組21第六講:函 數(shù)26第六講:指針(一)30第七講:指針(二)35第八講:指針(三)40第九講:指針(四)45第十講:使用結(jié)構(gòu)體類型處理組合數(shù)據(jù)-用戶自定義數(shù)據(jù)類型50第十一講:文件處理55引言本課程的教學(xué)目的在于使學(xué)生通過(guò)學(xué)習(xí)C程序設(shè)計(jì)的基本語(yǔ)言知識(shí)(數(shù)據(jù)類型、控制結(jié)構(gòu)、語(yǔ)法規(guī)則等)和基本編程技術(shù)(程序分析、算法與編程、常用程序模塊等),對(duì)面向過(guò)程的高級(jí)語(yǔ)言程序設(shè)計(jì)技術(shù)有比較完整的理解,并形

2、成程序設(shè)計(jì)的初步能力,能自己分析問(wèn)題,按模塊化程序設(shè)計(jì)的要求,編寫結(jié)構(gòu)完整、具有一定難度的控制和出錯(cuò)處理功能、由多個(gè)功能模塊組合形成的小型程序。第一講:c語(yǔ)言概述一、學(xué)習(xí)目標(biāo):n 了解C語(yǔ)言的簡(jiǎn)史、特點(diǎn)n 熟悉C語(yǔ)言的開發(fā)過(guò)程n 理解C語(yǔ)言程序的基本結(jié)構(gòu) n 熟練應(yīng)用printf()、scanf()函數(shù)的使用規(guī)則、轉(zhuǎn)義符二、學(xué)習(xí)重點(diǎn):n C語(yǔ)言程序的基本結(jié)構(gòu)n printf、scanf函數(shù)的使用三、學(xué)習(xí)難點(diǎn):printf、scanf函數(shù)的使用四、課堂筆記:_五、上機(jī)試驗(yàn):1 寫出最簡(jiǎn)單的C語(yǔ)言程序Hello,World!第一步、打開VC+6.0的集成環(huán)境中,點(diǎn)擊菜單欄中文件菜單再選擇新建一項(xiàng),

3、彈出如下對(duì)話框第二步:點(diǎn)擊對(duì)話框文件選項(xiàng),并選中“C+ Source File”一項(xiàng),如圖:第三步:在右邊文件框內(nèi)鍵如本程序的文件名稱“Hello.c”,并可在下邊目錄文本框內(nèi),點(diǎn)擊旁邊帶有省略號(hào)的按扭來(lái)選擇文件存放的位置,最后點(diǎn)擊確定按扭。彈出如下界面:第四步:在右邊的編輯器中鍵入以下代碼:#include<stdio.h>void main()printf(“Hello world!”);第五步:點(diǎn)擊菜單欄中編譯菜單中編譯Hello.c一項(xiàng),對(duì)該文件進(jìn)行編譯。第六步:點(diǎn)擊菜單欄中編譯菜單中構(gòu)件Hello.exe一項(xiàng)或在鍵盤上按F7,對(duì)該文件進(jìn)行連接。第七步:點(diǎn)擊菜單欄中編譯菜單

4、中執(zhí)行Hello.exe一項(xiàng)或在鍵盤上同時(shí)按住Ctrl+F5,執(zhí)行該文件,并觀察結(jié)果。a 將main改為Main(注意大小寫),再看看程序是否還能運(yùn)行?b 去掉printf函數(shù)后面的分號(hào),程序還可以運(yùn)行嗎?c 將#include<stdio.h>這句話去掉看是否能運(yùn)行?2 把上述程序改成以下代碼#include<stdio.h>void main()printf(“hello, ”);printf(“world”);觀察以上代碼的運(yùn)行結(jié)果是否會(huì)顯示在同一行?3 轉(zhuǎn)義字符的使用下列語(yǔ)句的運(yùn)行結(jié)果:printf(“Im a studentt!you are teacher.

5、n”);printf(“this is a bookn”);printf(“a basketballbb”);printf(“x64078087”);printf(“872”);printf(“872”);printf(“Some Num: %d%c”,081,B);4. 已知三角形邊長(zhǎng)求面積#include <stdio.h> #include <math.h> /*頭文件math.h中含函數(shù)sqrt()的定義*/ void main( ) double a,b,c,s,area; a=3; b=4; c=5; s=(a+b+c)/2; area=sqrt(s*(s-

6、a)*(s-b)*(s-c); /*函數(shù)sqrt()用于求一個(gè)數(shù)的平方*/ printf("%4.1f, %4.1f, %4.1f,area is %4.2fn",a,b,c,area); 5.鍵入以下代碼#include<stdio.h>void main()printf(“This prints a character,%cn a number,%dna floatingpoint,%f”,z,123,456.789);觀察輸出結(jié)果。(提示:printf()函數(shù)占了兩行,在第一行末尾使用了一個(gè)反斜杠()指出字符串將延續(xù)到下一行,因此編譯器將把這兩行代碼視為一

7、行)六、作業(yè):1 printf和scanf函數(shù)的詳細(xì)使用方式答案:_2.寫出C語(yǔ)言程序的開發(fā)過(guò)程答案:_3.寫出語(yǔ)句scanf(“yy-mm-dd=%d - %d - %d”,&year,&month,&date);從鍵盤上的輸入形式。答案:_4.指出下列程序的錯(cuò)誤并改正。#include<stdio.h>void main();double dbPi , dbR ;dbArea;dbPi= 3.14159;dbR=10;dbArea=dbR* dbR* dbPi;dbL=2* dbR * dbPi;printf(“nate=%d,cir=%fn,dbAre

8、a,dbL);#include<stdio.h>void main()int nA;printf(nplease intput a integrate:);scanf(“%d”,nA);if(nA>0) printf(“nA>0n”);else printf(“nA<=0n”)5用C語(yǔ)言編寫一個(gè)程序,實(shí)現(xiàn)如下菜單樣式:Menu = 1. Input the students names and scores 2. Search scores of some students3. Modify scores of some students4. List

9、all students scores 5. Quit the system = Please input your choise (1-5): 必做題:6. 編寫一個(gè)程序,從鍵盤上輸入華氏溫度,屏幕顯示對(duì)應(yīng)的攝氏溫度。華氏溫度和攝氏溫度轉(zhuǎn)換公式為: c=(f-32)/1.87.編程實(shí)現(xiàn)求三個(gè)數(shù)中的最大數(shù)。 七、經(jīng)驗(yàn)積累序號(hào)問(wèn) 題 描 述經(jīng)驗(yàn)級(jí)別1o o o2o o o3o o o4o o o5o o o6o o o7o o o8o o o9o o o10o o o第二講:數(shù)據(jù)的存儲(chǔ)與運(yùn)算一、學(xué)習(xí)目標(biāo):n 理解數(shù)值數(shù)據(jù)的表示n 理解文字?jǐn)?shù)據(jù)的表示n 理解C語(yǔ)言中數(shù)據(jù)類型的分類n 熟練

10、應(yīng)用變量的定義和賦值n 熟練應(yīng)用表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換二、學(xué)習(xí)重點(diǎn):n C語(yǔ)言中數(shù)據(jù)類型的分類n 變量的定義和賦值n 表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換三、學(xué)習(xí)難點(diǎn):n 表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換n 單個(gè)字符與字符串存儲(chǔ)區(qū)別四、課堂筆記:_五、上機(jī)試驗(yàn):1.仔細(xì)思考如下程序,試驗(yàn)以下三個(gè)問(wèn)題:a 將short int改為long,看看輸出結(jié)果;b 將signed char改為unsigned char,看看輸出結(jié)果;#include <stdio.h>void main()short int sX;signed char cCh;sX=32767; cCh=127;printf(“X=%d,Ch=

11、%d”,sX,cCh);sX=sX+1; cCh=cCh+1;printf(“X=%d,cCh=%d”,sX,cCh);2.變量的初始化方式int nA=096;char nB=028;int nC=987654321;int nD=987654321Ldouble dbE=123.456;int nX=nY, nY=6;在我們編寫程序時(shí),如果按以上方式編寫,會(huì)出現(xiàn)什么問(wèn)題?3.從鍵盤輸入一個(gè)整數(shù),以十進(jìn)制、八進(jìn)制、十六進(jìn)制的形式輸出:#include <stdio.h> void main( ) int nA,nB,nC,nM,nN;nA =11; nB =011; nC=0x1

12、1; nM=65; nN=97; printf("十進(jìn)制11等于%d, 八進(jìn)制11等于%d, 十六進(jìn)制11等于%d,n", nA,nB,nC); printf("十進(jìn)制 八進(jìn)制 十六進(jìn)制 字符n"); printf(" 65 %o %x %c,n",nM,nM,nM); printf(" 97 %o %x %c,n",nN,nN,nN); 4. 強(qiáng)制類型轉(zhuǎn)換:運(yùn)行如下程序段的觀察輸出結(jié)果: char cM=100,cCh=a;int nA=5,nB=3;double dbC=2.5,dbD;dbD = nB/2 +

13、 (int)(nA/2.0 + cM/062 +cCh*2) / 2.0cCh= cCh + b/1.5;printf(“dbD=%d,cCh=%cn”,dbD,cCh);5.輸入下列程序,用于輸入一個(gè)學(xué)生的姓名、學(xué)號(hào)、英語(yǔ)、數(shù)學(xué)、計(jì)算機(jī)成績(jī),輸出學(xué)生姓名、學(xué)號(hào)和平均成績(jī)。#include <stdio.h>void main( ) char cName31; /*數(shù)組cName31最多可以放30個(gè)字符或15個(gè)漢字*/ int nEng,nMath,nComp,nNum; double dbAver; printf("Please input the student

14、9;s name:"); scanf("%s",cName); /*字符串用格式符"%s",并且數(shù)組名cName前不需要取址符"&"*/ printf("Please input the student's ID:"); scanf("%d",&cNum); printf("Please input scores (English math computer):"); scanf("%d%d%d",&nEng,&a

15、mp;nMath,&nComp); dbAver=(nEng+nMath+nComp)/3.0; printf("the student's named is %s , his ID is %d ,his average score is %.1f n",cName,cNum,dbAver); 六、作業(yè):1. 請(qǐng)寫出C語(yǔ)言中基本的數(shù)據(jù)類型已經(jīng)它們?cè)趦?nèi)存中所占的字節(jié)數(shù)。答案:_2. 請(qǐng)問(wèn)char cA=a與字符串”a”在內(nèi)存中是否有區(qū)別?如有請(qǐng)寫出它們的區(qū)別。答案:_3. 請(qǐng)問(wèn)在編程過(guò)程中什么時(shí)候用自動(dòng)類型轉(zhuǎn)換,什么時(shí)候用強(qiáng)制類型轉(zhuǎn)換?答案:_4. 編寫輸出字

16、符0、9、A、Z、a、z的ASCII碼的十進(jìn)制、八進(jìn)制和十六進(jìn)制的表示形式的程序。5. 參考上機(jī)試驗(yàn)中例5編寫一個(gè)程序,輸入2個(gè)學(xué)生的姓名、學(xué)號(hào)、英語(yǔ)、數(shù)學(xué)、計(jì)算機(jī)成績(jī),輸出這兩個(gè)學(xué)生的姓名、學(xué)號(hào)和平均分。選做題:6編寫一個(gè)程序輸出5!、10!的結(jié)果七、經(jīng)驗(yàn)積累序號(hào)問(wèn) 題 描 述經(jīng)驗(yàn)級(jí)別1o o o2o o o3o o o4o o o5o o o6o o o7o o o8o o o9o o o10o o o第三講:控制結(jié)構(gòu)(一)(順序、選擇結(jié)構(gòu)設(shè)計(jì))一、學(xué)習(xí)目標(biāo):n 了解程序設(shè)計(jì)的一般方法、結(jié)構(gòu)化程序設(shè)計(jì)n 熟悉順序結(jié)構(gòu)、簡(jiǎn)單程序流程圖的畫法n 熟練應(yīng)用if語(yǔ)句的使用規(guī)則以及相應(yīng)的程序流程n

17、熟練應(yīng)用switch語(yǔ)句的使用規(guī)則及相應(yīng)的程序流程二、學(xué)習(xí)重點(diǎn):n if語(yǔ)句的使用規(guī)則以及相應(yīng)的程序流程n switch語(yǔ)句的使用規(guī)則及相應(yīng)的程序流程三、學(xué)習(xí)難點(diǎn):n if語(yǔ)句的嵌套的應(yīng)用四、課堂筆記:_五、上機(jī)試驗(yàn):1. 求ax*x+bx+c=0方程的解。a、b、c由鍵盤輸入,且b*b-4ac>0。#include <stdio.h> #include <math.h>void main() float a,b,c,p,x1,x2; scanf ("a=%f,b=%f,c=%f",&a,&b,&c); p=sqrt(b

18、*b-4*a*c); x1=(-b+p)/(2*a); x2=(-b-p)/(2*a); printf("x1=%6.2f, x2=%6.2fn",x1,x2); 2. 編寫程序,輸入一個(gè)x,按照函數(shù)要求輸出y值。#include <stdio.h> void main() int x,y; scanf ("%d",&x); if (x<0) y= -1; else if (x=0) y=0; else y=1; printf("x=%d,y=%d n",x,y); 3仔細(xì)閱讀如下程序段,編譯運(yùn)行:int n

19、X = 5, nY = 3, nZ = 2;if(nX> 6) printf(“*n”);if(nY = 3) printf(“#n”);else if(nZ<3) printf(“$n”);else printf(“%n”);4. 閱讀下列兩個(gè)程序段,看看運(yùn)行結(jié)果:a、int nX = 0,nY = 1;if(nX && nY)printf(“*n”); else printf(“#n”);printf(“nX = %d, nY = %d”, nX,nY );b、 int nX = 0, nY = 1;if(nX+ = 0 | +nY = 2) printf(“*

20、n”);else printf(“#n”);printf(“nX = %d, nY = %d”, nX, nY);5. 先不編譯,寫出如下程序的運(yùn)行結(jié)果:#include <stdio.h>void main()int nX = 1,nY = 2;switch(nX) case 1: switch(nY) case 1: printf(“aaaaaan”); break; case 2: printf(“bbbbbbn”); break; case 2: switch(nY-1) case 1: printf(“ccccccn”); break; case 2: printf(“d

21、dddddn”); break; default: printf(“nX = %dn, nY = %d”, nX, nY);6. 由鍵盤輸入的一個(gè)字符,判斷是數(shù)字、英文字符還是其它字符#include <stdio.h> void main( ) char cCh; scanf("%c",&cCh); /*在C中"并且"含義即"邏輯與"用"&&"表示,"或者"含義即"邏輯或"用"|"表示*/ if (cCh>=&#

22、39;0'&&cCh<='9') /*等價(jià)與if (cCh>=48&&cCh<=57)*/ printf("%c is a digitn",cCh); else if (cCh>='A'&&cCh<='Z') | (cCh>='a'&&cCh<='z') /*等價(jià)與if (cCh>=65&&cCh<=90)|(cCh>=97&&cCh

23、<=122)*/ printf("%c is a lettern",cCh); else printf(" %c an other character .n",cCh); 六、作業(yè):1. 請(qǐng)指出下列語(yǔ)句中else與誰(shuí)匹配(nN、nA、nB、nZ都為整形) if(nN>0) if(nA>nB) nZ=nA; else nZ=nB;答案:_2. 考慮下面程序輸出結(jié)果: void main() int nX=100, nA=10,nB=20; int nTemp1=5,nTemp2=0; if(nA<nB) if(nB!=15) if(

24、!nTemp1) nX=1; else if(nTemp2) nX=10; printf(“%d”,nX); 答案:_3 判斷ax2 bx c 0方程有幾個(gè)解,如果有解則輸出。系數(shù)a、b、c由鍵盤輸入。4 輸入兩數(shù)并判斷其大小關(guān)系選做題:5編寫一個(gè)程序以統(tǒng)計(jì)各個(gè)數(shù)字、空白符及其他所有字符出現(xiàn)的次數(shù)。七、經(jīng)驗(yàn)積累序號(hào)問(wèn) 題 描 述經(jīng)驗(yàn)級(jí)別1o o o2o o o3o o o4o o o5o o o6o o o7o o o8o o o9o o o10o o o第四講:控制結(jié)構(gòu)(二)(循環(huán)結(jié)構(gòu)設(shè)計(jì))一、學(xué)習(xí)目標(biāo):1. 理解while語(yǔ)句的使用規(guī)則和相應(yīng)程序流程2. 理解do-while語(yǔ)句的使用規(guī)則

25、和相應(yīng)程序流程3. 理解for語(yǔ)句的使用規(guī)則和相應(yīng)程序流程4. 熟練應(yīng)用各種循環(huán)語(yǔ)句的組合使用5. 理解break、continue語(yǔ)句的使用特性以及應(yīng)用范疇6. 了解goto語(yǔ)句的使用方法二、學(xué)習(xí)重點(diǎn):各種循環(huán)語(yǔ)句的組合使用break、continue語(yǔ)句的使用特性三、學(xué)習(xí)難點(diǎn):for語(yǔ)句的循環(huán)嵌套四、課堂筆記:_五、上機(jī)試驗(yàn):1. 求1+2+ +100的結(jié)果。#include <stdio.h> void main() int sum,counter; sum=0; counter=1; dosum=sum+counter; counter=counter+1; while (

26、counter<=100); printf("1+2+3+ .+100=%dn",counter); 2. 將下列程序段分別用C語(yǔ)言的for、while、dowhile結(jié)構(gòu)改寫,使其能產(chǎn)生相同的運(yùn)行結(jié)果:int nX=1;abc: printf(“#nX=%dn”,nX); nX+; if(nX<5) goto abc;3. 寫出下列程序的輸出結(jié)果:#include <stdio.h>void main() int nX,nY; for(nY=0,nX=1;nX<4;nX+) if(nY=2) nX - = nY; continue; swit

27、ch(nX) case 1: printf(“x=%d”,nX); continue; case 2: printf(“x+y=%d”,nX+nY); break; case 3: printf(“x*y=%d”,nX*nY); continue; case 4: printf(“x-y=%d”,nX-nY); break;printf(“y=%d”,+nY);4. 上機(jī)寫出如下程序段的輸出結(jié)果:int nX = 1, nY = 0;dowhile(nX = 0) printf(“y = %dn”, nY); nY+;if(nY > 3) break;printf(“x = %dn”,n

28、X);if(nY = 4) continue; nX- -;while(!nX);5. 統(tǒng)計(jì)各個(gè)數(shù)字、空白符及其他字符出現(xiàn)的次數(shù)#include<stdio.h>void main() int nCh, nI, nWhite,nNother;int nDigit10; /變量nDigit聲明為有10個(gè)整形數(shù)構(gòu)成的數(shù)組nWhite= nNother=0;for(nI=0;nI<10;+nI)nDigitnI=0;while(nCh = getchar()!= EOF)if(nCh>=0&&nCh<=9) +nDigitnCh-0; else if (

29、nCh= = |nCh=n| nCh=t) +nWhite; else +nNother;printf(“Digits = ”);for(nI=0;nI<10;+nI)printf(“%d”,nDigiti);printf(“,white space=%d,other=%dn”,nWhite,nNother);6. 輸出下列圖形:1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9#include <stdio.h> void main() int m

30、,n; for (n=1;n<=9;n=n+1) for (m=1;m<=n;m=m+1) printf("%-4d",m); printf("n"); /*一行結(jié)束需要換行*/ 7. 輸出3100的所有素?cái)?shù)。#include <stdio.h> void main() int nNum,nI; for (nNum=3;nNum<=100;nNum=nNum+1) for (nI=2;nI<=nNum-1;nI=nI+1) if (nNum % nI=0) break; if (nI>=nNum) printf(

31、"%dt",nNum); 六、作業(yè):1.請(qǐng)寫出break語(yǔ)句和continue語(yǔ)句的區(qū)別。答案:_2.計(jì)算Fibonacci數(shù)列的前30項(xiàng),并輸出。3.求水仙花數(shù)。如果一個(gè)三位數(shù)的百位數(shù)、十位數(shù)和個(gè)位數(shù)的立方和等于這個(gè)數(shù)則該數(shù)為水仙花數(shù)。4.從鍵盤輸入一個(gè)數(shù),求出這個(gè)數(shù)的階乘(10的階乘即為10*9*8*2*1)5.設(shè)計(jì)程序,在屏幕上輸出如下圖形: *6.求輸入的十個(gè)整數(shù)中正數(shù)的個(gè)數(shù)及其平均值7.設(shè)計(jì)程序,計(jì)算公式的值:1/1 + 2/(1+2) + 3/(1+2+3) + + 10/(1+2+3+10)七、經(jīng)驗(yàn)積累序號(hào)問(wèn) 題 描 述經(jīng)驗(yàn)級(jí)別1o o o2o o o3o o

32、 o4o o o5o o o6o o o7o o o8o o o9o o o10o o o第五講:數(shù) 組一、學(xué)習(xí)目標(biāo):n 熟悉一維數(shù)組的定義和初始化n 理解一維數(shù)組的存儲(chǔ)方式n 熟悉一維數(shù)組的引用n 熟悉二維數(shù)組的定義和初始化n 理解二維數(shù)組的存儲(chǔ)方式n 熟悉二維數(shù)組的引用n 熟練應(yīng)用數(shù)組作為函數(shù)參數(shù)時(shí)的傳參方式:數(shù)組元素作參數(shù);數(shù)組名作參數(shù)二、學(xué)習(xí)重點(diǎn):n 一維數(shù)組的定義和初始化n 二維數(shù)組的定義和初始化n 二維數(shù)組的存儲(chǔ)方式n 函數(shù)參數(shù)時(shí)的傳參方式:數(shù)組名作參數(shù)三、學(xué)習(xí)難點(diǎn):二維數(shù)組的存儲(chǔ)方式函數(shù)參數(shù)時(shí)的傳參方式:數(shù)組名作參數(shù)四、課堂筆記:_五、上機(jī)試驗(yàn):1. 將數(shù)字04放入一個(gè)整型數(shù)組,

33、并逆序輸出數(shù)組。#include <stdio.h> void main() int i,a5; /*給數(shù)組中元素賦值*/ for (i=0;i<5;i+) ai=i; /*逆序輸出數(shù)組中元素值*/ for (i=4;i>=0;i-) printf ("%3d",ai); printf("n"); 2. 輸入10個(gè)整數(shù),輸出最大數(shù)。#include <stdio.h> void main() int i,array10,big; /*給數(shù)組中所有元素賦值 */ for(i=0;i<10;i+) scanf(&qu

34、ot;%d",&arrayi); /*找出數(shù)組中最大的元素 */ big=array0; for(i=0;i<10;i+) if(arrayi>big) big=arrayi; printf ("The biggest is %3dn",big); 3.求Fibonacci數(shù)列的前20項(xiàng)。#include <stdio.h> void main( ) int i , f20=1,1; /*給出Fibonacci數(shù)列的前2項(xiàng)*/ /*根據(jù)公式由Fibonacci數(shù)列前2項(xiàng)求出其余18項(xiàng)*/ for(i=2;i<20;i+) fi

35、=fi-1+fi-2; /*輸出Fibonacci數(shù)列的前20項(xiàng)*/ for(i=0;i<20;i+) if (i%5=0) printf("n"); /*控制一行輸出5個(gè)元素*/ printf("%10d",fi); 4. 已知一個(gè)一維數(shù)組a11中有10個(gè)數(shù),求出其中前n個(gè)數(shù)的和。其中n由鍵盤輸入。 #include <stdio.h> int sum(int nArray ,int n) int i,sum=0; for (i=0;i<n;i+) sum+=nArrayi; return sum; void main() in

36、t nNum, a10=1,2,3,4,5,6,7,8,9,10; scanf ("%d",&nNum); printf("%dn",sum(a,nNum); 5.二維數(shù)組中最大元素值及其行列號(hào)#include <stdio.h>void main() int a34=1,2,3,4, 9,8,7,6, -10,10,-5,2; int i,j,row=0,colum=0,max; max=a00; for(i=0;i<=2;i+) for(j=0;j<=3;j+) if(aij>max) max=aij; row=

37、i; colum=j; printf("max=%d,row=%d, colum=%dn",max,row,colum);六、上機(jī)作業(yè):1如下代碼有錯(cuò)嗎?如果有錯(cuò),錯(cuò)在哪里?如果正確,寫出數(shù)組中所有元素的值:int a5=1,2,3,4,5,6;int b2+3=1,2,3;int c5= , , 3, 4;int d3,3=1,2,3,4,5,6,7,8,9;int e23=1,2,3;int f32=1,2,3;int g23= , ,2,1,0,0;答案:_2用如下程序段對(duì)數(shù)組進(jìn)行賦值,行嗎?為什么?int a5,b5,c5i;for(i=1;i<=5;i+)

38、ai=0;b=a;c=1,2,3,4,5;答案:_3使如下程序能實(shí)現(xiàn)數(shù)組Array中所有元素前后互換:#include <stdio.h>void main() int Array10=1,2,3,4,5,6,7,8,9,0; int n,t; for(n=0; n < ;n+) 答案:_4判斷如下程序段是否合法,如果合法,則寫出程序段運(yùn)行后,數(shù)組a中元素的值:int a55=0,n;for(n=0;n<25;n+) a0n=n*2;答案:_5在一個(gè)程序總需要一個(gè)函數(shù)void fun(int target,int source,int nCount)來(lái)實(shí)現(xiàn)將數(shù)組sour

39、ce中的元素拷貝到數(shù)組target中,拷貝結(jié)果是使數(shù)組target中元素的順序與source中相反:答案:_1. 編寫程序,定義數(shù)組int a10,從鍵盤輸入10個(gè)整數(shù),分別使用冒泡法和選擇法對(duì)數(shù)組排序,使數(shù)組中的元素從大到小排列。2. 已知一個(gè)二維數(shù)組int a53,里面的元素已經(jīng)被初始化為大小不等的值。編寫代碼,對(duì)此二維數(shù)組行排序,排序結(jié)果是數(shù)組的第0行平均值最小,第4行平均值最大。3. 存在一個(gè)二維數(shù)組int a55,編寫代碼對(duì)數(shù)組a實(shí)現(xiàn)行和列的互換,即使行列號(hào)為i,j的元素和行列號(hào)為j,i的元素互換。選做題:4. 編寫程序,實(shí)現(xiàn)矩陣乘法:提示:定義三個(gè)矩陣:int axy,byx,cx

40、x;,其中,x和y都是常量。c=a*b,乘法計(jì)算時(shí)有公式:cij=ai0*b0j + ai1*b1j + + aiy-1*by-1j。從鍵盤輸入20個(gè)隨機(jī)數(shù)到數(shù)組int a20中,不對(duì)數(shù)組排序,也不使用其它數(shù)組,編寫代碼使程序能輸出數(shù)組中的最大元素、最小元素以及第二大元素、第二小元素。第六講:函 數(shù)一、學(xué)習(xí)目標(biāo):n 了解函數(shù)的分類和執(zhí)行過(guò)程n 理解函數(shù)定義的一般形式、函數(shù)的聲明n 熟練應(yīng)用函數(shù)調(diào)用的一般形式n 理解函數(shù)形參和實(shí)參的關(guān)系、函數(shù)的返回值n 理解函數(shù)的嵌套調(diào)用和遞歸調(diào)用二、學(xué)習(xí)重點(diǎn):n 函數(shù)定義的一般形式、函數(shù)的聲明n 函數(shù)調(diào)用的一般形式n 函數(shù)形參和實(shí)參的關(guān)系、函數(shù)的返回值三、學(xué)習(xí)

41、難點(diǎn):函數(shù)的嵌套調(diào)用和遞歸調(diào)用四、課堂筆記:_五、上機(jī)試驗(yàn):1 求兩個(gè)數(shù)的階乘之和。#include <stdio.h>/*文件包含編譯預(yù)處理命令*/ long sum(int nNum1, int nNum2); /*函數(shù)類型說(shuō)明*/ long factorial(int nN);void main() int nN1,nN2; long lSum;scanf("%d,%d",&nN1,&nN2); lSum=sum(nN1,nN2); /*函數(shù)調(diào)用*/printf("sum=%1d",lSum); long sum(int nNum1, int nNum2) /*函數(shù)定義*/ long lTemp1,lTemp2; lTemp1=factorial( nNum1); /*函數(shù)調(diào)用*/lTemp2=factorial(nNum2); return(lTemp1+ lTemp2); /*函數(shù)返回值*/*求階乘*/long factorial(int nN) long lRtn=1; int nI; for(nI=1;nI<=n;nI+) lRtn*=nI; return(lRtn); 2 如下函數(shù)能完成主調(diào)函數(shù)傳過(guò)來(lái)的三個(gè)數(shù)從大到小排序目的嗎?為什么?void fun(int nNum1,i

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論