《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、程序設(shè)計(jì)基礎(chǔ)指導(dǎo)書實(shí)驗(yàn)1 C的實(shí)驗(yàn)環(huán)境和C語(yǔ)言的數(shù)據(jù)類型 實(shí)驗(yàn)?zāi)康?了解在具體的語(yǔ)言環(huán)境下如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。 通過(guò)運(yùn)行簡(jiǎn)單的C程序,初步了解C源程序的特點(diǎn)。 掌握C語(yǔ)言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型和實(shí)型的變量,以及對(duì)它們賦值的方法。 掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。 學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(+)和自減(-)運(yùn)算符的使用。 實(shí)驗(yàn)內(nèi)容和步驟 檢查所用的計(jì)算機(jī)系統(tǒng)是否已安裝了C編譯系統(tǒng)并確定他所在的子目錄。 進(jìn)入所用的集成環(huán)境。 熟悉集成環(huán)境的界面和有關(guān)菜單的使用方法。 輸入并運(yùn)行一個(gè)簡(jiǎn)單的、正確的程序。 實(shí)驗(yàn)題目 輸入下面

2、的程序# include “stdio.h”void main() printf(“This is a c program.n”); 程序無(wú)誤,其運(yùn)行的結(jié)果為:(請(qǐng)?zhí)顚懀?輸入并編輯一個(gè)有錯(cuò)誤的C程序。# include “stdio.h”void main() int a,b,suma=123; b=456;sum=a+bprint(“sum is %dn”,sum);運(yùn)行后程序出現(xiàn)幾處錯(cuò)誤,請(qǐng)分別指出,并逐一更改: 若k,g均為int型變量,則下列語(yǔ)句的輸出為,:# include “stdio.h”void main() int k, g;k=017; g=111;print(“%dt”

3、,+k);printf(“%xn”,g+);運(yùn)行結(jié)果為:實(shí)驗(yàn)2 順序結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康?掌握C語(yǔ)言中賦值語(yǔ)句的使用方法。 掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。 進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過(guò)程。 實(shí)驗(yàn)內(nèi)容用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a。問(wèn)在鍵盤上如何輸入?請(qǐng)書寫程序#include “stdio.h”void main() int a,b;float x,y;charc1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“%f %e”,&x,&

4、amp;y);scanf(“ %c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn”);運(yùn)行,并按照如下方式在鍵盤上輸入:A=3 b=78.5 71.82A a運(yùn)行結(jié)果:A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a思考:為什么在第三個(gè)scanf函數(shù)雙引號(hào)第一個(gè)字符為空格字符,如果沒(méi)有這個(gè)空格字符,而寫成:scanf(“%c %c”,&c1,&c2); 按以上的輸入、輸出將如何變化?請(qǐng)分析原因?qū)嶒?yàn)3 選擇結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康?了解C語(yǔ)言表示邏輯量的方法(以0代表”假”

5、,以非0代表”真”)。 學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。 熟練掌握if語(yǔ)句和switch語(yǔ)句。 結(jié)合程序掌握一些簡(jiǎn)單的算法。 學(xué)習(xí)調(diào)試程序。 實(shí)驗(yàn)內(nèi)容題目: 有3個(gè)整數(shù)a、b、c,由鍵盤輸入,輸出其中最大的數(shù)。題目:求三位數(shù)的水仙花數(shù)。要求:每道題目分別畫出程序流程圖,書寫程序,試運(yùn)行(如何輸入,結(jié)果如何)。實(shí)驗(yàn)4、循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 實(shí)驗(yàn)?zāi)康?熟悉掌握用while語(yǔ)句,dowhile語(yǔ)句和for語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。 掌握在程序設(shè)計(jì)中用循環(huán)的方法實(shí)現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。 進(jìn)一步學(xué)習(xí)調(diào)試過(guò)程。 實(shí)驗(yàn)內(nèi)容題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。題目:輸入一行字符

