c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第1頁(yè)
c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第2頁(yè)
c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第3頁(yè)
c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第4頁(yè)
c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)單元總結(jié)與練習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)課程單元總結(jié)與單元練習(xí) 答案C語(yǔ)言程序設(shè)計(jì)單元總結(jié)與練習(xí)題答 案單元一 程序設(shè)計(jì)宏觀認(rèn)識(shí)單元總結(jié)提升本單元中,核心內(nèi)容有C語(yǔ)言程序框架結(jié)構(gòu)、程序的構(gòu)成和程序開發(fā)過(guò)程。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1C語(yǔ)言程序最基本的程序框架由兩部分構(gòu)成,分別是:(1) 編譯預(yù)處理 (2) 函數(shù)組 2C程序最大的特點(diǎn)就是所有的程序都是用函數(shù)來(lái)裝配的,函數(shù)是構(gòu)成C語(yǔ)言程序的基本單位,函數(shù)包括主函數(shù)、庫(kù)函數(shù)和自定義函數(shù)。函數(shù)的一般結(jié)構(gòu)形式為: 函數(shù)返回值類型 函數(shù)名(形式參數(shù)) /函數(shù)首部 說(shuō)明語(yǔ)句; /函數(shù)體 可執(zhí)行語(yǔ)句; 3 標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)程序中的某個(gè)對(duì)象名字的字符序列。C語(yǔ)言把標(biāo)識(shí)符分為

2、三類,即關(guān)鍵字、預(yù)定義標(biāo)識(shí)符、用戶自定義標(biāo)識(shí)符。對(duì)于用戶自定義標(biāo)識(shí)符的命名C語(yǔ)言規(guī)定:(1) 所有的用戶標(biāo)識(shí)符必須先定義后使用;(2) 用戶標(biāo)識(shí)符由字母(AZ,az)、數(shù)字(09)、下劃線“_”組成,并且首字符不能是 數(shù)字 ;(3) 區(qū)分大小寫;(4)不能用關(guān)鍵字作為用戶自定義標(biāo)識(shí)符,通常不使用預(yù)定義標(biāo)識(shí)符作為用戶自定義標(biāo)識(shí)符。4理論上講,程序開發(fā)過(guò)程分為四個(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打開或新建工程打開或新

3、建文件編輯、編譯連接、運(yùn)行完成圖 VC+6.0開發(fā)程序的步驟總之,通過(guò)本單元的學(xué)習(xí),應(yīng)該掌握C語(yǔ)言程序框架結(jié)構(gòu)和程序開發(fā)過(guò)程,還要對(duì)C語(yǔ)言程序設(shè)計(jì)的知識(shí)脈絡(luò)有一定的了解。單元練習(xí)一選擇題 1構(gòu)成C語(yǔ)言程序的基本單位是(c )。A框架    B預(yù)處理    C函數(shù)   D語(yǔ)句 2在程序開發(fā)過(guò)程中,把文本文件格式源程序轉(zhuǎn)化為二進(jìn)制格式的目標(biāo)程序的過(guò)程稱之為( b )。A編輯 B編譯 C連接 D運(yùn)行3關(guān)于主函數(shù),下列說(shuō)法不正確的是( c )。A一個(gè)完整的C語(yǔ)言應(yīng)用程序有唯一的主函數(shù)B主函數(shù)的名稱只能是mainC主函數(shù)可以

4、被其他自定義函數(shù)調(diào)用DC語(yǔ)言程序的運(yùn)行從主函數(shù)開始,以主函數(shù)為核心展開4關(guān)于標(biāo)識(shí)符,下列說(shuō)法不正確的是( c )。A庫(kù)函數(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以下可用作用戶自定義標(biāo)識(shí)符的一組是( c )。Avoid、return、ifBprintf、include、fabsCMax、_abc、MainD2abc、pay$、sum-10二填空題1C語(yǔ)言程序一般由若干個(gè)函數(shù)構(gòu)成,程序中應(yīng)至少包含一個(gè)_,其名稱只能為_。 2C語(yǔ)言程序中每條語(yǔ)句必須以_結(jié)

5、束。3C語(yǔ)言程序的注釋是以_開頭,以_結(jié)束的,在VC+6.0編程環(huán)境中,可使用_作為注釋的起始標(biāo)識(shí),注釋對(duì)程序的執(zhí)行不起任何作用。 4最初編寫的C語(yǔ)言程序稱為_,其擴(kuò)展名為_,編譯后生成的文件為_,其擴(kuò)展名是_,連接后生成的文件是_,其擴(kuò)展名是_。 5C語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由_、_和_三種字符組成,而且,首字符只能是_或_。*習(xí)題答案:一選擇題1C2B3C4C5C二填空題1主函數(shù) main2分號(hào);3/* */ /4源程序 .cpp或.c目標(biāo)文件(或目標(biāo)程序) .obj 可執(zhí)行文件(或可執(zhí)行程序) .exe5字母(AZ,az)、數(shù)字(09)、下劃線“_” 字母或下劃線*單元二

6、 程序設(shè)計(jì)基礎(chǔ)知識(shí)單元總結(jié)提升本單元中,核心內(nèi)容有C語(yǔ)言中基本的數(shù)據(jù)類型、常量和變量、運(yùn)算符和表達(dá)式以及算法的概念。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1C語(yǔ)言中最基本的數(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ù)兩種描述方式,指數(shù)形式的符號(hào)標(biāo)志是 e或E 。 3)字符型常量,是用單撇引號(hào)括起來(lái)的單一字符,對(duì)一些特殊字符和控制字符用 的形式表示。 4)字符串常量,是用

