版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、信息 學(xué)院本科教學(xué)實驗講義(實驗)課程名稱 程序設(shè)計貴州財經(jīng)學(xué)院教務(wù)處制表程序設(shè)計實驗教學(xué)講義英文名稱:The Programming of C適用對象:計科專業(yè)、軟件工程專業(yè)學(xué)時學(xué)分:共64學(xué)時,實驗16學(xué)時,3學(xué)分。一、實驗的目的本課程是學(xué)生進行程序設(shè)計的入門課,它是學(xué)生今后從事計算機程序設(shè)計的基礎(chǔ),也是學(xué)習(xí)計算機其它專業(yè)課程(如數(shù)據(jù)結(jié)構(gòu),軟件工程、面向?qū)ο蟮某绦蛟O(shè)計、編譯原理等)的基礎(chǔ),C程序設(shè)計課程是一門實踐性很強的課程,需要同學(xué)們認(rèn)真而扎實地練習(xí),按時完成作業(yè)。通過實驗,使學(xué)生掌握C語言的基本語法、基本操作、程序設(shè)計的基本概念與編程技術(shù),并能運用所學(xué)知識解決實際問題,為以后學(xué)習(xí)面向?qū)?/p>
2、象的程序設(shè)計及其它專業(yè)課程打下扎實的基礎(chǔ)。二、實驗開設(shè)對象本實驗開設(shè)對象計科、軟件工程專業(yè)本科學(xué)生,實驗為必修內(nèi)容。四、指導(dǎo)教師要求本實驗課程教學(xué)配1名教師擔(dān)任實驗指導(dǎo)教師,實驗室人員配合指導(dǎo)。指導(dǎo)教師應(yīng)在實驗前闡述實驗?zāi)康摹⒒痉椒?、基本技術(shù)、實驗要求等,指導(dǎo)學(xué)生在規(guī)定的時間內(nèi)完成相關(guān)課程實驗。五、實驗設(shè)備配置每人配置1臺電腦,安裝有VC+ 6.0系統(tǒng)和其他相關(guān)組件,要求具有上網(wǎng)條件。六、考核與報告1、實驗完成后,學(xué)生實驗過程簡要寫到實驗報告中,并完成心得體會和問題,符合實驗教學(xué)的要求,并得到指導(dǎo)教師的認(rèn)可。2、指導(dǎo)教師對每份實驗報告進行審閱。實驗一C語言程序初步(必做)一、實驗題目C程序的
3、運行環(huán)境和編輯程序的方法二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、 熟悉C語言運行環(huán)境。2、 掌握語言程序的書寫格式和語言程序的結(jié)構(gòu)。3、 掌握C語言上機步驟,了解運行一個C程序的方法。4、 本實驗可在學(xué)習(xí)完教材第一章后進行。四、實驗步驟、靜態(tài)地檢查上述程序,改正程序中的錯誤。、在編輯狀態(tài)下照原樣鍵入上述程序。、編譯并運行上述程序,記下所給出的出錯信息。、按照事先靜態(tài)檢查后所改正的情況,進行糾錯。、再編譯執(zhí)行糾錯后的程序。如還有錯誤,再編輯改正,直到不出現(xiàn)語法錯誤為止。五、實驗內(nèi)容和要求1、熟悉上機環(huán)境及常用命令;2、編寫輸出”Hello World
4、”的第一個程序;3、驗證兩個數(shù)比較大小程序;4、有下面的程序,目的是想計算由鍵盤輸入的任意兩個整數(shù)的積。exl.c #include (stdio.h);main()scanf(“%x,%y”,&x,%y)int pp=x+yprintf(“The product is :”,p)請調(diào)試上述程序;下面給出組測試用例,你認(rèn)為哪幾組較好?為什么?()0, ()0, (),(),(),(),要測試出上述程序中所有錯誤,你認(rèn)為應(yīng)當(dāng)用幾組測試用例?實驗二數(shù)據(jù)類型、運算符和表達式(必做)一、實
5、驗題目數(shù)據(jù)類型、運算符和表達式二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、了解語言中數(shù)據(jù)類型的意義。2、理解常用運行符的意義。3、掌握語言表達式的運行規(guī)則。四、實驗步驟1、完成實驗內(nèi)容2、如何正確地選用數(shù)據(jù)類型?3、分析總結(jié)運算符的優(yōu)先級。五、實驗內(nèi)容和要求1、下面的程序試圖計算由鍵盤輸入的任意兩個整數(shù)的平均值:include <stdio.h>main()int x,y,a;scanf(“%x,%y,&x,&y);a=(x+y)/2;printf(“The average is :”a);調(diào)試無語法錯誤后,分別使用下列測試用例對上述程序進行測試:序號測試用例預(yù)計結(jié)果實際
6、結(jié)果備注1262133-2-64-1-35-266-13710832800330009-3280033000分析上述哪幾組測試用例較好?通過測試,你發(fā)現(xiàn)程序有什么錯誤了嗎?若有錯誤,請指出錯誤原因。2、操作符sizeof用以測試一個數(shù)據(jù)或類型所占用的存儲空間的字節(jié)數(shù)。請編寫一個程序,測試各基本數(shù)據(jù)類型所占用的存儲空間大小。3、編寫一個語言程序,測試下列各表達式i , ji + 1,j + 1i + + ,j + + + i, + + ji + + + + + j+ + i + + + + + j + +要求在各表達式中i 和j都分別有相同的初值。在實驗中注意下列問題:()
7、; 哪些表達式是錯誤的?為什么?() 理解,i,i的意義和優(yōu)先級別。4、編寫一個程序,測試常用的十個運算符的優(yōu)先順序。(選作)實驗三輸入與輸出(選做)一、實驗題目輸入、輸出及順序結(jié)構(gòu)程序設(shè)計二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、掌握語言程序輸入、輸出的方法和格式。2、理解程序的順序結(jié)構(gòu)四、實驗步驟1、完成實驗內(nèi)容2、總結(jié)在printf函數(shù)中可以使用的各種格式指定符,并給出樣例。3、總結(jié)在printf函數(shù)中可以使用的各轉(zhuǎn)義字符及其功能。五、實驗內(nèi)容和要求、輸入并編輯下面的程序main()int a,b;float c,d;long e,f;unsigned int u,v
8、;char c1,c2;scanf(“%d,%d”,a,b);scanf(“%f,%f”,c,d);scanf(“%ld,%ld”,e,f);scanf(“%o,%o”,u,v);scanf(“%c,%c”,c1,c2);printf(“n”);printf(“a=%7d,b=%7dn”,&a,&b);printf(“c=%10.2f,d=%10.2fn”,&c,&d);printf(“e=17ld,f=%17ldn”,&e,&f);printf(“u=%o,d=%on”,&u,&v);printf(“c1=%c,d=%cn”,&
9、amp;c1,&c2);這個程序有語法錯誤嗎?為什么?、調(diào)試上述程序無語法錯誤后,用下面的測試數(shù)據(jù),對程序進行測試:a=123,b=456,c=17.6,d=71837.65,e=70000,f=2174506,u=62000,v=58765,c1=a,c2=b分析運行結(jié)果。特別注意輸入c1,c2的值是什么?什么原因?、將輸入e和f的語句改為:scanf(“%d,%d”,&e,&f);再用上述測試數(shù)據(jù)測試并分析結(jié)果。、將輸入u、v的語句改為:scanf(“%d,%d”,&u,&v);再用上述測試數(shù)據(jù)測試并分析結(jié)果。、將輸出e,f的語句改為:printf(
10、“e=%17d,f=%17dn”,e,f);再用上述測試數(shù)據(jù)測試并分析結(jié)果。、將輸出u、v的語句改為:printf(“u=%u,v=%un”,u,v);或printf(“u=%d,v=%dn”,u,v);再用上述測試數(shù)據(jù)測試并分析結(jié)果。、請讀者自己修改程序和改變數(shù)據(jù)輸入的形式,分析各種情況下的輸入與輸出。、在scanf(“%c,%c”,&c1,&c2);語句之前加一個語句:getchar();、驗證轉(zhuǎn)義字符n 與 r的意義有何不同。實驗四分支程序設(shè)計(選做)一、實驗題目選擇語句的演練二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、了解條件與程序流程的關(guān)系2、了解用不同的數(shù)據(jù)使程序的流程覆
11、蓋不同的語句、分支和路徑。四、實驗步驟1、完成實驗內(nèi)容;2、分析討論(1)用哪一組數(shù)據(jù)就可使程序中的每個處理語句都執(zhí)行一次?為了找出程序中各條處理語句中的錯誤,應(yīng)該使用什么樣的數(shù)據(jù)對程序進行測試?請上機驗證自己的結(jié)論。(2)用哪兩組數(shù)據(jù)就可以使程序段中的每個分支都運行一次?這種情形與上面的討論有何不同?如果為了找出程序中積壓分支中的錯誤,應(yīng)該使用什么樣的數(shù)據(jù)對程序進行測試?請上機驗證自己的結(jié)論。(3) 用哪兩組數(shù)據(jù)就可以把判定框中的每個條件運算都進行一次?如果為了測試出判定條件中的錯誤,應(yīng)使用哪些數(shù)據(jù)對程序進行測試?請上機驗證自己的結(jié)論。(4)用哪四組數(shù)據(jù)才可以把各種條件的組合都檢測一遍? 如
12、果為了測試各種條件的組合的情形,應(yīng)該使用什么樣的測試數(shù)據(jù)?請上機驗證自己的結(jié)論。(5)用哪四組數(shù)據(jù)才可以把起始到終止的各條路徑都覆蓋一次?如果為了測試出程序在不同路徑下的錯誤,應(yīng)該使用什么樣的測試數(shù)據(jù)?請上機驗證自己的結(jié)論。五、實驗內(nèi)容和要求1、有如下程序段:if (a>1&&b= =0) x=x/a;if(a=2|x>1) x=x+1;為了更容易明白程序的邏輯結(jié)構(gòu),我們用下圖所示流程圖來加以描述。a>1&&b= =0x=x/aa= =2|x>1x=x+1 y n y n 要求
13、增加一些輸入語句和輸出語句,以便使上述程序能在不同的a,b和x值下運行,并且能觀察程序流程經(jīng)過(覆蓋)了哪些語句、哪些分支及哪些路徑。2、記下分別使用下列各組數(shù)據(jù)運行時的操作流程。() a=1,b=1,x=1;() a=1,b=1,x=2;() a=3,b=0,x=1;() a=2,b=1,x=4;() a=2,b=1,x=1;() a=1,b=0,x=2;() a=2,b=1,x=1;() a=3,b=
14、0,x=2。選做題目1、從鍵盤上輸入三個數(shù),讓它們代表三條線段的長度,請寫一個判斷這三條線段所組成的三角形屬于什么類型(不等邊,等腰,等邊或不構(gòu)成三角形)的C程序。2、請設(shè)計測試數(shù)據(jù)對自己的程序進行測試:實驗五循環(huán)結(jié)構(gòu)程序設(shè)計(必做)一、實驗題目循環(huán)結(jié)構(gòu)程序設(shè)計二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、掌握在程序設(shè)計條件型循環(huán)結(jié)構(gòu)時,如何正確地設(shè)定循環(huán)條件,以及如何控制循環(huán)的次數(shù)。2、了解條件型循環(huán)結(jié)構(gòu)的基本測試方法。3、 掌握如何正確地控制計數(shù)型循環(huán)結(jié)構(gòu)的次數(shù)4、 了解對計數(shù)型循環(huán)結(jié)構(gòu)進行測試的基本方法5、 了解在嵌套循環(huán)結(jié)構(gòu)中,提高程序效率的方法四、實驗步驟
15、1、完成試驗內(nèi)容2、總結(jié)測試條件循環(huán)結(jié)構(gòu)的一般方法3、如何測試計數(shù)型循環(huán)結(jié)構(gòu)的控制表達式中的錯誤?4、從實驗中你得到了哪些提高嵌套循環(huán)程序效率的啟示?五、實驗內(nèi)容和要求1、下面是一個計算e的近似值(使誤差小于給定的)的程序。main()double e=1.0,x=1.0,y,detax;int i=1;printf(“n please input enter a error:”);scanf(“%lf”,&detax);y=1/x;while(y>=detax)x=x*i;y=1/x;e=e+y;+i;printf(“%12.10lf”,e);(1)、閱讀上面的程序,寫出程序所
16、依據(jù)的計算公式。(2)、當(dāng)輸入的detax各是什么值時,能分別使程序按下面的要求運行:.不進入循環(huán);.只循環(huán)一次;.只循環(huán)兩次;.進入死循環(huán)(程序?qū)⒂肋h循環(huán)下去)。為了能知道程序循環(huán)了多少次,應(yīng)該在程序中增加一條什么樣的語句?(3)、原程序中while語句中的y>=detax,分別換成y>detax,y=detax,y<detax,y<=detax,觀察程序運行將會有什么變化。假如不知道機器內(nèi)的程序中的各語句實際上是什么,分別輸入什么樣的detax來測試出while語句的循環(huán)條件寫錯了。(4)、把原程序中while語句之前的y=1/x語句去掉,觀察程序的運行將會發(fā)生什么
17、樣的變化。假如不知道機器內(nèi)的程序?qū)嶋H上是怎么寫的,輸入什么樣的detax就能測試出少了上述這條語句。(5)、若把原程序中的+i換成i+,觀察程序的運行發(fā)生了什么變化?假如不知道這條語句到底是怎么寫的,輸入什么樣的detax就能測試出這條語句寫錯了.(6)、把原程序中的while結(jié)構(gòu)改寫成dowhile結(jié)構(gòu),再分別按上述的(2)、(3)兩步進行實驗。選作:2、有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?設(shè)計程序?qū)崿F(xiàn)并調(diào)試。3、用100元兌換成20、5、2、1元的零鈔,共有多少種兌換方法,要求每種至少有1種,要求輸出計算的次數(shù)。選作題目:猴子吃桃問題:猴子第一天摘下
18、若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個,第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。實驗六文件(必做)一、實驗題目文件二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、文件和文件指針的概念以及文件的定義方法。、了解文件打開和關(guān)閉的概念及方法。、掌握有關(guān)文件的函數(shù)。四、實驗步驟完成試驗內(nèi)容五、實驗內(nèi)容和要求、編寫程序,要求從鍵盤輸入一個字符串,然后將其以文件形式存到磁盤上。磁盤文件名為file1.dat。、從磁盤文件file1.dat讀入一行字符,將其中所有小寫字母改為大寫字母,然后輸出到磁盤
19、文件file2.dat中。、已有兩個文本文件,今要求編程序從這兩個文件中讀出各行字符,逐個比較這兩個文件中相應(yīng)的行和列上的字符,如果遇到互不相同的字符,輸出它是第幾行第幾列的字符。實驗七數(shù)組(必做)一、實驗題目數(shù)組二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、掌握數(shù)組定義的規(guī)則。2、掌握C語言數(shù)組的基本用法。四、實驗步驟1、完成試驗內(nèi)容2、通過實驗,分析定義與引用數(shù)組的區(qū)別。五、實驗內(nèi)容和要求1、編寫程序,測試下列數(shù)組的定義方式是否正確(1) main()int n;scanf(“%d”,&n);int an;(2)main()const int n=10;int an;(3)
20、160; #include <stdio.h>#define M 10main()int aM;(4)main() int a2+2*4;(5)#include <stdio.h>#define M 2#define N 8 main() int aM+N;通過這一實驗,可以說明什么問題?2、運行下面的C程序,根據(jù)運行結(jié)果,可以說明什么?main( ) int num5=1,2,3,4,5; inti i; for(i=0;i<=5;i+) printf(“%d”,numi); 3.從鍵盤輸入一字符串,然后按逆序存放并輸出。4、操作符&用以求一個
21、變量的地址,這在函數(shù)scanf中已經(jīng)使用過了?,F(xiàn)在要你設(shè)計一個程序,返回一個3 * 5 的二維數(shù)組各元素的地址,并由此說明二維數(shù)組中各元素是按什么順序存儲的。選做:1、 為一個起泡排序程序設(shè)計測試用例,并測試之。2、 寫一個程序,使用一維數(shù)組計算并輸出楊輝三角形前面的n行。實驗八函數(shù)及遞歸程序設(shè)計(必做)一、實驗題目函數(shù)及遞歸程序設(shè)計二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、 掌握C語言函數(shù)定義及調(diào)用的規(guī)則。2、 理解參數(shù)傳遞的過程。四、實驗步驟1、完成試驗內(nèi)容2、 針對以上實驗內(nèi)容寫出相應(yīng)的參數(shù)傳遞過程并分析結(jié)果。3、 討論參數(shù)的傳遞的幾種形式。五
22、、實驗內(nèi)容和要求1、 上機調(diào)試下面的程序,記錄系統(tǒng)給出的出錯信息,并指出出錯原因。main() int,y; printf(“%dn”,sum(x+y); int sum(a,b) int a,b;return(a+b); 2、 編寫并調(diào)試一個求n!(n為整數(shù))的遞歸函數(shù),希望能在程序運行過程中動態(tài)地顯示遞歸函數(shù)被調(diào)用的軌跡。3、 使用遞歸和遞推公式分別計算Fabonacci數(shù)列,分別兩種方式求10,20,30,40,50遞增測試直到計算時間超過3分鐘,比較兩種方法的運算時間并分析原因。實驗九指針 (選做)一、實驗題目指針二、實驗課時課內(nèi)2課時三、實驗?zāi)康?.
23、; 熟悉指針的正確用法。四、實驗步驟1、完成試驗內(nèi)容;2、討論數(shù)組與指針的聯(lián)系。五、實驗內(nèi)容和要求1、指出下面程序錯誤的原因。main( )int x=10,y=5,*px,*py;px=py;px=&x;py=&y;printf(“*px=%d,*py=%d,*px,*py);2、下面的程序試圖有如下運行結(jié)果:which style you want to :Capital ( c ) or uncapital ( a ):c COMPUTER Which sytle you want to :Capital ( c
24、) or uncapital ( a ) : ucomputer請調(diào)試下面的程序,使其有如上執(zhí)行結(jié)果。#include <stdio.h>main () char s*;char c;printf(“which style you want to :ln”);printf(“capital ( c ) or uncapital(a):”);c=getchar();if(c=c)strcpy(s,”COMPUTER”);else strcpy(s,”computer”);put(s);分析出錯原因。3下面的程序能獲得上述運行結(jié)果嗎?main()char *S=”COMPUTER”;c
25、har c;printf(“which style you want to n”);printf(“capital (c) or uncapital(u);”);c=getchar();if(c=c) put(s);else s=”computer”;puts(s);分析出錯原因。4設(shè)計一個C程序,用以測試下列各表達式的運算。(1) y=*px+(2) y=*+py(3) y=(*py)+(4) y=-*ppx+實驗十結(jié)構(gòu)及共用體(選做)一、實驗題目結(jié)構(gòu)及共用體二、實驗課時課內(nèi)2課時三、實驗?zāi)康?、掌握結(jié)構(gòu)體類型方法以及結(jié)構(gòu)體變量的定義和引用。2、掌握指向結(jié)構(gòu)體變量的指針變量的應(yīng)用,特別是鏈表的應(yīng)用。3、掌握運算符”.”和”->”的應(yīng)用。4、共用體的概念和應(yīng)用。四、實驗步驟完成試驗內(nèi)容五、實驗內(nèi)容和要求1、編寫程序:有4名學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、成績,要求找出成績最高者的姓名和成績,上機運行程序。2、編寫程序,將一個
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考地理一輪復(fù)習(xí)第五章第1講自然地理環(huán)境的整體性教案含解析新人教版
- 校長在寒假散學(xué)典禮上講話:擁抱寒假開啟多元成長之旅
- 小學(xué)一年級美術(shù)教學(xué)計劃
- 《在細雨中呼喊》
- 施工防火安全控制措施
- 2024年湄洲灣職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 二零二五年度施工單位與監(jiān)理人員勞動合同范本3篇
- 二零二五版二手汽車買賣合同附帶保險及保養(yǎng)服務(wù)樣本3篇
- 《科幻小說賞析與寫作》 課件 第5、6章 “反烏托邦”的警示與預(yù)言-《一九八四》;“外星文明”的善意與惡行-《安德的游戲》
- 二零二五年度船員勞動合同與船舶航行安全應(yīng)急演練服務(wù)合同3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 地理 含答案
- 全新標(biāo)前協(xié)議書范本下載
- 企業(yè)反恐安全經(jīng)費使用制度
- 痛風(fēng)課件教學(xué)
- 學(xué)校食堂從業(yè)人員培訓(xùn)制度
- 中國郵票JT目錄
- 腦疝觀察及護理
- 【學(xué)易金卷】2023-2024學(xué)年四年級數(shù)學(xué)上冊期末全真模擬提高卷(三)(答題卡)(北師大版)
- 部編 2024版歷史七年級上冊期末(全冊)復(fù)習(xí)卷(后附答案及解析)
- 科研平臺設(shè)施建設(shè)方案
- 四川省成都市2024年初中學(xué)業(yè)水平考試生物學(xué)試卷
評論
0/150
提交評論