《C語(yǔ)言程序設(shè)計(jì)》課件2第12章_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件2第12章_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件2第12章_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件2第12章_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件2第12章_第5頁(yè)
已閱讀5頁(yè),還剩71頁(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)介

第12章實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)1順序程序設(shè)計(jì)實(shí)驗(yàn)2控制語(yǔ)句的使用實(shí)驗(yàn)3數(shù)組與字符串實(shí)驗(yàn)4指針的應(yīng)用實(shí)驗(yàn)5函數(shù)編程的應(yīng)用實(shí)驗(yàn)6結(jié)構(gòu)體與共同體實(shí)驗(yàn)7文件函數(shù)的應(yīng)用

一、實(shí)驗(yàn)?zāi)康?/p>

(1)熟悉TurboC2.0集成環(huán)境。

(2)掌握C語(yǔ)言的基本操作。

(3)掌握C語(yǔ)言中各種數(shù)據(jù)類型的區(qū)別與應(yīng)用。

(4)熟練掌握C語(yǔ)言中變量的定義、賦值和使用,表達(dá)式語(yǔ)句、輸入/輸出語(yǔ)句的使用。實(shí)驗(yàn)1順序程序設(shè)計(jì)

(5)掌握C語(yǔ)言中輸入/輸出函數(shù)的使用。

(6)能夠進(jìn)入C集成編譯環(huán)境進(jìn)行編輯、保存、編譯、連接及運(yùn)行,并能進(jìn)行簡(jiǎn)單的程序調(diào)試。

(7)在C語(yǔ)言中編制簡(jiǎn)單的完整的源程序。

二、實(shí)驗(yàn)要求

(1)調(diào)試程序,記錄調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決辦法。

(2)給出每個(gè)問(wèn)題的算法或畫出流程圖。

(3)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過(guò)程和結(jié)果要有記錄,并注意調(diào)試程序集成環(huán)境的掌握及應(yīng)用,不斷積累編程及調(diào)試經(jīng)驗(yàn)。

(4)做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告。

三、實(shí)驗(yàn)設(shè)備、環(huán)境

奔騰以上計(jì)算機(jī),裝有TurboC2.0軟件。

四、實(shí)驗(yàn)步驟及內(nèi)容

(一)教師演示講解TurboC環(huán)境的使用

1.重點(diǎn)講解TurboC編譯環(huán)境怎樣編輯C源程序,以及對(duì)源程序的編譯、連接、運(yùn)行。

2.重點(diǎn)介紹TurboC編譯環(huán)境的配置。

(二)讓學(xué)生調(diào)試程序和編寫簡(jiǎn)單的程序

1.調(diào)試如下程序,要求將輸入/輸出的值都記錄在實(shí)驗(yàn)報(bào)告中:

(1)

#include<stdio.h>

main()

{ints,t,p,sum;

scanf("%d%d%d",&s,&t,&p);

sum=s+t+p;

printf("sum=%d",sum);’

}

(2)

#include<stdio.h>

main()

{charc;

c=getchar();

if((c>='a')&&(c<='z'))c=c-32;

printf("Charis%c",c);

}

(3)

#include<stdio.h>

main()

{intx=1,y=1,z=1;

y=y+z;x=x+y;

printf("%d",x<y?y:x);

printf("%d",x<y?x++:y++);

printf("%d",x);

}

(4)

#include<stdio.h>

main()

{chars[50];

printf("Pleaseinputastring:");

gets(s);/*scanf("%s",s);*/

printf("\nYouinputstringis:%s",s);

}

試比較一下用gets()函數(shù)與scanf()函數(shù)輸入字符串時(shí)的區(qū)別。

2.問(wèn)題:完成以下三個(gè)程序,分別以文件名A01.c、A02.c和A03.c進(jìn)行保存。

(1)定義兩個(gè)整型變量x和y,要求利用scanf()函數(shù)從鍵盤對(duì)x和y賦值,然后利用printf()輸出兩者之和。

(2)定義兩個(gè)變量:整型x和實(shí)型y,要求利用scanf()函數(shù)從鍵盤對(duì)x和y賦值,然后利用printf()輸出兩者之積。

