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

下載本文檔

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

文檔簡介

《C語言程序設(shè)計》單元總結(jié)與練為題

答案

單元一程序設(shè)計宏觀認(rèn)識

單元總結(jié)提升

本單元中,核心內(nèi)容有C語言程序框架結(jié)構(gòu)、程序的構(gòu)成和程序開發(fā)過程。通過本單元

的學(xué)習(xí),我們應(yīng)該知道:

I.c語言程序最基本的程序框架由兩部分構(gòu)成,分別是:

(1)編譯預(yù)處理

(2)函數(shù)組

2.C程序最大的特點就是所有的程序都是用函數(shù)來裝配的,函數(shù)是構(gòu)成C語言程序的基

本單位,函數(shù)包括主函數(shù)、庫函數(shù)和自定義函數(shù)。函數(shù)的一般結(jié)構(gòu)形式為:

函數(shù)返回值類型函數(shù)名(形式參數(shù))〃函數(shù)首部

(說明語句:〃函數(shù)體

可執(zhí)行語句:

標(biāo)識符是用來標(biāo)識程序中的某個對象名字的字符序列。C語言把標(biāo)識符分為三類,即關(guān)

鍵字、預(yù)定義標(biāo)識符、用戶自定義標(biāo)識符。對于用戶自定義標(biāo)識符的命名C語言規(guī)定:

(1)所有的用戶標(biāo)識符必須先定義后使用;

(2)用戶標(biāo)識符由字母(A~Z,a~z)、數(shù)字(0~9)、下劃線組成,并且首字符不

能是數(shù)字;

(3)區(qū)分大小寫;

(4)不能用關(guān)鍵字作為用戶自定義標(biāo)識符,通常不使用預(yù)定義標(biāo)識符作為用戶自定義

標(biāo)識符。

4.理論上講,程序開發(fā)過程分為四個步驟,分別為:

(1)編輯源程序____________________________________________

(2)編譯源程序,生成目標(biāo)程序

(3)連接目標(biāo)程序及其相關(guān)模塊,生成可執(zhí)行文件

(4)運行可執(zhí)行文件_______________________________________

5.簡單描述使用VC++6.0開發(fā)應(yīng)用程序的步驟:

如圖所示:

總之,通過本單元的學(xué)習(xí),應(yīng)該掌握c語言程序框架結(jié)構(gòu)和程序開發(fā)過程,還要對C語言程

序設(shè)計的知識脈絡(luò)有一定的了解。

單元練習(xí)

一.選擇題

I.構(gòu)成C語言程序的基本單位是(c

A.框架B.預(yù)處理C.函數(shù)D.語句

2.在程序開發(fā)過程中,把文本文件格式源程序轉(zhuǎn)化為二進制格式的目標(biāo)程序的過程稱之為

(b)。

A.編輯B.編譯C.連接D.運行

3.關(guān)于主函數(shù),下列說法不正確的是(c)。

A,一個完整的C語言應(yīng)用程序有啡一的主函數(shù)

B.主函數(shù)的名稱只能是main

C.主函數(shù)可以被其他自定義函數(shù)調(diào)用

D.C語言程序的運行從主函數(shù)開始,以主函數(shù)為核心展開

4.關(guān)于標(biāo)識符,下列說法不正確的是(c)。

A.庫函數(shù)名稱為預(yù)定義標(biāo)識符,不建議用作用戶自定義標(biāo)識符

B.關(guān)鍵字不能作為用戶自定義標(biāo)識符

C.用戶自定義標(biāo)識符中不區(qū)分大小寫字母

D.標(biāo)識符中可以出現(xiàn)下劃線,且可以出現(xiàn)在標(biāo)識符的任意位置

5.以下可用作用戶自定義標(biāo)識符的一組是(c)。

A.void、returnifB.printf、include,fabs

C.Max、_abc>MainD.2abc、pay$、sum-10

二.填空題

1.C語言程序一般由若干個函數(shù)構(gòu)成,程序中應(yīng)至少包含一個其名稱只能為

_______________________O

2.C語言程序中每條語句必須以結(jié)束。

3.C語言程序的注釋是以開頭,以結(jié)束的,在VC++6.0編程環(huán)境中,可使

用作為注釋的起始標(biāo)識,注釋對程序的執(zhí)行不起任何作用。

4.最初編寫的C語言程序稱為,其擴展名為,編譯后生成的文件為

,其擴展名是,連接后生成的文件是其擴展名是

5.C語言規(guī)定,標(biāo)識符只能由、和三種字符組成,而且,首字

符只能是或。

習(xí)題答案:

一.選擇題

1.C2.B3.C4.C5.C

二.填空題

1.主函數(shù)main

2.分號;

3./**///

4.源程序.cpp或.c目標(biāo)文件(或目標(biāo)程序).obj可執(zhí)行文件(或可執(zhí)行程

序).exe

5.字母(A~Z,a~z)、數(shù)字(0-9).下劃線字母或下劃線

*******************************************************************************

單元二程序設(shè)計基礎(chǔ)和識

單元總結(jié)提升

本單元中,核心內(nèi)容有C語言中基本的數(shù)據(jù)類型、常量和變量、運算符和表達式以及算

法的概念。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1.C語言中最基本的數(shù)據(jù)類型有:整型、字符型、浮點型。

2.C程序中使用的常量按照表現(xiàn)形式可分為直接常量和符號常量。

(1)直接常量

1)整型常量,有十進制、八進制和十六進制三種芍述方式,其中,八進制的前置符號

標(biāo)志為0,十六進制的前置符號標(biāo)志為Ox或OXo

2)浮點型常量,有十進制小數(shù)和指數(shù)兩種描述方式,指數(shù)形式的符號標(biāo)志是e或

