譚浩強(qiáng)C程序設(shè)計實驗大綱_第1頁
譚浩強(qiáng)C程序設(shè)計實驗大綱_第2頁
譚浩強(qiáng)C程序設(shè)計實驗大綱_第3頁
譚浩強(qiáng)C程序設(shè)計實驗大綱_第4頁
譚浩強(qiáng)C程序設(shè)計實驗大綱_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一 C程序的運行環(huán)境和運行一個C程序的方法1.      進(jìn)入C+工作環(huán)境建立個人子目錄:第一次上機(jī)時先在E盤上建立一個sw1子目錄,在sw1子目錄下,再建立以自己學(xué)號后三位為目錄名的子目錄,如學(xué)號為9911001的同學(xué),可以用001為子目錄名。然后按以下步驟進(jìn)行操作;啟動Visual C+ 6.0:雙擊Windows桌面上的Visual C+ 6.0圖標(biāo)或單擊Windows桌面上“開始”按鈕,在“程序”中選擇“Visual C+ 6.0”運行即可。 2.      編譯、運行C+

2、 源程序建立源文件再次選擇“File”菜單中的“New”選項,在四個標(biāo)簽中選擇“File”標(biāo)簽,在其對話框選項中,選擇“C+ Source File”,并在右邊的Add project的選擇框內(nèi)打勾,激活其下面的選項,然后在File框內(nèi)輸入源文件名(如1st),單擊“OK”按鈕,出現(xiàn)編輯屏幕,即可編寫程序(如圖2和圖3所示)。圖2 建立源文件圖3 編輯源文件編譯連接和運行源程序程序編好后要進(jìn)行編譯連接和運行,步驟如下:(1).    選擇“Build”菜單,單擊下拉菜單中的“Compile 1st.cpp”,這時系統(tǒng)開始對當(dāng)前的源程序進(jìn)行編譯,在編譯過程

3、中,將所發(fā)現(xiàn)的錯誤顯示在屏幕下方的“Build”窗口中。根據(jù)錯誤提示,修改程序后再重新編譯,如還有錯誤,再繼續(xù)修改、編譯,直到?jīng)]有錯誤為止。(2).   編譯無誤后進(jìn)行連接,這時選擇“Build”菜單中的“Build 1st.exe”選項。同樣,對出現(xiàn)的錯誤要進(jìn)行更改,直到編譯連接無錯為止。這時,在“Build”窗口中會顯示如下信息:1st.obj- 0 error(s), 0 warning(s),說明編譯連接成功,并生成以源文件名為名字的可執(zhí)行文件(1st.exe)。(3).     運行程序,選擇“Build”菜單中的

4、“! Execute 1st.exe”選項。這時,會出現(xiàn)一個“MS-DOS”窗口,輸出結(jié)果顯示在該窗口中(如圖4和圖5所示)。(4).   運行結(jié)束后,可以回到“File”菜單,點擊“Close Workspace”選項,關(guān)閉當(dāng)前文件窗口。若要編輯新的源程序,可以再次打開“File”菜單,重新建立工程文件,步驟如上所述; 也可以點擊“File”菜單中的“Open Workspace”選項,打開一個已經(jīng)存在的源文件。圖4 編輯運行源程序圖5 編譯連接及結(jié)果3.      練習(xí)按上面步驟,輸入以下程序(教材第一章例1.

5、2,但故意漏打或打錯幾個字符),并進(jìn)行編輯,仔細(xì)分析編譯信息窗口,可能顯示有多個錯誤,逐個修改,直到不出現(xiàn)錯誤,并運行。#include <stdio.h>void main( )int a, b, sum;a = 123;b = 456; sum = a + b ; printf (“sum is %dn”, sum);清空編輯窗口,輸入下面的程序。編譯并運行。#include <stdio.h> int max(int x, int y); void main( )int a, b, c;printf(“input a &am

6、p; b: ”);scanf(“%d, %d”, &a, &b); c = max(a, b); printf (“max=%d”, c); int max(int x, int y)int z;if (x > y);z = x;elsez = y;return (z);程序?qū)嵗夯鸩窆饔螒蚣僭O(shè)有21根火柴棍,兩人輪流拿取,每次可以取1-4根,不能多拿,也不能少拿。誰拿最后一根,誰就認(rèn)輸。/ matches.cpp - VC5 program/ Match picking - simple game/ J LUO, 29-Jun-2000&#