7、雙撇引號(hào)括起來(lái)的一串字符序列。字符串的結(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ǔ)言有豐富的運(yùn)算符,其中算術(shù)運(yùn)算符包括+、-、*、/、%,運(yùn)算符中的%僅用于整數(shù)間的運(yùn)算;賦值運(yùn)算符包括“=”和相應(yīng)的復(fù)合賦值運(yùn)算符 +=、-=、*=、/= ,賦值運(yùn)算的含義是將“=”右側(cè)的表達(dá)式的計(jì)算結(jié)果賦值給“=”左側(cè)的變量,這與數(shù)學(xué)中“=”的含義不同,需要注意。5由運(yùn)算符和數(shù)據(jù)構(gòu)成表達(dá)式,若表達(dá)式中各數(shù)據(jù)的類型不同,則存在類型自動(dòng)轉(zhuǎn)換問(wèn)題

8、,必要時(shí)也可以使用強(qiáng)制類型轉(zhuǎn)換。6對(duì)于面向過(guò)程的程序設(shè)計(jì)來(lái)說(shuō),程序= 數(shù)據(jù)結(jié)構(gòu) + 算法 。7在C語(yǔ)言中,對(duì)于每一個(gè)程序設(shè)計(jì)單元可采用結(jié)構(gòu)化程序設(shè)計(jì)方法,有三種基本的程序結(jié)構(gòu),分別為: 順序 、 選擇 和 循環(huán) 。通過(guò)本單元的學(xué)習(xí),應(yīng)該掌握C語(yǔ)言程序設(shè)計(jì)所需要的基本知識(shí),為后續(xù)內(nèi)容的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。單元練習(xí)一選擇題 1在C語(yǔ)言中,int、short、char三種類型數(shù)據(jù)所占用的存儲(chǔ)空間是(c )。A均為2個(gè)字節(jié)    Bint和short占2個(gè)字節(jié),char占1個(gè)字節(jié)C與編譯環(huán)境有關(guān)   D由用戶自己定義  2下面定義字符型變量c

9、h的語(yǔ)句不正確的是(b )。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)的小寫字母的語(yǔ)句是(d )。Ac= (c-'A')%26+'a'    Bc2=tolower(c);Cc= c-'A'+'a'   Dc=('A'

10、;+c)%26-'a'  4設(shè)有定義:double d,h;,其中d為三角形的底邊長(zhǎng),h為三角形的高,則以下C語(yǔ)言表達(dá)式與其面積公式dh計(jì)算結(jié)果不相符的是(b )。Ad*h/2    B1/2*d*hCd*h*1/2Dd/2*h  5以下選項(xiàng)中,與k=n+;完全等價(jià)的語(yǔ)句是(a )。Ak=n;n=n+1;    Bn=n+1;k=n;Ck=+n;Dk+=n+1;二填空題1寫出整型變量a、無(wú)符號(hào)長(zhǎng)整型變量b、雙精度浮點(diǎn)型變量c和字符型變量d的定義語(yǔ)句: 。2 常量a和”a”分別占用_1_個(gè)字節(jié)和_2_

11、個(gè)字節(jié)的存儲(chǔ)空間。'a'的意義是字符型常量a,而"a"的意義是字符串常量a,默認(rèn)后面還有個(gè)'0'作為字符串的結(jié)束符,此常量占倆個(gè)字符空間,兩者的區(qū)別就在于數(shù)據(jù)類型不同,前者是字符常量(char),在計(jì)算機(jī)內(nèi)存中占用一個(gè)字符空間,后者是字符串常量(string),在計(jì)算機(jī)內(nèi)存中占用倆個(gè)字符空間。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;語(yǔ)句后,x的

12、值是_6_。X=X+X,X=X-(X-3)6將一個(gè)浮點(diǎn)型變量n四舍五入精確到小數(shù)點(diǎn)后兩位,其表達(dá)式為: 。7C語(yǔ)言中基本的數(shù)據(jù)類型有 、 、 。8結(jié)構(gòu)化程序設(shè)計(jì)中基本的程序結(jié)構(gòu)有 、 、 。*習(xí)題答案:一選擇題1C2B3D4B5A二填空題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)*單元三 順序結(jié)構(gòu)程序設(shè)計(jì)單元總結(jié)提升本單元中,核心內(nèi)容是順序程序結(jié)構(gòu)程序設(shè)計(jì)中標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)的使用。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1C語(yǔ)言提供了標(biāo)準(zhǔn)

13、輸入輸出庫(kù)函數(shù)用于實(shí)現(xiàn)數(shù)據(jù)輸入輸出操作,其對(duì)應(yīng)的頭文件為 stdio.h 。2單字符輸入和輸出函數(shù)分別為 getchar() 和 putchar() 。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

14、.n 形式的附加格式說(shuō)明小數(shù)的寬度和小數(shù)位數(shù)。6格式化輸入中的輸入項(xiàng)為地址列表,對(duì)變量取地址的運(yùn)算符為 & 。通過(guò)本單元的學(xué)習(xí),應(yīng)對(duì)順序結(jié)構(gòu)程序設(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&#

15、160;  D輸出格式控制說(shuō)明的域?qū)挷粔?,不能輸?#160; 2. 有以下程序,程序運(yùn)行時(shí)輸入:1,2,3<回車>,則輸出的結(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.下面輸入語(yǔ)句中,正確的是( )。Ascanf("a=b=%d",&am

16、p;a,&b);  Bscanf("%d,%d",&a,&b); Cscanf("%c",c);   Dscanf("%d %dn",&f1,f2); 4在VC+6.0環(huán)境中,下列說(shuō)法正確的是( )。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()中單精度或雙精

17、度浮點(diǎn)型數(shù)據(jù)都要用%f作為格式控制符。5下面程序的功能是實(shí)現(xiàn)兩個(gè)字符變量互換值,若為ch1輸入a,ch2輸入b,則程序運(yùn)行時(shí)正確的輸入是( )。#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.有語(yǔ)句putc

