往年桂林某電子科技大學C語言專升本練習(十二套試卷)及答案_第1頁
往年桂林某電子科技大學C語言專升本練習(十二套試卷)及答案_第2頁
往年桂林某電子科技大學C語言專升本練習(十二套試卷)及答案_第3頁
往年桂林某電子科技大學C語言專升本練習(十二套試卷)及答案_第4頁
往年桂林某電子科技大學C語言專升本練習(十二套試卷)及答案_第5頁
已閱讀5頁,還剩191頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

桂林電子科技大學

C語言專升本練習(一)

總分:100分考試時間:60分鐘

注意事項:

>答題前要仔細閱讀答題卡上的“考生須知填好姓名、準考證號填寫清楚,字跡不能

超出框線。

>考生必須在答題卡上與題號相對應的答題區(qū)域內(nèi)答題,書寫在試卷(題簽)、草稿紙上

或答題卡上非題號對應的答題區(qū)域的答案一律無效。

>考試中途不能無端離場,否則視為放棄。

一、單項選擇題(每小題2分,共100分)

1、關于異常的含義,下列描述中最正確的一個是。

A、程序編譯錯誤

B、程序語法錯誤

C、程序自定義的異常事件

I)、程序編譯或者運行時發(fā)生的異常事件

【答案】D

【解析】異常是在程序編譯或運行中所發(fā)生的可預料的或不可預料的異常事

件,它會引起程序的中斷,影響程序正常運行。

2、下面程序段的輸出結果是。

#include<stdio.h>

main()

(

floatx=l.236547;

printf(n%f\nn,(int)(x*1000+0.5)/(float)1000);

}

A、1.237000

B、輸出格式說明與輸出項不匹配,輸出無定值

C、1.236000

D、1.24

【答案】A