7、160;#include<stdio.h> void main() printf( "I have got 21 mathces. Let's pick them up in turn. nn"); printf( "You may pick up 1, 2, 3, or 4 n"); printf( "If you pick up the last one, you lose. nn");  int n = 21;/ the number to matches int i;/ the numb

8、er you take  while ( n>1) printf( "You take . "); scanf("%d",&i); if ( (i<1) | (i>4) ) printf( "Don't try to cheat me, take 1, 2, 3, or 4, please! n"); else printf( "I take %dn", 5-i); n = n -5;/ I'm smart! printf( " Now take the

9、 last one, please. n"); printf( " And you loss :-) nn");運行結(jié)果:I have got 21 mathces. Let's pick them up in turn.  You may pick up 1, 2, 3, or 4 If you pick up the last one, you lose.  You take .0Don't try to cheat me, take 1, 2, 3, or 4, please! You take .6Don't t

10、ry to cheat me, take 1, 2, 3, or 4, please! You take .1I take 4You take .3I take 2You take .2I take 3You take .4I take 1 Now take the last one, please. And you loss :-)  4.      運行自己編寫的程序題目是教材第1章的習(xí)題1.6,即:輸入a、b、c三個值,輸出其中最大者。· 或者自己編寫新的程序進(jìn)行練習(xí)。· 練習(xí)P68,3.12(5)·

11、; 實驗報告記錄。· 3109008542【羅斌】實驗2 數(shù)據(jù)類型、運算符和表達(dá)式1. 實驗?zāi)康恼莆誄語言數(shù)據(jù)類型,熟悉如何定義一個整形、字符型和實型的變量,以及對他們賦值的方法。掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。學(xué)會使用C的有關(guān)算術(shù)運算符,以及包含這些運算符的表達(dá)式,特別是自加(+)和自減(-)運算符的使用。進(jìn)一步熟悉C程序的編輯、編譯、連接和運行的過程。 2. 實驗內(nèi)容和步驟 輸入并運行下面的程序#include <stdio.h> void main() char c1, c2;c1 = 'a'c2 = b;printf (“%c

12、 %cn”, c1, c2);(1).  運行此程序。結(jié)果:ab(2). 再此基礎(chǔ)上增加一個語句:printf(“%d%dn”,c1,c2);再運行,并分析結(jié)果。結(jié)果:ab 9798(3).   再將第2行改為:int c1,c2;再使之運行,并觀察結(jié)果。結(jié)果:同上(4).  再將第 3、4行改為:c1 = a; /* 不用單撇號 */c2 = b;再使之運行,分析其運行結(jié)果。結(jié)果:兩個錯誤(6).  再將第 3、4行改為:c1 = ”a”; /* 用雙撇號 */ c2 = ”b”;再使之運行,

13、分析其運行結(jié)果。結(jié)果: 43375804337492(7).  再將第 3、4行改為:c1 = 300; /* 用大于255的整數(shù) */c2 = 400;再使之運行,分析其運行結(jié)果。輸入并運行教材第3章習(xí)題3.6給出的程序#include <stdio.h> void main() char c1 = a, c2 = b, c3 = c, c4 = 101, c5 = 116;printf (“a%c b%ctc%ctabcn”,c1, c2, c3);printf(“tb%c%c”, c4, c5);在上機(jī)前先用人工分析程序,寫出應(yīng)得結(jié)果,上機(jī)后將二

14、者對照。輸入并運行下面的程序#include <stdio.h> void main() int a,b;unsigned c,d;long e,f;a = 100;b = -100;e = 50000;f = 32767;c = a;d = b;printf(“%d,%dn”, a, b);printf(“%u,%un”, a, b);printf(“%u,%un”, c, b);c = a = e;d = b = f;printf(“%d,%dn”, a, b);printf(“%u,%un”, c, d);請對照程序和運行結(jié)果分析:(1).  &

15、#160; 將一個負(fù)整數(shù)賦給一個無符號的變量,會得到什麼結(jié)果。畫出它們在內(nèi)存中的表示形式。(2).     將一個大于32765?的長整數(shù)賦給整形變量,會得到什麼結(jié)果。畫出它們在內(nèi)存中的表示形式。(3).     將一個長整數(shù)賦給無符號的變量,會得到什麼結(jié)果(分別考慮該長整數(shù)的值大于或等于65535 以及小于65535 的情況)。畫出它們在內(nèi)存中的表示形式。同學(xué)們可以改變程序中各變量的值,以便比較。例如: a = 65580, b = -40000, e = 65535, f = 65