18、har(getchar(),程序運(yùn)行時(shí)輸入:A,則輸出結(jié)果是_。2printf("%6.2f%",1.0/3);的輸出結(jié)果是_。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()

19、;n1=ch1-0; n2=n1*10+(ch2-0); printf("n1=%d,n2=%d.n",n1,n2); 5. 輸入多個(gè)非字符型的數(shù)值數(shù)據(jù)時(shí),數(shù)據(jù)輸入時(shí)可用 、 和 作為間隔符。*習(xí)題答案:一選擇題1A2D3B4A5C二填空題1.A2.0.33%3.n1=%04dnn2=%04d4.n1=1,n2=125.空格,TAB鍵,回車*單元四 選擇結(jié)構(gòu)程序設(shè)計(jì)單元總結(jié)提升在選擇結(jié)構(gòu)程序設(shè)計(jì)中,條件判斷表達(dá)式和選擇結(jié)構(gòu)實(shí)現(xiàn)語(yǔ)句是兩個(gè)核心內(nèi)容。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1條件判斷表達(dá)式由關(guān)系運(yùn)算符及其表達(dá)式、邏輯運(yùn)算符及其表達(dá)式構(gòu)成,其中:(1) 關(guān)系運(yùn)算符有: &

20、gt; 、 < 、 >= 、 <= 、 !=、 = (2) 邏輯運(yùn)算符有: &&、|、 ! 2選擇結(jié)構(gòu)實(shí)現(xiàn)語(yǔ)句有三種方式:(1) 單分支if選擇結(jié)構(gòu),一般格式為: if ( 表達(dá)式 ) 語(yǔ)句;(2) 雙分支if-else選擇結(jié)構(gòu),一般格式為:if ( 表達(dá)式 ) 語(yǔ)句1; else 語(yǔ)句2;(3) 多分支 switch選擇結(jié)構(gòu),一般格式為:switch( 表達(dá)式 ) case 常量表達(dá)式1: 語(yǔ)句序列1; break; case 常量表達(dá)式2: 語(yǔ)句序列2; break; case 常量表達(dá)式n: 語(yǔ)句序列n; break; default: 語(yǔ)句序列n+1;

21、 3在應(yīng)用選擇結(jié)構(gòu)時(shí),應(yīng)注意以下問(wèn)題:(1)在if嵌套語(yǔ)句中,要弄清e(cuò)lse與if的匹配關(guān)系,書寫if語(yǔ)句嵌套時(shí)一般采用縮進(jìn)的階梯式寫法,在實(shí)際編程中,為了表明編程者的意圖,也常常通過(guò)“”來(lái)強(qiáng)制if和else的配對(duì)關(guān)系。(2)switch語(yǔ)句中,“表達(dá)式”和“常量表達(dá)式”的類型只能是整型或字符型數(shù)據(jù),且“常量表達(dá)式”只能由常量構(gòu)成,通過(guò)“表達(dá)式”與“常量表達(dá)式”之間的對(duì)等關(guān)系構(gòu)造出多分支選擇結(jié)構(gòu)。(3)在某些多分支選擇結(jié)構(gòu)程序設(shè)計(jì)中,既可使用if-else語(yǔ)句實(shí)現(xiàn),也可以使用switch語(yǔ)句實(shí)現(xiàn)。switch語(yǔ)句與if語(yǔ)句的不同之處在于:switch語(yǔ)句僅能判斷一種邏輯關(guān)系,即“表達(dá)式”和指定

22、“常量表達(dá)式”的值是否相等,而不能進(jìn)行大于,小于某一個(gè)值的判斷,不能表達(dá)區(qū)間數(shù)據(jù)的概念;if語(yǔ)句可以計(jì)算和判斷各種表達(dá)式。所以switch語(yǔ)句不能完全替代if語(yǔ)句??傊?,通過(guò)本單元的學(xué)習(xí),應(yīng)該掌握C語(yǔ)言選擇結(jié)構(gòu)程序設(shè)計(jì)的思路和語(yǔ)句的基本用法。單元練習(xí)一選擇題1以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式( )。Ax%2=1     Bx/2      Cx%2!=0    Dx%2=0 2在C語(yǔ)言中,if語(yǔ)句后的一對(duì)圓括號(hào)中有一個(gè)用以決定分支走向的表達(dá)式,該表達(dá)式( )。

23、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下列語(yǔ)句將小寫字母轉(zhuǎn)化為大寫字母,正確的語(yǔ)句為( )。Aif(z>=ch>=a) ch=ch-32;Bif(ch>=a&&ch<=z) ch=ch-32;Cch=(z>=ch>=a)?ch-32:ch;Dch=

24、( ch>=a&&ch<=z)?ch:ch-32;5關(guān)于與switch語(yǔ)句配套的case語(yǔ)句中所使用的表達(dá)式,說(shuō)法正確的是( )。A可以是變量 B可以是常量或變量C只能是常量或常量表達(dá)式D無(wú)論是何種表達(dá)式,只要在執(zhí)行時(shí)有確定的值就行二填空題1在算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和賦值運(yùn)算符中,運(yùn)算優(yōu)先級(jí)最高的運(yùn)算符是 ,最低的是 。2正確表示數(shù)學(xué)關(guān)系“1<a<4”的C語(yǔ)言表達(dá)式為_。3整型變量n不能被3整除的條件判斷表達(dá)式為 。 4以下程序段的功能是:對(duì)輸入的大寫字母循環(huán)移動(dòng)6個(gè)位置后輸出,如A變?yōu)镚,W變?yōu)镃。請(qǐng)將程序段補(bǔ)充完整。char ch;ch=

25、 ;if(ch>=A&& ) else if( ) putchar(ch);5以下程序段功能是根據(jù)學(xué)生考試成績(jī),確定其成績(jī)等級(jí),成績(jī)與等級(jí)對(duì)應(yīng)情況與【例4-7】中表格相同,請(qǐng)將程序段補(bǔ)充完整。char level; /成績(jī)等級(jí)float score; /考試成績(jī)scanf(“%f”,&score);switch( ) :level=A; ;case 8: level=B;break;case 7: level=C; break;case 6: level=D; break;default: ; printf(“考試成績(jī)等級(jí)為: .”,level);*習(xí)題答案:一選

