




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 C程序的運(yùn)行環(huán)境和運(yùn)行一個(gè)C程序的方法1. 進(jìn)入C+工作環(huán)境建立個(gè)人子目錄:第一次上機(jī)時(shí)先在E盤上建立一個(gè)sw1子目錄,在sw1子目錄下,再建立以自己學(xué)號(hào)后三位為目錄名的子目錄,如學(xué)號(hào)為9911001的同學(xué),可以用001為子目錄名。然后按以下步驟進(jìn)行操作;啟動(dòng)Visual C+ 6.0:雙擊Windows桌面上的Visual C+ 6.0圖標(biāo)或單擊Windows桌面上“開始”按鈕,在“程序”中選擇“Visual C+ 6.0”運(yùn)行即可。 2. 編譯、運(yùn)行C+
2、 源程序建立源文件再次選擇“File”菜單中的“New”選項(xiàng),在四個(gè)標(biāo)簽中選擇“File”標(biāo)簽,在其對(duì)話框選項(xiàng)中,選擇“C+ Source File”,并在右邊的Add project的選擇框內(nèi)打勾,激活其下面的選項(xiàng),然后在File框內(nèi)輸入源文件名(如1st),單擊“OK”按鈕,出現(xiàn)編輯屏幕,即可編寫程序(如圖2和圖3所示)。圖2 建立源文件圖3 編輯源文件編譯連接和運(yùn)行源程序程序編好后要進(jìn)行編譯連接和運(yùn)行,步驟如下:(1). 選擇“Build”菜單,單擊下拉菜單中的“Compile 1st.cpp”,這時(shí)系統(tǒng)開始對(duì)當(dāng)前的源程序進(jìn)行編譯,在編譯過程
3、中,將所發(fā)現(xiàn)的錯(cuò)誤顯示在屏幕下方的“Build”窗口中。根據(jù)錯(cuò)誤提示,修改程序后再重新編譯,如還有錯(cuò)誤,再繼續(xù)修改、編譯,直到?jīng)]有錯(cuò)誤為止。(2). 編譯無誤后進(jìn)行連接,這時(shí)選擇“Build”菜單中的“Build 1st.exe”選項(xiàng)。同樣,對(duì)出現(xiàn)的錯(cuò)誤要進(jìn)行更改,直到編譯連接無錯(cuò)為止。這時(shí),在“Build”窗口中會(huì)顯示如下信息:1st.obj- 0 error(s), 0 warning(s),說明編譯連接成功,并生成以源文件名為名字的可執(zhí)行文件(1st.exe)。(3). 運(yùn)行程序,選擇“Build”菜單中的
4、“! Execute 1st.exe”選項(xiàng)。這時(shí),會(huì)出現(xiàn)一個(gè)“MS-DOS”窗口,輸出結(jié)果顯示在該窗口中(如圖4和圖5所示)。(4). 運(yùn)行結(jié)束后,可以回到“File”菜單,點(diǎn)擊“Close Workspace”選項(xiàng),關(guān)閉當(dāng)前文件窗口。若要編輯新的源程序,可以再次打開“File”菜單,重新建立工程文件,步驟如上所述; 也可以點(diǎn)擊“File”菜單中的“Open Workspace”選項(xiàng),打開一個(gè)已經(jīng)存在的源文件。圖4 編輯運(yùn)行源程序圖5 編譯連接及結(jié)果3. 練習(xí)按上面步驟,輸入以下程序(教材第一章例1.
5、2,但故意漏打或打錯(cuò)幾個(gè)字符),并進(jìn)行編輯,仔細(xì)分析編譯信息窗口,可能顯示有多個(gè)錯(cuò)誤,逐個(gè)修改,直到不出現(xiàn)錯(cuò)誤,并運(yùn)行。#include <stdio.h>void main( )int a, b, sum;a = 123;b = 456; sum = a + b ; printf (“sum is %dn”, sum);清空編輯窗口,輸入下面的程序。編譯并運(yùn)行。#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根,不能多拿,也不能少拿。誰(shuí)拿最后一根,誰(shuí)就認(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");運(yùn)行結(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. 運(yùn)行自己編寫的程序題目是教材第1章的習(xí)題1.6,即:輸入a、b、c三個(gè)值,輸出其中最大者。· 或者自己編寫新的程序進(jìn)行練習(xí)。· 練習(xí)P68,3.12(5)·
11、; 實(shí)驗(yàn)報(bào)告記錄。· 3109008542【羅斌】實(shí)驗(yàn)2 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式1. 實(shí)驗(yàn)?zāi)康恼莆誄語(yǔ)言數(shù)據(jù)類型,熟悉如何定義一個(gè)整形、字符型和實(shí)型的變量,以及對(duì)他們賦值的方法。掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(+)和自減(-)運(yùn)算符的使用。進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。 2. 實(shí)驗(yàn)內(nèi)容和步驟 輸入并運(yùn)行下面的程序#include <stdio.h> void main() char c1, c2;c1 = 'a'c2 = b;printf (“%c
12、 %cn”, c1, c2);(1). 運(yùn)行此程序。結(jié)果:ab(2). 再此基礎(chǔ)上增加一個(gè)語(yǔ)句:printf(“%d%dn”,c1,c2);再運(yùn)行,并分析結(jié)果。結(jié)果:ab 9798(3). 再將第2行改為:int c1,c2;再使之運(yùn)行,并觀察結(jié)果。結(jié)果:同上(4). 再將第 3、4行改為:c1 = a; /* 不用單撇號(hào) */c2 = b;再使之運(yùn)行,分析其運(yùn)行結(jié)果。結(jié)果:兩個(gè)錯(cuò)誤(6). 再將第 3、4行改為:c1 = ”a”; /* 用雙撇號(hào) */ c2 = ”b”;再使之運(yùn)行,
13、分析其運(yùn)行結(jié)果。結(jié)果: 43375804337492(7). 再將第 3、4行改為:c1 = 300; /* 用大于255的整數(shù) */c2 = 400;再使之運(yùn)行,分析其運(yùn)行結(jié)果。輸入并運(yùn)行教材第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、者對(duì)照。輸入并運(yùn)行下面的程序#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);請(qǐng)對(duì)照程序和運(yùn)行結(jié)果分析:(1). &
15、#160; 將一個(gè)負(fù)整數(shù)賦給一個(gè)無符號(hào)的變量,會(huì)得到什麼結(jié)果。畫出它們?cè)趦?nèi)存中的表示形式。(2). 將一個(gè)大于32765?的長(zhǎng)整數(shù)賦給整形變量,會(huì)得到什麼結(jié)果。畫出它們?cè)趦?nèi)存中的表示形式。(3). 將一個(gè)長(zhǎng)整數(shù)賦給無符號(hào)的變量,會(huì)得到什麼結(jié)果(分別考慮該長(zhǎng)整數(shù)的值大于或等于65535 以及小于65535 的情況)。畫出它們?cè)趦?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). 運(yùn)行程序,注意 i、j、m、n 各變量的值,分別作以下改動(dòng)并運(yùn)行。(2). 將第4、5行改為:m = i+;n = +j;再運(yùn)行。(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 語(yǔ)句改為:結(jié)果:9,10printf(“%d,%d”, +i, +j);(5). 再將printf 語(yǔ)句改為: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ī)運(yùn)行該題的要求是:要將”China”譯成密碼,譯碼規(guī)律是:用原來字母后面的第4個(gè)字母代替原來的字母。例如,字母”A”后面第4個(gè)字母是”E”,用”E”代替”A”。因此,”China”應(yīng)譯為”Glmre”。請(qǐng)編一程序,用賦初值的方法使c1、c2、c3、c4、c5 五個(gè)變量的值分別為C、h、i、n、a,經(jīng)過運(yùn)算,使c1、
19、c2、c3、c4、c5分別變?yōu)镚、l、m、r、e、,并輸出。輸入事先已編好的程序,并運(yùn)行該程序。分析是否符合要求。改變c1、c2、c3、c4、c5、的初值為:T、o、d、a、y,對(duì)譯碼規(guī)律作如下補(bǔ)充:W用A 代替,X用B代替,Y用C代替,Z用D代替。修改程序并運(yùn)行。將譯碼規(guī)律修改為:將字母用它前面的第4個(gè)字母代替,例如:E用A 代替,Z用V代替,D用Z代替,C用Y代替,B用X代替,A用V代替。修改程序并運(yùn)行。【詳見實(shí)驗(yàn)報(bào)告二】實(shí)驗(yàn) 3 最簡(jiǎn)單的C 程序設(shè)計(jì)1. 實(shí)驗(yàn)?zāi)康?掌握C語(yǔ)言中使用最多的一種語(yǔ)句賦值語(yǔ)句的使用方法。 掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。
20、2. 實(shí)驗(yàn)內(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). 運(yùn)行此程序并分析結(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;運(yùn)行程序,分析結(jié)果。a=50000,b=60000nc1=a,c2=bnd=3157.89,e=_0.12m=50000,n=-60000np=50000,q=4294907296(4). 改用scanf 函數(shù)輸入數(shù)據(jù)而不用賦值語(yǔ)句,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ù))分析運(yùn)行結(jié)果。a=61,b=62c1=a,c2=bd= 3.56,e= -6.87m=50000,n=-60000p=37678,q=40000(5). 在(4) 的基礎(chǔ)上將printf語(yǔ)句改為: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);運(yùn)行程序。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,運(yùn)行程序并觀察分析結(jié)果。d= 3.560000,e=-6.869999885559f=-92559605387113434三十個(gè)零.000000,-92559603991907475同上m=50000,n=-60000p=111456,q=116100 按習(xí)題4.8要求編寫程序題目為:設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf 輸入數(shù)據(jù),輸入計(jì)算結(jié)果。輸出時(shí)要有文字說明,取小數(shù)點(diǎn)后兩位數(shù)字。 編程序,用getchar 函數(shù)讀
26、入兩個(gè)字符給c1、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個(gè)字符。上機(jī)運(yùn)行程序,比較用printf和putchar 函數(shù)輸出字符的特點(diǎn)。實(shí)驗(yàn)4 邏輯結(jié)構(gòu)程序設(shè)計(jì)1. 實(shí)驗(yàn)?zāi)康牧私釩語(yǔ)言表示邏輯量的方法(以0代表“假”,以非0代表“真” )。學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。熟練掌握if語(yǔ)句和switch語(yǔ)句。結(jié)合程序掌握一些簡(jiǎn)單的算法。學(xué)習(xí)調(diào)試程序。 2. 實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)要求事先編好解決下面問題的程序,然后上機(jī)輸入程序并調(diào)試運(yùn)行程序。(1).&
27、#160; 有一函數(shù):用scanf函數(shù)輸入x的值,求y值。(習(xí)題5.5)運(yùn)行程序,輸入x的值(分別為x<1、1x<10、x10三種情況),檢查輸出的y值是否正確。(2). 給出一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)A、B、C、D、E。90分以上為A,8189分為B,7079分為C,6069分為D,60分以下為E。(習(xí)題5.6)。 事先編好程序,要求分別用if語(yǔ)句和switch語(yǔ)句實(shí)現(xiàn)。運(yùn)行程序,并檢查結(jié)果是否正確。 再運(yùn)行一次程序,輸入分?jǐn)?shù)為負(fù)值(如70),這顯然是輸入時(shí)出錯(cuò),不應(yīng)給出等級(jí)。修改程
28、序,使之能正確處理任何數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)大于100或小于0時(shí),通知用戶“輸入數(shù)據(jù)錯(cuò)”,程序結(jié)束。(3). 給一個(gè)不多于5位的正整數(shù),要求:求出它是幾位數(shù);分別打印出每一位數(shù)字;按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。(習(xí)題5.7)應(yīng)準(zhǔn)備以下測(cè)試數(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)對(duì)不合法的輸入作必要的處理。例如:l 輸入負(fù)數(shù);l 輸入的數(shù)超過5位(如123 456)。(4). 輸入4個(gè)整數(shù),要求按由小到大順序輸出。得到正確結(jié)果后,修改程序使之按由大到小順序輸出。(習(xí)題5.9)(5). 根據(jù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型。(6). 現(xiàn)有
30、十二個(gè)小球,其中一個(gè)球的重量與其它十一個(gè)的重量不相同,但不知道是輕還是重。試用天平稱三次,把這個(gè)非標(biāo)準(zhǔn)球找出來,并指出它比標(biāo)準(zhǔn)球是輕還是重。要求:(1). 用嵌套的選擇結(jié)構(gòu)編寫程序;(2). 調(diào)試程序時(shí),必須把十二個(gè)球或輕或重共24種可能性都找出來。實(shí)驗(yàn)5 循環(huán)控制1. 實(shí)驗(yàn)?zāi)康?熟悉并掌握用while語(yǔ)句,do-while語(yǔ)句和for語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。 掌握在程序設(shè)計(jì)中用循環(huán)的方法實(shí)現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。 進(jìn)一步學(xué)習(xí)調(diào)試程序。 2.
31、160; 實(shí)驗(yàn)內(nèi)容編程序并上機(jī)調(diào)試運(yùn)行。(1). 輸入兩個(gè)正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)。(習(xí)題6.1)在運(yùn)行時(shí),輸入的值m>n,觀察結(jié)果是否正確。再輸入時(shí),使m<n,觀察結(jié)果是否正確。修改程序,不論m和n為何值(包括負(fù)整數(shù)),都能得到正確結(jié)果。(2). 輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。(習(xí)題6.2)在得到正確結(jié)果后,請(qǐng)修改程序使之能分別統(tǒng)計(jì)大小寫字母、空格、數(shù)字和其它字符的個(gè)數(shù)。(3).
32、160; 用牛頓迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。(習(xí)題6.12)在得到正確結(jié)果后,請(qǐng)修改程序使所設(shè)的x初值由1.5改變?yōu)?00、1000、10000,再運(yùn)行,觀察結(jié)果,分析不同的x初值對(duì)結(jié)果有沒有影響,為什么?修改程序,使之能輸出迭代的次數(shù)和每次迭代的結(jié)果,分析不同的x初始值對(duì)迭代的次數(shù)有無影響。(4). 猴子吃桃問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩
33、一個(gè)桃子了。求第一天共摘了多少桃子。(習(xí)題6.10)在得到正確結(jié)果后,修改題目,改為猴子每天吃了前一天剩下的一半后,再吃兩個(gè)。請(qǐng)修改程序,并運(yùn)行,檢查結(jié)果是否正確。實(shí)驗(yàn)6 數(shù)組1. 實(shí)驗(yàn)?zāi)康?掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法; 掌握字符數(shù)組和字符串函數(shù)的使用; 掌握與數(shù)組有關(guān)的算法(特別是排序算法)。 2. 實(shí)驗(yàn)內(nèi)容編程序并上機(jī)調(diào)試運(yùn)行。(1). 用選擇法對(duì)10個(gè)整數(shù)排序。10個(gè)整數(shù)用scanf函數(shù)輸入。(習(xí)題7
34、.2)(2). 有15個(gè)數(shù)存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用折半查找法找出該數(shù)是數(shù)組中第幾個(gè)元素的值。如果該數(shù)不在數(shù)組中,則輸出“無此數(shù)”。以15個(gè)數(shù)用賦初值的方法在程序中給出。要找的數(shù)用scanf函數(shù)輸入。(習(xí)題7.9)(3). 將兩個(gè)字符串連接起來,不要用strcat函數(shù)。(4). 找出一個(gè)二維數(shù)組的“鞍點(diǎn)”,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點(diǎn)。(習(xí)題7.8)應(yīng)當(dāng)至少準(zhǔn)備兩組測(cè)試數(shù)據(jù):二維數(shù)組有鞍點(diǎn) 9 80 205 40 90 -60 96 1 210 -3
35、101 89二維數(shù)組沒有鞍點(diǎn) 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ù),可以在程序中對(duì)數(shù)組元素賦初值,而不必用scanf函數(shù)。請(qǐng)同學(xué)們修改程序以實(shí)現(xiàn)之。實(shí)驗(yàn)7 函數(shù)1. 實(shí)驗(yàn)?zāi)康恼莆斩x函數(shù)的方法;
36、掌握函數(shù)實(shí)參與形參的對(duì)應(yīng)關(guān)系以及“值傳遞”的方式;掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法;掌握全局變量和局部變量動(dòng)態(tài)變量、靜態(tài)變量的概念和使用方法。學(xué)習(xí)對(duì)多文件程序的編譯和運(yùn)行。 2. 實(shí)驗(yàn)內(nèi)容編程序并上機(jī)調(diào)試運(yùn)行。(1). 寫一個(gè)判別素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否素?cái)?shù)的信息。(習(xí)題8.3)本程序應(yīng)當(dāng)準(zhǔn)備以下測(cè)試數(shù)據(jù):17、34、2,1、0。分別輸入數(shù)據(jù),運(yùn)行程序并檢查結(jié)果是否正確。(2). 用一個(gè)函數(shù)來實(shí)現(xiàn)將一行字符串中最長(zhǎng)的單詞輸出。此行字符串從主函數(shù)傳遞
37、給該函數(shù)(習(xí)題810)把兩個(gè)函數(shù)放在同一個(gè)程序文件中,作為一個(gè)文件進(jìn)行編譯和運(yùn)行。把兩個(gè)函數(shù)分別放在兩個(gè)程序文件中,作為兩個(gè)文件進(jìn)行編譯、連接和運(yùn)行。(3). 用遞歸法將一個(gè)整數(shù)n轉(zhuǎn)換成字符串。例如,輸入483,應(yīng)輸出字符串“483”。n的位數(shù)不確定,可以是任意的整數(shù)。(習(xí)題817)(4). 求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個(gè)函數(shù)求最大公約數(shù),用另一函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。(習(xí)題8.1)不用全局變量,分別用兩個(gè)函數(shù)求最大公約數(shù)和最小公倍數(shù)。兩個(gè)整數(shù)在主函數(shù)中輸人,并傳送給函數(shù)l,求出的最大公約數(shù)返回主函數(shù),然后再與
38、兩個(gè)整數(shù)一起作為實(shí)參傳遞給函數(shù)2,以求出最小公倍數(shù),再返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。用全局變量的方法,分別用兩個(gè)函數(shù)求最大公約數(shù)和最小公倍數(shù),但其值不由函數(shù)帶回。將最大公約數(shù)和最小公倍數(shù)都設(shè)為全局變量,在主函數(shù)中輸出它們的值。(5). 寫一函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。(習(xí)題816) 實(shí)驗(yàn)8 編譯預(yù)處理1. 實(shí)驗(yàn)?zāi)康恼莆蘸甓x的方法;掌握文件包含處理方法;掌握條件編譯的方法。2. 實(shí)
39、驗(yàn)內(nèi)容編程序并上機(jī)調(diào)試運(yùn)行。(1). 定義一個(gè)帶參數(shù)的宏,使兩個(gè)參數(shù)的值互換。在主函數(shù)中輸入兩個(gè)數(shù)作為使用宏的實(shí)參,輸出已交換后的兩個(gè)值。(習(xí)題9.1)(2). 設(shè)計(jì)輸出實(shí)數(shù)的格式,包括:一行輸出一個(gè)實(shí)數(shù);一行內(nèi)輸出兩個(gè)實(shí)數(shù);一行內(nèi)輸出三個(gè)實(shí)數(shù)。實(shí)數(shù)用“% 6.2f”格式輸出。(習(xí)題9.6)用一個(gè)文件Print-format.h包含以上用#define命令定義的格式。在自己的文件(自己命名)中用#include命令將print-format.h文件包含進(jìn)來。在程序中用scanf函數(shù)讀入三個(gè)實(shí)數(shù)給f1、f
40、2、f3。然后用上面定義的三種格式分別輸出:f1;f1、f2;f1、f2、f3。(3). 用條件編譯方法實(shí)現(xiàn)以下功能:輸入一行電報(bào)文字,可以任選兩種輸出,一為原文輸出;一為將字母變成其下一字母(如'a'變成'b''z'變成'a'。其他字符不變)。用#define命令來控制是否要譯成密碼。例如:若#define CHANGE 1則輸出密碼。若#define CHANGE 0則不譯成密碼,按原碼輸出。(習(xí)題 9.10)編寫程序,用條件編譯方法來實(shí)現(xiàn)題目要求。首先在程序中用“#define CHANGE
41、 1”,運(yùn)行程序,應(yīng)得到密碼。將“#define CHANGEl”改為“#define CHANGE 0”,再運(yùn)行程序,應(yīng)得到原文。 實(shí)驗(yàn)9 指針1. 實(shí)驗(yàn)?zāi)康耐ㄟ^實(shí)驗(yàn)進(jìn)一步掌握指針的概念,會(huì)定義和使用指針變量;能正確使用數(shù)組的指針和指向數(shù)組的指針變量;能正確使用字符串的指針和指向字符串的指針變量;能正確使用指向函數(shù)的指針變量;了解指向指針的指針的概念及其使用方法。2. 實(shí)驗(yàn)內(nèi)容編程序并上機(jī)調(diào)試運(yùn)行程序(都要求用指針處理)。(1).
42、; 輸入三個(gè)整數(shù),按由小到大的順序輸出,然后將程序改為:輸入三個(gè)字符串,按由小到大順序輸出。(習(xí)題l0.1、10.2)(2). 將一個(gè)3X3的矩陣轉(zhuǎn)置,用一函數(shù)實(shí)現(xiàn)之。(習(xí)題109)在主函數(shù)中用scanf函數(shù)輸入以下矩陣元素: 1 3 5 7 9 11 13 15 19將數(shù)組名作為函數(shù)實(shí)參,在執(zhí)行函數(shù)的過程中實(shí)現(xiàn)矩陣轉(zhuǎn)置,函數(shù)調(diào)用結(jié)束后在主函數(shù)中輸出已轉(zhuǎn)置的矩陣。(3). 有n個(gè)人圍成一圈,順序排號(hào)。從第1個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問最后留下的是原來第幾號(hào)的那位。(習(xí)題10.5)(4).
43、 用一個(gè)函數(shù)實(shí)現(xiàn)兩個(gè)字符串的比較,即自己寫一個(gè)strcmp函數(shù),函數(shù)原型為:int strcmp (char * p1, char * p2);設(shè)p1指向字符串s1,p2指向字符串s2,要求當(dāng)s1s2時(shí),函數(shù)返回值為 0, 如果sls2,則返回它們二者第一個(gè)不相同字符的ASCII碼差值(如“BOY”與“BAD”的第二個(gè)字母不相同,“O”與“A”之差為7965=14);如果sl>s2,則輸出正值;如果sl<s2則輸出負(fù)值。(習(xí)題10.17)兩個(gè)字符串s1、s2由main函數(shù)輸入,strcmp函數(shù)的返回值也由main函數(shù)輸出。(5).
44、160;寫一個(gè)用矩形法求定積分的通用函數(shù),分別求:說明:sin、cos、exp已在系統(tǒng)的數(shù)學(xué)函數(shù)庫(kù)中,程序開頭要用#include<mathh>。(習(xí)題10.13)(6). 用指向指針的指針的方法對(duì)n個(gè)整數(shù)排序并輸出。要求將排序單獨(dú)寫成一個(gè)函數(shù)。n和各整數(shù)在主函數(shù)中輸入,最后在主函數(shù)中輸出。(習(xí)題10.21)實(shí)驗(yàn)10 結(jié)構(gòu)體和共用體1. 實(shí)驗(yàn)?zāi)康恼莆战Y(jié)構(gòu)體類型變量的定義和使用;掌握結(jié)構(gòu)體類型數(shù)組的概念和使用;掌握鏈表的概念,初步學(xué)會(huì)對(duì)鏈表進(jìn)行操作;掌握共用體的概念與使用。2. &
45、#160; 實(shí)驗(yàn)內(nèi)容編程序,然后上機(jī)調(diào)試運(yùn)行。(1). 有10個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、3門課的成績(jī),從鍵盤輸入10個(gè)學(xué)生數(shù)據(jù),要求打印出3門課總平均成績(jī),以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號(hào)、姓名、3門課的成績(jī)、平均分?jǐn)?shù))。(習(xí)題11.5)要求用input函數(shù)輸入10個(gè)學(xué)生數(shù)據(jù);用average函數(shù)求總平均分;用max函數(shù)找出最高分的學(xué)生數(shù)據(jù);總平均分和最高分學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。(2). 13個(gè)人圍成一圈,從第1個(gè)人開始順序報(bào)號(hào)1、2、3。凡報(bào)到“3”者退出圈
46、子,找出最后留在圈子中的人原來的序號(hào)。(習(xí)題11.9)本題要求用鏈表實(shí)現(xiàn)。(3). 建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號(hào)、姓名、性別、年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。(習(xí)題11.11)(4). 輸入和運(yùn)行以下程序: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);輸入兩個(gè)整數(shù)10000、20000給u.i0和u.il,分析運(yùn)行結(jié)果。然后將scanf語(yǔ)句改為:scanf("ld",&u.b);輸入60000給b,分析運(yùn)行結(jié)果。實(shí)驗(yàn)11 位運(yùn)算1. 實(shí)驗(yàn)?zāi)康恼莆瞻次贿\(yùn)算的概念和方法,學(xué)會(huì)使用位運(yùn)算符;學(xué)會(huì)通過位運(yùn)算實(shí)現(xiàn)對(duì)某些位的操作。2. 實(shí)驗(yàn)內(nèi)容編寫程序,上機(jī)調(diào)試并運(yùn)行。(1). 編寫一程序,檢查所用的計(jì)算機(jī)系統(tǒng)的C編譯在執(zhí)行右移時(shí)是按照邏輯右移的原則,還是按照算術(shù)右移的原則進(jìn)行操作。如果是邏輯右移,請(qǐng)編一個(gè)函數(shù)實(shí)現(xiàn)算術(shù)右移;如果是算術(shù)右移,請(qǐng)編一個(gè)函數(shù)實(shí)現(xiàn)邏輯右移。(習(xí)題123)(2).
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江中醫(yī)藥大學(xué)濱江學(xué)院《醫(yī)患溝通與技巧》2023-2024學(xué)年第二學(xué)期期末試卷
- 圖木舒克職業(yè)技術(shù)學(xué)院《學(xué)前教育史》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊環(huán)境工程職業(yè)學(xué)院《科研方法論》2023-2024學(xué)年第二學(xué)期期末試卷
- 厚、薄膜混合集成電路及消費(fèi)類電路項(xiàng)目效益評(píng)估報(bào)告
- 浙江警官職業(yè)學(xué)院《地域史研究方法與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 河池廣西河池市環(huán)江縣招聘教師29人筆試歷年參考題庫(kù)附帶答案詳解
- 演藝導(dǎo)演合同范本
- 山西農(nóng)業(yè)大學(xué)《工程力學(xué)A1》2023-2024學(xué)年第二學(xué)期期末試卷
- 福州英華職業(yè)學(xué)院《簡(jiǎn)筆畫與繪本》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院《JAVA企業(yè)級(jí)開發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 外研版三年級(jí)起點(diǎn)四年級(jí)(下冊(cè))英語(yǔ)集體備課教(學(xué))案
- 中華民族的形成發(fā)展
- 《如何做美篇》課件
- “一帶一路”視域下印度尼西亞中資企業(yè)所得稅返還案例解析
- 咨詢服務(wù)協(xié)議書范本:教育咨詢和培訓(xùn)
- 潔凈空調(diào)負(fù)荷計(jì)算表格
- 瀘州食品安全承諾書
- 《機(jī)械基礎(chǔ)》課程標(biāo)準(zhǔn)
- 大理市房地產(chǎn)市場(chǎng)調(diào)研報(bào)告
- 倉(cāng)庫(kù)固定資產(chǎn)管理規(guī)范
- 企業(yè)關(guān)停方案
評(píng)論
0/150
提交評(píng)論