C語言程序設(shè)計(jì)基礎(chǔ)教材參考題答案_第1頁
C語言程序設(shè)計(jì)基礎(chǔ)教材參考題答案_第2頁
C語言程序設(shè)計(jì)基礎(chǔ)教材參考題答案_第3頁
C語言程序設(shè)計(jì)基礎(chǔ)教材參考題答案_第4頁
C語言程序設(shè)計(jì)基礎(chǔ)教材參考題答案_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)基礎(chǔ)教材參 考 答 案包括各單元:一 隨堂練習(xí)二 單元總結(jié)三 單元練習(xí)四 實(shí)訓(xùn)指導(dǎo)單元一 程序設(shè)計(jì)宏觀認(rèn)識(shí)一 隨堂練習(xí)【隨堂練習(xí)1-1】1根據(jù)上述示例模仿編程,輸入正方形的邊長,計(jì)算其面積。#include <stdio.h>void main( ) int a,s;/數(shù)據(jù)準(zhǔn)備,邊長a,面積s printf("請(qǐng)輸入正方形的邊長:"); scanf("%d",&a); /數(shù)據(jù)輸入 s=a*a; /數(shù)據(jù)計(jì)算 printf("該正方形的面積為:%d.n",s);【隨堂練習(xí)1-2】1 下面哪些標(biāo)識(shí)符屬于合法

2、的用戶自定義標(biāo)識(shí)符: Main、void、_num、my$、a*、N4、3m、a-2答:合法的用戶自定義標(biāo)識(shí)符是:Main、_num、N42 結(jié)合【例1.2】指出程序代碼中所用到的標(biāo)識(shí)符哪些是關(guān)鍵字,哪些是預(yù)定義標(biāo)識(shí)符,哪些是用戶自定義標(biāo)識(shí)符。答:關(guān)鍵字:void、int預(yù)定義標(biāo)識(shí)符:include、main、printf、scanf用戶自定義標(biāo)識(shí)符:a、b、c3 分析【例1.2】中函數(shù)的結(jié)構(gòu),包括函數(shù)首部(函數(shù)返回值類型、函數(shù)名、形式參數(shù))、函數(shù)體語句(說明語句、可執(zhí)行語句)。答:函數(shù)首部: void main( ),其中函數(shù)返回值類型為void、函數(shù)名為main、形式參數(shù)無;函數(shù)體語句:內(nèi)

3、的語句為函數(shù)體,其中:說明語句為int a,b,c;,其余為可執(zhí)行語句?!倦S堂練習(xí)1-3】1 在VC+6.0環(huán)境中完成【例1.2】程序開發(fā)過程。(略)2查閱【例1.2】所對(duì)應(yīng)的工程文件夾,了解相關(guān)文件的含義。工程文件夾中:.CPP:用C/C+語言編寫的源代碼文件。.DSP:VC開發(fā)環(huán)境生成的工程文件,VC4及以前版本使用MAK文件來定義工程。項(xiàng)目文件,文本格式。.DSW:VC開發(fā)環(huán)境生成的WorkSpace文件,用來把多個(gè)工程組織到一個(gè)WorkSpace中。工作區(qū)文件,與.dsp差不多。.NCB:NCB是“No Compile Browser”的縮寫,其中存放了供ClassView、Wizar

4、dBar和Component Gallery使用的信息,由VC開發(fā)環(huán)境自動(dòng)生成。無編譯瀏覽文件。當(dāng)自動(dòng)完成功能出問題時(shí)可以刪除此文件。編譯工程后會(huì)自動(dòng)生成。.OPT:VC開發(fā)環(huán)境自動(dòng)生成的用來存放WorkSpace中各種選項(xiàng)的文件。工程關(guān)于開發(fā)環(huán)境的參數(shù)文件。如工具條位置信息等。DEBUG文件夾中:.OBJ:源文件編譯后生成的目標(biāo)文件,是模塊的二進(jìn)制中間文件。.EXE:可執(zhí)行文件。(注:藍(lán)色字體為重點(diǎn)了解。)二 單元總結(jié)本單元中,核心內(nèi)容有C語言程序框架結(jié)構(gòu)、程序的構(gòu)成和程序開發(fā)過程。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1C語言程序最基本的程序框架由兩部分構(gòu)成,分別是:(1) 編譯預(yù)處理 (2)

