21.若有以下數(shù)組說明,則i=10;a[a[i]]元素數(shù)值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
先算a[a[i]]內(nèi)層的a[i],由于i=10,因此a[i]即a[10].
a[10]對應(yīng)下面數(shù)組中的元素為9. 因此a[a[i]]即為a[9]
a[9]對應(yīng)下面數(shù)組中的元素為6. 因此a[9]即為6
22.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數(shù)組a的第一維的大小為: ( B )
A、2
B、3
C、4
D、無確定值
5 7
D、3 6 9
二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),在本題中,按行對二維數(shù)組賦值,因此內(nèi)層有幾個大括號,數(shù)組就有幾行
23.對二維數(shù)組的正確定義是(C )
詳見教材P149~152,二維數(shù)組的定義、初始化
類型符 數(shù)組名 [常量表達(dá)式][常量表達(dá)式]
二維數(shù)組可以看做是矩陣
類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標(biāo)識符命名規(guī)則;第一個常量表達(dá)式是指數(shù)組的行數(shù);第二個常量表達(dá)式是指數(shù)組的列數(shù);常量表達(dá)式的值只能是整數(shù),不可以是變量,而且從1開始計數(shù)。
一維數(shù)組初始化時可以省略數(shù)組長度
二維數(shù)組初始化時可以省略行數(shù),但不能省略列數(shù)
選項A,B,都省略了列數(shù)
選項D,不符合二維數(shù)組定義的一般形式,行、列常量表達(dá)式應(yīng)該放在不同的[]中
A、int a[ ][ ]={1,2,3,4,5,6};
B、int a[2] []={1,2,3,4,5,6};
C、int a[ ] [3]={1,2,3,4,5,6};
D、int a[2,3]={1,2,3,4,5,6};
24.已知int a[3][4];則對數(shù)組元素引用正確的是__C___
A、a[2][4]
B、a[1,3]
C、a[2][0]
D、a(2)(1)
詳見教材P150,數(shù)組元素的引用
數(shù)組名[下標(biāo)] [下標(biāo)]
引用數(shù)組元素時,[ ]中的下標(biāo)為邏輯地址下標(biāo),只能為整數(shù),可以為變量,且從0開始計數(shù)
第一個[下標(biāo)]表示行邏輯地址下標(biāo),第二個[下標(biāo)]表示列邏輯地址下標(biāo)。
本題圖示詳見P149圖6.7
因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;
選項A,列邏輯地址下標(biāo)超過范圍
選項B,D,的引用形式不正確。
25.C語言中函數(shù)返回值的類型是由 A 決定的.
A、函數(shù)定義時指定的類型
B、 return語句中的表達(dá)式類型
C、 調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型
D、形參的數(shù)據(jù)類型
26. 在C語言中,函數(shù)的數(shù)據(jù)類型是指(A )
A、 函數(shù)返回值的數(shù)據(jù)類型
B、 函數(shù)形參的數(shù)據(jù)類型
C、 調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型
D、任意指定的數(shù)據(jù)類型
27.在函數(shù)調(diào)用時,以下說法正確的是( B )
A、函數(shù)調(diào)用后必須帶回返回值
B、實際參數(shù)和形式參數(shù)可以同名
C、函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量
D、主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里
28. 在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是: ( C )
A、 auto
B、 register
C、static
D、extern
29.未指定存儲類別的變量,其隱含的存儲類別為(A )。
A、auto
B、static
C、extern
D、register
30. 若有以下說明語句:
struct student
{ int num;
char name[ ];
float score;
}stu;
則下面的敘述不正確的是: (D )
A、 struct是結(jié)構(gòu)體類型的關(guān)鍵字
B、 struct student 是用戶定義的結(jié)構(gòu)體類型
C、 num, score都是結(jié)構(gòu)體成員名
D、 stu是用戶定義的結(jié)構(gòu)體類型名
31.若有以下說明語句:
struct date
{ int year;
int month;
int day;
}brithday;
則下面的敘述不正確的是__C___.
A、 struct是聲明結(jié)構(gòu)體類型時用的關(guān)鍵字
B、 struct date 是用戶定義的結(jié)構(gòu)體類型名
C、 brithday是用戶定義的結(jié)構(gòu)體類型名
D、year,day 都是結(jié)構(gòu)體成員名
32. 以下對結(jié)構(gòu)變量stul中成員age的非法引用是 B
struct student
{ int age;
int num;
}stu1,*p;
p=&stu1;
A、 stu1.age
B、 student.age
C、 p->age
D、(*p).age
33.設(shè)有如下定義:
struck sk
{ int a;
float b;
}data;
int *p;
若要使P指向data中的a域,正確的賦值語句是 C
A、 p=&a;
B、 p=datA、a;
C、p=&datA、a;
D、*p=datA、a;
34.設(shè)有以下說明語句:
typedef struct stu
{ int a;
float b;
} stutype;
則下面敘述中錯誤的是( D )。
A、struct是結(jié)構(gòu)類型的關(guān)鍵字
B、struct stu是用戶定義的結(jié)構(gòu)類型
C、a和b都是結(jié)構(gòu)成員名
D、stutype是用戶定義的結(jié)構(gòu)體變量名
35.語句int *p;說明了 C 。
A、p是指向一維數(shù)組的指針
B、p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)
C、p是指向int型數(shù)據(jù)的指針 // 指針的定義教材P223
D、p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針
36.下列不正確的定義是( 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正確)
37. 若有說明: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 相當(dāng)于 n=n;
選項C,n=*q 等價于n=n;
選項D,p中只能存放地址,不能將n中的整數(shù)值賦給p
38.有語句:int a[10],;則 B 是對指針變量p的正確定義和初始化。
A、int p=*a;
B、int *p=a;
C、int p=&a;
D、int *p=&a;
選項A,a是數(shù)組名,不是指針變量名,因此不可用*標(biāo)注數(shù)組名a
選項C,a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號。而且在定義指針變量p時,應(yīng)在變量名前加*,標(biāo)明p是指針變量
選項D,a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號。
39.若有說明語句“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進(jìn)行初始化,將數(shù)組a的地址賦給p。因此此時p中存放的數(shù)組a的首地址,即數(shù)組中第一個元素a[0]的地址。
對于數(shù)組元素下標(biāo)的引用(詳見p144), 一般形式 數(shù)組名[下標(biāo)] 其中下標(biāo)為邏輯地址下標(biāo),從0開始計數(shù),方括號中的下標(biāo)可以是變量,可以是表達(dá)式,但結(jié)果一定要是整數(shù)。
選項A,p中存放的是地址,不是整數(shù),不能做數(shù)組元素的下標(biāo)
選項B,a是數(shù)組名,數(shù)組名就是地址,不是整數(shù),不能做數(shù)組元素的下標(biāo)
選項C,(重點!!!詳見p231~234) p+2表示指向同一數(shù)組中的下兩個元素的地址,當(dāng)前p指向a[0],則p+2表示a[2]的地址,因此*(p+2)表示a[2]的內(nèi)容
40. 有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;
則數(shù)值為9的表達(dá)式是 B
A、 *P+9
B、 *(P+8)
C、 *P+=9
D、P+8
(重點!!!詳見p231~234)
首先定義一個整型數(shù)組a,a的長度為5,然后定義一個指針變量P,并同時對P進(jìn)行初始化,將數(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]中的值。
41. 在C語言中,以 D 作為字符串結(jié)束標(biāo)志
A、’\n’
B、’ ’
C、 ’0’
D、’\0’
42.下列數(shù)據(jù)中屬于“字符串常量”的是( A )。
A、“a”
B、{ABC}
C、‘a(chǎn)bc\0’
D、‘a(chǎn)’
若干個字符構(gòu)成字符串
在C語言中,用單引號標(biāo)識字符;用雙引號標(biāo)識字符串
選項B,C,分別用{}和’’標(biāo)識字符串
選項D,標(biāo)識字符。
43.已知char x[]="hello", y[]={'h','e','a','b','e'};, 則關(guān)于兩個數(shù)組長度的正確描述是 B .
A、相同
B、x大于y
C、x小于y
D、以上答案都不對
C語言中,字符串后面需要一個結(jié)束標(biāo)志位'\0',通常系統(tǒng)會自動添加。
對一維數(shù)組初始化時可采用字符串的形式(例如本題數(shù)組x),也可采用字符集合的形式(例如本題數(shù)組y)。在以字符串形式初始化時,數(shù)組x不盡要存儲字符串中的字符,還要存儲字符串后的結(jié)束標(biāo)志位,因此數(shù)組x的長度為6;在以字符集合形式初始化時,數(shù)組y,僅存儲集合中的元素,因此數(shù)組y長度為5
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |