計(jì)算機(jī)科學(xué)與技術(shù)試驗(yàn)報(bào)告,_第1頁
計(jì)算機(jī)科學(xué)與技術(shù)試驗(yàn)報(bào)告,_第2頁
計(jì)算機(jī)科學(xué)與技術(shù)試驗(yàn)報(bào)告,_第3頁
計(jì)算機(jī)科學(xué)與技術(shù)試驗(yàn)報(bào)告,_第4頁
計(jì)算機(jī)科學(xué)與技術(shù)試驗(yàn)報(bào)告,_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、哈爾濱工程大學(xué)程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)報(bào)告基礎(chǔ)實(shí)踐二姓名:王明班級(jí):學(xué)號(hào):實(shí)驗(yàn)時(shí)間:2017年5月8日成績1jr"(X X / f哈爾濱工程大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)中心實(shí)驗(yàn)五I_ _嚴(yán)實(shí)驗(yàn)題目1:輸入兩個(gè)整數(shù)數(shù)組,每個(gè)數(shù)組有 5個(gè)整數(shù),將兩者合并并排序輸出。設(shè)計(jì)思想:定義兩個(gè)5個(gè)元素的數(shù)組,一個(gè)10個(gè)元素的數(shù)組,數(shù)據(jù)類型為整型,通 過for循環(huán)輸入前兩個(gè)數(shù)組的值,并依次存入第三個(gè)數(shù)組中。另外編寫排序函數(shù),在 主函數(shù)中調(diào)用對第三個(gè)數(shù)組中的元素排序并輸出。I I'.1 I實(shí)驗(yàn)代碼及注釋:I I&I II I#in clude<stdio.h>#in clude<s

2、tdlib.h>voidf1(i nt*a, in ti,i ntj)in tm, n,c;intk;歡迎閱讀歡迎共閱m=i;n=j;k=a(i+j)/2;dowhile(am<k&&m<j)m+;while(a n>k&&n >i) n-;if(m <=n)c=am;am=a n;a n=c;m+=1;n-=1;while(m <=n);if(mvj)f1(a,m,j);if(n >i)f1(a,i, n);1 II II Iin tmai n()in ta15,a25,c10;:n");printf(

3、"請輸入兩個(gè)數(shù)組,每組五個(gè)整數(shù)for(i nti=0;i<5;i+)sca nf("%d%d",&a1i,&a2i);歡迎閱讀歡迎共閱for(i nti=0;i<5;i+)ci=a1i;ci+5=a2i;f1(c,0,9);printf("排序后為:n");I Zfor(i nti=0;i<10;i+)prin tf("%d",ci);putchar('n');Isystem("pause");return。;驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果輸出正確??偨Y(jié)與

4、心得體會(huì):二"1 I本實(shí)驗(yàn)用到了循環(huán)結(jié)構(gòu)對數(shù)組輸入,這是對多個(gè)數(shù)據(jù)同時(shí)輸入的一種非常方便的方I I法。利用指針進(jìn)行排序,由于形參和實(shí)參在數(shù)據(jù)傳遞上有單向性,在進(jìn)行元素交換 類數(shù)組函數(shù)的編寫時(shí),需要借用指針。本實(shí)驗(yàn)將其中一個(gè)主要功能編寫為函數(shù),使 代碼模塊化,利于閱讀查錯(cuò)。實(shí)驗(yàn)題目2:某公司生成5種產(chǎn)品,每周記錄生產(chǎn)的每種產(chǎn)品數(shù)量和銷售數(shù)量。在每個(gè)月月末, 公司將對其生產(chǎn)規(guī)劃進(jìn)行評(píng)估。該評(píng)估需要以下一個(gè)或多個(gè)信息:歡迎閱讀歡迎共閱(a)每周生產(chǎn)和銷售的數(shù)量;(b)所有生產(chǎn)產(chǎn)品的總量;(c)所有銷售產(chǎn)品的總量;(d)每種產(chǎn)品生產(chǎn)和銷售的總量;假設(shè)生產(chǎn)和銷售的產(chǎn)品分別用二維數(shù)組M45和S4