26、擇題1D2D3C4B5C二填空題1!(非) =2a>1&&a<43n%3!=04 char ch;ch= getchar() ;if(ch>=A&& ch<='T' ) ch=ch+6; else if(ch>='U'&&ch<='Z' ) ch=ch-20; putchar(ch);5char level; /成績(jī)等級(jí)float score; /考試成績(jī)scanf(“%f”,&score);switch(int(score/10) ) case 10:

27、case 9 :level=A; break ;case 8: level=B;break;case 7: level=C; break;case 6: level=D; break;default: level='E' ; *單元五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)單元總結(jié)提升在本單元中,如何理解循環(huán)的本質(zhì)、如何分析循環(huán)的三個(gè)要素以及如何描述循環(huán)結(jié)構(gòu)語(yǔ)句是核心內(nèi)容。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1 循環(huán)的本質(zhì)是將程序員從大量重復(fù)編寫相同代碼的工作中解放出來(lái),減少程序源代碼的存儲(chǔ)空間,提高程序的質(zhì)量,提高程序編寫的工作效率,但計(jì)算機(jī)執(zhí)行程序的工作量并沒有減少。2 循環(huán)結(jié)構(gòu)的三要素包括:(1)

28、循環(huán)變量初值 (2)循環(huán)控制條件表達(dá)式(3)循環(huán)體 3循環(huán)結(jié)構(gòu)描述語(yǔ)句有三種: while 、 do-while 和 for 。其中while和do-while的區(qū)別在于 不管循環(huán)條件是否成立,do-while循環(huán)都先執(zhí)行一次循環(huán)體,所以do-while循環(huán)的循環(huán)體至少執(zhí)行一次,而while循環(huán)的循環(huán)體可能一次都不執(zhí)行 。4循環(huán)結(jié)構(gòu)控制語(yǔ)句break的作用是: 結(jié)束循環(huán) ;循環(huán)結(jié)構(gòu)控制語(yǔ)句continue的作用是: 提前結(jié)束本次循環(huán) 。5在一個(gè)循環(huán)結(jié)構(gòu)語(yǔ)句中又包含了一個(gè)循環(huán)結(jié)構(gòu)語(yǔ)句稱之為 循環(huán)的嵌套 。程序執(zhí)行時(shí),外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)就要完整的執(zhí)行完,直至內(nèi)層循環(huán)執(zhí)行結(jié)束,再開始執(zhí)行下

29、一次外層循環(huán)。學(xué)習(xí)完本單元,應(yīng)該掌握C語(yǔ)言循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的思路和基本語(yǔ)句的用法。至此,我們就學(xué)完了結(jié)構(gòu)化程序設(shè)計(jì)中的三種基本結(jié)構(gòu):順序、選擇和循環(huán)。單元練習(xí)一選擇題1下面說(shuō)法正確的是( )。Awhile語(yǔ)句不管條件表達(dá)式是否為真,都將執(zhí)行一次循環(huán)體。Bdo-while語(yǔ)句構(gòu)成的循環(huán),一定要有能使while后面表達(dá)式的值為0的操作,或在循環(huán)體中使用break語(yǔ)句。Cfor循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語(yǔ)句,后判斷條件表達(dá)式。Dbreak語(yǔ)句的作用是從最近的循環(huán)體內(nèi)跳出來(lái),而continue語(yǔ)句的作用是繼續(xù)執(zhí)行循環(huán)體中尚未執(zhí)行的語(yǔ)句。 2 對(duì)for(表達(dá)式1;表達(dá)式3),可理解為

30、( )。Afor(表達(dá)式1;0;表達(dá)式3)Bfor(表達(dá)式1;1;表達(dá)式3)C語(yǔ)法錯(cuò)誤D僅執(zhí)行循環(huán)一次3 以下程序的功能為( )。 #include <stdio.h>void main() int i,k=0; for(i=1;i<10;i+=2) k+=i+1; printf("%dn",k); A計(jì)算自然數(shù)19的累加和 B計(jì)算自然數(shù)110的偶數(shù)之和C計(jì)算自然數(shù)19的奇數(shù)之和 D計(jì)算自然數(shù)110的累加和4以下能正確計(jì)算1*2*3*4*5*6*7*8*9*10的程序段是( )。Adoi=1;s=1; Bdoi=1;s=0; s=s*i; s=s*i; i

31、+; i+; while(i<=10); while(i<=10);Ci=1;s=1; Di=1;s=0;do do s=s*i; s=s*i; i+; i+; while(i<=10); while(i<=10);5有以下程序段 int k=0; while(k=1) k+; while循環(huán)執(zhí)行的次數(shù)是( )。A無(wú)限次 B1次C語(yǔ)法錯(cuò)誤,不能執(zhí)行D一次也不執(zhí)行二填空題1若輸入字符串:abcde<回車>,則以下while循環(huán)體將執(zhí)行 次。 while(ch=getchar()=e) printf("*");2以下程序執(zhí)行后的輸出結(jié)果是 。

