




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年小語(yǔ)種考試簡(jiǎn)易備考法試題及答案
- 金融分析師考試重點(diǎn)試題及答案
- 優(yōu)化公司財(cái)務(wù)業(yè)績(jī)?cè)u(píng)估與反饋體系的改進(jìn)方案計(jì)劃
- 銀行業(yè)務(wù)實(shí)踐與理論結(jié)合試題及答案
- 國(guó)際金融理財(cái)師備考信心提升策略試題及答案
- 班級(jí)健康教育與體育活動(dòng)計(jì)劃
- 2024網(wǎng)絡(luò)編輯師證書試題及答案的可信度
- 小語(yǔ)種考試中的全面提升試題及答案
- 2025年特許金融分析師考試學(xué)習(xí)班選擇建議試題及答案
- 2024國(guó)家能源集團(tuán)新疆哈密能源化工有限公司社會(huì)招聘110人筆試參考題庫(kù)附帶答案詳解
- 糖尿病飲食與護(hù)理
- 2025年天津市河?xùn)|區(qū)中考一模歷史試題(原卷版+解析版)
- 《基于STM32的智能水質(zhì)檢測(cè)系統(tǒng)的設(shè)計(jì)》9400字(論文)
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 土壤有機(jī)質(zhì)課件
- WNS系列蒸汽鍋爐使用說(shuō)明書
- 08真空熱處理爐
- 砂石篩校驗(yàn)方法
- 點(diǎn)亮小燈泡說(shuō)課稿(課堂PPT)
- 服務(wù)外包合同
評(píng)論
0/150
提交評(píng)論