c語言實驗報告-_第1頁
c語言實驗報告-_第2頁
c語言實驗報告-_第3頁
c語言實驗報告-_第4頁
c語言實驗報告-_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文檔如對你有幫助,請幫忙下載支持!c語言實驗報告-本文檔如對你有幫助,請幫忙下載支持!C語言實驗報告說明1,所有程序均用VC6.0編譯運行,文件名命名為姓名+日期,因為實驗存在補(bǔ)做,所以并不是按照日期先后排列的。2,為了使截圖清晰,手動將運行窗口由“黑底白字”改為了“白底黑字”。實驗2數(shù)據(jù)類型、運算符和表達(dá)式一、實驗?zāi)康模?/p>

(1)掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型、字符型、實型變量、以及對它們賦值的方法。

(2)學(xué)會使用C的有關(guān)算術(shù)運算符,以及包含這些運算符的表達(dá)式,特別是自加(++)和自減(――)運算符的使用。

(3)掌握C語言的輸入和輸出函數(shù)的使用

(4)進(jìn)一步熟悉C程序的編輯、編譯、連接和運行的過程。三、程序調(diào)試與問題解決:(1)輸人并運行下面的程序

#include<stdio.h>

void

main()

{

char

c1,c2;

c1='a';

c2='b';

printf("%c

%c\n",c1,c2);

}eq\o\ac(○,1)運行此程序。c語言實驗報告-全文共10頁,當(dāng)前為第1頁。eq\o\ac(○,2)在上面printf語句的下面再增加一個printf語句。c語言實驗報告-全文共10頁,當(dāng)前為第1頁。printf("%d

%d\n",c1,c2);

再運行,并分析結(jié)果。輸出結(jié)果如圖,編譯成功,無錯誤。eq\o\ac(○,3)將第3行改為int

c1,c2;

再運行,并分析結(jié)果。eq\o\ac(○,4)再將第4、5行改為c1=a;

c2=b;

再運行,并分析結(jié)果。a,b沒有定義,編譯報錯。eq\o\ac(○,5)再將第4、5行改為c1=‘’a‘’;

c2=‘’b‘’;

再運行,并分析結(jié)果。eq\o\ac(○,6)再將第4、5行改為c1=300;

c2=400;

再運行,并分析結(jié)果。以字符型輸出時,輸出的將是300,400對應(yīng)的字符。(2)輸人并運行教材第3章習(xí)題3.

6給出的程序

#include<stdio.h>

main

()

{

c語言實驗報告-全文共10頁,當(dāng)前為第2頁。char

c1='a',c2='b',c3='c',c4='\101',c5='\116';

c語言實驗報告-全文共10頁,當(dāng)前為第2頁。printf("a%c

b%c\tc%c\tabc\n",c1,c2,c3);

printf("\t\b%c

%c\n",c4,c5);

}#include<stdio.h>

void

main()

{

int

a,b;

unsigned

c,d;

long

e,f;a=100;

b=-100;

e=50000;

f=32767;

c=a;

d=b;

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

printf("%u,%u\n",a,b);

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

c=a=e;

d=b=f;

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

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

}請對照程序和運行結(jié)果分析:

①將一個負(fù)整數(shù)斌給一個無符號的變t,會得到什么結(jié)果。畫出它們在內(nèi)存中的表

示形式。c語言實驗報告-全文共10頁,當(dāng)前為第3頁。②將一個大于32767的長整數(shù)斌給整型變t,會得到什么結(jié)果。畫出它們在內(nèi)存中

的表示形式。c語言實驗報告-全文共10頁,當(dāng)前為第3頁。③將一個長整數(shù)賦給無符號變量,會得到什么結(jié)果(分別考慮該長整數(shù)的值大于或等于65535以及小于65535的情況)。畫出它們在內(nèi)存中的表示形式。eq\o\ac(○,1)得到的是原來正數(shù)取存的數(shù)eq\o\ac(○,2)將一個大于32767的長整數(shù)斌給整型變t,造成溢出,數(shù)據(jù)丟失。eq\o\ac(○,3)可能會溢出,也可能正常。(4)輸人習(xí)題3.

10

#include<stdio.h>

void

main()

{

int

i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n);

}①運行程序,注意i,j,m,n各變量的值。分別作以下改動并運行:

②將第6,7行改為:

m=i++;

n=++j;

再運行。③將程序改為:

#include<stdio.h>

void

main()

{

c語言實驗報告-全文共10頁,當(dāng)前為第4頁。int

i,j;c語言實驗報告-全文共10頁,當(dāng)前為第4頁。

i=8;

j=10;

printf("%d,%d\n",i++,j++);

}④在③的基礎(chǔ)上,將printf語句改為:

printf("%d,%d,%d,%d\n",i,j,++i,++j);

⑤再將printf語句改為:

printf("%d,%d,%d,%d\n",i,j,i++,j++);

⑥將程序改為:

#include<stdio.h>

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\n",i,j,m,n);

}②將第6,7行改為:

m=i++;

n=++j;

再運行。以上程序結(jié)果的不同均是由于自增自減運算符引起的,考慮到一個判斷技巧,看自增自減運算符時,先將它們從原程序中拿出來,如果++或—在后,就先把值放回去,然后自增自減,如果在前,先自增自減,再把結(jié)果放進(jìn)去。

printf("%d,%d,%d,%d\n",i,j,++i,++j);

#include<stdio.h>

c語言實驗報告-全文共10頁,當(dāng)前為第5頁。void

main()c語言實驗報告-全文共10頁,當(dāng)前為第5頁。

{

int

i,j,m=0,n=0;

i=8;

j=10;

m+=i++;

n-=--j;

printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);

}實驗5循環(huán)控制一、實驗?zāi)康模?/p>