6、,分別統(tǒng)計(jì)出其中大小寫英文字母、空格、數(shù)字和其他字母的個(gè)數(shù)。題目:猴子吃桃問(wèn)題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),就只剩一個(gè)桃子了。求第一天共摘多少桃子。要求:每道題目分別畫出程序流程圖,書寫程序,試運(yùn)行(如何輸入,結(jié)果如何)。實(shí)驗(yàn)5 函數(shù)定義和使用 實(shí)驗(yàn)?zāi)康?學(xué)習(xí)C語(yǔ)言中函數(shù)的定義和調(diào)用方法。 掌握通過(guò)參數(shù)在函數(shù)間傳遞數(shù)據(jù)的方法。 熟悉TC集成環(huán)境對(duì)包含函數(shù)調(diào)用的程序的調(diào)試方法。 實(shí)驗(yàn)題目A:修改調(diào)試題目:題目:調(diào)試下列程序,使之具有如下功能:fun

7、函數(shù)是一個(gè)判斷整數(shù)是否為素?cái)?shù)的函數(shù),使用該函數(shù)求1000以內(nèi)的素?cái)?shù)平均值。寫出調(diào)試過(guò)程。#include “stdio.h”void main() int a=0,k; /* a保存素?cái)?shù)之和 */float av; /* av保存1000以內(nèi)素?cái)?shù)的平均值 */for (k=2;k<=1000;k+)if (fun(k) /* 判斷k是否為素?cái)?shù) */a+=k;av=a/1000;printf("av=%fn",av);fun(int n) /* 判斷輸入的整數(shù)是否為素?cái)?shù) */ int i,y=0;for(i=2;i<n;i+)if (n%i=0) y=1;else

8、 y=0;return y;題目:調(diào)試以下程序并查看運(yùn)行結(jié)果:#include “stdio.h”void main() int a=1,b=2,c;c=max(a,b);printf("max is %dn",c); max(int x,int y) /請(qǐng)回答:函數(shù)功能是什么? int x; z=(x>y)?x:y;return(z); 題目:調(diào)試以下程序并查看運(yùn)行結(jié)果:int a=5;int b=7;#include “stdio.h”void main() int a=4,b=5,c;c=plus(a,b);printf("A+B=%dn",

9、c); int plus(int x,int y) 請(qǐng)回答:函數(shù)功能是什么? int z;z=x+y;return(x);B、編程題目:要求:每道題目分別書寫程序,試運(yùn)行(如何輸入,結(jié)果如何)。題目:編寫函數(shù)求x的n次方的值(提示:有一個(gè)參數(shù)的函數(shù))題目:編寫一個(gè)求水仙花數(shù)的函數(shù),求3位正整數(shù)的全部水仙花數(shù)中的次大值。所謂水仙花數(shù)是指三位整數(shù)的各位上的數(shù)字的立方和等于該整數(shù)本身。例如:153就是一個(gè)水仙花數(shù):153 = 13 + 53 + 33實(shí)驗(yàn)6 編譯預(yù)處理 實(shí)驗(yàn)?zāi)康?掌握宏定義的規(guī)則,領(lǐng)會(huì)帶參數(shù)宏定義和函數(shù)調(diào)用的區(qū)別。 了解文件包含命令的功能和使用規(guī)則。 了解條件編譯的特點(diǎn)和功能。 實(shí)驗(yàn)

10、內(nèi)容A 宏定義及其應(yīng)用 以下程序的運(yùn)行結(jié)果是_。#define MIN(x,y) (x)<(y)?(x):(y)#include “stdio.h”void main() int i=10,j=15,k;k=10*MIN(i,j);printf("%dn",k); 若有宏定義如下:#define X 5#define Y X+1#define Z Y*X/2則執(zhí)行以下printf語(yǔ)句后,輸出結(jié)果是_。int a;a=Y;printf("%dn",Z);printf("%dn",-a); 請(qǐng)讀程序:#include <std