E。

3)字符型常量,是用單撇引號括起來的單一字符,對一些特殊字符和控制字符用

的形式表示。

4)字符串常量,是用雙撇引號括起來的一串字符序列.字符串的結(jié)束標(biāo)志為

,\0'O

(2)符號常量

符號常量是使用某個符號代表的常量,符號常量使用編譯預(yù)處理中的宏定義命令

定義。

3.C程序中使用變量,必須先定義,后使用。變骨定義后,系統(tǒng)會根據(jù)變量的類型分

配相應(yīng)的存儲空間。

4.C語言有豐富的運算符,其中算術(shù)運算符包括+、?、*、/、%,運算符中的%僅用于整

數(shù)間的運算:賦值運算符包括和相應(yīng)的復(fù)合賦值運算符+=、-=、*=、/=,賦值

運算的含義是將“『右側(cè)的表達式的計算結(jié)果賦值給“=”左側(cè)的變量,這與數(shù)學(xué)中“=”

的含義不同,需要注意。

5.由運算符和數(shù)據(jù)構(gòu)成表達式,若表達式中各數(shù)據(jù)的類型不同,則存在類型自動轉(zhuǎn)換

問題,必要時也可以使用強制類型轉(zhuǎn)換。

6.對于面向過程的程序設(shè)計來說,程序=數(shù)據(jù)結(jié)構(gòu)+算法。

7.在C語言中,對于每一個程序設(shè)計單元可采用結(jié)構(gòu)化程序設(shè)計方法,有三種基本的程序結(jié)

構(gòu),分別為:順序、選擇和循環(huán)。

通過本單元的學(xué)習(xí),應(yīng)該掌握C語言程序設(shè)計所需要的基本知識,為后續(xù)內(nèi)容的學(xué)習(xí)打下堅

實的基礎(chǔ)。

單元練習(xí)

一.選擇題

1.在C語言中,int、short,char三種類型數(shù)據(jù)所占用的存儲空間是(c)。

A.均為2個字節(jié)B.int和short占2個字節(jié),char占1個字節(jié)

C.與編譯環(huán)境有關(guān)D.由用戶自己定義

2.下面定義字符型變量ch的語句不正確的是(b)o

A.charch='\X2A';B.charch="c";

C.charch=65;D.charch=NULL;

3.已知大寫字母A的ASCII是65,小寫字母a的ASCII是97,以下不能將字符型變量

C中的大寫字母轉(zhuǎn)換成對應(yīng)的小寫字母的語句是(d)0

A.c=(c-'A')%26+'a';B.c2=tolowcr(c);

C.c=c-'A'+'a';D.c=('A,+c)%26-'a';

4.設(shè)有定義:doubled,h;,其中d為三角形的底邊長,h為三角形的高,則以下C語言表達式

與其面積公式dh計算結(jié)果不相符的是(b)O

A.d*h/2B.l/2*d*hC.d*h*l/2D.d/2*h

5.以下選項中,與k=n++;完全等價的語句是(a)。

A.k=n;n=n+l;B.n=n+l;k=n;C.k=++n;D.k+=n+l;

二.填空題

1.寫出整型變量a、無符號長整型變量b、雙精度浮點型變量c和字符型變量d的定義語句:

2.常量言和〃a”分別占用—1_個字節(jié)和_2_個字節(jié)的存儲空間。

H的意義是字符型常量a,而的意義是字符串常量a,默認(rèn)后面還有個'(T作為字符串的結(jié)

束符,此常量占倆個字符空間,兩者的區(qū)別就在于數(shù)據(jù)類型不同,前者是字符常量(char),在

計算機內(nèi)存中占用一個字符空間,后者是字符串常量(string),在計算機內(nèi)存中占用倆個字符

空間。

3.有定義inta=1234;,獲取其百位數(shù)碼的表達式為

4.若有定義:chara=97,c;,則表達式c='a'+8,3'的值為。

5.己知intx=6;,則執(zhí)行x+=x-=x-3;語句后,x的值是6。

X=X+X,X=X-(X-3)

6,將一個浮點型變量n四舍五入精確到小數(shù)點后兩位,其表達式為:

7.C語言中基本的數(shù)據(jù)類型有、、

8,結(jié)構(gòu)化程序設(shè)計中基本的程序結(jié)構(gòu)有、、

**********************************************************************

習(xí)題答案:

一.選擇題

1.C2.B3.D4.B5.A

二.填空題

1.inta;unsignedlongb;doublec;chard;

2.12

3.a/100%10

4.f

5.6

6.((int)(n*100+0.5))/100.0;

7.整型、浮點型、字符型

8.順序、選擇、循環(huán)

*******************************************************************************

單元三傾序結(jié)構(gòu)程序設(shè)計

單元總結(jié)提升

本單元中,核心內(nèi)容是順序程序結(jié)構(gòu)程序設(shè)計中標(biāo)準(zhǔn)輸入輸出庫函數(shù)的使用。通過本單

元的學(xué)習(xí),我們應(yīng)該知道:

I.C語言提供了標(biāo)準(zhǔn)輸入輸出庫函數(shù)用「實現(xiàn)數(shù)據(jù)輸入輸出操作,其對應(yīng)的頭文件為

stdio.ho

2.單字符輸入和輸出函數(shù)分別為getchar()和putchar()。

3.格式化輸入和輸出函數(shù)分別為scanff)和printf()。