【解析】本題中,(int)(x*1000+0.5)的結果為(237,(float)1000是將1000

強制轉(zhuǎn)換成float類型;整個表達式(int)(x*1000+0.5)/(float)1000的結果

為1.237000,再以實數(shù)(6位小數(shù))形式輸出。

3、下列表達式為關系表達式的為o(其中a為一整型變量)

A、3+4*5

B、a==10

C^a>Oa:-a

D、a=l

【答案】B

4、以下程序的輸出結果是。

main()

(

inta=l,b=O,x=l,y=l;

switch(a)

(

case1:switch(b)

(

case0:x++;

break;

casel:y++;

break;

)

case2:x++;

y++;

break;

)

printf(M%d,%d\nn,x,y);

A、2,1

B、2,3

C、3,2

D、32

【答案】C

5、若要定義a為3X4的二維數(shù)組,正確的定義語句是一

A、floata(3,4);

B、floata[3][4];

C、floata(3)(4);

D、floata[3,4];

【答案】B

6、下列語句序列執(zhí)行后,i的值是。inti=10;do(i-=2;}while(i>6);

A、10

B、8

C、6

D、4

【答案】C

7、有以下程序

main()

(

charp[]={'a','b','c'},q[10]={'a','b','c');

printf("%d%d\n",strlen(p),strlen(q));

}

以下敘述中正確的是。

A、在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3

B,由于p數(shù)組中沒有字符串結束符,長度不能確定;但q數(shù)組中字符串長度為3

C、由于q數(shù)組中沒有字符串結束符,長度不能確定;但p數(shù)組中字符串長度為3

D、由于p和q數(shù)組中都沒有字符串結束符,故長度都不能確定

【答案】B

8、c程序中的宏展開是在。

A、編譯時進行的

B、程序執(zhí)行時進行的

C、編譯前預處理時進行的

D、編輯時進行的

【答案】C

9、以下關于字符串的敘述中正確的是o

A、c語言中有字符串類型的常量和變量

B、兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較

C、可以用關系運算符對字符串的大小進行比較

D、空串一定比空格打頭的字符串小

【答案】D

10,將二進制數(shù)101101101111轉(zhuǎn)換成十六進制數(shù)是。

A、5557

B、B6F

C,7555

D、F6B

【答案】B

11、printf函數(shù)中用到格式符%-6s,其中數(shù)字6表示輸出的字符串占用6列。如果字符串長

度小于6,則輸出按方式。

A、從左起輸出該字符串,右補空格

B、從右起輸出該字符串,左補空格

C、0

D、輸出錯誤信息

【答案】A

12、在位運算中,操作數(shù)每左移兩位,其結果相當于o

A、操作數(shù)乘以2

B、操作數(shù)除以2

C、操作數(shù)除以4

D、操作數(shù)乘以4

【答案】D

13、以下敘述中正確的是。

A、兩個字符串可以用關系運算符進行大小比較

B、函數(shù)調(diào)用strlen(s)會返回字符串s實際占用內(nèi)存的大小(以字節(jié)為單位)

C、C語言本身沒有提供對字符串進行整體操作的運算符

D、當拼接兩個字符串時,結果字符串占用的內(nèi)存空間是兩個原串占用空間的和

【答案】C

【解析】本題考查字符串處理函數(shù)strlen、strcatstrcmp.b選項中strlen

返回的是字符串s實際占用內(nèi)存大小加上結尾符A選項中不能用關系運算符

進行大小比較,可以使用strcmpD選項當使用strcat連接函數(shù)時,內(nèi)存空間

會減少一個字符位置。

14、以下敘述正確的是o

A、C程序中各函數(shù)之間既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用

B、C程序中各函數(shù)之間不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用

C、C程序中各函數(shù)允許直接遞歸調(diào)用,不允許間接遞歸調(diào)用

D、C程序中各函數(shù)之間不允許直接遞歸調(diào)用,允許間接遞歸調(diào)用

【答案】A

15、下面程序的輸出結果是.

#include<stdio.h>

voidmain()

(

inta=5,b=3;

floatx=3.14,y=6.5;

printfCr%d,%d\n",a+b!=a-b,x<=(y-=6.1));

)

A、1,0

B、0,1

C、1,1

D、0,0

【答案】A

16,break語句的正確的用法是_______。

A、無論在任何情況下,都中斷程序的執(zhí)行,退出到系統(tǒng)下一層。

B、在多重循環(huán)中,只能退出最靠近的那一層循環(huán)語句。

C、跳出多重循環(huán)。

I)、只能修改控制變量。

【答案】B

17、在函數(shù)聲明中,下面哪項是不必要的。

A、函數(shù)參數(shù)的類型和參數(shù)名

B、函數(shù)名

C、函數(shù)的類型

D、函數(shù)體

【答案】D

【解析】本題考核函數(shù)的原型聲明格式。解析此題時,要注意函數(shù)定義和函數(shù)

聲明的區(qū)別。

①C中每一個函數(shù)的定義都是由4個部分組成的,即函數(shù)類型、函數(shù)名、函

數(shù)參數(shù)表和函數(shù)體。

②函數(shù)的聲明是為了消除函數(shù)定義的位置影響。不管函數(shù)是在何處定義的,

只要在調(diào)用前進行函數(shù)的聲明,就可保證函數(shù)調(diào)用的合法性。

③函數(shù)原型的說明格式為:

V類型〉〈函數(shù)名〉(<形參表>);

18、以下語句段執(zhí)行后的輸出結果是________0

#include<stdio.h>

main()

(

intk=3;

if(k)printf("###")elseprintf("&&&&");

)

A、###

B、&&&&

C、###&&&&

D、有語法錯誤,不能執(zhí)行

【答案】D

【解析】在C語言中語句結束時應該以分號結尾,程序中的第1個

printf(〃###")輸出語句后面少了一個分號(;),因此執(zhí)行程序時會出錯。

19、已知p,pl為指針變量,a為數(shù)組名,j為整型變量,下列賦值語句中不正確的是—

A、p=&j,p=pl;

B、p=a;

C、p=&a[j];

D、p=10;

【答案】D

20、設有以下語句

typedefstructs

(

intg;

charh;

}

t;

則下面敘述中正確的是。

A、可用S定義結構體變量

B、可以用T定義結構體變量

C、S是struct類型的變量

D、T是structS類型的變量

【答案】A

21、若有以下定義:inta[2][3]={2,4,6,8,10,12}則以下描述不正確的是。

A、*(a+l)為元素的指針

B、a[l]+l為元素a[l][1]的指針

C、*(a+l)+2為元素的指針

D、*a[l]+2的值是12

【答案】D

22、若有定義語句:intx=12,y=8,z;在其后執(zhí)行語句z=0.9+x/y;則z的值為一

A、1.9

B、1

C、2

D、2.4

【答案】B

【解析】如第(14)解析所述,C語言對于表達式運算0.9+x/y后的值是L9,

但給整型量z值,則去掉小數(shù)為1。

23、設cl,c2均是char類型變量,則不正確的函數(shù)調(diào)用為。

A、printf(n%c,%c,H,cl,c2)

B、getchar(cl)

C、putchar(*\')

D、putchar(cl)

【答案】B

24、分析下列程序,其最終執(zhí)行結果是o

main()

(

intn[3],i,j,k;

for(i=0;i<3;i++)n[i]=o;

k=2;

for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]-l;

printf(H%d\nM,n[0]);

A、-2

B、-1

C、0

D、-3

【答案】D

【解析】當i為0,內(nèi)循環(huán)在j為。時,執(zhí)行n[j]=n[i]T;,即n[0]=n[0]-

1,n[0]值變?yōu)門:在j為1時,執(zhí)行n[j]=n[i]-l;,即n[l]=n[0]-l,將-2

賦給n[l]。當i為1時,內(nèi)循環(huán)在j為0時,執(zhí)行n[j]=n[i]T;,即

n[0]=n[l]-l,n[O]值變?yōu)?3;在j為1時,執(zhí)行n[j]=n[i]T;,即

n[l]=n[l]-l,將-3賦給n[l];最后n[0]和n[l]的值均為-3。

25、下列語句定義pf為指向float型變量f的指針是正確的.

A、floatf,*pf=f;

B、floatf,*pf=&f;

C、float*pf=&f,f;

I)、floatf,pf

【答案】B

26、設"intx=2,y=l;",則表達式(!x||y一)的值i是。

A、0

B、1

C、2

D、-1

【答案】B

27、以下不能正確定義二維數(shù)組的選項是。

A、inta⑵[2]={⑴,⑵};

