《C語言上機實驗例題》由會員分享,可在線閱讀,更多相關(guān)《C語言上機實驗例題(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實驗一 C語言的運行環(huán)境、運行過程和表達(dá)式的使用
一、目的與要求
1、了解Dos、Windows環(huán)境下C語言的運行環(huán)境,了解所用的計算機系統(tǒng)的基本操作方法,學(xué)會獨立使用該系統(tǒng)。
2、了解在該系統(tǒng)上如何編輯、編譯、連接和運行一個C程序。
3、通過運行簡單的C程序,初步了解C源程序的特點。
4、掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型、字符型、實型變量,以及對它們賦值的方法,了解以上類型數(shù)據(jù)輸出時所用的格式轉(zhuǎn)換符。
5、學(xué)會使用C的有關(guān)算術(shù)運算符,以及包含這些運算符的表達(dá)式
二、實驗例題
【例1】編程實現(xiàn)在屏幕上顯示如下三行文字
Hello, wor
2、ld !
Wolcome to the C language world!
Everyone has been waiting for.
在Turbo C的集成環(huán)境下,鍵入如下源文件。敲Alt+F組合鍵打開File菜單,F(xiàn)ile菜單中Write to或save as選項可將默認(rèn)noname.c文件名改為任意文件名。程序example.c如下:
main()
{
printf("Hello,World!\n");
printf("Wolcome to the C language world!\n");
printf("Eve
3、ryone has been waiting for.\n");
}
然后用Ctrl+F9執(zhí)行example.c,用Alt+F5查看結(jié)果,即在屏幕上顯示題目要求的三行文字。按回車鍵重新返回Turbo C的編輯環(huán)境。注意,在運行程序之前最好先存盤。
【例2】輸入并運行程序,寫出運行結(jié)果。
main()
{
int a,b,sum;
a=123;b=456;
sum=a+b;
printf(“sum is %d\n”,sum);
}
運行方法同上,最后結(jié)果為:sum is 579。
【例3】
輸入并運行程序,寫出運行結(jié)果。
main()
{
int a
4、,b,c;
int max(int,int);
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d”,c);
}
int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return(z);
}
這個程序的功能是對于任意輸入的兩個整數(shù),輸出較大的那個數(shù)。所以程序運行之后,光標(biāo)將停留在用戶屏幕上,等待用戶輸入兩個整數(shù),比如輸入“3,5”,回車,在用戶屏幕上就會輸出“max=5”。
【例4】輸入并運行下程序,寫出運行結(jié)果。
mian()
{
char c1 ,
5、c2;
c1=97;
c2=98;
printf(“%c %c”, c1, c2);
}
在此基礎(chǔ)上
1)加一個printf語句,并運行之。
printf(“%d,%d”, c1, c2 );
2)再將第二行改為:
int c1, c2;
再使之運行。
3)再將第三行改為:
c1=300; c2=400;
再使之運行,分析其運行結(jié)果。
在該程序中,說明了字符型數(shù)據(jù)在特定情況下可作為整型數(shù)據(jù)處理,整型數(shù)據(jù)有時也可以作為字符型數(shù)據(jù)處理。
【例5】分析下面程序,寫出運行結(jié)果,再輸入計算機運行,將得到的結(jié)果與你分析得到的結(jié)果比較對照。
main()
{
6、
char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t%c %c”,c4,c5);
}
在該程序中,主要考查對轉(zhuǎn)義字符的掌握情況。
【例6】
分析下面程序,寫出運行結(jié)果,再輸入計算機運行,將得到的結(jié)果與你分析得到的結(jié)果比較對照。
main()
{
int i , j , m , n ;
i=8; j=10;
m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
分別作以下改動之后,先分析
7、再運行:
1)將第四行改為:
m=i++; n= ++j;
2)程序改為:
main()
{
int i , j ;
i=8; j=10;
printf(“%d,%d”, i++, j++);
}
3)在2)的基礎(chǔ)上,將printf語句改為:
printf(“%d,%d”, ++ i, ++ j );
4)再將printf語句改為:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
5)程序改為:
main()
{
int i , j , m=0 , n=0 ;
i=8; j=10;
m+= i ++; n -= --j;
prin
8、tf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
}
此程序主要考查自加、自減運算符以及復(fù)合運算符的用法。
三、上機內(nèi)容
1.用turbo c輸入并運行前面6道例題中程序,記下運行結(jié)果,熟悉調(diào)試C程序的方法與步驟。
2.參照例題,編寫一個C程序,輸出以下信息:
****************************
Hello,World!
****************************
四、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗二 順序結(jié)構(gòu)與選擇結(jié)構(gòu)程序設(shè)
9、計
一、實驗?zāi)康募耙?
1. 理解C語言程序的順序結(jié)構(gòu);
2. 掌握常用的C語言語句,熟練應(yīng)用賦值、輸入、輸出語句;
3. 了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”);
4. 學(xué)會正確使用邏輯運算符和邏輯表達(dá)式;
5. 熟練掌握if語句和switch語句。
二、實驗內(nèi)容
1、已知圓半徑r=1.5,圓柱高h(yuǎn)=3, 求圓周長,圓面積,圓球表面積,圓球體積,圓柱體積。
2、輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=5/9*(f-32)。
3、有3個整數(shù)a、b、c,由鍵盤輸入,編程序按從小到大的順序?qū)⑺鼈兣判虿⑤敵觥?
4、編程序計算下面的函數(shù):
10、 e-1 0
11、≤20萬時,則低于等于10萬元的部分按10%提成,高于10萬元部分,可提成7.5%;若20萬100萬時,超過100萬元部分按1%提成。從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)獎金總數(shù)。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗三 循環(huán)結(jié)構(gòu)程序設(shè)計
一、實驗?zāi)康募耙?
1.熟練掌握while、do—while和f
12、or三種循環(huán)語句的應(yīng)用。
2.掌握基本的編程算法。
二、實驗內(nèi)容
1、利用公式
sinx=x-x3/3!+x5/5!-x7/7!+x9/9!-…+(-1)(n-1)x(2n-1) /(2n-1)!
編程計算sinx的值。設(shè)x=0.5,n=9。
2、編寫程序求:
3、輸入20個有符號整數(shù),統(tǒng)計正整數(shù)、零、負(fù)整數(shù)的個數(shù)。
4、輸入m個數(shù),求其最大數(shù)、最小數(shù)和平均值。
5、在100和1000之間,有多少個其數(shù)字之和等于9而且該數(shù)可被5整除的整數(shù)?
6、一位同學(xué)問老師和老師夫人的年齡是多少,老師說:“我年齡的平方加上我夫人的年齡恰好等于
13、1053,而我夫人年齡的平方加上我的年齡等于873。”試計算老師和其夫人的年齡。
7、打印下列圖案
*
***
*****
***
*
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗四、數(shù)組程序設(shè)計
一、實驗?zāi)康募耙?
1.掌握一維、二維數(shù)組的定義、賦值和輸入輸出的方法;
2.掌握字符數(shù)組的使用;
3.掌握與數(shù)組有關(guān)的算法(例如排序算法)。
二、實驗內(nèi)容
1、給整型二維數(shù)組 b[3][4]輸入12個數(shù)據(jù),計算并輸出數(shù)組中所有正數(shù)之和、所有負(fù)數(shù)之和。
2、青年歌手參加歌曲大獎賽,有10個評委進行打分,
14、試編程求這位選手的平均得分(去掉一個最高分和一個最低分)。
分析:這道題的核心是排序。將評委所打的10個分?jǐn)?shù)利用數(shù)組按增序(或降序)排列,計算數(shù)組中除第一個和最后一個分?jǐn)?shù)以外的數(shù)的平均分。
3、設(shè)二維數(shù)組 b[5][4]中有鞍點,即b[i][j]元素值在第i行中最小,且在第j列中最大,試編寫一程序找出所有的鞍點,并輸出其下標(biāo)值。也可能沒有。
4、從鍵盤輸入一數(shù),然后在一個整型一維數(shù)組a[20]中,用折半查找法找出該數(shù)是數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中,則打印”No found”。
5、編程打印如下圖形:
*
* *
*
15、*
* *
*
6、有一電文,已按下列規(guī)律譯成譯碼:
A→Z a→z
B→Y b→y
C→X c→x
即第一個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不變。編寫一個程序?qū)⒚艽a譯成原文,并輸出密碼和原文。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗五 函數(shù)程序設(shè)計
一、目的與要求
1、掌握C語言函數(shù)的定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。
2、了解主調(diào)函數(shù)和被
16、調(diào)函數(shù)之間的參數(shù)傳遞方式。
二、實驗內(nèi)容
1、分別編寫求圓面積和圓周長的函數(shù),另編寫一主函數(shù)調(diào)用之, 要求主函數(shù)能輸入多個圓半徑,且顯示相應(yīng)的圓面積和周長。
2、編寫一程序,把MN矩陣a的元素逐列按降序排列。假設(shè)M、N不超過10。分別編寫求一維數(shù)組元素值最大和元素值最小的函數(shù),主函數(shù)中初始化一個二維數(shù)組a[10][10],調(diào)用定義的兩函數(shù)輸出每行、每列的最大值和最小值。
3、編寫一判別素數(shù)的函數(shù),在主函數(shù)中輸入一個整數(shù),輸出該數(shù)是否為素數(shù)的信息。
4、編寫一個將兩個字符串連接起來函數(shù)(即實現(xiàn)strcat函數(shù)的功能),兩個字符串由主函數(shù)輸入, 連接后的字符串也由主函數(shù)輸出。
5、
17、編寫計算最小公倍數(shù)的函數(shù),試由主函數(shù)輸入兩個正整數(shù)a和b調(diào)用之。計算最小 公倍數(shù)的公式為:
lcm(u,v)=u*v/gcd(u,v) (u,v≥0)
其中,gcd(u,v)是u、v的最大公約數(shù)。lcm(u,v)是u、v的最小公倍數(shù)。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗六 指針程序設(shè)計
一、目的與要求
1、通過實驗進一步掌握指針的概念,會定義和使用指針變量;
2、能正確使用數(shù)組的指針和指向數(shù)組的指針變量;
3、能正確使用字符串的指針和指向字符串的指針變量;
4、能正確使用
18、指向函數(shù)的指針變量;
5、了解指向指針的指針的概念及其使用方法。
二、實驗內(nèi)容
1、編寫子函數(shù),對傳送過來的三個數(shù)按由小到大的順序排列,并通過形參傳回調(diào)用函數(shù)。
2、編寫函數(shù)int find(int *p,int n,int x),在指針p所指的數(shù)組中查找整型數(shù)x,如果x在數(shù)組中,則該函數(shù)返回1,否則返回0。n為數(shù)組的大小。
3、(選做)有n個整數(shù),使前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前m個數(shù)(如下圖所示)。寫一函數(shù)實現(xiàn)以上功能,在主函數(shù)中輸入n個整數(shù)和輸出調(diào)整后的n個整數(shù)。
4、(選做)在主函數(shù)中輸入10個不等長的字符串。用另一個函
19、數(shù)對它們按升序排序,然后在主函數(shù)中輸出這10個已排序的字符串。
5、(選做)用指針型指針對五個字符串進行排序,并將排序后的結(jié)果按順序輸出。
6、(選做)編寫一程序,統(tǒng)計從鍵盤輸入的命令行中第二個參數(shù)所包含的英文字符個數(shù)。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗七 結(jié)構(gòu)體、共用體程序設(shè)計
一、目的與要求
1、掌握結(jié)構(gòu)體類型變量的定義和使用;
2、掌握結(jié)構(gòu)體類型數(shù)組的概念和使用;
4、了解共用體的概念與使用。
二、實驗內(nèi)容
編程序,然后上機調(diào)試運行下列程序。
1. 有10個學(xué)生,每個學(xué)生的數(shù)據(jù)
20、包括學(xué)號、姓名、3門課的成績,從鍵盤輸入10個學(xué)生數(shù)據(jù),要求打印出3門課總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、3門課的成績、平均分?jǐn)?shù))。
要求用input函數(shù)輸入10個學(xué)生數(shù)據(jù);用average函數(shù)求總平均分;用max函數(shù)找出最高分的學(xué)生數(shù)據(jù);總平均分和最高分學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。
2. 設(shè)有兩個人員的數(shù)據(jù),一個學(xué)生,一個教師。學(xué)生的數(shù)據(jù)中包括:學(xué)號、姓名、班級,、教師的數(shù)據(jù)中包括:工號、姓名、職稱?,F(xiàn)將兩人的數(shù)據(jù)放在同一表格中,要求輸入兩人的數(shù)據(jù),再將輸入的內(nèi)容輸出。
提示:參考教材例11.12(P311)
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果
21、出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗八 文件程序設(shè)計
一、目的與要求
1、掌握文件和文件指針的概念以及文件的定義方法。
2、了解文件打開和關(guān)閉的概念和方法。
3、掌握有關(guān)文件的函數(shù)。
二、實驗內(nèi)容
1、有 5個學(xué)生,每個學(xué)生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號,姓名,三門課成績),計算出平均成績,將原始數(shù)據(jù)和計算出的平均分?jǐn)?shù)存放在磁盤文件“stud”中。
2、將上題“stud”文件中的學(xué)生數(shù)據(jù),按平均分進行排序處理,將已排序的學(xué)生數(shù)據(jù)存入一個新文件“stu_sort”中。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。