程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)內(nèi)容_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)內(nèi)容_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)內(nèi)容_第3頁(yè)
已閱讀5頁(yè),還剩6頁(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)介

1、實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)一 Visual C+ 開發(fā)環(huán)境使用1實(shí)驗(yàn)?zāi)康?1) 熟悉 Visual C+ 集成開發(fā)環(huán)境。(2) 掌握C語(yǔ)言程序的書寫格式和C語(yǔ)言程序的結(jié)構(gòu)。(3) 掌握C語(yǔ)言上機(jī)步驟,了解 C程序的運(yùn)行方法。(4 )能夠熟練地掌握 C語(yǔ)言程序的調(diào)試方法和步驟2. 實(shí)驗(yàn)內(nèi)容輸入如下程序,實(shí)現(xiàn)兩個(gè)數(shù)的乘積。#include ;int main()x=10 , y=20p=prodct(x,t)printf("The product is : ",p)int prodct(int a ,int b )int cc=a*breturn c( 1)在編輯狀態(tài)下照原樣鍵入上述程序。(

2、2) 編譯并運(yùn)行上述程序,記下所給出的出錯(cuò)信息。(3) 再編譯執(zhí)行糾錯(cuò)后的程序。如還有錯(cuò)誤,再編輯改正,直到不出現(xiàn)語(yǔ)法錯(cuò)誤為止。3分析與討論(1) 記下在調(diào)試過(guò)程中所發(fā)現(xiàn)的錯(cuò)誤、系統(tǒng)給出的出錯(cuò)信息和對(duì)策。分析討論成功或失敗 的原因。(2) 總結(jié)C程序的結(jié)構(gòu)和書寫規(guī)則。實(shí)驗(yàn)二 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式1實(shí)驗(yàn)?zāi)康?1) 理解常用運(yùn)行符的功能、優(yōu)先級(jí)和結(jié)合性。(2) 熟練掌握算術(shù)表達(dá)式的求值規(guī)則。( 3)熟練使用賦值表達(dá)式。( 4)理解自加、自減運(yùn)算符和逗號(hào)運(yùn)算符(5)掌握關(guān)系表達(dá)式和邏輯表達(dá)式的求值2實(shí)驗(yàn)內(nèi)容( 1 )整數(shù)相除#include<>int main()int a=5,b=

3、7,c=100,d,e,f;d=a/b*c;e=a*c/b;f=c/b*a;printf("d=%d , e=%d ,f=%dn",d,e,f);return 0;(2) 自加、自減運(yùn)算 #include<> int main()int a=5,b=8; printf("a+=%dn",a+);printf("a=%dn",a); printf("+b=%dn",+b);printf("b=%dn",b);return 0;(3) 關(guān)系運(yùn)算和邏輯運(yùn)算#include<>i

4、nt main()int a=5,b=8,c=8; printf("%d,%d,%d,%dn",a=b&&a=c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%dn",a<=b|a>=c,a=b|b=c);printf("%d,%d,%d,%dn",!(a=b),!(a>=b),!(a>=c),!(a<=b);return 0;(1) 在編輯狀態(tài)下輸入上述程序。(2) 編

5、譯并運(yùn)行上述程序。3分析與討論(1) 整數(shù)相除有什么危險(xiǎn)?應(yīng)如何避免這種危險(xiǎn)?(2) 分析a+和+a的區(qū)別。( 3)條件表達(dá)式和邏輯表達(dá)式的意義是什么,它們?nèi)≈等绾危? 4 )如何比較兩個(gè)浮點(diǎn)數(shù)相等?為什么?實(shí)驗(yàn)三 格式化輸入輸出函數(shù)的使用1實(shí)驗(yàn)?zāi)康?1) 掌握格式字符使用的方法。(2) 掌握 printf() 進(jìn)行格式化輸出的方法。(3) 掌握 scanf() 進(jìn)行格式化輸入的方法。2實(shí)驗(yàn)內(nèi)容( 1 )輸入如下程序,觀察運(yùn)行結(jié)果#include<>int main()int x=1234;float f=;double m=;char ch='a'char a=&

6、quot;Hello,world!"int y=3,z=4;printf("%d %dn",y,z);printf("y=%d , z=%dn",y,z); printf("%8d,%2dn",x,x);printf("%f,%8f,%8.1f,%.2f,%.2en",f,f,f,f,f);printf("%lfn",m);printf("%3cn",ch); printf("%sn%15sn%n%n%.3sn",a,a,a,a,a);retur

7、n 0; (2)輸入下面程序,觀察調(diào)試信息 #include<> int main()double x,y;char c1,c2,c3;int a1,a2,a3; scanf("%d%d%d",a1,a2,a3); printf("%d,%d,%dn",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%cn",c1,c2,c3); scanf("%f,%lf",&x,&y); printf

8、("%f,%lfn",x,y);return 0;(1 )在VC+集成開發(fā)環(huán)境中輸入上述程序,觀察調(diào)試結(jié)果。( 2 )如果有錯(cuò)誤,請(qǐng)修改程序中的錯(cuò)誤。3分析與討論( 1 )分析程序錯(cuò)誤及運(yùn)行結(jié)果錯(cuò)誤的原因。( 2 )總結(jié) printf() 中可使用的各種格式字符。( 3)總結(jié)轉(zhuǎn)移字符的使用和功能。實(shí)驗(yàn)四 分支結(jié)構(gòu)程序設(shè)計(jì)1實(shí)驗(yàn)?zāi)康? 1 )了解條件與程序流程的關(guān)系( 2)了解用不同的數(shù)據(jù)使程序的流程覆蓋不同的語(yǔ)句、分支和路徑。 ( 3 )掌握 if 語(yǔ)句和 if else 語(yǔ)句的用法( 4)掌握 switch 語(yǔ)句的用法2實(shí)驗(yàn)內(nèi)容 1從鍵盤上輸入三個(gè)數(shù),讓它們代表三條線段的

9、長(zhǎng)度,請(qǐng)寫一個(gè)判斷這三條線段所組成的 三角形屬于什么類型(不等邊,等腰,等邊或不構(gòu)成三角形)的 C 程序。 請(qǐng)分別設(shè)計(jì)下列 數(shù)據(jù)對(duì)自己的程序進(jìn)行測(cè)試:(1)找出各條語(yǔ)句中的錯(cuò)誤。(2)找出各分支中的錯(cuò)誤。(3)找出各條件中的錯(cuò)誤。( 4) 找出各種條件組合中的錯(cuò)誤。(5) 找出各條路徑中的錯(cuò)誤。2. 用seanf函數(shù)輸入一個(gè)百分制成績(jī)(整型量),要求輸出成績(jī)等級(jí) A, B, C, D, E。其 中90-100分為A,80-89分為B,70-79分為C, 60-69分為D, 60分以下為 E。具體要求如 下:(1)用 if 語(yǔ)句實(shí)現(xiàn)分支或 switeh 分支。(2)在輸入百分制成績(jī)前要有提示。(

10、3) 在輸入百分制成績(jī)后,要判斷該成績(jī)的合理性,對(duì)于不合理的成績(jī)(即大于 100 分或小于 0分)應(yīng)輸出出錯(cuò)信息。(4)在輸出結(jié)果中應(yīng)包括百分制成績(jī)與成績(jī)等級(jí),并要有文字說(shuō)明。(5) 分別輸入百分制成績(jī): -90, 100, 90, 85, 70, 60, 45, 101,運(yùn)行該程序。3. 編程找出 5 個(gè)整數(shù)中的最大數(shù)和最小數(shù),并輸出找到的最大數(shù)和最小數(shù)。3分析與討論( 1 )總結(jié)分支程序設(shè)計(jì)的方法。(2)復(fù)合語(yǔ)句的使用。(3)switeh 語(yǔ)句的注意事項(xiàng)。實(shí)驗(yàn)五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1實(shí)驗(yàn)?zāi)康模? )掌握在程序設(shè)計(jì)條件型循環(huán)結(jié)構(gòu)時(shí),如何正確地設(shè)定循環(huán)條件,以及如何控制循環(huán)的 次數(shù)。(2)了解條

