第一篇:《高級語言程序設(shè)計(jì)C》實(shí)驗(yàn)教學(xué)大綱
《高級語言程序設(shè)計(jì)C》實(shí)驗(yàn)教學(xué)大綱
課程編號:1021742 總學(xué)時(shí):56學(xué)時(shí)
適用專業(yè):非計(jì)算機(jī)理工科各專業(yè) 總實(shí)驗(yàn)學(xué)時(shí):24 實(shí)驗(yàn)次數(shù): 12 次 應(yīng)開實(shí)驗(yàn)個(gè)數(shù):13 已開實(shí)驗(yàn)個(gè)數(shù):13 實(shí)驗(yàn)開出率:100%
實(shí)驗(yàn)一
熟悉C 程序的運(yùn)行環(huán)境
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:演示、驗(yàn)證
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.了解計(jì)算機(jī)系統(tǒng)對高級語言的基本操作方法
2.熟悉和了解Turbo C 系統(tǒng)軟件的使用和操作
3.能進(jìn)行簡單的C語言程序錄入、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.熟悉開機(jī)操作,使用單機(jī)或計(jì)算機(jī)上網(wǎng)。
2.進(jìn)入 Turbo C 系統(tǒng)。
3.熟悉Turbo C 系統(tǒng)各菜單命令的使用和操作
4.模仿簡單的源程序,編寫自己的小程序,并能運(yùn)行這些程序。
5.錄入、調(diào)試、編譯和運(yùn)行C語言程序
實(shí)驗(yàn)二
數(shù)據(jù)類型、表達(dá)式及輸入輸出函數(shù)實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1. 熟悉和了解C語言的數(shù)據(jù)類型
2. 使用C語言的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式
3.進(jìn)行簡單的C語言輸入輸出函數(shù)的使用,格式控制符的涵意,簡單C程序的設(shè)計(jì)、調(diào) 試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.編寫簡單的有輸入輸出的C程序,并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
3.編寫一個(gè)輸入三條邊,計(jì)算三角形面積的程序。
4.編寫程序,計(jì)算a+b×c÷d-d3,其中:a,b為整型變量,c,d為實(shí)型變量。
5.編寫一個(gè)有關(guān)數(shù)據(jù)計(jì)算程序,驗(yàn)證運(yùn)算符及表達(dá)式的結(jié)果。
6.可從布置的作業(yè)中,再任選一編程題,進(jìn)行上機(jī)。
實(shí)驗(yàn)三
順序程序結(jié)構(gòu)程序設(shè)計(jì)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.進(jìn)一步掌握C程序的編輯、編譯、連接和運(yùn)行的過程。2.熟悉順序結(jié)構(gòu)的程序設(shè)計(jì)方法。3.熟練使用C的各種表達(dá)式。
4.熟練掌握輸入、輸出函數(shù)的使用。
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.輸入x,y,編寫程序求z=x+|y|的值。實(shí)驗(yàn)步驟與要求:
(1)程序中用scanf函數(shù)輸入x和y的值,請分析以下兩個(gè)語句 scanf(“%f%f”,x,y);scanf(“%f%f”,&x,&y);
哪一個(gè)是正確的,分別運(yùn)行之,分析程序運(yùn)行結(jié)果。
(2)如果scanf函數(shù)改為scanf(“%f,%f”,&x,&y);應(yīng)該怎樣輸入數(shù)據(jù)。2.編寫輸入三角形的三邊長a、b、c,求三角形面積area的程序。實(shí)驗(yàn)步驟與要求:
(1)輸入前要加提示語句。
(2)輸出結(jié)果前要有必要的文字說明。(3)輸入一組數(shù)據(jù)3,4,5,觀察運(yùn)算結(jié)果。
(4)輸入另外一組數(shù)據(jù)3,4,8,觀察運(yùn)算結(jié)果,分析這個(gè)運(yùn)算結(jié)果是否有效。
實(shí)驗(yàn)四
分支控制語句實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言系統(tǒng)分支語句的使用和操作
2.進(jìn)行C語言分支控制語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行分支控制源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
3.編輯一個(gè)分支控制程序,求:任意輸入數(shù)(n>2)是否為素?cái)?shù)。
4.編輯一個(gè)分支控制程序,求:任意輸入3個(gè)數(shù),求其最大數(shù)。
實(shí)驗(yàn)五
循環(huán)語句實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言循環(huán)語句的使用和操作
2.進(jìn)行C語言循環(huán)語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行循環(huán)源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
3.編輯一個(gè)循環(huán)程序,求:1到100的和及平方和。
4.編輯一個(gè)循環(huán)程序,求:任意輸入10個(gè)數(shù),求其最大數(shù)。
5.可從布置的作業(yè)中,再任選一編程題,進(jìn)行上機(jī)。
實(shí)驗(yàn)六
數(shù)組實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言數(shù)組程序的設(shè)計(jì)方法
2.學(xué)會(huì)使用C語言數(shù)組進(jìn)行程序設(shè)計(jì)
3.進(jìn)行C語言數(shù)組語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行數(shù)組的定義和使用方法,即:一維和二維數(shù)組的應(yīng)用。
3.進(jìn)行數(shù)組語句源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
4.編輯數(shù)組應(yīng)用程序:
(1)任意輸入20個(gè)數(shù)在一維數(shù)組a中,求20個(gè)數(shù)的平均值。
(2)定義2個(gè)二維數(shù)組A[2][3]、B[2][3],分別對這2個(gè)數(shù)組輸入數(shù)據(jù),求A+B和A-B的值。
(3)用字符數(shù)組存儲任意輸入10字符,求其最大字符。
(4)編輯一個(gè)有5個(gè)學(xué)生,考 3門功課。求出每一個(gè)學(xué)生的總分及平均分,統(tǒng)計(jì)平均成績低于 60 分的學(xué)生人數(shù)。
5.可從布置的作業(yè)中,再任選一編程題,進(jìn)行上機(jī)。
實(shí)驗(yàn)七
有關(guān)數(shù)組的程序設(shè)計(jì)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.掌握有關(guān)數(shù)組和字符串的程序設(shè)計(jì)方法。
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟: 已知一組數(shù)據(jù)如下:6,3,42,23,35,71,98,67,56,38。編寫程序,把它們按 從小到大的次序排列起來。求2行3列矩陣A 的轉(zhuǎn)置矩陣。
實(shí)驗(yàn)八
函數(shù)實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言函數(shù)程序的設(shè)計(jì)方法。
2.學(xué)會(huì)使用C語言函數(shù)的定義及調(diào)用,并進(jìn)行程序編制。
3.進(jìn)行C語言函數(shù)語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行函數(shù)的定義及調(diào)用。
3.進(jìn)行函數(shù)語句源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
(1)任意輸入一個(gè)數(shù)n,用兩個(gè)子函數(shù)實(shí)現(xiàn)1+2+3?n以及n!,在主函數(shù)中輸出該結(jié)果。
(2)在主函數(shù)中定義二維數(shù)組A[3][4]、B[4],用子函數(shù)對數(shù)組A[3][4]每一行求和,其值放在數(shù)組B[4]中,在主函數(shù)中輸出該值。
(3)用字符數(shù)組存儲任意輸入的10字符,在子函數(shù)中把該字符數(shù)組的小寫字母轉(zhuǎn)換成大寫字母。
4.可從布置的作業(yè)中,再任選一編程題,進(jìn)行上機(jī)。
實(shí)驗(yàn)九
常用指針實(shí)驗(yàn)
(一)一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言指針一般設(shè)計(jì)方法
2.學(xué)會(huì)使用C語言指針進(jìn)行程序設(shè)計(jì)
3.進(jìn)行簡單C語言指針語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行C語言指針語句的定義和使用方法。
3.進(jìn)行C語言指針語句源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
4.編輯一個(gè)找出字串 str1中 str2出現(xiàn)的位置,用指針編程實(shí)現(xiàn)。
5.可從布置的作業(yè)中,再任選一編程題,進(jìn)行上機(jī)。
實(shí)驗(yàn)十
復(fù)雜指針實(shí)驗(yàn)
(二)一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.進(jìn)一步熟悉和了解C語言指針語句設(shè)計(jì)方法
2.進(jìn)行C語言中的指針與函數(shù)、指針數(shù)組、多級指針語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行C語言指針與函數(shù)、指針數(shù)組、多級指針語句的定義和使用方法。
3.進(jìn)行C語言該指針語句源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
4.編輯一個(gè)在主程序里輸入十個(gè)不等長的字串,調(diào)用自編的函數(shù)把它們按升序排列,用指針編程實(shí)現(xiàn)。
5.可從布置的作業(yè)中,再任選一題編程題,進(jìn)行上機(jī)。
實(shí)驗(yàn)十一
結(jié)構(gòu)類型實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言結(jié)構(gòu)、聯(lián)合數(shù)據(jù)的定義及設(shè)計(jì)方法
2.學(xué)會(huì)使用C語言結(jié)構(gòu)、聯(lián)合數(shù)據(jù)類型進(jìn)行程序設(shè)計(jì)
3.進(jìn)行C語言結(jié)構(gòu)、聯(lián)合語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行C語言結(jié)構(gòu)、聯(lián)合數(shù)據(jù)類型的定義和使用。
3.進(jìn)行C語言結(jié)構(gòu)、聯(lián)合數(shù)據(jù)類型源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
4.編輯一個(gè)能處理學(xué)生綜合信息的程序(包括:學(xué)號、姓名、班級、語文成績、數(shù)學(xué)成績、英語成績等)。
實(shí)驗(yàn)十二
有關(guān)結(jié)構(gòu)的程序設(shè)計(jì)
一、學(xué)時(shí):2(課后完成或選作)
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.掌握結(jié)構(gòu)體類型和結(jié)構(gòu)體變量的定義。2.掌握結(jié)構(gòu)類型變量的定義和使用;
3.掌握鏈表的概念,初步學(xué)會(huì)對鏈表進(jìn)行操作;
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.有五個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號,姓名,三門課的成績,從鍵盤輸入五個(gè)學(xué)生的數(shù)據(jù),要求打印出每個(gè)學(xué)生的平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號,姓名,三門課的成績,平均分?jǐn)?shù))。實(shí)驗(yàn)步驟與要求:
用一個(gè)函數(shù)輸入五個(gè)學(xué)生的數(shù)據(jù);用一個(gè)函數(shù)求總平均分;用函數(shù)找出最高分學(xué)生數(shù)據(jù),總平均分和最高分的學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。
2.三個(gè)人圍成一圈,從第一個(gè)人開始順序報(bào)號1,2,3。凡報(bào)到“3”者退出圈子,找出最后流在圈子中的人原來的序號。
3.建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號,姓名,性別,年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。
實(shí)驗(yàn)十三
文件實(shí)驗(yàn)
一、學(xué)時(shí):2
二、實(shí)驗(yàn)類型:驗(yàn)證、設(shè)計(jì)
三、實(shí)驗(yàn)?zāi)康暮椭饕獌?nèi)容:
1.熟悉和了解C語言文件系統(tǒng)的組成及設(shè)計(jì)方法。
2.學(xué)會(huì)使用C語言文件系統(tǒng)進(jìn)行程序設(shè)計(jì)
3.進(jìn)行C語言文件語句的設(shè)計(jì)、調(diào)試、編譯和運(yùn)行
四、需用儀器、設(shè)備:
1.硬件環(huán)境
PC-486以上微機(jī)
32M以上的內(nèi)存
VGA顯卡
2.軟件環(huán)境
西文DOS操作系統(tǒng)(可使用UCDOS漢字操作系統(tǒng))或Windows操作系統(tǒng)
Turbo C(2.0版)
五、實(shí)驗(yàn)方法及步驟:
1.進(jìn)入 Turbo C 系統(tǒng)。
2.進(jìn)行C語言文件系統(tǒng)類型的定義和使用。
3.進(jìn)行C語言文件系統(tǒng)類型源程序的設(shè)計(jì),并進(jìn)行該程序的運(yùn)行、調(diào)試、編譯。
4.編輯程序。
(1)用數(shù)組存儲10個(gè)數(shù)據(jù),并存儲在“date.dat”文件中
(2)對存儲在“date.dat”文件中的數(shù)據(jù)讀入到一個(gè)數(shù)組中,求出總和及最大值,并把它存儲在“dsum.dat”文件中
第二篇:高級語言程序設(shè)計(jì)(C語言)實(shí)驗(yàn)教學(xué)大綱
信息技術(shù)系《高級語言程序設(shè)計(jì)》實(shí)驗(yàn)教學(xué)大綱
一、教材名稱:<
二、課程總學(xué)時(shí):108學(xué)時(shí) [理論: 72 學(xué)時(shí);實(shí)驗(yàn)與上機(jī):36學(xué)時(shí)]
三、適用專業(yè)和開課學(xué)期:軟件技術(shù)專業(yè),第2學(xué)期。
四、實(shí)驗(yàn)的目的與任務(wù):
《C程序設(shè)計(jì)》是一門實(shí)踐性很強(qiáng)的課程。通過實(shí)驗(yàn)使學(xué)生加深對課堂講授的概念、語法、算法、編程技術(shù)的理解;熟悉C程序設(shè)計(jì)的開發(fā)環(huán)境;掌握程序設(shè)計(jì)和調(diào)試的基本技能。并通過實(shí)踐激發(fā)學(xué)生進(jìn)一步學(xué)習(xí)的積極性,培養(yǎng)學(xué)生的學(xué)習(xí)興趣和創(chuàng)新思維。通過8個(gè)實(shí)驗(yàn),使學(xué)生經(jīng)過一定數(shù)量的上機(jī)訓(xùn)練,了解和掌握C程序設(shè)計(jì)的環(huán)境、程序的數(shù)據(jù)表示、程序的執(zhí)行流程控制、程序的整體結(jié)構(gòu)等C程序設(shè)計(jì)的基本概念和應(yīng)用技術(shù)。
五、主要儀器設(shè)備及臺(套)數(shù)
安裝Windowsxp,TC2.0等軟件的計(jì)算機(jī),每生一臺。
六、主要實(shí)驗(yàn)教材(指導(dǎo)書)及參考用書:
譚浩強(qiáng)主編,《C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)》,清華大學(xué)出版社。
七、成績考核方式及評分標(biāo)準(zhǔn)
實(shí)驗(yàn)占課程總課時(shí)1/3,每項(xiàng)實(shí)驗(yàn)按該實(shí)驗(yàn)說明要求規(guī)定的評分標(biāo)準(zhǔn)積分,學(xué)期末合計(jì)的實(shí)驗(yàn)成績占課程總成績的18%。
八、實(shí)驗(yàn)開出率:100%
九、實(shí)驗(yàn)項(xiàng)目與要求
實(shí)驗(yàn)一:C程序的運(yùn)行環(huán)境和運(yùn)行一個(gè)C程序的方法(2學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):驗(yàn)證性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。2.了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。3.通過運(yùn)行簡單的C程序,初步了解C源程序的特點(diǎn)。
二、實(shí)驗(yàn)內(nèi)容
1.調(diào)用編輯程序,輸入教材第一章例1.1程序,并進(jìn)行編譯和運(yùn)行。應(yīng)了解所用的系統(tǒng)是用什么命令進(jìn)行編譯和連接運(yùn)行的。編譯和連接后所得到的目標(biāo)程序的后綴是什么形式的?
2.輸入并運(yùn)行教材第一章中例1.2。
3.輸入并運(yùn)行教材第一章中例1.3,了解如何在運(yùn)行時(shí)向程序變量輸入數(shù)據(jù)。
實(shí)驗(yàn)二 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式(2學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):驗(yàn)證性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握C語言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型、實(shí)型變量,以及對它們賦值的方法,了解以上類型數(shù)據(jù)輸出時(shí)所用格式轉(zhuǎn)換符。
2.學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(++)和自減(--)運(yùn)算符的使用。
3.進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。
二、實(shí)驗(yàn)內(nèi)容
1.輸入并運(yùn)行教材第三章例3.6.即: #include
printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基礎(chǔ)上 ①將第二行改為: int c1,c2;再使之運(yùn)行,分析結(jié)果。②再將第三行、第四行改為: c1=300;c2=400;再使之運(yùn)行,分析其運(yùn)行結(jié)果。
2.輸入并運(yùn)行教材第三章習(xí)題3.6,在上機(jī)前先用人工分析程序?qū)懗鰬?yīng)得結(jié)果,上機(jī)后將二者對照。
3.輸入并運(yùn)行習(xí)題3.10。即: #include
printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改為: 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”,i,j,m,n);}
實(shí)驗(yàn)三 最簡單的C程序設(shè)計(jì)(2學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):驗(yàn)證性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握C語言中使用最多的一種語句—賦值語句的使用。2.掌握數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。
二、實(shí)驗(yàn)內(nèi)容
1.輸入并運(yùn)行以下程序:
#include
void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;
unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;
f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基礎(chǔ)上,做以下改動(dòng): ① 將程序第8-13行改為: a=61;b=62; c1=a;c2=b;
f=3157.890121;g=0.123456789; d=f;e=g;
p=a=m=50000;q=b=n=-60000; 運(yùn)行程序,分析結(jié)果。
② 在①的基礎(chǔ)上將printf語句改為:
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);
printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 運(yùn)行程序。
2.編寫程序,用getchar函數(shù)讀入兩個(gè)字符c1、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個(gè)字符。
上機(jī)運(yùn)行程序,比較用printf和putchar函數(shù)輸出字符的特點(diǎn)。
實(shí)驗(yàn)四 選擇結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.了解C語言表示邏輯量的方法(以0代表“假”,以1代表“真”); 2.學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式; 3.熟練掌握if語句和switch語句。
二、實(shí)驗(yàn)內(nèi)容
先編程序,解決以下問題,然后上機(jī)調(diào)試運(yùn)行程序。1.有一個(gè)函數(shù) ?x?y??2x?1?3x?11?x?11?x?10 x?10用scanf函數(shù)輸入x的值(分別為x<1、1~
10、≥10三種情況),求y值。2.給出一個(gè)百分制成績,要求輸出成績等級‘A’,‘B’,‘C’,‘D’,‘E’。90分以上為‘A’,80~89分為‘B’,70~79分為‘C’,60~69分為‘D’,60分以下為‘E’。
實(shí)驗(yàn)五 循環(huán)控制(4學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉用while語句,do-while語句和for語句實(shí)現(xiàn)循環(huán)的方法。2.掌握在程序設(shè)計(jì)中用循環(huán)的方法實(shí)現(xiàn)各種算法(如窮舉、迭代、遞推等)。
二、實(shí)驗(yàn)內(nèi)容
編程序并上機(jī)調(diào)試運(yùn)行。
1.輸入兩個(gè)正整數(shù),求其中最大公約數(shù)和最小公倍數(shù)。2.用牛頓迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
實(shí)驗(yàn)六 數(shù)組(4學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法; 2.掌握字符數(shù)組和字符串函數(shù)的使用。3.掌握與數(shù)組有關(guān)的算法(特別是排序算法)。
二、實(shí)驗(yàn)內(nèi)容
編程序并上機(jī)調(diào)試運(yùn)行。
1.用選擇法對10個(gè)整數(shù)排序。10個(gè)整數(shù)用scanf函數(shù)輸入。2.將兩個(gè)字符串連接起來,不要用strcat函數(shù)。實(shí)驗(yàn)七 函數(shù)(4學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握定義函數(shù)的方法;
2.掌握函數(shù)實(shí)參與形參的對應(yīng)關(guān)系,以及“值傳遞”的方式; 3.掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法;
4.掌握全局變量和局部變量,動(dòng)態(tài)變量和靜態(tài)變量的概念和使用方法。
二、實(shí)驗(yàn)內(nèi)容
編程序并上機(jī)調(diào)試運(yùn)行。
1.寫一個(gè)判斷素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否是素?cái)?shù)的信息。2.求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用一個(gè)函數(shù)求最大公約數(shù)。用另一函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。
(1)用全局變量的方法。將兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù)都設(shè)為全局變量。
(2)不用全局變量,兩個(gè)整數(shù)在主函數(shù)中輸入,并傳送給函數(shù)1,求出的最大公約數(shù)返回主函數(shù),然后再與兩個(gè)整數(shù)一起作為實(shí)參傳遞給函數(shù)2,以求出最小公倍數(shù),返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。
實(shí)驗(yàn)八 預(yù)處理命令(2學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握宏定義的方法; 2.掌握文件包含處理方法; 3.掌握條件編譯的方法。
二、實(shí)驗(yàn)內(nèi)容
編程序并上機(jī)調(diào)試運(yùn)行。
1.定義一個(gè)帶參數(shù)的宏,使兩個(gè)參數(shù)的值互換。在主函數(shù)中輸入兩個(gè)數(shù)作為使用宏的實(shí)參,輸出已交換后的兩個(gè)值。
說明:在程序主函數(shù)使用宏時(shí)只能用兩個(gè)實(shí)參,如SWAP(a,b),不能用三個(gè)參數(shù)。2.用條件編譯方法實(shí)現(xiàn)以下功能:
輸入一行電報(bào)文字,可以任選兩種輸出,一為原文輸出;一為將字母變成其下字母(如‘a(chǎn)’變成‘b’,?,‘z’變成‘a(chǎn)’。其它字符不變)。用#define命令來控制是否要譯成密碼。例如: #define CHANGE 1 則輸出密碼。若 #define CHANGE 0 則不譯成密碼,按原碼輸出。用條件編譯方法來處理。
實(shí)驗(yàn)九 指針(4學(xué)時(shí))
實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握指針的概念,會(huì)定義和使用指針變量; 2.學(xué)會(huì)使用數(shù)組的指針和指向數(shù)組的指針變量; 3.學(xué)會(huì)使用字符串的指針和指向字符串的指針變量; 4.學(xué)會(huì)使用指向函數(shù)的指針變量;
二、實(shí)驗(yàn)內(nèi)容
編程序并上機(jī)調(diào)試運(yùn)行程序(都要求用指針處理)。1.輸入三個(gè)整數(shù),按由小到大的順序輸出。
2.將一個(gè)3*3的矩陣轉(zhuǎn)置,用一函數(shù)實(shí)現(xiàn)之。在主函數(shù)中用scanf函數(shù)輸入以下矩陣元素:
?1? ?7??1339155??11 ?19??將數(shù)組名作為函數(shù)實(shí)參。函數(shù)調(diào)用后在主函數(shù)中輸出已轉(zhuǎn)置的矩陣。3.用一個(gè)函數(shù)實(shí)現(xiàn)兩個(gè)字符串的比較,即自己寫一個(gè)strcmp函數(shù): strcmp(s1,s2)如果s1=s2,則函數(shù)返回值為0;如果s1≠s2,返回它們二者第一個(gè)不同字符的ASCII碼差值(如“BOY”與“BAD”,第二個(gè)字母不同,“O”與“A”之差為79-65=14);如果s1>s2,則輸出正值;如s1 兩個(gè)字符串s1,s2由main函數(shù)輸入,strcmp函數(shù)的返回值也在main函數(shù)輸出。 實(shí)驗(yàn)十 結(jié)構(gòu)體和共用體(4學(xué)時(shí)) 實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握結(jié)構(gòu)體類型變量的定義和使用; 2.掌握結(jié)構(gòu)體類型數(shù)組的概念和應(yīng)用; 3.掌握共用體的概念與使用。 二、實(shí)驗(yàn)內(nèi)容 編程序,然后上機(jī)調(diào)試運(yùn)行。 1.有5個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、三門課的成績,從鍵盤輸入5個(gè)學(xué)生數(shù)據(jù),要求打印出三門課總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、三門課的成績、平均分?jǐn)?shù))。 要求用一個(gè)input函數(shù)輸入5個(gè)學(xué)生數(shù)據(jù);用一個(gè)average函數(shù)求總平均分;用max函數(shù)找出最高分學(xué)生數(shù)據(jù);總平均分和最高分的學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。 2.輸入和運(yùn)行以下程序: #include union data {int i[2]; float a; long b; char c[4]; }; void main(){union data u; scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 輸入兩個(gè)整數(shù)10000、20000給u.i[0]和u.i[1]。分析運(yùn)行結(jié)果。 然后將scanf語句改為: scanf(“%ld”,&u.b); 輸入60000給b。分析運(yùn)行結(jié)果。 實(shí)驗(yàn)十一 位運(yùn)算(1學(xué)時(shí)) 實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握位運(yùn)算的概念和方法,學(xué)會(huì)使用位運(yùn)算符; 2.學(xué)會(huì)通過位運(yùn)算實(shí)現(xiàn)對某些位的操作。 二、實(shí)驗(yàn)內(nèi)容 編寫程序,上機(jī)調(diào)試并運(yùn)行。 1.設(shè)計(jì)一個(gè)函數(shù),使給出一個(gè)數(shù)的原碼,能得到該數(shù)的補(bǔ)碼,用八進(jìn)制形式輸入和輸出。 實(shí)驗(yàn)十二 文件(1學(xué)時(shí)) 實(shí)驗(yàn)性質(zhì):設(shè)計(jì)性實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握文件以及緩沖文件系統(tǒng)、文件指針的概念; 2.學(xué)會(huì)使用文件打開、關(guān)閉、讀、寫等文件操作函數(shù)。3.學(xué)會(huì)用緩沖文件系統(tǒng)對文件進(jìn)行簡單的操作。 二、實(shí)驗(yàn)內(nèi)容 1.從鍵盤輸入一個(gè)字符,將其中的小寫字母全部轉(zhuǎn)換成大寫字母,然后輸出到一個(gè)磁盤文件“test”中保存。輸入的字符以“!”結(jié)束。實(shí)驗(yàn)十三 學(xué)生成績管理(4學(xué)時(shí)) 實(shí)驗(yàn)性質(zhì):綜合性設(shè)計(jì)性實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?/p> 1.綜合運(yùn)用C程序設(shè)計(jì)知識,解決實(shí)際問題。 二、實(shí)驗(yàn)內(nèi)容 1.有5個(gè)學(xué)生,每個(gè)學(xué)生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號、姓名、三門課成績),計(jì)算出平均成績,將原有數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件“stud”中。 2.將上題“stud”文件中的學(xué)生數(shù)據(jù),按平均分進(jìn)行排序處理,將已排序的學(xué)生數(shù)據(jù)存入一個(gè)新文件“stu-sort”中。 3.將上題已排序的學(xué)生成績文件進(jìn)行插入處理。插入一個(gè)學(xué)生的三門課成績。程序先計(jì)算新插入學(xué)生的平均成績,然后將它按成績高低順序插入,插入后建立一個(gè)新文件。 學(xué)生的原有數(shù)據(jù)為: 91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的學(xué)生數(shù)據(jù)為: 91108 Xin 90,95,60 制 訂:程世輝 教研室:軟件教研室 執(zhí)筆人:程世輝 審定人: 二00七年八月 《C語言程序設(shè)計(jì)實(shí)驗(yàn)》教學(xué)大綱 一、本大綱編寫的依據(jù)是《C語言程序設(shè)計(jì)》教學(xué)大綱。實(shí)驗(yàn)總學(xué)時(shí):32學(xué)時(shí) 學(xué)分:1學(xué)分 二、適用專業(yè):全院C語言公共課 三、考核方式及評定標(biāo)準(zhǔn): 實(shí)驗(yàn)操作能力50%,實(shí)驗(yàn)報(bào)告50% 四、配套的實(shí)驗(yàn)教材或自編指導(dǎo)書: 《C語言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)》 五、實(shí)驗(yàn)項(xiàng)目概述與學(xué)時(shí)分配: 實(shí)驗(yàn)一:C語言開發(fā)環(huán)境與輸入輸出(4學(xué)時(shí)) (一)實(shí)驗(yàn)類型:演示性 (二)實(shí)驗(yàn)類別:學(xué)科基礎(chǔ) (三)每組人數(shù):1人 (四)實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)?zāi)芰σ螅?/p> 1.學(xué)習(xí)Turbo C2.0集成環(huán)境,掌握源程序編輯方法; 2.掌握在Turbo C2.0集成開發(fā)環(huán)境中編譯、調(diào)試與運(yùn)行程序的方法; 3.通過運(yùn)行簡單的C語言程序,初步了解C語言源程序的特點(diǎn)。 (五)實(shí)驗(yàn)內(nèi)容: 1.設(shè)計(jì)一個(gè)C語言程序,輸出以下信息: *************** Hello! *************** 2.設(shè)計(jì)一個(gè)程序,從鍵盤輸入一個(gè)圓的半徑,求其周長和面積。 3.設(shè)計(jì)一個(gè)程序,從鍵盤輸入一個(gè)小寫字母,將它轉(zhuǎn)換成大寫字母輸出。4.輸入一個(gè)華氏溫度,要求輸出攝氏溫度。公式是:C=(5/9)*(F-32)。5.輸入一個(gè)球的半徑,求其表面積和體積。(S= 4πr2,V= 4πR3/3)。 (六)主要儀器設(shè)備: 1.計(jì)算機(jī):CPU: Pentium III 600MHz以上 RAM:256M以上 硬盤空間:4G以上 2.操作系統(tǒng): Windows2000、WindowsXP、Windows2003 任選其一 3.軟件要求:Turbo C2.0 (七)所在實(shí)驗(yàn)室:計(jì)算機(jī)實(shí)驗(yàn)室 實(shí)驗(yàn)二:程序流程控制應(yīng)用(6學(xué)時(shí)) (一)實(shí)驗(yàn)類型:驗(yàn)證性 (二)實(shí)驗(yàn)類別:學(xué)科基礎(chǔ) (三)每組人數(shù):1人 (四)實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)?zāi)芰σ螅?/p> 1.掌握Turbo C2.0集成環(huán)境中的單步執(zhí)行; 2.熟悉if 與switch語句的格式、執(zhí)行過程、使用方法及典型案例; 3.學(xué)會(huì)使用選擇結(jié)構(gòu)解決一般的實(shí)際問題,能編寫簡單的應(yīng)用程序。 4.掌握循環(huán)結(jié)構(gòu)while、do-while、for等語句格式、執(zhí)行過程、使用方法及典型案例。 5.學(xué)習(xí)循環(huán)結(jié)構(gòu)的嵌套使用。6.掌握分支與循環(huán)綜合程序的編寫方法; 7.學(xué)習(xí)并熟悉break、continue的區(qū)別與使用。8.學(xué)會(huì)常用數(shù)值與圖形的編程方法。 (五)實(shí)驗(yàn)內(nèi)容: 1.由鍵盤輸入三個(gè)數(shù),判斷能否構(gòu)成三角形。 2.某商店“五·一”長假期間購物打折。規(guī)則如下: 若每位顧客一次購物,①滿1000元,打九折; ②滿2000元,打八折; ③滿3000元,打七折; ④滿4000元,打六折; ⑤5000元,打五折; 編寫程序,輸入購物款,輸出實(shí)收款。3.有下列分段函數(shù): 編一程序,輸入x,輸出y的值。4.計(jì)算:S=1+2+3+4+?+n。 5.裴波那契數(shù)列的前幾個(gè)數(shù)為1,1,2,3,5,8,??,其規(guī)律為: 6.求出100~200之間的所有素?cái)?shù),輸出時(shí)一行打印五個(gè)素?cái)?shù)。7.編寫程序用公式計(jì)算e的近似值。直到最后一項(xiàng)小于給定精度。8.從鍵盤輸入任意多個(gè)整數(shù)(-999為結(jié)束標(biāo)志),計(jì)算其中正數(shù)之和。9.求π近似值的公式為: 其中,n=1、2、3?設(shè)計(jì)一個(gè)程序,求出當(dāng)n=1000時(shí)的π的近似值。 (六)主要儀器設(shè)備: 1.計(jì)算機(jī):CPU: Pentium III 600MHz以上 RAM:256M以上 硬盤空間:4G以上 2.操作系統(tǒng): Windows2000、WindowsXP、Windows2003 任選其一 3.軟件要求:Turbo C2.0 (七)所在實(shí)驗(yàn)室:計(jì)算機(jī)實(shí)驗(yàn)室 實(shí)驗(yàn)三:函數(shù)與宏定義的應(yīng)用(6學(xué)時(shí)) (一)實(shí)驗(yàn)類型:驗(yàn)證性 (二)實(shí)驗(yàn)類別:學(xué)科基礎(chǔ) (三)每組人數(shù):1人 (四)實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)?zāi)芰σ螅?/p> 1.了解函數(shù)的定義方法,理解函數(shù)的調(diào)用; 2.初步掌握函數(shù)的遞歸、嵌套調(diào)用; 3.掌握函數(shù)調(diào)用的實(shí)參與形參的傳遞。 (五)實(shí)驗(yàn)內(nèi)容: 1.編寫一個(gè)函數(shù),用遞歸的方法求1+2+3+4+?+n的值。在主函數(shù)中進(jìn)行輸入輸出。 mc2.編寫程序,輸入m和n(n>m),求n的值。3.編寫程序,求兩個(gè)自然數(shù)m和n的最大公約數(shù)和最小公倍數(shù)。4.分別輸入整數(shù)半徑和實(shí)數(shù)半徑,使用函數(shù)重載計(jì)算圓的面積。5.使用內(nèi)聯(lián)函數(shù)計(jì)算長方形的面積。6.用函數(shù)調(diào)用方法打印九九表乘法。 (六)主要儀器設(shè)備: 1.計(jì)算機(jī): CPU: Pentium III 600MHz以上 RAM:256M以上 硬盤空間:4G以上 2.操作系統(tǒng): Windows2000、WindowsXP、Windows2003 任選其一 3.軟件要求:Turbo C2.0 (七)所在實(shí)驗(yàn)室:計(jì)算機(jī)實(shí)驗(yàn)室 實(shí)驗(yàn)四:數(shù)組的應(yīng)用(8學(xué)時(shí)) (一)實(shí)驗(yàn)類型:驗(yàn)證性 (二)實(shí)驗(yàn)類別:學(xué)科基礎(chǔ) (三)每組人數(shù):1人 (四)實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)?zāi)芰σ螅?/p> 1.掌握一維數(shù)組、二維數(shù)組、字符數(shù)組的定義、初始化賦值、數(shù)組元素的引用方法; 2.掌握求最大、小值、平均值、排序的方法以及有序數(shù)組的查找、增加、刪除的編程方法; 3.初步掌握字符串處理函數(shù)的使用方法以及字符串復(fù)制、連接、測長等程序的編寫方法; 4.掌握數(shù)組的典型應(yīng)用。 (五)實(shí)驗(yàn)內(nèi)容: 1.應(yīng)用一維數(shù)組,對10個(gè)數(shù)進(jìn)行冒泡排序,使其按照從大到小的順序輸出。2.應(yīng)用二維數(shù)組打印5行楊輝三角形。 3.從鍵盤輸入兩個(gè)字符串,將它們連接成一個(gè)字符串。4.編程序?qū)⑤斎氲淖址畡h去空格后輸出。5.編程實(shí)現(xiàn)將一十進(jìn)制整數(shù)M轉(zhuǎn)換為D進(jìn)制數(shù)。(選做)6.已知一int a[20]數(shù)組,編程將值為偶數(shù)的元素移到數(shù)組前端,值為奇數(shù)的元素移到數(shù)組后端。(要求元素比較、移動(dòng)次數(shù)盡量最少) (選做)7.某班有10個(gè)學(xué)生,進(jìn)行了“數(shù)學(xué)”、“語文”、“英語”、“C語言”等科目的考試,編寫程序: (1)將考試成績輸入一個(gè)二維數(shù)組;(2)求每門課的平均成績、每門課的不及格學(xué)生的人數(shù)及每門課的最高分與最低分;(3)求每個(gè)學(xué)生的平均成績、總分、不及格門數(shù);(4)按學(xué)生平均成績的高低排序并輸出。 8.設(shè)計(jì)一個(gè)程序,打印楊輝三角形。(使用其它方法) (選做)9.編寫程序,實(shí)現(xiàn)str=str1+str2的操作,此處運(yùn)算符“+”表示將二個(gè)字符串str1、str2連接成一個(gè)字符串str。用鍵盤將二個(gè)字符串輸入字符數(shù)組str1與str2中,連接后的字符串存放在字符數(shù)組str中,并輸出連接后的字符串str。 (六)主要儀器設(shè)備: 1.計(jì)算機(jī):CPU: Pentium III 600MHz以上 RAM:256M以上 硬盤空間:4G以上 2.操作系統(tǒng): Windows2000、WindowsXP、Windows2003 任選其一 3.軟件要求:Turbo C2.0 (七)所在實(shí)驗(yàn)室:計(jì)算機(jī)實(shí)驗(yàn)室 實(shí)驗(yàn)五:指針的應(yīng)用(8學(xué)時(shí)) (一)實(shí)驗(yàn)類型:驗(yàn)證性 (二)實(shí)驗(yàn)類別:學(xué)科基礎(chǔ) (三)每組人數(shù):1人 (四)實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)?zāi)芰σ螅?/p> 1. 理解指針的基本概念和運(yùn)算 2. 掌握指針與數(shù)組、指針與函數(shù)、指向字符串的指針的應(yīng)用 3. 掌握多重指針的概念和基本應(yīng)用 (五)實(shí)驗(yàn)內(nèi)容: 1.輸入3個(gè)數(shù)a,b,c,按小到大順序輸出。要求利用指針方法實(shí)現(xiàn)。 2.用返回指針類型函數(shù)實(shí)現(xiàn)字符串連接函數(shù)strcat(),通過1)輸入字符串s1和s2進(jìn)行測試,2)將字符串“string”作為參數(shù)與s1和s2的連接后的結(jié)果調(diào)用函數(shù)strcat()實(shí)現(xiàn)連接。 3.寫一個(gè)函數(shù),該函數(shù)從主程序接受一個(gè)字符串,將字符串中的數(shù)字和其它字符分開,形成二個(gè)字符串輸出。 4.編一程序,實(shí)現(xiàn)計(jì)算器的功能,使得在操作系統(tǒng)下可以通過如下形式實(shí)現(xiàn)操作 calc 4 + 5 calc 3.7 * 7.9 (六)主要儀器設(shè)備: 1.計(jì)算機(jī): CPU: Pentium III 600MHz以上 RAM:256M以上 硬盤空間:4G以上 2.操作系統(tǒng): Windows2000、WindowsXP、Windows2003 任選其一 3.軟件要求:Turbo C2.0 (七)所在實(shí)驗(yàn)室:計(jì)算機(jī)實(shí)驗(yàn)室 《C語言程序設(shè)計(jì)》實(shí)驗(yàn)教學(xué)大綱 課程名稱:C語言程序設(shè)計(jì) 課程屬性:必修(限選) 實(shí)驗(yàn)屬性:獨(dú)立設(shè)課 適用專業(yè):光伏發(fā)電技術(shù)及應(yīng)用、光伏材料加工與應(yīng)用技術(shù)、新能源應(yīng)用專業(yè) 學(xué)時(shí):(實(shí)驗(yàn)學(xué)時(shí) 34) 應(yīng)開實(shí)驗(yàn)學(xué)期:第二學(xué)期 應(yīng)開實(shí)驗(yàn)項(xiàng)目數(shù): 實(shí)驗(yàn)類型:綜合性、驗(yàn)證性 一、本門課程實(shí)驗(yàn)的目的與要求 通過實(shí)驗(yàn),加深學(xué)生對C語言的理解,掌握數(shù)據(jù)類型、模塊化程序設(shè)計(jì)、指針、數(shù)組、指針及結(jié)構(gòu)體、共用體和枚舉類型的定義及使用,會(huì)寫選擇型程序、循環(huán)型程序,要求學(xué)完本門課程后,可編寫C語言小程序。 上機(jī)實(shí)驗(yàn)是學(xué)習(xí)C語言程序設(shè)計(jì)的重要環(huán)節(jié)。通過實(shí)驗(yàn),學(xué)習(xí)C語言的特點(diǎn)和方法;理解計(jì)算機(jī)程序的執(zhí)行過程;掌握用計(jì)算機(jī)解決問題的方法和基本的程序設(shè)計(jì)技術(shù);學(xué)會(huì)程序的調(diào)試方法。 二、實(shí)踐形式和實(shí)踐環(huán)境要求 1、實(shí)踐形式:課內(nèi)實(shí)驗(yàn)。 2、實(shí)驗(yàn)環(huán)境要求:每人一臺電腦,安裝有(Turbo C 2.0,C++環(huán)境)的實(shí)驗(yàn)室環(huán)境條件。 三、實(shí)踐總學(xué)時(shí)和實(shí)踐資料 1、總學(xué)時(shí):34學(xué)時(shí)。 2、資料:按自編實(shí)驗(yàn)指導(dǎo)書相關(guān)內(nèi)容進(jìn)行實(shí)踐。 四、考核與成績評定 本課程實(shí)驗(yàn)考核由各分階段實(shí)驗(yàn)報(bào)告、期末實(shí)訓(xùn)兩大部分組成。各分階段實(shí)驗(yàn)報(bào)告占總成績的60%,期末考核占總成績的40%。 五、實(shí)踐任務(wù)與學(xué)時(shí)分配 實(shí)驗(yàn)一C程序上機(jī)操作方法及運(yùn)行環(huán)境 (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。 2、了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。 3、通過運(yùn)行簡單的C程序,初步了解C程序的特點(diǎn)。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)二數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握C語言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型和實(shí)型的變量,以及對它們賦值的方法。 2、掌握不同的數(shù)據(jù)類型之間賦值的規(guī)律。 3、學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加和自減運(yùn)算符的使用。 4、進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)三順序結(jié)構(gòu)程序設(shè)計(jì) (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握字符型數(shù)據(jù)與整型數(shù)據(jù)如何通用及賦值語句的使用方法。 2、掌握各種類型數(shù)據(jù)的輸入輸出函數(shù)的應(yīng)用方法。 3、掌握順序結(jié)構(gòu)程序的編寫過程。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0環(huán)境)。 實(shí)驗(yàn)四選擇結(jié)構(gòu)程序設(shè)計(jì) (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握關(guān)系運(yùn)算符和邏輯運(yùn)算符的使用方法及其表達(dá)式的應(yīng)用。 2、掌握分支語句的使用。 3、結(jié)合程序掌握一些簡單的算法。 4、學(xué)習(xí)調(diào)試程序。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)五循環(huán)結(jié)構(gòu)程序設(shè)計(jì) (一)(一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握循環(huán)次數(shù)不確定的循環(huán)程序設(shè)計(jì)方法。 2、掌握如何用break語句退出循環(huán)。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)六循環(huán)結(jié)構(gòu)程序設(shè)計(jì) (二)(一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握循環(huán)次數(shù)確定的循環(huán)結(jié)構(gòu)程序及雙重循環(huán)結(jié)構(gòu)程序的設(shè)計(jì)思路。 2、掌握循環(huán)控制變量的取值范圍的確定。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)七數(shù)組的應(yīng)用 (一)(一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握一維數(shù)組的定義及應(yīng)用,主要注意其下標(biāo)從0開始及下標(biāo)越界問題。 2、掌握數(shù)組在循環(huán)的控制下其下標(biāo)的靈活變化。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)八數(shù)組的應(yīng)用 (二)(一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握數(shù)組的定義、數(shù)組元素的引用及數(shù)組的初始化。 2、掌握字符數(shù)組的定義、數(shù)組元素的引用及對字符數(shù)組的初始化。 3、在綜合應(yīng)用中的具體體現(xiàn)。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境))。 實(shí)驗(yàn)九函數(shù) (一)(一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握函數(shù)的定義、說明和調(diào)用方法。 2、理解return語句的作用和使用方法。 3、掌握函數(shù)調(diào)用過程中“傳值”和“傳址”方法的特性、使用及區(qū)別。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)十函數(shù) (二)(一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握函數(shù)的定義、說明和調(diào)用方法。 2、理解return語句的作用和使用方法。 3、掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的定義及編制方法。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)十一編譯預(yù)處理 (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握簡單的宏定義和帶參數(shù)宏的定義及其應(yīng)用,并理解宏展開實(shí)質(zhì)。 2、掌握文件包含和條件編譯的應(yīng)用。 3、清楚帶參的宏和函數(shù)的差異。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)十二指針 (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握指針的概念,指針變量的定義和使用。 2、會(huì)使用指向數(shù)組的指針。 3、會(huì)使用指向字符串的指針。 4、掌握指針型函數(shù)和指向函數(shù)的指針。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)十三結(jié)構(gòu)體、共用體 (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握結(jié)構(gòu)體類型的說明和結(jié)構(gòu)體變量的定義。 2、掌握結(jié)構(gòu)體變量成員的引用和對結(jié)構(gòu)體變量的初始化。 3、掌握結(jié)構(gòu)體數(shù)組的定義及使用。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0環(huán)境)。 實(shí)驗(yàn)十四文件 (一)實(shí)驗(yàn)?zāi)康呐c要求: 1、掌握文件以及緩沖文件系統(tǒng)、文件指針的概念。 2、學(xué)會(huì)使用文件打開、關(guān)閉、讀、寫等文件操作函數(shù)。 3、學(xué)會(huì)用緩沖文件系統(tǒng)對文件進(jìn)行簡單的操作。 (二)參考學(xué)時(shí):2 (三)實(shí)驗(yàn)環(huán)境::計(jì)算機(jī)機(jī)房(Turbo C 2.0,C++環(huán)境)。 實(shí)驗(yàn)一 C語言的運(yùn)行環(huán)境和基礎(chǔ)知識 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握c程序設(shè)計(jì)編程環(huán)境visual c++,掌握運(yùn)行一個(gè)c程序設(shè)計(jì)的基本步驟,包括編輯、編譯、連接和運(yùn)行。 2.熟練掌握Visual C++ 6.0環(huán)境運(yùn)行的C程序上機(jī)步驟 3.數(shù)據(jù)類型、常量和變量的使用 4.表達(dá)式及運(yùn)算符的應(yīng)用 5.C程序的調(diào)試。 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 1、最簡單的C程序。(要求文件名:1_1.c)#include printf(“Hello world!n”);return 0;} 2、一個(gè)具有致命錯(cuò)誤的程序,請修改。(要求文件名:1_2.c)#include printf(“i=%dn”,i); return 0;} 3、一個(gè)具有警告語法錯(cuò)的程序。(要求文件名:1_3.c)#include s=i+j;printf(“s=%dn”,s);return 0;} 4、寫出一個(gè)程序測試整型、字符型數(shù)據(jù)表示,并輸出以驗(yàn)證是否正確。(要求文件名:1_4.c)#include int x=010,y=10,z=0x10; /* 整型數(shù)據(jù)表示 */ char c1='M',c2='x4d',c3='115',c4=77,c; /* 字符型數(shù)據(jù)表示 */ /* 整型數(shù)據(jù)的輸出 */ printf(“x=%o,y=%d,z=%xn”,x,y,z); /* 數(shù)據(jù)以原進(jìn)制輸出,注意是否有前導(dǎo)0或0x */ printf(“x=%d,y=%d,z=%dn”,x,y,z); /* 數(shù)據(jù)以10進(jìn)制輸出,換算到10進(jìn)制,結(jié)果對嗎? */ /* 字符型數(shù)據(jù)的輸出 */ printf(“c1=%c,c2=%x,c3=%o,c4=%dn”,c1,c2,c3,c4); /* 數(shù)據(jù)以原進(jìn)制輸出,注意是否有前導(dǎo)0或0x ?*/ printf(“c1=%c,c2=%c,c3=%c,c4=%cn”,c1,c2,c3,c4); /* 結(jié)果都是什么字符?,也就是說字符可以自由的表示成幾種形式? */ printf(“c1=%d,c2=%d,c3=%d,c4=%dn”,c1,c2,c3,c4); /* 看看這些字符的10進(jìn)制ASCII碼,哦,ASCII碼一樣,同一種字符 */ /* 字符型數(shù)據(jù)參與算術(shù)運(yùn)算 */ c=c1+32; /* 字符怎么參加了數(shù)學(xué)運(yùn)算,哦,是字符對應(yīng)的ASCII碼-整數(shù) /* 參與數(shù)學(xué)運(yùn)算;結(jié)果還是一個(gè)整數(shù)-另外一個(gè)字符的ASCII碼 */ printf(“c=%c,c=%dn”,c,c); /* 看看這個(gè)字符是什么?哇,'M'+32='m'了,看看ASCII碼表,原來如此!*/ return 0;} 參考結(jié)果: x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109 三、實(shí)驗(yàn)報(bào)告要求 將題目:2和4的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。2 實(shí)驗(yàn)二 順序結(jié)構(gòu)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康模?/p> 1.掌握順序結(jié)構(gòu)程序設(shè)計(jì) 2.掌握賦值語句的用法 3.熟練地進(jìn)行數(shù)據(jù)輸入和輸出 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 1、已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮點(diǎn)),計(jì)算算術(shù)表達(dá)式(float)(a+b)/2+(int)x%(int)y的值。試編程上機(jī)驗(yàn)證。(要求文件名:2_1.c)提示編程要點(diǎn): (1)先判斷結(jié)果值類型,可設(shè)置一個(gè)此類型的變量用于記錄表達(dá)式結(jié)果,本例用r存放結(jié)果;(2)程序先給幾個(gè)變量賦初值,然后將表達(dá)式賦值給變量r;(3)最后打印變量r的值就是表達(dá)式的值。參考程序: #include int a=2,b=3;float x=3.9,y=2.3; float r; r=(float)(a+b)/2+(int)x%(int)y; printf(“%fn”,r);return 0;} 參考結(jié)果: 3.500000 思考:為什么是這個(gè)結(jié)果? 2、分析下面程序結(jié)果,并上機(jī)驗(yàn)證。(要求文件名:2_2.c)#include int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“i=%d, j=%d, m=%d, n=%dn”,i,j,m,n); return 0;} 參考結(jié)果: i=9, j=11, m=9, n=10 3、用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。從鍵盤如何輸入?(要求文件名:2_3.c)#include 4、編程序,用getchar函數(shù)讀入兩個(gè)字符給c1、c2,然后分別用 putchar函數(shù)和 printf函數(shù)輸出這兩個(gè)字符。(要求文件名:2_4.c)參考程序: #include 三、實(shí)驗(yàn)報(bào)告要求 將題目:1和3的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)三 選擇結(jié)構(gòu)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?/p> 1.2.3.4.了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”); 學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式; 熟練掌握if語句和switch語句; 熟練掌握switch語句中break語句的作用。 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)掌握各種格式轉(zhuǎn)換符的正確使用方法,輸出結(jié)果。(要求文件名:3_1.c)#include (2)1.從鍵盤任意輸入一個(gè)年號,判斷它是否是閏年。若是閏年,輸出“Yes”,否則輸出“No”。已知符合下列條件之一者是閏年:(1)能被4整除,但不能被100整除;(2)能被400整除。(要求文件名:3_2.c)參考程序: #include int year, flag;printf(“Enter year:”);scanf(“%d”, &year);if(year%4==0&&year%100!=0 || year%400==0) { flag = 1; } else { flag = 0; } if(flag) { printf(“Yesn”); } else { printf(“Non”);} return 0;}(3)編程序,并給出程序的運(yùn)行結(jié)果,注意思考case中break的用法以及為什么是這樣的結(jié)果?(要求文件名:3_3.c)參考程序: #include int x=2,y=1,a=1,b=2;switch(x){ case 2: switch(y) { case 1:a++; case 2:b++;break; } case 3:a++;b++;break;} printf(“%d %dn”,a,b);return 0;}(4)編程序:輸入4個(gè)整數(shù),要求按由小到大的順序輸出。(要求文件名:3_4.c)參考程序: #include int t,a,b,c,d;scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);printf(“a=%d,b=%d,c=%d,d=%dn”,a,b,c,d);if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(a>d){t=a;a=d;d=t;} if(b>c){t=b;b=c;c=t;} if(b>d){t=b;b=d;d=t;} if(c>d){t=c;c=d;d=t;} printf(“%d,%d,%d,%dn”,a,b,c,d);return 0;} 三、實(shí)驗(yàn)報(bào)告要求 將題目:2和3的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)四 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?/p> 1.2.3.4.5.熟練使用while、for語句實(shí)現(xiàn)循環(huán)程序設(shè)計(jì) 理解循環(huán)條件和循環(huán)體,以及while、for語句的相同及不同之處 掌握嵌套循環(huán)程序設(shè)計(jì) 熟練掌握下拉菜單Debug的程序調(diào)試方法 掌握break和continue的用法 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)輸入兩個(gè)正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)。(要求文件名:4_1.c)參考程序: #include m=x;else m=y;for(i=1;i<=m;i++){ if((x%i==0)&&(y%i==0)) max=i;} printf(“%dn”,max);printf(“%dn”,x*y/max);return 0;}(2)從鍵盤輸入一個(gè) int 類型的正整數(shù),輸出它的所有因子。如輸入6,輸出1,2,3;輸入20,輸出1,2,4,5,10。(要求文件名:4_2.c)參考程序: #include printf(“%dn”,i);} return 0;}(3)輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。(要求文件名:4_3.c)參考程序: #include if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; else if(c>='0'&&c<='9') digit++; else if(c==' ') space++; else other++;} printf(“%d,%d,%d,%dn”,letter,digit,space,other);return 0;}(4)編程計(jì)算1?11111??????的值。(要求文件名:4_4.c)23499100參考程序: #include int sign = 1;double sum = 1;double deno = 2;double term = 1;while(deno<=100){ sign =(-1)*sign; term = sign*(1/deno); sum = sum+term; deno++;} printf(“%lfn”,sum);return 0;} 三、實(shí)驗(yàn)報(bào)告要求 將題目:3和4的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)五 數(shù)組 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握一維、二維數(shù)組的定義、引用、應(yīng)用 2.掌握字符數(shù)組的定義、引用、應(yīng)用 3.掌握字符串處理函數(shù) 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)給出下面程序的結(jié)果,思考為什么?(要求文件名:5_1.c)#include char a[]=“Chinaren”,b[]=“Tiananmen”;char *p1,*p2; int k=0;p1=a; p2=b;for(k=0;k<10;k++) if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));printf(“n”);return 0;}(2)有一個(gè)3×4的矩陣,要求輸出其中值最大的元素的值,以及它的行號和列號。(要求文件名:5_2.c)參考程序: #define M 3 #define N 4 #include int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;i for(j=0;j if(a[i][j]>max) { max= a[i][j]; r=i; c=j; } printf(“max=%d , row =%d , colum=%d n”,max , r, c); return 0;}(3)編程序用于讀入10個(gè)字符串,然后找出最大的字符串并打印。(要求文件名:5_3.c)參考程序: #include char str[10][80],maxstring[80]; int i;printf(“Enter ten strings:n”);for(i=0;i<10;i++) { scanf(“%s”, str[i]);} strcpy(maxstring, str[0]); for(i=1;i<10;i++) { if(strcmp(str[i],maxstring)>0) { strcpy(maxstring,str[i]); } } printf(“The max string is:%sn”,maxstring);}(4)給出下面程序的運(yùn)行結(jié)果,思考為什么?(要求文件名:5_4.c)#include int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};int i,j,s=0;for(i=0;i<4;i++){ for(j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } } printf(“%dn”,s);return 0;}(5)測試二維數(shù)組的各個(gè)地址值,結(jié)果是什么,思考原因。(要求文件名:5_5.c)#include int a[M][N];printf(“%xn”,a);printf(“%xn”,a[0]);for(int i=0;i printf(“%x,”,&a[i][j]); return 0;} 三、實(shí)驗(yàn)報(bào)告要求 將題目:2和3的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)六 函數(shù) 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握C語言函數(shù)的定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。 2.了解主調(diào)函數(shù)和被調(diào)函數(shù)之間的參數(shù)傳遞方式。 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)給出下面程序的結(jié)果,思考為什么?(要求文件名:6_1.c)#include #include printf(“%d is prime!”,number);else printf(“%d is not!”,number);return 0;} int prime(int number)/*此函數(shù)用于判別素?cái)?shù)*/ { int flag=1,n;for(n=2;n if(number%n==0) flag=0;return(flag);}(3)求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。寫一個(gè)函數(shù)求最大公約數(shù)。(要求文件名:6_3.c)參考程序: #include max=i;} return(max);}(4)寫一函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。(要求文件名:6_4.c)參考程序: #include if(shu[i]>=48&&shu[i]<=57) sum=sum+(shu[i]-48)*pow(16,k-i); else if(shu[i]>=65&&shu[i]<=70) sum=sum+(shu[i]-55)*pow(16,k-i); else if(shu[i]>=97&&shu[i]<=102) sum=sum+(shu[i]-87)*pow(16,k-i); else { printf(“error!n”); break; } return sum;} int main(){ char str[100];long s;gets(str);s=change(str);if(!s) printf(“The number is not oxn”);else printf(“change:%ldn”,s);return 0;} 三、實(shí)驗(yàn)報(bào)告要求 將題目:3和4的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)七 指針 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握指針變量的定義與引用。 2.熟練使用函數(shù)指針、數(shù)組指針、字符串指針編寫應(yīng)用程序。 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)輸入三個(gè)整數(shù),按由小到大的順序輸出,然后將程序改為:輸入三個(gè)字符串,按由小到大順序輸出。參考程序:(輸入三個(gè)整數(shù),按由小到大的順序輸出)(要求文件名:7_0.c)#include #include int x,a[100],*p,i;p=a;scanf(“%d”,&x);for(i=0;i scanf(“%d”,p++);p=a;printf(“n”);maopao(p,x);printf(“the sorted numbers:n”);p=a;for(i=0;i printf(“%dt”,*p); return 0;} void maopao(int *p,int x){ int i,j,temp;for(i=0;i for(j=0;j if(*(p+j)>*(p+j+1)) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } }(3)利用函數(shù)和指針將給定字母字符串的第一個(gè)字母變成大寫字母,其它字母變成小寫字母。在main函數(shù)中接收字符串的輸入,改變后的字符串的輸出也在main函數(shù)中實(shí)現(xiàn)。(要求文件名:7_3.c)參考程序: #include *s-=32;s++; } for(i=0;i *s+=32; 三、實(shí)驗(yàn)報(bào)告要求 將題目2和3的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)八 結(jié)構(gòu)體和共用體 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握結(jié)構(gòu)體類型和結(jié)構(gòu)體變量的定義。 2.掌握結(jié)構(gòu)類型變量的定義和使用。 3.掌握鏈表的概念,初步學(xué)會(huì)對鏈表進(jìn)行操作。 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)給出下面程序的運(yùn)行結(jié)果,思考為什么?(要求文件名:8_1.c)#include char num[10]; float score[3];}; int main(){ struct STU s[3]={{“1122301”,90,95,85}, {“1122302”,80,90,75}, {“1122303”,98,92,85}}, *p=s; int i; float sum = 0; for(i=0;i<3;i++){ sum = sum + p->score[i]; } printf(“%6.2fn”,sum); return 0;}(2)有10個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號,姓名,三門課的成績,從鍵盤輸入十個(gè)學(xué)生的數(shù)據(jù),要求打印出每個(gè)學(xué)生的平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號,姓名,三門課的成績,平均分?jǐn)?shù))。(要求文件名:8_2.c)#include char num[6]; char name[8]; float score[3]; float avr;} stu[N]; int main(){ int i,j,maxi; float sum,max,average; for(i=0;i { printf(“input scores of student %d:n”,i+1); printf(“NO.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%f”,&stu[i].score[j]); } } average=0; max=0; maxi=0; for(i=0;i { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=N; printf(“ NO.name score1 score2 score3 averagen”); for(i=0;i for(j=0;j<3;j++) printf(“%9.2f”,stu[i].score[j]); printf(“ %8.2fn”,stu[i].avr); } printf(“average=%5.2fn”,average); printf(“The highest score is : student %s,%sn”,stu[maxi].num,stu[maxi].name);printf(“his scores are:%6.2f,%6.2f,%6.2f,average:%5.2f.n”,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);return 0;}(3)建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號,姓名,性別,年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。(要求文件名:8_3.c) #include char num[6];char name[8];char sex[2];int age;struct student *next;} stu[10]; int main(){ struct student *p,*pt,*head;int i,length,iage,flag=1;int find=0; //找到待刪除元素 find=1,否則find=0 while(flag==1){ printf(“input length of list(<10):”); scanf(“%d”,&length); if(length<10) flag=0;} //建立鏈表 for(i=0;i p=(struct student *)malloc(LEN); if(i==0) head=pt=p; else pt->next=p; pt=p; printf(“NO.:”); scanf(“%s”,p->num); printf(“name:”); scanf(“%s”,p->name); printf(“sex:”); scanf(“%s”,p->sex); printf(“age:”); scanf(“%d”,&p->age); } p->next=NULL; p=head;printf(“n NO.name sex agen”); //顯示 while(p!=NULL){ printf(“%4s%8s%6s%6dn”,p->num,p->name,p->sex,p->age); p=p->next;} // 刪除 printf(“input age:”); //輸入待刪年齡 scanf(“%d”,&iage);pt=head;p=pt; if(pt->age==iage) //鏈頭是待刪元素 { p=pt->next; head=pt=p; find=1; } else //鏈頭不是待刪元素 pt=pt->next; while(pt!=NULL){ if(pt->age==iage) { p->next=pt->next; find=1; } else // 中間結(jié)點(diǎn)不是待刪元素 p=pt; pt=pt->next; } if(!find) printf(“ not found %d.”,iage); p=head; printf(“n NO.name sex agen”);//顯示結(jié)果 while(p!=NULL){ printf(“%4s%8s”,p->num,p->name); printf(“%6s%6dn”,p->sex,p->age); p=p->next; } return 0;} 三、實(shí)驗(yàn)報(bào)告要求 將題目3的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。 實(shí)驗(yàn)九 文件操作 一、實(shí)驗(yàn)?zāi)康?/p> 1.掌握文件和文件指針的概念以及文件的定義方法。 2.了解文件打開和關(guān)閉的概念和方法。 3.掌握有關(guān)文件的函數(shù)。 二、實(shí)驗(yàn)內(nèi)容和源程序清單、測試數(shù)據(jù)、結(jié)果。 (1)對data.dat文件寫入100條記錄。(要求文件名:8_1.c) #include int i; float x; fp=fopen(“c:data.dat”,“w”); for(i=1;i<=100;i++) { scanf(“%f”,&x); fprintf(fp,“%fn”,x); } fclose(fp); return 0;} (2)設(shè)有一文件cj.dat存放了50個(gè)人的成績(英語、計(jì)算機(jī)、數(shù)學(xué)),存放格式為:每人一行,成績間由逗號分隔。計(jì)算三門課平均成績,統(tǒng)計(jì)個(gè)人平均成績大于或等于90分的學(xué)生人數(shù)。(要求文件名:8_2.c) #include int num=0; float x , y , z , s1 , s2 , s3; fp=fopen(“c:cj.dat”,“r”); while(!feof(fp)) { fscanf(fp,“%f,%f,%f”,&x,&y,&z); s1=s1+x; s2=s2+y; s3=s3+z; if((x+y+z)/3>=90) num=num+1; } printf(“分?jǐn)?shù)高于90的人數(shù)為:%dn”,num); fclose(fp); return 0;} (3)統(tǒng)計(jì)上題cj.dat文件中每個(gè)學(xué)生的總成績,并將原有數(shù)據(jù)和計(jì)算出的總分?jǐn)?shù)存放在磁盤文件“stud”中。(要求文件名:8_3.c) #include “stdio.h” int main(){ FILE *fp1,*fp2; float x,y,z; fp1=fopen(“c:cj.dat”,“r”); fp2=fopen(“c:stud”,“w”); } while(!feof(fp1)){ fscanf(fp1,“%f,%f,%f”,&x,&y,&z); printf(“%f,%f,%f,%fn”,x,y,z,x+y+z); fprintf(fp2,“%f,%f,%f,%fn”,x,y,z,x+y+z);} fclose(fp1);fclose(fp2);return 0; 三、實(shí)驗(yàn)報(bào)告要求 將題目1、2和3的源程序、運(yùn)行結(jié)果,以及實(shí)驗(yàn)中遇到的問題和解決問題的方法,以及實(shí)驗(yàn)過程中的心得體會(huì),寫在實(shí)驗(yàn)報(bào)告上。第三篇:《C語言程序設(shè)計(jì)》實(shí)驗(yàn)教學(xué)大綱1
第四篇:實(shí)驗(yàn)教學(xué)大綱樣本--C語言程序設(shè)計(jì)
第五篇:C高級語言程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容