語言實到驗報告_第1頁
語言實到驗報告_第2頁
語言實到驗報告_第3頁
語言實到驗報告_第4頁
語言實到驗報告_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C程序設計實驗報告(2007-2008學年第一學期理科類)系:班級:學號:姓名:信息工程學院2007. 9. 1實驗1 C程序的運行環(huán)境和運行方法一、實驗目的(1) 了解如何編輯、編譯、連接和運行一個c程序。(2)通過運行簡單的 C程序,初步了解 C程序的特點。二、實驗內容和步驟1 .進入 C的工作環(huán)境(Turbo C2.0 )Windows環(huán)境下:找到“ TC'文件夾,雙擊 TC.EXE文件。此時屏幕上出現(xiàn) Turbo C的工作環(huán)境。(最大化用 ALT+Enter組合鍵)2,熟悉Turbo C2.0 集成環(huán)境 了解和熟悉編輯(Edit )窗口和信息(Message)窗口的作用。按功能

2、鍵 F5,觀察它有什么作用, 再按一次F5,再觀察它有什么作用。按 F6,觀察它有什么作用;再按一次F6,再觀察它有什么作用。F5的作用:F6的作用: 按功能鍵F10,并按回車鍵,觀察“ File ”菜單,了解它們的作用和用法。 選才F File菜單中的New在編輯窗口中隨意輸入幾行字符,觀察窗口頂部左端line和col后面數(shù)字的變化。 所有源程序應按章號和題號命名(如文件名T1_1表示第一章第一個實驗題),并提到網(wǎng)上,以備后查3 .輸入并運行一個簡單的程序 選才i File菜單中的New命令,新建新的源程序文件(編輯窗口變成空白)。輸入下面的程序。#include <stdio.h&g

3、t;void main ( ) printf( “n”);選才i File菜單中的save保存,輸入文件名 T1_1 (選擇好路徑),也可按功能鍵 F2進行存盤。 選才i compile菜單中的compile命令編譯源程序,觀察屏幕上顯示的編譯信息。如果出現(xiàn)“出錯信息”,則應找出原因并改正之,再進行編譯,最后生成.obj文件,(也可按功能鍵 ALT+F9進行編譯) 選才Co compile菜單中的link命令連接,生成可執(zhí)行程序文件(.exe文件)。、步也可通過選擇compile菜單中的make命令連接來一次性完成 如果編譯無錯誤,選擇 run菜單中的run命令運行程序,(也可按Ctrl+F9

4、鍵使程序運行) 按Alt+F5鍵,切換到用戶屏,觀察運行結果。按任意鍵返回。運行結果:4 .輸入并編輯一個 C程序 再選擇File 一 New,使編輯窗口變成空白。輸入以下程序。#include <stdio.h>void main() int a,b,sum;a=123;b=456;sum=a+b;printf ( "sum is %d n” ,sum);保存源程序文件,輸入文件名T1_2o進行編譯、連接,然后運行程序,觀察運行結果。運行結果:6 .輸入并運行一個需要在運行時輸入數(shù)據(jù)的程序 選才i File菜單中的New/,使編輯窗口變成空白,輸入下面的程序。#incl