11、io.h>#define MUL(x,y) (x)*ymain() int a=3,b=4,c;c=MUL(a+,b+);printf("%dn",c); 上面程序的輸出結(jié)果是_。 以下程序的運(yùn)行結(jié)果是_.#include “stdio.h”void main() incx();incy();incx();incy();incx(); incy(); incx() int x=0;printf("x=%dt",+x);incy() static int y=0;printf("ny=%dn",+y);B “文件包含”處理測(cè)試 文

12、件format.h包含以下內(nèi)容:#define PR printf#define NL "n"#define D "%D"#define D1 D NL#define D2 D D NL#define D3 D D D NL#define D4 D D D D NL#define S "%S" 文件file1.C包含以下內(nèi)容:#include "format.h"void main() int a,B,C,D;char string="CHINA"a=1;B=2;C=3;D=4;PR(D1,a)

13、;PR(D2,a,B);PR(D3,a,B,C);PR(D4,a,B,C,D);PR(S,string);調(diào)試并察看運(yùn)行結(jié)果。注意文件保存的路徑。實(shí)驗(yàn)7 數(shù)組應(yīng)用編程 實(shí)驗(yàn)?zāi)康?掌握一維數(shù)組和二維數(shù)組定義、賦值和輸入輸出的方法。 掌握字符數(shù)組和字符串函數(shù)的使用。 實(shí)驗(yàn)內(nèi)容A:修改調(diào)試題目:調(diào)試下列程序,使之具有如下功能:輸入10個(gè)整數(shù),按每行3個(gè)數(shù)輸出這些整數(shù),最后輸出10個(gè)整數(shù)的平均值。寫出調(diào)試過(guò)程。#include “stdio.h”void main() int i,n,a10,av;for(i=0;i<n;i+)scanf("%d",ai);for(i=0;i

14、<n;i+) printf("%d",ai);if (i%3=0) printf("n");for(i=0;i!=n;i+)av+=ai;printf("av=%fn",av);上面給出的程序是完全可以運(yùn)行的,但是運(yùn)行結(jié)果是完全錯(cuò)誤的。調(diào)試時(shí)請(qǐng)注意變量的初值問(wèn)題、輸出格式問(wèn)題等。請(qǐng)使用前面實(shí)驗(yàn)所掌握的調(diào)試工具,判斷程序中的錯(cuò)誤并改正。在程序運(yùn)行過(guò)程中,可以使用<Ctrl>+<Break>鍵終止程序的運(yùn)行,返回到TC環(huán)境。B、編程題目:(題目、題目為一組,題目為一組,題目為一組。每個(gè)同學(xué)每組都必須完成1題)

15、要求:每道題目分別書寫程序,試運(yùn)行(如何輸入,結(jié)果如何)。題目:從鍵盤輸入10個(gè)整數(shù)存入數(shù)組,找出其中最大和最小值,并輸出。題目:從鍵盤輸入一個(gè)字符串,編寫程序?qū)⒃撟址嫘?。題目:輸出楊輝三角形(要求輸出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 (提示,使用二維數(shù)組)題目: 輸入4×4的數(shù)組,編寫程序?qū)崿F(xiàn): 求出對(duì)角線上各元素的和; 求出對(duì)角線上行、列下標(biāo)均為偶數(shù)的各元素的積; 找出對(duì)角線上其值最大的元素和它在數(shù)組中的位置。實(shí)驗(yàn)8 數(shù)組名作為函數(shù)的參數(shù) 實(shí)驗(yàn)?zāi)康?掌握數(shù)組名作為函數(shù)參數(shù)的基本使用方式。 掌握

16、與數(shù)組有關(guān)的算法(特別是排序算法)。 實(shí)驗(yàn)內(nèi)容編程題目:(題目、題目為一組,題目為一組。每個(gè)同學(xué)每組都必須完成1題)要求:每道題目分別書寫程序,試運(yùn)行(如何輸入,結(jié)果如何)。題目:編寫函數(shù)實(shí)現(xiàn)將數(shù)組元素按從小到大的順序排序,主函數(shù)從鍵盤輸入10個(gè)整數(shù)存入數(shù)組,調(diào)用函數(shù)后輸出數(shù)組的元素。題目:用數(shù)組名作為函數(shù)參數(shù),編寫一個(gè)比較兩個(gè)字符串s和t大小的函數(shù)strcomp(s,t),要求s小于t時(shí)返回-1,s等于t時(shí)返回0,s大于t時(shí)返回1。在主函數(shù)中任意輸入4個(gè)字符串,利用該函數(shù)求最小字符串。題目: 輸入6×6的數(shù)組,下面的各要求通過(guò)編寫函數(shù)實(shí)現(xiàn),要求用數(shù)組名作為函數(shù)參數(shù): 求出對(duì)角線上各

17、元素的和; 求出對(duì)角線上行、列下標(biāo)均為偶數(shù)的各元素的積; 找出對(duì)角線上其值最大的元素和它在數(shù)組中的位置。實(shí)驗(yàn)9 使用指針處理數(shù)組 實(shí)驗(yàn)?zāi)康?掌握指針變量的定義與引用。 掌握指針與變量、指針與數(shù)組的關(guān)系。 掌握用數(shù)組指針作為函數(shù)參數(shù)的方法。 實(shí)驗(yàn)題目A:修改調(diào)試題目:題目: 調(diào)試下列程序,使之具有如下功能:用指針?lè)ㄝ斎?2個(gè)數(shù),然后按每行4個(gè)數(shù)輸出。寫出調(diào)試過(guò)程。#include "format.h"void main() int j,k,a12,*p;for(j=0;j<12;j+)scanf("%d",p+);for(j=0;j<12;j+

18、) printf("%d",*p+);if (j%4 = 0) printf("n");調(diào)試該程序時(shí)將a設(shè)置為一個(gè)"watch",數(shù)組a所有元素的值在一行顯示出來(lái)。調(diào)試時(shí)注意指針變量指向哪個(gè)目標(biāo)變量。題目:調(diào)試下列程序,使之具有如下功能:任意輸入2個(gè)數(shù),調(diào)用兩個(gè)函數(shù)分別求: 2個(gè)數(shù)的和; 2個(gè)數(shù)交換值。要求用函數(shù)指針調(diào)用這兩個(gè)函數(shù),結(jié)果在主函數(shù)中輸出。#include "format.h"void main() int a,b,c,(*p)();scanf("%d,%d",&a,&

19、;b);p=sum;*p(a,b,c);p=swap;*p(a,b);printf("sum=%dn",c);printf("a=%d,b=%dn",a,b);sum(int a, int b, int c) c=a+b; swap(int a, int b) int t;t=a;a=b;b=t;調(diào)試程序時(shí)注意參數(shù)傳遞的是數(shù)值還是地址。B、編程題目:(題目為一組,題目為一組。每個(gè)同學(xué)每組都必須完成1題)要求:每道題目分別書寫程序,試運(yùn)行(如何輸入,結(jié)果如何)。題目: 編寫用指針變量作為函數(shù)參數(shù)實(shí)現(xiàn)兩個(gè)數(shù)的交換的函數(shù),主函數(shù)輸入兩個(gè)個(gè)數(shù)都為10的數(shù)組A,B,調(diào)用所編寫的函數(shù)交換數(shù)組A,B中對(duì)應(yīng)元素的值。題目:編寫用指針變量作為函數(shù)參數(shù)求數(shù)組的最小值、最大值和平均值的函數(shù),主函數(shù)輸入個(gè)數(shù)都為10的數(shù)組,調(diào)用所編寫的函數(shù)并輸出該數(shù)組的最小值、最大值和平均值。實(shí)驗(yàn)10 使用指針處理數(shù)組 實(shí)驗(yàn)?zāi)康?掌握指針變量的定義與引用。 掌握指針與變量、指針與數(shù)組的關(guān)系。 掌握用數(shù)組指針作為函數(shù)參數(shù)的方法。 實(shí)驗(yàn)內(nèi)容編程題目:要求:本題的實(shí)現(xiàn)要求用函數(shù)實(shí)現(xiàn),主函數(shù)

溫馨提示

  • 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)論