




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章 簡單的C程序設計 實驗一 Turbo C 的開發環境一、實驗目的與要求1熟練掌握Turbo C的啟動和關閉。2了解C程序的集成環境。3掌握運行一個C程序的主要步驟。4掌握C程序的開發過程。二、實驗內容與步驟1Turbo C 2.0的啟動在Windows環境下,找到Turbo C 2.0所在的文件夾,雙擊tc.exe文件即可啟動Turbo C 2.0。若Turbo C 2.0編譯程序安裝在C盤根目錄下的TC子目錄下,則先從Windows進入MS-DOS方式,然后從鍵盤鍵入“TC”命令,即:C:>CD TC <回車>C: TC >TC <回車>屏幕上出現
2、圖1-1-1所示的窗口。圖1-1-1 Turbo C 2.0開發環境窗口2Turbo C 2.0 的關閉按Alt+X或直接關閉Turbo C 2.0集成環境窗口。3編寫一個程序,要求用printf()函數輸出“This is a C program”。1) 根據題意編寫源程序如下:main( ) printf("This is a C program");2) 錄入源程序首先啟動Turbo C 2.0開發環境,按任意鍵消除初始窗口中有關主菜單和版本的內容,按Alt+F組合鍵,選擇其中的New選項,按回車鍵。此時處于編輯狀態,錄入源程序,如圖1-1-2所示。注:錄入過程中可使
3、用光標鍵移動光標,并使用Del或BackSpace鍵刪除字符。圖1-1-2 錄入源程序3) 保存源程序按Alt+F組合鍵,選擇Save選項,按回車鍵,屏幕上將顯示默認的文件名noname.c,可將它改為自己喜歡的、容易記憶的文件名,本例為LI1.c(注:文件名應以 .c作為擴展名),如圖1-1-3所示。圖1-1-3 用新文件名存盤4) 編譯和鏈接源程序按F9鍵,Turbo C 2.0將對源程序進行編譯和鏈接。完成該操作后,屏幕將顯示編譯或鏈接時有無錯誤的信息框,如圖1-1-4所示。圖1-1-4 編譯信息框按任意鍵,如果沒有錯誤,則返回編輯狀態,若有錯誤,在屏幕下部Message框內將顯示錯誤所
4、在的行號和系統認為的出錯原因。按F6后,光標將停回到程序出錯的地方。據此修改源程序,再按F9,如此反復,直到顯示“Success”。編譯生成的目標文件為LI1.exe。注:(1)Turbo C 2.0在進行編譯和鏈接時查出的源程序錯誤主要分為一般錯誤和警告兩類。一般錯誤是指程序的語法錯誤、存取內存或磁盤時出錯等;警告只是指出某些值得懷疑,但不一定是錯誤的地方,警告并不阻止編譯。(2)編譯后所指示錯誤出現的行號是不準確的,真正出錯的行可能在其前一行或后一行。5) 運行程序按Ctrl+F9組合鍵,系統執行目標文件。6) 觀看運行結果。按Alt+F5組合鍵4Turbo C 2.0 的主菜單和子菜單可
5、根據需要在上機時調試其中的部分命令。1) Turbo C 2.0 的主菜單Turbo C 2.0 的主菜單共有8個選項,除Edit外都有子菜單。按下Alt鍵同時按下菜單項的第一個字母,屏幕將顯示該菜單項;也可先按F10,然后用光標鍵進行選擇。(1)File主要用于調入和存儲源程序文件、管理目錄、切換到DOS和退出Turbo C 2.0。(2)Edit主要用于建立、編輯和修改當前編輯窗口中的源程序。其中,狀態行給出了正在編輯的文件的信息:Line Col Insert Indent Tab Fill Unindent * C: FilenameLine和Col表示光標的當前位置;Insert表示
6、當前是插入方式還是改寫方式,按Ins鍵可進行這兩種方式的轉換;Indent為自動縮進開關,用Ctrl+OI可進行切換;Tab表示可用Tab鍵插入制表符或使Tab失效,用Ctrl+OT進行切換;Fill表示用制表符和空格符填充每一行的開始,用Ctrl+OF進行切換;Unindent表示當光標處于一行中的第一個非空字符或空行上時,退格鍵回退一級,用Ctrl+OU進行切換;*表示新建或已修改的文件目前還未存盤;C: Filename表示在C盤當前正在編輯的文件名,系統默認的文件名為NONAME.C。(3)Run主要用于編譯、鏈接和運行當前的源程序,以及控制程序的運行方式。(4)Compile主要用于
7、編譯當前的源程序,并生成目標文件和可執行文件。(5)Project主要用于開發和維護由多個源文件組成的大型文件。(6)Options主要用于設置有關編譯和鏈接的選項。(7)Debug主要用于調試程序操作,顯示變量的值,查看調用棧的狀態等。(8)break/Watch主要用于設置程序執行時所需的中斷位置、清除和觀察變量值的變化。2)Turbo C 2.0 的子菜單(1)File中的子菜單項Load:調入一個已有的源文件。Pick:顯示最近調入的8個文件名,從中可選擇一個文件調入。New :編輯一個新文件,此時,默認的文件名為NONAME.C。Save:將當前編輯的文件存盤。Write to:將當
8、前編輯的文件改名后存盤。Directory:顯示目錄。Change dir:改變存儲源程序的缺省目錄。OS shell:退回到DOS環境,使用Exit命令返回Turbo C 2.0。Quit:退出Turbo C 2.0,回到DOS環境。(2)Edit中沒有子菜單項(3)Run中的子菜單項Run:編譯、鏈接和運行當前源程序。Program reset:終止程序調試。Go to cursor:程序運行到光標處。Trace into:單步執行程序,進入函數體內。Step over:單步執行程序,可直接執行函數。User screen:觀看程序運行時的輸出屏幕,按任意鍵返回Turbo C 2.0。(4
9、)Compile中的子菜單項Compile to OBJ:將源程序編譯生成目標代碼。Make EXE file:將源程序編譯和鏈接生成可執行文件。Link EXE file:將當前的OBJ和庫文件鏈接生成可執行文件。Build all:重建大型程序中的所有文件。 Primary C file:設置文件。 Get info:顯示源程序和當前系統狀態有關的信息。(5)Project中的子菜單項Project name:設置大型程序的文件名。Break make on:設置終止Make的缺省條件。Auto dependencies:檢查大型程序中每個源程序是否需要重新編譯成目標文件。Clear pr
10、oject:清除大型程序名。Remove messages:刪除消息窗口中的出錯信息。(6)Options中的子菜單項Compiler:選擇編譯程序的存儲模式。Linker:選擇鏈接程序的存儲模式。Environment:設置集成環境工作方式。Directories:設置Turbo C 2.0的默認目錄。Arguments:輸入所編譯的程序在執行時要輸入的命令行參數。Save options:保存當前的系統配置。Retrieve options:加載配置文件。(7)Debug中的子菜單項Evaluate:計算和設置有關變量或表達式的值。Call stack :顯示調用棧的情況。Find fun
11、ction:尋找當前編輯窗口中的函數。Refresh display:刷新屏幕。Display swapping:設置編譯屏幕和用戶屏幕的轉換方式。Source debugging:設置是否可以進行源代碼調試。(8)break/Watch中的子菜單項Add watch:增加觀察表達式。Delete watch:刪除觀察表達式。Edit watch:編輯觀察表達式。Remove all watches:刪除所有觀察表達式。Toggle breakpoint:斷點的關閉。Clear all breakpoints:清除所有斷點View next breakpoint:顯示下一個斷點。5調試程序時常
12、用的快捷鍵F1:顯示與當前操作有關的幫助信息。F2:將當前編輯的文件存盤。F3:讀入文件。F4:程序執行到光標所在行。F5:放大和縮小當前窗口。F6:循環激活編輯、消息和觀察窗口。F7:單步執行程序,可進入函數體內。F8:單步執行程序,不進入函數體內,直接完成調用。F9:將源程序編譯和鏈接生成可執行文件。F10:進入主菜單。Ctrl+F1:顯示與當前光標的位置有關的幫助信息。Ctrl+F2:關閉當前所調試的文件,并釋放存儲空間。Ctrl+F4:計算一個表達式。Ctrl+F7:增加一個觀察表達式。Ctrl+F8:設置和刪除斷點。Ctrl+F9:執行程序。Alt+F1 :再次顯示上一次所顯示的幫助
13、信息。Alt+F3:從最后顯示的8個文件中選取文件裝入。Alt+F5:轉入用戶屏幕,按任意鍵返回。Alt+F7:定位到上一個出錯的地方。Alt+F8:定位到下一個出錯的地方。Alt+F9:將源程序編譯生成目標代碼。6編寫一個程序,要求用printf()函數輸出:This is a C program.Hello,my friends !調試程序時,用F7或F8單步執行程序,注意:“n”的作用,觀察有無“n”時輸出的變化。 7編寫一個程序,要求輸出兩個數之和。要求:1)單步執行程序。2)設置和使用觀察變量,其方法是:按Ctrl+F7,然后鍵入變量名和表達式。3)設置和使用斷點,其方法是:按Ctr
14、l+F8,使被設置斷點的那行呈高亮度顯示。4)計算表達式,其方法是:按Ctrl+F4,屏幕顯示表達式窗口。5)使程序執行到光標所在的行,其方法是:按F4鍵。6)終止程序調試,其方法是:按Ctrl+F2,或按Ctrl+Break,當程序進入死循環時,需按Ctrl+Break兩次。實驗二 基本數據類型一、實驗目的與要求1掌握變量的定義方法。2了解不同數據類型的數據范圍、精度和所占的存儲空間。3了解格式說明符的不同之處。 4掌握不同類型數據的輸出方法。二、實驗內容與步驟1輸出變量x、y、z的地址啟動Turbo C 2.0后,輸入下列源程序:main( ) int x=2; float y=3.5;
15、char z='a' printf("%d,%f,%cn",x,y,z);printf("%x,%x,%xn",&x,&y,&z);程序運行結果為 。注:1)變量的地址將根據運行環境的不同而不同。 2)%x表示按十六進制輸出。2輸出變量的單元大小main( ) int x; float y; char z; printf("%d,%d,%dn", sizeof (x), sizeof (y), sizeof(z);程序運行結果為 。注:1)各種類型數據所占的內存因機器而異。2)%d表示按十進制輸
16、出實際長度。3區別數值和數字字符main()printf("n%c %d",'A','A');printf("n%c %d",65,65);printf("n%c %d",'0','0');程序運行結果為 。注:1)一個字符常量要用一對單引號括起來。2)%c表示所控制變量的輸出為單個字符形式。3)字符型變量中存儲的是該字符所對應的二進制ASCII碼,因此字符型數據可看成整型數據。4)整型數據若在0127內取值,則可當作字符型數據處理。4輸出字符和字符串main( ) ch
17、ar x='A' printf("n%-6c,%6c",x,x); printf("n%s,%10s","program","program");程序運行結果為 。注: %s表示所控制變量的輸出為字符串形式,直到規定長度(%10s)或遇到字符串結束標志。5輸出整型數據main( ) int x=21; long y=1234567; printf("nx=%d,x=%5d,x= %-5d,x=%05d",x,x,x,x); printf("n%d,%o,%x,%u&qu
18、ot;,x,x,x,x); printf("ny=%8ldn",y);程序運行結果為 。注:1)%5d表示所控制變量的輸出占5位,左邊以空格補齊。2)%-5d表示所控制變量的輸出占5位,右邊以空格補齊。3)%05d表示所控制變量的輸出占5位,左邊以0補齊。4)%o表示所控制變量的輸出為無符號的八進制數形式。5)%u表示所控制變量的輸出為無符號的十進制數形式。6)%8ld表示所控制變量的輸出為長整型,占8位。6輸出浮點數main( ) float a=7654.321; double b=1234.567; printf("a=%f,a=%5.3f,b= %lf,b
19、=%8.2lfn",a,a,b,b); printf("%e,%en",a,b);程序運行結果為 。注:1)a定義為單精度,只有7位有效數字,其后的數字是無效的。2)5.3f和%8.2f表示輸出的小數位數要四舍五入,分別保留3位和2位。3)%e表示所控制變量的輸出為標準指數形式的單、雙精度實數。4)%lf表示按雙精度格式輸出浮點數(l是long的首字母,不是數字1)。7編寫一個程序,要求將小寫字母轉換為大寫字母輸出。實驗三 數據運算一、 實驗目的與要求1了解不同類型數據的輸入方法。2掌握不同類型數據混合運算的運算順序。3掌握不同類型數據的類型轉換規則。4熟練掌握表
20、達式的計算方法和求值規則。二、實驗內容與步驟1使用分隔符輸入數據main( ) int x; float y; double z; short a;long b; scanf("%d%f%lf%d%ld",&x,&y,&z,&a,&b); printf("x=%d,y=%f,z= %lf,a=%d,b=%ldn",x,y,z,a,b); scanf("%d,%f,%lf,%d,%ld",&x,&y,&z,&a,&b); printf("x=%d,
21、y=%f,z= %lf,a=%d,b=%ldn",x,y,z,a,b);程序運行時輸入數據:53.51.23e512312345675,3.5,1.23e5,123,1234567程序運行結果為 。注:1)scanf()函數中的輸入項必須是地址量,在普通變量前應加&。 2)從鍵盤輸入多個數據時,各數據之間只能用空格、制表符(Tab)和回車等空白字符分隔。3)scanf()函數中的格式說明與printf()函數相似,都是以%開始,以一個格式字符結束。4)除“格式說明符”和“轉義字符”外的其他普通字符,輸入時應在對應位置原樣輸入。2空白分隔符(空格、tab、換行與回車等字符)的使
22、用main( ) int x; char c1; char c2; scanf("%d%c%c",&x,&c1,&c2); printf("x=%d,c1=%c,c2=%cn",x,c1,c2); scanf(" %d %c %c",&x,&c1,&c2); printf("x=%d,c1=%c,c2=%cn",x,c1,c2);程序運行時輸入數據:15535XY<回車>15535 X Y<回車>程序運行結果為 。再次運行程序,交換兩種輸入方式
23、,程序運行結果為 。注:1)整數的輸入應用%d說明。2)輸入字符型數據時采用,分隔符將會當作字符輸入。3指定輸入數據的長度main( ) int x1,x2,y1,y2; scanf("%d,%d",&x1,&y1); printf("x1=%d,y1=%dn",x1,y1); scanf("%3d%3d",&x2,&y2); printf("x2=%d,y2=%dn",x2,y2);程序運行時輸入數據:123,456<回車>123456<回車>程序運行結果為
24、 。注:scanf()函數中的%3d說明系統自動截取3位數據存儲到相應的變量中。4不同類型數據的自動轉換main( ) int x; float y; unsigned z; x=12.34; y=56; z= -1;printf("x=%d,y=%f,z=%un",x,y,z); 程序運行結果為 。注:1)小數向int型變量賦值將截去小數部分。2)整數向float型變量賦值將在小數點后面補0。3)-1向unsigned型變量賦值,其最高位按無符號數解釋為65535。 5不同類型數據的混合運算main( ) int x=2;float y=2.5,z=4.8; printf
25、("x/y=%f,z/x =%f,z/y=%fn",x/y,z/x,z/y); printf("%dn", x+(int)y/2%4);printf("%dn", (int)(x+y)/2%4); printf("%d,%d",3/5,3%5);程序運行結果為 。注:1)不同類型數據的混合運算,應先轉換成同一數據類型后再進行計算。2)不同類型數據的轉換原則是:將定點型數據轉換為浮點型數據;將占字節少的存儲數據轉換為占字節多的存儲數據;將有符號數據轉換為無符號數據。3)強制類型轉換后,變量的類型并沒有改變。4)編程時
26、應避免數據進行過多的類型轉換。6帶自增和自減的混合運算main( ) int x1,x2; x1=x2=3;x1+; +x2; printf("n%d,%dn", x1,x2); printf("%d,%dn", x1+,x2+); printf("%d,%dn",x1,x2); printf("%d,%dn", +x1, +x2); printf("%d,%dn", x1, x2);程序運行結果為 。注:1)對操作數x而言,x+與+x的功能都是x=x+1,但加1的次序則是不一樣的。2)在多數系
27、統中函數參數的求值順序是自右至左。3)賦值運算符的優先級較低,結合性為自右至左。7編寫一個程序,要求用字符輸入函數getchar()和字符輸出函數putchar()將從鍵盤任意輸入的大寫字母轉換為小寫字母輸出。思考題1. C語言的主要特點是什么?2. C語言程序的基本結構是什么? 3. 請寫出C語言程序的一般格式。4. C與C+這兩種程序設計語言有什么不同?5. 在Turbo C集成環境下能同時完成編輯、編譯、鏈接和運行嗎?6. C語言中的初始化和賦值有什么區別?7. ANSI C標準規定的關鍵字有多少個,它們是什么?8. C語言中的標識符的作用是什么?9. C語言中的標識符能與關鍵字相同嗎,
28、它們是否區分大小寫?10. C語言中最常用的分隔符有哪些,它們的作用是什么?11. 嚴格地說,注釋是C語句嗎?12. C語言的書寫風格是什么?13. 庫函數是C語言本身的組成部分嗎?14. C語言有輸入輸出語句嗎?15. 在C語言中,轉義序列由什么組成的,其作用是什么? 16. C語言中的基本數據類型的長度和取值范圍是什么?17. 各種數據類型在不同計算機中所占的二進制位數一樣嗎?18. 將浮點型強制轉換成整型時,對小數部分Turbo C采用的是四舍五入還是簡單地截斷?19. 在C語言中,表達式的運算順序取決于什么?編程題1. 輸入正方體的邊長,求正方體的表面積和體積。2. 交換兩個變量的值。
29、3. 求sin(30o)的值。4. 對字符串“CHINESE”進行簡單加密,加密規律為:每個字母都用字母表中其后面的第二個字母替換。5. 計算上學期你所學的課程的總成績和平均成績。綜合題編一程序,從鍵盤任意輸入a、b和c的值,求方程ax2+bx+c=0的根。第二章 流程控制實驗一 選擇結構一、實驗目的與要求1了解結構化程序設計的方法。2掌握if語句在結構化程序設計中的應用。3掌握條件表達式的使用。4掌握switch語句在結構化程序設計中的應用。二、實驗內容1 單一語句的if語句main( ) int x,y; scanf("%d,%d",&x,&y); if
30、(x>y) printf("%d is the greater",x); 程序運行時輸入數據:4,3<回車>程序運行結果為 。if(表達式)語句注:1)該if語句的程序形式為: 2)該if語句的執行過程是:先計算表達式的值,若結果不是0,則執行語句,然后繼續執行if語句下面的語句;若結果是0,則不執行語句,繼續執行if語句下面的語句。2 單一語句的if-else語句main( ) int x,y; scanf("%d,%d",&x,&y); if(x>y) printf("x=%d is the grea
31、ter",x); else printf("y=%d is the greater",y);程序運行時輸入數據:3,4<回車>程序運行結果為 。注:1)該if-else語句的程序形式為:if(表達式)語句1 else 語句22)該if-else語句的執行過程是:先計算表達式的值,若結果不是0(為真),則執行語句1,然后繼續執行if-else語句下面的語句;若結果是0(為假),則執行語句2,然后繼續執行if-else語句下面的語句。3含有復合語句的if語句main( ) int x,y; scanf("%d,%d",&x,&a
32、mp;y); if(x>y) printf("nx=%d is the greater",x);printf("ny=%d is the less",y); else printf("ny=%d is the greater",y);printf("nx=%d is the less",x); 程序運行時輸入數據:3,4<回車>程序運行結果為 。if(表達式)語句注:1)該if語句的程序形式為: 2)該if語句的執行過程是:先計算表達式的值,若結果不是0,則執行大括號中的語句1(該語句是具有2個語
33、句的復合語句),然后繼續執行if語句下面的語句;若結果是0,則不執行大括號中的語句,繼續執行if語句下面的語句。4條件表達式的使用 main( ) int x,y; scanf("%d,%d",&x,&y); x>y? printf("x is the greater."): printf("y is the greater.");程序運行時輸入數據:3,4<回車>程序運行結果為 。注:1)條件表達式的一般形式為: 表達式1?表達式2:表達式32)條件運算符的執行順序是:先計算表達式1的值,若結果為真
34、,則將表達式2的值作為整個條件表達式的值;若表達式1的值是假,則將表達式3的值作為整個條件表達式的值。5switch語句main( ) int x,y; scanf("%d",&x); if(x>100) printf(“error”); else y=x/10; switch(y) case 0: case 1: case 2: case 3: case 4: case 5: printf("nFailure");break; case 6: printf("nPass");break; case 7: printf(
35、"nNormal");break; case 8: printf("nGood");break; case 9: case 10: printf("nExcellent"); break; 程序運行時輸入數據:75<回車>程序運行結果為 。注:1)該switch語句的程序形式為:switch<(表達式)> case <常量表達式1>:語句序列1 case <常量表達式2>:語句序列2 case <常量表達式n>:語句序列n default:語句序列n+12)該switch語句
36、的執行過程是:先計算表達式的值,若結果與某一case后面的<常量表達式>匹配,就執行case后面所有的語句序列,直到遇到break語句或switch語句的“”結束。若表達式的值不能與case后面的任何一個<常量表達式>匹配,則執行default所對應的語句。3)case 后面必須是常量表達式,該表達式必須在運行之前為確定值。4)case 和常量之間要有空格。6switch的應用main( ) char x; scanf("%c",&x); switch(x) default: printf("nFailure");brea
37、k;case 'a':case 'b': printf("ngood");break;case 'c': printf("npass");case 'd': printf("nwarn"); 程序運行時輸入數據:c<回車>程序運行結果為 。注:1)在switch語句中,default的位置可以在case的前面,也可缺省。2)所有的case和default后面必須有冒號。3)若表達式的值不能與case后面的任何一個<常量表達式>匹配,則執行defau
38、lt所對應的語句。7用if-else語句和switch語句分別編寫程序,要求打印出你們班上學期計算機文化基礎課學生成績的等級,若學生成績在60以下,則打印“不及格”;在6069,則打印“及格”;在7089,則打印“良好”,在90100則打印“優秀”。實驗二 循環結構一、 實驗目的與要求1掌握while語句在結構化程序設計中的應用。2掌握do-while語句在結構化程序設計中的應用。3掌握for語句在結構化程序設計中的應用。4熟練掌握while、do-while和for三者的互換使用。二、實驗內容1 while語句的使用main( ) int x; long sum=0; scanf("
39、;%d",&x); while(x<=1000) sum+=x;x+; printf("%ldn",sum);程序運行時輸入數據:999<回車>程序運行結果為 。該程序的功能為 。注:1)該while語句的程序形式為:while(表達式)循環體語句 2)該switch語句的執行過程是:先計算while后面圓括號中表達式的值,若結果為真,則執行大括號中的循環體語句,然后計算表達式的值,再判斷是否為真,如此反復,直到表達式的值為假。3)若第一次計算表達式的值為假,則循環體一次都不被執行,而執行while語句下面的語句。2 do-while語句
40、的使用main( )int x;long sum=0;scanf("%d",&x);dosum+=x;x+; while(x<=1000);printf("%ldn",sum);程序運行時輸入數據:999<回車>程序運行結果為 。該程序的功能為 。注:1)該do-while語句的程序形式為:do循環體語句 while(表達式);2)該do-switch語句的執行過程是:先執行一次循環體語句,然后計算while后面圓括號中表達式的值,若結果為真,則返回執行大括號中的循環體語句,再計算表達式的值,如此反復,直到表達式的值為假。3)d
41、o-while語句的循環體語句至少被執行一次。3 for語句的表達式1為空語句main( ) int x;long sum=0; scanf("%d",&x); for( ;x<=1000;x+) sum+=x;printf("%ldn",sum);程序運行時輸入數據:998<回車>程序運行結果為 。該程序的功能為 。注:1)該for語句的程序形式為:for(表達式1;表達式2;表達式3)循環體語句 2)該for語句的執行過程是:先計算for后面圓括號中表達式1的值,然后計算表達式2的值,若表達式2的結果為真,則執行大括號中的循
42、環體語句,然后計算表達式3的值,此時完成了一次循環;再重新計算表達式2的值,如此反復,直到表達式2的值為假。4 for語句的表達式3為逗號表達式main( ) int x;long sum=0;scanf("%d",&x);for( ;x<=1000; sum+=x, x+);printf("%ldn",sum);程序運行時輸入數據:998<回車>程序運行結果為 。該程序的功能為 。注:1)for語句的循環體可以為空語句。2)for語句三個表達式的運算次序不同,其結果是不一樣的。5 for語句的循環體為switch語句main(
43、 )int x;for(x=1;x<=8;x+) switch(x) case 1: printf("*");break;case 3: printf("*"); break;case 5: printf("*"); break;case 7: printf("*"); break;程序運行結果為 。該程序的功能為 。注:1)break語句有兩種用法:一是終止switch語句中的某個case,二是立即強制性地終止一個循環。 2)在該程序中,break語句用在switch語句中,只強迫退出該switch語句,而
44、不影響其所在的任何循環。6 for語句的循環體為if語句main( ) int x;printf("n");for( x=1;x<=8; x+) if(x%2) printf("*");printf("n");程序運行結果為 。該程序的功能為 。注:for語句的循環體為多條語句時用 將它們括起來,如該程序中的復合語句: if(x%2) printf("*");7 用while、do-while和for語句分別編寫程序,要求打印出n!實驗三 程序流程控制一、實驗目的與要求1掌握選擇結構的嵌套使用。2掌握循環結構
45、的嵌套使用。3了解break、continue和goto轉移控制語句的使用。4了解exit( )函數的使用。 二、實驗內容 1if-else語句的嵌套 main( ) int year,leap; scanf("%d",&year); if(year%4) leap=0; else if(year%100) leap=1;else if(year%400) leap=0;else leap=1; if(leap) printf("%d is a leap.n",year); else printf("%d is not a leapn&
46、quot;,year);程序運行時輸入數據:2005<回車>程序運行結果為 。該程序的功能為 。注:1)else應和其前面最近的并且沒有與其他else語句配對的if語句配對。2)對于語句嵌套書寫時要有層次感,以便理解和修改。2for語句的嵌套main( )int x,y; for(x=1;x<=9;x+) for(y=1;y<=9;y+) printf("%d*%d=%d ",x,y,x*y); printf("n"); 程序運行結果為 。該程序的功能為 。注:1)先對外循環的循環變量x賦初值為1,循環條件x<=9為真,執行
47、外循環的循環體,即進入內循環。2)在內循環中,先對循環變量y賦初值為1,循環條件y<=9為真,執行內循環的循環體,即顯示1*1=1;然后計算y+,再判斷循環條件y<=9為否為真,繼續執行內循環的循環體,即顯示1*2=2;如此反復,直到y>9時退出內循環的循環體,執行外循環循環體的printf(“n”),再繼續進入外循環,此時循環變量x為2,重復1)和2),直到外循環終止。3)內循環不能與外循環使用相同的循環變量,并且內循環必須完全包含在外循環中。3 break語句的使用main( )int x; for(x=1;x<=10;x+)if(x/2= =1) break; p
48、rintf("%dn",x); 程序運行結果為 。該程序的功能為 。注:1)break只能強行退出它所在的那一層循環。2)此時break的使用與switch中break的使用是不一樣的,break在switch語句中的作用是強迫退出switch語句。4 continue語句的使用main( ) int x; for(x=1;x<=10;x+) if(x/2= =1)continue;printf(" %dn",x,); 程序運行結果為 。該程序的功能為 。注:1)continue的作用是將其后面的printf("%dn",x,)
49、語句“短路”,即跳過continue語句下面的語句,繼續下一次是否循環的判斷。2)continue語句只用在循環中。5 goto語句的使用main( )int x=1;int sum=0;loop: sum+=x; x+; if(x<=10) goto loop;printf("nThe sum is %d",sum); 程序運行結果為 。該程序的功能為 。注:1)goto語句的一般格式是: goto 標號; 標號: 語句 2)在結構化程序設計中不提倡使用goto語句。6exit( )函數的使用#include<stdlib.h>main( ) int x
50、; for( x=1;x<=8; x + +) switch(x) case 1: printf("*");break;case 3: printf("*"); break;case 5: printf("*"); break;case 7: printf("*");exit(0);程序運行結果為 。該程序的功能為 。注:1)exit(0)函數的功能是強制性地終止整個程序的正常運行,返回操作系統。2)exit(0)函數定義在文件<stdlib.h>中,因此在程序起始部分應有#include<
51、stdlib.h>。3)exit(0)表示程序正常終止,括號內若寫非0則表示程序非正常終止。7用break、continue和goto語句分別編寫程序,要求打印出1100之間的整數之和。思考題1 結構化程序的三種基本控制結構是什么?2 在C語言的switch語句中,case后面出現的字符常數會自動轉換成整型嗎?3 在C語言的switch語句中,每個case后面出現的常量或表達式的值能一樣嗎?4 當運行C語言程序時,出現了死循環,怎樣人工中斷循環?5 在用C語言編程時,怎樣防止出現死循環?6 怎樣判斷C程序的循環次數? 7 在用C語言編程時,如果循環次數不為0,while、do-while
52、和for語句三者怎樣互換使用?8 在用C語言編程時,怎樣避免嵌套的if-else的二義性?9 while和do-while語句有什么不同?10 在C語言中,用do-while語句構成的循環,其while后的表達式為非零時能否結束循環?11 在C語言中,怎樣判斷一個量為真?12 在C語言中,while、do-while和for語句之間能混合嵌套嗎?13 對于同一個問題,分別用C語言中的while、do-while和for三種語句是否都能解決?14 在C語言中,有哪幾種語句是順序執行的?15 在C語言中,選擇語句有哪些?16 在C語言中,循環語句有哪些?17 在C語言中,輔助流程轉向語句有哪些?編程題1. 求兩個自然數x和y的最大公約數。2. 輸出Fibonacci數列前10個數。3. 求整數3100中的素數。4. 用牛頓迭代法求方程在x=1.5附近的近似根,要求迭代精度為10-5。5. 用二分法求方程在-5,5之間的近似根,要求誤差為10-5。綜合編程題 若一個數等于它的因子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廠里安全培訓考試試題及參考答案(突破訓練)
- 2025班組三級安全培訓考試試題及參考答案(培優A卷)
- 2025車間安全培訓考試試題(原創題)
- 2025中外合作的產品制造合同
- 2025年簽訂買房合同的應該注意什么事項
- 2025工程咨詢委托合同樣本
- 日照勞動合同范本
- 2025年四川省勞動合同樣本
- 2025年四川省勞動合同書(樣本)
- 2025廣告設計委托合同范本
- MOOC 國情分析與商業設計-暨南大學 中國大學慕課答案
- MOOC 大學體育-華中科技大學 中國大學慕課答案
- 《光伏發電工程工程量清單計價規范》
- 國家衛生部《綜合醫院分級管理標準》
- DB64++1996-2024+燃煤電廠大氣污染物排放標準
- 初中八年級數學課件-最短路徑-將軍飲馬問題
- 信息論與編碼期末考試題(全套)
- 醫院醫學倫理審查委員會章程
- 房地產銷售價格優惠申請表-
- 綠化自動滴灌系統施工方案
- 處理突發事件流程圖
評論
0/150
提交評論