5、5表示。其中,Mij表示第i周生產(chǎn)第j種產(chǎn)品的數(shù)量。Sij表示第i周銷售第j種產(chǎn)品的數(shù)量。假設(shè)使用一維 數(shù)組C5來表示每種產(chǎn)品的價(jià)格。其中,Ci表示第j種產(chǎn)品的價(jià)格。數(shù)組M、S和I ZC的值都在程序中輸入。 I I定義兩個(gè)二維數(shù)組Mvalue和Svalue來表示生產(chǎn)和銷售的產(chǎn)品價(jià)值。輸出變量的計(jì)算方式如下:Mvalueij=第i周生產(chǎn)第j種產(chǎn)品的價(jià)值二Mij*CiSvalueij=第i周銷售第j種產(chǎn)品的價(jià)值二Sij*CiMweeki=在i周里生產(chǎn)的產(chǎn)品價(jià)值 二(j從1到5求和)MvalueijSweeki=在i周里所有產(chǎn)品的產(chǎn)品價(jià)值 二(j從1到5求和)SvalueijMproducti=在本

6、月里生成第j種的產(chǎn)品價(jià)值=(i從1到4求和)MvalueijSproducti=在本月里銷售第j種的產(chǎn)品價(jià)值=(i從1到4求和)Svalueijc二二 1._ 1 |Mtotal=在本月里生成所有產(chǎn)品的產(chǎn)品總價(jià)值 二(i從1到4求和)MeekijI IStotal二在本月里銷售所有產(chǎn)品的產(chǎn)品總價(jià)值 二(i從1到4求和)Seekij請編程實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。設(shè)計(jì)思想:本實(shí)驗(yàn)中涉及多組數(shù)值,如數(shù)量、周數(shù)、價(jià)值等。根據(jù)題目要求定義四 個(gè)二維數(shù)組,分別表示生產(chǎn)和銷售的數(shù)量及價(jià)值,再定義四個(gè)一維數(shù)組表示生產(chǎn)和 銷售的周數(shù)以及產(chǎn)品價(jià)值。最后,根據(jù)題目中給定的計(jì)算方法理清數(shù)組之間關(guān)系, 設(shè)計(jì)函數(shù)進(jìn)行計(jì)算。

7、歡迎閱讀歡迎共閱實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h>in tmai n()in tM45=0,S45=0,C5=0,Mvalue45=0,Svalue45=0,Mweek5 =0,Sweek5=0,Mproduct5=0,Sproduct5=0,Mtotal=0,Stotal=0;I Zin tMt=O,St=O,sum=O;for(intj=0;j<5;j+)prin tf("C%d=",j+1);sca nf("%d", &Cj);for(i nti=0;i&

8、lt;4;i+)for(i ntj=0;j<5;j+). 1 II Iprin tf("M%d%d=",i+1,j+1);sca nf("%d",&Mij);Mvalueij=Mij*Cj;for(i nti=0;i<4;i+)歡迎閱讀歡迎共閱for(i ntj=0;j<5;j+)prin tf("S%d%d=",i+1,j+1);sea nf("%d",&Sij);Svalueij=Sij*Cj;for(i nti=0;i<4;i+)for(i ntj=0;j<5;j

9、+)Mweeki+=Mvalueij;Sweeki+=Svalueij;f lfor(i ntj=0;j<5;j+)for(i nti=0;i<4;i+)Mproductj+=Mvalueij;Sproductj+=Svalueij;歡迎閱讀歡迎共閱for(i nti=0;i<4;i+)Mtotal+二Mweeki;Stotal+二Sweeki;pri ntf("(a):n");I Zfor(i nti=0;i<4;i+)printf("第%d 周生成數(shù)量:%dn",i+1,Mi0+Mi1+Mi2+Mi3+Mi4);printf(

10、"第%d 周銷售數(shù)量:%dn",i+1,Si0+Si1+Si2+Si3+Si4); prin tf("n");pri ntf("(b):n");for(i nti=0;i<4;i+)".冷for(i ntj=0;j<5;j+)Mt+=Mij;St+=Sij;printf("所有生產(chǎn)產(chǎn)品的總量:%dn",Mt);歡迎閱讀歡迎共閱prin tf("n");printf("(c):n所有銷售產(chǎn)品的總量:dn",St);prin tf("n"