(1)熟練掌握for

語句、while

語句、do-while

語句實現(xiàn)循環(huán)的方法;

(2)理解循環(huán)嵌套及其使用方法;

(3)掌握break

語句與continue

語句的使用;

(4)掌握用循環(huán)實現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。二、實驗內(nèi)容:1.輸入兩個正整數(shù),求其中最大公約數(shù)和最小公倍數(shù)。2.輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其它字符的個數(shù)。3.用牛頓迭代法求方程2X3-4X2+3X-6=0在1.5附近的根。4.猴子吃桃問題。猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過痛,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩一個桃子了。求第一天共摘了多少桃子。三、程序調(diào)試與問題解決:1.輸入兩個正整數(shù),求其中最大公約數(shù)和最小公倍數(shù)。c語言實驗報告-全文共10頁,當(dāng)前為第6頁。編譯無錯誤,運行如上圖所示,使用了最簡單的算法,清晰易理解,同時注意了編程的格式,在以往編程序時,往往不注意上下對齊等問題,容易出現(xiàn)缺標(biāo)點等現(xiàn)象,將大括號一級一級對齊后,可以有效地避免出錯。c語言實驗報告-全文共10頁,當(dāng)前為第6頁。發(fā)現(xiàn)一個技巧,打括號時一次打出一對括號,可以減少括號不配對的錯誤。2.輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其它字符的個數(shù)。編譯無誤,測試正確,寫該程序時特意加了注釋,以便閱讀。3.用牛頓迭代法求方程2X3-4X2+3X-6=0在1.5附近的根。該程序缺少#include<stdio.h>;是截圖原因,原程序中是存在的。最開始不知道fabs函數(shù)的用法,通過百度查詢。4.猴子吃桃問題。猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過痛,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩一個桃子了。求第一天共摘了多少桃子。實驗7函數(shù)一、實驗?zāi)康?(1)

掌握定義函數(shù)的方法。

(2)

掌握函數(shù)實參與形參的對應(yīng)關(guān)系及值傳遞的方式。

(3)

掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。

(4)

掌握全局變量和局部變量,動態(tài)變量和靜態(tài)變量的概念和使用方法。

(5)

學(xué)習(xí)對多文件程序的編譯和運行。二、實驗內(nèi)容:1.寫一個判別素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。本程序應(yīng)當(dāng)準(zhǔn)備以下測試數(shù)據(jù):17、34、2、1、0。分別運行并檢查結(jié)果是否正確。2.用一個函數(shù)來實現(xiàn)將一行字符串中最長的單詞輸出。此行字符從主函數(shù)傳遞給該函數(shù)。(1)把兩個函數(shù)放在同一個程序文件中。

(2)將兩個函數(shù)分別放在兩個程序文件中,作為兩個文件進(jìn)行編譯、連接和運行。3.用遞歸法將一個整數(shù)n轉(zhuǎn)換成字符串。例如輸入483.應(yīng)輸出字符串“483”。n的位數(shù)不確定,可以是任意的整數(shù)。c語言實驗報告-全文共10頁,當(dāng)前為第7頁。4.求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個函數(shù)求最大公約數(shù)用另一個函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。分別用下面的兩種方法編程。

c語言實驗報告-全文共10頁,當(dāng)前為第7頁。(1)不用全局變量,在主函數(shù)中輸入兩個數(shù)和輸出結(jié)果。