32、 #include <stdio.h>void main() int i; for(i=0;i<3;i+) switch(i) case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); 3下面程序的功能是:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?#include <stdio.h>void main() int i,j; for(i=0; ;i+) j=i*10+6; if( ) continue;

33、printf("%dn",j); 4有以下程序 #include <stdio.h>void main() int x=23; do printf("%d",x-);while(!x); 該程序執(zhí)行的結(jié)果為 。5以下程序的功能是計(jì)算1-3+5-7+-99+101的值,請(qǐng)將程序補(bǔ)充完整。 #include <stdio.h>void main() int i,t=1,s=0; for(i=1;i<=101;i+=2) s=s+ ; ; printf("%dn",s); *習(xí)題答案:一選擇題1B2B3B4C5

34、A二填空題1020111223i<10 j%3!=04235i*t t=-t*單元六 數(shù)組的使用單元總結(jié)提升在本單元中,如何定義一維、二維數(shù)組、如何操作數(shù)組以及如何利用字符數(shù)組處理字符串是核心內(nèi)容。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1 數(shù)組是一組相同類型的有序數(shù)據(jù)的集合。數(shù)組要先定義后使用,可以在定義時(shí)初始化,每個(gè)數(shù)組元素相當(dāng)于同類型的變量,使用數(shù)組名和下標(biāo)來(lái)唯一確定數(shù)組中的元素。2 一維數(shù)組定義的一般格式為: 類型標(biāo)識(shí)符 數(shù)組名整型常量表達(dá)式; ,對(duì)于已定義好的一維數(shù)組C編譯系統(tǒng)會(huì)分配連續(xù)的存儲(chǔ)空間, 數(shù)組名 代表數(shù)組在內(nèi)存中存放的首地址。一維數(shù)組的引用方法為: 數(shù)組名下標(biāo) ,其中下標(biāo)從

35、 0 開始。3 二維數(shù)組定義的一般格式為: 類型標(biāo)識(shí)符 數(shù)組名整型常量表達(dá)式1 整型常量表達(dá)式2; ,對(duì)于已定義好的二維數(shù)組C編譯系統(tǒng)會(huì)分配連續(xù)的存儲(chǔ)空間,將二維數(shù)組元素按 行 依次存儲(chǔ)。二維數(shù)組元素的訪問(wèn)涉及第一維和第二維兩個(gè)下標(biāo),其引用方法為: 數(shù)組名下標(biāo)1下標(biāo)2 。4 字符數(shù)組是一組字符型數(shù)據(jù)的有序集合,其中每個(gè)數(shù)組元素的值都是字符。C語(yǔ)言用字符數(shù)組實(shí)現(xiàn)字符串變量,字符串以 0 作為結(jié)束標(biāo)志。字符串的輸入可以通過(guò) gets() 、 scanf() 函數(shù)實(shí)現(xiàn),字符串的輸出可以通過(guò) puts() 、 printf() 函數(shù)實(shí)現(xiàn)。常見的字符串操作庫(kù)函數(shù)有:求字符串長(zhǎng)度函數(shù) strlen() 、

36、字符串復(fù)制函數(shù) strcpy() 、字符串連接函數(shù) strcat() 、字符串比較函數(shù) strcmp(),這些庫(kù)函數(shù)的定義都在頭文件 string.h 中。常見的字符庫(kù)函數(shù)的定義都在頭文件 ctype.h 中。5 數(shù)組的操作通常離不開循環(huán)結(jié)構(gòu),在使用循環(huán)結(jié)構(gòu)操作數(shù)組時(shí)應(yīng)注意下標(biāo)的變化規(guī)律。通過(guò)本單元的學(xué)習(xí),應(yīng)該掌握C語(yǔ)言中對(duì)于數(shù)組這一構(gòu)造數(shù)據(jù)類型的使用方法和操作方法。單元練習(xí)一選擇題1定義一個(gè)名為s的字符型數(shù)組,并且賦初值為字符串"123"的錯(cuò)誤語(yǔ)句是( )。 Achar s=1','2','3','0&#

37、160;';  Bchar s="123"; Cchar s="123n"            Dchar s4='1','2','3';  2下列數(shù)組定義語(yǔ)句中,正確的是()Aint a=1,2,3,4,5,6;Bchar a23=a',b'Cint a3=1,2,3,4,5,6;Dint a