B、inta[][2]={1,2,3,4};

C、inta[2][2]={{1},2,3};

D、inta[2][>{{1,2},{3,4});

【答案】D

28、c語言中非空的基本數(shù)據(jù)類型包括.

A,整型,實型,邏輯型

B、整型,實型,字符型

C、整型,字符型,邏輯型

D、整型,實型,邏輯型,字符型

【答案】B

29、下列選項中,能夠滿足"若字符串si等于字符串s2,則執(zhí)行st”要求的是。

A、if(strcmp(s2,sl)==0)ST;

B、if(sl==s2)ST;

C、if(strcpy(s1,s2)==1)ST;

I)、if(sl-s2==0)ST;

【答案】A

30、文件中有一個位置指針,指向當前讀寫的位置,不可使p所指文件的位置返回到文件的

開頭的是.

A、rewind(p);

B、fseek(p,O,SEEK_SET);

C、fseek(p,0,0);

D、fseek(p,-3L,SEEK_CUR);

【答案】D

31、函數(shù)的形式參數(shù)隱含的存儲類型說明是。

A、extern

B、static

C、register

D、auto

【答案】D

32、各種運算符間的優(yōu)先順序從高到低是o

A、比較運算符一算術運算符一邏輯運算符

B、比較運算符一邏輯運算符一算術運算符

C、算術運算符一比較運算符一邏輯運算符

D、算術運算符一邏輯運算符一比較運算符

【答案】C

【解析】對于多種運算的混合運算,一定要記住它們之間的優(yōu)先級,否則就會

得到不同的計算結果。

33、請閱讀程序:

#include<math.h>

#include<stdio.h>

main()

(

floata,b,c;

scanf(H%f%fr,,&a,&b);

c=a/b;

while(l){

if(fabs(c)>1.6){

a=b;

b=c;

c=a/b;

)

elsebreak;

}

printf(,r%f\nn,b);

}

若運行時從鍵盤上輸入3.62.4V回車,,則輸出結果是______。

A、1.500000

B、1.600000

C、2.000000

D、2.400000

【答案】D

【解析】本題考查用break語句終止循環(huán)。程序中定義了兩個實型變量a、b,

并給scanf()函數(shù)賦值,鍵盤輸入3.62.4〈回車>后,a=3.6,b=2.4,

c=a/b=3.6/2.4=1.5,因為c=1.5V1.6,退出循環(huán),輸出b的原值。表面上

看,while(l)條件恒為真,將會產(chǎn)生死循環(huán),但利用break語句可以終止循

環(huán)。

34、以下關于c語言數(shù)據(jù)類型使用的敘述中錯誤的是o

A、若要準確無誤差地表示自然數(shù),應使用整數(shù)類型

B、若要保存帶權多位小數(shù)的數(shù)據(jù),應使用雙精度類型

C、若要處理如“人員信息”等含有不同類型的相關數(shù)據(jù),應自定義結構體類型

D、若只處理“真”和“假”兩種邏輯值,應使用邏輯類型

【答案】D

35、執(zhí)行以下代碼,輸出結果是________intx=5,y=7,u=9,v=6;printf(H%dM,x>y?x+2:u

>v?u-3:v+2);

A、8

B、6

C、7

D、true

【答案】B

36、以下敘述中正確的是。

A、N-S流程圖只能描述簡單的順序結構的程序

B、程序的算法只能使用流程圖來描述

C、結構化程序的三種基本結構是循環(huán)結構、選擇結構、順序結構

D、計算機可以直接處理C語言程序,不必進行任何轉(zhuǎn)換

【答案】C

【解析】N-S流程圖是可以描述循環(huán)結構、選擇結構、順序結構等多種結構的

程序,所以A選項錯誤。程序的算法可以用流程圖、偽代碼、N-S結構圖等方

法表示所以B選項錯誤。計算機只能處理二進制表示的目標程序不能直接執(zhí)行

由C語言編寫的源程序所以D選項錯誤。

37、以下能正確定義數(shù)組并正確賦初值的選項是。

A、intN=5,a[N][N];

B、intb[l][2]={{l},{2}};

C、intc[2][]={{1,2},{314});

D、intd[3][2]={{1,2},{3,4});

【答案】D

【解析】A.數(shù)組維數(shù)必須為常量;數(shù)組為一行兩列,而兩行一列;數(shù)

組定義錯誤,數(shù)組定義時列數(shù)必須寫明,而行數(shù)可以缺??;D.表示正確,相當

于{{1,2},{3,4},{0,0})

38、下列程序的執(zhí)行結果是.

#include<stdio.h>

voidmain()

intx=0,y=l,z=0;

if(x=z=y)x=3;

printfC,%d,%d\nM,x,z);

A、3,0

B、0,0

C、0,1

D、3,1

【答案】D

39、下列關于數(shù)組的描述正確的是o

A、數(shù)組的長度是固定的,而其中元素的數(shù)據(jù)類型可以有不同

B、數(shù)組的長度是固定的,而其中元素的數(shù)據(jù)類型必須相同

C、數(shù)組的長度是可變的,而其中元素的數(shù)據(jù)類型可以有不同