5、函數(shù)組 2C程序最大的特點(diǎn)就是所有的程序都是用函數(shù)來裝配的,函數(shù)是構(gòu)成C語言程序的基本單位,函數(shù)包括主函數(shù)、庫函數(shù)和自定義函數(shù)。函數(shù)的一般結(jié)構(gòu)形式為: 函數(shù)返回值類型 函數(shù)名(形式參數(shù)) /函數(shù)首部 說明語句; /函數(shù)體 可執(zhí)行語句; 3 標(biāo)識(shí)符是用來標(biāo)識(shí)程序中的某個(gè)對(duì)象名字的字符序列。C語言把標(biāo)識(shí)符分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識(shí)符、用戶自定義標(biāo)識(shí)符。對(duì)于用戶自定義標(biāo)識(shí)符的命名C語言規(guī)定:(1) 所有的用戶標(biāo)識(shí)符必須先定義后使用;(2) 用戶標(biāo)識(shí)符由字母(AZ,az)、數(shù)字(09)、下劃線“_”組成,并且首字符不能是 數(shù)字 ;(3) 區(qū)分大小寫;(4)不能用關(guān)鍵字作為用戶自定義標(biāo)識(shí)符,通常不使

6、用預(yù)定義標(biāo)識(shí)符作為用戶自定義標(biāo)識(shí)符。4理論上講,程序開發(fā)過程分為四個(gè)步驟,分別為:(1) 編輯源程序 (2) 編譯源程序,生成目標(biāo)程序 (3) 連接目標(biāo)程序及其相關(guān)模塊,生成可執(zhí)行文件 (4) 運(yùn)行可執(zhí)行文件 5簡(jiǎn)單描述使用VC+6.0開發(fā)應(yīng)用程序的步驟:如圖所示: 啟動(dòng)VC+6.0打開或新建工程打開或新建文件編輯、編譯連接、運(yùn)行完成圖 VC+6.0開發(fā)程序的步驟總之,通過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序框架結(jié)構(gòu)和程序開發(fā)過程,還要對(duì)C語言程序設(shè)計(jì)的知識(shí)脈絡(luò)有一定的了解。三 單元練習(xí)一選擇題 1構(gòu)成C語言程序的基本單位是( )。A框架    B預(yù)處理 &

7、#160;  C函數(shù)   D語句 2在程序開發(fā)過程中,把文本文件格式源程序轉(zhuǎn)化為二進(jìn)制格式的目標(biāo)程序的過程稱之為( )。A編輯 B編譯 C連接 D運(yùn)行3關(guān)于主函數(shù),下列說法不正確的是( )。A一個(gè)完整的C語言應(yīng)用程序有唯一的主函數(shù)B主函數(shù)的名稱只能是mainC主函數(shù)可以被其他自定義函數(shù)調(diào)用DC語言程序的運(yùn)行從主函數(shù)開始,以主函數(shù)為核心展開4關(guān)于標(biāo)識(shí)符,下列說法不正確的是( )。A庫函數(shù)名稱為預(yù)定義標(biāo)識(shí)符,不建議用作用戶自定義標(biāo)識(shí)符B. 關(guān)鍵字不能作為用戶自定義標(biāo)識(shí)符C用戶自定義標(biāo)識(shí)符中不區(qū)分大小寫字母D標(biāo)識(shí)符中可以出現(xiàn)下劃線,且可以出現(xiàn)在標(biāo)識(shí)符的任意位置5以下可用

8、作用戶自定義標(biāo)識(shí)符的一組是( )。Avoid、return、ifBprintf、include、fabsCMax、_abc、MainD2abc、pay$、sum-10二填空題1C語言程序一般由若干個(gè)函數(shù)構(gòu)成,程序中應(yīng)至少包含一個(gè)_,其名稱只能為_。 2C語言程序中每條語句必須以_結(jié)束。3C語言程序的注釋是以_開頭,以_結(jié)束的,在VC+6.0編程環(huán)境中,可使用_作為注釋的起始標(biāo)識(shí),注釋對(duì)程序的執(zhí)行不起任何作用。 4最初編寫的C語言程序稱為_,其擴(kuò)展名為_,編譯后生成的文件為_,其擴(kuò)展名是_,連接后生成的文件是_,其擴(kuò)展名是_。 5C語言規(guī)定,標(biāo)識(shí)符只能由_、_和_三

9、種字符組成,而且,首字符只能是_或_。*習(xí)題答案:一選擇題1C2B3C4C5C二填空題1主函數(shù) main2分號(hào);3/* */ /4源程序 .cpp或.c目標(biāo)文件(或目標(biāo)程序) .obj 可執(zhí)行文件(或可執(zhí)行程序) .exe5字母(AZ,az)、數(shù)字(09)、下劃線“_” 字母或下劃線*四 實(shí)訓(xùn)指導(dǎo)1完成【引例】中的題目。【引例1】(1) C語言程序基本框架包括編譯預(yù)處理和函數(shù)組兩部分。(2) 編譯預(yù)處理是程序編譯之前的準(zhǔn)備工作,以“#”開頭。(3) 函數(shù)組包括主函數(shù)、庫函數(shù)和用戶自定義函數(shù),函數(shù)是構(gòu)成C語言程序的基本單位。整個(gè)程序的執(zhí)行以主函數(shù)main()為核心展開;C語言標(biāo)準(zhǔn)函數(shù)庫提供大量功

