當前位置:學者齋 >

計算機 >C語言 >

2017年計算機二級C語言精選習題

2017年計算機二級C語言精選習題

練習做多了自然會形成自己的做題方法和速度,為此,今天本站小編為大家整理了以下2017年計算機二級C語言精選習題,希望對大家有幫助!

2017年計算機二級C語言精選習題

1.下列説法正確的是( )。

A.在C語言中,可以使用動態內存分配技術定義元素個數可變的數組

B.在c語言中,數組元素的個數可以不確定,允許隨機變動

C.在C語言中,數組元素的數據類型可以不一致

D.在C語言中,定義一個數組後.就確定了它所容納的元素的個數

2.表達式“~0x11”的值是( )。

A.0xFFEE

B.0x71

C.0x0071

D.0xFFF1

3.下列程序的輸出結果是( )。

main()

{ int p[8]={11,12,13,14,15,16,17,18},i=0,j =0;

while(i++<7)

if(p[i]%2)j+=p[i];

printf("%dn",j);

}

A.42

B.45

C.56

D.60

4.下列程序的輸出結果是( )。

#included stdi0.h>

#included string.h>

void fun(int b[])

{ static int i=0;

do

{ b[i]+=b[i+1];

}while(++i<2);

}

main()

{ int k,a[5]={1,3,5,4,9};

fun(a);

for(k=0;k<5;k++)printf("%d",a[k]);

}

A.13579

B.48579

C.48549

D.48999

5.有以下程序:

main()

{ int a=1,b=3,C=5,*P;

int*p1=&a,*p2=&b,*p3=&c;

*p=*p1*(*p2);

}

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

A.1

B.2

C.3

D.4

6.有以下程序:

fun(int x)

{ int P;

if(x==0 || x==l)return(3);

p=x-fun(x-2);

return p;

}

main()

{printf("%dn",fun(7));}

程序執行後的輸出結果是( )。

A.7

B.3

C.2

D.0

7.下述程序的運行結果是( )。

#included stdio.h>

#included strin9.h>

main()

{ char*s1="abDuj";

char*s2="ABdUG";

int t;

t=strcmp(s1,s2);

printf("%d",t);

}

A.正數

B.負數

C.零

D.不確定的值

8.下列程序中c的二進制值是( )。

char a=2,b=4,c;

c=a^b>>2;

A.00000011

B.00010100

C.00011100

D.00011000

9.函數fseek()的正確調用形式是( )。

k(位移量,起始點,文件類型指針);

k(文件類型指針,位移量,起始點);

k(文件類型指針,起始點,位移量);

k(起始點,位移量,文件類型指針);

10.下列敍述正確的是( )。

A.C語言中的文件是流式文件,因此只能順序存取數據

B.打開一個已存在的文件並進行了寫操作後,原有文件中的全部數據必定被覆蓋

C.在一個程序中當對文件進了寫操作後,必須先關閉該文件然後再打開,才能讀到第1個數據

D.當對文件的讀(寫)操作完成之後,必須將它關閉,否則可能導致數據丟失

  參考答案及解析:

1.D。【解析】在C語言中,數組元素的個數是確定的,不允許隨機變動,數組定義好後,它所能容納的元素的個數也就確定了,並且同一個數組中所有元素都是同一類型。

2.A。【解析】本題主要考查按位求反運算:十六進制整型常量的形式是以數字Ox開頭的十六進制字符串;位求反運算的規則是:將二進制表示的運算對象按位取反,即將1變0,將0變1。

3.B。【解析】C語言中,數組的下標默認為0,因此數組P的下標從0開始,所以p[8]的範圍為0~7。第l次循環i=0,執行循環,得出i=1,因此p[i]為p[1]=12,12%2= 0,不執行後面的語句;接着進行第2次循環,此時i=1,小於7執行循環,並且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執行後面的語句;依此類推最後退出循環。最後j 的值為:j=13+15+17=45。

4.C。【解析】本題考查do-while循環,在fun函數中,首先定義了靜態變量i=0,do-while循環要實現的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規則重新給b數組賦值。在主函數中,通過調用fun函數,按上面的規則對數組a重新賦值,最後輸出數組a。

5.C。【解析】本題中指針p1、p2、p3指向a、b、c值所存放的`地址空間,然後再將指針變量*p1、*p2中值的乘積賦給指針變量*P,即賦給變量c,輸出c的值3。

6.C。【解析】在函數funlint x)中,有個if語句判斷,如果參數x等於0或1時,返回值,否則進入下面的p=x-fun (x-2)遞歸函數。當在主函勢中調用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun (1)))=7-(5-(3—3))=7-5=2”,所以最後的輸出結果為2。

7.A。【解析】本題考查符符串比較函數和兩個字符串比較的原則這兩個知識點。

(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大

(2)strcmp(s1,s2)的返回值,當str1str2,返回值為正數。

8.A。【解析】本題主要者查右移運算和按位異或。把b化為二進制數為00000100,右移兩位後為00000001,a的二進制為00000010,兩者異或為00000011。

9.B。【解析】指針函數fseek()的調用形式為:fseek (fp,offset,position);fseek函數參數説明:“fp”是指向該文件的文件型指針;“offset”為位移量,是指從起始點position 到要確定的新位置的字節數。以起點為基準,向前移動字節數。“position”為起始點,指出以文件的什麼位置為基準進行移動,position的值用整型常數表示,“0”表示文件的開頭,“1”表示文件的當前位置,“2”表示文件的末尾。

10.D。【解析】在C語言巾,文件的存取方式有兩種:順序存取和直接存取。如果以“a”的方式對已打開的文件進

行寫操作後,則原文件中內容將保存,新的數據寫在原有內容之後。如果以“a+”的方式勾讀和寫操作而打開文件,則可以對文件進行讀寫,而且在讀和寫操作之間不必關閉文件,可以從頭開始讀。當對文件的讀(寫)操作完成之後,必須將它關閉。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-mo/jsj/cyuyan/o6xx4n.html