11、件型循環(huán)結(jié)構(gòu)的基本測(cè)試方法。(3)掌握如何正確地控制計(jì)數(shù)型循環(huán)結(jié)構(gòu)的次數(shù)。(4)了解對(duì)計(jì)數(shù)型循環(huán)結(jié)構(gòu)進(jìn)行測(cè)試的基本方法。(5)了解在嵌套循環(huán)結(jié)構(gòu)中,提高程序效率的方法。2實(shí)驗(yàn)內(nèi)容(1 )輸入一個(gè)正整數(shù),并將其顛倒過(guò)來(lái)。如12345 對(duì)應(yīng)為 54321 。(2)將一個(gè)長(zhǎng)整型數(shù) s 的每一位數(shù)位上的偶數(shù)依次取出來(lái),構(gòu)成一個(gè)新的數(shù) t 中,高位仍在高位,低位仍在低位,例如:s=時(shí),t中的數(shù)為:8642。(3)判斷 101200 之間有多少個(gè)素?cái)?shù)。(4)編寫程序,輸出楊輝三角。3分析與討論(1 )總結(jié)條件循環(huán)結(jié)構(gòu)的一般方法。(2)如何測(cè)試計(jì)數(shù)型循環(huán)結(jié)構(gòu)的控制表達(dá)式中的錯(cuò)誤?(3)從實(shí)驗(yàn)中你得到了哪些提

12、高嵌套循環(huán)程序效率的啟示?實(shí)驗(yàn)六 函數(shù)1實(shí)驗(yàn)?zāi)康?1) 掌握C語(yǔ)言函數(shù)定義及調(diào)用的規(guī)則。(2 )理解參數(shù)傳遞的過(guò)程。(3 )掌握函數(shù)返回值的大小和類型確定的方法。(4) 理解變量的作用范圍2 實(shí)驗(yàn)內(nèi)容(1) 上機(jī)調(diào)試下面的程序,記錄系統(tǒng)給出的出錯(cuò)信息,并指出出錯(cuò)原因。#in clude<>int mai n()int x,y;prin tf("%dn",sum(x+y);int sum(a,b)int a,b;return(a+b);return 0;(2) 編寫一個(gè)程序,輸入系數(shù)a、b、c,求一元二次方程ax2 bx c 0的根,包括主函 數(shù)和如下函數(shù)。判斷a

13、是否為零。計(jì)算判別式b2 4ac計(jì)算根。輸出根。(3) 輸入下面程序,分析運(yùn)行結(jié)果#in clude<>int func (in t ,i nt );int mai n () int k=4,m=1,p1,p2;p1=fu nc(k,m);p2=fu nc(k,m);prin tf("%d,%dn",p1,p2);return 0;int func (int a,i nt b) static int m=0,i=2;i+=m+1;m=i+a+b;return (m);3 分析與討論(1 )針對(duì)以上實(shí)驗(yàn)內(nèi)容寫出相應(yīng)的參數(shù)傳遞過(guò)程并分析結(jié)果。(2)函數(shù)在定義時(shí)要注意

14、什么?(3)討論靜態(tài)局部變量的繼承性?實(shí)驗(yàn)七 數(shù)組及其應(yīng)用1實(shí)驗(yàn)?zāi)康模?)掌握數(shù)組定義的規(guī)則。(2)掌握 C 語(yǔ)言數(shù)組的基本用法。(3)掌握數(shù)組名作為函數(shù)參數(shù)傳遞的方法2實(shí)驗(yàn)內(nèi)容(1)運(yùn)行下面的C程序,根據(jù)運(yùn)行結(jié)果,可以說(shuō)明什么?#include <> int main( ) int num5=1,2,3,4,5;inti i;for(i=0;i<=5;i+)printf("%d ",numi);return 0;( 2)為一個(gè)冒泡排序程序設(shè)計(jì)測(cè)試用例,并測(cè)試之。(3)操作符 &用以求一個(gè)變量的地址, 這在函數(shù) scanf 中已經(jīng)使用過(guò)了。 現(xiàn)在要

