




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 順序結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?. 掌握C語言中使用最多的一種語句賦值語句的使用方法。2. 掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。二、實(shí)驗(yàn)的內(nèi)容和步驟1.以下程序多處有錯(cuò)。要按下面指定的形式輸入數(shù)據(jù)和輸出數(shù)據(jù)時(shí),請(qǐng)對(duì)該程序做相應(yīng)的修改。#include void main ( ) double a,b,c,s,v; printf(input a,b,c:n); scanf(%d%d%d,a,b,c);s=a*b;v=a*b*c;printf(%d %d %d,a,b,c);printf(s=%fn,s,v=%dn,v);當(dāng)程序執(zhí)行時(shí),屏幕的顯示和要求輸入形式如下:i
2、nput a,b,c:1.0 2.0 3.0 此處的1.0 2.0 3.0是用戶輸入的數(shù)據(jù)a=1.000000 b=2.000000,c=3.000000 此處是要求的輸出格式s=2.000000,v=6.000000相關(guān)知識(shí): 檢查程序錯(cuò)誤時(shí)應(yīng)注意幾點(diǎn):a)有時(shí)程序中一個(gè)錯(cuò)誤會(huì)引發(fā)一系列錯(cuò)誤信息,工作中不應(yīng)被這種情況所迷惑,改正了一些錯(cuò)誤后應(yīng)及時(shí)對(duì)源程序重新進(jìn)行編譯;b)如果修改錯(cuò)誤時(shí)增刪了行,或是一個(gè)行里有多個(gè)錯(cuò)誤,更正前面錯(cuò)誤時(shí)增刪了字符,就可能導(dǎo)致系統(tǒng)對(duì)錯(cuò)誤定位不準(zhǔn),此時(shí)應(yīng)該重新編譯;c)系統(tǒng)給出的警告信息一般都說明程序中有問題,因?yàn)橄到y(tǒng)發(fā)現(xiàn)了可疑情況。對(duì)于警告信息同樣要逐個(gè)仔細(xì)分析。
3、除非明確認(rèn)定不是問題,否則絕不能簡(jiǎn)單地認(rèn)為不是錯(cuò)誤而不予理睬。實(shí)際上,很多警告都是因?yàn)槌绦蛑写_實(shí)有嚴(yán)重的隱含錯(cuò)誤。d) 在連接中發(fā)現(xiàn)新錯(cuò)誤也需要仔細(xì)檢查和修改程序。連接時(shí)發(fā)現(xiàn)的錯(cuò)誤一般是由于函數(shù)名或外部變量名字寫錯(cuò),或者一些函數(shù)、外部變量沒有定義引起的。系統(tǒng)不能對(duì)連接錯(cuò)誤給以自動(dòng)定位,只能提供有關(guān)的名字信息等。對(duì)于這類問題,可以借助編輯器的字符串查找命令進(jìn)行定位。正確調(diào)用scanf函數(shù)和printf函數(shù)構(gòu)成輸入和輸出語句。2.有以下程序 #include void main() char c1,c2; int n1,n2; c1=getchar();c2=getchar();n1=c1-0;n
4、2= n1*10+(c2-0); printf(%dn,n2);程序運(yùn)行時(shí)輸入:12,執(zhí)行后輸出結(jié)果是什么?相關(guān)知識(shí):getchar()函數(shù)用來輸入兩個(gè)字符分別賦給變量c1和c2;n1=c1-0相當(dāng)于n1=1 -0,字符1的ASCII碼值比0大一,所以n1中的值為1,c2-0相當(dāng)于2 -0;把字符串轉(zhuǎn)換為多位數(shù)的算法。3.若有以下程序#include void main() int i,j; int x,y; scanf(i=%d,j=%d,&i,&j); scanf(%d%d,&x,&y); printf(i=%d,j=%dn,i,j); printf(%4d%4dn,x,y);要求給i賦值
5、為10,j賦值為20,則應(yīng)該怎樣從鍵盤輸入數(shù)字?相關(guān)知識(shí):在調(diào)用scanf()函數(shù)時(shí)在格式串中若包含有格式描述符之外的字符時(shí),則要求在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)的位置上輸入完全匹配的字符;scanf()函數(shù)只包含格式描述符時(shí)可用跳格鍵Tab、空格和回車分隔數(shù)據(jù);在調(diào)用printf ()函數(shù)時(shí)在格式串中若包含有格式描述符之外的字符時(shí),則在輸出數(shù)據(jù)時(shí)在對(duì)應(yīng)的位置上輸出完全匹配的字符,%d之類的格式符位置輸出對(duì)應(yīng)輸出項(xiàng)的值;故輸出時(shí)要注意插入適當(dāng)?shù)姆歉袷椒员銋^(qū)分各個(gè)輸出結(jié)果。4. 若輸入10,20,30則程序的執(zhí)行結(jié)果是 20,30,10 請(qǐng)?zhí)畛涑绦颉?# include “stdio.h” void ma
6、in( ) int a, b, c ; _;_;_; a=b ; b=c ; _;printf ( %d,%d,%d ,a, b, c );5. 計(jì)算定期存款本利之和設(shè)銀行定期存款的年利率rate為2.25%,并已知存款期為n年,存款本金為capital元,試編程計(jì)算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由鍵盤輸入。三:實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)二邏輯結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?. 了解C語言表示邏輯量的方法。2. 學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式3. 熟練掌握if 語句和 switch語句。4. 結(jié)合程序掌握一些簡(jiǎn)單的算法。5. 學(xué)習(xí)調(diào)試程序。二、
7、實(shí)驗(yàn)內(nèi)容和步驟1. 源程序中包含有一些錯(cuò)誤,調(diào)試下列程序,使之具有如下功能:輸入a、b、c三個(gè)整數(shù),求最小值。 # include “stdio.h” void main( )int a,b,c;scanf(%d%d%d,a,b,c);if(ab)&(ac)if(bc)printf(min=%dn,b);else printf(min=%dn,c);if(ab)&(ac)printf(min=%dn,a);再次運(yùn)行程序,輸入為“2,1,3”,程序輸出卻是“min=2”。用單步執(zhí)行的方法,馬上發(fā)現(xiàn)變量a、b、c的值是不對(duì)的,原因是程序要求輸入數(shù)據(jù)的分隔符是空格(還允許使用回車或鍵)。改正輸入數(shù)據(jù)
8、的分隔方式后,程序沒有輸出,還是用單步執(zhí)行的方法,監(jiān)視程序的執(zhí)行過程,發(fā)現(xiàn)程序中條件設(shè)計(jì)有誤,經(jīng)過改正的程序如下: # include “stdio.h” void main() int a,b,c; scanf(%d%d%d,&a,&b,&c); if(ab)&(ac) printf(min=%dn,a) else if(ba)&(bc) printf(min=%dn,b); else if(ca)&(cb) printf(min=%dn,c); else printf(No find minimumn); 上述程序是按在三個(gè)數(shù)中僅有一個(gè)最小值時(shí)才稱其為最小值進(jìn)行設(shè)計(jì)的。另外,注意程序的書寫
9、格式,一定要采用縮進(jìn)格式,即不同層次(分支)的語句左起的空格不同,這樣可以有效地提高程序的可讀性。相關(guān)知識(shí):類似abc表達(dá)式的表示方法;if語句的嵌套;調(diào)試工具的使用。求最值的簡(jiǎn)單算法。2.參考上一題,編寫一個(gè)C程序,求a、b、c、d四個(gè)數(shù)中的最大者。編程點(diǎn)撥:多定義一個(gè)變量,并一開始令變量max=a;if(maxb) max=b;其余多個(gè)數(shù)據(jù)中求最值依此類推。3.輸入4個(gè)整數(shù),要求按由小到大順序輸出。得到正確結(jié)果后,修改程序使之按由大到小順序輸出。相關(guān)知識(shí):輸入函數(shù)scanf()的使用;簡(jiǎn)單的排序算法;通過中間變量t交換a和b值的方法:t=a; a=b; b=t;。4.根據(jù)以下函數(shù)關(guān)系,對(duì)輸
10、入的每個(gè)x值,計(jì)算出相應(yīng)的y值。當(dāng)x取其他值時(shí)#include #include void main() float x,y; scanf(%f,&x); if () y=; else if()y=; else printf(x=%f,y=%f,x,y);相關(guān)知識(shí)點(diǎn):if語句的嵌套;數(shù)學(xué)函數(shù)的調(diào)用方式。5.模仿第5題,寫程序?qū)崿F(xiàn)以下函數(shù):用scanf函數(shù)輸入x的值,求y值。運(yùn)行程序,輸入x的值(分別為x1、1x10、x10三種情況),檢查輸出的y值是否正確。相關(guān)知識(shí):用if的嵌套實(shí)現(xiàn)分段函數(shù);比較運(yùn)算符的正確使用;算術(shù)運(yùn)算符*的正確使用。6.閱讀分析以下程序的功能。#include void
11、main( )int choice;int value;printf(Convert:n); /* 顯示菜單 */printf( 1:decimal to hexadecimaln );printf( 2:hexadecimal to decimaln );printf( 3:decimal to octaln ); printf( 4:octal to decimaln);printf(enter your choice: );scanf(%d,&choice);switch (choice) case 1: /* 選中1時(shí)處理 */printf(enter decimal value:);
12、scanf(%d,&value);printf(%d in hexadecimal is:%xn,value,value);break;case 2: /* 選中2時(shí)處理 */printf(enter hexadecimal value:);scanf(%x,&value);printf(%x in decimal is:%dn,value,value);break;case 3: /* 選中3時(shí)處理 */printf(enter decimal value:);scanf(%d,&value);printf(%d in octal is:%on,value,value);break;case
13、 4: /* 選中4時(shí)處理*/printf(enter octal value:);scanf(%o,&value);printf(%o in decimal is:%dn,value,value);break; 相關(guān)知識(shí):用switch語句實(shí)現(xiàn)菜單的方法;數(shù)制轉(zhuǎn)換的方法。7.編寫一程序,要求對(duì)輸入的數(shù)字17轉(zhuǎn)換成文字星期幾,對(duì)其它數(shù)字不轉(zhuǎn)換。例如,輸入5時(shí),程序應(yīng)該輸出Friday。編輯、調(diào)試和運(yùn)行該程序,然后輸入4。其輸出結(jié)果是什么?為什么是這樣的結(jié)果?該程序有哪些錯(cuò)誤?如何修改?相關(guān)知識(shí):switch語句的正確使用;break在switch語句中的作用。三:實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)三 循環(huán)控制一、實(shí)
14、驗(yàn)?zāi)康?. 熟練掌握用while語句、do while語句和for語句實(shí)現(xiàn)循環(huán)的方法。2. 掌握在程序設(shè)計(jì)中用循的方法實(shí)現(xiàn)一些常用算法。并進(jìn)一步學(xué)習(xí)調(diào)試程序的方法。3. 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法。4. 掌握字符數(shù)組和字符串函數(shù)的使用。5. 掌握與數(shù)組有關(guān)的算法。二、實(shí)驗(yàn)內(nèi)容和步驟1. 程序求和:1+100,填空,實(shí)現(xiàn)該功能。#include void main()int s,i;s=0; /* 第5行 */for()s=s+i;printf(1+.+100=%dn,s);思考:(1)第5行能不能去掉?其作用是什么?(2)不用for語句,用while語句改寫該程序,實(shí)現(xiàn)
15、同樣的功能。2. 比較下列兩個(gè)程序。(驗(yàn)證)/* 第一個(gè)程序 */#include void main() int i,n,sum=0;scanf(%d,&i);n=i;while(i=10) sum+=i;i+;printf(%d+.+10=%d,n,sum);/* 第二個(gè)程序 */#include void main() int i,n,sum=0;scanf(%d,&i);n=i;do sum+=i;i+; while(i=10);printf(%d+.+10=%d,n,sum);分別運(yùn)行這兩題,若輸入7,這兩個(gè)程序的結(jié)果分別是多少?若輸入12,這兩個(gè)程序的結(jié)果又分別是多少?比較為什么會(huì)
16、有這樣的區(qū)別?3. 預(yù)習(xí)下面程序,若輸入12345,分析輸出結(jié)果是多少?上機(jī)驗(yàn)證。#include void main( ) long data; scanf(%ld,&data); while(data) printf(%ld,data%10); data=data/10; 4. 實(shí)現(xiàn)求Fibonacci數(shù)列的前n個(gè)數(shù)。(驗(yàn)證、調(diào)試)運(yùn)行程序,寫出運(yùn)行結(jié)果;采用單步跟蹤技術(shù)運(yùn)行該程序,觀察一下變量的變化。#include void main( ) long int f1, f2; int i,n; printf(Input n:); /* 第5行 */ scanf(%d,&n); /* 第6
17、行 */f1=f2=1;for(i=1;in;i+) printf(%ldt%ldn,f1,f2); /* 第9行 */f1=f1+f2;f2=f2+f1; 思考:(1)f1、f2這兩個(gè)變量為什么定義為long int 型?(2)第5行和第6行的相互作用,你會(huì)用這種方式來實(shí)現(xiàn)輸入嗎?(3)注意第9行的輸出“%ld”中的“1”是字母“L”的小寫形式,不是數(shù)字1。5. 預(yù)習(xí)下面程序,寫出預(yù)習(xí)結(jié)果并上機(jī)驗(yàn)證。(驗(yàn)證)#include void main( ) int i,j,x;for(i=0,x=0;i2;i+) x+;for(j=0;j3;j+) if(j%2) continue;x+;x+;
18、printf(x=%dn, x); 思考:用一句話概括if(j%2)語句的作用。相關(guān)知識(shí):嵌套for循環(huán)的執(zhí)行過程及continue語句的作用。6.輸入一批考試分?jǐn)?shù),用-1作為結(jié)束標(biāo)志,若輸入大于100分,則提示重新輸入,然后計(jì)算最高分、最低分與平均分。請(qǐng)調(diào)試、檢查程序中的錯(cuò)誤,并改正之。#include void main( ) int mark; int n=0 ; sum=0 ; int max=100 ; min=0 ; for ( ; ; ) ; scanf(%d, &mark); if ( mark 100 ) printf( Mark 100 , Please reinput n
19、 ); break; if ( mark=-1) break; n + ; sum=sum + mark ; if( mark max ) max = mark ; if( mark min ) min = mark ; sum=sum/ n ; printf(max =%d , min = %d, aver = %d n, max , min , sum); 提示:該程序有很多錯(cuò)誤,下面給出某些錯(cuò)誤的說明。當(dāng)求一批數(shù)中的最大值時(shí),若已知一批數(shù)的最小值,則將這個(gè)最小值作為最大值的初始值;當(dāng)求最小值時(shí),情況相反,即若已知這批數(shù)的最大值,則將這個(gè)最大值作為最小值的初始值。本例中求一批分?jǐn)?shù)的最高分,
20、則最高分的初始值應(yīng)該設(shè)為0,然后在程序循環(huán)中逐漸地升高,直至求出最高分;本例中還要求這批分?jǐn)?shù)的最低分,則最低分的初始值設(shè)為100,然后在程序循環(huán)中逐漸地降低,直至求出最小值。實(shí)現(xiàn)“若輸入大于100分,則提示重新輸入”功能的語句有錯(cuò);實(shí)現(xiàn)“用-1作為結(jié)束標(biāo)志”功能的語句有錯(cuò)。思考:(1)“一批數(shù)據(jù)”是幾個(gè)數(shù)據(jù)?輸入的數(shù)據(jù)如何結(jié)束?程序中哪一行是實(shí)現(xiàn)結(jié)束這個(gè)要求的,寫出該語句。(2)程序中哪個(gè)語句是實(shí)現(xiàn)”若輸入大于100分,則提示重新輸入”這個(gè)要求的,寫出該語句。(3)寫出您的測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果,注意輸入的數(shù)據(jù)序列中最后一個(gè)應(yīng)是-1。7.編程:輸入20個(gè)190的整數(shù),分類統(tǒng)計(jì)130、3160、61
21、90的數(shù)各有多少個(gè)?編程點(diǎn)撥:(1) count1計(jì)130的個(gè)數(shù),count2計(jì)3160的個(gè)數(shù),count3計(jì)6190的個(gè)數(shù)。(2) 用for循環(huán)20次實(shí)現(xiàn)該程序的功能:輸入一個(gè)整數(shù)x,判斷該數(shù)所在的范圍,若x是130,則count1加1;若x是3160,則count2加1;若x是6190,則count3加1。(3) 最后,輸出統(tǒng)計(jì)的結(jié)果。#include void main( ) int count1=0,count2=0,count3=0;int i,x;printf(“Please input 20 numbers:”);for(i=0;i20;i+) scanf(“%d”,&x); /
22、*補(bǔ)充完成程序*/* 輸出統(tǒng)計(jì)結(jié)果 */8.編程:素?cái)?shù)是除了1和其本身以外,不能被其他自然數(shù)整除的自然數(shù)。從鍵盤輸入一個(gè)數(shù),判斷該數(shù)是不是素?cái)?shù)?編程點(diǎn)撥:a) 輸入這個(gè)數(shù)x。b) 用for循環(huán)2x-1,用2x-1的每一個(gè)數(shù)去除x,若有一個(gè)數(shù)整除x,則說明x不是素?cái)?shù);否則,x就是素?cái)?shù)。c) 最后,將判斷結(jié)果輸出。#include void main( ) int i, x;printf(Enter one natural integer: );scanf(%d ,&x);for(i=2;ix-1;i+) /*補(bǔ)充完成該程序*/思考:其實(shí),只需要判斷2之間的整數(shù)能否整除x就可以判斷x是否為素?cái)?shù),此
23、時(shí),如何修改程序?9.編程:顯示所有的水仙花數(shù)。謂水仙花數(shù),是指一個(gè)3位數(shù),其各位數(shù)字立方和等于該數(shù)字本身。例,153是水仙花數(shù),因?yàn)?53=13+53+33。有兩種解題思路,選擇其中之一編程實(shí)現(xiàn):(1) 利用三重循環(huán),將這三個(gè)數(shù)通過一定的運(yùn)算符連接成一個(gè)3位數(shù),然后判斷是否是水仙花數(shù)。for(i=1;i=9;i+) for(j=0;j=9;j+)for(k=0;k=9;k+) 注意,因水仙花是一個(gè)三位數(shù),百位i是從1開始,不能從0開始,十位j和個(gè)數(shù)位k可以從0開始。(2) 利用一個(gè)循環(huán),對(duì)100999范圍內(nèi)的每個(gè)3位數(shù)逐位分離后進(jìn)行判斷。for(i=100;i999;i+) a=i/100;
24、 b=(i-a*100)/10; c=i%10;*10.編程:輸出下列圖形。分析:這是由星號(hào)構(gòu)成的5行5列的三角形圖形。每一行的星號(hào)數(shù)量為:1、3、5、7、9??紤]兩點(diǎn),一是每一行上星號(hào)的生成規(guī)則,二是每一行第一個(gè)星號(hào)字符的輸出位置。每一行的星號(hào)與行號(hào)有關(guān),即2*i+1,其中i是行號(hào);每一行的輸出位置比上一行少一個(gè)空格,可以這樣實(shí)現(xiàn):for(j=1;j=40-i;j+) printf(“%c”, ),其中i是行號(hào)。三:實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)四 數(shù)組一、實(shí)驗(yàn)?zāi)康募耙螅海?) 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;(2) 掌握字符數(shù)組和字符串函數(shù)的使用;(3) 掌握與數(shù)組有關(guān)的算法(特別是排
25、序算法)。二、實(shí)驗(yàn)內(nèi)容和步驟1.調(diào)試下列程序,使之具有如下功能:輸入10個(gè)整數(shù),按每行3個(gè)數(shù)輸出這些整數(shù),最后輸出10個(gè)整數(shù)的平均值。寫出調(diào)試過程。#inclue #define N 10void main( ) int i,aN,av;for(i=0;iN;i+)scanf(%d,ai);for(i=0;iN;i+) printf(%d,ai);if(i%3=0)printf(n);for(i=0;i!=N;i+)av+=ai;printf(av=%fn,av);上面給出的程序是完全可以運(yùn)行的,但是運(yùn)行結(jié)果是完全錯(cuò)誤的。調(diào)試時(shí)請(qǐng)注意數(shù)組元素的輸入問題、輸出格式問題等。請(qǐng)使用前面實(shí)驗(yàn)所掌握的調(diào)
26、試工具,判斷程序中的錯(cuò)誤并改正。相關(guān)知識(shí):數(shù)組元素值的輸入;求和求平均值的相關(guān)變量初始化問題;輸出格式符的正確使用。數(shù)組元素的格式化輸出。2.下面程序是輸入5個(gè)數(shù)據(jù),然后求它們的和并輸出結(jié)果。#include void main( )int i, a5, sum = 0; scanf(%d,%d,%d,%d,%d, a ); for (i = 0; i = 4; i +) sum += ai; printf(sum = %d n, sum);該程序中有哪些錯(cuò)誤?如何修改?寫出正確運(yùn)行后的結(jié)果。相關(guān)知識(shí):數(shù)組元素的輸入和輸出只能逐個(gè)元素操作,而不能以數(shù)組名作整體操作。3.有一個(gè)3行4列的距陣,現(xiàn)
27、要求編程求出其中最大的那個(gè)元素的值,以及它所在的行號(hào)與列號(hào)。程序的初始說明和輸出語句如下所示,請(qǐng)補(bǔ)充完成該程序。#include void main( )int i, j, row, colum, max;static int a34 = 1,2,3,4, 9,8,7,6, -10,10,-5,2; printf( Max = %d, Row = %d, Colum = %d n, max, row, colum);編程點(diǎn)撥: 初始化row、colum及max。 使用for循環(huán)的雙重循環(huán)逐行把元素值與max值進(jìn)行比較,比較結(jié)果如果元素值比max值大,則改變max值,同時(shí)改變r(jià)ow和colum的
28、值。最后輸出max,row和colum的值。相關(guān)知識(shí):二維數(shù)組的定義和初始化;使用二重循環(huán)對(duì)二維數(shù)組元素的訪問;求最值時(shí)相關(guān)變量初值的設(shè)定。4.數(shù)組中已存互不相同的10個(gè)整數(shù),從鍵盤輸入一個(gè)整數(shù),輸出與該值相同的數(shù)組元素下標(biāo)。 編程點(diǎn)撥: 輸入要查找的變量x的值; 使用循環(huán)將輸入的數(shù)和數(shù)組元素逐個(gè)進(jìn)行比較,若找到,則提前退出循環(huán); 根據(jù)循環(huán)是正常結(jié)束還是提前結(jié)束來判斷是否找到x。部分源代碼:#include void main( ) int i, x, a10=1,2,3,4,5,6,7,8,9,10; /*輸入x變量的值 */ for ( i=0; i=k & j=j;i- ) ai+1=a
29、i; 20 18 16 14 12 10 8 6 4 2a0123456789下標(biāo)=10k15 插入。部分源代碼:#include #define N 11void main() int i,j,aN;printf(“Please input 10 numbers:”); for (i=0; iN-1; i+)scanf(“%d”,&ai); /*亂序輸入10個(gè)整數(shù)*/ 相關(guān)知識(shí):比較排序法、選擇排序法和冒泡排序法;數(shù)據(jù)元素的插入。6.輸入十個(gè)互不相同的整數(shù)并存在數(shù)組中,找出最大元素,并刪除。 編程點(diǎn)撥: 求最大值所在元素下標(biāo):不必用max記住最大值,只要用k記住最大值所在的元素下標(biāo); 刪除最
30、大值:從最大值開始將其后面元素依次前移一個(gè)位置。 2 8 16 14 1 10 8 16 4 20 6a0123456789下標(biāo)=10部分源代碼:k=0;k=0; for ( i=1; i10; i+ ) if ( akai ) k=i;if ( aka1 ) 真k=1; 執(zhí)行if ( aka2 ) 假k=2; 不執(zhí)行if ( aka3 ) 真k=3; 執(zhí)行相關(guān)知識(shí):刪除數(shù)組元素的概念;移動(dòng)數(shù)組元素的算法;求最大值位置的算法。7. 以下程序的功能是:從鍵盤上輸入若干個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。請(qǐng)?zhí)羁眨?include void main(
31、) float x1000, sum=0.0, ave, a; int n=0, i; printf (Enter mark : n) ; scanf(%f, &a); while (a=0.0 & n1000) sum+= ; xn= ; n+; scanf(%f, &a); ave= ; printf (Output : n); printf (ave = %fn, ave); for (i=0; in; i+) if ( ) printf(%fn, xi);8. 綜合編程題:打印如下楊輝三角形1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 編程點(diǎn)撥
32、:楊輝三角形有如下特點(diǎn): 只有下半三角形有確定的值; 第一列和對(duì)角線上的元素值都是1; 其它元素值均是前一行同一列元素與前一行前一列元素之和。三:實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)五 函數(shù)與編譯預(yù)處理一、實(shí)驗(yàn)?zāi)康?. 掌握定義函數(shù)的方法。2. 掌握函數(shù)實(shí)參與形參的對(duì)應(yīng)關(guān)系以及“值傳遞”的方法。3. 掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。4. 掌握全局變量和局部變量,動(dòng)態(tài)變量、靜態(tài)變量的概念和使用方法。二、實(shí)驗(yàn)內(nèi)容和步驟1. 閱讀程序,通過調(diào)試該程序,熟悉函數(shù)的調(diào)用方法及單步跟蹤鍵。#include void main() void fun(int i, int j, int k); int x,y,z; x=y=z=
33、6; fun(x,y,z); printf(%x=%d;y=%d;z=%dn,x,y,z);void fun(int i, int j, int k) int t; t=(i+j+k)*2; printf(t=%dn,t);2. 閱讀程序注意函數(shù)調(diào)用過程中形參、實(shí)參的關(guān)系。#include void main() int x=10,y=20;void swap (int ,int);printf(1)in main :x=%d,y=%dn,x,y);swap(x,y);printf(4)in main :x=%d,y=%dn,x,y); void swap (int m,int n) int
34、temp;printf(2)in main :m=%d,n=%dn,m,n);temp=m;m=n;n=temp;printf(3)in main :m=%d,n=%dn,m,n);把用戶自定義函數(shù)swap()中的形式參數(shù)m和n對(duì)應(yīng)改成x和y,使其與實(shí)參變量同名,再用F7跟蹤程序的運(yùn)行,看看有什么變化。相關(guān)知識(shí):形參具有“用之則建,用完則撤”的特點(diǎn)。在函數(shù)定義時(shí),函數(shù)名后面圓括號(hào)內(nèi)的參數(shù)稱為形參;在函數(shù)調(diào)用時(shí),函數(shù)名后面圓括號(hào)內(nèi)的參數(shù)稱為實(shí)參。對(duì)于實(shí)參,在調(diào)用函數(shù)中對(duì)其進(jìn)行定義時(shí),不僅指明它的類型,而且系統(tǒng)還為其分配存儲(chǔ)單元。而對(duì)于形參,定義時(shí)僅僅只是指明它的類型,并不在內(nèi)存中為它們分配存儲(chǔ)單
35、元,只是在調(diào)用時(shí)才為其分配臨時(shí)存儲(chǔ)單元,函數(shù)執(zhí)行結(jié)束,返回調(diào)用函數(shù)時(shí),該存儲(chǔ)單元立即撤銷。3. 程序是實(shí)現(xiàn)求素?cái)?shù)的,請(qǐng)?zhí)羁胀瓿稍摮绦?,并上機(jī)運(yùn)行測(cè)試。#include #include void main() int m; /* 申明求素?cái)?shù)函數(shù) */printf(Please input a data m=:);scanf(%d,&m); /* 調(diào)用求素?cái)?shù)函數(shù) */ void prime(int n) int i,k; k=sqrt(n); for(i=2;i=k+1)printf(This is a prime number);else printf(This isnt a prime nu
36、mber);4. 程序的功能是從鍵盤上輸入的若干個(gè)數(shù)并求出最大值。請(qǐng)?zhí)羁胀瓿稍摮绦颉?include void main( ) int i;int s10, max; /* Findmax()函數(shù)的申明 */ ;printf(Input 10 number : n);/* 輸入10個(gè)數(shù)據(jù)到s數(shù)組中 */;/* 調(diào)用Findmax函數(shù) */;for (i=0;i10; i+)printf(%4d, si);printf(nthe max is %d ,max);int Findmax( int x , int n ) int max,i; max=x0; for ( i=1; in; i+) if(maxxi) max=xi; return max;相關(guān)知識(shí):練習(xí)形參是數(shù)組的函數(shù)申明、調(diào)用格式;復(fù)習(xí)數(shù)組的輸入方法。5. 程序的功能是從鍵盤上輸入的若干個(gè)數(shù)按升序排序。請(qǐng)調(diào)試檢查該程序中的錯(cuò)誤,程序如下:#include void main( ) int i , k;float s100, j ;printf( Input number : n);for (i=0; s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專利抵押合同范本
- 公司銷售人員合同范例
- 勞務(wù)合同范本 短期
- 單位購(gòu)買電腦合同范本
- 勾機(jī)鏟車出租合同范本
- 公司水果采購(gòu)合同范本
- 單位玻璃保潔合同范本
- 蛋糕師招聘合同范本
- 代買股合同范本
- 制式采購(gòu)合同范本
- 項(xiàng)賢明主編馬工程教材《教育學(xué)原理》第七章-課程
- (2024年秋季版)2024年七年級(jí)道德與法治下冊(cè) 4.9.1 生活需要法律教案 新人教版
- 血液透析安全注射臨床實(shí)踐專家共識(shí)解讀課件
- 2024年湖南大眾傳媒職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫附答案
- 旅游學(xué)概論(第五版)課件 第一章 旅游學(xué)概述
- 學(xué)生課后服務(wù)活動(dòng)記錄表
- 義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)解讀
- CRRT的精細(xì)化護(hù)理
- 部編小學(xué)語文單元作業(yè)設(shè)計(jì)一年級(jí)下冊(cè)第二單元
- (高清版)DZT 0282-2015 水文地質(zhì)調(diào)查規(guī)范(1:50000)
- 七字押韻祭文范文六篇
評(píng)論
0/150
提交評(píng)論