(3)定義兩字符型變量ch1和ch2,分別用getchar()和putchar()函數(shù)進(jìn)行輸入/輸出。

要求:

(1)從鍵盤輸入的時(shí)候,注意用多種分隔符的方法。

(2)輸出時(shí),格式控制中要包含一些提示字符。

五、討論、思考題

1.是不是任何情況下字符型數(shù)據(jù)都與整型數(shù)據(jù)相通?

2.為什么在格式化輸入函數(shù)scanf()中的變量名前要加&?

實(shí)驗(yàn)2控制語(yǔ)句的使用

一、實(shí)驗(yàn)?zāi)康?/p>

(1)掌握C語(yǔ)言中控制語(yǔ)句的使用。

(2)進(jìn)一步加深對(duì)C語(yǔ)言中各種數(shù)據(jù)類型及輸入/輸出的理解。

(3)熟練掌握各類控制語(yǔ)句的書寫格式,理解控制語(yǔ)句的作用,能夠結(jié)合具體問(wèn)題正確地應(yīng)用控制語(yǔ)句來(lái)解決。

(4)重點(diǎn)掌握if-else、for、while、do-while語(yǔ)句的使用。實(shí)驗(yàn)2控制語(yǔ)句的使用

二、實(shí)驗(yàn)要求

(1)調(diào)試程序,記錄調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決辦法。

(2)給出每個(gè)問(wèn)題的算法或畫出流程圖。

(3)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過(guò)程和結(jié)果要有記錄,并注意調(diào)試程序集成環(huán)境的掌握及應(yīng)用,不斷積累編程及調(diào)試經(jīng)驗(yàn)。

(4)做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告。

三、實(shí)驗(yàn)設(shè)備、環(huán)境

奔騰以上計(jì)算機(jī),裝有TurboC2.0軟件。

四、實(shí)驗(yàn)步驟及內(nèi)容

1.調(diào)試程序

調(diào)試運(yùn)行下列程序,并對(duì)運(yùn)行結(jié)果進(jìn)行分析。

(1)

#include<stdio.h>

main()

{intI,j,m=0,n=1;

for(I=0;I<3;I++)

for(j=0;j<3;j++)

if(j>I)m=1;

n++;

printf("%d\n",n);

}

調(diào)試運(yùn)行上面的程序,查看運(yùn)行結(jié)果,思考為什么輸出的結(jié)果會(huì)是這樣?

(2)下面是判斷一個(gè)學(xué)生考試成績(jī)及格與否的程序(成績(jī)A,或B,或C者為及格;成績(jī)?yōu)镈者為不及格),調(diào)試并改進(jìn)如下程序使其能滿足上述輸出的需要(提示:程序中有三處與題目要求不符或錯(cuò)誤,請(qǐng)經(jīng)過(guò)調(diào)試后更正)。

#include<stdio.h>

main()

{charmark="A";

switch(mark)

{case"A":

case"B":

case"C":printf(">=60\n");

case"D":printf("<60\n");

default:printf("Error\n");

}

}

(3)

#include<stdio.h>

main()

{intk=2;

if(k=3)printf("***");

elseprintf("###");

}

本程序的輸出結(jié)果是什么?請(qǐng)從本例中體會(huì)一下“=”和“==”的區(qū)別。

(4)

#include<stdio.h>

main()

{intk=0;

do

{printf("k=%d\n",k);

}while(k++>0);

}

思考一下:本程序有輸出嗎?循環(huán)條件并不成立,為什么還會(huì)有輸出呢?

2.編寫程序

問(wèn)題1:有一函數(shù):

編寫程序要求:x的值從鍵盤輸入,根據(jù)不同的x值計(jì)算出對(duì)應(yīng)的y值,并以“x=?,y=?”的形式輸出。問(wèn)題2:

求1

+

2

+

3

+

+

100之和,如果求的是1

+

2

+

3

+…

+

n呢?分別用for、

while、do-while語(yǔ)句實(shí)現(xiàn),然后進(jìn)行對(duì)比。