15、你設(shè)計(jì)一個(gè) 程序,返回一個(gè) 3 X5的二維數(shù)組各元素的地址,并由此說(shuō)明二維數(shù)組中各元素是按什么 順序存儲(chǔ)的。3分析與討論(1 )通過(guò)實(shí)驗(yàn),分析定義與引用數(shù)組的區(qū)別。(2)數(shù)組的作用是什么?( 3)數(shù)組名作為參數(shù)有什么特點(diǎn)?實(shí)驗(yàn)八 指針及其應(yīng)用1實(shí)驗(yàn)?zāi)康模?1 )掌握變量的指針及其基本用法。( 2)掌握一維數(shù)組的指針及其基本用法。 (3)掌握指針變量作為函數(shù)的參數(shù)時(shí) , 參數(shù)的傳遞過(guò)程及其用法。2實(shí)驗(yàn)內(nèi)容(1)對(duì)以下程序進(jìn)行運(yùn)行 , 并從中了解變量的指針和指針變量的概念。# include <> int main()int a=5,b=5,*p;p=&a;printf(&qu

16、ot;%d ,%udn",a,p);*p=8;printf("%d ,%udn",a,p);p=&b;printf("%d ,%udn",a,p);b=10;printf("%d ,%udn",a,p); return 0;(2) 運(yùn)行以下程序,觀察 &a0 ,&ai) 和 p 的變化,然后回答以下問(wèn)題 :1) 序的功能是什么 ?2) 在開始進(jìn)入循環(huán)體之前,p 指向誰(shuí) ?3) 循環(huán)每增加一次,p的值(地址)增加多少?它指向誰(shuí)?4) 退出循環(huán)后,p 指向誰(shuí) ?5) 你是否初步掌握了通過(guò)指針變搔引用數(shù)組元

17、素的方法?# include <>int main()int i,*p,s=0,a5=5,6,7,8,9;p=a; for(i=0;i<5;i+,p+) s+=*p;printf("s=%dn",s);return 0;(3) 先分析以下程序的運(yùn)行結(jié)果,然后上機(jī)驗(yàn)證,并通過(guò)此例掌握通過(guò)指針變量引用 數(shù)組元素的各種方法。#include <>int main( )int i,s1=0, s2=0, s3=0, s4=0,*p,a5=1,2,3,4,5; p=a;for(i=0;i<5;i+)s1+=pi;for(i=0;i<5;i+)

18、s2+=*(p+i);for(p=a;p<a+5;p+) s3+=*p;p=a;for(i=0;i<5;i+)s4+=*p+;printf("n s1=%d, s2=%d, s3=%d, s4=%d",s1,s2,s3,s4); return 0;(4) 編寫函數(shù), 將 n 個(gè)數(shù)按原來(lái)的順序的逆序排列 (要求用指針實(shí)現(xiàn)) ,然后編寫主函 數(shù)完成:1) 輸入 10個(gè)數(shù);2) 調(diào)用此函數(shù)進(jìn)行重排;3) 輸出重排后的結(jié)果。3 分析與討論(1 )指針的定義方法,指針和變量的關(guān)系。(2)數(shù)組和指針的關(guān)系。實(shí)驗(yàn)九結(jié)構(gòu)體及其應(yīng)用1 .實(shí)驗(yàn)?zāi)康?1 )掌握結(jié)構(gòu)體類型變量與結(jié)構(gòu)體

19、數(shù)組的定義和使用。(2) 學(xué)會(huì)使用結(jié)構(gòu)體指針變量和結(jié)構(gòu)體指針數(shù)組。(3) 掌握鏈表的概念,初步學(xué)會(huì)對(duì)鏈表進(jìn)行操作。2 實(shí)驗(yàn)內(nèi)容(1) 輸入出10個(gè)學(xué)生的學(xué)號(hào)、姓名和成績(jī),求出其中的高分者和低分者。#in elude <>struct stude ntint num;char n ame20;int score;;int main()int i;struct stude nt st,stmax,stm in;=0; =100;prin tf("n in put data");for(i=0;i<10;i+)scan f("%d%s%d",

