版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
編輯版word編輯版word編輯版word實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)一VisualC++6.0開發(fā)環(huán)境使用1.實(shí)驗(yàn)?zāi)康模?)熟悉VisualC++6.0集成開發(fā)環(huán)境。(2)掌握C語言程序的書寫格式和C語言程序的結(jié)構(gòu)。(3)掌握C語言上機(jī)步驟,了解C程序的運(yùn)行方法。(4)能夠熟練地掌握C語言程序的調(diào)試方法和步驟2.實(shí)驗(yàn)內(nèi)容輸入如下程序,實(shí)現(xiàn)兩個數(shù)的乘積。#include(stdio.h);Intmain(){x=10,y=20p=prodct(x,t)printf(“Theproductis:”,p)intprodct(inta,intb)intcc=a*breturnc}(1)在編輯狀態(tài)下照原樣鍵入上述程序。(2)編譯并運(yùn)行上述程序,記下所給出的出錯信息。(3)再編譯執(zhí)行糾錯后的程序。如還有錯誤,再編輯改正,直到不出現(xiàn)語法錯誤為止。3.分析與討論(1)記下在調(diào)試過程中所發(fā)現(xiàn)的錯誤、系統(tǒng)給出的出錯信息和對策。分析討論成功或失敗的原因。(2)總結(jié)C程序的結(jié)構(gòu)和書寫規(guī)則。
實(shí)驗(yàn)二數(shù)據(jù)類型、運(yùn)算符和表達(dá)式1.實(shí)驗(yàn)?zāi)康模?)理解常用運(yùn)行符的功能、優(yōu)先級和結(jié)合性。(2)熟練掌握算術(shù)表達(dá)式的求值規(guī)則。(3)熟練使用賦值表達(dá)式。(4)理解自加、自減運(yùn)算符和逗號運(yùn)算符(5)掌握關(guān)系表達(dá)式和邏輯表達(dá)式的求值2.實(shí)驗(yàn)內(nèi)容(1)整數(shù)相除#include<stdio.h>intmain(){ inta=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d,e=%d,f=%d\n",d,e,f); return0;}(2)自加、自減運(yùn)算#include<stdio.h>intmain(){ inta=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return0;}(3)關(guān)系運(yùn)算和邏輯運(yùn)算#include<stdio.h>intmain(){ inta=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return0;}(1)在編輯狀態(tài)下輸入上述程序。(2)編譯并運(yùn)行上述程序。3.分析與討論(1)整數(shù)相除有什么危險?應(yīng)如何避免這種危險?(2)分析a++和++a的區(qū)別。(3)條件表達(dá)式和邏輯表達(dá)式的意義是什么,它們?nèi)≈等绾危浚?)如何比較兩個浮點(diǎn)數(shù)相等?為什么?實(shí)驗(yàn)三格式化輸入輸出函數(shù)的使用1.實(shí)驗(yàn)?zāi)康模?)掌握格式字符使用的方法。(2)掌握printf()進(jìn)行格式化輸出的方法。(3)掌握scanf()進(jìn)行格式化輸入的方法。2.實(shí)驗(yàn)內(nèi)容(1)輸入如下程序,觀察運(yùn)行結(jié)果#include<stdio.h>intmain(){intx=1234;floatf=123.456; doublem=123.456;charch='a'; chara[]="Hello,world!"; inty=3,z=4;printf("%d%d\n",y,z);printf("y=%d,z=%d\n",y,z);printf("%8d,%2d\n",x,x);printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f); printf("%lf\n",m);printf("%3c\n",ch);printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return0;}(2)輸入下面程序,觀察調(diào)試信息#include<stdio.h>intmain(){ doublex,y; charc1,c2,c3; inta1,a2,a3; scanf("%d%d%d",a1,a2,a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%f,%lf",&x,&y); printf("%f,%lf\n",x,y); return0;}(1)在VC++6.0集成開發(fā)環(huán)境中輸入上述程序,觀察調(diào)試結(jié)果。(2)如果有錯誤,請修改程序中的錯誤。3.分析與討論(1)分析程序錯誤及運(yùn)行結(jié)果錯誤的原因。(2)總結(jié)printf()中可使用的各種格式字符。(3)總結(jié)轉(zhuǎn)移字符的使用和功能。實(shí)驗(yàn)四分支結(jié)構(gòu)程序設(shè)計(jì)1.實(shí)驗(yàn)?zāi)康模?)了解條件與程序流程的關(guān)系(2)了解用不同的數(shù)據(jù)使程序的流程覆蓋不同的語句、分支和路徑。(3)掌握if語句和ifelse語句的用法(4)掌握switch語句的用法2.實(shí)驗(yàn)內(nèi)容1.從鍵盤上輸入三個數(shù),讓它們代表三條線段的長度,請寫一個判斷這三條線段所組成的三角形屬于什么類型(不等邊,等腰,等邊或不構(gòu)成三角形)的C程序。請分別設(shè)計(jì)下列數(shù)據(jù)對自己的程序進(jìn)行測試:(1)找出各條語句中的錯誤。(2)找出各分支中的錯誤。(3)
找出各條件中的錯誤。(4)
找出各種條件組合中的錯誤。(5)
找出各條路徑中的錯誤。2.用scanf函數(shù)輸入一個百分制成績(整型量),要求輸出成績等級A,B,C,D,E。其中90-100分為A,80-89分為B,70-79分為C,60-69分為D,60分以下為E。具體要求如下:(1)用if語句實(shí)現(xiàn)分支或switch分支。(2)在輸入百分制成績前要有提示。(3)在輸入百分制成績后,要判斷該成績的合理性,對于不合理的成績(即大于100分或小于0分)應(yīng)輸出出錯信息。(4)在輸出結(jié)果中應(yīng)包括百分制成績與成績等級,并要有文字說明。(5)分別輸入百分制成績:-90,100,90,85,70,60,45,101,運(yùn)行該程序。3.編程找出5個整數(shù)中的最大數(shù)和最小數(shù),并輸出找到的最大數(shù)和最小數(shù)。3.分析與討論(1)總結(jié)分支程序設(shè)計(jì)的方法。(2)復(fù)合語句的使用。(3)switch語句的注意事項(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è)定循環(huán)條件,以及如何控制循環(huán)的次數(shù)。(2)了解條件型循環(huán)結(jié)構(gòu)的基本測試方法。(3)掌握如何正確地控制計(jì)數(shù)型循環(huán)結(jié)構(gòu)的次數(shù)。(4)了解對計(jì)數(shù)型循環(huán)結(jié)構(gòu)進(jìn)行測試的基本方法。(5)了解在嵌套循環(huán)結(jié)構(gòu)中,提高程序效率的方法。2.實(shí)驗(yàn)內(nèi)容(1)輸入一個正整數(shù),并將其顛倒過來。如12345對應(yīng)為54321。(2)將一個長整型數(shù)s的每一位數(shù)位上的偶數(shù)依次取出來,構(gòu)成一個新的數(shù)t中,高位仍在高位,低位仍在低位,例如:s=87653142時,t中的數(shù)為:8642。(3)判斷101~200之間有多少個素?cái)?shù)。(4)編寫程序,輸出楊輝三角。3.分析與討論(1)總結(jié)條件循環(huán)結(jié)構(gòu)的一般方法。(2)如何測試計(jì)數(shù)型循環(huán)結(jié)構(gòu)的控制表達(dá)式中的錯誤?(3)從實(shí)驗(yàn)中你得到了哪些提高嵌套循環(huán)程序效率的啟示?實(shí)驗(yàn)六函數(shù)1.實(shí)驗(yàn)?zāi)康模?)掌握C語言函數(shù)定義及調(diào)用的規(guī)則。(2)理解參數(shù)傳遞的過程。(3)掌握函數(shù)返回值的大小和類型確定的方法。(4)理解變量的作用范圍2.實(shí)驗(yàn)內(nèi)容(1)上機(jī)調(diào)試下面的程序,記錄系統(tǒng)給出的出錯信息,并指出出錯原因。#include<stdio.h>intmain(){int,y;printf(“%d\n”,sum(x+y));intsum(a,b){inta,b;return(a+b);}return0;}(2)編寫一個程序,輸入系數(shù)a、b、c,求一元二次方程的根,包括主函數(shù)和如下函數(shù)。判斷a是否為零。計(jì)算判別式計(jì)算根的情況。輸出根。(3)輸入下面程序,分析運(yùn)行結(jié)果#include<stdio.h>intfunc(int,int);intmain(){intk=4,m=1,p1,p2;p1=func(k,m); p2=func(k,m);printf("%d,%d\n",p1,p2); return0;}intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}3.分析與討論(1)針對以上實(shí)驗(yàn)內(nèi)容寫出相應(yīng)的參數(shù)傳遞過程并分析結(jié)果。(2)函數(shù)在定義時要注意什么?(3)討論靜態(tài)局部變量的繼承性?實(shí)驗(yàn)七數(shù)組及其應(yīng)用1.實(shí)驗(yàn)?zāi)康模?)掌握數(shù)組定義的規(guī)則。(2)掌握C語言數(shù)組的基本用法。(3)掌握數(shù)組名作為函數(shù)參數(shù)傳遞的方法2.實(shí)驗(yàn)內(nèi)容(1)運(yùn)行下面的C程序,根據(jù)運(yùn)行結(jié)果,可以說明什么?#include<stdio.h>intmain(){intnum[5]={1,2,3,4,5};intii;for(i=0;i<=5;i++)printf(“%d”,num[i]);return0;}(2)為一個冒泡排序程序設(shè)計(jì)測試用例,并測試之。(3)操作符&用以求一個變量的地址,這在函數(shù)scanf中已經(jīng)使用過了。現(xiàn)在要你設(shè)計(jì)一個程序,返回一個3×5的二維數(shù)組各元素的地址,并由此說明二維數(shù)組中各元素是按什么順序存儲的。3.分析與討論(1)通過實(shí)驗(yàn),分析定義與引用數(shù)組的區(qū)別。(2)數(shù)組的作用是什么?(3)數(shù)組名作為參數(shù)有什么特點(diǎn)?實(shí)驗(yàn)八指針及其應(yīng)用1.實(shí)驗(yàn)?zāi)康模?)掌握變量的指針及其基本用法。(2)掌握一維數(shù)組的指針及其基本用法。(3)掌握指針變量作為函數(shù)的參數(shù)時,參數(shù)的傳遞過程及其用法。2.實(shí)驗(yàn)內(nèi)容(1)對以下程序進(jìn)行運(yùn)行,并從中了解變量的指針和指針變量的概念。#include<stdio.h>intmain(){inta=5,b=5,*p;p=&a;printf(“%d,%ud\n”,a,p);*p=8;printf(“%d,%ud\n”,a,p);p=&b;printf(“%d,%ud\n”,a,p);b=10;printf(“%d,%ud\n”,a,p);return0;}(2)運(yùn)行以下程序,觀察&a[0],&a[i])和p的變化,然后回答以下問題:=1\*GB3①程序的功能是什么?=2\*GB3②在開始進(jìn)入循環(huán)體之前,p指向誰?=3\*GB3③循環(huán)每增加一次,p的值(地址)增加多少?它指向誰?=4\*GB3④退出循環(huán)后,p指向誰?=5\*GB3⑤你是否初步掌握了通過指針變搔引用數(shù)組元素的方法?#include<stdio.h>intmain(){inti,*p,s=0,a[5]={5,6,7,8,9};p=a;for(i=0;i<5;i++,p++)s+=*p;printf(“\ns=%d”,s);return0;}(3)先分析以下程序的運(yùn)行結(jié)果,然后上機(jī)驗(yàn)證,并通過此例掌握通過指針變量引用數(shù)組元素的各種方法。#include<stdio.h>intmain(){inti,s1=0,s2=0,s3=0,s4=0,*p,a[5]={1,2,3,4,5};p=a;for(i=0;i<5;i++)s1+=p[i];for(i=0;i<5;i++)s2+=*(p+i);
for(p=a;p<a+5;p++)s3+=*p;p=a;for(i=0;i<5;i++)s4+=*p++;printf(“\ns1=%d,s2=%d,s3=%d,s4=%d”s1,s2,s3,s4);return0;}(4)編寫函數(shù),將n個數(shù)按原來的順序的逆序排列(要求用指針實(shí)現(xiàn)),然后編寫主函數(shù)完成:=1\*GB3①輸入10個數(shù);=2\*GB3②調(diào)用此函數(shù)進(jìn)行重排;=3\*GB3③輸出重排后的結(jié)果。3.分析與討論(1)指針的定義方法,指針和變量的關(guān)系。(2)數(shù)組和指針的關(guān)系。實(shí)驗(yàn)九結(jié)構(gòu)體及其應(yīng)用1.實(shí)驗(yàn)?zāi)康模?)掌握結(jié)構(gòu)體類型變量與結(jié)構(gòu)體數(shù)組的定義和使用。(2)學(xué)會使用結(jié)構(gòu)體指針變量和結(jié)構(gòu)體指針數(shù)組。(3)掌握鏈表的概念,初步學(xué)會對鏈表進(jìn)行操作。2.實(shí)驗(yàn)內(nèi)容(1)輸入出10個學(xué)生的學(xué)號、姓名和成績,求出其中的高分者和低分者。#include<stdio.h>structstudent{ intnum;charname[20];intscore;};intmain(){ inti;structstudentst,stmax,stmin; stmax.score=0;stmin.score=100; printf("\ninputdata"); for(i=0;i<10;i++) { scanf("%d%s%d",&st.num,,&st.score); if(st.score>stmax.score) stmax=st; if(st.score<stmin.score) stmin=st; } printf("\nhight:%5d%15s%5d",stmax.num,,stmax.score); printf("\nlow:%5d%15s%5d",stmin.num,,stmin.score); return0;}=1\*GB3①分析程序,上機(jī)運(yùn)行程序。=2\*GB3②程序中,哪些是對結(jié)構(gòu)體變量的成員引用,哪些是整體引用?=3\*GB3③對于此例來說,用結(jié)構(gòu)體變量作為數(shù)據(jù)結(jié)構(gòu)有何優(yōu)越性?(2)有一學(xué)生情況如下表所示。編制一個C程序,用冒泡法對該學(xué)生情況表按成績(grade)從低到高進(jìn)行排序。學(xué)號姓名性別年齡成績101ZhangM1995.6102wangF1892.2103zhaoM1985.7104liM2096.3105GaoM1990.2106LinM1891.2107MaF1898.7108ZhenM2188.7109XuM1990.1110MaoF2294.7具體要求如下:=1\*GB3①結(jié)構(gòu)體類型為structstudent{intnum;charname[8];charsex;intage;doublegrade;}=2\*GB3②在程序中用一個結(jié)構(gòu)體指針數(shù)組,其中每一個指針元素指向結(jié)構(gòu)體類型的各元素。=3\*GB3③在程序中,首先輸出排序前的學(xué)生情況,然后輸出排序后的結(jié)果,其格式如上表所示。(3)鏈表基本操作,具體要求如下:=1\*GB3①初始時鏈表為空,即鏈表的頭指針為空。=2\*GB3②對于上表所示的學(xué)生情況表,依次將每個學(xué)生的情況作為一個結(jié)點(diǎn)插入到單鏈表的鏈頭(即當(dāng)前插入的結(jié)點(diǎn)將成為第一個結(jié)點(diǎn))。=3\*GB3③所有學(xué)生情況都插入到鏈表中后,從鏈頭開始,依次輸出鏈表中的各結(jié)點(diǎn)值(即每個學(xué)生的情況)。輸出格式如同上表。3.分析與討論(1)結(jié)構(gòu)體的作用,如何進(jìn)行初始化?(2)如何訪問結(jié)構(gòu)體中的成員。(3)鏈表有什么優(yōu)點(diǎn)?實(shí)驗(yàn)十文件1.實(shí)驗(yàn)?zāi)康模?)掌握文件與文件指針的概念。(2)學(xué)會使用文件打開、文件關(guān)閉、讀與寫文件等基本的文件操作函數(shù)。(3)運(yùn)用文件操作函數(shù)進(jìn)行程序設(shè)計(jì)。2.實(shí)驗(yàn)內(nèi)容(1)以文本方式建立初始數(shù)據(jù)文件,請輸入10個學(xué)生的學(xué)號、姓名及考試成績,形式如下:LiLi80HuWei90LiMing75┇讀入file1.dat中的數(shù)據(jù),找出最高分和最低度分的學(xué)生。#include<stdio.h>structstudent{ intnum; charname[20]; intscore;};intmain(){ inti; structstudentst,stmax,stmin; FILE*fp; stmax.score=0;stmin.score=100; fp=fopen("file1.dat","r"); if(!fp)return1; for(i=0;i<10;i++) { fscanf(fp,"%d%s%d",&st.num,,&st.score); if(st.score>stmax.score) stmax=st; if(st.score<stmin.score) stmin=st; } fclose(fp); printf("hight:%5d%15s%5d",stmax.num,,stmax.score); printf("\nlow:%5d%15s%5d",stmin.num,,stmin.score); return0;}=1\*GB3①分析程序,上機(jī)運(yùn)行程序并分析運(yùn)行結(jié)果。=2\*GB3②如果事先不知道學(xué)生個數(shù),則程序應(yīng)該如何修改?請將以上程序中的循環(huán)語句for(i=0;i<10;i++)改為(while(!feof(fp))再運(yùn)行程序,看結(jié)果是否正確?(2)讀入file2.dat中的數(shù)據(jù),然后按成績從高到低度的順序進(jìn)行排序,并將排序結(jié)果分別以文本方式存入到文件file3.dat中,以二進(jìn)制形式存入文件file4.dat中。#include<stdio.h>structstudent{ intnum; charname[20]; intscore;};voidsort(structstudent*,int);intmain(){ inti,n=10; structstudentst[10]; FILE*fp,*fp1,*fp2; fp=fopen("file2.dat","r"); if(!fp)return1; for(i=0;i<10;i++) fscanf(fp,"%4d%10s%3d",&st[i].num,st[i].name,&st[i].sco
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓(xùn)班合作協(xié)議書(5篇)
- 廚房的消防應(yīng)急預(yù)案(5篇)
- 新聞紙強(qiáng)度提升策略-洞察分析
- 元數(shù)據(jù)標(biāo)準(zhǔn)與互操作性-洞察分析
- 疫情后物流新趨勢-洞察分析
- 微生物組與個性化醫(yī)療-洞察分析
- 同慶建筑風(fēng)格的文化內(nèi)涵解讀-洞察分析
- 用戶旅程優(yōu)化路徑-洞察分析
- 向媽媽承認(rèn)錯誤檢討書(15篇)
- 微生物生物地球化學(xué)循環(huán)研究進(jìn)展-洞察分析
- 經(jīng)理與領(lǐng)導(dǎo)人員管理制度
- 2024年湖北省襄陽市高新區(qū)招聘46人歷年管理單位遴選500模擬題附帶答案詳解
- 物理實(shí)驗(yàn)知到智慧樹章節(jié)測試課后答案2024年秋沈陽理工大學(xué)
- 高血壓課件教學(xué)課件
- 孕期常見癥狀及處理課件
- 網(wǎng)絡(luò)信息安全工程師招聘面試題及回答建議(某大型國企)2025年
- 《2025酒店預(yù)算的進(jìn)與退》
- 肺癌的介入治療護(hù)理
- 民辦學(xué)校教職工入職背景審查制度
- 軟件驗(yàn)收合同范本(2篇)
- 浙江省寧波市2023-2024學(xué)年高一上學(xué)期1月期末地理試題 附答案
評論
0/150
提交評論