問(wèn)題3:求表達(dá)式1!+2!+3!+4!+5!+6!+7!+8!+9!+10!之和。

要求:

(1)用while語(yǔ)句實(shí)現(xiàn);

(2)用do-while語(yǔ)句實(shí)現(xiàn);

(3)用for語(yǔ)句實(shí)現(xiàn)。

注意存放最后結(jié)果的變量類型。五、實(shí)驗(yàn)注意事項(xiàng)

1.賦值號(hào)“=”與關(guān)系運(yùn)算符“==”的區(qū)別。

2.

if-elseif-elseif-else語(yǔ)句中條件隱含的問(wèn)題。

3.

while與do-while的區(qū)別。

4.復(fù)合語(yǔ)句必須用{}括起來(lái),如第1個(gè)調(diào)試程序。

5.三種循環(huán)語(yǔ)句在應(yīng)用時(shí)的轉(zhuǎn)換問(wèn)題。

六、討論、思考題

1.有一分?jǐn)?shù)序列

1,1,2,3,5,8,…

求此序列的前n項(xiàng)之和,應(yīng)該如何實(shí)現(xiàn)?

2.考慮如下題目:出一百分制成績(jī),要求輸出等級(jí)“A”、“B”、“C”、“D”和“E”中,90分以上為A,80~89為B,70~79為C,60~69為D,60分以下為E。

3.思考如下題目:求(1!)!+(2!)!+…+(5!)!。

4.輸入4個(gè)數(shù),從小到大排序,并將排序前后的數(shù)輸出。

一、實(shí)驗(yàn)?zāi)康?/p>

(1)掌握數(shù)組這種構(gòu)造數(shù)據(jù)類型的特點(diǎn)及使用。

(2)熟練掌握一維數(shù)組的定義、初始化及使用。

(3)熟練掌握字符數(shù)組的定義、初始化及使用。

(4)掌握二維數(shù)組的定義、初始化及檢索、計(jì)數(shù)(求和、求積)的應(yīng)用。實(shí)驗(yàn)3數(shù)組與字符串

二、實(shí)驗(yàn)要求

(1)調(diào)試程序,記錄調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決辦法。

(2)給出每個(gè)問(wèn)題的算法或畫出流程圖。

(3)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過(guò)程和結(jié)果要有記錄,并注意調(diào)試程序集成環(huán)境的掌握及應(yīng)用,不斷積累編程及調(diào)試經(jīng)驗(yàn)。

(4)做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告。

三、實(shí)驗(yàn)設(shè)備、環(huán)境

奔騰以上計(jì)算機(jī),裝有TurboC2.0軟件。

四、實(shí)驗(yàn)步驟及內(nèi)容

編寫并調(diào)試如下程序:

問(wèn)題1:求100之內(nèi)的所有素?cái)?shù),并打印輸出(要求每行輸出5個(gè))。

要求:(1)定義一個(gè)整型數(shù)組,長(zhǎng)度為100。

(2)數(shù)組各元素?cái)?shù)據(jù)要求利用for語(yǔ)句進(jìn)行賦值。

(3)找到的所有素?cái)?shù)按每行5個(gè)數(shù)據(jù)的形式輸出。

說(shuō)明:素?cái)?shù)是指只能被1和自身整除的數(shù)。

問(wèn)題2:將一個(gè)數(shù)組中的值按逆序重新存放。說(shuō)明:

(1)數(shù)組的長(zhǎng)度不限,自行定義。

(2)本題請(qǐng)分別用以下兩種方法實(shí)現(xiàn):

①定義兩個(gè)數(shù)組,將源數(shù)組中的數(shù)據(jù)逆序?qū)懭肽康臄?shù)組。

②只用一個(gè)數(shù)組在自身上實(shí)現(xiàn)。

問(wèn)題3:找出二維數(shù)組中的最大值,輸出該最大值及其行、列下標(biāo)。

要求:(1)先定義并初始化二維數(shù)組。

(2)求出最大值并輸出。

問(wèn)題4:輸入一個(gè)字符串,要求統(tǒng)計(jì)出該字符串的長(zhǎng)度。