10、能豐富的庫函數(shù),使用時(shí)需要在編譯預(yù)處理中包含相應(yīng)的頭文件,參見附錄D;用戶也可以根據(jù)需要編寫具有特定功能的函數(shù),稱為用戶自定義函數(shù)。(4) 在C語言中的任何適當(dāng)位置可添加注釋,以增強(qiáng)程序的可讀性。在Visual C+編程環(huán)境中可用“/”作為程序單行注釋的起始符號(hào),也可以使用“/*”和“*/”作為單行或多行注釋的起始和終止符號(hào)?!疽?】編輯好的C語言程序要經(jīng)過編譯、連接和執(zhí)行幾個(gè)步驟,其完整過程描述如教材圖1-1所示。2新建工程,輸入【例1-2】源程序,使之能夠運(yùn)行。(略)3編寫一個(gè)程序,輸出下面三行字符: * 歡迎來到“吉尼斯樂園”!  *  參考程序

11、如下:(注意轉(zhuǎn)義字符的理解)#include <stdio.h>void main( ) printf("*n"); printf(" 歡迎來到"吉尼斯樂園"!n"); printf("*n"); 4 有三個(gè)同樣大小的瓶子,一個(gè)裝可樂,一個(gè)裝雪碧,還有一個(gè)空瓶,請(qǐng)用語言描述將可樂和雪碧互換瓶子盛放的方法。然后編程實(shí)現(xiàn):將兩個(gè)整數(shù)a和b的值交換,輸出交換后的結(jié)果。參考程序如下:#include <stdio.h>void main( ) int a,b,c; /借助變量c交換a和b的值 pri

12、ntf("請(qǐng)輸入a和b的值:"); scanf("%d%d",&a,&b); c=a; /交換a和b的值 a=b; b=c; printf("交換結(jié)果為:a=%d,b=%d.n",a,b); 單元二 程序設(shè)計(jì)基礎(chǔ)知識(shí)一 隨堂練習(xí)【隨堂練習(xí)2-1】1判斷下列常量表示正確與否?(帶下劃線的不正確)(1) 整型常量:32768、037、081、0x4f、0xAH(2) 浮點(diǎn)型常量:.124、3.0、1e3、(3) 字符型常量:'a'、'101'、65、'x21'2字符串常量“H

13、ow are you?n”的字符串長度為 13 個(gè)字節(jié),它占用的存儲(chǔ)空間為 14 個(gè)字節(jié)。3“d:windowsinfo.txt”在C語言程序設(shè)計(jì)時(shí)應(yīng)描述為 "d:windowsinfo.txt" 。4在編程處理物理力學(xué)相關(guān)運(yùn)算時(shí),常將重力加速度G定義為符號(hào)常量,其定義語句可描述為: #define G 9.8 ?!倦S堂練習(xí)2-2】1完成本單元【引例】中的問題(1)。 float a,b,c,s,area;2下列變量定義中合法的是:(以下定義語句均不合法) (1)long do=0xfd;(2)int max=min=0;(3)double f, int a;(4)char

14、 ch="A"【隨堂練習(xí)2-3】1 完成本單元【引例】中問題(2)。#include <math.h>s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)2 有定義語句:char ch='M',寫出將變量ch變?yōu)樾懽帜傅谋磉_(dá)式: ch=ch+32; ?!倦S堂練習(xí)2-4】1試分析本單元【引例】的數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)算法,并繪制算法流程圖。(1)數(shù)據(jù)結(jié)構(gòu):三角形的三個(gè)邊長a,b,c,中間變量s和面積area,均為浮點(diǎn)型。(2)實(shí)現(xiàn)算法:以順序結(jié)構(gòu)為例,根據(jù)題目要求,其算法表示如下:步驟1:輸入三個(gè)邊長a、b、c值;步驟2:根

15、據(jù)公式計(jì)算出s的值,然后根據(jù)公式計(jì)算出三角形面積area;步驟3:輸出計(jì)算結(jié)果。 (3)算法流程圖:開始輸入a、b、c值計(jì)算s值;計(jì)算area值;輸出面積值area結(jié)束二 單元總結(jié)本單元中,核心內(nèi)容有C語言中基本的數(shù)據(jù)類型、常量和變量、運(yùn)算符和表達(dá)式以及算法的概念。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1C語言中最基本的數(shù)據(jù)類型有: 整型、字符型、浮點(diǎn)型 。2C程序中使用的常量按照表現(xiàn)形式可分為直接常量和符號(hào)常量。(1)直接常量 1)整型常量,有十進(jìn)制、八進(jìn)制和十六進(jìn)制三種描述方式,其中,八進(jìn)制的前置符號(hào)標(biāo)志為 0 ,十六進(jìn)制的前置符號(hào)標(biāo)志為 0x或0X 。 2)浮點(diǎn)型常量,有十進(jìn)制小數(shù)和指數(shù)兩種描