16、580。輸入習(xí)題3.10#include <stdio.h> void main() int i,j,m,n;i = 8;j = 10;m = +i;n = j+;printf(“%d,%d,%d,%d”, i, j, m, n);(1).    運行程序,注意 i、j、m、n 各變量的值,分別作以下改動并運行。(2).    將第4、5行改為:m = i+;n = +j;再運行。(3).    將程序改為:結(jié)果:8,11#include <std

17、io.h> void main() int i,j;i = 8;j = 10;printf(“%d,%d”, i+, j+);(4).     在(3)的基礎(chǔ)上,將printf 語句改為:結(jié)果:9,10printf(“%d,%d”, +i, +j);(5).    再將printf 語句改為:9,11,9,10printf(“%d,%d,%d,%d”, i, j, i+, j+);(6).     將程序改為:i=9,j=9,m=8,n=-9#inc

18、lude <stdio.h> void main() int i, j, m=0, n=0;i = 8;j = 10;m+= i+; n-= -j;printf(“i=%d,j=%d,m=%d,n=%d”, i, j, m, n);按習(xí)題3.7的要求編程序并上機(jī)運行該題的要求是:要將”China”譯成密碼,譯碼規(guī)律是:用原來字母后面的第4個字母代替原來的字母。例如,字母”A”后面第4個字母是”E”,用”E”代替”A”。因此,”China”應(yīng)譯為”Glmre”。請編一程序,用賦初值的方法使c1、c2、c3、c4、c5 五個變量的值分別為C、h、i、n、a,經(jīng)過運算,使c1、

19、c2、c3、c4、c5分別變?yōu)镚、l、m、r、e、,并輸出。輸入事先已編好的程序,并運行該程序。分析是否符合要求。改變c1、c2、c3、c4、c5、的初值為:T、o、d、a、y,對譯碼規(guī)律作如下補(bǔ)充:W用A 代替,X用B代替,Y用C代替,Z用D代替。修改程序并運行。將譯碼規(guī)律修改為:將字母用它前面的第4個字母代替,例如:E用A 代替,Z用V代替,D用Z代替,C用Y代替,B用X代替,A用V代替。修改程序并運行?!驹斠妼嶒瀳蟾娑繉嶒?3 最簡單的C 程序設(shè)計1. 實驗?zāi)康?掌握C語言中使用最多的一種語句賦值語句的使用方法。 掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。 

20、2. 實驗內(nèi)容和步驟 掌握各種格式轉(zhuǎn)換符的正確使用方法(1).  輸入程序#include <stdio.h>void main() int a, b;float d, e;char c1, c2;double f, g;long m, n;unsigned int p, q;a = 61; b = 62;c1 = a; c2 = b;d = 3.56; e = -6.87;f = 3157.890121; g = 0.123456789;m = 50000; n = -60000;p = 32768; q = 40000;printf(“a=%d, b=%dn

21、c1=%c, c2=%cnd=%6.2f, e=%6.2fn”, a, b, c1, c2, d, e);printf(“f=%15.6f, g=%15.12fnm=%ld, n=%ldnp=%u, q=%un”, f, g, m, n, p, q);(2).  運行此程序并分析結(jié)果。a=61,b=62nc1=a,c2=bnd=_3.56,e=_-6.87m=50000,n=-60000np=32768,q=40000(3).  在此基礎(chǔ)上,修改程序的第8-13行:a = 61; b = 62;c1 = a; c2 = b;f = 3157.890121; g = 0.12

22、3456789;d = f; e = g;p = a = m = 50000; q = b = n = -60000;運行程序,分析結(jié)果。a=50000,b=60000nc1=a,c2=bnd=3157.89,e=_0.12m=50000,n=-60000np=50000,q=4294907296(4).  改用scanf 函數(shù)輸入數(shù)據(jù)而不用賦值語句,scanf 函數(shù)如下:scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&