要求:分別用庫(kù)函數(shù)和不用庫(kù)函數(shù)兩種方法實(shí)現(xiàn)。

問(wèn)題5:輸入一個(gè)字符串,查找并刪除其中某一個(gè)字符(該字符可以輸入)。

五、實(shí)驗(yàn)注意事項(xiàng)

(1)實(shí)驗(yàn)過(guò)程中注意愛(ài)護(hù)計(jì)算機(jī),實(shí)驗(yàn)完畢要按正常操作關(guān)閉計(jì)算機(jī)。

(2)問(wèn)題2中用一個(gè)數(shù)組實(shí)現(xiàn)時(shí),必須引入中間變量,還要特別注意循環(huán)結(jié)束條件的

設(shè)置。

(3)字符串的輸入,可以用gets(),也可以用scanf(),借鑒實(shí)驗(yàn)1并注意它們的

區(qū)別。

(4)找最大值(最小值)的算法:先將第一個(gè)值認(rèn)為是最大(小)的,檢索以后的值,判斷如果當(dāng)前數(shù)組元素值比保留在變量中的最大(小)值大(小),則用當(dāng)前數(shù)組元素值替換該變量中的值。

六、討論、思考題

1.分別用一維數(shù)組和二維數(shù)組實(shí)現(xiàn)打印以下圖形。

******

******

******

******

2.輸入10個(gè)浮點(diǎn)數(shù),統(tǒng)計(jì)出其中正數(shù)的個(gè)數(shù)、零的個(gè)數(shù)、負(fù)數(shù)的個(gè)數(shù),并分別輸出。

3.求一個(gè)3

×

3矩陣主對(duì)角線元素之和,另求出其輔對(duì)角線元素之和,最后輸出兩個(gè)和值。

4.編寫程序輸出3

×

4矩陣中最小元素的值及其行列下標(biāo)。

5.不用庫(kù)函數(shù),分別實(shí)現(xiàn)strcpy()、strcmp()、strlwr()、strcat()函數(shù)的功能。

6.猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè);第二天又將剩下的桃子吃掉一半,又多吃一個(gè);以后每天都吃了前一天剩下的一半零一個(gè)。到第10天想再吃時(shí),見(jiàn)只剩一個(gè)桃子了。編程計(jì)算第一天共摘了多少個(gè)桃子。

一、實(shí)驗(yàn)?zāi)康?/p>

(1)理解C語(yǔ)言中指針的本質(zhì),區(qū)分指針與指針變量,掌握有關(guān)指針的應(yīng)用。

(2)掌握指針的定義,掌握指向普通變量的指針的使用,掌握如何用指針來(lái)處理與數(shù)組有關(guān)的問(wèn)題。實(shí)驗(yàn)4指針的應(yīng)用

二、實(shí)驗(yàn)要求

(1)調(diào)試程序,記錄調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決辦法。

(2)給出每個(gè)問(wèn)題的算法或畫出流程圖。

(3)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過(guò)程和結(jié)果要有記錄,并注意調(diào)試程序集成環(huán)境的掌握及應(yīng)用,不斷積累編程及調(diào)試經(jīng)驗(yàn)。

(4)做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告。

三、實(shí)驗(yàn)設(shè)備、環(huán)境

奔騰以上計(jì)算機(jī),裝有TurboC2.0軟件。

四、實(shí)驗(yàn)步驟及內(nèi)容

1.調(diào)試運(yùn)行如下兩個(gè)程序,比較輸出結(jié)果并進(jìn)行分析。

程序1:main()

{inta=10,b=20,x,*pa,*pb;

pa=&a;pb=&b;

printf("%d,%d,%d,%d",a,b,*pa,*pb);

x=*pa;*pa=*pb;*pb=x;

printf("%d,%d,%d,%d",a,b,*pa,*pb);

}程序2:main()

{inta=10,b=20,*p,*pa=&a,*pb=&b;

printf("%d,%d,%d,%d",a,b,*pa,*pb);

p=pa;pa=pb;pb=p;

printf("%d,%d,%d,%d",a,b,*pa,*pb);

}

2.調(diào)試下面的程序:

#include<stdio.h>

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},k,*p;