5、ude <stdio.h>void main() int a,b,c;printf("input a , 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;else z=y;return(z); /*所有程序全部輸入,max部分也是整個C程序的一部分*/按功能鍵F2進行存盤,輸入文件名T1_3。編譯并運行,在運行時從鍵盤輸入整數(shù)2和5,然后按回車鍵,按 Alt+

6、F5鍵,觀察運行結果。運行結果:7 .運行一個自己編寫的程序題目:輸入a、b、c三個值,輸出其中最大者。 輸入自己編寫的源程序,以 T1_4作為文件名。(可仿照上一題程序)源程序: 運行程序,輸入數(shù)據(jù),觀察結果。運行結果: 用File -New將編輯窗口清空,再選 File -Load將該文件讀入,檢查編輯窗口中的內容是否是 剛才保存的程序。選才i File Quit關閉Turbo C ,也可用 ALT+X關閉。實驗2 數(shù)據(jù)類型、運算符和表達式、實驗目的(1)掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型、字符型和實型的變量,以及對它們賦值的方法。(2)掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。(3)學會使

7、用C的有關算術運算符,以及包含這些運算符的表達式,特別是自加( + +)和自減(一一)運算符的使用。(4)進一步熟悉 C程序的編輯、編譯、連接和運行的過程。二、實驗內容和步驟1 .輸入并運行下面的程序#include <stdio.h>void main() char cl,c2;cl='a'c2='b'printf("%c%cn",cl,c2);運行此程序。運行結果:在此題最后增加一個語句:printf("%d%dn",c1,c2);再運行。運行結果:將第3行改為:int c1,c2;再使之運行。運行結果:再

8、將第3,4行改為:c1=a; /* 不用才B號*/c2=b;再使之運行。分析出錯原因再將第4、5行改為:c1="a" /* 用雙撇號*/c2= "b "再使之運行,分析其運行結果。分析出錯原因再將第4、5行改為:c1=300; /* 用大于255的整數(shù),在 char cl,c2; 的基礎上*/ c2=400;再使之運行。運行結果:2 .輸入并運行教材第 3章習題3.6給出的程序#include <stdio.h>Void main() char c1='a',c2='b',c3='c',c4=&

9、#39;101',c5='116' printf("a%c b%ctc%ctabcn",c1,c2,c3) printf("tb%c %c",c4,c5);上機前先用人工分析程序,寫出應得結果:上機運行結果:3 .輸入并運行下面的程序#include <stdio.h>void main ()int a,b;unsigned c,d;long f;a=100;b= 100;c=32769;f= 65580;printf( "%d,%d n” ,a,b);c=a;d=b;printf( "%u,%u

10、n” ,c,d);a=f;c=f;printf( "%d,%n” ,a ,c ,f);請對照程序和運行結果分析將一個負整數(shù)賦給一個無符號的變量,會得到什么結果。并分析原因。結果:原因:將一個大于32767的長整數(shù)賦給整型變量,會得到什么結果。并分析原因。結果:原因: 將一個長整數(shù)賦給無符號變量,會得到什么果 .。并分析原因。結果:原因:4 .輸入習題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); 運行程序,注

11、意i、j、nr n各變量的值。運行結果:將第4、5行改為:m= i +;n= + j;再運行。運行結果:5 .編程序并上機運行要將“ China”譯成碼,譯碼規(guī)律是:用原來字母后面的第4個字母代替原來的字母。例如,字母“A”后面第4個字母是“ E",用“ E”代替“ A”。因此,“China”應譯為“ Glmre”。請編一程序,用賦初值的方法使 c1、c2、c3、c4、c5五個變量的值分別為C、h'、i' 、n'、'a',經過運算,使 c1、c2、c3、c4、c5 分別變?yōu)镚、1'、m'、r' 、'e',

12、并輸出。 源程序:(以T2_5為文件名)a'、y',修改程序并運行。改變 c1、c2、c3、c4、c5 的初值為:'T、'o'、'd'運行結果為:實驗3最簡單的C程序設計、實驗目的(1)掌握C語言中使用最多的一種語句一一賦值語句的使用方法。(2)掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉換符。、實驗內容和步驟1 .掌握各種格式轉換符的正確使用方法輸入程序#include <stdio.h>Void main () int a,b;float d,e;char c1,c2;double f,g;long m,n;un

13、signed 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=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12fnm=%1d,n=%1dnp=%u,q=%un",f,g,m,n,p,q); 運行此程序寫出結果: 在此基礎上,修改程序的第

14、813行:a=61;b=62;c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n= 60000;運行程序,寫出結果:將printf 語句改為:printf("a=%d,b=%dnc1=%c,c2=%cnd=%15.6f,e=%15.12fn",a,b,c1,c2,d,e);printf("f=%f,g=%fnm=%d,n=%dnp=%d,q=%dn",f,g,m,n,p,q);運行程序,寫出結果:2 .編寫程序設圓半徑r=1.5 ,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球

15、體積、圓柱體積。用 scanf 輸入數(shù)據(jù)(r,h ),輸出計算結果。輸出時要有文字說明,取小數(shù)點后兩位數(shù)字。源程序:(以T3_2作為文件名。)運行結果:3 .編程序,輸入一個華氏溫度,要求輸出攝氏溫度。公式為2位小數(shù)。(注意:在什么情況下為實型除法,這里不是指整型除法哦!5 _c = 9 (F - 32 )輸出時要有文字說明,取)源程序:(以T3_3作為文件名。)分別用90, 100, 32做為測試數(shù)據(jù),寫出運行結果:實驗4邏輯結構程序設計、實驗目的(1) 了解C語言表示邏輯量的方法(以 0代表“假”,以非0代表“真”)。(2)學會正確使用邏輯運算符和邏輯表達式。(3)熟練掌握if語句和swi

16、tch語句。(4)結合程序掌握一些簡單的算法。(5)學習調試程序。、實驗內容本實驗要求事先編好解決下面問題的程序,然后上機輸入程序并調試運行程序。1 .有一函數(shù):Jx(x :二1)y = 2x -1(1 < x :二10)3x -11(x _10)要求用scanf函數(shù)輸入x的值,求y值并用printf 函數(shù)輸出y。源程序:(以T4_1作為文件名。)運行程序,分別用-4, 6, 28做為測試數(shù)據(jù),寫出運行結果:輸入:-4輸出:輸入:6輸出:輸入:28輸出:2 .給一個不多于 5位的正整數(shù),要求:求出它是幾位數(shù);分別打印出每一位數(shù)字;按逆序打 印出各位數(shù)字,例如原數(shù)為 321,應輸出123。

17、源程序:(以T4_2作為文件名。)運行程序,分別用 2, 18, 135, 3467, 45796做為測試數(shù)據(jù),寫出運行結果:輸入:2輸出:輸入:18輸出:輸入:135輸出:輸入:3467輸出:輸入:45769輸出:除此之外,程序還應當對不合法的輸入作必要的處理。例如:輸入負數(shù);輸入的數(shù)超過 5位。程序修改部分:輸入:-3輸出:輸入:123456輸出:3 .輸入一個日期(含年、月、日),編程序輸出該日期是該年度中的第幾天。要求:輸入格式為年/月/日;程序應當對不合法的輸入作必要的處理。如:月份超過12,日期超過31年月日為負數(shù)。源程序:(以T4_3作為文件名。)運行程序,分別用以下測試數(shù)據(jù)測試

18、,寫出運行結果:輸入:2002/3/23輸出:輸入:2004/15/34輸出:輸入:-1004/4/-5輸出:4 .下列程序實現(xiàn)從鍵盤接收3個數(shù),輸出最大數(shù)和最小數(shù)源程序:(以T4_4作為文件名)實驗5循環(huán)控制一、實驗目的熟悉掌握用while語句,do-while語句和for語句實現(xiàn)循環(huán)的方法。掌握在程序設計中用循環(huán)的方法 實現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。進一步學習調試程序。二、實驗內容編程序并上機調試運行。1 .輸入兩個正整數(shù) m和n,求它們的最大公約數(shù)和最小公倍數(shù)。在運行時,車入的值 m>n觀察結果是否正確。重新運行,輸入時使 m<n觀察結果是否正確。源程序:(以T5

19、_1作為文件名。)運行程序,分別用 8和12、22和10做為測試數(shù)據(jù),寫出運行結果:2 .猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩一個桃子了。求第一天共摘了多少桃子。源程序:(以T5_2作為文件名。)運行程序,寫出運行結果:3 .編程計算 1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+.+n) 的值。(本題中的n從鍵盤輸入,且假設在 20以內)源程序:(以T5_3作為文件名。)4 .試編程:找出1至99之間的全部同構數(shù)

