《C語言程序設(shè)計》實驗指導(dǎo)書_第1頁
《C語言程序設(shè)計》實驗指導(dǎo)書_第2頁
《C語言程序設(shè)計》實驗指導(dǎo)書_第3頁
《C語言程序設(shè)計》實驗指導(dǎo)書_第4頁
《C語言程序設(shè)計》實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

3、,+k);printf(“%xn”,g+);運行結(jié)果為:實驗2 順序結(jié)構(gòu)程序設(shè)計 實驗?zāi)康?掌握C語言中賦值語句的使用方法。 掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。 進一步熟悉C程序的編輯、編譯、連接和運行的過程。 實驗內(nèi)容用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a。問在鍵盤上如何輸入?請書寫程序#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”);運行,并按照如下方式在鍵盤上輸入:A=3 b=78.5 71.82A a運行結(jié)果:A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a思考:為什么在第三個scanf函數(shù)雙引號第一個字符為空格字符,如果沒有這個空格字符,而寫成:scanf(“%c %c”,&c1,&c2); 按以上的輸入、輸出將如何變化?請分析原因?qū)嶒? 選擇結(jié)構(gòu)程序設(shè)計 實驗?zāi)康?了解C語言表示邏輯量的方法(以0代表”假”

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

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

7、函數(shù)是一個判斷整數(shù)是否為素數(shù)的函數(shù),使用該函數(shù)求1000以內(nèi)的素數(shù)平均值。寫出調(diào)試過程。#include “stdio.h”void main() int a=0,k; /* a保存素數(shù)之和 */float av; /* av保存1000以內(nèi)素數(shù)的平均值 */for (k=2;k<=1000;k+)if (fun(k) /* 判斷k是否為素數(shù) */a+=k;av=a/1000;printf("av=%fn",av);fun(int n) /* 判斷輸入的整數(shù)是否為素數(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)試以下程序并查看運行結(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) /請回答:函數(shù)功能是什么? int x; z=(x>y)?x:y;return(z); 題目:調(diào)試以下程序并查看運行結(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) 請回答:函數(shù)功能是什么? int z;z=x+y;return(x);B、編程題目:要求:每道題目分別書寫程序,試運行(如何輸入,結(jié)果如何)。題目:編寫函數(shù)求x的n次方的值(提示:有一個參數(shù)的函數(shù))題目:編寫一個求水仙花數(shù)的函數(shù),求3位正整數(shù)的全部水仙花數(shù)中的次大值。所謂水仙花數(shù)是指三位整數(shù)的各位上的數(shù)字的立方和等于該整數(shù)本身。例如:153就是一個水仙花數(shù):153 = 13 + 53 + 33實驗6 編譯預(yù)處理 實驗?zāi)康?掌握宏定義的規(guī)則,領(lǐng)會帶參數(shù)宏定義和函數(shù)調(diào)用的區(qū)別。 了解文件包含命令的功能和使用規(guī)則。 了解條件編譯的特點和功能。 實驗

10、內(nèi)容A 宏定義及其應(yīng)用 以下程序的運行結(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語句后,輸出結(jié)果是_。int a;a=Y;printf("%dn",Z);printf("%dn",-a); 請讀程序:#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é)果是_。 以下程序的運行結(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 “文件包含”處理測試 文

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)試并察看運行結(jié)果。注意文件保存的路徑。實驗7 數(shù)組應(yīng)用編程 實驗?zāi)康?掌握一維數(shù)組和二維數(shù)組定義、賦值和輸入輸出的方法。 掌握字符數(shù)組和字符串函數(shù)的使用。 實驗內(nèi)容A:修改調(diào)試題目:調(diào)試下列程序,使之具有如下功能:輸入10個整數(shù),按每行3個數(shù)輸出這些整數(shù),最后輸出10個整數(shù)的平均值。寫出調(diào)試過程。#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);上面給出的程序是完全可以運行的,但是運行結(jié)果是完全錯誤的。調(diào)試時請注意變量的初值問題、輸出格式問題等。請使用前面實驗所掌握的調(diào)試工具,判斷程序中的錯誤并改正。在程序運行過程中,可以使用<Ctrl>+<Break>鍵終止程序的運行,返回到TC環(huán)境。B、編程題目:(題目、題目為一組,題目為一組,題目為一組。每個同學(xué)每組都必須完成1題)

15、要求:每道題目分別書寫程序,試運行(如何輸入,結(jié)果如何)。題目:從鍵盤輸入10個整數(shù)存入數(shù)組,找出其中最大和最小值,并輸出。題目:從鍵盤輸入一個字符串,編寫程序?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): 求出對角線上各元素的和; 求出對角線上行、列下標均為偶數(shù)的各元素的積; 找出對角線上其值最大的元素和它在數(shù)組中的位置。實驗8 數(shù)組名作為函數(shù)的參數(shù) 實驗?zāi)康?掌握數(shù)組名作為函數(shù)參數(shù)的基本使用方式。 掌握

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

17、元素的和; 求出對角線上行、列下標均為偶數(shù)的各元素的積; 找出對角線上其值最大的元素和它在數(shù)組中的位置。實驗9 使用指針處理數(shù)組 實驗?zāi)康?掌握指針變量的定義與引用。 掌握指針與變量、指針與數(shù)組的關(guān)系。 掌握用數(shù)組指針作為函數(shù)參數(shù)的方法。 實驗題目A:修改調(diào)試題目:題目: 調(diào)試下列程序,使之具有如下功能:用指針法輸入12個數(shù),然后按每行4個數(shù)輸出。寫出調(diào)試過程。#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)試該程序時將a設(shè)置為一個"watch",數(shù)組a所有元素的值在一行顯示出來。調(diào)試時注意指針變量指向哪個目標變量。題目:調(diào)試下列程序,使之具有如下功能:任意輸入2個數(shù),調(diào)用兩個函數(shù)分別求: 2個數(shù)的和; 2個數(shù)交換值。要求用函數(shù)指針調(diào)用這兩個函數(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ù)值還是地址。B、編程題目:(題目為一組,題目為一組。每個同學(xué)每組都必須完成1題)要求:每道題目分別書寫程序,試運行(如何輸入,結(jié)果如何)。題目: 編寫用指針變量作為函數(shù)參數(shù)實現(xiàn)兩個數(shù)的交換的函數(shù),主函數(shù)輸入兩個個數(shù)都為10的數(shù)組A,B,調(diào)用所編寫的函數(shù)交換數(shù)組A,B中對應(yīng)元素的值。題目:編寫用指針變量作為函數(shù)參數(shù)求數(shù)組的最小值、最大值和平均值的函數(shù),主函數(shù)輸入個數(shù)都為10的數(shù)組,調(diào)用所編寫的函數(shù)并輸出該數(shù)組的最小值、最大值和平均值。實驗10 使用指針處理數(shù)組 實驗?zāi)康?掌握指針變量的定義與引用。 掌握指針與變量、指針與數(shù)組的關(guān)系。 掌握用數(shù)組指針作為函數(shù)參數(shù)的方法。 實驗內(nèi)容編程題目:要求:本題的實現(xiàn)要求用函數(shù)實現(xiàn),主函數(shù)

溫馨提示

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

評論

0/150

提交評論