第一篇:C語言-實(shí)驗(yàn)四
實(shí)
驗(yàn)
報(bào)
告
課程名稱實(shí)驗(yàn)項(xiàng)目
學(xué)院 系別 班級(jí)/學(xué)號(hào) 學(xué)生姓名 實(shí)驗(yàn)日期 成績(jī) 指導(dǎo)教師
程序設(shè)計(jì)基礎(chǔ)(C語言)實(shí)驗(yàn)四 數(shù)組
(二)
一、實(shí)驗(yàn)?zāi)康?/p>
1.掌握二維數(shù)組的定義和初始化。2.掌握二維數(shù)組元素的引用及其應(yīng)用。
二、實(shí)驗(yàn)內(nèi)容
注:本次實(shí)驗(yàn)完成前三個(gè)題目或者僅完成第四個(gè)題目最高分為90分,完成全部四個(gè)題目最高分100分。
題目1:輸入十個(gè)人的姓名,并按升序輸出。(用選擇法或者冒泡法排序)
流程圖:
代碼:
#include
{ int i,j;char a[10][5],t[2];printf(“請(qǐng)輸入十個(gè)人的名字:n”);for(i=0;i<10;i++){ } for(j=0;j<10;j++){
} printf(“排序輸出:n”);for(i=0;i<10;i++)for(i=0;i<10-j;i++){
} if(strcmp(a[i],a[i+1])>0){
} strcpy(t,a[i]);strcpy(a[i],a[i+1]);strcpy(a[i+1],t);gets(a[i]);} puts(a[i]);return 0;}
題目2:求兩個(gè)矩陣的積。如:
運(yùn)算規(guī)則為:
第i行第j列相乘得到結(jié)果矩陣中r[i][j]的值。比如:
r[0][0] = 1*1+2*5+3*8=35;r[0][1] = 1*5+2*3+3*1=14;r[1][0] = 4*1+5*5+6*8=77;r[1][1] = 4*5+5*3+6*1=41;要求:
1.數(shù)組的行數(shù)和列數(shù)不超過100。
2.輸入第一行中,第一個(gè)正整數(shù)m,表示第一個(gè)矩陣的行數(shù),輸入第二個(gè)正整數(shù)n,表示第一個(gè)矩陣的列數(shù),也即是第二個(gè)矩陣的行數(shù),輸入第三個(gè)正整數(shù)p,表示第二個(gè)矩陣的列數(shù)。
3.接下來的m*n個(gè)數(shù)是第一個(gè)矩陣中的數(shù)。4.再接下來的n*p個(gè)數(shù)是第二個(gè)矩陣中的數(shù)。5.輸出計(jì)算結(jié)果,為一個(gè)m行,p列的矩陣。流程圖:
#include
int a[100][100]={0},b[100][100]={0},c[100][100]={0},i,j,k,n,m,p;printf(“請(qǐng)輸入第一個(gè)矩陣的行數(shù)m:n”);scanf(“%d”,&m);printf(“請(qǐng)輸入正整數(shù)n(第一個(gè)矩陣的列數(shù),也是第二個(gè)矩陣的行數(shù)):n”);
for(i=0;i for(j=0;j printf(“這兩個(gè)矩陣的和為:n”);for(i=0;i } for(j=0;j 題目3:求矩陣的鞍點(diǎn)。鞍點(diǎn)位置上的元素在該行中值最大,在該列中值最小。如下面矩陣的鞍點(diǎn)為35。 【輸入】前兩個(gè)數(shù)為行數(shù)和列數(shù),其后是矩陣中的元素 【輸出】如果沒有鞍點(diǎn),輸出NO;如果有輸出格式為:[值1,行下標(biāo)1,列下標(biāo)1],[值2,行下標(biāo)2,列下標(biāo)2]…… 流程圖: #include int a[100][100];int m,n,i,j,t,k;printf(“請(qǐng)輸入行數(shù)m和列數(shù)n:n”);scanf(“%d%d”,&m,&n);printf(“請(qǐng)輸入這個(gè)%d*%d矩陣:n”,m,n);for(i=0;i for(j=0;j for(t=0,j=1;j } k=1;printf(“鞍點(diǎn)[%d]是%d:行下標(biāo)%d,列下標(biāo)%dn”,k,a[i][t],i,t);k++;} return 0;} 運(yùn)行結(jié)果: 題目4:學(xué)生成績(jī)統(tǒng)計(jì) ? 一個(gè)班共有6名學(xué)生,已知每個(gè)學(xué)生有5門課程的成績(jī) ? 請(qǐng)輸出每個(gè)學(xué)生的平均成績(jī) ? 請(qǐng)輸出每門課程的平均成績(jī) ? 請(qǐng)輸出學(xué)生的最高平均成績(jī)和序號(hào) ? 請(qǐng)輸出課程的最高平均成績(jī)和序號(hào) 流程圖: #include float a[7][6],b[7],c[6];int m,n,i;printf(“請(qǐng)輸入6名學(xué)生的5門課程的成績(jī):n”);for(m=1;m<7;m++){ } for(m=1;m<7;m++){ } for(n=1;n<6;n++){ } for(m=1;m<7;m++)c[n]=0;for(m=1;m<7;m++)c[n]+=a[m][n];b[m]=0;for(n=1;n<6;n++)b[m]+=a[m][n];for(n=1;n<6;n++)scanf(“%f”,&a[m][n]);b[m]=b[m]/5;printf(“第%d名學(xué)生的平均成績(jī)?yōu)?.1fn”,m,b[m]);c[n]=c[n]/6;printf(“第%d門課的平均成績(jī)?yōu)?.1fn”,n,c[n]); } { } for(m=1;m<6;m++){ } return 0;i=0;for(n=1;n<6;n++){ } if(i==5)printf(“第%d門課成績(jī)最高為%.1fn”,m,c[m]);if(c[m]>=c[n])i++;i=0;for(n=1;n<7;n++){ } if(i==6)printf(“第%d名學(xué)生成績(jī)最高為%.1fn”,m,b[m]);if(b[m]>=b[n])i++;運(yùn)行結(jié)果: 題目5:井字格游戲 程序大致的執(zhí)行過程如圖所示: 功能包括: 1.允許兩個(gè)玩家下棋 2.允許玩家輸入下棋的坐標(biāo) 3.顯示當(dāng)前棋盤狀態(tài) 4.判斷玩家是否下錯(cuò)位置,即在已經(jīng)下過棋的位置再次下棋 5.判斷玩家下棋后,輸贏狀態(tài) 6.在屏幕提示中指導(dǎo)玩家交替下棋 流程圖: 省列。代碼: #include T[site1][site2]='X';for(i=0;i<3;i++){ printf(“-------n”);for(j=0;j<3;j++){ printf(“|”);printf(“%c”,T[i][j]);} printf(“|n”);if(i==2) } else return 99;} printf(“-------n”);} return 0;int printerB(int site1,int site2){ if(tasic[site1][site2]==0&&basic[site1][site2]==0){ tasic[site1][site2]=-1;T[site1][site2]='O';for(i=0;i<3;i++){ printf(“-------n”);for(j=0;j<3;j++) { printf(“|”);printf(“%c”,T[i][j]);} printf(“|n”);if(i==2){ printf(“-------n”);} } return 0;} else return-99;} int main(){ int m,n,a,b;while(kongzhi==1){ if((basic[0][0]+basic[0][1]+basic[0][2]==3)||(basic[1][0]+basic[1][1] do { a=0;printf(“請(qǐng)A下子:”);scanf(“%d%d”,&m,&n); a=printerA(m,n);if(a==99)printf(“對(duì)不起,您下錯(cuò)位置了!n”);} while(a==99);+basic[1][2]==3)||(basic[2][0]+basic[2][1]+basic[2][2]==3)||(basic[0][0]+basic[1][1]+basic[2][2]==3)||(basic[0][2]+basic[1][1]+basic[2][0]==3)){ printf(“A贏了!n”);return 0;} do { b=0;printf(“請(qǐng)B下子:”);scanf(“%d%d”,&m,&n); b=printerB(m,n);if(b==-99) printf(“對(duì)不起,您下錯(cuò)位置了!n”);} while(b==-99);if((tasic[0][0]+tasic[0][1]+tasic[0][2]==-3)||(tasic[1][0]+tasic[1][1]+tasic[1][2]==-3)||(tasic[2][0]+tasic[2][1]+tasic[2][2]==-3)||(tasic[0][0]+tasic[1][1]+tasic[2][2]==-3)||(tasic[0][2]+tasic[1][1]+tasic[2][0]==-3)) { printf(“B贏了!n”);return 0;} i++;if(i==9){ printf(“平局!”);return 0;} } } 運(yùn)行結(jié)果: 心得體會(huì):這幾道題加深了我對(duì)數(shù)組的理解,及其相關(guān)應(yīng)用。 實(shí)驗(yàn)四 SQL語言——數(shù)據(jù)更新操作 2007-06-16 01:12:44|分類: 課程作業(yè) |標(biāo)簽:數(shù)據(jù)更新操作sql語言|字號(hào)大中小 訂閱 實(shí)驗(yàn)四 SQL語言——數(shù)據(jù)更新操作 三、實(shí)驗(yàn)條件與環(huán)境 1.通用PC機(jī) 2.PC機(jī)必須安裝Windows 2000系列、Windows XP系列或Windows NT操作系統(tǒng)平臺(tái) 3.PC機(jī)還須安裝Microsoft SQL Server 2000 任意一版本(個(gè)人版、標(biāo)準(zhǔn)版、企業(yè)版) 4.最好有一臺(tái)公用的SQL Server 2000 服務(wù)器 四、實(shí)驗(yàn)?zāi)康?.通過上機(jī)實(shí)驗(yàn)進(jìn)一步加深對(duì)SQL數(shù)據(jù)更新(插入、修改及刪除)語句的基本語法格式的掌 握 2.通過上機(jī)實(shí)驗(yàn)掌握單個(gè)元組插入操作的實(shí)現(xiàn)過程 3.通過上機(jī)實(shí)驗(yàn)掌握多個(gè)元組插入操作的實(shí)現(xiàn)過程 4.通過上機(jī)實(shí)驗(yàn)掌握單個(gè)元組修改操作的實(shí)現(xiàn)過程 5.通過上機(jī)實(shí)驗(yàn)掌握多個(gè)元組修改操作的實(shí)現(xiàn)過程 6.通過上機(jī)實(shí)驗(yàn)掌握單個(gè)元組刪除操作的實(shí)現(xiàn)過程 7.通過上機(jī)實(shí)驗(yàn)掌握多個(gè)元組刪除操作的實(shí)現(xiàn)過程 8.通過上機(jī)實(shí)驗(yàn)加深對(duì)更新操作時(shí)數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性問題的了解 9.通過上機(jī)實(shí)驗(yàn)加深對(duì)約束條件在數(shù)據(jù)更新操作執(zhí)行中的作用問題的了解 五、實(shí)驗(yàn)要求 1.本實(shí)驗(yàn)所有實(shí)驗(yàn)內(nèi)容要求在規(guī)定時(shí)間(2課時(shí))內(nèi)完成2.實(shí)驗(yàn)內(nèi)容中涉及到的各更新操作均通過SQL語言來實(shí)現(xiàn) 3.本實(shí)驗(yàn)中各操作內(nèi)容的執(zhí)行均會(huì)更新當(dāng)前數(shù)據(jù)庫(kù),為便于下一實(shí)驗(yàn)內(nèi)容的順利執(zhí)行,請(qǐng)?jiān)诿砍晒ν瓿梢粋€(gè)實(shí)驗(yàn)內(nèi)容后重新導(dǎo)入初始狀態(tài)下的實(shí)驗(yàn)數(shù)據(jù)庫(kù) 4.實(shí)驗(yàn)完成后需要書寫實(shí)驗(yàn)報(bào)告,本次實(shí)驗(yàn)報(bào)告需在下次實(shí)驗(yàn)課堂上上交 六、實(shí)驗(yàn)內(nèi)容: 1.在S表中插入元組“s6,華譽(yù),40,廣州,02085268888” 2.在J表中插入元組“j8,傳感器廠” 3.對(duì)每一個(gè)供應(yīng)商,求他為各種工程供應(yīng)零件的總數(shù)量,并將此結(jié)果存入數(shù)據(jù)庫(kù) 4.將P表中PNO值為p6的元組的color屬性值改為綠,weight屬性值改為60 5.將SPJ表中前4個(gè)元組的qty屬性值統(tǒng)一修改為300 6.將S表中city屬性名含有“京”或“津”的相應(yīng)status屬性值增加100 7.將供應(yīng)商s2為“一汽”工程項(xiàng)目所供應(yīng)的零件數(shù)量修改為2000 8.將全部紅色零件的顏色修改為淺紅色 9.由s5供給j4的零件p6改為由s3供應(yīng),請(qǐng)?jiān)跀?shù)據(jù)庫(kù)中作必要的數(shù)據(jù)修改 10.在SPJ表中新增一列屬性名為SDATE的屬性列,對(duì)該表中的每一元組在SDATE屬性列 上填上實(shí)驗(yàn)當(dāng)時(shí)的日期和時(shí)間 11.刪除所在城市為“廣州”的供應(yīng)商記錄 12.刪除所有零件名稱中第一個(gè)字為“螺”字的零件記錄,并在供應(yīng)情況表中刪除相應(yīng)的記錄 13.刪除s3和s4兩供應(yīng)商為“三建”工程供應(yīng)“螺母”或“螺絲刀”零件的相應(yīng)供應(yīng)情況數(shù) 據(jù)信息 七、實(shí)驗(yàn)總結(jié): 數(shù)據(jù)更新操作(插入操作[INSERT]、修改操作[UPDATE]、刪除操作[DELETE])是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中一種極為重要、數(shù)據(jù)更新能力強(qiáng)、使用靈活的數(shù)據(jù)操縱方式,此數(shù)據(jù)操作的使用不是完全獨(dú)立的,而是和數(shù)據(jù)定義操作、數(shù)據(jù)查詢操作有著緊密聯(lián)系的。實(shí)驗(yàn)完成后,請(qǐng)同學(xué)們總結(jié)一下SQL語言在實(shí)現(xiàn)各種數(shù)據(jù)更新操作時(shí)與數(shù)據(jù)定義操作和數(shù)據(jù)查詢操作兩類操作之間的相互聯(lián)系,通過深入總結(jié),從而學(xué)會(huì)利用SQL語言實(shí)現(xiàn)較為復(fù)雜的數(shù)據(jù)更新任務(wù)。 實(shí)驗(yàn)四 SQL語言——數(shù)據(jù)更新操作 實(shí)驗(yàn)內(nèi)容參考答案 六、實(shí)驗(yàn)內(nèi)容 1.在S表中插入元組“s6,華譽(yù),40,廣州,02085268888” use shiyan go insert into s values('s6','華譽(yù)',40,'廣州','02085268888') 2.在J表中插入元組“j8,傳感器廠” use shiyan go insert into j(jno,jname) values('j8','傳感器廠') 3.對(duì)每一個(gè)供應(yīng)商,求他為各種工程供應(yīng)零件的總數(shù)量,并將此結(jié)果存入數(shù)據(jù)庫(kù) use shiyan go create table TotalQTYofS(SNO char(4)not null unique,TotalQTY int); insert into TotalQTYofS select sno,sum(qty) from spj group by sno; 4.將P表中PNO值為p6的元組的color屬性值改為綠,weight屬性值改為60 use shiyan go update p set color='綠',weight=60 where pno='p6' 5.將SPJ表中前4個(gè)元組的qty屬性值統(tǒng)一修改為300 use shiyan go update spj set qty=300 from(select top 4 * from spj order by sno)as table1 where spj.sno=table1.sno 6.將S表中city屬性名含有“京”或“津”的相應(yīng)status屬性值增加100 use shiyan go update s set status=status+100 where city like '%京%' or city like '%津% 7.將供應(yīng)商s2為“一汽”工程項(xiàng)目所供應(yīng)的零件數(shù)量修改為2000 use shiyan go update spj set qty=2000 where sno='s2' and jno=(select jno from j where jname='一汽') 8.將全部紅色零件的顏色修改為淺紅色 use shiyan go update p set color='淺紅' where color='紅' 9.由s5供給j4的零件p6改為由s3供應(yīng),請(qǐng)?jiān)跀?shù)據(jù)庫(kù)中作必要的數(shù)據(jù)修改 use shiyan go update spj set sno='s3' where sno='s5' and jno='j4' and pno='p6' 10.在SPJ表中新增一列屬性名為SDATE的屬性列,對(duì)該表中的每一元組在SDATE屬性列 上填上實(shí)驗(yàn)當(dāng)時(shí)的日期和時(shí)間 use shiyan go alter table spj add SDATE datetime update spj set SDATE=getdate() 11.刪除所在城市為“廣州”的供應(yīng)商記錄 use shiyan go delete from s where city='廣州' 12.刪除所有零件名稱中第一個(gè)字為“螺”字的零件記錄,并在供應(yīng)情況表中刪除相應(yīng)的記錄 use shiyan go delete from p where pname like '螺%' delete from spj where pno in(select pno from p where pname like '螺%') 13.刪除s3和s4兩供應(yīng)商為“三建”工程供應(yīng)“螺母”或“螺絲刀”零件的相應(yīng)供應(yīng)情況數(shù)據(jù)信息 use shiyan go delete from spj where(sno='s3' or sno='s4')and jno in(select jno from j where jname='三建')and pno in(select pno from p where pname='螺母' or pname='螺絲刀') 實(shí)驗(yàn) 四、Matlab的程序設(shè)計(jì) (一)實(shí)驗(yàn)?zāi)康?/p> 1.掌握利用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)的方法。 2.掌握利用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的方法。3.掌握利用for語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的方法。4.掌握利用while語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的方法。5.掌握Matlab函數(shù)的編寫及調(diào)試方法。 (二)實(shí)驗(yàn)環(huán)境 1.計(jì)算機(jī) 2.MATLAB7.0集成環(huán)境 (三)實(shí)驗(yàn)內(nèi)容 1、編寫一個(gè)函數(shù),計(jì)算下面函數(shù)的值,給出標(biāo)量x的值,調(diào)用該函數(shù)后,返回y的值。function y=myfun1(x)?sinx,?y(x)??x,??x?6,?x?00?x?3x?3 選擇一些數(shù)據(jù)測(cè)試你編寫的函數(shù)。function [y]=myfun1(x)if x<=0 y=sin(x);elseif x>0&x<=3 y=x;elseif x>3 y=-x+6;End 結(jié)果: >> x=5;>> [y]=myfun1(x)y = 1 2、編寫一個(gè)函數(shù)求向量x中元素的平均值、最大值、最小值、均方根值。 function [m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root Mean Square)的計(jì)算公式為: rms?1NN?i?1xi2 用下面數(shù)據(jù)測(cè)試你寫的函數(shù): function [m_x,max_x,min_x,rms_x]=myfun2(x)%求平均值 sum_x=sum(x);%向量元素求和 [m,n]=size(x);%最好用n=length(x);m_x=sum_x/n; %求最大值 采用逐個(gè)比較方式 if x(1)>x(2)max_x=x(1);else max_x=x(2);end for k=3:n if max_x else max_x=max_x;%可省略 end end %求最小值 if x(1) min_x=x(2);end for k=3:n if min_x>x(k) min_x=x(k); else min_x=min_x;%可省略 end end %求均方根值 sum_x2=0;for k=1:n sum_x2=sum_x2+x(k).^2;rms_x=sqrt(sum_x2/n);end m_x;max_x; min_x; rms_x;%按照函數(shù)值行(1)x=sin(0:0.01:6*pi)運(yùn)行結(jié)果:>> x=sin(0:0.01:6*pi);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x =-1.1256e-007 max_x = 1.0000 min_x =-1.0000 rms_x = 0.7071(2)x=rand(1,200),得到的x為200個(gè)(0,1)之間均勻分布的隨機(jī)數(shù)。>> x=rand(1,200);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x = 0.5231 max_x = 0.9994 min_x = 0.0056 rms_x = 0.5869 3、編寫求解方程ax?bx?c?0的根的函數(shù)(這個(gè)方程不一定為一元二次方程,因a、b、c的不同取值而定),這里應(yīng)根據(jù)a、b、c的不同取值分別處理,有輸入?yún)?shù)提示,當(dāng)a?0,b?0,c~?0時(shí)應(yīng)提示“為恒不等式!”。并輸入幾組典型值加以檢驗(yàn)。2M文件: disp('關(guān)于方程ax^2+bx+c=0')a=input('請(qǐng)輸入系數(shù)a=');b=input(' b=');c=input(' c=');if a==0&&b==0 if c==0 disp('解為全體實(shí)數(shù)'); else disp('為恒不等式!'); end else P=[a,b,c]; x=roots(P)end disp('關(guān)于方程ax^2+bx+c=0')a=input('請(qǐng)輸入系數(shù)a=');b=input(' b=');c=input(' c=');if a==0&&b==0 if c==0 disp('解為全體實(shí)數(shù)'); else disp('為恒不等式!'); end else P=[a,b,c];x=roots(P)end 工作空間測(cè)試: 關(guān)于方程ax^2+bx+c=0 請(qǐng)輸入系數(shù)a=2 b=4 c=6 x =-1.0000 + 1.4142i-1.0000-1.4142i 4、輸入一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)A+、A、B、C、D、E。其中100分為A+,90分~99分為A,80分~89分為B,70分~79分為C,60分~69分為D,60分以下為E。要求:(1)用switch語句實(shí)現(xiàn)。 (2)輸入百分制成績(jī)后要判斷該成績(jī)的合理性,對(duì)不合理的成績(jī)應(yīng)輸出出錯(cuò)信息。 g=input('請(qǐng)輸入成績(jī)'); if g<0||g>100 disp('錯(cuò)誤,輸入的成績(jī)應(yīng)為0~100間的數(shù)') else g=fix(g/10); switch g case {10} disp('A+'); case {9} disp('A'); case {8} disp('B'); case {7} disp('C'); case {6} disp('D') otherwise disp('E'); end5、利用for循環(huán)語句編寫計(jì)算n!的函數(shù)程序,取n分別為-89、0、3、5、10驗(yàn)證其正確性(輸入n為負(fù)數(shù)時(shí)輸出出錯(cuò)信息)。n=input('請(qǐng)輸入n='); if n<0 disp('錯(cuò)誤,n取值必須為正數(shù)'); else y=1; for i=1:n y=y*i; end disp('n!=');disp(y) 測(cè)試: 請(qǐng)輸入n=6 n!= 720 6、Fibonacci數(shù)組的元素滿足Fibonacci規(guī)則:現(xiàn)要求該數(shù)組中第一個(gè)大于10000的元素。 a(1)=1;a(2)=1; k=3; a(k)=a(k-1)+a(k-2); while a(k)<10000 k=k+1; a(k)=a(k-1)+a(k-2); 測(cè)試: >> ak=a(k)ak = ak?2?ak?ak?1,(k?1,2,?);且a1?a2?1。10946 ? 27、根據(jù)6?112?122?132?......?1n,求?的近似值。 2要求:(1)分別采用for循環(huán)結(jié)構(gòu)以及向量法來編程實(shí)現(xiàn),比較兩種方法程序運(yùn)行時(shí)間;(2)當(dāng)n分別取100、1000、10000時(shí),結(jié)果是多少? n=[100 1000 10000]; for j=1:3 y=0;k=n(j); for i=1:k y=y+1/i/i; end pai=sqrt(6*y);disp('n='); disp(n(j)); disp('π的近似值為'); disp(pai);結(jié)果: n= 100 π的近似值為 3.1321 n= 1000 π的近似值為 3.1406 n= 10000 π的近似值為 3.1415 (四)實(shí)驗(yàn)要求 1、熟練操作MATLAB7.0運(yùn)行環(huán)境; 2、自主編寫程序,必要時(shí)參考相關(guān)資料; 3、實(shí)驗(yàn)前應(yīng)寫出程序大致框架或完整的程序代碼; 4、完成實(shí)驗(yàn)報(bào)告。 (五)實(shí)驗(yàn)報(bào)告要求 見實(shí)驗(yàn)一。 思考題 1、M文件分為哪兩類?這兩類M文件的區(qū)別是什么? 答:分為命令文件和函數(shù)文件 1)函數(shù)文件一般都要帶參數(shù) , 都要有返回結(jié)果 , 而命令文件沒有參數(shù)與返回結(jié)果 2)函數(shù)文件的變量是局部變量 , 運(yùn)行期間有效 , 運(yùn)行完畢就自動(dòng)被清除 , 而命令文件的變量是全局變量 , 執(zhí) 行完畢后仍被保存在內(nèi)存中 3)函數(shù)文件要定義函數(shù)名 , 且保存該函數(shù)文件的文件名必須是函數(shù)名.m。M 函數(shù)文件可以有多個(gè)因變量和多 個(gè)自變量 , 當(dāng)有多個(gè)因變量時(shí)用[ ] 括起來。 2、有一分?jǐn)?shù)序列: 1, 3, 5, 8, 1321 22358, 13, 編寫一段程序,求前16項(xiàng)的和。 a=2.0;b=1.0;c=a/b; for 1:16 {b=a;a=a+b; d=(a+b)/a;c=c+d;} ?? ? C語言程序設(shè)計(jì)實(shí)驗(yàn) (四)[實(shí)驗(yàn)1] scanf()、printf()函數(shù)的使用。 1.實(shí)驗(yàn)題目 輸入1個(gè)學(xué)生學(xué)號(hào)和4門課程成績(jī),輸出這個(gè)學(xué)生的學(xué)號(hào)、4門課程成績(jī)和平均成績(jī)。 2.實(shí)驗(yàn)要求 (1)按表格的形式輸出,以行內(nèi)輸出一個(gè)學(xué)生的信息。 (2)學(xué)號(hào)用長(zhǎng)整型,各科成績(jī)用單精度型。 3.實(shí)驗(yàn)?zāi)繕?biāo) (1)掌握實(shí)現(xiàn)人機(jī)對(duì)話形式的方法,scanf()輸入。 (2)體會(huì)根據(jù)需要控制輸出格式的方法,printf()輸出。 4.實(shí)驗(yàn)指導(dǎo) 利用格式的數(shù)據(jù)寬度控制數(shù)據(jù)的對(duì)位輸出。輸出如下格式: The number and score of a student is: |---| |number | score1 | score2 | score3 | sco re4 | average | |---| |10011| 67.5|88.0 |93.5 |78.0|81.75 | |---| [實(shí)驗(yàn)2] getchar()、putchar()函數(shù)的使用 1.實(shí)驗(yàn)題目 用getchar()函數(shù)讀入a~v之間的一個(gè)字母,用putchar()函數(shù)輸出一個(gè)5行5列的矩陣,該矩陣第一行為讀入的字母,下一行為緊跟該字母后的字母,依此類推。如輸入a,則輸出的矩陣為: aaaaa bbbbb ccccc ddddd eeeee 2.實(shí)驗(yàn)要求 (1)運(yùn)用getchar()進(jìn)行字符輸入。 (2)運(yùn)用putchar()進(jìn)行字符輸出。 3.實(shí)驗(yàn)?zāi)繕?biāo) (1)體會(huì)根據(jù)需要控制輸出格式的方法。 [實(shí)驗(yàn)3] 3.6 下面程序運(yùn)行時(shí)在鍵盤上如何輸入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,請(qǐng)寫出對(duì)應(yīng)每個(gè)scanf函數(shù)的輸入情況。 main() { int a,b;float x,y;char c1,c2; scanf(“a=%d□b=%d”,&a,&b); scanf(“□%f %e”,&x,&y); scanf(“□%c %c”,&c1,&c2); } 3.7編一程序,從鍵盤輸入一個(gè)圓半徑值,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積。輸出結(jié)果時(shí),要求有文字說明,保留2位小數(shù)。 提示:設(shè)圓半徑為r,則圓周長(zhǎng)=2πr,圓面積=πr2,圓球表面積=4πr2,圓球體積= 4πr3/3。 電子科技大學(xué) 計(jì)算機(jī) 學(xué)院 標(biāo) 準(zhǔn) 實(shí) 驗(yàn) 報(bào) 告 (實(shí)驗(yàn))課程名稱 C語言程序設(shè)計(jì) 電子科技大學(xué)教務(wù)處制表 電 子 科 技 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告 四 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師:劉 勇 實(shí)驗(yàn)地點(diǎn): 計(jì)算機(jī)學(xué)院軟件306室 實(shí)驗(yàn)日期: ****年**月**日 一、實(shí)驗(yàn)室名稱: 軟件實(shí)驗(yàn)室 二、實(shí)驗(yàn)項(xiàng)目名稱:函數(shù)的應(yīng)用及預(yù)處理 三、實(shí)驗(yàn)學(xué)時(shí):2 四、實(shí)驗(yàn)原理: 使用Turbo C軟件(簡(jiǎn)稱TC),在微型計(jì)算機(jī)上,對(duì)其程序進(jìn)行編輯、編譯、連接與運(yùn)行。Turbo C是一個(gè)集成環(huán)境,它具有方便、直觀、易用的界面和豐富的庫(kù)函數(shù)。通過上機(jī)練習(xí)掌握在TC環(huán)境下編輯、編譯、連接、和運(yùn)行C程序的方法和過程。 五、實(shí)驗(yàn)?zāi)康?/p> 1. 掌握C語言中定義函數(shù)的方法; 2. 掌握函數(shù)傳值調(diào)用的方法; 3. 掌握函數(shù)傳址調(diào)用的方法; 4. 掌握遞歸函數(shù)的設(shè)計(jì)方法; 5. 掌握命令行參數(shù)的使用方法; 6. 掌握函數(shù)在不同文件中的編譯、鏈接方法。 六、實(shí)驗(yàn)內(nèi)容 編程實(shí)驗(yàn),完成以下上機(jī)內(nèi)容,調(diào)試運(yùn)行程序并完成報(bào)告 1)、教材第七章習(xí)題7.4; 2)、編寫一個(gè)實(shí)現(xiàn)冒泡法排序的函數(shù),并在主函數(shù)中從鍵盤上輸入6個(gè)數(shù)后進(jìn)行排序輸出; 3)、教材第七章習(xí)題7.11; 4)、教材第七章習(xí)題7.15; 5)、教材第七章習(xí)題7.24; 6)、求解漢渃塔(tower of Hanoi)問題。在一塊平板上立有3根立柱,從左到右分別標(biāo)記為A,B,C。最初在A柱上放有6個(gè)大小不等的圓盤,并且大盤在下面,小盤在上面。要求將這些盤從A移到C(可以借助B柱)。條件是:每次只能移動(dòng)一個(gè)盤,并且不允許把大盤放在小盤的上面。(提示:利用函數(shù)的遞歸調(diào)用); 七、實(shí)驗(yàn)器材(設(shè)備、元器件): pc硬件要求:CPU PII 以上,64M 內(nèi)存,1OOM 硬盤空間即可。 軟件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。 八、實(shí)驗(yàn)步驟: 實(shí)驗(yàn)編程與運(yùn)行結(jié)果 ⑴ 編寫一個(gè)求兩個(gè)整數(shù)的最小公倍數(shù)的函數(shù),兩個(gè)整數(shù)由鍵盤輸入,用主函數(shù)調(diào)用這個(gè)函數(shù),并輸出結(jié)果。 程序文件名為7_4.c,源程序清單如下: #include 運(yùn)行結(jié)果: ⑵ 編寫一個(gè)實(shí)現(xiàn)冒泡法排序的函數(shù),并在主函數(shù)中從鍵盤上輸入6個(gè)數(shù)后進(jìn)行排序輸出。 程序文件名為testf3.c,源程序清單如下: main(){ int i,j,a[7];int temp;clrscr();for(i=1;i<7;i++){ printf(“nInput a[%d]=”,i);scanf(“%d”,&a[i]);} for(i=1;i<6;i++)for(j=1;j<7;j++){ if(a[j] temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(i=1;i<7;i++){ printf(“n%5d”,a[i]);} }_ 運(yùn)行結(jié)果: ⑶ 編寫一個(gè)通過函數(shù)調(diào)用把輸入的小寫字符串變?yōu)榇髮懽址某绦颉?/p> 程序文件名為7_11.c,源程序清單如下: #include第二篇:實(shí)驗(yàn)四SQL語言
第三篇:《Matlab語言》實(shí)驗(yàn)四
第四篇:C語言程序設(shè)計(jì)實(shí)驗(yàn)四(本站推薦)
第五篇:《C語言程序設(shè)計(jì)》實(shí)驗(yàn)四