p=a+2;

printf("%d%d",*(p+3),*(p-1));

}

試想一下,為什么是這樣的輸出結(jié)果?

3.編寫程序

問(wèn)題1:用指針操作將從鍵盤輸入的一段英文句子(不超過(guò)80個(gè)字符)中的所有空格

刪除。

要求:只能定義一個(gè)字符數(shù)組,不能用兩個(gè)字符數(shù)組。

問(wèn)題2:交換兩個(gè)變量的值。要求:

(1)兩變量在main中給出。

(2)交換的過(guò)程在子函數(shù)中進(jìn)行。

(3)子函數(shù)無(wú)返回值,定義為void型。

問(wèn)題3:輸入三個(gè)字符串,按由小到大的順序輸出。

問(wèn)題4:有15個(gè)數(shù)存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用折半查找法找出該數(shù)在數(shù)組中的位置。如果該數(shù)不在數(shù)組中,則輸出“Error!”。要求用指針引用數(shù)組元素。

五、實(shí)驗(yàn)注意事項(xiàng)

1.對(duì)計(jì)算機(jī)執(zhí)行程序過(guò)程中分配存儲(chǔ)空間及地址的理解。

2.變量的直接引用與間接引用的區(qū)別。

六、討論、思考題

1.分別用下標(biāo)法和指針引用數(shù)組中的每個(gè)元素,該如何實(shí)現(xiàn)?比較兩者的異同。

2.輸入一個(gè)二維整型數(shù)組,利用指針引用二維數(shù)組中的元素,找出“鞍點(diǎn)”。所謂“鞍點(diǎn)”,就是指該位置上的元素在該行上最大,在該列上最小。

3.編寫程序?qū)?shù)組中的最大值與最后一個(gè)數(shù)交換,最小值與第一個(gè)數(shù)交換。如果再將次大的數(shù)與倒數(shù)第二個(gè)數(shù)交換,次小的數(shù)與第二個(gè)數(shù)交換,依此類推,程序應(yīng)該怎樣改呢?注:此法為雙向選擇排序法。

一、實(shí)驗(yàn)?zāi)康?/p>

(1)理解C語(yǔ)言中函數(shù)的概念與作用。

(2)掌握函數(shù)的應(yīng)用。

(3)掌握編寫自定義函數(shù)的方法。

(4)掌握函數(shù)調(diào)用中的實(shí)參與形參的關(guān)系。

(5)掌握遞歸思想,能編寫簡(jiǎn)單遞歸程序。

(6)重點(diǎn)掌握數(shù)組名(或指針)作為函數(shù)參數(shù)的應(yīng)用。實(shí)驗(yàn)5函數(shù)編程的應(yīng)用二、實(shí)驗(yàn)要求

(1)調(diào)試程序,記錄調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決辦法。

(2)給出每個(gè)問(wèn)題的算法或畫出流程圖。

(3)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過(guò)程和結(jié)果要有記錄,并注意調(diào)試程序集成環(huán)境的掌握及應(yīng)用,不斷積累編程及調(diào)試經(jīng)驗(yàn)。

(4)做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告。

三、實(shí)驗(yàn)設(shè)備、環(huán)境

奔騰以上計(jì)算機(jī),裝有TurboC2.0軟件。

四、實(shí)驗(yàn)步驟及內(nèi)容

1.調(diào)試程序

調(diào)試下面要求的程序,并分析結(jié)果。

(1)

#include<stdio.h>

intfunc(inta,intb)

{return(a+b);}

main()

{intx=3,y=8,z=4,r;

r=func(func(x,y),z);

printf("r=%d\n",r);

}

(2)

int*swap(int*a,int*b)

{int*p;

p=a;a=b;b=p;

return(a);

}

main()

{intx=3,y=4,z=5;

swap(swap(&x,&y),&z);

printf("%d,%d,%d",x,y,z);

}思考:上面程序中函數(shù)swap()本來(lái)是想將兩個(gè)數(shù)的值相互交換,但運(yùn)行結(jié)果交換了嗎?如果沒(méi)有,為什么?請(qǐng)改寫程序,并實(shí)現(xiàn)交換。