38、=1,2,3,4,5,6;3已定義 int a3=1,2,3,4,5,6,7,8,9;,則a12的初值為( )。A2B4C6D84判斷字符串str1是否大于字符串str2,應(yīng)當(dāng)使用( )。Aif(str1>str2)Bif(strcmp(str1,str2)<0)Cif(strcmp(str2,str1)>0)Dif(strcmp(str1,str2)>0)5下列程序段的功能是給數(shù)組所有的元素輸入數(shù)據(jù),然后輸出,請(qǐng)選擇正確答案填空( )。#include <stdio.h>void main() int a10,i=0; while(i<10)scan

39、f("%d", ); for(i=0;i<10;i+) printf("%4d",ai);A a+(i+) B&ai+1 Ca+i D&a+i二填空題1定義一個(gè)名為a的單精度浮點(diǎn)型一維數(shù)組,數(shù)組的長(zhǎng)度為4,所有元素的初值均為0,定義語(yǔ)句為 ,引用該數(shù)組元素時(shí),下標(biāo)的范圍是 ,該數(shù)組占用的存儲(chǔ)空間為 字節(jié)。2設(shè)有數(shù)據(jù)定義語(yǔ)句int i=3,x4=1,2,3;,則數(shù)組元素xi 的值是 。3下列程序的功能是讀取10個(gè)實(shí)數(shù),然后依次輸出前1個(gè)實(shí)數(shù)和、前2個(gè)實(shí)數(shù)和、.、前9個(gè)實(shí)數(shù)和、前10個(gè)實(shí)數(shù)和。請(qǐng)將程序補(bǔ)充完整。#include

40、 <stdio.h>void main() float f10,x=0; int i; for(i=0;i<10;i+) scanf("%f",&fi); for(i=0;i<10;i+) ; printf("sum of No.%2d is %.2f.n",i,x); 4下列程序的功能是求兩個(gè)矩陣的和,請(qǐng)將程序補(bǔ)充完整。#include <stdio.h>void main() int a34,b34,c34; /數(shù)組c存放矩陣a與b的和 int i,j; for(i=0;i<3;i+) for(j=0

41、;j<4;j+) scanf("%d",&aij); for(i=0;i<3;i+) for(j=0;j<4;j+) scanf("%d", ); ; for(i=0;i<3;i+) for(j=0;j<4;j+)printf("%d ",cij); putchar('n'); 5閱讀下列程序,程序運(yùn)行后的輸出結(jié)果是 。#include <stdio.h>#include <string.h>void main() char s320=“1234”,”234

42、567”,”6789”; int i,k;for(k=0,i=1;i<3;i+)if(strcmp(sk,si)<0) k=i;puts(sk);*習(xí)題答案:一選擇題1C2C3C4D5A二填空題1float a4=0 0至3 16203x+=fi;或x=x+fi;4&bij cij=aij+bij 56789*單元七 函數(shù)的使用單元總結(jié)提升在本單元中,如何使用自定義函數(shù)是核心內(nèi)容。通過(guò)本單元的學(xué)習(xí),我們應(yīng)該知道:1 函數(shù)是構(gòu)成C程序的基本單位,函數(shù)的使用為模塊化程序設(shè)計(jì)奠定了基礎(chǔ)。從用戶使用的角度,函數(shù)分為 庫(kù) 函數(shù)、 自定義 函數(shù)兩種。2 庫(kù)函數(shù)的使用包括 頭文件包含 和

43、 庫(kù)函數(shù)調(diào)用 兩個(gè)環(huán)節(jié);用戶自定義函數(shù)的使用包括 函數(shù)聲明 、 函數(shù)定義 和 函數(shù)調(diào)用 三個(gè)環(huán)節(jié)。3 從函數(shù)的外觀形式看,函數(shù)分為 有參 函數(shù)、 無(wú)參 函數(shù)兩種。當(dāng)主調(diào)函數(shù)調(diào)用無(wú)參 函數(shù)時(shí),不需要向這些函數(shù)傳遞參數(shù);當(dāng)主調(diào)函數(shù)調(diào)用 有參 函數(shù)時(shí),需要傳遞參數(shù)。4 用戶自定義函數(shù)的一般形式為:函數(shù)返回值類型 函數(shù)名(形式參數(shù)列表) /函數(shù)首部 函數(shù)體;其中第一行稱為 函數(shù)首部 ,大括號(hào)“”括起來(lái)的部分稱為 函數(shù)體 ,對(duì)于有返回值的函數(shù),函數(shù)體中要包括 return 語(yǔ)句。5函數(shù)首部也稱為函數(shù)原型,用函數(shù)原型聲明函數(shù)時(shí),形參名可以省略不寫,而只寫形參的類型,但形參的 類型 和 數(shù)量 必須與函數(shù)首部