D、數(shù)組的長度是可變的,而其中元素的數(shù)據(jù)類型必須相同

【答案】B

40、有以下結構體說明和變量的定義,且指針p指向變量a'指針q指向變量b,則不能把結

點b連接到結點a之后的語句是。

structnode

(

chardata;

structnode*next;

)

a,b,*p=&a,*q=&b;

A、a.next=q;

B、P.next=&b:

C、p—>next=&b;

D、(*p).next=q;

【答案】B

41、將用高級程序語言編寫的源程序翻譯成目標程序的程序稱o

A、連接程序

B、編輯程序

C、編譯程序

D、診斷維護程序

【答案】C

【解析】將用高級程序語言編寫的源程序翻譯成目標程序的程序稱編譯程序。

連接程序是一個將幾個目標模塊和庫過程連接起來形成單一程序的應用。診斷

程序是檢測機器系統(tǒng)資源、定位故障范圍的有用工具。

42、以下不能正確計算代數(shù)式值的c語言表達式是—

A、l/3*sin(l/2)*sin(l/2)

B、sin(O.5)*sin(0.5)/3

C,pow(sin(0.5),2)/3

D>1/3.O*pow(sin(l.0/2),2)

【答案】A

43、c語言對嵌套的if語句的規(guī)定是:else總是與配對。

A、與之前最近的if

B、第一個if

C、縮進位置相同的if

D、與之前最近的且尚未配對的if

【答案】D

44、結構化程序所要求的基本結構不包括()。

A、順序結構

B、GOTO跳轉(zhuǎn)

C、選擇(分支)結構

D、重復(循環(huán))結構

【答案】B

45、下面程序的輸出結果是。

#include<stdio.h>intx=l;

voidmain()

(

intx=2;

printf("%d,",x);

if(x==l)

(

intx=4;

printf("%d,",x++);

}

printf("%d",x++);

}

A、2,2

B、1,1,2

C、2,4,3

D、2,3

【答案】A

【解析】雖然全局變量的作用域是整個程序,但如果某個函數(shù)或語句塊中又聲

明了同名的局部變量,則全局變量被屏蔽,在該函數(shù)或語句塊中所用到的該變

量都是那個同名的局部變量。所以,本題程序第二行定義的全局變量int

x=l;可完全忽略,故程序輸出結果為2,2,故應該選擇A。

46、以下程序段中,變量c的二進制值是chara=2,b=4,c;

c=a+b<<2;

A、00000011

B、00010100

C、00011100

D、00011000

【答案】D

【解析】請仔細閱讀交規(guī)難度:簡單

47、下列選項中,能正確定義數(shù)組的語句是

A、intnum[0..2008];

B、intnum[];

C、intN=2008;intnum[N];

D、^defineN2008;intnum[N];

【答案】D

48、在c語言中,數(shù)字029是一個()

A、八進制數(shù)

B、十進制數(shù)

C、十六進制數(shù)

D、非法數(shù)

【答案】D

49、下面關于編譯預處理命令,正確的是一

A、-definecharCHAR

B、#DefineE0.0000034

C、-defineFALSE0

D、ttdefincDIM26

【答案】D

【解析】無參宏定義的一般格式:#define標識符語言符號字符串,其

中:“define”為宏定義命令;"標識符為所定義的宏名,通常用大寫字母表示,

以便于與變量區(qū)別;“語言符號字符串”可以是常數(shù)、表達式、格式串(格式串

是用雙引號括起來的字符串)等,選項ABC錯誤,選項D正確;本題答案為

Do

50、關于建立函數(shù)的目的,以下正確的說法是o

A、提高程序的執(zhí)行效率

B'提高程序的可讀性

C、減少程序的篇幅

D、減少程序文件所占內(nèi)存

【答案】B

桂林電子科技大學

C語言專升本練習(二)

總分:100分考試時間:60分鐘

注意事項:

>答題前要仔細閱讀答題卡上的“考生須知填好姓名、準考證號填寫清楚,字跡不能

超出框線。

>考生必須在答題卡上與題號相對應的答題區(qū)域內(nèi)答題,書寫在試卷(題簽)、草稿紙上

或答題卡上非題號對應的答題區(qū)域的答案一律無效。

>考試中途不能無端離場,否則視為放棄。

一、單項選擇題(每小題2分,共100分)

1、在位運算中,操作數(shù)每左移一位,其結果相當于

A、操作數(shù)乘以2

B、操作數(shù)除以2

C、操作數(shù)除以4

I)、操作數(shù)乘以4

【答案】A

【解析】左移運算符"VV”是雙目運算符。其功能把“VV”左邊的運算數(shù)

的各二進位全部左移若干位,由“VV”右邊的數(shù)指定移動的位數(shù),高位丟

棄,低位補0。左移1位,相當于該數(shù)乘以2。

2、c語言提供的基本數(shù)據(jù)類型關鍵字是。

A、integer

B、FLOAT

C、unsigned

D、Double

【答案】c

3、下列說法中不正確的是。

A、switch語句功能可以由if-else語句實現(xiàn)

B、若用于比較的數(shù)據(jù)類型為double,則不能用switch語句來實現(xiàn)

C>if-else語句的執(zhí)行效率總是比switch語句高

