c語(yǔ)言實(shí)驗(yàn)報(bào)告-_第1頁(yè)
c語(yǔ)言實(shí)驗(yàn)報(bào)告-_第2頁(yè)
c語(yǔ)言實(shí)驗(yàn)報(bào)告-_第3頁(yè)
c語(yǔ)言實(shí)驗(yàn)報(bào)告-_第4頁(yè)
c語(yǔ)言實(shí)驗(yàn)報(bào)告-_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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)介

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

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

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

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

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

#include<stdio.h>

void

main()

{

char

c1,c2;

c1='a';

c2='b';

printf("%c

%c\n",c1,c2);

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

%d\n",c1,c2);

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

c1,c2;

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

c2=b;

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

c2=‘’b‘’;

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

c2=400;

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

6給出的程序

#include<stdio.h>

main

()

{

c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第2頁(yè)。char

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

c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第2頁(yè)。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);

}請(qǐng)對(duì)照程序和運(yùn)行結(jié)果分析:

①將一個(gè)負(fù)整數(shù)斌給一個(gè)無(wú)符號(hào)的變t,會(huì)得到什么結(jié)果。畫出它們?cè)趦?nèi)存中的表

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

的表示形式。c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第3頁(yè)。③將一個(gè)長(zhǎng)整數(shù)賦給無(wú)符號(hào)變量,會(huì)得到什么結(jié)果(分別考慮該長(zhǎng)整數(shù)的值大于或等于65535以及小于65535的情況)。畫出它們?cè)趦?nèi)存中的表示形式。eq\o\ac(○,1)得到的是原來(lái)正數(shù)取存的數(shù)eq\o\ac(○,2)將一個(gè)大于32767的長(zhǎng)整數(shù)斌給整型變t,造成溢出,數(shù)據(jù)丟失。eq\o\ac(○,3)可能會(huì)溢出,也可能正常。(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);

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

②將第6,7行改為:

m=i++;

n=++j;

再運(yùn)行。③將程序改為:

#include<stdio.h>

void

main()

{

c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第4頁(yè)。int

i,j;c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第4頁(yè)。

i=8;

j=10;

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

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

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

⑤再將printf語(yǔ)句改為:

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;

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

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

#include<stdio.h>

c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第5頁(yè)。void

main()c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第5頁(yè)。

{

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);

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

(1)熟練掌握f(shuō)or

語(yǔ)句、while

語(yǔ)句、do-while

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

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

(3)掌握break

語(yǔ)句與continue

語(yǔ)句的使用;

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

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

(2)

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

(3)

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

(4)

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

(5)

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

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

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

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

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

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

:eq\o\ac(○,1)

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

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

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

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

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

實(shí)驗(yàn)內(nèi)容:(1).

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

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

l

3

5

7

9

11

13

15

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

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

strcmp

(char

*

p1,

char

*

p2);

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

0,

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

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

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

l

3

5

c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第9頁(yè)。7

9

11

c語(yǔ)言實(shí)驗(yàn)報(bào)告-全文共10頁(yè),當(dāng)前為第9頁(yè)。13

15

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

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

溫馨提示

  • 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)論