c語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告模板_第1頁
c語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告模板_第2頁
c語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告模板_第3頁
c語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告模板_第4頁
c語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告模板_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Word1/1c語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告模板篇二:C語言程序設(shè)計(jì)試驗(yàn)報(bào)告

(一)試驗(yàn)?zāi)康?/p>

(1)熟識和把握結(jié)構(gòu)的說明和引用、結(jié)構(gòu)的指針、結(jié)構(gòu)數(shù)組,以及函數(shù)中使用結(jié)構(gòu)的方

法。

(2)把握動(dòng)態(tài)存儲(chǔ)安排函數(shù)的用法,把握自引用結(jié)構(gòu)和單向鏈表的創(chuàng)建、遍歷、結(jié)點(diǎn)的

增刪、查找等操作。

(3)了解字段結(jié)構(gòu)和聯(lián)合的用法。

(二)試驗(yàn)內(nèi)容及要求

1.表達(dá)式求值的程序驗(yàn)證設(shè)有說明:

charu=UVWXYZ;charv=xyz;structT{intx;charc;char*t;

}a={{11,A,u},{100,B,v}},*p=a;

請先自己計(jì)算表2.1中表達(dá)式的值,然后編寫程序并運(yùn)行來加以驗(yàn)證。(各表達(dá)式相互無關(guān))

2.源程序修改、替換

下面所給源程序的功能是:給定一批整數(shù),以0作為結(jié)束標(biāo)志且不作為結(jié)點(diǎn),將其建成一個(gè)先進(jìn)先出的鏈表。先進(jìn)先出鏈表的頭指針始終指向最先創(chuàng)建的結(jié)點(diǎn)(鏈頭),先建結(jié)點(diǎn)指向后建結(jié)點(diǎn),后建結(jié)點(diǎn)始終是尾結(jié)點(diǎn)。請完成以下工作:

(1)源程序中存在什么樣的錯(cuò)誤(先觀看執(zhí)行結(jié)果)?對程序進(jìn)行修改、調(diào)試。使之能

夠正確完成指定任務(wù)。

(2)修改替換creat_list函數(shù),將其建成一個(gè)后進(jìn)先出的鏈表。后進(jìn)先出的鏈表的頭指針

始終指向最終創(chuàng)建的結(jié)點(diǎn)(鏈頭),后建結(jié)點(diǎn)指向先建結(jié)點(diǎn),先建結(jié)點(diǎn)始終是尾結(jié)點(diǎn)。

源程序

#include

#includestructs_list{intdata;

structs_list*next;};

voidcreat_list(structs_list*headp,int*p);intmain(void){

structs_list*head=NULL,*p;ints={1,2,3,4,5,6,7,8,0};creat_list(head,s);p=head;while(p){

printf(%d,p-data);p=p-next;}

printf();return0;}

voidcreat_list(structs_list*headp,int*p){

structs_list*loc_head=NULL,*tail;if(p[0]==0);else{

loc_head=(structs_list*)malloc(sizeof(structs_list));loc_head-data=*p++;tail=loc_head;while(*p){

tail-next=(structs_list*)malloc(sizeof(structs_list));tail=tail-next;tail-data=*p++;}

tail-next=NULL;}

headp=loc_head;}

3.程序設(shè)計(jì)

編寫并上機(jī)調(diào)試運(yùn)行能實(shí)現(xiàn)以下功能的程序或函數(shù):

(1)編寫一個(gè)程序,實(shí)現(xiàn)以下功能:定義一個(gè)字段結(jié)構(gòu)structbits,它將一個(gè)8位無符號字節(jié)從最低位向最高位聲明為8個(gè)字段,各字段依次為bit0,bit1,……bit7,且bit0的優(yōu)先級

最高。同時(shí)設(shè)計(jì)8個(gè)函數(shù),第i個(gè)函數(shù)以biti(i=0,1,……7)為參數(shù),并且在函數(shù)體內(nèi)輸出biti的值。將8個(gè)函數(shù)的名字存入一個(gè)函數(shù)指針數(shù)組p_fun。假如bit0為1,調(diào)用p_fun[0]指向的函數(shù)。假如structbits中有多位為1,則依據(jù)優(yōu)先級從高到低依次調(diào)用函數(shù)指針數(shù)組p_fun中相應(yīng)元素指向的函數(shù)。8個(gè)函數(shù)中的第0個(gè)函數(shù)可以設(shè)計(jì)為Voidf0(structbitsb){

Printf(“thefunction%discalled!”,b);}

(3)設(shè)計(jì)用單詞鏈表建立一張班級成果單,包括每個(gè)同學(xué)的學(xué)號、姓名、英語、高等數(shù)

學(xué)、一般物理、C語言程序設(shè)計(jì)四門課程的成果,試用函數(shù)編程實(shí)現(xiàn)下列功能:

①輸入每個(gè)同學(xué)的各項(xiàng)信息。②輸出每個(gè)同學(xué)的各項(xiàng)信息。③修改指定同學(xué)的指定數(shù)據(jù)項(xiàng)的內(nèi)容。④統(tǒng)計(jì)每個(gè)同學(xué)的平均成果(保留兩位小數(shù))。⑤輸出各位同學(xué)的學(xué)號、姓名、四門課程的總成果和平均成果。4.選做題

(1)對上述程序設(shè)計(jì)題中第(2)題的程序,增加根據(jù)平均成果進(jìn)行升序排序的函數(shù),試寫出用交換結(jié)點(diǎn)數(shù)據(jù)域的方法升序排序的函數(shù),排序可用選擇法或冒泡法。

(2)對選做題第(1)題,進(jìn)一步寫出用交換結(jié)點(diǎn)指針域的方法升序排序的函數(shù)。(3)采納雙向鏈表重做編程設(shè)計(jì)題中的第(2)題。

(三)試驗(yàn)步驟及結(jié)果

1.表達(dá)式求值的程序驗(yàn)證的試驗(yàn)步驟及結(jié)果

表2.1表達(dá)式值的計(jì)算

結(jié)果正確!

2.源程序修改、替換的試驗(yàn)步驟及結(jié)果

(1)改錯(cuò):headp類型應(yīng)為雙重指針,即:voidcreat_list(structs_list**headp,int*p);同時(shí)第40行應(yīng)當(dāng)改為*headp=loc_head;第12行改為creat_list(head,s);修改后的程序如下:#include#includestructs_list{intdata;

structs_list*next;};

voidcreat_list(structs_list**headp,int*p);intmain(void)

{

structs_list*head=NULL,*p;ints={1,2,3,4,5,6,7,8,0};creat_list(head,s);p=head;while(p){

printf(%d,p-data);p=p-next;}

printf();return0;}

voidcreat_list(structs_list**headp,int*p){

structs_list*loc_head=NULL,*tail;if(p[0]==0);else{

loc_head=(structs_list*)malloc(sizeof(structs_list));loc_head-data=*p++;tail=loc_head;while(*p){

tail-next=(structs_list*)malloc(sizeof(structs_list));tail=tail-next;tail-data=*p++;}

tail-next=NULL;}

*headp=loc_head;}

程序運(yùn)行結(jié)果如圖所示:

結(jié)果正確!

(2)建立一個(gè)后進(jìn)先出的鏈表如下:

修改后程序如下:#include#includestructs_list{intdata;

structs_list*next;};

voidcreat_list(structs_list**headp,int*p);intmain(void){

structs_list*head=NULL,*p;ints={1,2,3,4,5,6,7,8,0};creat_list(head,s);p=head;while(p){

printf(%d,p-data);p=p-next;}

printf();return0;}

voidcreat_list(structs_list**headp,int*p){

structs_list*loc_head=NULL,*tail;structs_list*temp;if(p[0]==0);

篇三:C語言程序設(shè)計(jì)上機(jī)試驗(yàn)報(bào)告

一、試驗(yàn)?zāi)康模?/p>

1.熟識WinTC或者VC++6.0的軟件環(huán)境,把握使用其進(jìn)行編輯、編譯、連接和運(yùn)行的方法。2.通過運(yùn)行簡潔的C程序,把握C源程序的特點(diǎn)。

二、試驗(yàn)內(nèi)容:(由同學(xué)選擇WinTC或者VC之一完成相關(guān)試驗(yàn))1.運(yùn)行WinTC程序,進(jìn)入C程序設(shè)計(jì)環(huán)境。2.建立工程文件3.編輯源文件4.編譯、連接

(1)單文件源程序的編譯、連接

源程序先經(jīng)過編譯,生成目標(biāo)文件(.obj文件),然后將目標(biāo)文件進(jìn)行連接,生成可執(zhí)行文件(.exe)。假如編譯、連接中發(fā)生錯(cuò)誤,在Message窗口中顯示出錯(cuò)信息,修改錯(cuò)誤后,可重新編譯、連接。(2)多文件源程序的編譯、連接

可以用長的源程序分割成幾個(gè)文件,分別編譯然后生成可執(zhí)行文件。此時(shí)使用Project菜單。步驟:第一步:有三個(gè)文件f1.c、f2.c、f3.c組成一個(gè)完整的C程序,分別建立三個(gè)文件,將f1.c、f2.c、f3.c三個(gè)文件保存到同一個(gè)文件夾中(如d:cproject)。f1.c:

#includestdio.hexterna,b;

externmax(intx,inty);main{inte

=1,f=2;

printf(%d,max(a,b));printf(%d,max(e,f));}f2.c:inta=3,b=4;f3.c:

intmax(intx,inty){returnxyx:

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論