20、&,&if>stmax=st;if<stmi n=st;prin tf("n hight:%5d%15s%5d",;prin tf("n low:%5d%15s%5d",;return 0;1) 分析程序,上機(jī)運(yùn)行程序。2) 程序中,哪些是對(duì)結(jié)構(gòu)體變量的成員引用,哪些是整體引用?3) 對(duì)于此例來(lái)說(shuō),用結(jié)構(gòu)體變量作為數(shù)據(jù)結(jié)構(gòu)有何優(yōu)越性?(2) 有一學(xué)生情況如下表所示。編制一個(gè)C程序,用冒泡法對(duì)該學(xué)生情況表按成績(jī) (grade )從低到高進(jìn)行排序。學(xué)號(hào)姓名性別年齡成績(jī)101ZhangM19102wangF18103zhaoM191

21、04liM20105GaoM19106LinM18107MaF18108ZhenM21109XuM19110MaoF22具體要求如下:1) 結(jié)構(gòu)體類型為struct stude ntint num;char n ame8;char sex;int age;double grade;2) 在程序中用一個(gè)結(jié)構(gòu)體指針數(shù)組,其中每一個(gè)指針元素指向結(jié)構(gòu)體類型的各元素。3) 在程序中,首先輸出排序前的學(xué)生情況,然后輸出排序后的結(jié)果,其格式如上表所示。(3) 鏈表基本操作,具體要求如下:1) 初始時(shí)鏈表為空,即鏈表的頭指針為空。2) 對(duì)于上表所示的學(xué)生情況表,依次將每個(gè)學(xué)生的情況作為一個(gè)結(jié)點(diǎn)插入到單鏈表的鏈

22、頭(即當(dāng)前插入的結(jié)點(diǎn)將成為第一個(gè)結(jié)點(diǎn))。3) 所有學(xué)生情況都插入到鏈表中后,從鏈頭開始,依次輸出鏈表中的各結(jié)點(diǎn)值(即每個(gè)學(xué)生的情況)。輸出格式如同上表。3 分析與討論(1) 結(jié)構(gòu)體的作用,如何進(jìn)行初始化?(2) 如何訪問(wèn)結(jié)構(gòu)體中的成員。(3) 鏈表有什么優(yōu)點(diǎn)?實(shí)驗(yàn)十文件1. 實(shí)驗(yàn)?zāi)康?1) 掌握文件與文件指針的概念。(2) 學(xué)會(huì)使用文件打開、文件關(guān)閉、讀與寫文件等基本的文件操作函數(shù)。(3) 運(yùn)用文件操作函數(shù)進(jìn)行程序設(shè)計(jì)。2. 實(shí)驗(yàn)內(nèi)容(1)以文本方式建立初始數(shù)據(jù)文件,請(qǐng)輸入10個(gè)學(xué)生的學(xué)號(hào)、姓名及考試成績(jī),形式 如下:1001 LiLi 801002 HuWei 901003 LiMing 7

23、5讀入中的數(shù)據(jù),找出最高分和最低度分的學(xué)生。#include <>struct studentint num;char name20;int score;int main()int i;struct student st,stmax,stmin;FILE *fp;=0; =100; fp=fopen("","r"); if(!fp) return 1; for(i=0;i<10;i+) fscanf(fp,"%d%s%d",&,& if> stmax=st;if< stmin=st;fcl

24、ose(fp);printf(" hight:%5d%15s%5d",;printf("n low:%5d%15s%5d",;return 0;1) 分析程序,上機(jī)運(yùn)行程序并分析運(yùn)行結(jié)果。2) 如果事先不知道學(xué)生個(gè)數(shù),則程序應(yīng)該如何修改?請(qǐng)將以上程序中的循環(huán)語(yǔ)句 for(i=0;i<10;i+) 改為( while(!feof(fp) 再運(yùn)行程序,看結(jié)果是否正確? (2)讀入中的數(shù)據(jù),然后按成績(jī)從高到低度的順序進(jìn)行排序,并將排序結(jié)果分別以文 本方式存入到文件中,以二進(jìn)制形式存入文件中。#include <>struct studentint num;char name20;int score;void sort(struct student *,int);int main()int i,n=10;struct student st10;FILE *fp,*fp1,*fp2; fp=fopen("

溫馨提示

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