4.格式化輸出函數(shù)有兩種調(diào)用格式:

(1)printf("寧符串常星”);

(2)printf(“格式控制字符串”,輸出項列表);

5.格式化輸入/輸出口,格式控制符由%開頭。常用的格式控制符有:整型int格式

符%d、float浮點型格式符%f、double浮點型格式符%lf、字符型格式符%c;

對于浮點型格式可以用m.n形式的附加格式說明小數(shù)的寬度和小數(shù)位數(shù)。

6,格式化輸入中的輸入項為地址列表,對變量取地址的運算符為&。

通過本單元的學(xué)習(xí),應(yīng)對順序結(jié)構(gòu)程序設(shè)計的特點和設(shè)計思路有所了解,同時重點學(xué)會單字

符輸入函數(shù)getchar()>單字符輸出函數(shù)putchar()x格式化輸出函數(shù)printR)和格式化輸入函數(shù)

scanf()的正確使用。

單元練習(xí)

一.選擇題

I.已定義x為float型變量,其值為213.45678,則printf("%-4.2f\n",x);的輸出結(jié)果為

()。

A.213.46B.213.45

C.-213.45D.輸出格式控制說明的域?qū)挷粔?,不能輸?/p>

2.有以下程序,程序運行時輸入:1,2,3〈回車〉,則輸出的結(jié)果為()。

Ainclude<stdio.h>

voidmain()

{inta,b,c;

scanf("%d%d%d",&a,&b,&c);

printf("a+b+c=%d\n",a+b+c);

)

A.6B.a+b+c=6C.123D.不確定的值

3.下面輸入語句中,正確的是()。

A.scanf("a=b=%d",&a,&b);B.scanf("%d,%d",&a,&b);

C.suanf("%c';c);D.suanfC^d%d\n",&fl.f2);

4.在VC++6.0環(huán)境中,下列說法正確的是()。

A.輸入函數(shù)scanf()輸入多個數(shù)據(jù)時,有時數(shù)據(jù)間不必加間隔符。

B.輸入函數(shù)scanf()中單精度或雙精度浮點型數(shù)據(jù)都要用%£作為格式控制符。

C.使用輸出函數(shù)primf()輸出字符或字符串都用格式控制符%s。

D.輸出函數(shù)printf()中單精度或雙精度浮點型數(shù)據(jù)都要用%£作為格式控制符。

5.下面程序的功能是實現(xiàn)兩個字符變量互換值,若為chi輸入a,ch2輸入b,則程序運

行時正確的輸入是()。

ttinclude<stdio.h>

voidmain()

{charchl,ch2,ch;

scanf("%c%c",&chl,&ch2);

ch=chl;chl=ch2;ch2=ch;

printf("chl=%c,ch2=%c\n",chl,ch2);

)

A.a,bB.a<空格>bC.abD.av回車〉b

二.填空題

1.有語句putchar(getchar()),程序運行時輸入:A,則輸出結(jié)果是°

2.printf(”%6.2f%%”,1.03);的輸出結(jié)果是。

3.補充程序:intnl=10,n2=20;printf("",nl,n2);

要求按以下格式輸出nl和n2的侑,每個輸出行從第一列開始。

nl=0010

n2=0020

4.有以下程序,程序運行時輸入:1234<|可車>,執(zhí)行后輸出的結(jié)果是

/include<stdio.h>

voidmain()

{charchi,ch2;

intnl,n2;

chl=getchar();

ch2=getchar();

nl=chl-'O';

n2=nl*10+(ch2-,0/);

printf("nl=%d,n2=%d.\n",nl,n2);

5.輸入多個非字符型的數(shù)值數(shù)據(jù)時,數(shù)據(jù)輸入時可用和作為

間隔符。

習(xí)題答案:

一.選擇題

1.A2.D3.B4.A5.C

二.填空題

1.A

2.0.33%

3.nl=%04d\nn2=%04d

4,nl=l,n2=12

5.空格,TAB鍵,【可車

*******************************************************************************

單元女)選擇結(jié)構(gòu)程序設(shè)計

單元總結(jié)提升

在選擇結(jié)構(gòu)程序設(shè)計中,條件判斷表達式和選擇結(jié)構(gòu)實現(xiàn)語句是兩個核心內(nèi)容。通過本單元

的學(xué)習(xí),我們應(yīng)該知道:

(1)1.條件判斷表達式由關(guān)系運算符及其表達式、邏輯運算符及其表達式構(gòu)成,其

中:

(2)關(guān)系運算符有:>、<、>=、<=、!=、==

邏輯運算符有:&&、||、!

2.選擇結(jié)構(gòu)實現(xiàn)語句有三種方式:

單分支if選擇結(jié)構(gòu):一般格式為:

if(表達式)

{語句;}

雙分支if-else選擇結(jié)構(gòu),一般格式為:

if(表達式)

{語句1;}

else

{語句2:}

多分支switch選擇結(jié)構(gòu),一般格式為:

switch(表達式)

