C語言實(shí)驗(yàn)報(bào)告作業(yè)_第1頁
C語言實(shí)驗(yàn)報(bào)告作業(yè)_第2頁
C語言實(shí)驗(yàn)報(bào)告作業(yè)_第3頁
C語言實(shí)驗(yàn)報(bào)告作業(yè)_第4頁
C語言實(shí)驗(yàn)報(bào)告作業(yè)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第13章 上機(jī)實(shí)驗(yàn)與指導(dǎo)第13章 實(shí)驗(yàn)與指導(dǎo)為了結(jié)合實(shí)際,強(qiáng)化操作,加強(qiáng)實(shí)踐環(huán)節(jié),激勵(lì)創(chuàng)新意識(shí),增強(qiáng)實(shí)驗(yàn)的針對(duì)性,提高程序設(shè)計(jì)的編程能力和調(diào)試能力,本章給出了與各章對(duì)應(yīng)的實(shí)驗(yàn)題目,并給以必要的指導(dǎo)。讀者也可以舉一反三,根據(jù)自己的學(xué)習(xí)興趣,將自己專業(yè)領(lǐng)域或生活中的某些問題,作為實(shí)驗(yàn)題目,創(chuàng)造性地解決自己面臨的實(shí)際問題,提高成就感和自豪感。實(shí)驗(yàn)1 C程序的運(yùn)行環(huán)境和運(yùn)行C程序的方法一、目的要求1認(rèn)識(shí)在計(jì)算機(jī)系統(tǒng)上編輯、編譯、連接和運(yùn)行C程序的步驟。2在調(diào)試程序中觀察系統(tǒng)提示,改正編譯錯(cuò)誤或連接錯(cuò)誤。3了解語言源程序的結(jié)構(gòu)及書寫格式,了解表達(dá)C語言程序的各個(gè)組成成分的術(shù)語。二、實(shí)驗(yàn)內(nèi)容思考問題:什么

2、是源程序?語言源程序的結(jié)構(gòu)是怎樣的?語言源程序的書寫格式怎樣?指出第1章例題的程序中哪些是注釋、預(yù)處理命令、聲明部分、可執(zhí)行語句、函數(shù)定義、函數(shù)調(diào)用、關(guān)鍵字、main函數(shù)等。1練習(xí)進(jìn)入C語言編程界面。輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。應(yīng)了解是用什么命令進(jìn)行編譯、連接和運(yùn)行的。運(yùn)行的結(jié)果是什么?程序如下:#include "stdio.h"main ( ) printf("Programming is Fun.n");運(yùn)行結(jié)果為: 2輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。運(yùn)行的結(jié)果是什么?程序如下:#include "stdio.

3、h"main ( ) printf("Programming n"); printf("is Fun.n");運(yùn)行結(jié)果為:運(yùn)行結(jié)果比上題多一行,可知n的作用是:3輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。運(yùn)行的結(jié)果是什么?程序如下:#include "stdio.h"#include <math.h>main ( ) float x; x=sin(3.141593/4); printf("%fn",x);運(yùn)行結(jié)果為:語句float x; 的作用是:實(shí)驗(yàn)2 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式一、目的要求

4、1掌握C語言的基本數(shù)據(jù)類型。2學(xué)會(huì)如何書寫整型、實(shí)型常量,如何定義整型、實(shí)型變量。3掌握C語言的算術(shù)運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符及運(yùn)算規(guī)則。4掌握表達(dá)式的求值規(guī)則。二、實(shí)驗(yàn)內(nèi)容思考問題:數(shù)據(jù)類型、運(yùn)算符、表達(dá)式在C語句中充當(dāng)什么成分?什么是標(biāo)識(shí)符?如何書寫整型、實(shí)型、字符型常量?如何定義整型、實(shí)型、字符型變量?怎樣表示字符串?如何求表達(dá)式的值?混合表達(dá)式的求值規(guī)則是怎樣的?1輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。分析+運(yùn)算符。程序如下:#include "stdio.h"main ( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; pri

5、ntf("%d,%d,%d,%dn",i,j,m,n);運(yùn)行結(jié)果為: 前+的含義是:后+的含義是:2輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。分析+和-運(yùn)算符。程序如下:#include "stdio.h"main ( ) int i,j; i=8; j=10; printf("%d,%dn",i,j); printf("%d,%dn",i+,j-); printf("%d,%dn",i,j); printf("%d,%dn",+i,-j);運(yùn)行結(jié)果為:分析如何得出此運(yùn)行結(jié)

6、果:3. 輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。分析表達(dá)式的值。#include <stdio.h>main ( ) int a=7,b=3; float x=2.5,y=4.7,z1,z2; printf("z1=%fn",x+a%3*(int)(x+y)%2/4); printf("z2=%fn",(float)(a+b)/2+(int)x%(int)y);運(yùn)行結(jié)果為: 表達(dá)式x+a%3*(int)(x+y)%2/4得到這樣的結(jié)果是因?yàn)椋罕磉_(dá)式(float)(a+b)/2+(int)x%(int)y得到這樣的結(jié)果是因?yàn)椋?. 輸入下

7、列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。分析表達(dá)式的值。#include "stdio.h"main( ) int x, z; float y, w; x=(1+2, 5/2, -2*4, 17%4); y=(1.+2. , 5./2. , -2.*4.); z=(1+2, 5/2 , -2*4 , -17%4); w=(1+2, -2*4 , -17%4, 5/2); printf("x=%d,y=%f,z=%d,w=%fn", x, y, z, w); 運(yùn)行結(jié)果為: 思考得出此運(yùn)行結(jié)果的原因。實(shí)驗(yàn)3 順序結(jié)構(gòu)程序設(shè)計(jì)一、目的要求1正確使用數(shù)據(jù)輸入/輸出

8、函數(shù)scanf、printf及整型、實(shí)型、字符型數(shù)據(jù)的輸入/輸出格式。2正確使用字符輸入/輸出函數(shù)getchar、putchar。3學(xué)會(huì)編寫簡(jiǎn)單順序結(jié)構(gòu)的程序。二、實(shí)驗(yàn)內(nèi)容思考問題:scanf與printf函數(shù)的格式控制字符串由什么組成?scanf與printf函數(shù)中不同數(shù)據(jù)類型對(duì)應(yīng)的格式字符和附加格式說明字符是怎樣的?1輸入下列源程序,進(jìn)行修改、編譯、連接和運(yùn)行。程序如下:#include <stdio.h>main ( ) char c1,c2,x; c1=97; c2=98; printf("%c,%cn",c1,c2); printf("The

9、 following output int of c1 and c2. yes or no?n");/*下面是否輸出c1和c2的數(shù)值*/ printf("Please input y:n");/*請(qǐng)輸入字母y,從而輸出*/ x=getchar( ); printf("%d,%dn",c1,c2);運(yùn)行結(jié)果為:程序最后兩個(gè)printf輸出的結(jié)果不同,這種不同是由什么引起的:2運(yùn)行下面的程序,寫出運(yùn)行結(jié)果。#include "stdio.h"main( ) int a=5,b=7; float x=67.8564,y=-789.

10、124; long n=1234567; char c='A' printf("a=%3d,b=%3dn",a,b); printf("x=%10.2f,y=%10.2fn",x,y); printf("n=%ldn",n); printf("c=%c or c=%d(ASCII)n",c,c); putchar(c); putchar('n');運(yùn)行結(jié)果為:3編程求圓周長c、圓面積s、圓球表面積area、圓球體積v。在程序中調(diào)用scanf函數(shù)通過鍵盤輸入半徑r,輸出計(jì)算結(jié)果,輸出要

11、求有文字說明,計(jì)算結(jié)果精確到小數(shù)點(diǎn)后兩位。圓周長、圓面積、圓球表面積、圓球體積的計(jì)算公式為:c=2r, s=r2,area=4r2,v=4/3r3。算法提示: 定義符號(hào)常量PI的值為3.1416; 定義實(shí)型變量r、c、s、area、v; 提示輸入"Please enter r:"; 讀入r; 根據(jù)公式計(jì)算c=2* PI *r,s= PI *r*r,area=4* PI *r*r,v=PI *r*r*r*4/3; 打印兩位小數(shù)的結(jié)果c、s、area、v。編寫程序:測(cè)試結(jié)果為:rcsareav1.53.454輸入一個(gè)華氏溫度f,要求輸出攝氏溫度c。公式為c=5/9×(

12、f-32)。輸出要求有文字說明,取2位小數(shù)。算法提示: 定義實(shí)型變量c、f; 提示輸入"Please enter f:"; 讀入f; 根據(jù)公式計(jì)算c; 打印兩位小數(shù)的結(jié)果。編寫程序:測(cè)試結(jié)果為:華氏溫度f攝氏溫度c100.250.523.78實(shí)驗(yàn)4 順序結(jié)構(gòu)程序設(shè)計(jì)(續(xù))一、目的要求1掌握編寫簡(jiǎn)單順序結(jié)構(gòu)程序的方法。2掌握表達(dá)式的求值規(guī)則。二、實(shí)驗(yàn)內(nèi)容1輸入兩個(gè)正整數(shù),求它們相除所得的商,商的整數(shù)部分、小數(shù)部分及余數(shù)。例如17除以2,其商為8.5,商的整數(shù)部分為8,小數(shù)部分為0.5,余數(shù)為1。算法提示:若商為x,則(int)x即為商的整數(shù)部分。編寫程序:輸入為:輸出結(jié)果為:

13、2設(shè)a=12,分析下列表達(dá)式的值,并編寫一個(gè)(不是四個(gè))程序,上機(jī)進(jìn)行驗(yàn)證。 a+=a a-=2 a*=2+3 a/=a+a 算法提示:給a賦值后,輸出第一個(gè)表達(dá)式的值;重新給a賦值后,輸出第二個(gè)表達(dá)式的值;程序?yàn)椋核膫€(gè)表達(dá)式的值分別為:3. 從鍵盤輸入一個(gè)小寫字母,把它轉(zhuǎn)化為大寫字母后輸出。編寫程序:輸入為:輸出結(jié)果為:實(shí)驗(yàn)5 選擇結(jié)構(gòu)程序設(shè)計(jì)一、目的要求1掌握6個(gè)關(guān)系運(yùn)算符、3個(gè)邏輯運(yùn)算符及運(yùn)算規(guī)則。2掌握if語句的3種形式及對(duì)應(yīng)的語法規(guī)則、執(zhí)行流程。二、實(shí)驗(yàn)內(nèi)容思考問題:比較運(yùn)算符=與賦值運(yùn)算符=有何區(qū)別?如何表示復(fù)雜條件?邏輯表達(dá)式的求值規(guī)則是怎樣的?怎樣比較實(shí)數(shù)相等? 1有3個(gè)整數(shù)a

14、、b、c,由鍵盤輸入,輸出其中最大的數(shù)。算法提示: 定義整型變量a、b、c、max; 提示輸入"Please enter a,b,c:"; 讀入a、b、c; 找出a、b中的較大數(shù)存入max; 找出第3個(gè)數(shù)c與max中的較大數(shù),并再次存入max; 3個(gè)數(shù)中的最大數(shù)就是max,打印max。編寫程序:測(cè)試結(jié)果為:abcmax120030-3008892132有一函數(shù)如下:x x<1y= 2x-1 ,當(dāng)1x<10時(shí)3x-11 x10用scanf函數(shù)輸入x的值,求y值。算法提示: 定義實(shí)型變量x、y; 提示輸入"Please enter x:"; 讀入

15、x; 判斷x所在的區(qū)間,應(yīng)用y的計(jì)算公式求值; 打印結(jié)果。編寫程序:測(cè)試結(jié)果為:xy-15103給出一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)、。90分以上(含90分)為;80分以上、90分以下(含80分、不含90分)為;70分以上、80分以下(含70分、不含80分)為;60分以上、70分以下(含60分、不含70分)為;60分以下(不含60分)為。(不用switch語句)算法提示: 定義百分制成績(jī)(整型變量)score; 提示輸入"Please enter score:"; 讀入score; 判斷score所在的區(qū)間,對(duì)應(yīng)得出score的等級(jí)并打印出來。編寫程序:測(cè)試結(jié)果為:scor

16、e打印等級(jí)6554778992100實(shí)驗(yàn)6 選擇結(jié)構(gòu)程序設(shè)計(jì)(續(xù))一、目的要求掌握選擇結(jié)構(gòu)程序設(shè)計(jì)的方法。二、實(shí)驗(yàn)內(nèi)容1從鍵盤輸入一個(gè)字符,判斷此字符屬于下面哪一種。(1)字母(az,AZ)(2)數(shù)字字符(09) (3)其他字符顯示相應(yīng)的提示信息。編寫程序:2輸入三角形的三條邊長,求三角形的面積。要求檢查輸入的三條邊是不是正數(shù)以及能否構(gòu)成三角形(如果三角形的任意兩條邊的長度之和大于第三邊,則可以構(gòu)成三角形)。編寫程序:輸入為:輸出結(jié)果為:3.求方程ax2+bx+c=0的根。a、b、c從鍵盤輸入,要考慮a=0,b2-4ac>0,b2-4ac=0,b2-4ac<0四種情況。a=0時(shí)方程

17、不是二次方程,b2-4ac>0時(shí)有兩個(gè)不相等的實(shí)根,b2-4ac=0時(shí)有兩個(gè)相等的實(shí)根,b2-4ac<0有兩個(gè)共軛復(fù)根。編寫程序:輸入為:輸出結(jié)果為:實(shí)驗(yàn)7 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、目的要求1掌握while、dowhile、for語句的語法規(guī)則、執(zhí)行流程。2比較3種循環(huán)語句的異同。二、實(shí)驗(yàn)內(nèi)容思考問題:3種循環(huán)語句的異同點(diǎn)是什么?能否互相轉(zhuǎn)換?for循環(huán)中的3個(gè)表達(dá)式與while循環(huán)中的表達(dá)式是如何對(duì)應(yīng)的?1分別用while、dowhile、for語句編程,求數(shù)列前20項(xiàng)之和:2/1,3/2,5/3,8/5,13/8·····算法提示:

18、 定義實(shí)型變量sum、term、a、b、c,整型變量i; 初始化:sum=0,分子a=2,分母b=1; 初始化:計(jì)數(shù)器i =1; 計(jì)算第i項(xiàng)term =a/b; 累加sum=sum+term; 計(jì)算c=a+b,更新b=a,更新a=c; 計(jì)數(shù)器加1,i+; 重復(fù),直到i>20; 輸出2位小數(shù)的結(jié)果。編寫程序:方法1,用while語句:方法2,用dowhile語句:方法3,用for語句:3次測(cè)試結(jié)果,數(shù)列前20項(xiàng)之和sum為多少?2計(jì)算多項(xiàng)式的值:s=1!+2!+3!+4!+···+20!算法提示:該多項(xiàng)式迭代公式為:term=term*i,sum=sum+te

19、rm。請(qǐng)思考哪些變量需要初始化?變量應(yīng)采用什么類型?編寫程序:上機(jī)運(yùn)行結(jié)果為:336塊磚36人搬,男搬4女搬3,小孩2人搬1磚。要求一次全搬完,問男、女、小孩各若干(人)?算法提示:設(shè)x、y、z表示男、女、小孩的人數(shù),則有不定方程:x+y+z=364x+3y+z/2=36用窮舉法,對(duì)x、y、z所有可能的組合測(cè)試出滿足條件的解。x、y、z的取值范圍如下:x:18,步長1;y:111,步長1;z:236,步長2。對(duì)x、y、z所有可能的組合:8×11×(36/2)重復(fù)測(cè)試條件:4*x+3*y+z/2=36 &&x+y+z=36是否成立,若成立則打印出x、y、z的值

20、。編寫程序:上機(jī)運(yùn)行結(jié)果有幾組解?男、女、小孩各多少人?4打印ASCII碼值為4080的ASCII碼值對(duì)照表。注意打印格式,如何在一行中同時(shí)打印若干列?編寫程序:觀察上機(jī)輸出結(jié)果。輸出結(jié)果為:實(shí)驗(yàn)8 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(續(xù))一、目的要求掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的方法。二、實(shí)驗(yàn)內(nèi)容1把1張100元的人民幣兌換成5元、2元和1元的紙幣(每種都要有)共50張,問有哪幾種兌換方案?算法提示:可參考百錢百雞問題,本題與之類似。編寫程序:2韓信點(diǎn)兵問題:有兵一隊(duì),若五人排成一行,則末行一人;六人排成一行,則末行五人;七人排成一行,則末行四人;十一人排成一行,則末行十人,問最少有多少兵?算法提示:用兵數(shù)作循環(huán)變量

21、進(jìn)行循環(huán)測(cè)試,若滿足所說的條件則輸出兵數(shù)并用break退出循環(huán),否則兵數(shù)加1繼續(xù)循環(huán)。編寫程序:3求100300間的所有素?cái)?shù)。算法提示:可參考第5章的例題,采用一個(gè)for循環(huán),將例題中的多數(shù)語句作為for的循環(huán)體。編寫程序:實(shí)驗(yàn)9 選擇、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、目的要求1掌握switch語句的語法規(guī)則、執(zhí)行流程;進(jìn)一步掌握選擇結(jié)構(gòu)程序設(shè)計(jì)的方法。2進(jìn)一步掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的方法。二、實(shí)驗(yàn)內(nèi)容思考問題:用else if語句和switch語句都能處理同一個(gè)問題,從程序的可讀性上講,那一種更好?1給出一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)、。90分以上(含90分)為;80分以上、90分以下(含80分、不含9

22、0分)為;70分以上、80分以下(含70分、不含80分)為;60分以上、70分以下(含60分、不含70分)為;60分以下(不含60分)為(使用switch語句)。算法提示: 定義百分制成績(jī)(整型變量)score; 提示輸入"Please enter score:"; 讀入score; 構(gòu)造switch表達(dá)式; 將switch表達(dá)式的值與case常量匹配,打印相應(yīng)等級(jí)。編寫程序:測(cè)試結(jié)果為:score打印等級(jí)score打印等級(jí)65895492771002請(qǐng)用switch 語句求一筆定期存款的到期利息:輸入存款數(shù)、存款年數(shù),輸出到期利息。設(shè)存款利率為1年期2%,2年期2.5%,

23、3年期2.8%,5年期3%。利息計(jì)算公式為a=p×r×n,設(shè):a為到期利息,p為存款數(shù),n為年數(shù),r為利率(使用switch語句)。算法提示: 定義實(shí)型變量a、p、r,整型變量n; 提示輸入"Please enter p,n:"; 讀入p、n; 構(gòu)造switch表達(dá)式; 將switch表達(dá)式的值n與case常量匹配,得到存款利率r; 根據(jù) p、n、r 計(jì)算利息 a=p*r*n; 輸出2位小數(shù)的結(jié)果。編寫程序:測(cè)試結(jié)果為:pna100011000210003100053計(jì)算多項(xiàng)式前n項(xiàng)的值:s=a+aa+aaa+aaaa+···

24、;·,整數(shù)a、n由鍵盤輸入(0<a9,0<n9)。算法提示:該多項(xiàng)式迭代公式為:term=term*10+a,sum=sum+term。請(qǐng)思考:哪些變量需要初始化?變量應(yīng)采用什么類型?請(qǐng)畫出流程圖:編寫程序:輸入a=2,n=4時(shí)上機(jī)運(yùn)行結(jié)果為:輸入a=5,n=6時(shí)上機(jī)運(yùn)行結(jié)果為:輸入a=1,n=8時(shí)上機(jī)運(yùn)行結(jié)果為:實(shí)驗(yàn)10 一維數(shù)組一、目的要求1掌握一維數(shù)組的基本概念,定義一維數(shù)組和初始化一維數(shù)組的方法。2掌握一維數(shù)組的基本操作,如輸入/輸出、引用數(shù)組元素等。3掌握與數(shù)組有關(guān)的算法,例如找最大或最小值、排序、數(shù)列首尾顛倒等。二、實(shí)驗(yàn)內(nèi)容思考問題:如何定義一維數(shù)組?如何初始

25、化一維數(shù)組?int a10;定義了幾個(gè)數(shù)組元素?各數(shù)組元素如何表示(引用)。1某整數(shù)數(shù)組a具有8個(gè)數(shù)組元素,用冒泡法對(duì)這些元素從小到大進(jìn)行排序。8個(gè)數(shù)組元素用scanf函數(shù)輸入。輸入為:運(yùn)行結(jié)果為:2將一個(gè)數(shù)列首尾顛倒。設(shè)該數(shù)列為1,3,6,7,9,11,15。要求按15,11,9,7,6,3,1的順序存放并輸出。算法提示:先找到數(shù)組的中點(diǎn)位置,然后依次將首尾元素交換。編寫程序:實(shí)驗(yàn)11 二維數(shù)組一、目的要求1掌握二維數(shù)組的基本概念,定義二維數(shù)組和初始化二維數(shù)組的方法。2掌握二維數(shù)組的基本操作:引用數(shù)組元素、行(列)求和,整個(gè)數(shù)組的輸入/輸出等。二、實(shí)驗(yàn)內(nèi)容思考問題:說出二維數(shù)組的存儲(chǔ)結(jié)構(gòu)。二

26、維數(shù)組的輸入/輸出采用什么方法?1求一個(gè)5×6矩陣的所有靠外側(cè)的元素之和,元素均為整數(shù)。編寫程序:輸入數(shù)據(jù):運(yùn)行結(jié)果為:2分別求一個(gè)4×4矩陣的一條對(duì)角線上的元素之和與另一條對(duì)角線上的元素之和的乘積。編寫程序:輸入數(shù)據(jù):運(yùn)行結(jié)果為:3打印楊輝三角形前10行。1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1算法提示:N-S圖如圖13-1所示。創(chuàng)建二維數(shù)組aNN,i,jfor (i =0 , i < N, i+)ai0=1aii=1for (i=2;i<N; i+)for (j=1;j<i;j+)aij= ai-1j-1+ai-1

27、jfor (i=0;i<N;i+)for (j=0;j<=i;j+)printf("%6d",aij)printf("n")圖13-1 打印楊輝三角形的N-S圖編寫程序:運(yùn)行程序。實(shí)驗(yàn)12 字符數(shù)組和字符串一、目的要求1掌握字符數(shù)組的基本概念,定義字符數(shù)組和初始化字符數(shù)組的方法。2掌握字符數(shù)組和字符串的關(guān)系,用字符串初始化字符數(shù)組的方法。3了解常用字符串處理函數(shù)的使用方法。二、實(shí)驗(yàn)內(nèi)容思考問題:字符串的結(jié)構(gòu)是怎樣的?字符數(shù)組可以用字符串來初始化,這時(shí)要注意什么?設(shè)char word10= "China",那么strlen(

28、word)=? sizeof(word)=?(sizeof函數(shù)求表達(dá)式和類型的字節(jié)數(shù))常用的字符串處理函數(shù)有哪些?1輸出鉆石圖形,用字符串初始化二維字符數(shù)組編寫程序。上機(jī)驗(yàn)證。 * * * * * * * *提示:用char a5=' ',' ','*',' ','*',' ','*','*',' ',' ',' ','*',' ','*',' ','

29、;*',' ',' ','*'初始化。編寫程序:運(yùn)行程序。2輸出下面幾何圖形。* * * * *編寫程序:運(yùn)行程序。3將字符數(shù)組a中下標(biāo)為單號(hào)(1,3,5,)的元素值賦給另一個(gè)字符數(shù)組b,然后輸出a和b的內(nèi)容。編寫程序:輸入字符串a(chǎn):輸出字符串:a=b=4輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞。比如,輸入“I am a boy”,有4個(gè)單詞。算法提示:令num為單詞數(shù)目(初值為0),word=0表示字符為空格,word=1表示字符不是空格,word初值為0。如果當(dāng)前字符是空格,令word=0,否則如果當(dāng)前字符不是空格,而word=0,說明出現(xiàn)

30、新單詞,令num+=1,word=1。 創(chuàng)建字符數(shù)組char string81; 初始化num=0, word=0; 輸入一行字符string; 重復(fù)執(zhí)行以下操作,直到遇到空字符:如果stringi =空格,令word=0;否則如果word=0,令word=1,num+。 輸出num。編寫程序:輸入一行字符:統(tǒng)計(jì)結(jié)果:num=實(shí)驗(yàn)13 函數(shù)(一)一、目的要求1掌握函數(shù)、函數(shù)參數(shù)的基本概念。2定義和調(diào)用用戶自定義函數(shù)的語法規(guī)則。3掌握函數(shù)聲明的概念及函數(shù)聲明的時(shí)機(jī)。二、實(shí)驗(yàn)內(nèi)容思考問題:調(diào)用庫函數(shù)時(shí)應(yīng)在程序開頭添加什么命令?什么是void函數(shù)?void函數(shù)與有返回值函數(shù)的調(diào)用格式有什么不同?形參

31、、實(shí)參的對(duì)應(yīng)有什么規(guī)定?1根據(jù)下列公式,編寫一個(gè)函數(shù)fun(float x),并編寫一個(gè)主函數(shù)調(diào)用它。要求在主函數(shù)中輸入已知值和輸出結(jié)果。x2-6x+1 x<0時(shí),當(dāng)y=x3+2x-5 x0編寫程序:運(yùn)行結(jié)果為:2編寫一個(gè)函數(shù)prt(char c,int n),重復(fù)輸出給定的字符c(這里的c是),輸出n次。在主函數(shù)中調(diào)用該函數(shù),輸出如下的直角三角形。函數(shù)prt(char c,int n)完成輸出一行的功能,是一個(gè)void函數(shù),有兩個(gè)形參。編寫程序:運(yùn)行程序。實(shí)驗(yàn)14 函數(shù)(二)一、目的要求1了解或掌握函數(shù)的嵌套調(diào)用規(guī)則。2了解或掌握函數(shù)的遞歸適合用于解決什么問題及其使用方法。3掌握數(shù)組元

32、素作函數(shù)實(shí)參、數(shù)組名作函數(shù)參數(shù)的優(yōu)缺點(diǎn)。二、實(shí)驗(yàn)內(nèi)容思考問題:遞歸算法是利用函數(shù)處理問題的技術(shù)。遞歸函數(shù)每一次調(diào)用都保存了形參和變量的值;然后通過逐次返回上一次調(diào)用,實(shí)現(xiàn)回代過程,從而解決原始問題。1用函數(shù)的嵌套編寫程序計(jì)算的值,n為大于等于0的整數(shù)。編寫程序:輸入n=6,輸出結(jié)果是:2用遞歸方法求n階勒讓德多項(xiàng)式的值,遞歸公式如下:1 n=0pn(x)= x ,當(dāng)n=1 時(shí) (2n-1)x-pn-1(x)-(n-1)pn-2(x)/n n1編寫程序:輸入x=3,n=5,輸出結(jié)果為:3數(shù)組元素作函數(shù)實(shí)參,求數(shù)組5個(gè)元素(實(shí)數(shù))的立方和。編寫程序:輸入為:運(yùn)行結(jié)果為:4數(shù)組名作函數(shù)實(shí)參,求數(shù)組5

33、個(gè)元素(實(shí)數(shù))的立方和。編寫程序:輸入為:運(yùn)行結(jié)果為:實(shí)驗(yàn)15 函數(shù)(三)一、目的要求1了解或掌握局部變量、全局變量的作用域和使用場(chǎng)合。2了解或掌握auto、register、extern和static變量的生存期和使用場(chǎng)合。3掌握#define命令的用法。 4掌握使用宏的方法。二、實(shí)驗(yàn)內(nèi)容思考問題:盡量不使用全局變量的原因是什么?帶參的宏在定義時(shí)需注意什么問題?1分析下面程序的運(yùn)行結(jié)果,為什么會(huì)出現(xiàn)這種結(jié)果?#include "stdio.h"void fun(int i, int j);main( ) int i,j,x,y,n,g; i=2,j=3,g=x=5,y=9

34、,n=7; fun(n,6); printf("g=%d;i=%d;j=%dn",g,i,j); printf("x=%d;y=%dn",x,y); fun(n,6);void fun(int i, int j) int x,y,g; g=8;x=7;y=2; printf("g=%d;i=%d;j=%dn",g,i,j); printf("x=%d;y=%dn",x,y); x=8,y=6;運(yùn)行結(jié)果為:分析:2分析下面程序的運(yùn)行結(jié)果,為什么會(huì)出現(xiàn)這種結(jié)果。#include "stdio.h"v

35、oid incx(void);void incy(void);main( ) incx( ); incy( ); incx( ); incy( ); incx( ); incy( );void incx(void) int x=0; printf("x=%dt",+x);void incy(void) static int y=0; printf("ny=%dn",+y);運(yùn)行結(jié)果為:分析:3分析下面程序的運(yùn)行結(jié)果,為什么會(huì)出現(xiàn)這種結(jié)果?#include "stdio.h"#define MAX 3int aMAX;void fun1

36、(void);void fun2(b );main( ) fun1( ); fun2(a); printf("n");void fun1(void) int k, t=0; for (k=0;k<MAX;k+,t+) ak=t+t;void fun2(b) int k; for(k=0;k< MAX;k+) printf("%d",bk);運(yùn)行結(jié)果為:分析:4定義一個(gè)帶參的宏,求兩個(gè)整數(shù)(例如97和62)相除所得的余數(shù)。并編寫main函數(shù),輸入這兩個(gè)整數(shù),輸出結(jié)果。編寫程序:運(yùn)行結(jié)果為:5定義一個(gè)宏,將大寫字母變成小寫字母。并編寫main函數(shù)

37、,輸入大寫字母,輸出由該宏轉(zhuǎn)換成的小寫字母。編寫程序:輸入大寫字母A:輸出結(jié)果為:實(shí)驗(yàn)16 指針(一)一、目的要求1掌握指針的基本概念。2掌握指針變量的定義和初始化。二、實(shí)驗(yàn)內(nèi)容思考問題:在int a=2, *p; *p=2;中,兩個(gè)*的作用有什么不同?1兩個(gè)指針變量各自指向一個(gè)整型變量,請(qǐng)使這兩個(gè)指針變量交換指向。編寫程序:運(yùn)行結(jié)果為:2兩個(gè)指針變量各自指向一個(gè)整型變量,請(qǐng)交換這兩個(gè)指針變量所指向的變量的值。編寫程序:運(yùn)行結(jié)果為:3有3個(gè)整型變量i、j、k。請(qǐng)編寫程序,設(shè)置3個(gè)指針變量p1、p2、p3,分別指向i、j、k。然后通過指針變量使i、j、k這3個(gè)變量的值順序交換,即原來i的值賦給j

38、,原來j的值賦給k,原來k的值賦給i。i、j、k的原值由鍵盤輸入,要求輸出i、j、k的原值和新值。提示:可參考【例9.3】。編寫程序:運(yùn)行結(jié)果為:4從鍵盤輸入3個(gè)整數(shù)給整型變量i、j、k,要求設(shè)置3個(gè)指針變量p1、p2、p3分別指向i、j、k,通過比較使p1指向3個(gè)數(shù)的最大者,p2指向次大者,p3指向最小者,然后由從大到小的順序輸出三個(gè)數(shù)。提示:*p1與*p2比較,若*p1<*p2,則*p1與*p2交換;*p1與*p3比較,若*p1<*p3,則*p1與*p3交換;*p2與*p3比較,若*p2<*p3,則*p2與*p3交換。經(jīng)過這3次比較,即可使*p1最大,*p2次之,*p3最

39、小。編寫程序:運(yùn)行結(jié)果為:實(shí)驗(yàn)17 指針(二)一、目的要求1掌握用指針作函數(shù)參數(shù)的編程方法。2掌握使用指向函數(shù)的指針的使用方法。3掌握返回指針值的函數(shù)(函數(shù)的返回值是指針)。二、實(shí)驗(yàn)內(nèi)容思考問題:使用指針有什么優(yōu)越性?1練習(xí)指針作為函數(shù)參數(shù)。使用指針,定義一個(gè)函數(shù),能夠?qū)ain函數(shù)傳遞過來的3個(gè)整型數(shù)據(jù)按從小到大的順序排好序;在main函數(shù)中輸出排序的正確結(jié)果。提示:可參考【例9.4】。編寫程序:運(yùn)行結(jié)果為:2練習(xí)指向函數(shù)的指針。編寫一個(gè)函數(shù),求3個(gè)實(shí)數(shù)的最小者;在main函數(shù)中定義指向函數(shù)的指針變量調(diào)用它。提示:可參考【例9.6】。編寫程序:運(yùn)行結(jié)果為:3練習(xí)返回指針值的函數(shù)。編寫一個(gè)函數(shù)

40、,求某班級(jí)學(xué)生的某門課的最高分(整數(shù))、最低分(整數(shù))、平均分(實(shí)數(shù),保留2位小數(shù))和成績(jī)優(yōu)秀(大于和等于90分)的學(xué)生的平均分(實(shí)數(shù),保留2位小數(shù))。要求學(xué)生的成績(jī)?cè)趍ain函數(shù)中輸入,所求結(jié)果也在main函數(shù)中輸出。用返回指針的函數(shù)實(shí)現(xiàn)。提示:可參考【例9.11】。編寫程序:輸入:運(yùn)行結(jié)果為:實(shí)驗(yàn)18 指針(三)一、目的要求1掌握指針與數(shù)組的關(guān)系,通過指針訪問數(shù)組。2掌握使用指針數(shù)組來處理字符串?dāng)?shù)組。3掌握指向字符串的指針。4練習(xí)使用帶參的main函數(shù)。二、實(shí)驗(yàn)內(nèi)容思考問題:用下標(biāo)法和指針法訪問數(shù)組元素時(shí),各有哪些表示方法?1分別用下標(biāo)法、指針法(指針變量p)訪問數(shù)組a10=-2,-10,0,-1,7,99,-35,43,61,-8,用這兩種方法輸出數(shù)組各元素的值,每種方法輸出的10個(gè)元素在一行上。編寫程序:下標(biāo)法:指針變量法:運(yùn)行結(jié)果為:2練習(xí)指針數(shù)組。有3個(gè)字符串"

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論