D、case子句可以有多個語句,并且不需要用大括號””括起來

【答案】C

【解析】并不是所有的if-else語句的執(zhí)行效率都高于switch語句,在一些特

定的情況下,switch語句可以比較簡煉,同時容易閱讀,因此,選項C的描

述是錯誤的。

4、下列敘述中正確的是。

A、break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

【答案】C

5、以下程序運行后的輸出結果是

main()

(

chars[]=nABCDw,*p;

for(p=s+l;pVs+4;p++)printf("%s\n",p);

)

A、ABCD

BCD

CD

D

B、A

B

C

D

C、B

C

D

D、BCD

CD

I)

【答案】D

【解析】本題考查指向字符串指針的運算方法。執(zhí)行p=s+l后,指針變量P就

指向字符串中的第二個字符B,然后輸出字符串"BCD"并換行;繼續(xù)執(zhí)行循環(huán)語

句,指針變量p指向下一個字符c,輸出字符串"CD",最后一次循環(huán),p指向字

符"D",輸出字符串"D"。

6、已知inti,a;

執(zhí)行語句i=(a=2*3,a*5),a+6;

后,變量i的值是o

A、6

B、12

C、30

D、36

【答案】C

7、對兩個數(shù)組a和b進行下列初始化:charm□="1234567";char

=,'3','4,'5','6,'7'};則下列敘述正確的是。

A、數(shù)組in與數(shù)組n完全相同

B、數(shù)組m與數(shù)組n長度相同

C、數(shù)組ni比數(shù)組n長1

D、數(shù)組m與數(shù)組n中都存放字符串

【答案】C

8、為了避免在嵌套的條件語句if-else中產(chǎn)生二義性,c語言規(guī)定:else子句總是與配對

________O

A、縮排位貉相同的if

B、其之前最近的沒有else配對的if

C、其之后最近的if

D、同一行上的if

【答案】B

9、設char*s=w\ta\017bcM;

則指針變量s指向的字符串所占的字節(jié)數(shù)是O

A、9

B、5

C、6

D、7

【答案】C

10、設"12,a定義為整型變量。表達式a+==a的值為―

A、12

B、144

C、0

D、132

【答案】C

【解析】表達式a+=a-=a*=a的運算方向是自右向左,即先計算a*=a,a值為

a*a=144,再計算a-=a,a值為a-a=O,再計算計a+二a,故表達式和a的值都為

a+a=Oo

11、設有語句:printf(號2d\n",20I0);

,則以下敘述正確的是O

A、程序運行時輸出20

B、程序運行時輸出10

C、程序運行時輸出2010

I)、指定的輸出寬度不夠,編譯出錯

【答案】C

【解析】printf函數(shù)格式化字符串的一般形式為:[標志][輸出最小寬度][精

度][長度]類型。對于%2d,猊表示結果以十進制形式輸出帶符號的整數(shù),數(shù)字2

表示輸出的最小寬度為2,若實際位數(shù)多于2,則按實際位數(shù)輸出,所以程序輸出

2010,答案選Co

12、a、b分別是整數(shù)6、-2,那么a對b求余與b對a求余的值分別為

A、0、-2

B、3、-2

C、3、2

D、0、2

【答案】A

13、下列選項中,值為1的表達式是o

A、1-'0'

B、1-'\0'

C、'1'-0

D、,\0:0'

【答案】B

【解析】在C程序中,字符量可參與任何整數(shù)運算。字符參與運算時,首先要

將字符轉(zhuǎn)換為對應的ASCH碼值再參與整數(shù)運算。字符對應的ASCH碼值是

49,字符'O'對應的ASCII碼值是48,字符'\0'是字符串結束標識符NULL,其

對應的ASCII碼值是Oo

14、以下不能將s所指字符串正確復制到t所指存儲空間的是。

A,while(*t=*s){t++;s++;)

B、for(i=0;t[i]=s[i];i++);

C、do{*t++=*s++;)while(*s);

D、for(i=0,j=o;t[i++]=s[j++];);

【答案】C

15、有以下程序

main()

(

unsignedchara=2,b=4,c=5,d;

d=a|b;

d&二c;

printf(M%d\nM,d);

}

程序運行后的輸出結果是o

A、3

B、4

C、5

D、6

【答案】B

16、以下程序的運行結果是.

main()

(

intn;

for(n=l;n<=10;n++)

(

if(n%3=0)continue;

printf("%d",n);

}

}

A、12457810

B、369

C、12

D、1234567890

【答案】A

17、若函數(shù)調(diào)用時的實參為變量時,以下關于函數(shù)形參和實參的敘述中正確的是

A、函數(shù)的實參和其對應的形參共占同一存儲單元

B、形參只是形式上的存在,不占用具體存儲單元

C、同名的實參和形參占同一存儲單元

D、函數(shù)的形參和實參分別占用不同的存儲單元

【答案】D

18、下列程序的輸出結果是

main()

(

doubled=3.2;

intx,y;

x=1.2;

y=(x+3.8)/5.0;

printf(H%d\nn,d*y);

)

A、3

B、3.2

C、0

D、3.07

【答案】c

【解析】考查復合的賦值表達式。[解題要點]本題中,程序先執(zhí)行語句