11、);pri ntf("(d):n");for(i ntj=0;j<5;j+)printf("第%d 種產(chǎn)品生產(chǎn)的總量:dn",j+1,M0j+M1j+M2j+M3j);I Zprintf("第%d 種產(chǎn)品銷售的總量:%dn",j+1,S0j+S1j+S2j+S3j); / /prin tf("n");for(i nti=0;i<4;i+)for(i ntj=0;j<5;j+)prin tf("Mvalue%d%d=%dn",i+1,j+1,Mvalueij);prin tf(&

12、quot;Svalue%d%d=%dn",i+1,j+1,Svalueij);I Ii. iprin tf("n");for(i nti=0;i<4;i+)prin tf("Mweek%d=%dn",i+1,Mweeki);prin tf("Sweek%d=%dn" ,i+1,Sweeki);歡迎閱讀歡迎共閱prin tf("n");for(i ntj=0;j<5;j+)prin tf("Mproduct%d=%dn",j+1,Mproductj);prin tf(&quo

13、t;Sproduct%d=%dn",j+1,Sproductj);I Zprin tf("n");pri ntf("Mtotal=%dn",Mtotal);pri ntf("Stotal=%dn",Stotal);I system("pause");return。;驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果輸出正確。總結(jié)與心得體會(huì):-二厶 .1 I本實(shí)驗(yàn)計(jì)算方法已經(jīng)給出,但涉及較多數(shù)組,關(guān)系復(fù)雜。由于一個(gè)數(shù)組可以存放多*I I個(gè)數(shù)據(jù),導(dǎo)致數(shù)據(jù)之間關(guān)系難以理清。求解這類問題時(shí),要小心謹(jǐn)慎地先理清數(shù)據(jù)之間的關(guān)系,再根據(jù)給

14、定的算法進(jìn)行計(jì)算。實(shí)驗(yàn)題目3:編程將一個(gè)字符串插入到另一個(gè)字符串的第n個(gè)位置。設(shè)計(jì)思想:定義兩個(gè)較大的數(shù)組,數(shù)據(jù)類型為字符型。利用循環(huán)對數(shù)組賦值。定義一個(gè)變量控制插入的位置。用strlen函數(shù)計(jì)算兩組字符串長度,在第二個(gè)數(shù)組中為第 歡迎閱讀歡迎共閱一個(gè)數(shù)組讓開位置(留出空位,使原有元素后移至第一數(shù)組完全插入時(shí)末尾位置) 用第一個(gè)數(shù)組中的字符串覆蓋第二個(gè)數(shù)組中相應(yīng)位置字符,達(dá)到插入的目的。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>in tmai n()I Zintn,i,j;in

15、 tle n1,le n2;charstr1256,str2256;printf("請輸入 str1=");sca nf("%s", &str1);printf("請輸入 str2=");sca nf("%s", &str2);Ien1二 strle n(str2);'Ilen 2二strle n( str1)+n-1;II Iprintf("請輸入 n=");sca nf("%d",&n);for(i 二n-1,j=0;i<le n2,

16、j<strle n( str1);i+,j+)str2le n1=str2i;str2i=str1j;歡迎閱讀len 1+;prin tf("%s",st;system("pause");return。;驗(yàn)證與結(jié)論:I Z程序運(yùn)行正常,結(jié)果輸出正確??偨Y(jié)與心得體會(huì):本實(shí)驗(yàn)用了循環(huán)結(jié)構(gòu)對數(shù)組進(jìn)行賦值,這是對多個(gè)數(shù)據(jù)同時(shí)輸入的一種非常方便的 方法。同時(shí),本實(shí)驗(yàn)采取了將原有元素后移為即將插入的元素“讓位”的插入方法,這也是一種比較常用的方法。在對數(shù)組中元素進(jìn)行移位時(shí),要特別注意是否相差一, 因?yàn)閿?shù)組計(jì)數(shù)從零開始,這種問題特別容易發(fā)生。所以,在查錯(cuò)時(shí)也要特

17、別注意這 一點(diǎn)。實(shí)驗(yàn)題目4:編寫一個(gè)函數(shù),使輸入的一個(gè)字符串按反序存放,在主函數(shù)中輸入和輸出字符串。匸二m I.1 |設(shè)計(jì)思想:設(shè)計(jì)函數(shù)對數(shù)組中的字符串進(jìn)行反序排列。首先設(shè)計(jì)一個(gè)函數(shù)對數(shù)組中I I.I I的兩個(gè)元素進(jìn)行交換,從首尾兩端同時(shí)進(jìn)行,第一位和最后一位交換第二位和倒數(shù) 第二位進(jìn)行交換,依次類推,實(shí)現(xiàn)數(shù)組的反序。在主函數(shù)中調(diào)用。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>歡迎閱讀歡迎共閱#defi neswap(a,b)chartemp;temp二a;a=b;b=temp;

18、 voidf2(chars)in tle nth=strle n(s); chartemp;for(i nti=0;i<le nth/2;i+)swap(si,sle nth-1-i);in tmai n()chars256;n");printf("請輸入一串字符: sca nf("%s", &s);f2(s);printf("反序后為:n"); prin tf("%s",s);二u丨system("pause");1 II II Ireturn。; 驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果