23、amp;m,&n,&p,&q);輸入的數(shù)據(jù)如下:61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000(說明:lf和ld格式符分別用于輸入double型和long型數(shù)據(jù))分析運行結(jié)果。a=61,b=62c1=a,c2=bd= 3.56,e= -6.87m=50000,n=-60000p=37678,q=40000(5).  在(4) 的基礎(chǔ)上將printf語句改為:printf(“a=%d, b=%dnc1=%c, c2=%cnd=%15.6f, e=%15.12fn

24、”, a, b, c1, c2, d, e);printf(“f=%f, g=%fnm=%d, n=%dnp=%d, q=%dn”, f, g, m, n, p, q);運行程序。a=61,b=62c1=a,c2=bd= 3.560000,e=-6.869999885559f=3157.890121,g=0.123457m=50000,n=-60000p=37678,q=40000(6).  將p、q改用%o格式符輸出。a=61,b=62 c1=a,2=bd= 3.560000,e=-6.869999885559f=3157.890121,0.123457m=50000,n

25、=-60000p=111456,q=116100(7). 將scanf函數(shù)中的%lf和%ld改為%f和%d,運行程序并觀察分析結(jié)果。d= 3.560000,e=-6.869999885559f=-92559605387113434三十個零.000000,-92559603991907475同上m=50000,n=-60000p=111456,q=116100 按習(xí)題4.8要求編寫程序題目為:設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf 輸入數(shù)據(jù),輸入計算結(jié)果。輸出時要有文字說明,取小數(shù)點后兩位數(shù)字。 編程序,用getchar 函數(shù)讀

26、入兩個字符給c1、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個字符。上機(jī)運行程序,比較用printf和putchar 函數(shù)輸出字符的特點。實驗4 邏輯結(jié)構(gòu)程序設(shè)計1.      實驗?zāi)康牧私釩語言表示邏輯量的方法(以0代表“假”,以非0代表“真” )。學(xué)會正確使用邏輯運算符和邏輯表達(dá)式。熟練掌握if語句和switch語句。結(jié)合程序掌握一些簡單的算法。學(xué)習(xí)調(diào)試程序。 2.      實驗內(nèi)容本實驗要求事先編好解決下面問題的程序,然后上機(jī)輸入程序并調(diào)試運行程序。(1).&

27、#160;   有一函數(shù):用scanf函數(shù)輸入x的值,求y值。(習(xí)題5.5)運行程序,輸入x的值(分別為x<1、1x<10、x10三種情況),檢查輸出的y值是否正確。(2).     給出一個百分制成績,要求輸出成績等級A、B、C、D、E。90分以上為A,8189分為B,7079分為C,6069分為D,60分以下為E。(習(xí)題5.6)。 事先編好程序,要求分別用if語句和switch語句實現(xiàn)。運行程序,并檢查結(jié)果是否正確。 再運行一次程序,輸入分?jǐn)?shù)為負(fù)值(如70),這顯然是輸入時出錯,不應(yīng)給出等級。修改程

28、序,使之能正確處理任何數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)大于100或小于0時,通知用戶“輸入數(shù)據(jù)錯”,程序結(jié)束。(3).     給一個不多于5位的正整數(shù),要求:求出它是幾位數(shù);分別打印出每一位數(shù)字;按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。(習(xí)題5.7)應(yīng)準(zhǔn)備以下測試數(shù)據(jù):l     要處理的數(shù)為1位正整數(shù);l     要處理的數(shù)為2位正整數(shù);l     要處理的數(shù)為3位正整數(shù);l     要處理的數(shù)

29、為4位正整數(shù);l     要處理的數(shù)為5位正整數(shù)。除此之外,程序還應(yīng)當(dāng)對不合法的輸入作必要的處理。例如:l     輸入負(fù)數(shù);l    輸入的數(shù)超過5位(如123 456)。(4).   輸入4個整數(shù),要求按由小到大順序輸出。得到正確結(jié)果后,修改程序使之按由大到小順序輸出。(習(xí)題5.9)(5).   根據(jù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型。(6).   現(xiàn)有

30、十二個小球,其中一個球的重量與其它十一個的重量不相同,但不知道是輕還是重。試用天平稱三次,把這個非標(biāo)準(zhǔn)球找出來,并指出它比標(biāo)準(zhǔn)球是輕還是重。要求:(1).   用嵌套的選擇結(jié)構(gòu)編寫程序;(2).   調(diào)試程序時,必須把十二個球或輕或重共24種可能性都找出來。實驗5 循環(huán)控制1.      實驗?zāi)康?熟悉并掌握用while語句,do-while語句和for語句實現(xiàn)循環(huán)的方法。 掌握在程序設(shè)計中用循環(huán)的方法實現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。 進(jìn)一步學(xué)習(xí)調(diào)試程序。 2.&#

