C語言程序設計章節(jié)測試參考答案_第1頁
C語言程序設計章節(jié)測試參考答案_第2頁
C語言程序設計章節(jié)測試參考答案_第3頁
C語言程序設計章節(jié)測試參考答案_第4頁
C語言程序設計章節(jié)測試參考答案_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家開放大學《c語言程序設計》章節(jié)測試參考答案

第一章c語言概述

自測練習一:c語言字符集自測練習

1.在C語言字符集中,包含有全部26個英文大寫字母和對應的小寫字母。(J)

2.在C語言字符集中,一個大寫英文字母和它的小寫英文字母被視為不同的字符。

(V)

3.在C語言程序中,ABC和abc被作為同一標識符使用。(X)

自測練習二:C語言字符集自測練習

1.在C語言中,保留字是有專門含義和作用的,不能作為一般標識符使用。(J)

2.在C語言中,作為標識符的第一個字符只能是英文字母或下劃線,不能是數字

字符。(V)

3.C語言中使用的字符常量,其起止標記符是()o

a.雙引號

b.尖括號

c.單引號

d.中括號

4.C語言中使用的字符串常量,其起止標記符是()o

a.雙引號

b.中括號

c.尖括號

d.單引號

自測練習三:C語句分類自測練習

1.在C語言中,一條簡單語句的結束符是()o

a.分號

b.空格

c.冒號

d.逗號

2.在C語言中,每條復合語句的開始標記字符為()o

a.<

b.[

c.(

d.{

3.不符合C語言規(guī)定的復合語句是()o

a.{x=0;}

b.{}

c.{;}

d.{y=10}

4.C語言中的選擇類語句有兩條,它們是()o

a.else和case

b.if和switch

c.if和else

d.switch和case

自測練習四:函數分類與使用自測練習

1.在每個C語言程序中都必須包含有這樣一個函數,該函數的函數名為()o

a.name

b.main

c.MAIN

d.function

2.C語言程序中的基本功能模塊為()o

a.標識符

b.函數

c.表達式

d.語句

3.一個函數定義所包含的兩個部分是()。

a.函數頭和函數體

b.函數原型和函數體

c.函數名和參數表

<1.函數頭和函數尾

4.一個程序文件開始使用的每條預處理命令,其首字符必須是()。

a.#

b.@

c.%

d.$

5.在一個程序文件中,若要使用的腿111<1?命令包含一個系統(tǒng)頭文件,則此頭文件

所使用的起止定界符為一對()。

a.雙引號

b.花括號

c.尖括號

d.單引號

6.在一個函數定義中,函數體的格式是一條復合語句。(J)

7.一個函數必須返回一個值,不允許定義不返回任何值的函數。(X)

8.若要在程序文件中使用數學函數,則需要引入的系統(tǒng)頭文件為maih.h。(V)

9.若要在程序文件中使用標準輸入和輸出函數,則需要引入的系統(tǒng)頭文件為

stdio.ho(V)

自測練習五:C語言程序的層次結構自測練習

1.在C語言程序中,單行或行尾注釋使用的標記符為()o

a.//

b.**

c./*

d.*/

2.在C語言程序中,多行注釋使用的結束標記符為().

a./*

b,**

c.*/

d.〃

3.在程序文件中添加注釋內容是為了增強程序的可讀性。(J)

4.在一行中出現多條語句時,注釋語句只能為最后一條語句。(J)

自測練習六,標準輸出函數printf。的使用自測練習

1.用于輸出表達式值的標準輸出函數是()o

a.print()

b.scanf()

c.output()

d.printf()

2.在primf()函數調用的格式字符串中,每個格式符的先導字符為()。

a.#

b.@

c.$

d.%

3.在printf()函數調用的格式字符串中,若使用格式符為“%d”,則對應輸出的數

據類型為()o

a.int

b.char

c.float

d.double

4.在printf()函數調用的格式字符串中,若使用格式符為“%f”,則對應輸出的數

據類型為()o

a.char

b.float

c.int

d.double

5.在printf()函數調用的格式字符串中,若使用格式符為“%5d”,則規(guī)定對應輸

出的數據占用的字符位置個數為()。

a.5

b.4

c.6

d.3

6.在利用prinlf()函數向屏幕輸出數據時,需要在參數表的開始位置使用相應的格

式字符串。(J)

7.在“printf("%d-%d=%d”,x,y,x-y);”語句所使用的格式字符串中,包含有3個

格式符。3

8.在執(zhí)行“printf("s=%s\n",“abc");“語句時,輸出結果為s=abc0(V)

9.在“printf(”s二%c\n"Jabc");”語句中,格式符的使用同后面的輸出數據相適合。

(X)

10.在執(zhí)行“printf("%d-%d=%d”,x,y,x-y);”語句時,其輸出的前兩個數據值之

間將采用逗號分開。(X)

自測練習七:標準輸入函數scanf()的使用自測練習

1.程序運行中需要從鍵盤上輸入多于一個數據時,若不特別規(guī)定分隔符,則輸入

的各數據之間所使用的分隔符為()。

a.空格或回車

b.空格或逗號

c.逗號或回車

d.逗號或分號

2.用于從鍵盤上為變量輸入值的標準輸入函數是()。

a.print()

b.scanf()

c.printf()

3.在scanf()函數調用的格式字符串中,每個格式符的先導字符為()。

a.%

b.#

c.@

d.$

4.在scanf()函數調用的格式字符串中,若使用格式字符串為"%d,%d",則規(guī)定

輸入的兩個數據之間的分隔符為()。

a.$

b.#

c.@

d.%

5.在利用scanf()函數從鍵盤輸入數據時,需要在參數表的開始位置使用相應的格

式字符串。(J)

6.在“scanf("%d%d”,&x,&y);”語句所使用的格式字符串中,包含有2個格式符。

(V)

7.在執(zhí)行“scanf("%d%d”,&x,&y);“語句時,需要從鍵盤上輸入2個整數。(J)

自測練習八:C語言程序的上機操作過程自測練習

1.C語言源程序文件的擴展名為()o

a.exe

b.obj

c.c

d.cpp

2.每個C語言程序文件的編譯錯誤的類型有()。

a.2種

b.3種

c.1種

d.4種

3.每個C程序文件在編譯時可能出現有警告性錯誤,其對應的標識符號為()。

a.err

b.error

c.warn

d.warning

4.一個C語言程序只能夠包含一個程序源文件。(X)

5.一個C語言程序只能夠包含一個用戶頭文件。(X)

6.在C語言程序上機操作的過程中,編譯程序的操作步驟之后是連接操作/V)

第一章綜合練習

一、單項選擇題

1.C語言中的循環(huán)類語句有3條,它們是()。

A.for,if,while

B.for,while,do

C.while,do,switch

D.for,break,do

2.C語言中的跳轉類語句有四條,它們是goto,return和(

A.break,const

B.static,continue

C.break,continue

D.while,extern

3.當不需要函數返回任何值時,則所使用的返回類型為()。

A.int

B.union

C.void

D.Void

4.在一個函數定義中,函數頭包括的3個部分依次為函數類型、函數名和()。

A.表達式

B.語句

C.函數體

D.參數表

5.在一個程序文件的開始,若需要使用一個包含命令包含一個頭文件時,則命

令標識符為()o

A.#clude

B.#const

C.#include

D.#defile

6.在#出己11(1已預處理命令中,不可以包含()o

A.系統(tǒng)頭文件

B.程序文件

C.用戶頭文件

D.目標文件

7.在printf()函數調用的格式字符串中,若使用格式符為“%6.2f”,則規(guī)定對應

輸出的數據占用的字符位置個數為()。

A.5

B.6

C.4

D.2

8.在printf()函數調用的格式字符串中,若使用格式符為“%6.2f”,則規(guī)定對應

輸出的數據中,其小數部分占用的字符位置個數為()。

A.5

B.6

C.4

D.2

9.在printf()函數調用的格式字符串中,若使用格式符為“%6.2f”,則規(guī)定對應

輸出的數據中,其整數部分占用的字符位置個數為()。

A.6

B.4

C.3

D.2

10.在scanf()函數調用的格式字符串中,若使用格式符為“%f”,則對應輸入的

數據類型為()o

A.char

B.int

C.float

D.double

11.在scanf()函數調用的格式字符串中,若使用格式符為“%Lf”,則對應輸入

的數據類型為()o

A.char

B.int

C.float

D.double

12.每個C程序文件在編譯時可能出現有嚴重性錯誤,其對應的標識符號為

()。

A.warning

B.error

C.warn

D.err

13.在VC++環(huán)境下,為運行一個程序而建立的工作區(qū)文件的擴展名為()o

A.obj

B.exe

C.dsw

D.dsp

二、判斷題

1.在C語言中,作為標識符的第一個字符可以是英文字母、數字或下劃線字符。

(X)

2.在C語言中,標識符中的非首字符可以是英文字母、數字或下劃線字符。(V)

3.當需要在程序文件中引入用戶定義的頭文件時,使用的不是include命令。(X)

4.使用include命令只能包含頭文件,不能包含其他任何文件。(X)

5.注釋語句的內容只會出現在源程序文件中,不會出現在編譯后而生成的目標

代碼文件中。(J)

6.一條注釋語句的最后必須使用分號結束。(X)

7.源程序義件被編譯成目標文件后,其目標義件中也存在有對應的注釋內容。

(X)

8.源程序文件被編譯成目標文件后,源程序文件中的注釋語句仍然存在。(J)

9.在一條注釋語句中,除了注釋內容外,不需要使用任何特定的標記符。(X)

10.多行注釋語句的開始和結束標記符可以互換使用。(X)

11.在執(zhí)行“printf(”%5d”,x);”語句時,其輸出的x的值所占用的顯示寬度將大

于等于5個字符位置。(

12.在執(zhí)行“prinlf("%6d”,x);”語句時,其輸出的x的值所占用的顯示寬度將小

于6個字符位置。(X)

13.在執(zhí)行“prinlf("%8.2「,x);”語句時,其輸出的x的值所占用的顯示寬度將

大于等于8個字符位置。(X)

14.在“scanf("%d%d”,&x,&y);”語句中,x和y變量均為整數類型。(V)

15.在“scanf(”%s”,x);“語句中,x變量不是字符指針類型。(X)

16.在“scanf("%d?%d=%d”,&x,&y,&z);”語句中,有語法錯誤。(X)

17.在C語言程序上機操作的過程中,連接程序的操作步驟之前是編譯程序。(J)

18.在C語言程序上機操作的過程中,需要對每個用戶頭文件進行單獨的編譯

操作。(X)

19.在C語言程序上機操作的過程中,不能夠對用戶頭文件進行單獨的編譯操

作。(J)

第二章基本數據類型和表達式

自測練習一:數據類型自測練習

l.char類型的長度為()0

a.1

b.3

c.4

d.2

2.常數120的數據類型為()0

a.雙精度型

b.短整型

c.長整型

d.整型

3.一個無符號字符類型的值域范圍是()。

a.-127至I」255

b.0到255

c.1到255

<1.-128到+127

4.廣義整數類型包括短整型、標準整型和長整型3種。(X)

5.短整型、標準整型和長整型的長度分別為2、4和8。(X)

自測練習二:常量自測練習

1.數值常量0x62的表示方式為()。

a.八進制

b.十進制

c.二進制

d.十六進制

2.在C語言中,表示換行符的轉義字符為()o

a.\r

b.\f

c.\m

d.\n

3.字符串沖包含的字符個數為()<>

a.8

b.7

c.6

d.5

4.執(zhí)行“printf(”%c”,E+2);”語句后得到的輸出結果為()。

a.D

b.B

c.C

d.A

5.常數3.26是雙精度浮點數。(X)

6.常數3.26f是單精度浮點數。(X)

7.浮點數包括單精度浮點數和雙精度浮點數兩種。(V)

8.常數3.26是雙精度浮點數。(X)

自測練習三:變量自測練習

1.要定義a和b為兩個整型變量,則使用的定義語句為()0

a.inta:b;

b.intab;

c.inta,b;

d.inta;b;

自測練習四:運算符和表達式自測練習

1.運算符優(yōu)先級最高的是()o

a./

b.II

c.++

d.%

2.下列數值中最小值是()o

a.28/8

b.28%8

c.35/3

d.35%3

3.已知x的初值為15,則下列各表達式中的最小值為()o

a.x*=2

b.x+=10

c.x/=2

d.x%=20

4.若x=5,y=10,則計算y*=++x表達式后,y的值為(

a.40

b.60

c.50

d.55

5.設x和y均為邏輯值,則x&&y為真的條件是()。

a.其中一個為假

b.它們均為假

c.它們均為真

d.其中一個為真

6.xv=10的相反表達式為()o

a.x>=10

b.x!=10

c.x>0

d.x>10

7.表達式(float)25/4的值為6。(X)

8.表達式x=x+y表示成復合賦值表達式為x=+y。(X)

9.增量表達式++y表示成賦值表達式為y=y+lo(V)

10.表達式sizeof(25)的值等于4。(J)

11.邏輯表達式(x>3&&xvlO)的相反表達式為(xv=3||x>=10)o(V)

自測練習五:一些系統(tǒng)函數的使用自測練習

1.函數pow(4,3)的值為()。

a.64.0

b.27

c.12.0

d.56

2.假定x=4.6,則函數floor(x)的值為()。

a.5.0

b.4.0

c.4.6

d.4.5

3.正弦函數sin48在C語言的表示為()。

a.sin(48*3.14159)

b.sin(48)

c.sin(48/180.0)

d.sin(48*3.14159/180)

4.在C語言中,求一個實數的絕對值的數學函數為fabs(x)。(V)

5.已知x=-25,則abs(x)的值為25。(V)

6.在C語言中,正弦、余弦或正切函數的參數的度量單位是度。(X)

第二章綜合練習

一、單項選擇題(1?12題每題3分,13?16題每題4分,共48分)

Lint類型的長度為()。

A.1

B.2

C.4

D.8

2.常數425的數據類型為()0

A.整型

B.單精度型

C.雙精度型

D.長雙精度型

3.一個有符號字符類型的值域范圍是()o

A.-128到+127

B.0到255

C.-127到255

D.1到255

4.字符串"Its\40\n”的長度為()。

A.5

B.6

C.7

D.8

5.實數340.25對應的規(guī)格化浮點數為()0

A.340.25

B.34.025el

C.3.4025e2

D.0.34025e3

6.要利用consl保留字定義整型常量ABC的值為10,則對應的定義語句為()。

A.constintABC10;

B.constintABC,10;

C.constintABC;10;

D.constintABC=10;

7.要利用#(10自比命令定義ABC常量的值為100,則對應的命令格式為()。

A.#defineABC=100

B.#defineABC==100

C.#defineABC100

D.#defineABC;100

8.下列數值中最大值是()o

A.28/8

B.35/3

C.28%8

D.35%4

9.在下面運算符中,優(yōu)先級最高的是()。

A.!

B.&&

C.||

D.!=

10.設有語句序列為“inta=12;a+=a*a;",則執(zhí)行結束后,a的值為()。

A.12

B.144

C.156

D.288

11.在C語言中,用于比較大小的關系運算符的總數為()o

A.3

B.4

C.5

D.6

12.x>0&&yv=5的相反表達式為()。

A.x<=0||y>5

B.x>0||y<=5

C.x<=0&&y>5

D.x<0&&y!=5

13.假定x是一個邏輯量,則(x&&!x)和(x||!x)的值分別為()o

A.1和1

B.0和0

C.0和1

D.1和0

14.假定x=4.6,則函數ceil(x)的值為()。

A.4.0

B.4.6

C.4.5

D.5.0

15.表達式floor(2.3457*100+0.5)/100的值為()。

A.2.35

B.2

C.2.34

D.2.3457

二、判斷題(每題4分,共52分)

16.常數3.26e4是雙精度浮點數。(V)

17.浮點數只有單精度表示,沒有雙精度表示。(X)

18.定點數包括單精度定點數和雙精度定點數兩種。(

19.定義符號常量只有一種方法,就是采用預處理命令#define的方法。(X)

20.使用const語句定義一個符號常量時,則必須對它同時進行初始化。(J)

21.在一條變量定義語句中,定義的變量和賦給它的初值之間只能使用等號(二)。

(V)

22.假定x=5,則表達式2+X++的值為7o(V)

23.表達式(int)14.6%5的值為0。(X)

24.表達式x=x+l表示成增量表達式為x++o(X)

25.假定x=5,則執(zhí)行“a=(x?10:20);”語句后a的值為10。(V)

26.邏輯表達式(a>b||b==5)的相反表達式為(a>b&&b==5)o(X)

27.在C語言中,求一個整數的絕對值的數學函數為abs(x)。1J)

28.在C語言中,退出程序運行的系統(tǒng)函數為exit。。(V)

第三章流程控制語句

自測練習一:if條件語句自測練習

L若x的值為5,則執(zhí)行“if(x>10)x++;elsex??;”語句后,x的值為()。

a.4

b.6

c.3

d.5

2.若x的值為-10,則執(zhí)行“if(x)x++;很sex-;”語句后,x的值為(2

a.-9

b.-11

c.-10

d.O

3.在if語句中,可以帶有else子句,也可以省略它。(X)

4.在if語句中,每個else關鍵字與它前面同層次并且最接近的if關鍵字相配套。

(X)

5.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inta=25,b=18;

if(a>b)printf("%s\n,,;,a>b");

if(a==b)printf(,,%s\n","a==b'');

if(a<b)printf(M%s\n","a

答案:a>b

6.執(zhí)行下面程序的輸出結果為

#includestdio.h>

#include<stdio.h>

voidmain(){

inta=18,b=4,c=0;

if(a/b){c+=a/b;c+=a%b;}

if(a%b){a=a/b;b=a%b;}

printf("%dn,a+b+c);

}

答案:a>b

自測練習二:switch開關語句自測練習

1.在switch語句的每個case塊中,假定都是以break語句結束的,則此switch語

句容易被改寫成語句()。

a.if

b.while

c.do

d.for

2.每個C語言程序文件的編譯錯誤的類型有()o2.在switch語句中,每個保

留字case后面的表達式必須是()o

a.函數調用

b.變量種

c.一般表達式

d.常量

3.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

intx=5,y=0;

switch(2*x-3){

case4:y+=x;break;

case7:y+=2*x+l;break;

case10:y+=3*x;break;

I

printf(,,y=%d\n,,,y);

)

答案:y=ll

4.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

intx=9,y=0;

switch(x%3){

case0:y+=x;

case1:y+=2*x+1;

case2:y+=3*x;break;

default:y+=x-l;

}

printf(,,y=%d\n,,,y);

1

答案:y二55

自測練習三:for循環(huán)語句自測練習

1.當處理問題時的循環(huán)次數是確定的,則采用的最合適的循環(huán)方式為()o

a.do-while

b.switch

c.while

d.for

2.若需要定義一個符號常量,并且使C語言能夠進行類型檢查,則應在定義語句

的開始使用保留字()o

a.case

b.continue

c.static

d.const

3.己知'A;Z的ASCII碼為65?90,當執(zhí)行“intx=C+5;”語句后x的值為()。

a.70

b.73

c.72

d.71

4.在一條變量定義語句中可以同時定義多個變量。(

5.在一條變量定義語句中,當同時定義多個變量時,各變量之間只能使用逗號分

開。(J)

6.在一條變量定義語句中,定義的變量和賦給它的初值之間不需要使用等號(二)。

(X)

自測練習四:while循環(huán)語句自測練習

1.每次先進行循環(huán)條件的判斷,然后再執(zhí)行循環(huán)體的語句為()。

a.for和while

b.for和do

c.switch和break

d.while和do

2.若n的值為5,s的值為0,則執(zhí)行“while(n>0)s+=n--;”語句后,s的值為()。

a.13

b.14

c.15

d.12

3.當循環(huán)次數確定時,while循環(huán)語句能夠轉換為for循環(huán)語句。3

4.while循環(huán)語句中的循環(huán)體至少被執(zhí)行一次。(X)

5.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

intn=10,y=0;

while(n>5)y+=n—;

printf(ny=%d\nn,y);

答案:y=40

6.執(zhí)行下面程序的輸出結果為。

#include<stdio.h>

voidmain(){

inti=l,p=l,s=l;

while(s<40){i++;p=p*i;s=s+p;}

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

}

答案:s=153

自測練習五:do循環(huán)語句自測練習

1.流程控制類語句包括的3類語句為()。

a.選擇、循環(huán)、跳轉

b.選擇、循環(huán)、輸入

c.選擇、輸入、輸出

d.循環(huán)、選擇、函數

2.若i的值為Q則執(zhí)行“doi++;while(i*i<10);”語句的過程中,循環(huán)體被執(zhí)行

的次數為()。

a.2

b.3

c.5

d.4

3.do?while循環(huán)語句中的循環(huán)體至少被執(zhí)行一次。3

4.do-while循環(huán)語句是以分號結束的語句。(J)

5.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

intx=16,s=0;

do{s+=x;x-=3;)while(x>0);

printf(us=%d\nH3);

答案:s二51

6.此程序的功能是從鍵盤上愉入兩個(),輸出結果為它們的平方和.

#include<stdio.h>

voidmain(){

intx,y;

doscanf("%d%d",&x,&y);while(x<=0||y<=0);

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

}

答案:正整數

自測練習六:跳轉類語句自測練習

1.若要結束所在函數的執(zhí)行過程,返回到調用該函數所在位置,則使用的語句為

()。

a.goto

b.continue

c.return

d.break

2.要結束所在循環(huán)語句中循環(huán)體的一次執(zhí)行,則在其中使用的語句為()o

a.goto

b.return

c.break

d.continue

3.break語句只能使用在循環(huán)語句中。(X)

4.return語句只有保留字,沒有其他成分。(X)

5.continue語句只有保留字,沒有語句體。(J)

6.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inti,s=0;

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

s+=i*(i+l);

if(s>40)break;

I

printf(us=%d\nH3);

)

答案:s=70

7.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inti=0,s=0;

do{

i+=2;

if(i%3==0)continue;

s+=i*(i+l);

}while(s<60);

printf(ns=%d\nu,s);

}

答案:s=98

第三章綜合練習

一、單項選擇題

1.若x的值為15,則執(zhí)行“if[x>10)x++;elsex--;”語句后,x的值為()。

a.16

b.10

c.15

d.14

2.若x的值為-10,則執(zhí)行“if(!x)x++;elsex--;”語句后,x的值為()。

a.0

b.-10

c.-9

d.-ll

3.若x的值為10,則執(zhí)行(iswitch(x%3){caseO:x++;casel:x++;case2:x++;}”語

句后,x的值為()o

a.13

b.10

c.12

d.11

4.若x的值為10,貝1」執(zhí)行'飛\¥在由氯%3)代2$?0%++;break;casel:x++;default:x++;}

語句后,x的值為()o

a.9

b.10

c.12

d.11

5.若n的值為10,則執(zhí)行“for(i=l;ivn;i++)S;”語句的過程中,表達式i=l共被

執(zhí)行的次數為()。

a.n-1

b.1

c.n

d.n+1

6.若n的值為10,則執(zhí)行“fbr(i=0;;i++)if(i>n/3)break;”語句后,i的值為()。

a.6

b.3

c.4

d.5

7.若n的值為10,則執(zhí)行wfor(i=l;i<n;i++)S;”語句的過程中,表達式i++共被

執(zhí)行的次數為()。

a.n

b.n+1

c.1

d.n-1

8.若n的值為10,則執(zhí)行afor(i=0;i<n;i++)for(j=i;j<n;j++)S;“語句后,內層循

環(huán)體S語句的執(zhí)行總次數為()<>

a.n*n

b.n(n+l)/2

c.(n+l)/2

d.n(n-l)/2

9.若n的值為10,則執(zhí)行“while(n->0)s+=n;”語句的過程中,循環(huán)體被執(zhí)行的

次數為()。

a.9

b.11

c.8

d.10

10.若n的值為5,s的值為0,則執(zhí)行“while(n??>0)s+=n;”語句后,s的值為()。

a.15

b.12

c.10

d.14

11.在下列的語句中,必須以分號作為結束的語句是()o

a.while

b.for

c.do

d.switch

12.若n的值為5,s的值為0,則執(zhí)行“dos+=n--;while(n>0);”語句后,s的值

為(

)o

a.14

b.12

c.15

d.13

13.要結束任一種循環(huán)語句或swiich語句的執(zhí)行,則在其中使用的語句為()0

a.goto

b.break

c.continue

d.return

二、判斷題

14.在if語句中,必須帶有else子句,不能省略它。(X)

15.在for循環(huán)語句的頭部,for后面括號內共有3個表達式位置。3

16.for循環(huán)語句不能夠被轉換為while循環(huán)語句。(X)

17.while循環(huán)語句中的循環(huán)體可能不會被執(zhí)行。(J)

18.while循環(huán)語句的循環(huán)體,只能是復合語句,不能是簡單語句。(X)

19.do-while循環(huán)語句中的循環(huán)體可能不會被執(zhí)行。(X)

20.do?while循環(huán)語句的循環(huán)體,只能是復合語句,不能是簡單語句。(X)

21.do?while循環(huán)語句是以循環(huán)體結尾的。(X)

22,break語句可以使用在switch語句中。(J)

23.return語句中可以帶有返回表達式。(V)

24.continue只能使用在任一種循環(huán)語句的循環(huán)體中。(J)

三、程序填空題

25.#include<stdio.h>

voidmain(){

inta=5,b=8,c=6,d=15,x,y;

if(a>=b)x=a;elsex=b;

if(c>=d)y=c;elsey=d;

if(x>=y)printfC'%d\n';x);

elseprintf(',%d\n',,y);

答案:15

26.#include<stdio.h>

voidmain(){

intx=5,y=8.z=12;

if(x>y&&x>z)printf(',%d\n,,,x);

elseif(y>x&&y>z)printf(M%d\nH,y);

elseprintf("%d\n",z);

1

答案:12

27.#include<stdio.h>

voidmain(){

inta=5,b=8,c;

if(3*a>2*b)c=2*a+3*b;

elseif(a==b)c=a*a+b*b;

elsec=a*b+3;

printf(uc=%d\nn,c);

1

答案:c=43

29.#include<stdio.h>

voidmain(){

intx=5,y=0;

switch(2*x-3){

case4:y+=x;

case7:y+=2*x+l;

case10:y+=3*x;

)

printf(ny=%d\n',,y);

}

答案:y=26

29.#include<stdio.h>

voidmain(){

charch;

inta,b,c;

scanf("%c".&ch);

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

switch(ch){

casec=a+b;break;

casec=a-b;break;

casec=a*b;break;

case7:c=a/b;break;

default:printf("Error!\n");

)

printf("%d%c%d=%d\nM,a,ch,b,c);

)

答案:35=15

30.#include<stdio.h>

voidmain(){

inti,s=0;

for(i=16;i>0;i-=2)

if(i%3==01|i%4==0)s+=i;

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

1

答案:s=46

31.#include<stdio.h>

voidmain(){

inti,x,y,s=0;

scanf("%d%d",&x,&y);

if(x>y){i=x;x=y;y=i;}

fbr(i=x;i<=y;i++)

if(i%2==l)s+=i*i;

printf(ns=%d\nu,s);

)

答案:奇數

32.#include<stdio.h>

constintN=100;

voidmain(){

inta,b;

for(a=2;a<=N;a++)(

for(b=2;b*b<=a;b++)

if(a%b==0)break;

if(b*b>a)printf("%d",a);

}

)

答案:素數(質數)

33.#include<stdio.h>

voidmain(){

inti=0,s=0;

while(s<50){i+=2;s+=i*i;}

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

)

答案:s=56

34.#include<stdio.h>

voidmain(){

intx,p=2;

scanf("%d",&x);

while(x>=p)

if(x%p==0){printf(n%d=%d*%d\n,1,x,p,x/p);break;}

elsep++;

1

答案:35=57

35.#include<stdio.h>

voidmain(){

intx,y,a,p=l;

scanf(n%d

if(x<y){a=x;x=y;y=a;}

if(x%y=O){printf("%d\n",y);return;)

a=2;

while(y>=a)

if(x%a==O&&y%a==O){x=x/a;y=y/a;p*=a;}

elsea++;

printf(n%d\nn,p);

)

答案:公約數

36.#include<stdio.h>

voidmain(){

intx=36,y=48,z;

do{z=x%y;x=y;y=z;}while(y>0);

printf("x=%d\n,',x);

)

答案:x=12

37.#include<stdio.h>

voidmain(){

intx,i=0,s=0;

scanf(n%d';&x);

do{i+=2;s+=i*i;}while(s<x);

printf(',n=%d\n,',i-2);

)

答案:最大

38.#include<stdio.h>

voidmain(){

intx=37,k=2;

do{if(x%k==0)break;k++;}while(k*k<=x);

if(k*k>x)printf(nYes!\n");

elseprintf(,'No!\nu);

答案:Yes!

第四章數組的概念

自測練習一:數組的概念自測練習

1.在一個數組中,數組元素a[i]前面的元素個數為()o

a.2*i

b.i+1

c.i

d.i-1

2.假定一維數組的定義為“char則該數組所占用的存儲空間的字節(jié)數為

()。

a.8

b.32

c.64

d.16

3.對于一維數組元素,數組名后使用一對中括號。(V)

4.二維數組元素帶有一個下標。(X)

自測練習二:一維數組的定義和使用自測練習

1.假定有一個定義語句為“inla[10]={3,4,2,8,6};”,則元素a[刃的值為(

a.6

b.8

c.4

d.2

2.在下面字符數組的定義語句中,有語法錯誤的是()o

a.chara[]="x+y=55.M;

b.chara[15]={T,2};

c.charallOl^S1;

d.chara[20]=,,abcdefgH;

3.在一維數組的定義語句中,可以給數組中每個元素賦初值。(J)

4.假定一維數組的定義為,double則每個數組元素的下標取值范圍在1~M

之間。(X)

自測練習三:二維數組的定義和使用自測練習

1.假定有一個定義語句為』皿3][4]={{3,4},{2,8,6}};”,則元素2[2][1]的值為(),.

a.8

b.6

c.4

d.O

2.假定二維數組的定義語句為"int*a[引[5];”,則該數組所占用的存儲空間的字

節(jié)數為()o

a.12()

b.60

c.30

d.15

3.在二維數組的定義語句中,數組名后帶有兩對中括號。(J)

4.假定二維數組的定義語句為“doublea[M][N];",則每個數組元素的列下標取值

范圍在0~N-l之間。(V)

自測練習四:使用typedef語句定義數組類型自測練習

1.使用“typedefintInteger;”語句把標識符Integer定義為一個()。

a.整數變量

b.整數類型

c,數組類型

d.數組變量

2使用“typedefintABC[10];”語句把標識符ABC定義為()。

a.符號常量

b.字符數組

c.整型數組類型

d.簡單變量

3.執(zhí)行"typedefintintiype;”語句后,在使用im定義整型變量的地方都可以使

用整數類型標識符intType來定義整型變量.(J)

4.使用“typedefcharBBU0J[50];w語句定義標識符BB為含有10行50列共500

個元素的二維字符數組。(X)

自測練習五:數組的應用自測練習

1.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inta[8]={3,8,6,5,9,2,8,5};

inti,s=0;

fbr(i=0;i<8;i++)s+=a[i];

printf(ns=%d\nH,s);

}

答案:s二46

2.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inta[8]={12,15,20,8,25,30,28,36);

inti,c[3]={0};

for(i=0;i<8;i++){

if(a[i]%2==0)c[0]++;

if(a[i]%3==0)c[l]++;

if(a[i]%4==0)c[2]++;

)

printf(n%d%d%d\n",c[0],c[l],c[2]);

}

答案:645

3.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inta[3][3]={{1118,16},{15,19,12},{8,15,22}};

inti,j,x=a[O][O];

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

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

if(a[i][j]<x)x=a[i]U];

printf(nx=%d\nn,x);

)

答案:x=8

4.執(zhí)行下面程序的輸出結果為

#include<stdio.h>

voidmain(){

inta[3][3]={{12.18,10},{8,6,14),{5,10,19)};

inti,j,s[3]={0};

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

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

s[a[i]U]%3]+=a[i]U];

for(i=0;i<3;i++)printf("%d",s[i]);

1

答案:363927

自測練習六:字符串的定義與應用自測練習

1.利用一維字符數組存儲一個字符串時,在其末尾自動存儲的一個字符是()。

a.'\nr

b.*\0'

c.空格

d.回車

2.一個二維字符數組a[M][N]能夠存儲的字符串個數至多為()o

a.M

b.N-l

c.M-l

d.N

3.若需要把一個字符串賦給字符數組,則選用的函數是()o

a.strlen

b.strcat

c.strcpy

d.strcmp

4.在C語言中,在定義一個字符數組時,不能利用一個字符串進行初始化。(X)

5.對于一個長度為n的字符串,存儲它的字符數組的長度至少為n。(X)

6.有一個語句為“chars2[4]=、bcd”;",s2數組長度是合適的c(X)

7.執(zhí)行下面程序的輸出結果為

#include?stdio.h>

#include<string.h>

voidmain(){

intcl,c2;

chara[20]="Stringl234\n";

charb[10]=ustr";

cl=strlen(a);

strcat(b,M245\0n);

intc2=strlen(b);

printf(H%d%d\n',cl,c2);

)

答案:116

8.執(zhí)行下面程序后,假定從鍵盤上輸入的兩個字符串數據為123和456,則輸出

結果為

#include<stdio.h>

#include<string.h>

voidmain(){

chara[20],b[20];

scanf("%s%s",a,b);

if(strcmp(a,b)>=0)printf(M%s%s\n",a,b);

elseprintf("%s%s\n",b,a);

答案:456123

第四章綜合練習

一、單項選擇題

1.假定有一個元素類型為int的數組a[10],它所占用的存儲空間的字節(jié)數為

()o

a.20

b.80

c.10

d.40

2.假定一維數組的定義為“char*a[8];",則該數組所占用的存儲空間的字節(jié)數為

()。

a.16

b.8

c.32

d.64

3.假定有一個定義語句為“inta[10]={3,428,6};”,則元素a[5]的值為(

a.6

b.2

c.0

d.8

4.在下面的一維數組定義語句中,有語法錯誤的是()。

a.inta[];

b.inta[5];

c.inta[10]={0};

d.inta[]=(1,2,3);

5.假定二維數組的定義語句為“inta[3][5];",則該數組所含元素的個數為()。

a.12

b.8

c.10

d.15

6.假定有一個

溫馨提示

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

評論

0/150

提交評論