16、述方式,指數(shù)形式的符號(hào)標(biāo)志是 e或E 。 3)字符型常量,是用單撇引號(hào)括起來的單一字符,對(duì)一些特殊字符和控制字符用 的形式表示。 4)字符串常量,是用雙撇引號(hào)括起來的一串字符序列。字符串的結(jié)束標(biāo)志為 0 。(2)符號(hào)常量 符號(hào)常量是使用某個(gè)符號(hào)代表的常量,符號(hào)常量使用編譯預(yù)處理中的宏定義命令 定義。3C程序中使用變量,必須先 定義 ,后 使用 。變量定義后,系統(tǒng)會(huì)根據(jù)變量的類型分配相應(yīng)的存儲(chǔ)空間。4C語言有豐富的運(yùn)算符,其中算術(shù)運(yùn)算符包括+、-、*、/、%,運(yùn)算符中的 僅用于整數(shù)間的運(yùn)算;賦值運(yùn)算符包括“=”和相應(yīng)的復(fù)合賦值運(yùn)算符 +=、-=、*=、/= ,賦值運(yùn)算的含義是將“=”右側(cè)的表達(dá)式

17、的計(jì)算結(jié)果賦值給“=”左側(cè)的變量,這與數(shù)學(xué)中“=”的含義不同,需要注意。5由運(yùn)算符和數(shù)據(jù)構(gòu)成表達(dá)式,若表達(dá)式中各數(shù)據(jù)的類型不同,則存在類型自動(dòng)轉(zhuǎn)換問題,必要時(shí)也可以使用強(qiáng)制類型轉(zhuǎn)換。6對(duì)于面向過程的程序設(shè)計(jì)來說,程序= 數(shù)據(jù)結(jié)構(gòu) + 算法 。7在C語言中,對(duì)于每一個(gè)程序設(shè)計(jì)單元可采用結(jié)構(gòu)化程序設(shè)計(jì)方法,有三種基本的程序結(jié)構(gòu),分別為: 順序 、 選擇 和 循環(huán) 。通過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序設(shè)計(jì)所需要的基本知識(shí),為后續(xù)內(nèi)容的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。三 單元練習(xí)一選擇題 1在C語言中,int、short、char三種類型數(shù)據(jù)所占用的存儲(chǔ)空間是( )。A均為2個(gè)字節(jié)  

18、60; Bint和short占2個(gè)字節(jié),char占1個(gè)字節(jié)C與編譯環(huán)境有關(guān)   D由用戶自己定義  2下面定義字符型變量ch的語句不正確的是( )。Achar ch=X2A;  Bchar ch="c" Cchar ch=65;   Dchar ch=NULL; 3已知大寫字母A的ASCII是65,小寫字母a的ASCII是97,以下不能將字符型變量c中的大寫字母轉(zhuǎn)換成對(duì)應(yīng)的小寫字母的語句是( )。Ac= (c-'A')%26+'a'  

19、0; Bc2=tolower(c);Cc= c-'A'+'a'   Dc=('A'+c)%26-'a'  4設(shè)有定義:double d,h;,其中d為三角形的底邊長,h為三角形的高,則以下C語言表達(dá)式與其面積公式dh計(jì)算結(jié)果不相符的是( )。Ad*h/2    B1/2*d*hCd*h*1/2Dd/2*h  5以下選項(xiàng)中,與k=n+;完全等價(jià)的語句是( )。Ak=n;n=n+1;    Bn=n+1;k=n;Ck=+n;Dk+=n+

20、1;二填空題1寫出整型變量a、無符號(hào)長整型變量b、雙精度浮點(diǎn)型變量c和字符型變量d的定義語句: 。2常量a和”a”分別占用_個(gè)字節(jié)和_個(gè)字節(jié)的存儲(chǔ)空間。3有定義 int a=1234;,獲取其百位數(shù)碼的表達(dá)式為_。4若有定義:char a=97,c;,則表達(dá)式c='a'+'8'-'3'的值為_。5已知int x=6;,則執(zhí)行x+=x-=x-3;語句后,x的值是_。6將一個(gè)浮點(diǎn)型變量n四舍五入精確到小數(shù)點(diǎn)后兩位,其表達(dá)式為: 。7C語言中基本的數(shù)據(jù)類型有 、 、 。8結(jié)構(gòu)化程序設(shè)計(jì)中基本的程序結(jié)構(gòu)有 、 、 。*習(xí)題答案:一選擇題1C2B3D4B5

21、A二填空題1int a; unsigned long b; double c; char d;21 23a/100%104f566(int)(n*100+0.5)/100.0;7整型、浮點(diǎn)型、字符型8順序、選擇、循環(huán)*四 實(shí)訓(xùn)指導(dǎo)1 完成【引例】中的題目,要求計(jì)算結(jié)果保留兩位小數(shù)。參考程序代碼如下:#include <stdio.h>#include <math.h>void main( ) float a,b,c,s,area; printf("請(qǐng)輸入三角形三邊長:"); scanf("%f%f%f",&a,&b