31、160;     實驗內(nèi)容編程序并上機(jī)調(diào)試運行。(1).   輸入兩個正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)。(習(xí)題6.1)在運行時,輸入的值m>n,觀察結(jié)果是否正確。再輸入時,使m<n,觀察結(jié)果是否正確。修改程序,不論m和n為何值(包括負(fù)整數(shù)),都能得到正確結(jié)果。(2).     輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其它字符的個數(shù)。(習(xí)題6.2)在得到正確結(jié)果后,請修改程序使之能分別統(tǒng)計大小寫字母、空格、數(shù)字和其它字符的個數(shù)。(3). &#

32、160;  用牛頓迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。(習(xí)題6.12)在得到正確結(jié)果后,請修改程序使所設(shè)的x初值由1.5改變?yōu)?00、1000、10000,再運行,觀察結(jié)果,分析不同的x初值對結(jié)果有沒有影響,為什么?修改程序,使之能輸出迭代的次數(shù)和每次迭代的結(jié)果,分析不同的x初始值對迭代的次數(shù)有無影響。(4).    猴子吃桃問題。猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩

33、一個桃子了。求第一天共摘了多少桃子。(習(xí)題6.10)在得到正確結(jié)果后,修改題目,改為猴子每天吃了前一天剩下的一半后,再吃兩個。請修改程序,并運行,檢查結(jié)果是否正確。實驗6 數(shù)組1.      實驗?zāi)康?掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法; 掌握字符數(shù)組和字符串函數(shù)的使用; 掌握與數(shù)組有關(guān)的算法(特別是排序算法)。 2.      實驗內(nèi)容編程序并上機(jī)調(diào)試運行。(1).    用選擇法對10個整數(shù)排序。10個整數(shù)用scanf函數(shù)輸入。(習(xí)題7

34、.2)(2).    有15個數(shù)存放在一個數(shù)組中,輸入一個數(shù),要求用折半查找法找出該數(shù)是數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中,則輸出“無此數(shù)”。以15個數(shù)用賦初值的方法在程序中給出。要找的數(shù)用scanf函數(shù)輸入。(習(xí)題7.9)(3).    將兩個字符串連接起來,不要用strcat函數(shù)。(4).  找出一個二維數(shù)組的“鞍點”,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點。(習(xí)題7.8)應(yīng)當(dāng)至少準(zhǔn)備兩組測試數(shù)據(jù):二維數(shù)組有鞍點 9 80 205 40 90 -60 96 1 210 -3

35、101 89二維數(shù)組沒有鞍點 9 80 205 40 90 -60 196 1 210 -3 101 8945 54 156 7 用scanf函數(shù)從鍵盤輸入數(shù)組各元素的值,檢查結(jié)果是否正確。題目并未指定二維數(shù)組的行數(shù)和列數(shù),程序應(yīng)能處理任意行數(shù)和列數(shù)的數(shù)組。因此,從理論上來說,應(yīng)當(dāng)準(zhǔn)備許多種不同行數(shù)和列數(shù)的數(shù)組數(shù)據(jù),但這樣的工作量太大,一般來說不需要這樣做,只需準(zhǔn)備典型的數(shù)據(jù)即可。如果已指定了數(shù)組的行數(shù)和列數(shù),可以在程序中對數(shù)組元素賦初值,而不必用scanf函數(shù)。請同學(xué)們修改程序以實現(xiàn)之。實驗7 函數(shù)1.      實驗?zāi)康恼莆斩x函數(shù)的方法;

36、掌握函數(shù)實參與形參的對應(yīng)關(guān)系以及“值傳遞”的方式;掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法;掌握全局變量和局部變量動態(tài)變量、靜態(tài)變量的概念和使用方法。學(xué)習(xí)對多文件程序的編譯和運行。 2.      實驗內(nèi)容編程序并上機(jī)調(diào)試運行。(1).   寫一個判別素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。(習(xí)題8.3)本程序應(yīng)當(dāng)準(zhǔn)備以下測試數(shù)據(jù):17、34、2,1、0。分別輸入數(shù)據(jù),運行程序并檢查結(jié)果是否正確。(2).   用一個函數(shù)來實現(xiàn)將一行字符串中最長的單詞輸出。此行字符串從主函數(shù)傳遞