19、輸出正確總結(jié)與心得體會(huì):本實(shí)驗(yàn)通過利用數(shù)組直接作為函數(shù)形參,直接對數(shù)組進(jìn)行反序,省去了借用指針的過程,更加簡潔方便。實(shí)驗(yàn)題目5:編寫程序,從鍵盤輸入一行字符,統(tǒng)計(jì)其中英文字母數(shù)、空格、數(shù)字和其他字符數(shù)的個(gè)數(shù)。設(shè)計(jì)思想:分別編寫三個(gè)函數(shù)對字符進(jìn)行檢測,函數(shù)的編寫根據(jù)ASCII碼進(jìn)行檢測, 函數(shù)結(jié)果返回1或0 (符合要求返回1,反之返回0)。在主函數(shù)中對輸入的字符串I Z進(jìn)行逐位檢測,直接利用三個(gè)函數(shù)的返回值進(jìn)行計(jì)數(shù),最后分別輸出結(jié)果。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h>in tzimu(chars)if(64<s

20、&&s<91|96<s&&s<123)return1;elseretur n0;> Iintkon gge(chars)if(s='')return1;elsereturn0;歡迎閱讀歡迎共閱in tshuzi(chars)if(48<=s&&s<=57)returnl;elseretur nO;in tmai n()chars;in tzm=O,kg=O,sz=O,qita=O;printf("請輸入一串字符:n");while(s=getchar()!='n

21、9;)zm+=zimu(s);kg+=ko ngge(s);sz+=shuzi(s);:二1 Ii iprintf("字母=%dn 空格=%dn 數(shù)字=%d",zm,kg,sz); system("pause");return。; 驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果輸出正確歡迎閱讀歡迎閱讀歡迎共閱總結(jié)與心得體會(huì):本實(shí)驗(yàn)利用了 ASCII碼對字符進(jìn)行判斷,由于字符與 ASCII碼對應(yīng),所以ASCII碼經(jīng)常被用來判斷字符。本實(shí)驗(yàn)中將函數(shù)的返回值定位0或1,可以直接用來計(jì)數(shù),省去了再次計(jì)數(shù)的麻煩。實(shí)驗(yàn)六實(shí)驗(yàn)題目1:編程序求不超過2000的所有對稱數(shù)。請編寫函數(shù),判

22、斷一個(gè)數(shù)字是否為對稱數(shù),若I Z是對稱數(shù),函數(shù)返回值為1,否則返回值為0。主函數(shù)完成數(shù)據(jù)的輸入與結(jié)果的輸出。設(shè)計(jì)思想:定義一個(gè)五位數(shù)組,數(shù)據(jù)類型為字符型。設(shè)計(jì)函數(shù)通過指針對輸入字符 串的首位和尾位進(jìn)行比較,然后向中間靠攏,最后得出是否為對稱數(shù),作為主函數(shù) 里的判斷條件。在主函數(shù)中輸入、輸出并調(diào)用此函數(shù)。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h>in tpa ndua n( chars)I Iintn二 strle n( s);in tt=n/2;char*p1,*p2;p1=s

