當前位置:才華齋>計算機>計算機二級>

2015年下半年計算機二級考試C語言模擬試題及答案(四)

計算機二級 閱讀(2.48W)

 一、選擇題

2015年下半年計算機二級考試C語言模擬試題及答案(四)

1.已知函式的呼叫形式:fread(buffer,size,count,fp);其中buffer代表的是(B)。

A、一個儲存區,存放要讀的資料項

B、一個指標,指向要讀入資料的存放地址

C、一個檔案指標,指向要讀的檔案

D、一個整數,代表要讀入的資料項總數

2.結構體型別的定義允許巢狀是指(A)。

A、成員是已經或正在定義的結構體型

B、定義多個結構體型

C、成員可以重名

D、結構體型可以派生

3.對結構體型別的變數的成員的訪問,無論資料型別如何都可使用

的運算子是(B)。

A、&

B、.

C、*

D、->

4.若有以下的定義:int t[3][2];能正確表示t陣列元素地址的表示式是(D)。

A、&t[1]

B、t[3]

C、&t[3][2]

D、t[2]

5.若有說明: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;*p=m;

6.若定義:int a=511,*b=&a;, 則printf("%dn",*b);的輸出結果為(D)。

A、無確定值

B、a的地址

C、512

D、511

7.下列說法中正確的是(B ).

A、函式呼叫不佔執行時間,只佔編譯時間.

B、巨集替換不佔執行時間,只佔編譯時間.

C、有引數的巨集定義,就是函式.

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

C語言程式中,若對函式型別未加宣告,則函式的型別系統預設為(C)。

A、void

B、double

C、int

D、char

8.若已定義的函式有返回值,則以下關於該函式呼叫的敘述中錯誤的是(A)。

A、函式呼叫可以作為一個函式的形參

B、函式呼叫可以作為一個函式的實參

C、函式呼叫可以作為獨立的語句存在

D、函式呼叫可以出現在表示式中

9.對於void型別函式,呼叫時不可作為(B)。

A、迴圈體裡的語句

B、表示式

C、if語句的成分語句

D、自定義函式體中的語句

10.C語言規定,函式返回值的型別是由(A)。

A、在定義該函式時所指定的函式型別所決定

B、return語句中的表示式型別所決定

C、呼叫該函式時系統臨時決定

D、呼叫該函式時的主調函式型別所決定

11.以下定義語句中,錯誤的是(A)。

A、int n=5,a[n];

B、int a[]={1,2};

C、char s[10]="test";

D、char *a[3];

12.以下不能對二維陣列a進行正確初始化的語句是(A)。

A、int a[2][3]={{1,2},{3,4},{5,6}};

B、int a[][3]={{1,2},{0}};

C、int a[2][3]={0};

D、int a[][3]={1,2,3,4,5,6};

13.在C語言中,引用陣列元素時,其陣列下標的資料型別允許是(B)。

A、整型常量

B、整型常量或整型表示式

C、整型表示式

D、任何型別的表示式

a[10];合法的陣列元素的最小下標值為(D)。

A、10

B、9

C、1

D、0

15.下列陣列說明中,正確的是(B)。

A、int array[][];

B、int array[][4];

C、int array[3][];

D、int array[][][5];

16.以下正確的描述是(A ).

A、只能用continue語句來終止本次迴圈

B、switch語句中不能出現continue語句

C、在迴圈中break語句不能獨立出現

D、goto語句只能用於退出多層迴圈

17.針對for迴圈語句,for(表示式1;表示式2;表示式3),下列說法正確的是(B ).

A、break語句可以一次性跳出多層巢狀迴圈

B、break語句只能跳出最內層迴圈

C、continue語句可以一次性跳出多層巢狀迴圈

D、continue語句不能跳出最外層迴圈

18.下面程式正確的執行結果是(B ).(答案中用大寫字母U代表空格)

main()

{

int num=0;

while(num<=2)

{

num++;

printf("=",num);

}

}

A、UU1

B、UU1UU2UU3

C、UU1UU2UU3UU4

D、UU1UU2