(3)調(diào)試并運(yùn)行第8章例8.6,體會(huì)一下變量的作用域范圍。

(4)調(diào)試并運(yùn)行第8章例8.7,思考一下:如果將static去掉,得到的結(jié)果一樣嗎?為什么?

2.編寫程序

問(wèn)題1:判斷一個(gè)數(shù)是否為素?cái)?shù)。

要求:

(1)將實(shí)驗(yàn)3中求素?cái)?shù)的過(guò)程做成一個(gè)子函數(shù),然后在主函數(shù)中輸入數(shù)值,通過(guò)調(diào)用子函數(shù)來(lái)判斷其是否為素?cái)?shù),通過(guò)返回值將是否是素?cái)?shù)的結(jié)果帶回主函數(shù)。

(2)主函數(shù)主要完成輸入和輸出,輸出時(shí),如果是素?cái)?shù)則輸出信息“yes”,若不是則輸出“no”。

問(wèn)題2:編寫兩個(gè)求字符串長(zhǎng)度的函數(shù),在一個(gè)函數(shù)中用庫(kù)函數(shù)strlen()實(shí)現(xiàn),而另一個(gè)函數(shù)中不用庫(kù)函數(shù),在主函數(shù)中輸入字符串,分別調(diào)用兩個(gè)函數(shù),并將結(jié)果輸出。

要求:在main函數(shù)中只負(fù)責(zé)輸入字符串和輸出字符串長(zhǎng)度,求字符串長(zhǎng)度都在自定義函數(shù)中完成。問(wèn)題3:使用遞歸方法,編寫一個(gè)求解S

=

1

+

2

+

3

+…+

n的函數(shù)。

要求:在主函數(shù)中輸入n的值,并且輸出最后結(jié)果S;而在子函數(shù)中只求解1~n之和。

問(wèn)題4:對(duì)10個(gè)數(shù)從小到大排序(排序方法用冒泡法)。

要求:主函數(shù)中只負(fù)責(zé)輸入排序前的10個(gè)數(shù)和輸出排序后的10個(gè)數(shù);排序工作應(yīng)在自定義函數(shù)中完成。

五、實(shí)驗(yàn)注意事項(xiàng)

(1)調(diào)用系統(tǒng)函數(shù)要用包含相應(yīng)頭文件。

(2)字符串的結(jié)束標(biāo)志是'\0'。

(3)理解數(shù)組名作函數(shù)參數(shù)的本質(zhì)。

六、討論、思考題

1.通過(guò)指針為什么能從被調(diào)用函數(shù)帶回值?

2.用遞歸法將一個(gè)整數(shù)n轉(zhuǎn)換成字符串。例如,輸入980,應(yīng)輸出“980”。說(shuō)明:n的位數(shù)不確定,可以是任意位數(shù)的整數(shù),并且在主函數(shù)中輸入。

3.編寫一個(gè)函數(shù)比較兩個(gè)字符串的大小。要求:自定義函數(shù)負(fù)責(zé)比較兩個(gè)字符串,而主函數(shù)負(fù)責(zé)輸入字符串和輸出最后比較結(jié)果(不使用strcmp()函數(shù))。

4.用函數(shù)指針作為變量能調(diào)用不同的函數(shù),請(qǐng)思考一下為什么?

5.試?yán)帽緦?shí)驗(yàn)編寫的程序組成一個(gè)項(xiàng)目。

一、實(shí)驗(yàn)?zāi)康?/p>

(1)熟悉結(jié)構(gòu)體和共同體的概念。

(2)熟悉結(jié)構(gòu)體變量和共同體變量的定義、賦值與使用。

(3)掌握結(jié)構(gòu)體變量和共同體變量對(duì)存儲(chǔ)空間的占用情況。

(4)掌握鏈表的概念,初步學(xué)會(huì)對(duì)鏈表進(jìn)行操作。實(shí)驗(yàn)6結(jié)構(gòu)體與共同體

二、實(shí)驗(yàn)要求

(1)調(diào)試程序,記錄調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決辦法。