23、;p2=p1+ n-1;for(i nti=0;i<t;i+)歡迎共閱if(*(p1+i)!=*(p2-i)return。;returnl;in tmai n()chars5;in ta,b,c;printf("2000以內(nèi)對稱數(shù)有:n");for(intn=1; n<=2000; n+)spri ntf(s,"%d", n);b=pa ndua n( s);if(b=1)prin tf("%dt", n);_;' II Iprintf(”請輸入一個(gè)數(shù):");sca nf("%d",&

24、amp;a);spri ntf(s,"%d",a);c=pa ndua n( s);if(c=1) printf("%d 是對稱數(shù) n",a);歡迎閱讀歡迎共閱elseprintf("%d 不是對稱數(shù) n”,a);system("pause");return。;驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果輸出正確。I Z總結(jié)與心得體會(huì):本實(shí)驗(yàn)要求判斷是否為對稱數(shù),很容易想到直接輸入數(shù)字求其相應(yīng)數(shù)位再進(jìn)行對比。 不過,本實(shí)驗(yàn)采用判斷字符的方式,使程序更加簡潔,占用內(nèi)存更小。同時(shí),本函 數(shù)采用指針指向字符串的相應(yīng)位,直接進(jìn)行比較,非常方便。實(shí)

25、驗(yàn)題目2:請編寫函數(shù),判斷一個(gè)字符串是否是回文。若是回文,函數(shù)返回值為 1,否則返回值為0.設(shè)計(jì)思想:采用指針的運(yùn)算進(jìn)行移位,在這一過程中對數(shù)組的相應(yīng)位進(jìn)行比較,從 首位和尾位開始比較,比較完成后進(jìn)行移位,直至全部比較結(jié)束。將比較結(jié)果作為c二7 I、' |判斷條件,決定是反回何值。I I實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h>in tpa ndua n( chars,i ntn)歡迎共閱char*p1,*p2;p1=s;p2=s+n-1;for(i nti=O;i&l

26、t; n/2;i+)if(*(p1+i)!=*(p2-i)return。;returnl;in tmai n() chars128;printf("請輸入一串字符:n");sca nf("%s", &s);if(strle n( s)=1|pa ndua n(s,strle n( s) pri ntf("1 n");'IelseI I2I Iprin tf("0n");system("pause");return。; 驗(yàn)證與結(jié)論:歡迎閱讀歡迎共閱結(jié)果輸出正確??偨Y(jié)與心得體會(huì):本實(shí)

27、驗(yàn)與上一實(shí)驗(yàn)有很大的相似性,函數(shù)采用指針指向字符串的相應(yīng)位,直接進(jìn)行 比較,比較完成后通過指針的運(yùn)算進(jìn)行移位,非常方便。在解決多數(shù)據(jù)問題需要移 位時(shí),指針的運(yùn)算是一種很好的方法。實(shí)驗(yàn)題目3:分別利用行指針和指向元素的指針求整型二維數(shù)組中最大的元素及其所在的行號(hào)與' u二' I 1 |列號(hào)。I III I設(shè)計(jì)思想:通過循環(huán)方法對數(shù)組進(jìn)行賦值。指向行時(shí),分別判斷每一行最大值再進(jìn) 行比較,同時(shí)記錄行號(hào)和列號(hào)。指向元素時(shí),比較所有元素大小,找出最大值,并 記錄行號(hào)和列號(hào)。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h>歡

28、迎閱讀歡迎共閱in tmai n()in tM,N;printf("請輸入數(shù)組的行和列:n");sea nf("%d%d",&M,&N);in taMN,max,h,l, nu=0;in t(*p)N,*q;printf("請輸入 %d 個(gè)數(shù)字:n",M*N);for(i nti=O;i<M;i+)for(i ntj=O;j<N;j+)sca nf("%d",&aij);prin tf("n");p=a;max=0;I I/指向元素方案for(i nti=0;

29、i<M;i+)for(i ntj=0;j<N;j+)if(max<*(*(p+i)+j) max=*(*(p+i)+j);歡迎閱讀歡迎共閱h=i;l=j;printf("指向元素t最大值為%d,所在行為%d,所在列為%dn",max,h+1,l+1);/指向行方案max二aOO;q=aO;for(i nti=O;q<aO+M*N;q+)I Z X / 彳 嚴(yán)/hif(max<*q)In u=i;max=*q;i+;h=nu/N;'Il=n u%N;> Iprintf(”指向行t最大值為%d,所在行為%d,所在列為%dn"

30、,max,h+1,l+1);system("pause");return。;驗(yàn)證與結(jié)論:歡迎閱讀歡迎共閱結(jié)果輸出正確??偨Y(jié)與心得體會(huì):實(shí)驗(yàn)中考察了指向行和指向元素兩種指針方法。指針分為多種,多級(jí),在使用指針時(shí),可以考慮多種不同的方式進(jìn)行函數(shù)設(shè)計(jì),以最簡為目的。實(shí)驗(yàn)題目4:編寫程序,輸入5個(gè)單詞,請將它們按從小到大的順序排序后輸出。設(shè)計(jì)思想:匚二二7 I 一' |實(shí)驗(yàn)代碼及注釋:I I2#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h> voidpaixu(chars32)c

31、harzj32;歡迎閱讀for(i nti=0;i<4;i+)for(i ntj二i+1;j<5;j+)if(strcmp(sj,si)vO)strcpy(zj,si);strcpy(si,sj);strcpy(sj,zj);in tmai n()printf("請輸入五個(gè)單詞:n");chars532;I Ifor(i nti=0;i<5;i+)sca nf("%s",si);paixu(s);for(i nti=0;i<5;i+)prin tf("%s n",si);system("pause&q

32、uot;);歡迎閱讀return。;驗(yàn)證與結(jié)論:結(jié)果輸出正確??偨Y(jié)與心得體會(huì):本實(shí)驗(yàn)中調(diào)用了字符串函數(shù),這幾個(gè)函數(shù)在比較字符串以及字符串的長度計(jì)算,復(fù)制字符串方面十分方便。要注意在調(diào)用字符串函數(shù)前要調(diào)用stri ng.h頭文件。I 1 |實(shí)驗(yàn)題目5:I I3I I輸入一個(gè)三位數(shù),計(jì)算該數(shù)各位上的數(shù)字之和,如果在1 ,12之內(nèi),則輸出與和數(shù)相對應(yīng)的月份的英文名稱,否則輸出*。例如:輸入:123輸出:1+2+3=6Ju ne輸入:139 輸出:1+3+9=13*要求:用指針數(shù)組記錄各月份英文單詞的首地址。歡迎閱讀設(shè)計(jì)思想:定義一個(gè)指針數(shù)組,數(shù)據(jù)類型為字符型。用指針數(shù)組記錄各月份英文單詞的首地址。對

33、輸入的三位數(shù)分別求各個(gè)數(shù)位,相加判斷輸出幾月或者*。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h> in tmai n()I Zintn,m; /彳 v嚴(yán)異rchar*yue="Ja nuary","February","March","April","May","Ju ne","July","Aguest","September","Oc

34、tober","November","December"printf("請輸入一個(gè)三位數(shù):n");sca nf("%d",&n);m=n%10+n/10%10+n/100;if(m<=12&&m>=1)pri ntf("%d+%d+%d=%dt%s", n/100, n/10%10, n%10,m,yuem-1);else W Iprin tf("%d+%d+%d=%dt*", n/100, n/10%10, n%10,m);I

35、Isystem("pause");return。;驗(yàn)證與結(jié)論:歡迎閱讀結(jié)果輸出正確??偨Y(jié)與心得體會(huì):本實(shí)驗(yàn)用到了指針數(shù)組,用指針數(shù)組記錄各月份英文單詞的首地址,可以十分方便 地找到每個(gè)月并輸出。實(shí)驗(yàn)七實(shí)驗(yàn)題目1:定義結(jié)構(gòu)體類型,分別編寫函數(shù)實(shí)現(xiàn)復(fù)數(shù)的加、減運(yùn)算,在主函數(shù)中調(diào)用這些函數(shù) 匚二二嚴(yán)11進(jìn)行計(jì)算并輸出計(jì)算結(jié)果。I |2I |設(shè)計(jì)思想:定義復(fù)數(shù)結(jié)構(gòu)體,結(jié)構(gòu)體里包含兩個(gè)整型變量,分別代表復(fù)數(shù)的實(shí)部和 虛部。定義復(fù)數(shù)加減的函數(shù)。在主函數(shù)里輸入輸出并調(diào)用這些函數(shù)。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#in clude<stdlib.h&g

36、t;structfushu歡迎閱讀歡迎共閱in ti;intj;fushu1,fushu2,jieguo;in tjia()jieguo.i二fushu1.i+fushu2.i;jieguo.j二fushu1.j+fushu2.j;Iin tjia n()Ijieguo.i=fushu1.i-fushu2.i;jieguo.j=fushu1.j-fushu2.j;in tmai n()Iprintf(”請分別輸入兩個(gè)復(fù)數(shù)的實(shí)部和虛部:n");I Isca nf("%d%d%d%d", &fushu1.i, &fushu1.j, &fushu

37、2.i, &fushu2.j);jia();printf(” 他們的和是 %d%+din",jieguo.i,jieguo.j);jian();printf(” 他們的差是 %d%+din",jieguo.i,jieguo.j);system("pause");歡迎閱讀歡迎共閱return。;驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果輸出正確??偨Y(jié)與心得體會(huì):本實(shí)驗(yàn)中運(yùn)用到了基本的結(jié)構(gòu)體功能,實(shí)現(xiàn)了結(jié)構(gòu)體中變量的相加減,為進(jìn)一步嘗 試機(jī)構(gòu)體類型打下了基礎(chǔ)。I Z實(shí)驗(yàn)題目2:有10本圖書,每本圖書的信息包括書號(hào)、書名、作者、價(jià)格,編寫函數(shù)完成以下功能:(1)從

38、鍵盤輸入數(shù)據(jù),將其存放在結(jié)構(gòu)體數(shù)組中。(2)輸入書名,在數(shù)組中查找是否存在此書,有此書則輸出此書的信息,無此書則 輸出提示信息。(3)輸入一個(gè)價(jià)格,將高于此價(jià)格的圖書信息輸出。設(shè)計(jì)思想:定義一個(gè)結(jié)構(gòu)體,包含一個(gè)整型變量,代表書號(hào),兩個(gè)字符型變量,分 別代表書名和作者名,一個(gè)實(shí)型,代表書價(jià)。通過循環(huán)結(jié)構(gòu)輸入每個(gè)變量的內(nèi)容,u二十 I、1 |通過條件判斷實(shí)現(xiàn)題目要求的查找功能。I I、I I實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#i ncludevstri ng.h>#in clude<stdlib.h>structbook歡迎閱讀歡迎共閱in tNUM

39、;char name10;charauthor10;floatprice;somebook10;in thasBook(charname,book on eBook)if(strcmp( on eBook .n ame ,n ame)=0) return1;Ireturn。;Iin thigher(float_price,book on eBook) _if(on eBook.price>_price)return1;returnO;voidi nput():二1 I I Iprintf("請依次輸入十本書的n1.書號(hào)2.書名3.作者4.價(jià)格n");for(i nti

40、=O;i<1O;i+)sca nf("%f%s%s%f", &somebooki.NUM, &somebooki. name,&somebooki.author,&somebooki.price);歡迎閱讀歡迎共閱voidsearchBook_ name(charname_1)in ti_book=0;for(i nti=0;i<10;i+)I Zif(hasBook( name_1,somebooki)=1)廠 I/ /Iprin tf("%.0f%s%s%.2fn",somebooki.NUM,somebo

41、oki. name,somebooki.author,somebooki.price);i_book+;if(i_book=0)-.1 I> Iprintf("沒有這本書n");voidsearchBook_price(floatprice_1)for(i nti=0;i<10;i+)歡迎閱讀歡迎閱讀歡迎共閱if(higher(price_1,somebooki)=1)prin tf("%.0f%s%s%.2fn",somebooki.NUM,somebooki. name,somebooki.author,somebooki.price);

42、I Zin tmai n()Iinput();charname_110;printf("輸入你想查找的書:");sca nf("%s" ,n ame_1);searchBook_ name (n ame_1);-1 I -floatprice_1;> Iprintf("輸入價(jià)格:");sca nf("%f",&price_1);searchBook_price(price_1);system("pause");return。;歡迎共閱驗(yàn)證與結(jié)論: 程序運(yùn)行正常,結(jié)果輸出正確??偨Y(jié)與

43、心得體會(huì):本實(shí)驗(yàn)在結(jié)構(gòu)體中加入了更多的類型,還運(yùn)用到了循環(huán)結(jié)構(gòu)對結(jié)構(gòu)體里的變量進(jìn)行 賦值,是一種比較方便的寫法。同時(shí),還用到了對結(jié)構(gòu)體里變量的判斷。實(shí)驗(yàn)題目3:設(shè)有若干個(gè)人員的數(shù)據(jù),其中有學(xué)生和教師。學(xué)生的數(shù)據(jù)包括:姓名、學(xué)號(hào)、性別、I Z班級(jí),教師數(shù)據(jù)包括:姓名、職工號(hào)、性別、職務(wù)?,F(xiàn)要求將老師和學(xué)生數(shù)據(jù)放在 同一表格中,其中老師的職務(wù)和學(xué)生的班級(jí)共享空間。編程輸入相應(yīng)的數(shù)據(jù),然后 再輸出數(shù)據(jù)。設(shè)計(jì)思想:定義一個(gè)結(jié)構(gòu)體,包含各個(gè)數(shù)據(jù),其中最后一項(xiàng)老師職務(wù)和學(xué)生班級(jí)用 共用體,根據(jù)學(xué)號(hào)里的是否有s判斷是老師還是學(xué)生,決定輸出類型。實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>

44、#i nclude<malloc.h>#in clude<stdlib.h>c二二1 |#defi neN4I I2I Ii. istructpers onchar name16;charid20;charsex5;union歡迎閱讀歡迎共閱in tclas;charoffice16;claoff;structpers on*n ext;*head,*pthis;voidi nput()Istructpers on *tmp;printf("請輸入個(gè)人信息:n");printf(”n");for(inti=1;i<=N;i+)prin

45、tf("姓名t學(xué)號(hào)/職工號(hào)t性別t班級(jí)/職務(wù)n");if(tmp=(structpers on *)malloc(sizeof(structperso n)二二NULL)".冷printf("n錯(cuò)誤!不能申請所需的內(nèi)存!n");1 I> Iexit(O);sca nf("%st%st%s", &tmp->n ame,&tmp->id,&tmp->sex);if(tmp->idO='s')sca nf("%d",&tmp->

46、claoff.clas);e-sescanf(=%s=fmpvc-aoff.office)_ fmpvnexllNULL 八 if(headxNULL)宀 headAmp pfhisuheaae-se 宀 pfhisvnexllfmp pfhisHpfhisvnexcvoidoufpuo宀pinff>n云選箔旦*一5八gnffvBZ齊*加、男H<4n諄W型齊岸磐、男血云ps云H歡迎共閱if(head=NULL)printf("錯(cuò)誤,沒有數(shù)據(jù)!n");return;pthis二head;while(pthis!二NULL)I Zif(pthis->idO=&

47、#39;s')pri ntf("%st%st%st%dn",pthis->n ame,pthis->id,pthis->sex,pthis->claoff.clas);elsepr in tf("%st%st%st%sn",pthis-> name,pthis->id,pthis->sex,pthis->claoff.office);J .1 II Ipthis=pthis->n ext;in tmai n()printf("n學(xué)生學(xué)號(hào)以s開頭,成員數(shù)為4人nn");歡迎閱

48、讀歡迎共閱head二NULL;input();output();system("pause");return。;驗(yàn)證與結(jié)論:I Z程序運(yùn)行正常,結(jié)果輸出正確??偨Y(jié)與心得體會(huì):本實(shí)驗(yàn)用到了結(jié)構(gòu)體和共用體,共用體可以對不同類型的同一欄數(shù)據(jù)進(jìn)行分類,根 據(jù)判斷輸出不同數(shù)據(jù)。實(shí)驗(yàn)八實(shí)驗(yàn)題目1:從鍵盤輸入一串大小寫字母混合的字符串,將其中的所有小寫字母轉(zhuǎn)換成大寫字母, 大寫字母轉(zhuǎn)換成小寫字母,并將轉(zhuǎn)換后的小寫字母和大寫字母分別存入不同的文件 中。11設(shè)計(jì)思想:根據(jù)ASCII碼對大小寫字母進(jìn)行轉(zhuǎn)換,通過循環(huán)結(jié)構(gòu)對每個(gè)字母執(zhí)行該I I操作,將轉(zhuǎn)換后的字母打印到屏幕并寫入文件。實(shí)驗(yàn)代碼及注

49、釋:#in clude<stdio.h>#in clude<stdlib.h>#i ncludevstri ng.h>in tmai n()歡迎閱讀歡迎共閱FILE*fp1,*fp2;charzimu128;in ti;in tN二strle n(zimu);/初始定義fp仁 fope n("daxie.txt","w");I Zfp2=fope n( "xiaoxie.txt","w");I/文件打開操作if(fope n( "daxie.txt","w

50、")=NULL|fope n("xiaoxie.txt","w")=NULL)Iprintf("找不到文件");return-1;printf(”請輸入一串大小寫混合的字母:n");gets(zimu);'Ifor(i=0;i<N;i+)if(zimui>=65&&zimui<=90)zimui+=32;fputc(zimui,fp2);prin tf("%c",zimui);歡迎閱讀歡迎共閱elseif(zimui>=97&& z

51、imuiv=122)zimui-=32;fputc(zimui,fp1);prin tf("%c",zimui);I Zfclose(fpl);fclose(fp2);Isystem("pause");return。;驗(yàn)證與結(jié)論:程序運(yùn)行正常,結(jié)果輸出正確,文件調(diào)用正確??偨Y(jié)與心得體會(huì):1 I本實(shí)驗(yàn)難點(diǎn)主要在于對文件的操作,要注意判斷文件是否正確打開。> I實(shí)驗(yàn)題目2:從鍵盤輸入4位學(xué)生的數(shù)據(jù)(學(xué)生數(shù)據(jù)包括學(xué)號(hào)、姓名和三門課的成績),然后把 它們轉(zhuǎn)存到磁盤文件中去,再從磁盤文件讀入相應(yīng)變量中,并將變量內(nèi)容輸出到屏 幕。設(shè)計(jì)思想:定義結(jié)構(gòu)體,其中包含一個(gè)整型變量代表學(xué)號(hào),一個(gè)字符型代表姓名, 三個(gè)實(shí)型代表分?jǐn)?shù),將其寫入文件后再讀取并打印到屏幕 歡迎閱讀歡迎共閱實(shí)驗(yàn)代碼及注釋:#in clude<stdio.h>#i ncludevstri ng.h>#i nclude<malloc.h>#in clude<stdlib.h>structstude ntintnum;Ichar name32;floatscorel;Ifloatscore2;floatscore3;structstude nt* next;*first,*mod,s;voidi nput()structstud

溫馨提示

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

評(píng)論

0/150

提交評(píng)論