19.以下程式的執行結果是(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,

20.C語言中,switch後的括號內表示式的值可以是( C)。

A、只能為整型和字元型

B、只能為整型

C、任何型別

D、只能為整型,字元型,列舉型

21.下列運算子中,不屬於關係運算符的是(C)。

A、>=

B、>

C、!

D、<

22.下面說法不正確的是:(C )。

A、a為真b為假,則a&&b為假

B、a為真b為假,!a&&b為假

C、a為真b為假,則a||b為假

D、a為真,!a-1為真

23.以下運算子中,優先順序最高的運算子是(D)。

A、==

B、||

C、%

D、!

24.已知鍵盤輸入a=4,b=3,下面程式輸出的結果是( C).

main()

{ int a,b,s;

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

s=a;

if(a   s=s*s;

printf("%dn",s);

}

A、9

B、13

C、16

D、15

25.為表示關係x>=y>=z,應使用C語言表示式為:( A)

A、(x>=y)&&(y>=z)

B、(x>=y)&(y>=z)

C、(x>=y)AND(y>=z)

D、(x>=y>=z)

26.已定義float a; int i;選擇正確的輸入語句(C ).

A、scanf("%6.2f=", &a,&i);

B、scanf("%f%s", &a,&i);

C、scanf("o=",&a,&i);

D、scanf("%f%d", a,i);

27.根據下面的程式,正確的輸出形式是(A );

main()

{

int i=5,j=10;

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

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

}

A、i=5, j=10

B、10,5

C、5,10

D、i=5Uj=10

28.若有以下程式:

main()

{

int k=2,i=2,m;

m=(k+=i*=k);

printf("%d,%dn",m,i);

}

29執行後的輸出結果是(D )。

A、8,3

B、7,4

C、8,6

D、6,4

30下列字元序列中,不可用作C語言識別符號的是(C)。

A、b70

B、a_1

C、#ab

D、symbol

31設C語言中,int型別資料佔2個位元組,則unsigned型別資料佔(C)。

A、1個位元組

B、8個位元組

C、2個位元組

D、4個位元組

32已知f是float型的變數,對於語句f=(2.0,1.0,0.0),(3.0,4.0,5.0);的判斷中,正確的是(B ).

A、使 f 的值為5.000000

B、使 f 的值為0.000000

C、使 f 的值為2.000000

D、語法錯誤

33執行下列語句後變數x和y的值是(A)。

y=10;x=y++;

A、x=10,y=11

B、x=11,y=11

C、x=11,y=10

D、x=10,y=10

34設有說明:char c; int x; double z;則表示式c*x+z值的資料型別為( C)。

A、char

B、int

C、double

D、float

35以下資料中,不正確的數值或字元常量是(D)。

A、82.5

B、0xff00

C、10

D、8.9e1.2

36若int a=2,則執行完表示式a-=a+=a*a後,a的值是(C )。

A、-4

B、-8

C、0

D、-2

37以下運算子中,優先順序最高的運算子是(C)。

A、!=

B、*(乘號)

C、( )

D、=

38下列資料中,為字串常量的是(D)。

A、A

B、How do you do.

C、$abc

D、"house"

39以下識別符號中,不能作為合法的C使用者定義識別符號的是(D)。

A、INT

B、_123

C、_double

D、putchar

40經下列語句定義後,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在

微機上的值分別為(D)。

char x=65;

float y=7.3;

int a=100;

double b=4.5;

A、1,2,2,4

B、2,4,2,8

C、2,2,2,4

D、1,4,2,8

41以下識別符號中,不能作為合法的C使用者定義識別符號的是(B)。

A、a3_b3

B、void

C、_123

D、IF

42能將高階語言編寫的'源程式轉換為目標程式的是(A)。

A、編譯程式

B、連結程式

C、解釋程式

D、編輯程式

43C語言的註釋定界符是(D)。

A、[ ]

B、{ }

C、* *

D、/* */

44C語言源程式的基本單位是(B)。

A、子程式

B、函式

C、識別符號

D、過程

45在下列程式段中,列舉變數c1,c2的值依次是(A)。

enum color {red,yellow,blue=4,green,white} c1,c2;

c1=yellow;c2=white;

printf("%d,%dn",c1,c2);

A、1,6

B、2,5

C、2,6

D、1,4

46定義int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中0≤i≤9,則對a陣列元素的引用不正確的是____.C

A、p[i]

B、a[p-a]

C、*(*(a+i))

D、*(&a[i])

47執行下面程式段後,ch的值是:____D

char ch=’Z’;

ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;

A、A

B、Z

C、a

D、z

48能正確進行字串賦值操作的語句是_____ .A

A、char *s; scanf("%s",s);

B、char *s; s=’ABCDEF’;

C、char s[5]={"ABCDE"};

D、char s[5]={’A’,’B’,’C’,’D’,’E’};

49按照C語言規定,程式中各函式之間,以下敘述不正確的是______.B

A、主函式可以呼叫其它任何函式.

B、允許巢狀定義.

C、允許遞迴呼叫.

D、允許巢狀呼叫.

50.已經有prt( )函式的定義,假設以下各程式中對函式的說明是正確的,

以下程式段中有語法錯誤的是( D ).

A、main() { int k; void prt( );…prt(’A’);…}

B、main() { int k; int prt( );…k=prt(’A’);…}

C、main() { int k; char prt( );…k=k+prt(65);…}

D、main(){ int k; void prt( );…k=prt(’A’);…}