x=1.2;,根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量1.2轉(zhuǎn)換為int

型,即取整為1,然后將1賦值給變量X。接下來執(zhí)行語句y=(x+3.8)/5.0;根

據(jù)運算符的優(yōu)先級,先計算小括號內(nèi),再計算除法,最后執(zhí)行賦值運算。小括

號內(nèi)的運算過程:先將整型變量x的值1轉(zhuǎn)換為double型1.0,然后與3.8進

行加法運算,得到中間結果4.8o接著進行除法運算4.8/5.0,其結果小于

1.0,這里沒有必要計算出精確值,因為接著進行賦值運算,賦值號左邊的變量

y的類型為整型,于是對這個小于L0的中間結果進行取整,結果為0,于是變

量y的值為0,d*y的值也為0。[考點鏈接]格式輸出語句printf的使用。

19、若有定義:intaa[8];則以下表達式中不能代表數(shù)組元aa[l]的地址的是

A、&aa[0]+l

B、&aa[l]

C、&aa[O]++

D、aa+1

【答案】c

20、若有以下說明語句:

structdate

(

intyear;

intmonth;

intday;

}brithday;

則下面的敘述不正確的是.

A、struct是聲明結構體類型時用的關鍵字

B、structdate是用戶定義的結構體類型名

C、brithday是用戶定義的結構體類型名

D、year,day都是結構體成員名

【答案】C

21、以下敘述中正確的是。

A、a是實型變量,C允許進行賦值a=10,但不可以這樣說:實型變量中允許存放整型

B、在賦值表達式中,賦值號左邊既可以是變量也可以是任意表達式

C、執(zhí)行表達式a=b后,在內(nèi)存中a和b存儲單元中的原有值都將被改變,a的值已由

原值改變?yōu)閎的值,b的值由原值變?yōu)?

D、已有a=3,b=5,當執(zhí)行了表達式2巾,b=a之后,使a中的值為5,b中的值為3

【答案】A

22、設有以下程序段:inty;y=rand()%30+l;則變量y的取值范圍是。

A、0WyW30

B、0<yW30

C、l<y<30

D、l<yW30

【答案】B

【解析】本題考點為"%求余符號。rand產(chǎn)生隨機整數(shù),任何整數(shù)對30求余得

到的整數(shù)范圍為0~29,則y的取值范圍為lsy30或者說0VyW30,B選項正

確。

23、下面函數(shù)的功能是。a(si,s2)charsi[],s2[];while(s2++=sl++);

A、字符串比較

B、字符串復制

C、字符串鏈接

D、字符串反向

【答案】B

24、有以下程序

main()

(

intx=O,y=O,i;

for(i=l;++i)

(

if(i%2=0)

(

x++;

continue;

)

if(i%5=0)

(

y++;

break;

)

}

printf('r%d,%dM,x,y);

)

程序的輸出結果是o

A、2,1

B、2,2

C、2,5

D、5,2

【答案】A

【解析】本題考查了continue和break語句在循環(huán)語句中的作用。break語句

的作用是結束本層循環(huán),而continue語句的作用是結束本次循環(huán)直接進入到下

次循環(huán)。

25、以下關于宏的敘述中正確的是。

A、宏名必須用大寫字母表示

B、宏定義必須位于源程序中所有語句之前

C、宏替換沒有數(shù)據(jù)類型限制

I)、宏調(diào)用比函數(shù)調(diào)用耗費時間

【答案】C

26、設intk=32767;執(zhí)行k=k+l;后k值為.

A、32768

B、-32768

C、0

D、-1

【答案】B

27、若有以下說明:charsl[]={"tree"

},s2[]={"flower"};,則以下對數(shù)組元素或數(shù)組的輸出語句中,正確的是

A、printf("%s%s",si[5],s2[7]);

B、printf("%c%c",si,s2);

C、puts(si);puts(s2);

D、puts(si,s2);

【答案】c

28、用高級程序設計語言編寫的程序_

A、計算機能直接執(zhí)行

B、具有良好的可讀性和可移植性

C、執(zhí)行效率高,但可讀性差

D、依賴于具體機器,可移植性差

【答案】B

【解析】用高級程序設計語言編寫的程序具有良好的可讀性和可移植性。

29、下列表達式中,類型可以作為int型的是.

A、"abe"+"efg”

B、"abc"+"efg”

C、'a'+'b'

D、3+"4"

【答案】C

【解析】選項A的運算結果為字符串類型;選項B語法錯誤;選項D的運算結

果也是字符串;只有選項C可以看做是兩個字符的ASCII值相加,結果為int

型。

30、以下敘述中錯誤的是o

A、C語言中對二進制文件的訪問速度比文本文件快

B、C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)

C、語句FILE*fp;定義了一個名為fp的文件指針

D、C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

【答案】B

31、若有定義語句:char*sl="ok",*s2="ok";以下選項中,能夠輸出"ok"的語句是一

A、if(strcmp(sl,s2)=0)puts(sl);

B、if(strcmp(sl,s2)!=0)puts(s2);

C、if(strcmp(sl,s2)~l)puts(sl);

D、if(strcmp(sl,s2)==0)puts(si);

【答案】A