{case常量表達式1:[語句序列1;][break;]

case常景表達式2:[語句序列2;J[break;]

case常量表達式n:[語句序列n;][break;]

default:語句序列n+1;

3.在應(yīng)用選擇結(jié)構(gòu)時,應(yīng)注意以下問題:

(1)在if嵌套語句中,要弄清else與if的匹配關(guān)系,書寫if語句嵌套時一般采用縮進

的階梯式寫法,在實際編程中,為了表明編程者的意圖,也常常通過“{}”來強制if和else

的配對關(guān)系。

(2)switch語句中,“表達式”和“常量表達式”的類型只能是整型或字符型數(shù)據(jù),且

“常量表達式”只能由常量構(gòu)成,通過“表達式”與“常量表達式”之間的對等關(guān)系構(gòu)造出

多分支選擇結(jié)構(gòu)。

(3)在某些多分支選擇結(jié)構(gòu)程序設(shè)計中,既可使用if-else語句實現(xiàn),也可以使用switch語句

實現(xiàn)。switch語句與if語勺的不同之處在于:switch語句僅能判斷一種邏輯關(guān)系,即“表達

式”和指定“常量表達式”的值是否相等,而不能進行大于,小于某一個值的判斷,不能表

達區(qū)間數(shù)據(jù)的概念:if語句可以計算和判斷各種表達式。所以switch語句不能完全替代if

語句。

總之,通過本單元的學(xué)習(xí),應(yīng)該掌握C語言選擇結(jié)構(gòu)程序設(shè)計的思路和語句的基本用法。

單元練習(xí)

一.選擇題

1.以下選項中,當(dāng)X為大于I的奇數(shù)時,值為。的表達式()o

A.x%2==lB.x/2C.x%2!=0D.x%2==0

2.在C語言中,if語句后的一對圓括號中有一個用以決定分支走向的表達式,該表達式

()O

A.只能是關(guān)系表達式B.只能是邏輯表達式

C.只能是關(guān)系或邏輯表達式D.可以是任何合法表達式

3.讀下面程序段,當(dāng)x=-3時,輸出y的值為()。

intx,y;

y=o;

scanf("%d”,&x);

if(x>=0)

if(x>0)y=l;

elsey=-l;

printf("y=%d",y);

A.1B.-lC.OD.不確定

4.下列語句將小寫字母轉(zhuǎn)化為大寫字母,正確的語句為()。

A.if('i>=ch>='a*)ch=ch-32;

B.if(ch>=,a*&&ch<=,z')ch=ch-32;

C.ch=(,z>=ch>=,a')?ch-32:ch;

D.ch=(ch>=,a'&&ch<='z')?ch:ch-32;

5.關(guān)于與switch語句配套的case語句中所使用的表達式,說法正確的是()。

A.可以是變量

B.可以是常量或變量

C.只能是常量或常量表達式

D.無論是何種表達式,只要在執(zhí)行時有確定的值就行

二.填空題

1.在算術(shù)運算符、關(guān)系運算符、邏輯運算符和賦值運算符中,運算優(yōu)先級最高的運算符

是,最低的是。

2.正確表示數(shù)學(xué)關(guān)系的C語言表達式為。

3.整型變量n不能被3整除的條件判斷表達式為。

4.以下程序段的功能是:對輸入的大寫字母循環(huán)移動6個位置后輸出,如'N變?yōu)?

G','W'變?yōu)?C'0請將程序段補充完整°

charch;

ch=;

if(ch>='A'&&)

elseif()

putchar(ch);

5.以下程序段功能是根據(jù)學(xué)生考試成績,確定其成績等級,成績與等級對應(yīng)情況與【例

4-7]中表格相同,請將程序段補充完整。

charlevel;〃成績等級

floatscore;〃考試成績

scanf(4<%f\&score);

switch()

{:level=,A';;

case8:level='B';break;

case7:Ievel='C';break;

case6:level='D';break;

default::

prinif(“考試成績等級為:Jevel);

*******************************************************************************

習(xí)題答案:

一.選擇題

1.D2.D3.C4.B5.C

二.填空題

1.!(非)=

2.a>l&&a<4

3.n%3!=0

4.charch;

ch=getcharQ;

if(ch>=/A,&&ch<=,T,)

ch=ch+6;

elseif(ch>=,U'&&ch<='Z,)

ch=ch-2O;

putchar(ch);

5.charlevel;〃成績等級

floatscore;〃考試成績

scanf(t4%f\&score);

switch(int(scorc/10))

{case10:case9:levcl='A';break;

case8:level='B':break;

case7:Ievel=,C,;break;

case6:Ievel='D';break;

default:leveh'E1;

**********************************************本*今******************************

單元五循環(huán)結(jié)構(gòu)程序設(shè)計

單元總結(jié)提升

1.在本單元中,如何理解循環(huán)的本質(zhì)、如何分析循環(huán)的三個要素以及如何描述循環(huán)結(jié)

構(gòu)語句是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

循環(huán)的木質(zhì)是將程序員從大量重復(fù)編寫相同代碼的工作中解放出來,減少程序源

代碼的存儲空間,提高程序的質(zhì)審,提高程序編寫的工作效率,但計算機執(zhí)行程序

的工作量并沒有減少。

循環(huán)結(jié)構(gòu)的三要素包括:

(1)循環(huán)變量初值

(2)循環(huán)控制條件表達式

(3)循環(huán)體

3.循環(huán)結(jié)構(gòu)描述語句有三種:while、do-while和for。

其中while和do-while的區(qū)別在于不管循環(huán)條件是否成Kdo-while循環(huán)都先執(zhí)行一次

循環(huán)體,所以do-while循環(huán)的循環(huán)體至少執(zhí)行一次,而while循環(huán)的循環(huán)體可能一次都

不執(zhí)行o

4.循環(huán)結(jié)構(gòu)控制語句break的作用是:結(jié)束循環(huán);

循環(huán)結(jié)構(gòu)控制語句continue的作用是:提前結(jié)束本次循環(huán)。

5.在一個循環(huán)結(jié)構(gòu)語句中又包含了一個循環(huán)結(jié)構(gòu)語句稱之為循環(huán)的嵌套。程序執(zhí)行時,

外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)就要完整的執(zhí)行完,直至內(nèi)層循環(huán)執(zhí)行結(jié)束,再開始執(zhí)行下

一次外層循環(huán)。

學(xué)習(xí)完本單元,應(yīng)該掌握C語言循環(huán)結(jié)構(gòu)程序設(shè)計的思路和基本語句的用法。至此,我們就

學(xué)完了結(jié)構(gòu)化程序設(shè)計中的三種基本結(jié)構(gòu):順序、選擇和循環(huán)。

單元練習(xí)

一.選擇題

1.下面說法正確的是()。

A.while語句不管條件表達式是否為真,都將執(zhí)行一次循環(huán)體。

B.do-while語句構(gòu)成的循環(huán),一定要有能使while后面表達式的值為。的操作,或在循環(huán)體

中使用break語句。

C.for循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語句,后判斷條件表達式。

D.break語句的作用是從最近的循環(huán)體內(nèi)跳出來,而continue語句的作用是繼續(xù)執(zhí)行循

環(huán)體中尚未執(zhí)行的語句。

2.對for(表達式1;;表達式3),可理解為()。

A.for(表達式1;0;表達式3)

B.for(表達式1;1;表達式3)

C.語法錯誤

D.僅執(zhí)行循環(huán)一次

3.以下程序的功能為()。

^include<stdio.h>

voidmain()

(

inti,k=0;

for(i=l;i<10;i+=2)

k+=i+l;

printt("%d\n",k);

A.計算自然數(shù)1?9的累加和B.計算自然數(shù)170的偶數(shù)之和

C.計算自然數(shù)1?9的奇數(shù)之和D.計算自然數(shù)170的累加和

4.以下能正確計算1*2*3*4*5*6*7*8*9*10的程序段是()。

A.do{i=l;s=l;B.do{i=l;s=0;

i++;i++;

}while(i<=10);)while(i<=10);

C.i=l;s=l;D.i=I;s=0;

do{do{

s=s*i;s=s*i;

i++;i++;

}while(i<=10);}while(i<=10);

5.有以下程序段

intk=0;

while(k=l)k++;

while循環(huán)執(zhí)行的次數(shù)是()。

A.無限次B.1次C.語法錯誤,不能執(zhí)行D.一次也不執(zhí)行

二.填空題

1.若輸入字符串:abede〈回車〉,則以下while循環(huán)體將執(zhí)行次。

while((ch=getchar())==,e,)printf("*");

2.以下程序執(zhí)行后的輸出結(jié)果是。

#include<stdio.h>

voidmain()

(

inti;

for(i=0;i<3;i++)

switch(i)

{case1:printf("%d",i);

case2:printf("%d",i);

default:printt("%cr,i);

}

)

3.卜面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

(

inti,j;

for(i=0;_______;i++)

{j=i*10+6;

if(________)continue;

printf("%d\n,,j);

)

)

4.有以下程序

ffinclude<stdio.h>

voidmain()

{intx-23;

do

{printf("%d",x-);

}while(!x);

)

該程序執(zhí)行的結(jié)果為。

5.以下程序的功能是計算1-3+5-7+…-99+101的值,請將程序補充完整。

#include<stdio.h>

voidmain()

(

inti,t=l,s=O;

for(i=l;i<=101;i+=2)

(

s=s+______;

printf("%d\n",s);

*******************************************************************************

習(xí)題答案:

一.選擇題

1.B2.B3.B4.C5.A

二.填空題

1.0

2.011122

3.i<10j%3!=0

4.23

5.i*tt=-t

*******************************************************************************

單元六數(shù)組的使用

單元總結(jié)提升

1.在本單元中,如何定義一維、二維數(shù)組、如何操作數(shù)組以及如何利用字符數(shù)組處理

字符串是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

2.數(shù)組是一組相同類型的有序數(shù)據(jù)的集合。數(shù)組要先定義后使用,可以在定義時初始

化,每個數(shù)組元素相當(dāng)「同類型的變量,使用數(shù)組名和下標(biāo)來唯一確定數(shù)組中的元

素。

3.一維數(shù)組定義的一般格式為:類型標(biāo)識符數(shù)組名[整型常量表達式,對于已定

義好的?維數(shù)組C編譯系統(tǒng)會分配連續(xù)的存儲空間,數(shù)組名代表數(shù)組在內(nèi)存中存

放的首地址。一維數(shù)組的引用方法為:數(shù)組名[下標(biāo)],其中下標(biāo)從0開始。

二維數(shù)組定義的一般格式為:類型標(biāo)識符數(shù)組名[整型常量表達式1][整型常量表

達式2];,對于已定義好的二維數(shù)組C編譯系統(tǒng)會分配連續(xù)的存儲空間,將二維數(shù)組元素按

行依次存儲。二維數(shù)組元素的訪問涉及第一維和第二維兩個下標(biāo),其引用方法為:數(shù)組

名[下標(biāo)1][下標(biāo)2]。

字符數(shù)組是一組字符型數(shù)據(jù)的有序集合,其中每個數(shù)組元素的值都是字符。C語言用字符數(shù)

組實現(xiàn)字符串變量,字符串以'\0'作為結(jié)束標(biāo)志。字符串的輸入可以通過gets:)、

scanf()函數(shù)實現(xiàn),字符串的輸出可以通過puts。、printf()函數(shù)實現(xiàn)。常見的字符串操

作庫函數(shù)有:求字符串長度函數(shù)strlen()、字符串復(fù)制函數(shù)strcpy(),字符串連接函數(shù)

strcat()字符串比較函數(shù)strcmp(),這些庫函數(shù)的定義都在頭文件string.h中。常見的

字符庫函數(shù)的定義都在頭文件ctype.h中。

數(shù)組的操作通常離不開循環(huán)結(jié)構(gòu),在使用循環(huán)結(jié)構(gòu)操作數(shù)組時應(yīng)注意下標(biāo)的變化規(guī)律。

通過本單元的學(xué)習(xí),應(yīng)該掌握C語言中對于數(shù)組這一構(gòu)造數(shù)據(jù)類型的使用方法和操作方法。

單元練習(xí)

一.選擇題

1.定義一個名為s的字符型數(shù)組,并且賦初值為字符串“123”的錯誤語句是()。

A.chars[]={A,,2,3J\0'};B.chars[]={"123"};

C.chars[]={"123\n"};D.chars[4]={T,2,3};

2.下列數(shù)組定義語句中,正確的是()

A.inta[][]={l,2,3A5,6);B.chara[2][3]='a:

C.inta[][3]={1,23,4,5,6);D.inta[][]={{1,2,3},{4,5,6}};

3.已定義int叫[3]={123,4,5,6,7,8,9};,則a⑴⑵的初值為()。

A.2B.4C.6D.8

4.判斷字符串strl是否大于字符串s(r2,應(yīng)當(dāng)使用()。

A.if(strl>str2)B.if(strcmp(strl,str2)<0)

C.if(strcmp(str2,strl)>0)D.if(strcmp(strl,str2)>0)

5.下列程序段的功能是給數(shù)組所有的元素輸入數(shù)據(jù),然后輸出,請選擇正確答案填空()。

#include<sldio.h>

voidmain()

(

inta[10],i=0;

while(i<10)

scanf("%d”,______________);

for(i=0;i<IO:i++)

printf("%4d",a[i]);

A.a+(i++)B.&ali+ljC.a+iD.&a[++i]

二.填空題

1.定義一個名為a的單精度浮點型一維數(shù)組,數(shù)組的長度為4,所有元素的初值均為0,定義

語句為,引用該數(shù)組元素時,下標(biāo)的范用是,

該數(shù)組占用的存儲空間為字節(jié)。

2.設(shè)有數(shù)據(jù)定義語句inti=3,x[4]={l,2,3};1則數(shù)組元素x[i]的值

是。

3.下列程序的功能是讀取10個實數(shù),然后依次輸出前1個實數(shù)和、前2個實數(shù)和、...、

前9個實數(shù)和、前10個實數(shù)和。請將程序補充完整。

#include<stdio.h>

voidmain()

{floatf[10],x=0;

inti;

for(i=0;i<10;i++)

scanf(M%f,,&f[i]);

for(i=0;i<10;i++)

printfC'suniofNo.%2dis%.2f.\n".i,x);

)

}

4,下列程序的功能是求兩個矩陣的和,請將程序補充完壑。

ttinclude<stdio.h>

voidmain()

{inta⑶⑷,b⑶⑷,c⑶⑷;〃數(shù)組c存放矩陣a與b的和

inti,j;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

for(i=0;i<3;i++)

torg=0;j<4;j++)

{scanf("%d",____________);

)

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

printf("%d",c(i][j));

putchar('\n');

)

)

5.閱讀下列程序,程序運行后的輸出結(jié)果是

#include<stdio.h>

#include<string.h>

voidmain()

{chars[3][20]={"1234","234567”,"6789”};

inti,k;

for(k=0,i=l;i<3;i++)

if(strcmp(s[k],s(i])<0)k-i;

puts(s[k]);

)

************************************************?******************************

習(xí)題答案:

一.選擇題

1.C2.C3.C4.D5.A

二.填空題

1.floata[4]={0}。至316

2.0

3.x+=f[i];或x=x+f[i];

4.&b[i][j]c[i][j]=a[i][j]+b[i][j]

5.6789

*******************************************************************************

單元七盛數(shù)的使用

單元總結(jié)提升

1.在本單元中,如何使用自定義函數(shù)是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

2.函數(shù)是構(gòu)成C程序的基本單位,函數(shù)的使用為模塊化程序設(shè)計奠定了基礎(chǔ)。從用戶

使用的角度,函數(shù)分為庫函數(shù)、自定義函數(shù)兩種。

3.庫函數(shù)的使用包括頭文件包含和庫函數(shù)調(diào)用兩個環(huán)節(jié):用戶自定義函數(shù)

的使用包括函數(shù)聲明、函數(shù)定義和函數(shù)調(diào)用三個環(huán)節(jié)。

4.從函數(shù)的外觀形式看,函數(shù)分為有參函數(shù)、無參函數(shù)兩種。當(dāng)主調(diào)函數(shù)調(diào)用無

參函數(shù)時,不需要向這些函數(shù)傳遞參數(shù);當(dāng)主調(diào)函數(shù)調(diào)用有參函數(shù)時,需要傳

遞參數(shù)。

用戶自定義函數(shù)的一般形式為:

函數(shù)返回值類型函數(shù)名(形式參數(shù)列表)〃函數(shù)首部

(函數(shù)體:

}

其中第一行稱為函數(shù)首部,大括號“{}”括起來的部分稱為函數(shù)體,對于有返回值

的函數(shù),函數(shù)體中要包括return語句。

5.函數(shù)首部也稱為函數(shù)原型,用函數(shù)原型聲明函數(shù)時,形參名可以省略不寫,而只寫形

參的類型,但形參的類型和數(shù)量必須與函數(shù)首部保持一致。

6.函數(shù)要先聲明,然后才能使用,函數(shù)聲明在程序中的位置有以下幾種情況:(1)函數(shù)

聲明寫在主調(diào)函數(shù)的外部,這時的函數(shù)聲明為全局聲明。(2)函數(shù)聲明寫在主調(diào)函數(shù)的

說明語句中,這時的函數(shù)聲明為局部聲明。(3)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則函

數(shù)聲明可以省略。

7.函數(shù)的調(diào)用形式為:函數(shù)名(實際參數(shù)列表)。若調(diào)用無參函數(shù),則實參為空;若調(diào)

用有參函數(shù),則在()內(nèi)寫出與形參類型、數(shù)量一致的實參。對廣有參函數(shù),函數(shù)調(diào)用過

程中存在著參數(shù)傳遞的問題,參數(shù)傳遞有兩種情況,其?為值傳遞,其二為地址傳

遞。

8.函數(shù)在函數(shù)體中出現(xiàn)了對自身調(diào)用的語句,就稱為函數(shù)遞歸調(diào)用。使用遞歸方法解決

問題的關(guān)鍵是如何找出遞歸關(guān)系,以及找出遞歸調(diào)用的終止條件。

9.帶參宏定義的一般形式為:define宏名(形參列表)字符串。通常用帶參數(shù)的

宏定義代替簡單公式型函數(shù)。

10.函數(shù)的存儲類型有static和extern兩種。extern型函數(shù)稱為“外部函數(shù)”,可以

被其他編譯單位中的函數(shù)調(diào)用;static型函數(shù)稱為“內(nèi)部函數(shù)”,只能被本編譯單位的

函數(shù)調(diào)用。

11.程序中變量的使用范圍稱為變量的作用域,每個變量都有自己的作用域。按照作用

域的范圍可分為兩種:局部變量和全局變量.

12.變量的存儲方式可分為“動態(tài)存儲”和“靜態(tài)存儲”兩種。動態(tài)存儲變量包括

auto和regiest兩種類型;靜態(tài)存儲變量包括static和extern兩種類型。靜態(tài)存儲

變量若沒有初始化,則默認(rèn)初始值為0。static類型變量的值具有繼承性,即本次調(diào)用

的初值是上次調(diào)用結(jié)束時變量的值。

單元練習(xí)

一.選擇題

1.關(guān)于使用函數(shù)的目的,以下不正確的說法是()o

A.提高程序的執(zhí)行效率B.提高程序的開發(fā)效率

C.減少程序文件所占內(nèi)存D.提高程序可讀性

2.以下正確的函數(shù)首部是(

A.voidfunfintxjnty)B.voidfun(intx;inty)

C.voidfun(intx,y)D.voidfun(x,y)

3設(shè)函數(shù)fun的定義形式為:

voidfun(charch,floatx){......}

則以下對函數(shù)fun的調(diào)用正確的是()o

A.fun("abc",3.0);B.t=fun('D',12.3);

C.fun('65'z3.7);D.fun(65,65);

4.關(guān)于函數(shù)的實參和形參,以下正確的說法是()。

A.實參和對應(yīng)的形參各占用獨立的存儲單元

B.實參和對應(yīng)的形參共同占用同一存儲單元

C.只有當(dāng)實參與形參重名時才共同占用存儲單元

D.形參是虛擬的,不占用存儲單元

5.當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是()o

A.數(shù)組的長度B,數(shù)組的首地址

C.數(shù)組的每一個元素的地址D.數(shù)組的每一個元素的值

6.將一個函數(shù)指定為static存儲類別后,該函數(shù)將?)。

A.既可以被同一源文件中的函數(shù)調(diào)用,也可以被其他源文件中的函數(shù)調(diào)用

B.只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用

C.只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用

D.既不能被同一源文件中的函數(shù)調(diào)用,也不能被其他源文件中的函數(shù)調(diào)用

7.以下敘述正確的是()。

A.全局變量的作用域一定比局部變量的作用域作用范圍大

B.靜態(tài)static類型變量的生存期貫穿于整個程序的運行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機值

二.填空題

1.假設(shè)已有#(知世M(rjr*r,則語句printf("%d”,M(2+3));的執(zhí)行結(jié)果為

2.以下程序輸出結(jié)果為。

ffinclude<stdio.h>

voidfun(intx,inty)

{x=x+y;y=x-y;x=x-y;

printf("%d,%d\n",x,y);

)

voidmain()

{intx=2,y=3;

fun(x,y);

printf("%d,%d\n",x,y);

)

3.以下程序輸出結(jié)果為。

ffinclude<stdio.h>

inta,b;

voidfun()

{a=10;b=20;

)

voidmain()

{inta=3,b=9;

fun();

printf("%d,%d\n”,a,b);

)

4.以下程序輸出結(jié)果為。

#include<stdio.h>

intf()〃定義f函數(shù),a為形參

{intb=0;〃定義b為自動變量

staticintc=3;〃定義C為靜態(tài)局部變量

b=b+1;

c=c+l;

returnb+c;

)

voidmain()

{intal,a2;

al=f();

a2=t();

printf("%d,%d”,al,a2);

}

5.以卜程序輸出結(jié)果為

#include<stdio.h>

intfun(inln)

(if(n==l)return1;

elsereturnfun(n-l)+l;

}

voidmain()

(inti,j=O;

for(i=l;i<3;i++)

j+=fun(i);

printf("%d\n"J);

}

6.以卜程序輸出結(jié)果為

#include<sidio.h>

voidfun(inta[],intn)

(fbr(in(i=0;i<n;i++)

if(a[i]>0)a[i]*=2;

}

voidmain()

(intb[5]=<1.2,3,4,5);

fun(b,5);

fbr(inti=0;i<5;i++)

printf("%d\f;b[ij);

}

************************************************?******************************

習(xí)題答案:

一.選擇題

l.A2.A3.D4.A5.B6.B7.B

二.填空題

1.11

2.3,2

2,3

3.3,9

4.5,6

5.3

6.246810

*******************************************************************************

單元八指針的使用

單元總結(jié)提升

4.在本單元中,對指計的理解,以及利用指針訪問不同形式的數(shù)據(jù)是核心內(nèi)容。通過

本單元的學(xué)習(xí),我們應(yīng)該知道:

內(nèi)存地址就稱為指針,C語言允許用一個變量來存放指針,這種變量稱為指針變量,而

指針變量的值就是某個內(nèi)存單元的地址。

定義指針變量的一般格式為:類型標(biāo)識符*指針變量名,其中:

(1)“指針變量名”前面的“*”,表示該變量是指針變量,不能省略。

(2)“類型標(biāo)識符”表示該指針變量所指向的變量的數(shù)據(jù)類型。

(3)當(dāng)一個指針變量已確定指向某類型的變量時,不能再指向另一種類型的變量。

3.指針變量被賦值后即可引用,引用指針變量的一股方法為:*指針變量名,

4.指針和數(shù)組有著密切的關(guān)系,任何通過控制數(shù)組下標(biāo)實現(xiàn)的對數(shù)組的操作,都可用

指針來實現(xiàn)。要通過指針操作數(shù)組,首先要建立指針變量與數(shù)組之間的關(guān)系,然后才能

通過指針變量訪問數(shù)組元素。若有語句段:inta[10];int*p;p=a;,則對于數(shù)組元素的訪

問方式有a[i]、*(p+i)、p[i],對數(shù)組元素地址的表示方式有a+i、p+i、&a[i]。

5.數(shù)組名代表數(shù)組的首地址,利用函數(shù)處理?維數(shù)組數(shù)據(jù)時,函數(shù)之間的參數(shù)傳遞為

數(shù)組首地址。將數(shù)組的首地址作為實參傳遞給函數(shù)的形參以后,實參數(shù)組和形參數(shù)組

其實是同一段內(nèi)存中的數(shù)據(jù)。

6.字符串是存放在某存儲區(qū)域的一串字符序列,可通過字符數(shù)組和字符指針兩種方式

操作字符串。

7.函數(shù)返回值可以是地址(指針類型),返回值為地址的函數(shù)定義形式為:

〈類型標(biāo)識符〉*<函數(shù)名>(1形參列表1);°

通過本單元的學(xué)習(xí),應(yīng)明確地址和指針的關(guān)系,掌握使用指針訪問內(nèi)存數(shù)據(jù)的基本方法。

單元練習(xí)

一.選擇題

1.假設(shè)整型變量a的值是12,a的地址是2200,若想使整型指針變量p指向a,以下賦值正

確的是()。

A.&a=2200;B.*p=12;C.*p=2200;D.

p=&a;

2.若有定義ini*p,m=5,n;,以下正確的程序段是()。

A.p=&n;scanf"%d",&p);B.p=&n;scanf("%d",*p);

C.scanf(〃%d〃,&n);^p=n;D.p=&n:*p=m;

3.以下合法的定義是()。

A.str[]={"China"};B.char*p="China";

C.char*p;strcpy(p,"China");D.charstr[13];str[]="China";

4.若有定義inta[卜{1,3,5,7,9,11},*p=a;,則能夠正確引月該數(shù)組元素的是)o

A.aB.a[6]C.*(p—)D.*(-p)

5.以下程序運行結(jié)果為()。

#include<stdio.h>

voidmain()

{

chara[]="Language"

溫馨提示

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

最新文檔

評論

0/150

提交評論