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