《《C程序設(shè)計》作業(yè)內(nèi)容》由會員分享,可在線閱讀,更多相關(guān)《《C程序設(shè)計》作業(yè)內(nèi)容(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實驗一 C語言的運行環(huán)境的使用
一、目的與要求
1. 了解Windows系統(tǒng)下C語言的運行環(huán)境,熟悉C程序調(diào)試、運行的基本操作方法。
2. 熟練掌握編輯、編譯、連接和運行C程序的方法。
3. 通過運行簡單的C程序,初步了解C源程序的特點。
4. 初步理解C語言的數(shù)據(jù)類型,了解變量定義、變量賦值以及簡單運算方法,了解程序運行結(jié)果的基本輸出方法。
二、實驗例題
在C語言運行環(huán)境下,按以下例題要求完成程序的編輯、編譯、連接和運行,直至取得正確的運行結(jié)果。
【例1】編程實現(xiàn)在屏幕上顯示如下三行文字
Hello, world !
2、 Wolcome to the C language world!
Everyone has been waiting for.
(1) 輸入如下程序:
#include
int main()
{
printf("Hello,World!\n");
printf("Wolcome to the C language world!\n");
printf("Everyone has been waiting for.\n");
return 0;
}
(2)將輸入的程序以文件名example.c存盤。
(3)編譯:通過“組建”(
3、Build) 下拉菜單中的“編譯”(compile)命令,編譯example.c,若出現(xiàn)編譯錯誤,則修改程序,重新編譯,直至編譯成功,系統(tǒng)自動生成目標文件example.obj。
(4)連接:通過“組建”(Build)下拉菜單中的“組建”(Build)命令,生成以.exe為擴展名的可執(zhí)行文件example.exe。
(5)運行:通過“組建”菜單下的“執(zhí)行”(Excute)命令運行程序并觀察運行結(jié)果。
【例2】編寫程序,將兩個整數(shù)相加,并輸出結(jié)果。
#include
int main()
{ int a,b,sum;
a=123;b=456;
su
4、m=a+b;
printf(“sum is %d\n”,sum);
return 0;}
運行方法例1,運行結(jié)果為:sum is 579。
【例3】編寫程序,要求從鍵盤輸入2個整數(shù),輸出其中較大的數(shù)。
#include
int main()
{ int a,b,c;
int max(int,int);
scanf(“%d,%d”,&a,&b); //等待用戶從鍵盤輸入2個整數(shù),輸入時兩數(shù)以逗號間隔
c=max(a,b);
printf(“max=%d”,c);
return 0;
}
int max(int x,int y)
{
5、 int z;
if (x>y) z=x;
else z=y;
return(z);
}
注意:
(1)第5行使用了輸入函數(shù)scanf,程序運行之后,光標停留在用戶屏幕上等待用戶輸入兩個整數(shù),比如輸入“3,5”,回車,程序取得輸入數(shù)據(jù)后繼續(xù)運行,最后輸出運行結(jié)果,即在用戶屏幕上顯示“max=5”。
(2)該例定義了max函數(shù),并在主函數(shù)中調(diào)用max函數(shù)實現(xiàn)了找出兩數(shù)中較大數(shù)的功能。
(3)請思考,如果直接在主函數(shù)中對兩數(shù)進行比較從而找出較大數(shù),程序該如何編寫?
【例4】輸入并運行下程序,觀察運行結(jié)果。
#include
int main()
{
6、 char c1, c2;
c1=97;
c2=98;
printf(“%c %c”, c1, c2);
return 0;
}
在此基礎(chǔ)上,
(1)在第6行后面加入下面的printf語句,運行并觀察運行結(jié)果。
printf(“%d,%d”, c1, c2 );
(2)再將第3行改為:
int c1, c2;
運行并觀察運行結(jié)果。
(3)再將第4、5行改為:
c1=300; c2=400;
再使之運行,觀察并思考運行結(jié)果。
該程序說明了字符型數(shù)據(jù)在特定情況下可作為整型數(shù)據(jù)處理,整型數(shù)據(jù)有時也可以作為字符型數(shù)據(jù)處理。
【例5】分析
7、下面程序,寫出運行結(jié)果,再輸入計算機運行,將得到的結(jié)果與你分析得到的結(jié)果比較對照。
#include
int main()
{
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);
return 0;
}
該程序主要考查對轉(zhuǎn)義字符的掌握情況。
【例6】分析下面程序,寫出運行結(jié)果,再輸入計算機運行,將得到的結(jié)果與你分析得到的結(jié)果比較對照。
#include
i
8、nt main()
{ int i,j, m, n ;
i=8; j=10;
m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
return 0;
}
分別作以下改動之后,先分析再運行,并對結(jié)果進行比對:
(1)將第5行改為:
m=i++; n= ++j;
(2)程序改為:
#include
int main()
{ int i , j ;
i=8; j=10;
printf(“%d,%d”, i++, j++);
return 0;
}
(3) 在(2)的基礎(chǔ)上,將printf語句改為:
pri
9、ntf(“%d,%d”, ++ i, ++ j );
(4)再將printf語句改為:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
(5)程序改為:
#include
void main()
{ int i , j , m=0 , n=0 ;
i=8; j=10;
m+=i++; n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
}
此程序主要考查自加、自減運算符以及復(fù)合運算符的用法。
三、上機內(nèi)容
1.參照例題,編寫一個C程序,輸出以下信息:
************
10、****************
Hello,World!
****************************
四、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗二 順序結(jié)構(gòu)與選擇結(jié)構(gòu)程序設(shè)計
一、實驗?zāi)康募耙?
1. 理解C語言程序的順序結(jié)構(gòu);
2. 掌握常用的C語言語句,熟練應(yīng)用賦值、輸入、輸出語句;
3. 了解C語句表示邏輯量的方法(以0代表“假”,以1代表“真”);
4. 學會正確使用邏輯運算符和邏輯表達式;
5. 熟練掌握if語句和switch語句。
二、實驗內(nèi)容
1、已
11、知圓半徑r=1.5,圓柱高h=3, 求圓周長,圓面積,圓球表面積,圓球體積,圓柱體積。
2、輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=5/9*(f-32)。
3、有3個整數(shù)a、b、c,由鍵盤輸入,編程序按從小到大的順序?qū)⑺鼈兣判虿⑤敵觥?
4、編程序計算下面的函數(shù):
x 0
12、息,否則輸出m不能被7、11、17整除的信息。
6、電文加密的算法是:將字母A變成字母G,a變成g,B變成H,b變成h,依此類推,并且U變成A,V變成B,等等。從鍵盤輸入一個電文字符,輸出其相應(yīng)的密碼。
7、企業(yè)發(fā)放的獎金根據(jù)利潤提成。若利潤I≤10萬元,獎金可提10%;若10萬
13、100萬時,超過100萬元部分按1%提成。從鍵盤輸入當月利潤I,求應(yīng)發(fā)獎金總數(shù)。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗三 循環(huán)結(jié)構(gòu)程序設(shè)計
一、實驗?zāi)康募耙?
1.熟練掌握while、do—while和for三種循環(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、編寫程序求:
14、
3、輸入20個有符號整數(shù),統(tǒng)計正整數(shù)、零、負整數(shù)的個數(shù)。
4、輸入m個數(shù),求其最大數(shù)、最小數(shù)和平均值。
5、在100和1000之間,有多少個其數(shù)字之和等于9而且該數(shù)可被5整除的整數(shù)?
6、一位同學問老師和老師夫人的年齡是多少,老師說:“我年齡的平方加上我夫人的年齡恰好等于1053,而我夫人年齡的平方加上我的年齡等于873?!痹囉嬎憷蠋熀推浞蛉说哪挲g。
7、打印下列圖案
*
***
*****
***
*
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗四、數(shù)組程序設(shè)計
一、實驗?zāi)康募耙?
1.掌
15、握一維、二維數(shù)組的定義、賦值和輸入輸出的方法;
2.掌握字符數(shù)組的使用;
3.掌握與數(shù)組有關(guān)的算法(例如排序算法)。
二、實驗內(nèi)容
1、給整型二維數(shù)組 b[3][4]輸入12個數(shù)據(jù),計算并輸出數(shù)組中所有正數(shù)之和、所有負數(shù)之和。
2、青年歌手參加歌曲大獎賽,有10個評委進行打分,試編程求這位選手的平均得分(去掉一個最高分和一個最低分)。
分析:這道題的核心是排序。將評委所打的10個分數(shù)利用數(shù)組按增序(或降序)排列,計算數(shù)組中除第一個和最后一個分數(shù)以外的數(shù)的平均分。
3、設(shè)二維數(shù)組 b[5][4]中有鞍點,即b[i][j]元素值在第i行中最大,且在第j列中最小,試編寫一程序找出所有的
16、鞍點,并輸出其下標值。也可能沒有。
4、從鍵盤輸入一數(shù),然后在一個整型一維數(shù)組a[20]中,用折半查找法找出該數(shù)是數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中,則打印”No found”。
5、編程打印如下圖形:
*
* *
* *
* *
*
6、有一電文,已按下列規(guī)律譯成譯碼:
A→Z a→z
B→Y b→y
C→X c→x
即第一個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不
17、變。編寫一個程序?qū)⒚艽a譯成原文,并輸出密碼和原文。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗五 函數(shù)程序設(shè)計
一、目的與要求
1.掌握C語言函數(shù)的定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。
2.了解主調(diào)函數(shù)和被調(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[
18、10][10],調(diào)用定義的兩函數(shù)輸出每行、每列的最大值和最小值。
3、編寫一判別素數(shù)的函數(shù),在主函數(shù)中輸入一個整數(shù),輸出該數(shù)是否為素數(shù)的信息。
4、編寫一個將兩個字符串連接起來函數(shù)(即實現(xiàn)strcat函數(shù)的功能),兩個字符串由主函數(shù)輸入, 連接后的字符串也由主函數(shù)輸出。
5、編寫計算最小公倍數(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é)果
19、出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗六 指針程序設(shè)計
一、目的與要求
1.通過實驗進一步掌握指針的概念,學會定義和使用指針變量;
2.能正確使用數(shù)組的指針和指向數(shù)組的指針變量;
3.能正確使用字符串的指針和指向字符串的指針變量;
4.了解指向函數(shù)的指針變量的使用方法;
二、實驗內(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
20、個整數(shù),使前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前m個數(shù)(如下圖所示)。寫一函數(shù)實現(xiàn)以上功能,在主函數(shù)中輸入n個整數(shù)和輸出調(diào)整后的n個整數(shù)。
4、(選做)在主函數(shù)中輸入10個不等長的字符串。用另一個函數(shù)對它們按升序排序,然后在主函數(shù)中輸出這10個已排序的字符串。
5、(選做)編寫一程序,統(tǒng)計從鍵盤輸入的命令行中第二個參數(shù)所包含的英文字符個數(shù)。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗七 結(jié)構(gòu)體、共用體程序設(shè)計
一、目的與要求
1.掌握結(jié)構(gòu)體類型變量的定義和使用;
2.掌
21、握結(jié)構(gòu)體類型數(shù)組的概念和使用;
3.了解共用體的概念與使用。
二、實驗內(nèi)容
編程序,然后上機調(diào)試運行下列程序。
1. 有10個學生,每個學生的數(shù)據(jù)包括學號、姓名、3門課的成績,從鍵盤輸入10個學生數(shù)據(jù),要求打印出每門課的班級平均成績,以及最高分的學生的數(shù)據(jù)(包括學號、姓名、3門課的成績)。
要求用input函數(shù)輸入10個學生數(shù)據(jù);用average函數(shù)求總平均分;用max函數(shù)找出最高分的學生數(shù)據(jù);班級平均分和最高分學生的數(shù)據(jù)都在主函數(shù)中輸出。
2. 設(shè)有兩個人員的數(shù)據(jù),一個學生,一個教師。學生的數(shù)據(jù)中包括:學號、姓名、班級,、教師的數(shù)據(jù)中包括:工號、姓名、職稱?,F(xiàn)將兩人的數(shù)
22、據(jù)放在同一表格中,要求輸入兩人的數(shù)據(jù),再將輸入的內(nèi)容輸出。
提示:參考教材例9.11(P320)
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。
實驗八 文件程序設(shè)計
一、目的與要求
1.掌握文件和文件指針的概念以及文件的定義方法。
2.了解文件打開和關(guān)閉的概念和方法。
3.掌握有關(guān)文件操作的函數(shù)。
二、實驗內(nèi)容
1、有 5個學生,每個學生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學生號,姓名,三門課成績),計算出每門課程的班級平均成績,并將學生數(shù)據(jù)和班級平均分存放在磁盤文件“stud.txt”中。
2、將上題“stud”文件中的學生數(shù)據(jù),按平均分進行排序處理,將已排序的學生數(shù)據(jù)存入一個新文件“stu_sort”中。
三、實驗結(jié)果分析
對實驗結(jié)果進行檢驗,如結(jié)果出現(xiàn)錯誤,分析產(chǎn)生錯誤的原因并修改程序、改正錯誤。