【解析】strcmp函數(shù)比較字符串大小,區(qū)分大小寫,所以當si,s2不相等輸

出si就會輸出“0K”,答案選擇A。

32、"對下面程序段:

ttdefineA3

ttdefineB(a)((A+l)*a)...x=3*(A+B(7));正確的判斷是。"

A、程序錯誤,不許嵌套宏定義

B、程序錯誤,宏定義不許有參數(shù)

C、x=93

D、x=21

【答案】C

33、以下敘述中正確的是。

A、在C語言中,常量名也要遵守標識符的命名規(guī)則

B、對單目運算符來說,運算對象一定在其右側

C、標識符的首字符必須是下劃線、字母,其他字符可以是任意的鍵盤可鍵入字符

D、變量占用內(nèi)存,常量不占用內(nèi)存

【答案】A

【解析】C語言中,用來對變量、符號常量名、函數(shù)、數(shù)組、類型等命名的有效

字符序列統(tǒng)稱為標識符,常量名也要遵守標識命名規(guī)則,選項A正確;單目運算

符的運算對象可以在其左側或者右側,如i++或++i,選項B錯誤;C語言規(guī)定標

識符只能由字母、數(shù)字、下劃線組成,選項C錯誤;一般來說,基本類型(整型、

字符型等)常量會在編譯階段被編譯成立即數(shù),占的是代碼段的內(nèi)存,而字符串常

量或基本類型的常量數(shù)組占用的是數(shù)據(jù)段內(nèi)存。當然,占代碼段的內(nèi)存一般不在

我們常說的“占內(nèi)存”范圍中,選項D錯誤;本題答案為A。

34、若有下面的說明和定義,則sizeof(structaa)的值是________。

structaa{

intrl;

doubler2;

floatr3;

unionuu{

charul[5];

longu2[2];

}ua;

}mya;

A、30

B、29

C、24

D、22

【答案】D

【解析】structaa的字節(jié)數(shù)等于結構體中除共用體的成員所占存儲單元之和+

共用體的長度,所以計算結果為2+8+4+8=22。

35、下面程序的輸出是

#include<stdio.h>

voidmain()

(

intk=ll;

printf(Hk=%d,k=%o,k=%x\nH,k,k,k);

}

A、k=ll,k=12,k=ll

B、k=ll,k=13,k=13

C、k=ll,k=013,k=0xb

D、k=ll,k=13,k=b

【答案】D

36、若有循環(huán):

intx=5,y=20;

do(y-=x;x++;)

while(++x<-y);

則循環(huán)體將被執(zhí)行o

A、0次

B、1次

C、2次

D、3次

【答案】C

37、設變量定義為"intx,*p=&x;

",則&(*p)相當于

A、p

B、*p

C、x

D、*(&x)

【答案】A

38、有以下程序

#include<stdio.h>

main()

(

intb[3][3]={0,l,2,0,l,2,0,l,2},i,j,t=l;

for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];

printf('r%d\nn,t);

)

程序運行后的輸出結果是O

A、1

B、3

C、4

D、9

【答案】C

39、有以下程序

main()

(

inta[3][2]={0},(*ptr)[2],i,j;

for(i=0;i<2;i++)

(

ptr=a+i;

scanf(,,%dn,ptr);

ptr++;

}

for(i=0;i<3;i++)

(

for(j=0;j<2;j++)printf(,,%2d\a[i][j]);

printf(n\nM);

}

)

若運行時輸入:123V回車>,則輸出結果是o

A、產(chǎn)生錯誤信息

B、10

C、12

D、10203020000030

【答案】B

【解析】本題定義了一個二維數(shù)組a,又定義了一個指針變量ptr,它用于指向

包含2個元素的一維數(shù)組,在第一個for循環(huán)中,語句"ptr=a+i;"用于將指針

變量ptr指向第i行的數(shù)組元素,通過兩次循環(huán),分別給二維數(shù)組a的第0行

的第1個元素和第1行的第1個元素賦了值1和2o

40、設

structdata

(

inta;

floatb;

}c,*p=&c;

,引用正確的是o

A、*p.a

B、p.b

C、p->a

D、*p->b

【答案】c

41、c語言中運算對象必須是整型的運算符是一

A、%=

B、/

C、=

I)、〈=

【答案】A

42、若有定義語句:inta[4][10],*p,*q[4];且0<=i<4,則錯誤的賦值是一

A、p=a

B、q[i]=a[i]

C、p=a[i]

D、p=&a[2][l]

【答案】A

43、以下是if語句的基本形式:if(表達式)語句其中"表達式"

A、必須是邏輯表達式

B、必須是關系表達式

C、必須是邏輯表達式或關系表達式

D、可以是任意合法的表達式

【答案】D

44、與下面程序段等價的是。

for(n=100;n<=200;n++)

(

if(n%3==0)continue;

printf("%4d",n);

)

A、for(n=100;(n%3)&&n<=200;n++)printf("%4d",n);

B、for(n=100;(n%3)||n<=200;n++)printf("%4d",n);

C、for(n=100;n<=200;n++)if(唳3!=0)printf("%4d",n);

D、for(n=100;n<=200;n++){

if(n%3)printf("%4d",n);Elsecontinue;Break;}