22、,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf("三角形的面積為:%.2fn",area); 2新建工程,輸入【例2-4】源程序,使之能夠運(yùn)行,重點(diǎn)體會(huì)符號(hào)常量的用法及好處。(略)3下列程序有若干處錯(cuò)誤,請(qǐng)調(diào)試改正。程序功能:求華氏溫度120.3對(duì)應(yīng)的攝氏溫度,計(jì)算公式為c=5/9(f-32),其中c表示攝氏溫度,f表示華氏溫度。給定程序程序改正#include <stdio.h>void main( ) int c;f; c=5/9*(f-32);f=120.3; printf(“c=%

23、fn”,c)#include <stdio.h>void main( ) float c,f; f=120.3; c=5*(f-32)/9; printf("c=%fn",c);4編寫程序,將兩個(gè)兩位數(shù)的正整數(shù)a和b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上,將b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上。參考程序代碼如下:#include <stdio.h>void main( ) int a,b,c; int as,ag,bs,bg; printf("請(qǐng)輸入兩個(gè)兩位整數(shù):"); sca

24、nf("%d%d",&a,&b); as=a/10; ag=a%10; bs=b/10; bg=b%10; c=bg*1000+ag*100+bs*10+as; printf("合并后的結(jié)果為:%d.n",c);單元三 順序結(jié)構(gòu)程序設(shè)計(jì)一 隨堂練習(xí) 【隨堂練習(xí)3-1】1下面程序功能為:輸入一個(gè)AZ之間的字母,輸出與之左右相鄰的兩個(gè)字母,根據(jù)注釋信息將程序填寫完整。(注意:題目要求輸入AZ之間的字母,即不包含A和Z)#include <stdio.h>void main( ) char ch;/數(shù)據(jù)準(zhǔn)備 ch=getchar()

25、;/調(diào)用getchar()輸入一個(gè)字母,并賦值給ch putchar(ch-1); /調(diào)用putchar()輸出與ch左相鄰的字母 putchar(ch+1); /調(diào)用putchar()輸出與ch右相鄰的字母【隨堂練習(xí)3-2】1. 輸出提示語“請(qǐng)輸入銀行卡密碼:”的語句可描述為 printf("請(qǐng)輸入銀行卡密碼:"); 。2. 分析下列程序輸出結(jié)果。#include <stdio.h>void main( ) int a=65,b=97; double m=3.14159; printf("%c-%dn%c-%dn",a,a,b,b); pr

26、intf("a=%06d,b=%-6d.n",a,b); printf("a=%d,a=%o,a=%xn",a,a,a); printf("m=%lf.n",m); printf("m=%4.3lf.n",m); printf("m=%06.3lf.n",m); 輸出結(jié)果如下:【隨堂練習(xí)3-3】1.分別按照int、double和char類型給變量a,b,c輸入數(shù)值的語句可描述為:scanf("%d%lf%c",&a,&b,&c); 2.根據(jù)要求給出數(shù)據(jù)

27、輸入方法。(1)有語句scanf("a=%d,b=%d",&a,&b);,要使a值為2,b值為3,則正確的輸入方法是: a=2,b=3 (2)有輸入語句scanf("%d%c",&m,&n);,為使m值為6,n值為字母y,則正確的輸入方法是: 6y 二 單元總結(jié)本單元中,核心內(nèi)容是順序程序結(jié)構(gòu)程序設(shè)計(jì)中標(biāo)準(zhǔn)輸入輸出庫函數(shù)的使用。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1C語言提供了標(biāo)準(zhǔn)輸入輸出庫函數(shù)用于實(shí)現(xiàn)數(shù)據(jù)輸入輸出操作,其對(duì)應(yīng)的頭文件為 stdio.h 。2單字符輸入和輸出函數(shù)分別為 getchar() 和 putchar()

28、 。3格式化輸入和輸出函數(shù)分別為 scanf() 和 printf() 。4格式化輸出函數(shù)有兩種調(diào)用格式:(1) printf("字符串常量"); (2) printf("格式控制字符串",輸出項(xiàng)列表); 5格式化輸入/輸出中,格式控制符由 % 開頭。常用的格式控制符有:整型int格式符 %d 、float浮點(diǎn)型格式符 %f 、double浮點(diǎn)型格式符 %lf 、字符型格式符 %c ;對(duì)于浮點(diǎn)型格式可以用 m.n 形式的附加格式說明小數(shù)的寬度和小數(shù)位數(shù)。6格式化輸入中的輸入項(xiàng)為地址列表,對(duì)變量取地址的運(yùn)算符為 & 。通過本單元的學(xué)習(xí),應(yīng)對(duì)順序結(jié)構(gòu)