20、。 同構數(shù)是這樣一組數(shù):它出現(xiàn)在平方數(shù)的右邊。 例52=25,5在25的右邊,5是同構數(shù);252=625,25在625的右邊,25是同構數(shù)。源程序:(以T5_4作為文件名。)運行程序,寫出運行結果:5 . 編程求100300之間的全部素數(shù)的和源程序:(以T5_5作為文件名。)運行程序,寫出運行結果: 6 .運行程序,寫出運行結果: 課后思考題 (以前考試題):1 .利用下面公式求 s的值(求20項之和)s=1/(1*2*3)-1/(2*3*4)+1/(3*4*5)-1/(4*5*6)+1/(19*20*21)-1/(20*21*22)2 . 一個素數(shù)加上1000以后是43的倍數(shù),求滿足這個條件

21、的最小素數(shù)。3 .有2個小于40的正整數(shù)a和b, a的平方與b的和是1053, b的平方與a的和是873,請編程求滿足 條件的a和b的值。(提示:滿足條件的 a,b的值唯一)4 . 一個自然數(shù)除以2余1,除以3余2,除以4余3,除以5余4,除以7余5,求滿足這個條件的最小 的自然數(shù)?5 .求所有的“水仙花數(shù)"之和。所謂"水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例 如 153 是一個"水仙花數(shù)",因為:153=1*1*1+5*5*5+3*3*3 。6 .分別計算500到1300之間所有既能被7整除又能被13整除的奇數(shù)和偶數(shù)之和。7 .統(tǒng)計