【答案】C

45、若有說明"charsi[30]="abc",s2[]="defghi",則在使用函數(shù)strcat(si,s2)后,結果

是。

A、si的內(nèi)容更新為abcdefghi

B、si的內(nèi)容更新為defghi\0

C、si的內(nèi)容更新為defghiabc\0

D、si的內(nèi)容更新為abcdefghi\0

【答案】D

46、在16位c編譯系統(tǒng)上,若定義longa;則能給a賦40000的正確語句是

A、a=20000+20000;

B、a=4000*10;

C、a=30000+10000;

D、a=4000L*10L;

【答案】D

47、若有定義:int(*p)[4];

則標識符p。

A、是一個指向整型變量的指針

B、是一個指針數(shù)組名

C、是一個指針,它指向一個含有四個整型元素的一維數(shù)組

D、定義不合法

【答案】C

48、在c語言中,字符型數(shù)據(jù)在內(nèi)存中以形式存放。

A、原碼

B、BCD碼

C、反碼

D,ASCII碼

【答案】D

49、下列字符串中,不可以用作c標識符的是。

A、y_2006

B、_FEST_I1

C、Return

D、switch

【答案】D

【解析】在C中,變量標識符必須是以大小寫字母、下畫線開始,由數(shù)字或者

字母下畫線等組成的一個字符串,其中C++關鍵字不能作為標識符,不能包含

-、+、*、/等運算符號。C++變量區(qū)分大小寫,所以Retrun不是關鍵字,而是

一個合法變量;swith為關鍵字,所以不能定義為標示符。

50、在下列關于c語言的局部變量和全局變量所采取的存儲類別的敘述中,錯誤的一條是

A、對于動態(tài)局部變量來說,一旦離開函數(shù),其值就消失

B、對于靜態(tài)局部變量來說,離開函數(shù),其值仍保留

C、對于寄存器變量來說,一旦離開函數(shù),其值就消失

I)、靜態(tài)外部變量既可在本文件中引用,又可在其他文件中引用

【答案】B

桂林電子科技大學

C語言專升本練習(三)

總分:100分考試時間:60分鐘

注意事項:

>答題前要仔細閱讀答題卡上的“考生須知填好姓名、準考證號填寫清楚,字跡不能

超出框線。

>考生必須在答題卡上與題號相對應的答題區(qū)域內(nèi)答題,書寫在試卷(題簽)、草稿紙上

或答題卡上非題號對應的答題區(qū)域的答案一律無效。

>考試中途不能無端離場,否則視為放棄。

一、單項選擇題(每小題2分,共100分)

1、下列字符序列中,不可用作c語言標識符的是。

A、b70

B、#ab

C、symbol

I)、a_l

【答案】B

2、有如下程序段int*p,a=l,b=2;p=&b;a=*p+a;執(zhí)行該程序段后,a的值為

A、2

B、3

C、4

D、編譯出錯

【答案】B

3、c語言中邏輯表達式的值為o

A、0或1

B、非零值或零值

C、true或false

D、'true'或'false'

【答案】A

4、若變量已正確定義,以下while循環(huán)正常結束時,累加到pi的最后一項item的值滿足

A、item的絕對值小于0.0001

B、item的絕對值大于0.0001

C、item的絕對值大于等于0.0001

D,item的絕對值小于等于0.0001

【答案】A

5、以下敘述中不正確的是。

A、空字符串(即兩個雙引號連寫)只占一個存儲單元

B、字符型常量可以放在字符型變量中

C、字符型常量可以放在字符串變量中

D、字符型常量可以與整數(shù)混合運算,而字符串常量不可以

【答案】C

6、在下列選項中,不正確的賦值語句是.

A、++t;

B'nl=(n2=(n3=0));

C、k=i=j;

D、a=b+c=l;

【答案】D

7、設有如下定義:char*aa[2]="abcd","abed",則以下說法中正確的是。

A、aa數(shù)組中元素的值分別是"abcd","ABCD";

B、aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組

C、aa數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址

D、aa數(shù)組的兩個元素中各自存放了字符‘a(chǎn)'和'A'的地址

【答案】C

【解析】aa數(shù)組被定義為字符型指針數(shù)組,有兩個元素,分別存放字符串

"abed"和"ABCD"的首地址。

8、以下敘述錯誤的是________。

A、任何能通過編譯和運行的算法都一定能得到所期望的結果

B、一個算法所包含的操作步驟應該是有限的

C、算法中每一條指令必須有確切的含義

D、算法可以用各種描述方法來進行描述

【答案】A

9、有以下程序

#include<stdio.h>

main()

(

chars[]=,r012xy\08s34f4w2n;

inti,n=O;

for(i=0;s[i]!=O;i++)if(s[i]>=rOr&&s[i]<=r9r)n++;

printf(H%d\nw,n);

}

程序運行后的輸出結果是o

A、0

B、3

C、7

D、8

【答案】B

【解析】閱讀本程序可知,字符串s的前三個字符滿足if語句,所以n++,當

遇到'\0'時,for循環(huán)終止,所以最后輸出n值為3。

10、若有定義語句intb=2;則表達式(b<V2)/(3||b)的值是。

A、4

B、8

C、0

I)、2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論