29、程序設(shè)計(jì)的特點(diǎn)和設(shè)計(jì)思路有所了解,同時(shí)重點(diǎn)學(xué)會(huì)單字符輸入函數(shù)getchar()、單字符輸出函數(shù)putchar()、格式化輸出函數(shù)printf()和格式化輸入函數(shù)scanf()的正確使用。三單元練習(xí)一選擇題1已定義x為float型變量,其值為213.45678,則printf("%-4.2fn",x);的輸出結(jié)果為( )。A213.46    B213.45   C-213.45   D輸出格式控制說明的域?qū)挷粔?,不能輸?#160; 2. 有以下程序,程序運(yùn)行時(shí)輸入:1,2,3<回車>,則輸出

30、的結(jié)果為( )。#include <stdio.h>void main( ) int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("a+b+c=%dn",a+b+c); A6    Ba+b+c=6C123D不確定的值3.下面輸入語句中,正確的是( )。Ascanf("a=b=%d",&a,&b);  Bscanf("%d,%d",&a,&b); Cscanf(&

31、quot;%c",c);   Dscanf("%d %dn",&f1,f2); 4在VC+6.0環(huán)境中,下列說法正確的是( )。A輸入函數(shù)scanf()輸入多個(gè)數(shù)據(jù)時(shí),有時(shí)數(shù)據(jù)間不必加間隔符。B輸入函數(shù)scanf()中單精度或雙精度浮點(diǎn)型數(shù)據(jù)都要用%f作為格式控制符。C使用輸出函數(shù)printf()輸出字符或字符串都用格式控制符%s。 D輸出函數(shù)printf()中單精度或雙精度浮點(diǎn)型數(shù)據(jù)都要用%f作為格式控制符。5下面程序的功能是實(shí)現(xiàn)兩個(gè)字符變量互換值,若為ch1輸入a,ch2輸入b,則程序運(yùn)行時(shí)正確的輸入是( )。#

32、include <stdio.h>void main( ) char ch1,ch2,ch; scanf("%c%c",&ch1,&ch2); ch=ch1;ch1=ch2;ch2=ch;printf("ch1=%c,ch2=%cn",ch1,ch2); Aa,b    Ba<空格>bCabDa<回車>b二填空題1.有語句putchar(getchar(),程序運(yùn)行時(shí)輸入:A,則輸出結(jié)果是_。2printf("%6.2f%",1.0/3);的輸出結(jié)果是_

33、。3補(bǔ)充程序: int n1=10,n2=20; printf(" ",n1,n2); 要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開始。n1=0010n2=00204.有以下程序,程序運(yùn)行時(shí)輸入:1234<回車>,執(zhí)行后輸出的結(jié)果是_。#include <stdio.h>void main( ) char ch1,ch2;int n1,n2; ch1=getchar();ch2=getchar();n1=ch1-0; n2=n1*10+(ch2-0); printf("n1=%d,n2=%d.n",n1,n2); 5.

34、輸入多個(gè)非字符型的數(shù)值數(shù)據(jù)時(shí),數(shù)據(jù)輸入時(shí)可用 、 和 作為間隔符。*習(xí)題答案:一選擇題1A2D3B4A5C二填空題1.A2.0.33%3.n1=%04dnn2=%04d4.n1=1,n2=125.空格,TAB鍵,回車*四實(shí)訓(xùn)指導(dǎo)1 完成【引例】中的題目,要求計(jì)算結(jié)果保留兩位小數(shù)。(1)輸入三角形三邊長度a,b,c;(2)計(jì)算s和面積area;(3)輸出三角形面積area。學(xué)習(xí)完本單元后,結(jié)合給定的演示運(yùn)行界面,完成如下問題:(1)輸入三角形三邊長度的語句如何描述:scanf("%f%f%f",&a,&b,&c); (2)輸出計(jì)算結(jié)果的語句如何描述:p

35、rintf("三角形面積為:%.2fn",area);(3)試寫出完整的程序?qū)崿F(xiàn)代碼:#include <stdio.h>#include <math.h>void main( ) float a,b,c,s,area; printf("請(qǐng)輸入三角形三邊長:"); scanf("%f%f%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf("三角形的面積為:%.2fn",area); 2編寫

36、程序,從鍵盤上輸入某學(xué)生四門課程的成績(jī),計(jì)算并輸出總成績(jī)和平均成績(jī)。參考程序代碼如下:#include <stdio.h>void main( ) float a,b,c,d,sum=0,ave; printf("請(qǐng)輸入四門課程成績(jī):"); scanf("%f%f%f%f",&a,&b,&c,&d); sum=a+b+c+d; ave=sum/4; printf("該學(xué)生的總成績(jī)?yōu)?.2f,平均成績(jī)?yōu)?%.2fn",sum,ave); 3設(shè)半徑r=2.5,編程計(jì)算相應(yīng)的圓的周長、圓的面積和圓