37、給該函數(shù)(習(xí)題810)把兩個函數(shù)放在同一個程序文件中,作為一個文件進(jìn)行編譯和運行。把兩個函數(shù)分別放在兩個程序文件中,作為兩個文件進(jìn)行編譯、連接和運行。(3).   用遞歸法將一個整數(shù)n轉(zhuǎn)換成字符串。例如,輸入483,應(yīng)輸出字符串“483”。n的位數(shù)不確定,可以是任意的整數(shù)。(習(xí)題817)(4).   求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個函數(shù)求最大公約數(shù),用另一函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。(習(xí)題8.1)不用全局變量,分別用兩個函數(shù)求最大公約數(shù)和最小公倍數(shù)。兩個整數(shù)在主函數(shù)中輸人,并傳送給函數(shù)l,求出的最大公約數(shù)返回主函數(shù),然后再與

38、兩個整數(shù)一起作為實參傳遞給函數(shù)2,以求出最小公倍數(shù),再返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。用全局變量的方法,分別用兩個函數(shù)求最大公約數(shù)和最小公倍數(shù),但其值不由函數(shù)帶回。將最大公約數(shù)和最小公倍數(shù)都設(shè)為全局變量,在主函數(shù)中輸出它們的值。(5).     寫一函數(shù),輸入一個十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。(習(xí)題816) 實驗8 編譯預(yù)處理1.      實驗?zāi)康恼莆蘸甓x的方法;掌握文件包含處理方法;掌握條件編譯的方法。2.      實

39、驗內(nèi)容編程序并上機(jī)調(diào)試運行。(1).    定義一個帶參數(shù)的宏,使兩個參數(shù)的值互換。在主函數(shù)中輸入兩個數(shù)作為使用宏的實參,輸出已交換后的兩個值。(習(xí)題9.1)(2).    設(shè)計輸出實數(shù)的格式,包括:一行輸出一個實數(shù);一行內(nèi)輸出兩個實數(shù);一行內(nèi)輸出三個實數(shù)。實數(shù)用“% 6.2f”格式輸出。(習(xí)題9.6)用一個文件Print-format.h包含以上用#define命令定義的格式。在自己的文件(自己命名)中用#include命令將print-format.h文件包含進(jìn)來。在程序中用scanf函數(shù)讀入三個實數(shù)給f1、f

40、2、f3。然后用上面定義的三種格式分別輸出:f1;f1、f2;f1、f2、f3。(3).   用條件編譯方法實現(xiàn)以下功能:輸入一行電報文字,可以任選兩種輸出,一為原文輸出;一為將字母變成其下一字母(如'a'變成'b''z'變成'a'。其他字符不變)。用#define命令來控制是否要譯成密碼。例如:若#define CHANGE 1則輸出密碼。若#define CHANGE 0則不譯成密碼,按原碼輸出。(習(xí)題 9.10)編寫程序,用條件編譯方法來實現(xiàn)題目要求。首先在程序中用“#define CHANGE

41、 1”,運行程序,應(yīng)得到密碼。將“#define CHANGEl”改為“#define CHANGE 0”,再運行程序,應(yīng)得到原文。 實驗9 指針1.      實驗?zāi)康耐ㄟ^實驗進(jìn)一步掌握指針的概念,會定義和使用指針變量;能正確使用數(shù)組的指針和指向數(shù)組的指針變量;能正確使用字符串的指針和指向字符串的指針變量;能正確使用指向函數(shù)的指針變量;了解指向指針的指針的概念及其使用方法。2.      實驗內(nèi)容編程序并上機(jī)調(diào)試運行程序(都要求用指針處理)。(1).   

42、; 輸入三個整數(shù),按由小到大的順序輸出,然后將程序改為:輸入三個字符串,按由小到大順序輸出。(習(xí)題l0.1、10.2)(2).   將一個3X3的矩陣轉(zhuǎn)置,用一函數(shù)實現(xiàn)之。(習(xí)題109)在主函數(shù)中用scanf函數(shù)輸入以下矩陣元素: 1 3 5 7 9 11 13 15 19將數(shù)組名作為函數(shù)實參,在執(zhí)行函數(shù)的過程中實現(xiàn)矩陣轉(zhuǎn)置,函數(shù)調(diào)用結(jié)束后在主函數(shù)中輸出已轉(zhuǎn)置的矩陣。(3).    有n個人圍成一圈,順序排號。從第1個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。(習(xí)題10.5)(4). 