44、保持一致。6函數(shù)要先聲明,然后才能使用,函數(shù)聲明在程序中的位置有以下幾種情況:(1)函數(shù)聲明寫在主調(diào)函數(shù)的外部,這時(shí)的函數(shù)聲明為全局聲明。(2)函數(shù)聲明寫在主調(diào)函數(shù)的說(shuō)明語(yǔ)句中,這時(shí)的函數(shù)聲明為局部聲明。(3)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則函數(shù)聲明可以省略。 7函數(shù)的調(diào)用形式為:函數(shù)名(實(shí)際參數(shù)列表)。若調(diào)用無(wú)參函數(shù),則實(shí)參為空;若調(diào)用有參函數(shù),則在()內(nèi)寫出與形參類型、數(shù)量一致的實(shí)參。對(duì)于有參函數(shù),函數(shù)調(diào)用過(guò)程中存在著參數(shù)傳遞的問(wèn)題,參數(shù)傳遞有兩種情況,其一為 值傳遞,其二為 地址傳遞。8函數(shù)在函數(shù)體中出現(xiàn)了對(duì)自身調(diào)用的語(yǔ)句,就稱為函數(shù)遞歸調(diào)用。使用遞歸方法解決問(wèn)題的關(guān)鍵是如何找出 遞歸關(guān)

45、系 ,以及找出遞歸調(diào)用的 終止條件 。9帶參宏定義的一般形式為: #define 宏名(形參列表) 字符串 。通常用帶參數(shù)的宏定義代替簡(jiǎn)單公式型函數(shù)。10函數(shù)的存儲(chǔ)類型有static和extern兩種。 extern 型函數(shù)稱為“外部函數(shù)”,可以被其他編譯單位中的函數(shù)調(diào)用; static 型函數(shù)稱為“內(nèi)部函數(shù)”,只能被本編譯單位的函數(shù)調(diào)用。11程序中變量的使用范圍稱為變量的作用域,每個(gè)變量都有自己的作用域。按照作用域的范圍可分為兩種: 局部變量 和 全局變量 。12變量的存儲(chǔ)方式可分為“動(dòng)態(tài)存儲(chǔ)”和“靜態(tài)存儲(chǔ)”兩種。動(dòng)態(tài)存儲(chǔ)變量包括 auto 和 regiest 兩種類型;靜態(tài)存儲(chǔ)變量包括 s

46、tatic 和 extern 兩種類型。靜態(tài)存儲(chǔ)變量若沒有初始化,則默認(rèn)初始值為 0 。static類型變量的值具有繼承性,即本次調(diào)用的初值是上次調(diào)用結(jié)束時(shí)變量的值。單元練習(xí)一選擇題1關(guān)于使用函數(shù)的目的,以下不正確的說(shuō)法是( )。A提高程序的執(zhí)行效率B提高程序的開發(fā)效率C減少程序文件所占內(nèi)存D提高程序可讀性2以下正確的函數(shù)首部是( )。Avoid fun(int x,int y)Bvoid fun(int x;int y)Cvoid fun(int x,y)Dvoid fun(x,y)3設(shè)函數(shù)fun的定義形式為:void fun(char ch, float x) . 則以下對(duì)函數(shù)fun的調(diào)用

47、正確的是( )。Afun("abc",3.0);Bt=fun('D',12.3);Cfun('65',3.7);Dfun(65,65);4關(guān)于函數(shù)的實(shí)參和形參,以下正確的說(shuō)法是( )。A實(shí)參和對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元B實(shí)參和對(duì)應(yīng)的形參共同占用同一存儲(chǔ)單元C只有當(dāng)實(shí)參與形參重名時(shí)才共同占用存儲(chǔ)單元D形參是虛擬的,不占用存儲(chǔ)單元5當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳遞的是( )。A數(shù)組的長(zhǎng)度B數(shù)組的首地址C數(shù)組的每一個(gè)元素的地址D數(shù)組的每一個(gè)元素的值6將一個(gè)函數(shù)指定為static存儲(chǔ)類別后,該函數(shù)將( )。A既可以被同一源文件中的函數(shù)調(diào)用,也可以被其他源文件中的函數(shù)調(diào)用B只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用C只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用D

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論