37、球的體積。用函數(shù)scanf輸入數(shù)據(jù),輸入數(shù)據(jù)要有提示語,輸出計(jì)算結(jié)果中要有文字說明,計(jì)算結(jié)果取小數(shù)點(diǎn)后2位。參考程序代碼如下:#include <stdio.h>#define PI 3.14void main( ) float r,c,s,v; printf("請(qǐng)輸入半徑值:"); scanf("%f",&r); c=2*PI*r; s=PI*r*r; v=3*PI*r*r*r/4; printf("半徑為%.2f時(shí),對(duì)應(yīng)的:n",r); printf("圓的周長為:%.2f.n",c); p

38、rintf("圓的面積為:%.2f.n",s); printf("球的體積為:%.2f.n",v);4將“China”字符串譯成密碼,譯碼規(guī)則:對(duì)每個(gè)字母用其后面的第5個(gè)字母替換。即字母a用f替換,b用g替換,以此類推。(1)請(qǐng)預(yù)編寫程序,定義五個(gè)字符型變量c1、c2、c3、c4和c5,同時(shí)賦初值分別為C、h、i、n和a,然后譯成密碼并輸出,分析結(jié)果是否符合要求。參考程序代碼如下:#include <stdio.h>void main( ) char c1='C',c2='h',c3='i',c

39、4='n',c5='a' printf("原數(shù)據(jù)為:"); printf("%c%c%c%c%cn",c1,c2,c3,c4,c5); c1+=5; c2+=5; c3+=5; c4+=5; c5+=5; printf("譯成密碼后的結(jié)果:"); printf("%c%c%c%c%cn",c1,c2,c3,c4,c5);(2)將變量c1、c2、c3、c4和c5的初值改為H、a、p、p和y,再次運(yùn)行程序,分析結(jié)果是否符合要求。答:不符合要求了,初值H、a、p、p和y譯成密碼后的結(jié)果為“

40、Mfuu”,初值最后一個(gè)字母y其后第5個(gè)字母應(yīng)該為d。通過分析可以看出,要想獲得字母y后的第5個(gè)字母,直接加5是得不到的。對(duì)于這樣的情況應(yīng)該進(jìn)行選擇判斷處理,在下一章講解。單元四 選擇結(jié)構(gòu)程序設(shè)計(jì)一 隨堂練習(xí) 【隨堂練習(xí)4-1】1當(dāng)a=3,b=2,c=1時(shí),判斷例4-1中條件表達(dá)式的值? (1)a>b=c 真 (2)a=b<c 假 (3)a<=b+c 假2當(dāng)r的值為3時(shí),判斷下列條件表達(dá)式的值。(1)r=3 真 (2) r=4 真 (3)0<r<1 真 3整型變量n為偶數(shù)的關(guān)系表達(dá)式為 n%2=0 ?!倦S堂練習(xí)4-2】1判斷字符變量ch的值為大寫字母的邏輯表達(dá)式為

41、: ch>=A&&ch<=Z 。2判斷某一年份是否為閏年。閏年是符合以下條件的年份:能被4整除但不能被100整除,或者能被400整除。若用整型變量year 表示年份,則閏年的邏輯判斷表達(dá)式為: year%4=0&&year%100!=0|year%400=0 ?!倦S堂練習(xí)4-3】1以下程序段的運(yùn)行結(jié)果是 x=20,y=20 。int x=10,y=20;if(x<y)x=y; y=x;printf(“x=%d,y=%d”,x,y);2以下程序段的功能是計(jì)算一個(gè)整數(shù)的絕對(duì)值,將程序補(bǔ)充完整。int n;scanf(“%d”,&n); if

42、(n<0) n=-n; printf(“該整數(shù)的絕對(duì)值是%d.”,n);【隨堂練習(xí)4-4】1以下程序可判斷指定的年份是否為閏年,補(bǔ)充完整。 int year,f; /f是閏年的標(biāo)志位,year表示年份scanf(“%d”,&year);if(year%4=0&&year%100!=0|year%400=0) f=1;else f=0; if( f=1 ) printf(“%d年是閏年?!?year); else printf(“%d年不是閏年?!?year); 2以下程序用于判斷輸入的字符是否為字母,補(bǔ)充完整,然后將程序改寫成僅一對(duì)if-else的形式。char

43、ch;ch=getchar( ); if( ch>=A&&ch<=Z ) printf(“%c是字母?!?ch); else if(ch>=a&&ch<=z ) printf(“%c是字母?!?ch); else printf(“%c不是字母?!?ch); 改成一對(duì)if-else的形式:char ch;ch=getchar( );if( ch>=A&&ch<=Z|ch>=a&&ch<=z ) printf(“%c是字母?!?ch); else printf(“%c不是字母?!?ch)

