2017二級c語言題庫

來源:文萃谷 2.32W

C語言提供多種運算符和表達式值的方法,對問題的表達可通過多種途徑獲得,其程序設計更主動、靈活。下面是小編收集的2017二級C語言題庫,希望大家認真練習!

2017二級c語言題庫

  判斷題

× 1.指針是變量,它具有的值是某個變量或對象的地址值,它還具有一個地址值,這兩個地址值是相等的。

√ 2.指針的類型是它所指向的變量或對象的類型。

× 3.定義指針時不可以賦初值。

√ 4.指針可以賦值,給指針賦值時一定要類型相同,級別一致。

× 5.指針可以加上或減去一個int型數,也可以加上一個指針。

√ 6.兩個指針在任何情況下相減都是有意義的。

√ 7.數組元素可以用下標表示,也可以用指針表示。

× 8.指向數組元素的指針只可指向數組的首元素。

√ 9.指向一維數組的指針是一個二級指針。

× 10.指針數組的元素可以是不同類型的指針。

√ 11.字符指針是指向字符串的指針,可以用字符串常量給字符指針賦值。

× 12.引用是一種變量,它也有值和地址值。

√ 13.引用是某個變量的別名,引用是被綁定在被引用的變量上。

√ 14.創建引用時要用一個同類型的變量進行初始化。

√ 15.指針是變量,它可以有引用,而引用不能有引用。

  單項選擇

1 下列數據中,為字符串常量的是()。 D

A、'A'

B、How do you do.

C、$abc

D、"house"

2 以下所列的C語言常量中,錯誤的是( )。 B

A、0xFF

B、1.2e0.5

C、2L

D、'72'

3 以下程序的輸出結果是()。 D

main()

{float x=3.6;

int i;

i=(int)x;

printf("x=%f,i=%dn",x,i);

}

A、x=3.600000,i=4

B、x=3 i=3.600000

C、x=3,i=3

D、x=3.600000,i=3

4 若k是整型,則以下程序段的執行結果是:( ) B

k=-3;

if(k<=0) printf("####")

else printf("&&&&");

A、####

B、有語法錯誤,無結果

C、&&&&

D、####&&&&

5 若x=2,y=3則x||y的結果是( )。 C

A、3

B、0

C、1

D、2

6 針對下列程序段回答問題( B ).

for(t=1;t<=100;t++)

{

scanf("%d",&x);

if(x<0) continue;

printf("=",t);

}

A、x>=0時什麼也不輸出

B、最多允許輸出100個非負整數

C、printf函數永遠也不執行

D、當x<0時整個循環結束

7 以下程序的執行結果是( )。 B

main()

{ int num = 0;

while( num <= 2 ) { num++; printf( "%d,",num ); } }

A、0,1,2

B、1,2,3,

C、1,2,3,4,

D、1,2,

8 選擇正確的輸入語句( D )。:(其中:char string[20];)使得string的內容為"I am student".

A、scanf("%s", string);

B、scanf("%c", &string);

C、scanf("%s", &string);

D、gets(string);

9 對以下説明語句 int a[10]={6,7,8,9,10}; 的正確理解是()。 B

A、將5個初值依次賦給a[6]至a[10]

B、將5個初值依次賦給a[0]至a[4]

C、因為數組長度與初值的個數不相同,所以此語句不正確

D、將5個初值依次賦給a[1]至a[5]

10 以下標識符中可以作為用户函數名的'是( ). D

A、struct

B、int

C、union

D、go_to

11 以下敍述錯誤的是( ). B

A、函數調用可以出現在一個表達式中

B、函數調用可以作為一個函數的形參

C、函數調用可以作為一個函數的實參

D、函數允許遞歸調用

12 若用數組名作為函數的實參,傳遞給形參的是()。 B

A、數組第一個元素的值

B、數組的首地址

C、數組元素的個數

D、數組中全部元素的值

13 在C語言程序中()。 B

A、函數的定義可以嵌套,但函數的調用不可以嵌套

B、函數的定義不可以嵌套,但函數的調用可以嵌套

C、函數的定義和函數調用不可以嵌套

D、函數的定義和函數調用均可以嵌套

14 下列説法中正確的是( ). B

A、函數調用不佔運行時間,只佔編譯時間.

B、宏替換不佔運行時間,只佔編譯時間.

C、有參數的宏定義,就是函數.

D、在定義宏時,宏名與帶參數的括弧之間可以加空格.

15 若有説明:int *p,m=5,n;以下正確的程序段是()。D

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

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

C、p=&n;scanf("%d",&p);

D、p=&n;scanf("%d",p);

16 對於下述定義,不正確的敍述是( ). B

union data

{int i;

char c;

float f;

}a,b;

A、變量a的地址和它的各成員地址都是相同的

B、可以在定義類型的同時定義變量a,並對a的任意成員初始化

C、變量a所佔內存的長度等於成員f的長度

D、如果有定義語句 union data a={6};則對變量a的初始化是正確的

熱門標籤