- 相關(guān)推薦
2017計算機二級考試C語言復(fù)習(xí)題及答案
做好復(fù)習(xí)計劃多做復(fù)習(xí)題是備考的關(guān)鍵。為了方便考生復(fù)習(xí)計算機二級C語言考試yjbys小編為大家?guī)淼挠嬎銠C二級考試C語言復(fù)習(xí)題。歡迎閱讀。
一、選擇題
1. 若“int n; float f=13.8;”,則執(zhí)行“n=(int)f%3”后,n的值是(A)
A、1
B、4
C、4.333333
D、4.6
“(int)f“表示將f中的值強制類型轉(zhuǎn)換為整型,即將13.8的小數(shù)部分舍掉,轉(zhuǎn)換為13;然后計算13%3,結(jié)果為1,再將結(jié)果賦給變量n,因此n的值為1
2. 以下對一維數(shù)組a的正確說明是: D
A、char a(10);
B、 int a[];
C、int k=5,a[k];
D、char a[3]={‘a’,’b’,’c’};
詳見教材P143~144,一維數(shù)組的定義、初始化
類型符 數(shù)組名 [常量表達式]
類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標識符命名規(guī)則;常量表達式是指數(shù)組的長度(數(shù)組中包含元素的個數(shù)),其值只能是整數(shù),不可以是變量,而且從1開始計數(shù)。
選項A,常量表達式只能放在中括號 [ ]中
選項B,只有在對數(shù)組初始化(即賦值)的時候才可以省略數(shù)組的長度,B中并未對a進行初始化。
選項C,常量表達式不能為變量。
3.以下能對一維數(shù)組a進行初始化的語句是:( C )
A、int a[5]=(0,1,2,3,4,)
B、 inta(5)={}
C、 int a[3]={0,1,2}
D、 int a{5}={10*1}
詳見教材P145,一維數(shù)組的定義、初始化
選項B,D,常量表達式只能放在中括號 [ ]中
選項A,數(shù)組可以看做是若干個相同數(shù)據(jù)類型元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了().
4.在C語言中對一維整型數(shù)組的正確定義為 D 。
A、int a(10);
B、int n=10,a[n];
C、int n;a[n];
D、#define N 10
int a[N];
5、已知:int a[10]; 則對a數(shù)組元素的正確引用是( D )。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
詳見教材P144,數(shù)組元素的引用
數(shù)組名[下標]
引用數(shù)組元素時,[ ]中的下標為邏輯地址下標,只能為整數(shù),可以為變量,且從0開始計數(shù)
int a[10]表示定義了一個包含10個整型數(shù)據(jù)的數(shù)組a,數(shù)組元素的邏輯地址下標范圍為0~9,即a[0] 表示組中第1個元素; a[1] 表示組中第2個元素; a[2] 表示組中第3個元素; ......;a[9] 表示組中第10個元素.
選項A,超過了數(shù)組a的邏輯地址下標范圍;
選項B,邏輯地址下標只能為整數(shù)
選項C,邏輯地址下標只能放在[ ]中
6.下列不正確的定義是(A )。
A、int *p=&i,i;
B、int *p,i;
C.int i,*p=&i;
D、int i,*p;
選項A先定義一個整型指針變量p,然后將變量i的地址賦給p。然而此時還未定義變量i因此編譯器無法獲得變量i的地址。(A與C對比,選項C先定義變量i,則在內(nèi)存中為i分配空間,因此i在內(nèi)存空間的地址就可以確定了;然后再定義p,此時可以為p賦i的地址,C正確)
7. 若有說明:int n=2,*p=&n,*q=p,則以下非法的賦值語句是: (D )
A、p=q
B、*p=*q
C、n=*q
D、p=n
p,q同為整型指針變量,二者里面僅能存放整型變量的地址。
選項A,q中為地址,因此可將此地址賦給p
選項B,*p表示p所指向?qū)ο髇的內(nèi)容,即一個整數(shù);*q表示q所指向?qū)ο蟮膬?nèi)容,由于在定義q時為其初始化,將p中n的地址給q,因此p中存放n的地址,*q表示q所指向?qū)ο髇的內(nèi)容.因此*p=*q 相當于 n=n;
選項C,n=*q 等價于n=n;
選項D,p中只能存放地址,不能將n中的整數(shù)值賦給p
8.有語句:int a[10],;則 B 是對指針變量p的正確定義和初始化。
A、int p=*a;
B、int *p=a;
C、int p=&a;
D、int *p=&a;
選項A,a是數(shù)組名,不是指針變量名,因此不可用*標注數(shù)組名a
選項C,a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號。而且在定義指針變量p時,應(yīng)在變量名前加*,標明p是指針變量
選項D,a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號。
9.若有說明語句“int a[5],*p=a;”,則對數(shù)組元素的正確引用是( C )。
A、a[p]
B、p[a]
C、*(p+2)
D、p+2
首先定義一個整型數(shù)組a,a的長度為5,然后定義一個指針變量p,并同時對p進行初始化,將數(shù)組a的地址賦給p。因此此時p中存放的數(shù)組a的首地址,即數(shù)組中第一個元素a[0]的地址。
對于數(shù)組元素下標的引用(詳見p144), 一般形式 數(shù)組名[下標] 其中下標為邏輯地址下標,從0開始計數(shù),方括號中的下標可以是變量,可以是表達式,但結(jié)果一定要是整數(shù)。
選項A,p中存放的是地址,不是整數(shù),不能做數(shù)組元素的下標
選項B,a是數(shù)組名,數(shù)組名就是地址,不是整數(shù),不能做數(shù)組元素的下標
選項C,(重點!!!詳見p231~234) p+2表示指向同一數(shù)組中的下兩個元素的地址,當前p指向a[0],則p+2表示a[2]的地址,因此*(p+2)表示a[2]的內(nèi)容
10. 有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;
則數(shù)值為9的表達式是 B
A、 *P+9
B、 *(P+8)
C、 *P+=9
D、P+8
(重點!!!詳見p231~234)
首先定義一個整型數(shù)組a,a的長度為5,然后定義一個指針變量P,并同時對P進行初始化,將數(shù)組a的地址賦給P。因此此時P中存放的數(shù)組a的首地址,即數(shù)組中第一個元素a[0]的地址。
數(shù)組中9對應(yīng)的是a[8], 選項B,P+8表示數(shù)組中后8個元素的地址,即a[8]的地址。*(P+8)則表示該地址內(nèi)所存放的內(nèi)容,即a[8]的值。
選項A,*P表示P所指向?qū)ο蟮膬?nèi)容,此時P指向a[0], *P即a[0]的值1. *P+9=1+9=10
選項C,*P表示P所指向?qū)ο蟮膬?nèi)容,此時P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等價于a[0]=a[0]+9.
選項D,P+8表示數(shù)組中后8個元素的地址,即a[8]的地址,而非a[8]中的值。
11 以下敘述中正確的是()
A.用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)
B.實用的C語言源程序總是由一個或多個函數(shù)組成
C.不同函數(shù)的形式參數(shù)不能使用相同名稱的標識符
D.在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)
參考答案:B
參考解析:A選項中,”用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)”描述是不正確的,也可以調(diào)用自定義函數(shù);C選項中,對于不同函數(shù)的形式參數(shù)可以使用相同名稱的標識符;D選項中,關(guān)于函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。因此B選項正確。
12 以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是( )。
A.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
B.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型
C.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
D.整數(shù)類型表示的自然數(shù)是準確無誤差的
參考答案:C
參考解析:C語言中沒有邏輯類型,所以c錯誤。若要保存帶有多位小數(shù)的數(shù)據(jù),可以用單精度類型也可以用雙精度類型。處理包含不同類型的相關(guān)數(shù)據(jù)可以定義為結(jié)構(gòu)體類型。整數(shù)類型可以無誤差的表示自然數(shù)。
13下面選項中關(guān)于編譯預(yù)處理的敘述正確的是
A.預(yù)處理命令行必須使用分號結(jié)尾
B.凡是以#號開頭的行,都被稱為編譯預(yù)處理命令行
C.預(yù)處理命令行不能出現(xiàn)在程序的最后一行
D.預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處
參考答案:B
參考解析:本題考查預(yù)編譯的預(yù)編譯處理命令行,預(yù)處理命令行不能以分號結(jié)尾,所以A選項錯誤,預(yù)處理命令行可以出現(xiàn)在程序的最后一行,預(yù)處理命令行作用域是整個文件。
14有以下程序
程序的輸出結(jié)果是
A.0B.1C.9D.10
參考答案:B
參考解析:本題考查宏定義,宏定義只是做個簡單的替換。執(zhí)行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的結(jié)果為1,選項B正確。
15 設(shè)--X樹共有150個結(jié)點,其中度為l的結(jié)點有l(wèi)0個,則該---X樹中的葉子結(jié)點數(shù)為( )。
A.71B.70C.69D.不可能有這樣的二叉樹
參考答案:D
參考解析:在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件個數(shù)稱為該結(jié)點的度,所有結(jié)點中最大的度稱為樹的度。對任何一棵二叉樹,度為0的結(jié)點總是比度為2的結(jié)點多一個。如果有一棵二叉樹,結(jié)點總數(shù)為l50,假設(shè)度為0的結(jié)點個數(shù)為n,則有n+10+n一1=150,n=70.5,由于結(jié)點個數(shù)必須是整數(shù),所以不可能有題目中這樣的二叉樹。故選擇D選項。
【計算機二級考試C語言復(fù)習(xí)題及答案】相關(guān)文章:
計算機二級《C語言》模擬試題及答案10-24
計算機二級C語言真題及答案07-11
計算機二級考試C++試題及答案09-20
國家計算機二級c語言題庫及答案09-05
全國計算機二級c語言題庫試題及答案07-19
計算機二級考試C語言知識點09-30
計算機C語言試題及答案07-17
2016年計算機二級c語言真題及答案09-19
2017年計算機二級考試C語言考試試題07-26
2017年c語言二級考試技巧07-17