44、;【隨堂練習(xí)4-5】1將【隨堂練習(xí)4-4】中第1題的3至6行程序使用條件運(yùn)算符描述: f= (year%4=0&&year%100!=0|year%400=0)?1:0; 【隨堂練習(xí)4-6】1輸入17之間的任意數(shù)字,輸出其對(duì)應(yīng)的星期幾的英文,如輸入5,程序輸出Friday。若輸入17以外的數(shù)字,則提示輸入錯(cuò)誤。參考程序代碼如下:#include <stdio.h>void main( ) int m; printf("請(qǐng)輸入17任意數(shù)字:"); scanf("%d",&m); switch(m) case 1:prin

45、tf("Monday");break;case 2:printf("Tuesday");break;case 3:printf("Wednesday");break;case 4:printf("Thursday");break;case 5:printf("Friday");break;case 6:printf("Saturday");break;case 7:printf("Sunday");break;default:printf("輸入

46、錯(cuò)誤!"); 二 單元總結(jié)在選擇結(jié)構(gòu)程序設(shè)計(jì)中,條件判斷表達(dá)式和選擇結(jié)構(gòu)實(shí)現(xiàn)語句是兩個(gè)核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:1條件判斷表達(dá)式由關(guān)系運(yùn)算符及其表達(dá)式、邏輯運(yùn)算符及其表達(dá)式構(gòu)成,其中:(1) 關(guān)系運(yùn)算符有: > 、 < 、 >= 、 <= 、 !=、 = (2) 邏輯運(yùn)算符有: &&、|、 ! 2選擇結(jié)構(gòu)實(shí)現(xiàn)語句有三種方式:(1) 單分支if選擇結(jié)構(gòu),一般格式為: if ( 表達(dá)式 ) 語句;(2) 雙分支if-else選擇結(jié)構(gòu),一般格式為:if ( 表達(dá)式 ) 語句1; else 語句2;(3) 多分支 switch選擇結(jié)構(gòu),

47、一般格式為:switch( 表達(dá)式 ) case 常量表達(dá)式1: 語句序列1; break; case 常量表達(dá)式2: 語句序列2; break; case 常量表達(dá)式n: 語句序列n; break; default: 語句序列n+1; 3在應(yīng)用選擇結(jié)構(gòu)時(shí),應(yīng)注意以下問題:(1)在if嵌套語句中,要弄清e(cuò)lse與if的匹配關(guān)系,書寫if語句嵌套時(shí)一般采用縮進(jìn)的階梯式寫法,在實(shí)際編程中,為了表明編程者的意圖,也常常通過“”來強(qiáng)制if和else的配對(duì)關(guān)系。(2)switch語句中,“表達(dá)式”和“常量表達(dá)式”的類型只能是整型或字符型數(shù)據(jù),且“常量表達(dá)式”只能由常量構(gòu)成,通過“表達(dá)式”與“常量表達(dá)式”

48、之間的對(duì)等關(guān)系構(gòu)造出多分支選擇結(jié)構(gòu)。(3)在某些多分支選擇結(jié)構(gòu)程序設(shè)計(jì)中,既可使用if-else語句實(shí)現(xiàn),也可以使用switch語句實(shí)現(xiàn)。switch語句與if語句的不同之處在于:switch語句僅能判斷一種邏輯關(guān)系,即“表達(dá)式”和指定“常量表達(dá)式”的值是否相等,而不能進(jìn)行大于,小于某一個(gè)值的判斷,不能表達(dá)區(qū)間數(shù)據(jù)的概念;if語句可以計(jì)算和判斷各種表達(dá)式。所以switch語句不能完全替代if語句??傊ㄟ^本單元的學(xué)習(xí),應(yīng)該掌握C語言選擇結(jié)構(gòu)程序設(shè)計(jì)的思路和語句的基本用法。三單元練習(xí)一選擇題1以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式( )。Ax%2=1   

49、;  Bx/2      Cx%2!=0    Dx%2=0 2在C語言中,if語句后的一對(duì)圓括號(hào)中有一個(gè)用以決定分支走向的表達(dá)式,該表達(dá)式( )。A只能是關(guān)系表達(dá)式 B只能是邏輯表達(dá)式C只能是關(guān)系或邏輯表達(dá)式 D可以是任何合法表達(dá)式3讀下面程序段,當(dāng)x=-3時(shí),輸出y的值為( )。int x,y; y=0;scanf(“%d”,&x);if(x>=0)if(x>0) y=1;else y=-1; printf(“y=%d”,y);A1 B-1 C0 D不確定4下列語句將小寫字母轉(zhuǎn)化為大寫字母,正確的語句為( )。Aif(z>=ch>=a) ch=ch-32;Bif(ch>=a&&ch<=z) ch=ch-32;Cch=(z>=ch>=a)?ch-32:ch;Dch=( ch>=a&&ch<=z)?ch:ch-32;5關(guān)于與switch語句配套的case語句中所使用的表達(dá)式,說法正確的是( )。A可以是變量 B可以是常量或變量C只能是常量或常量表達(dá)式D無論是何種表達(dá)式,只

溫馨提示

  • 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)論