(2)用全部變量的方法,數(shù)據(jù)的傳遞通過全部變量的方法。5.寫一個函數(shù),輸入一個十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。三、程序調(diào)試與問題解決:1.寫一個判別素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。本程序應(yīng)當(dāng)準(zhǔn)備以下測試數(shù)據(jù):17、34、2、1、0。分別運行并檢查結(jié)果是否正確。該例編譯時出現(xiàn)錯誤,原因是誤將sushu(a)==1寫為sushu(a)=1。改正后編譯無誤。2.用一個函數(shù)來實現(xiàn)將一行字符串中最長的單詞輸出。此行字符從主函數(shù)傳遞給該函數(shù)。子函數(shù)中第二個while考慮到了多種標(biāo)點符號的情況,但是該程序可能存在的問題是,如果有兩個單詞的長度是相同的?3.用遞歸法將一個整數(shù)n轉(zhuǎn)換成字符串。例如輸入483.應(yīng)輸出字符串“483”。n的位數(shù)不確定,可以是任意的整數(shù)。4.求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個函數(shù)求最大公約數(shù)用另一個函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。分別用下面的兩種方法編程。

(1)不用全局變量,在主函數(shù)中輸入兩個數(shù)和輸出結(jié)果。

(2)用全部變量的方法,數(shù)據(jù)的傳遞通過全部變量的方法。使用了兩個子函數(shù),我認(rèn)為應(yīng)該還有更簡單的算法?!5.寫一個函數(shù),輸入一個十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。程序運行時出現(xiàn)錯誤,后檢查發(fā)現(xiàn)在scanf格式字符串的雙引號是中文符號,改成英文雙引號后成功。實驗9指針一、實驗?zāi)康?/p>

:eq\o\ac(○,1)

通過實驗進(jìn)一步掌握指針的概念,會定義和使用指針變量;

eq\o\ac(○,2)能正確使用數(shù)組的指針和指向數(shù)組的指針變量;

c語言實驗報告-全文共10頁,當(dāng)前為第8頁。eq\o\ac(○,3)能正確使用字符串的指針和指向字符串的指針變量;

c語言實驗報告-全文共10頁,當(dāng)前為第8頁。eq\o\ac(○,4)能正確使用指向函數(shù)的指針變量;

eq\o\ac(○,5)了解指向指針的指針的概念及其使用方法。二、

實驗內(nèi)容:(1).

輸入三個整數(shù),按由小到大的順序輸出,然后將程序改為:輸入三個字符串,按由小到大順序輸出。(2).

將一個3X3的矩陣轉(zhuǎn)置,用一函數(shù)實現(xiàn)之。

l

3

5

7

9

11

13

15

19將數(shù)組名作為函數(shù)實參,在執(zhí)行函數(shù)的過程中實現(xiàn)矩陣轉(zhuǎn)置,函數(shù)調(diào)用結(jié)束后在主函數(shù)中輸出已轉(zhuǎn)置的矩陣。(3).有n個人圍成一圈,順序排號。從第1個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。(4).

用一個函數(shù)實現(xiàn)兩個字符串的比較,即自己寫一個strcmp函數(shù),函數(shù)原型為:int

strcmp

(char

*

p1,

char

*

p2);

設(shè)p1指向字符串s1,p2指向字符串s2,要求當(dāng)s1=s2時,函數(shù)返回值為

0,

如果sl≠s2,則返回它們二者第一個不相同字符的ASCII碼差值(如“BOY”與“BAD”的第二個字母不相同,“O”與“A”之差為79—65=14);如果sl>s2,則輸出正值;如果sl<s2則輸出負(fù)值。兩個字符串s1、s2由main函數(shù)輸入,strcmp函數(shù)的返回值也由main函數(shù)輸出。(5).用指向指針的指針的方法對n個整數(shù)排序并輸出。要求將排序單獨寫成一個函數(shù)。n和各整數(shù)在主函數(shù)中輸入,最后在主函數(shù)中輸出。三、程序調(diào)試與問題解決:(1).

輸入三個整數(shù),按由小到大的順序輸出,然后將程序改為:輸入三個字符串,按由小到大順序輸出。(2).

將一個3X3的矩陣轉(zhuǎn)置,用一函數(shù)實現(xiàn)之。

l

3

5

c語言實驗報告-全文共10頁,當(dāng)前為第9頁。7

9

11

c語言實驗報告-全文共10頁,當(dāng)前為第9頁。13

15

19(3).有n個人圍成一圈,順序排號。從第1個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。(5).用指向指針的指針的方法對n個整數(shù)排序并輸出。要求將排序單獨寫成一個函數(shù)。n和各整數(shù)在主函數(shù)中輸入,最后在主函數(shù)中輸出。實驗12文件一、目的要求

:1.掌握文件以及緩沖文件系統(tǒng)、文件指針的概念;

溫馨提示

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

評論

0/150

提交評論