(2)給出每個(gè)問(wèn)題的算法或畫出流程圖。

(3)編寫程序要規(guī)范、正確,上機(jī)調(diào)試過(guò)程和結(jié)果要有記錄,并注意調(diào)試程序集成環(huán)境的掌握及應(yīng)用,不斷積累編程及調(diào)試經(jīng)驗(yàn)。

(4)做完實(shí)驗(yàn)后給出本實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告。

三、實(shí)驗(yàn)設(shè)備、環(huán)境

奔騰以上計(jì)算機(jī),裝有TurboC2.0軟件。

四、實(shí)驗(yàn)步驟及內(nèi)容

1.調(diào)試運(yùn)行下列程序,記錄調(diào)試過(guò)程,并分析運(yùn)行結(jié)果。

(1)

structaa

{intx,*y;}*p;

inta[8]={10,20,30,40,50,60,70,80};

structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};

main()

{p=b;

printf(″%d″,*++p->y);

printf(″%d\n″,++(p->x));

}

(2)

strucSTU

{charname[10];

intnum;

};

voidf1(structSTUC)

{structSTUb={"LiSiGuo",2042};

c=b;

}

voidf2(structSTU*C)

{structSTUb={"SunDan",2044};

*c=b;

}

main()

{structSTUa={"YangSan",2041},b={"WangYin",2043};

f1(A);f2(&B);

printf("%d%d\n",a.num,b.num);

}

(3)

uniondata

{intk[2];

floata;

longb;

charc[4];

}u;

main()

{scanf("%d,%d",&u.k[0],&u.k[1]);

printf("k[0]=%d,k[1]=%d,a=%f,b=%ld,c[0]=%c,c[1]=%c,c[2]

=%c,c[3]=%c",u.k[0],u.k[1],u.a,u.b,u.c

[0],u.c[1],u.c[2],u.c[3]);

}

2.編程解決下列問(wèn)題

問(wèn)題1:有10個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名和三門課成績(jī)。從鍵盤上輸入10個(gè)學(xué)生的數(shù)據(jù),要求計(jì)算出三門課的平均成績(jī)并按平均成績(jī)排序,然后輸出10個(gè)學(xué)生的數(shù)據(jù)。

問(wèn)題2:建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括學(xué)號(hào)、姓名、性別、年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。

五、實(shí)驗(yàn)注意事項(xiàng)

1.結(jié)構(gòu)體變量占用的存儲(chǔ)空間是各成員占用的空間之和,而共同體占用的存儲(chǔ)空間是占空間最大的成員占用的空間,程序設(shè)計(jì)過(guò)程中應(yīng)特別注意這一點(diǎn)。

2.對(duì)鏈表的檢索應(yīng)從鏈表起始結(jié)點(diǎn)開(kāi)始,順著鏈一直找下去,直到找到符合要求的結(jié)點(diǎn)或到達(dá)鏈表結(jié)尾(鏈表指針為NULL)。

六、討論、思考題

1.編寫一個(gè)程序,在屏幕上顯示一行字符串中重復(fù)出現(xiàn)的字符,并輸出每個(gè)字符及重復(fù)出現(xiàn)的次數(shù)。

2.編制一個(gè)檔案管理程序,檔案內(nèi)容包括職工號(hào)(3位數(shù)字)、姓名、職稱(professor、assiprof、lecturer)、年齡。

要求:

(1)屏幕輸出年齡在45歲以上(含45歲)且職稱是教授的人數(shù)。

(2)輸入任意職工號(hào),顯示該職工的情況。

(3)輸出年齡最高的職工的情況。

提示:方法一,可以用結(jié)構(gòu)體數(shù)組來(lái)解決。

方法二,可以使用鏈表來(lái)完成。

一、實(shí)驗(yàn)?zāi)康?/p>

(1)熟悉文件打開(kāi)、關(guān)閉、寫入、讀出的方法;學(xué)會(huì)使用文件操作函數(shù)。

(2)掌握文件打開(kāi)、關(guān)閉函數(shù)的使用方法。

(3)掌握文本文件讀/寫函數(shù)的使用方法。

(4)掌握二進(jì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)論