43、  用一個函數(shù)實現(xiàn)兩個字符串的比較,即自己寫一個strcmp函數(shù),函數(shù)原型為:int strcmp (char * p1, char * p2);設(shè)p1指向字符串s1,p2指向字符串s2,要求當(dāng)s1s2時,函數(shù)返回值為 0, 如果sls2,則返回它們二者第一個不相同字符的ASCII碼差值(如“BOY”與“BAD”的第二個字母不相同,“O”與“A”之差為7965=14);如果sl>s2,則輸出正值;如果sl<s2則輸出負(fù)值。(習(xí)題10.17)兩個字符串s1、s2由main函數(shù)輸入,strcmp函數(shù)的返回值也由main函數(shù)輸出。(5).   &#

44、160;寫一個用矩形法求定積分的通用函數(shù),分別求:說明:sin、cos、exp已在系統(tǒng)的數(shù)學(xué)函數(shù)庫中,程序開頭要用#include<mathh>。(習(xí)題10.13)(6).   用指向指針的指針的方法對n個整數(shù)排序并輸出。要求將排序單獨寫成一個函數(shù)。n和各整數(shù)在主函數(shù)中輸入,最后在主函數(shù)中輸出。(習(xí)題10.21)實驗10 結(jié)構(gòu)體和共用體1.      實驗?zāi)康恼莆战Y(jié)構(gòu)體類型變量的定義和使用;掌握結(jié)構(gòu)體類型數(shù)組的概念和使用;掌握鏈表的概念,初步學(xué)會對鏈表進(jìn)行操作;掌握共用體的概念與使用。2. &

45、#160;    實驗內(nèi)容編程序,然后上機(jī)調(diào)試運行。(1).     有10個學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、3門課的成績,從鍵盤輸入10個學(xué)生數(shù)據(jù),要求打印出3門課總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、3門課的成績、平均分?jǐn)?shù))。(習(xí)題11.5)要求用input函數(shù)輸入10個學(xué)生數(shù)據(jù);用average函數(shù)求總平均分;用max函數(shù)找出最高分的學(xué)生數(shù)據(jù);總平均分和最高分學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。(2).   13個人圍成一圈,從第1個人開始順序報號1、2、3。凡報到“3”者退出圈

46、子,找出最后留在圈子中的人原來的序號。(習(xí)題11.9)本題要求用鏈表實現(xiàn)。(3).  建立一個鏈表,每個結(jié)點包括:學(xué)號、姓名、性別、年齡。輸入一個年齡,如果鏈表中的結(jié)點所包含的年齡等于此年齡,則將此結(jié)點刪去。(習(xí)題11.11)(4).   輸入和運行以下程序:union data int i2;float a;long b;char c4;u;main ( ) scanf("%d,%d",&u.i0,&u.i1);printf(i0=%d,i1=%da=%fb=%1dc0=%c,c1=%c,c2=%c,c3=%c, u

47、.i0,u.i1,u.a,u.b,u.c0,u.c1,u.c2,u.c3);輸入兩個整數(shù)10000、20000給u.i0和u.il,分析運行結(jié)果。然后將scanf語句改為:scanf("ld",&u.b);輸入60000給b,分析運行結(jié)果。實驗11 位運算1.  實驗?zāi)康恼莆瞻次贿\算的概念和方法,學(xué)會使用位運算符;學(xué)會通過位運算實現(xiàn)對某些位的操作。2.      實驗內(nèi)容編寫程序,上機(jī)調(diào)試并運行。(1).     編寫一程序,檢查所用的計算機(jī)系統(tǒng)的C編譯在執(zhí)行右移時是按照邏輯右移的原則,還是按照算術(shù)右移的原則進(jìn)行操作。如果是邏輯右移,請編一個函數(shù)實現(xiàn)算術(shù)右移;如果是算術(shù)右移,請編一個函數(shù)實現(xiàn)邏輯右移。(習(xí)題123)(2). &#

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論