22、用0-9之間不同的3個數(shù)構成一個三位數(shù)有多少種方法實驗6數(shù)組、實驗目的(1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;(2)掌握字符數(shù)組和字符串函數(shù)的使用;(3)掌握與數(shù)組有關的算法(特別是排序算法)。.實驗內容編程序并上機調試運行。1 .已有一個已排好序的數(shù)組,今輸入一個數(shù),要求按原來排序的規(guī)律將它插入到數(shù)組中,要插入的 數(shù)用scanf函數(shù)輸入。源程序:(以T6_1作為文件名。)運行程序,測試數(shù)據(jù)為:有序數(shù)組 3,5, 6, 17, 23, 41, 45, 54, 68, 90, 102, 123, 156, 178, 195輸入:2結果:輸入100結果:2 .找出一個二維數(shù)組的“

23、鞍點”的值及位置,即該位置上的元素在該行上最大,在該列上最小。若 沒有鞍點,則輸出“無鞍點”。源程序:(以T6_2作為文件名。)運行程序,測試數(shù)據(jù)為:二維數(shù)組有鞍點9 80 205 409060 961210 3 101 89結果:二維數(shù)組沒有鞍點9 80 205 4090-60 1961210 -3 101 8945 54 156 7結果:3 .判斷輸入的字符串是否"回文"(即順讀和倒讀都一樣,例如: ABCBA ,字符串首部和尾部的空格 不參與比較),是輸出“ yes”,否則輸出“ no”。源程序:(以T6_3作為文件名。)輸入ABCDCBA ,結果是:輸入ABCDEF

24、G ,結果是: 4 .刪除字符串s(從鍵盤輸入)中的所有數(shù)字字符,然后輸出 源程序:(以T6_4作為文件名。)運行程序,測試字符串為:“ab1,C2D34,E”結果:5 .輸入一串字符,以結束,統(tǒng)計各字母出現(xiàn)的次數(shù),并按字母出現(xiàn)的多少輸出,不出現(xiàn)的字 母不輸出。例:輸入 5B3A+4-HDEH5DH輸出A 1B 1D 2E 1H 3源程序:(以T6_5作為文件名。)運行程序,測試數(shù)據(jù)為:5BBB3AD+4366TM-HDEH5DH結果:課后思考題(以前考試題):1 .用冒泡法對輸入的10個整數(shù)進行排序2 .用選擇法對輸入的10個整數(shù)進行排序3 .從鍵盤輸入10個整數(shù)存入數(shù)組a中,再將數(shù)組中的元

25、素逆序存放后輸出。4 .有15個有序數(shù)存放在一個數(shù)組中,輸入一個數(shù),要求用折半查找法找出該數(shù)是數(shù)組中第幾個元素 的值。如果該數(shù)不在數(shù)組中,則輸出“無此數(shù)”。要找的數(shù)用scanf函數(shù)輸入。5 .分別將有序數(shù)組 a和b中的數(shù)歸并到c數(shù)組中(C數(shù)組中仍然有序)。6 .編程輸出以下的楊輝三角形 (輸出前7行)。實驗 7 函數(shù)一、實驗目的( 1 )掌握定義函數(shù)的方法;( 2)掌握函數(shù)實參與形參的對應關系以及“值傳遞”的方式;( 3)掌握函數(shù)的嵌套調用和遞歸調用的方法;( 4)掌握全局變量和局部變量、動套變量、靜態(tài)變量的概念和使用方法。( 5)學習對多文件程序的編譯和運行。二、實驗內容編程序并上機調試運行

26、。1 求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個函數(shù)求最大公約數(shù),用另一函數(shù)根據(jù)求出的最大 公約數(shù)求最小公倍數(shù)。不用全局變量,分別用兩個函數(shù)求最大公約數(shù)和最小公倍數(shù)。兩個整數(shù)在主函數(shù)中輸入,并傳送給 函數(shù) 1 ,求出的最大公約數(shù)返回主函數(shù),然后再與兩個整數(shù)一起作為實參傳遞給函數(shù)2,以求出最小公倍數(shù),再返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。源程序:(以 T7_1 作為文件名。)#include <stdio.h>gcd(int a,int b)gxd(int a, int b,int g)void main ( ) int x,y;int i,j;scanf("%d%d&

27、quot;,&x,&y);i=gcd(x,y);j=gxd(x,y,i);ptintf("%d and %d gcd is %d,gxd is %dn",x,y,i,j);運行程序,測試數(shù)據(jù)為:35215結果:用全局變量的方法,分別用兩個函數(shù)求最大公約數(shù)和最小公倍數(shù),但其值不由函數(shù)帶回。將最大公 約數(shù)和最小公倍數(shù)都設為全局變量,在主函數(shù)中輸出它們的值。修改程序如下:(以T7_1_1作為文件名。)2 .遞歸法將一個整數(shù) n轉換成字符串。例如,輸入 483,應輸出字符串“ 483”。N的位數(shù)不確定,可 以是任意的整數(shù)。源程序:(以T7_2作為文件名。)運行程序,

28、測試數(shù)據(jù)分別為:1234結果為:測試數(shù)據(jù)分別為:783結果為:測試數(shù)據(jù)分別為:46778結果為:3 .寫一函數(shù),輸入一個兩位的十六進制數(shù),輸出相應的十進制數(shù)。 子函數(shù):(以T7_3作為文件名。)void main () char hx2;int d;printf("please input a num(hex):")scanf("%c%c",&hx0,&hx1);d=change(hx);printf("this num is: ",d); 運行程序,測試數(shù)據(jù)分別為:AB結果為:4 .驗證歌德巴赫猜想(任何充分大的偶數(shù)

29、都可以由兩個素數(shù)之和表示)。用一個函數(shù)進行判定素數(shù),再用此函數(shù)將一個偶數(shù)用兩個素數(shù)之和表示,主函數(shù)中輸出4-100之間的所有偶數(shù)用兩個素數(shù)之和表示:(以T7_4作為文件名。)子函數(shù)1 :子函數(shù)2:main() int i;for(i=4;i<=100;i=i+2) print(i); /* 將i用兩個素數(shù)之和表示*/ printf(" n ");運行程序結果為:課后思考題(以前考試題):1 .用遞歸的方法求n!。2 .自己設計一 mystrcat()函數(shù),實現(xiàn)將字符串b連接到字符串a的后面。3 .輸出100200之間的全部素數(shù)的和(用一函數(shù)來判斷一個數(shù)是否為素數(shù))4

30、.用遞歸的方法計算 F(n) (n給定,F(xiàn)(n)函數(shù)定義如下:F(1)=1, F(2)=1, F(n尸F(xiàn)(n-1)+F(n-2)。實驗8指針、實驗目的(1)通過實驗進一步掌握指針的概念,會定義和使用指針變量;(2)能正確使用數(shù)組的指針和指向數(shù)組的指針變量;(3)能正確使用字符串的指針和指向字符串的指針變量;(4)能正確使用指向函數(shù)的指針變量;(5) 了解指向指針的指針的概念及其使用方法。、實驗內容1 .寫結果并分析原因:swap1(int x,int y) int t;t=x; x=y; y=t;swap2(int *x,int *y) int t;t=*x; *x=*y; *y=t;swap

31、3(int *x,int *y) int a, int *t=&a;t=x; x=y; y=t;main() int a=10,b=30;int *p1=&a, *p2=&b;swap1(a,b);printf("%d,%dn",a,b);運行結果為:將swap1(a,b) 改為swap2(a,b),運行結果為將swap1(a,b) 改為swap2(a,b),運行結果為分析原因:2 .將一個3X3的矩陣轉置,用一函數(shù)實現(xiàn)之。在執(zhí)行函數(shù)的過程中實要求:在主函數(shù)中用scanf函數(shù)輸入矩陣元素,用數(shù)組名作為函數(shù)實參,現(xiàn)矩陣轉置,函數(shù)調用結束后在主函數(shù)中輸出

32、已轉置的矩陣。源程序代碼:(以T8_2作為文件名。)運行程序,測試數(shù)據(jù)為1 3 57 9 1113 15 19結果:3.下面findmax函數(shù)將計算數(shù)組中的最大元素及其下標和地址值,請編寫 findmax函數(shù)(以T8_3作為 文件名。)#include <stdio.h>int *findmax( )main() int a10=12,23,4,45,413,65,34,76,23,11,k,*add;add=findmax(a, 10, &k);printf(" %d,%d,%dn ",ak,k,*add);運行結果為:課后思考題( 以下各題均用指針實現(xiàn)) :1. 不使用 strcpy() 函數(shù),將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論