軍隊文職-計算機-C語言-強化練習一_第1頁
軍隊文職-計算機-C語言-強化練習一_第2頁
軍隊文職-計算機-C語言-強化練習一_第3頁
軍隊文職-計算機-C語言-強化練習一_第4頁
軍隊文職-計算機-C語言-強化練習一_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軍隊文職-計算機-c語言-強化練習一

[單選題]LC語言程序從()開始執行。

A.程序中的main函數

B.程序中第一個函數

C.程序中第一條可執行語句

D.包含文件中的第一個函數

參考答案:A

參考解析-:C語言程序最大的特點就是所有的程序都是用函數來裝配的。Mi”。

稱為主函數,是所有程序運行的入口。其余函數分為有參或無參兩種,均由

main。函數或其他一般函數調用,若調用的是有參函數,則參數在調用時傳

遞。

[單選題]2.下列說法中錯誤的是()。

A.構成數組的所有元素的數據類型必須是相同的

B.用指針法引用數組元素允許數組元素的下標越界

C.定義數組時的長度可以是整型常量表達式

D.一維數組元素的下標依次是0,1,2,3…一

正確答案:D

參考解析:數組是相同元素的集合,所以構成數組的所有元素的數據類型必須

是相同的,A正確。逐個引用數組元素不容許數組元素下標越界,但用指針法引

用數組元素可以讓數組元素下標越界,B項正確,一維數組元素的下標依次為:

0,1,2,3……故D項錯誤。定義數組時的長度可以是整型常量表達式,C項正

確。

[單選題]3.設有數據說明:intx,y,z,*p=x&,*Q=&y,*r二&z;下面能將

x,y值交換的程序段是0。

A.r=p;p=Q;Q二r

B.r二x;x=y;y=r

C.*r=*p;*p=*Q;*Q=*r

D.z=p;p=Q;p=z

正確答案:C

參考解析:A項只改變了指針p,Q,r的指向,并未交換x,y的值;指針p,

Q,r和變量x,y,z不能直接賦值,B項和D項錯誤;C項正確。

[單選題]4.下列不屬于C語言中關鍵字的是()。

A.print

B.long

C.default

D.typedef

正確答案:A

參考解析:long是表示長整形數據類型、default表示默認值、typedef是存儲

類關鍵字,都是c語言提供的合法關鍵字,而print不是C語言的關鍵字,

printf才是用于輸出的關鍵字,故A是錯誤的。

下列C語句中,while循環執行的次數是()。

inti=7;

do|

printf(”%d“,i=i-2);

[單選題]5.Iwhile(i++);

A.5

B.6

C.7

D.無限

正確答案:B

參考解析:程序運行的結果為“543210”,這時i的值為0,跳出了循環,由此

可知while循環執行了6次。

[單選題]6.為表示邏輯表達式79<X<90,應使用的C語言表達式是()。

A.79<X<90

B.(X>79)!=(X<90)

C.(X>79)&&(X<90)

D.(X>79)

(<90)

正確答案:C

參考解析:79<X<90,這種寫法是數學上的表達方法,是判斷79Vx同時?xV

90,C語言中邏輯“與”為“&&",“||”表示邏輯“或”,"!二〃表示不

等號。故正確表達式為:(X>79)&&(X<90)o

[單選題]7.在C語言中對一維整型數組的正確定義為()。

A.BdefineN10inta[N];

B.intn=10,a[n];

C.intn;a[n];

D.inta(10);

正確答案:A

參考解析:一維整數數組的定義為int數組名[常量表達式]。(1)數組名的命

名方法與變量名相同,遵循標識符命名規則;(2)數組是用方括號括起來的常

量表達式,不能用圓括號,故D項錯誤;(3)常量表達式表示數組元素的個

數,即數組的長度,數組的下標從0開始,下標的最大值為:常量表達式-1;

(4)常量表達式中可以包括常量和符號常量,不能包括變量。故B項C項錯

誤。A項中N是預定義符,是常量,故正確。

[單選題]8.請選出可用作C語言用戶標識符的一組標識符()。

A.void

B.a3_b3

C.For

D.2a

正確答案:B

參考解析:C語言用戶標識符命名規則為:①只能由字母、數值和下畫線3種字

符組成;②第一個字符必須是字母或下畫線;③不能與C語言中的關鍵字或保

留字相同。A、C為C語言中關鍵字,D以數字作為第一個字符,均不符合命名

規則,故本題選B。

[單選題]9.設a為整型變量,則不能正確表達數學關系10<a<15的C語言表

達式是()。

A.!(a<=10)&&!(a>=15)

B.10<a<15

C.a==ll

A.=12

A.=13

A.=14

D.a>10&&a<15

正確答案:B

參考解析:10Va<15這種寫法是數學上的表達方法,在C語言中,如果寫成這

樣,程序編譯并不報錯,這也是一個合法的邏輯運算表達式。先計算10<a,結

果是真(1)或假(0),然后再用這個結果與15進行比較,得到最終結果。故

B項錯誤。在C語言中邏輯“與”為“&&”,“||”表示邏輯“或”,“!”

表示邏輯"非"。故B項||a二12||a二13||a=14可表示大于10小于15

的整數,A項!(a<=10)&&!(a>=15)表示不滿足aV=10且不滿足a>

二15,也就是10VaV15,故A也正確。

[單選題]10.C++中,對于兩個函數,若函數名相同,但是下列哪項不同則不是

重載函數()。

A.參數類型

B.參數個數

C.函數類型

D.參數順序

正確答案:C

參考解析:重載函數是函數的一種特殊情況,為方便使用,C++允許在同一范圍

中聲明幾個功能類似的同名函數,但是這些同名函數的形式參數(指參數的個

數、類型或者順序)必須不同。

[單選

題]11.

設有函數print-value()定義如下,則執行程序print++*x)”inta=25";

print^zalue(&a);后a的值是voidprint-value

A.24

B.25

C.26

D.27

正確答案:D

參考解析;先運算累加后執行。+*x是x指向內存的值先自增1,再取該值。

[單選題]12.在函數調用時,以下說法正確的是0。

A.函數間的數據傳遞不可以使用全局變量

B.實際參數和形式參數可以同名

C.函數調用后必須帶回返回值

D.主調函數和被調函數總是在同一個文件里

正確答案:B

參考解析:形式參數就是在定義函數或過程的時候命名的參數,也就是一個記

號。實際參數是在執行時,調用函數或過程時,傳遞給函數或過程的參數,也

是實際值。形式參數和時間參數可以同名也可以不同名,故B項正確。C項中函

數調用后不是必須帶回返回值,這個和函數定義的類型有關,void類型的就不

需要返回值。A項中函數間的數據傳遞可以使用全局變量,也可以使用局部變

量。D項中主調函數和被調函數可以在同一個文件里。

執行完下列語句段后,i值為()。

intf(f(D);

Ireturn((x>0)?x★f(x-l);2);(

intI;

[單選題]13,I=f(f(D);

A.2

B.4

C.8

D.無線遞歸

正確答案:A

參考解析:第一次調用f(1),則x=l,執行(x>0)?x*f(x-1):2)后,

得到l*f(0);第二次調用f(0),則x=0,執行(x>0)?x*f(x-1):2)

后,得到2;最后運算結果是2。

[單選題]14.用數組名作為函數調用時的實參時,傳遞給形參的是()。

A.數組首地址

B.數組第一個元素的值

C.數組全部元素的值

D.數組元素的個數

正確答案:A

參考解析:在C語言中數組的變量名就是指向其首元地址的指針名。數組的其

他元素可以通過首元偏移得到。故用數組名作為函數調用時的實參時,傳遞給

形參的是數組的首地址。

下面程序段執行后的結果為()。

intsum=O,n=10;

dojsum=sum+n;

n++;I

while(n<10)

[單選題]15.Printf(U%d,%d'\sum,n);

A.10,11

B.0,11

C.0,10

D.以上結果都不對

正確答案:A

參考解析:do-while循環是先執行后判斷,先執行語句sum=sum+n,n++則執行

后sum變為10,n變為11,再判斷條件n<10為假。退出循環。最后輸出結

果:sum為10,n為11。

當運行時輸入:abcd¥abcde?,下面程序的運行結果是()。

#include<stdio.h>

main()

Iwhile(putchar(getchar())!二¥);

printf(''end',);

[單選題]16.}

A.abcdYend

B.abcdend

C.abcdYabcdeend

D.abcdYabcde

正確答案:A

參考解析:while(putchar(getchar())!='¥');是將從鍵盤上獲得的

符號循環輸出,直到輸入的字符為‘¥'時終止輸出。由于當運行時輸入:

abcdYabcde?,故輸出結果為abcd¥。又后面有printf(“end”)語句,故

在原先輸出符號后再輸出end,所以結果為abcd¥end。

[單選題]17.判斷char型變量cl是否為大寫字母的表達式為()。

A'A'<=cl<='Z'

B.cl>='A'&&cl<=Z

Q('A'<=C1)AND(Z>=cl)

D(C1>='A')&(cl<='Z')

正確答案:B

參考解析:字符為大寫字符主要是滿足:在('A,-(Zf)之間。在C語言中

邏輯“與”為“&&”,表示“按位與",故char型變量cl是否為大

寫字母的表達式為的C語言表達式是cl>='A'&&C1V二'Z'。

[單選題]18.變量的指針,其含義是指該變量的0。

A.值

B.地址

C.名

D.一個標志

正確答案:B

參考解析:變量的指針就是變量的地址,其含義指向變量的邏輯地址,而不是

地址所存儲的值。

[單選題]19.以下選項中合法的用戶標識符是()。

A.long

B._2Test

C.3Dmax

D.A.dat

正確答案:R

參考解析:在C語言中,用戶標識符不能是C語言的合法關鍵字,同時規定命

名只能是字母(A?Z,a?z)、數字(0?9)、下畫線(_)組成的字符串,并

且其第一個字符必須是字母或下畫線。long是C語言的合法關鍵字,3Dmax、

A.dat不滿足命名規則。故只有B是正確的。

[單選題]20.以下敘述中正確的是()。

A.構成C語言程序的基本單位是函數

B.所有被調用的函數一定要在調用之前進行定義

C.main()函數必須放在其他函數之前

D.可以在一個函數中定義另一個函數

正確答案:A

參考解析:一個C源程序是由一個main函數和若干個其他函數組成的,函數是

C語言程序的基本單位,故A正確。B項中main函數就不需要調用前先定義,

故錯誤。main函數不需要放在其他函數之前,只需要調用前先定義即可,故C

項錯誤。在C語言程序中,所有的函數都是平行的,即在定義函數時是互相獨

立的,一個函數并不從屬于另一個函數,即函數不能嵌套定義,但可以互相調

用,故D項錯誤。

[單選題]21.break語句不能出現在()語句中。

A.for

B.while

C.if…else

D.switch

正確答案:C

參考解析:break語句通常用在循環語句和開關語句中。當break用丁開關語句

switch中時,可使程序跳出switch而執行switch以后的語句;如果沒有

break語句,則將成為一個死循環而無法退出。當break語句用于do-while、

for、while循環語句中時,可使程序終止循環而執行循環后面的語句,通常

break語句總是與if語句聯在一起。即滿足條件時便跳出循環。但break語句

對if-else的條件語句不起作用。在多層循環中,一個break語句只向外跳一

層。

以下程序段()。

x=-l;

do:x=x*x;}

[單選題]22.while(x>0);

A.是死循環

B.循環執行一次

C.循環執行二次

D.有語法錯誤

正確答案:A

參考解析:Do-while循環是先執行后判斷,先執行語句x=x*x;初始值x=T,

則執行后x變為1,在判斷條件x>0為真。再次執行語句x=x*x,x值為1,進

行條件判斷x>0為真。故條件永遠為真,陷入無限循環也就是死循環,

[單選題]23.下面數組初始化不正確的是()。

A.inta[5]={l,2,3,4,5)

B.inta[]={l,2,3,4,5}

C.inta[5]={l,2,3}

D.inta[5]={0,1,2,3,4,5}

正確答案:D

參考解析:a[5]數組只定義了5個元素,D中{0,1,2,3,4,5}定義了6個元

素。

[,選題]24.以下關于面向對象分析的敘述中,錯誤的是()。

A.面向對象分析需要考慮系統的測試問題

B.面向對象分析著重分析問題域和系統責任

C.面向對象分析忽略與系統實現有關的問題

D.面向對象分析建立獨立于實現的系統分析模型

正確答案:A

參考解析:面向對象分析主要回答軟件系統需要解決什么問題,在面向對象分

析階段,并不考慮系統實現以及系統的測試問題,強調建立獨立與系統實現的

系統分析模型,其關注點仍然側重于問題域。

[單選題]25.設有語句“inta=2,b=3,c=-2,d=2;",則邏輯表達式“a>0&

&1)&&(3<0&&(1>0”的值是()。

A.1

B.2

C.5

D.出錯

正確答案:A

參考解析:由于a=2,b=3,c=-2,d=2。則a>0為真(1),b非零為真

(1),cVO為真(1),d>0也為真,由“&&”為邏輯“與",故邏輯表達

式"a>O&&b&&cVO&&d>O”從左到右運算,結果為真(1)。

[單選題]26.在下面的條件語句中(其中si和s2表示是C語言的語句),只有

一個在功能上與其他三個語句不等價,它是()。

A.if(a-0)s2;elsesl;

B.if(a)si;elses2;

C.if(a!=0)si;elses2;

D.if(a==0)si;elses2;

正確答案:D

參考解析:ifelse語句為雙邊選擇結構,滿足if語句執行if后面的語句,不

滿足則執行else后面的語句.ABC三項均是滿足條件a為真執行si語句,a為

假執行s2語句。D項正好相反,滿足a為真執行s2語句,a為假執行si語

句。

[單選題]27.下列說法錯誤的是()。

A.C程序運行步驟是編輯、編譯、連接、運行

B.C語言的變量名必須用小寫,常量用大寫

C.C語言的三種基本結構是順序、選擇、循環

D.C程序一定由函數構成的

正確答案:B

參考解析:C語言程序運行步驟是編輯(把程序代碼輸入,交給計算機)、編譯

(成目標程序文件.obj)、連接(成可執行程序文件.exe)和運行(可執行程

序文件),故A正確。順序結構、選擇結構和循環結構是C語言的三個基本結

構,故C正確。一個C源程序是由一個main函數和若干個其他函數組成的,故

D正確。對于C語言變量和常量的命名,只要滿足由字母、數字、下畫線組成,

且首字母不為數字的命名規則即可,只不過按照編程慣例來說變量名常用小

寫,常量常用大寫,故B不正確。

[單選題]28.C語言提供的合法關鍵字是()。

A.struct

B.string

C.docase

D.next

正確答案:A

參考解析:struct是C語言提供的合法關鍵字,用于定義結構體數據。next,

string,docase都不是C語言提供的合法關鍵字,故正確答案為A。

[單選題]29.下列正確的標識符是0。

A.a2_j

B.a[i]

C.-al

D.intt

正確答案:A

參考解析:C語言中使用的函數名、變量名、標號都叫標識符。但是C語言規

定,標識符只能是字母(A?Z,a?z)、數字(0?9)、下畫線(_)組成的字

符串,并且其第一個字符必須是字母或下畫線。故只有A是正確的。

[單選題]30.下列C語言用戶標識符中合法的是0。

A.3ax

B.x

C.case

D.~e2

E.union

正確答案:B

參考解析:征C語言中,用戶標識符不能是C語言的合法關鍵字,同時規定命

名只能是字母(A?Z,a?z)、數字(0?9)、下畫線(_)組成的字符串,并

且其第一個字符必須是字母或下畫線。union,case是C語言的合法關鍵字,-

e2不滿足命名規則。故只有B是正確的。

[單選題]31.卜列四組選項中,正確的C語言標識符是()。

A.%x

B.a+b

C.al23

D.123

正確答案:c

參考解析:餐C語言中,用戶標識符不能是C語言的合法關鍵字,同時規定命

名只能是字母(A?Z,a?Z)、數字(0?9)、下畫線(_)組成的字符串,并

且其第一個字符必須是字母或下畫線。%X、a+b.123不滿足命名規則。故只有C

是正確的。

[單選題]32.組成函數的基本單位是()。

A.單詞

B.語句

C.變量

D.子函數

正確答案:B

參考解析:函數是構成C語言程序的基本單位,語句是構成函數的基本單位。

[單選題]33.C語言中,已知intj,K=6;,則計算表達式尸K++后,正確的是

Oo

A.J=6,K=6

B.J=6,K=7

C.J=7,K=7

D.J=7,K=6

正確答案:B

參考解析:征使用C語言的自增運算符++時,若++在變量之前,表示變量先做

加1再使用,若++在變量之后,則表示先使用變量再將值加1,因此在j=k++,

系統將k=6的值先賦給j,則戶6,之后k作了加1操作,k=k+1=7。

[單選題]34.若有uinta=Lx=l;",則循環語句"while(a<10)x++;

a++;”的循環執行()。

A.無限次

B.10次

C.9次

D.不確定次

正確答案:A

參考解析:While循環是先判斷后執行,先判斷aVIO是否成立,初始值a=l,

故滿足條件,進入循環體執行x++;由于a++并沒有在循環體中,故不參與運

算。a的值就不變,依舊為1,滿足aVIO。所以就會陷入死循環,也就是說會

執行無數次。

[單選題]35.在C語言中,卜列數組聲明語句中,正確的是()。

A.inta[]={L2,3,5};

B.inta[4]={l,2,3,4,5};

C.chara[4]={A,B,C,D};

pchara:41=,,ABCDM

正確答案:A

參考解析:A項,inta□二{1,2,3,5);由于沒有指定數組的長度,那么數組

的長度即為賦值元素的個數,正確;B項,賦值元素有5個,數組長度為4,賦

值元素個數大于數組長度,錯誤;C項,數組元素是字符,應該用單引號標注每

個字母,錯誤;D項,系統會自動添加一個'\0,作為字符串結束符,因此數組

長度應該為5,錯誤。答案為選項A。

[單選題]36.若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是()。

A.P=q

B.*p二*q

C.n二*Q

D.

正確答案:D

參考解析:題干中定義了整型變量n,指針p和q,并將p指向n的地址,同時

將q的地址指向P。所以D項錯誤,p是指針,而n是變量,不能進行賦值。

若有以下語句,則正確的描述是()。

staticcharx|]=*,I2345',;

[單選題]37.staticchary[]={T,'2:3','4','5';\0'];

A.x數組長度大于y數組長度

B.x數組和y數組不相同

C.x數組長度小于y數組長度

D.x數組等價于y數組

正確答案:D

參考解析:x表示字符串,y表示字符數組。字符串以''0’結尾,也就是

staticcharx□二“12345”:這個字符串在定義時會自動加上了'\0‘,長度是

6,故和字符數組y是一樣的,因此x和y是一樣的,且長度都是6,所以ABC

錯誤,D止確。

[單選題]38.能正確表示邏輯關系:=10或的C語言表達式是()。

A.a>=10

A.二0

B.a>=10ora<=0

C.a>=0

A.=10

D.a>=10&&a<=0

正確答案:A

參考解析:在C語言中邏輯“或"為“|||”表示“按位或",“&”表

示“按位與",故=10或a<0”的C語言表達式是a>=10||aV二0。

單擊“按鈕”時,以下程序運行后的輸出結果是()。

privateSubprocl(xasInteger,yasInteger,zasInteger)

x=3*z

y=2*z

z=x+y

endsub

privatesubCommandl_ClicK()

DimxasInteger,yasInteger,zasInteger

x=l;y=2;z=3

Callprocl(x,x,z)

Printx;x;z

Callprocl(x,y,y)

Printx;y;y

[單選題]39.endSub

A.661261010

B.95051010

C.961291015

D.910105410

正確答案:A

參考解析:從整體上看,可得主調過程將兩次調用過程procl后,實參的值將

隨形參變化而變化。第一次調用被調過程procl,主調過程把實參x,x,z的地

址分別傳給形參x,y,z,此時形參x,y,z值分別為1,1,3,執行語句

x=3*z后,形參x值變為9,此時相對應的實參x也變為9,執行語句尸2*z

后,形參y值變為6,則相對應的實參x值變為6。執行z=x+y后,形參z值應

為12,當然這次調用后,程序代碼輸出的數值為6,6,12o第二次調用被調過

程procl,主調過程把實參x,y,y的地址分別傳給形參x,y,z。我們應注意

一下,此時實參x的值為6而不是1,所以此時形參x,y,z值分別為6,2,

2,執行語句x=3*z后,形參x值為6,相對實參x值也相應的變為6。執行語

句y=2*z后,形參y值變為4,相應的實參v值也變為4,執行2二x+y后,形參

z值變為10,相應的實參v的值變為10,而形參y和z的地址相同,最后它們

值都應為10,所以此次調用后,程序代碼將輸出的數值為6,10和10。

[單選題]40.下列關于C語言的說法錯誤的是()。

A.C程序的工作過程是編輯、編譯、連接、運行

B.C語言不區分大小寫

C.C程序的三種基本結構是順序、選擇、循環

D.C程序從main函數開始執行

正確答案:B

參考解析:C語言程序運行步驟是編輯(把程序代碼輸入,交給計算機)、編譯

(成目標程序文件.obj)、連接(成可執行程序文件.exe)和運行(可執行程

序文件),故A正確。順序結構、選擇結構和循環結構是C語言的三個基本結

構,故C正確。一個C源程序是由一個main函數和若干個其他函數組成的,所

有的執行都是從main函數開始,故D正確。對于C語言變量和常量的命名,只

耍滿足由字母、數字、下畫線組成,且首字母不為數字的命名規則即可,但區

分大小寫,故B錯誤。

[單選題]41.下述對C語言中字符數組的描述錯誤的是()。

A.字符數組可以存放字符串

B.字符數組中的字符串可以整體輸入和輸出

C.可在對字符數組定義時通過賦值運算符“:”對字符數組整體初始化

D.可在賦值語句中通過賦值運算符“:”對字符數組整體賦值

正確答案:D

參考解析:字符數組可以存放字符串,可以對字符數組中的字符串可以整體輸

入和輸出,可在對字符數組定義時通過賦值運算符“二”對字符數組整體初始

化,故ABC項正確。但不可以賦值語句中通過賦值運算符“二”對字符數組整體

賦值,比如說chara□二“abc”雖然合法,但卻不能算是賦值表達式,而是字符

數組的初始化,故D項錯誤。

[單選題"2.關于main函數說法正確的是()。

A.main函數沒有返回值

B.main是C程序中的關鍵字

C.main函數是C程序中的主函數.有且僅有一個

D.main函數從函數中開始執行.在最后一個函數中結束

正確答案:C

參考解析:main函數有返回值且不是關鍵字,一個程序從主函數開始運行。

[單選題]43.下列說法中正確的是()。

A.由于C源程序是高級語言程序.因此一定要在TC軟件中輸入

B.由于C源程序是由字符流組成的,因此可以作為文本文件在任何文本編輯的

軟件中輸入

C.由于C程序是高級語言程序,因此輸入后即可執行

D.由于C程序是高級語言程序,因此它是由命令組成的

正確答案:B

參考解析:TC只是一種C語言的編輯軟件,C語言可以在其他的一些軟件中輸

入,比如說win-TC.VisualC++等軟件,故A錯誤。C源程序是由字符流組成

的,因此可以作為文本文件在任何文本編輯的軟件中輸入,故B正確。C語言程

序運行步驟是編輯(把程序代碼輸入,交給計算機)、編譯(成目標程序文

件.obj)、連接(成可執行程序文件.exe)和運行(可執行程序文件),故C

錯誤。C語言是高級函數,但它是有函數組成,故D也錯誤。

[單選題]44.在C語言中,函數的數據類型是指0。

A.函數返回值的數據類型

B.調用該函數時的實參的數據類型

C.任意指定的數據類型

D.函數形參的數據類型

正確答案:A

參考解析:在C語言中,函數的數據類型是由定義函數時所定義的函數類型決

定的。也就是說,函數是什么類型,返回值就是什么類型,和函數形參的數據

類型及調用的實參數據類型無關。故正確選項為A。

[單選題]45.C語言中表達值為0的是()。

A.2%7

B.2/7.0

C.2/7

D.2.0/7

正確答案:C

參考解析:表達式2/7兩個數是整型返回值也是整型,因為分子小于分母所以

最后結果為0。

[單選題]46.C語言中,己知intx=9,y;y=x>7;6:5;,則y的值為0。

A.9

B.7

C.6

D.5

正確答案:C

參考解析:條件表達式和賦值表達式的綜合考查。由于x初值為9,因此x>7

成立,則y的值為6。

[單選題]47.C++中,若需要利用形參直接訪問實參,則應把形參說明為()參

數。

A.指針

B.引用

C.值

D.其他

正確答案:B

[單選題]48.C程序是由。構成的。

A.子程序

B.main函數

C.函數

D.子過程

正確答案:C

參考解析:一個C源程序是由一個main函數和若干個其他函數組成的,函數是

C程序的基本單位,被調用的函數可以是系統提供的庫函數,也可以是用戶根據

需要自己定義的函數。所以正確選項為C。

[單選題]49.設x,t均為int型變量,則執行語句“x=10;t=x&&x>10;”

后,t的值為()。

A.不定值

B.9

C.12

D.0

正確答案:D

參考解析:C語言運算符中,優先級:比較運算符》邏輯運算符)賦值運算符。

故執行語句“x=10;t=x&&x>10;",可寫成t=x&&(x>10),先計算x

>10,值為假(0),在執行x&&0,值為假(0),在將該值賦值給t,即

t=0o正確選項為D。

在C程序中,當執行以下程序段時()。

x=-l;

do

x=x*x;

[單選題]50.1while(!X);

A.循環體執行一次

B.循環體將執行兩次

C.循環體將執行無限次

D.系統將提示有語法錯誤

正確答案:A

參考解析:執行一次,因為執行一姿后x=l,而!x就表示假了。!表示取反的

意思,!ture為false。而x=l表示true。

[單選題]5LC程序的main()函數要寫在()。

A.程序文件的任何位置

B.程序文件的最后

C.它所調用的函數的前面

D.程序文件的開始

正確答案:A

參考解析:C語言程序雖然從main。函數開始執行,但這個函數在任何地方都

可以,只是在main函數中被調用,卻在main函數之后進行定義的函數,需要

在main函數之前進行聲明。

[單選題]52.下列說法中錯誤的是()。

A.主函數可以分為兩個部分:主函數說明部分和主函數體

B.主函數可以調用任何非主函數的其他函數

C.任何非主函數可以調用其他任何非主函數

D.程序可以從任何非主函數開始執行

正確答案:D

參考解析:主函數也就是常說的wain()函數,主要包括主函數說明部分和主函

數體,它可以調用任何非主函數和其他函數,非主函數只能調用非主函數,不

能調用主函數,故A、B、C均正確。任何程序只能從主函數開始,不能從非主

函數開始,故D錯誤。

[單選題]53,下面四個選項中,合法的標識符是0。

A.C

B.define

C.6a

D.auto

正確答案:A

參考解析:在C語言中,用戶標識符不能是C語言的合法關鍵字,同時規定命

名只能是字母(A?Z,a?z)、數字(0?9)、下畫線(_)組成的字符串,并

且其第一個字符必須是字母或下畫線。auto,define是C語言的合法關鍵字,

6a不滿足命名規則。故只有A是正確的。

[單選題]54,語句while(!y);中的表達式!y等價于()。

A.y==0

B.y=!0

C.y==l

D.y!=1

正確答案:A

參考解析:C語言中”表示邏輯“非”,“!y”表示為真,也就是“y”為

假,即y==0o

若有以下數組說明,則數值最大的和最小的元素下標分別是()。

[單選題]55.ma|121,2,3,4,5,6,7,8,9,10,11,121;

A.1,11

B.0,11

C.1,10

D.1,12

正確答案:B

參考解析:對一維數組而言,下標從0開始,最大為元素個數T,故題目中

a[12]的最大的元素下標為11,最小的元素下標為0。

[單選題]56.C語言屬于0語言。

A.匯編語言

B.結構化

C.面向對象

D.SQL

正確答案:B

參考解析:C語言屬于結構化語言。

[單選題]57.以下說法中正確的是0。

A.C程序總是從第一個定義的函數開始執行

B.在C程序中,要調用的函數必須在mainO函數中定義

C.C程序總是從main()函數開始執行

D.C程序中的main()函數必須放在程序的開始部分

正確答案:C

參考解析:一個C源程序是由一個main函數和若干個其他函數組成的。但在C

語言程序并不是從第一個函數開始執行,而是總是從main。函數開始執行,故

A錯誤,C正確。在C語言中,要調用的函數不能再main。函數中定義,只能再

main。函數以外定義。main。函數中只能去調用這個函數,故B錯誤。MainO

這個函數在任何地方都可以,不必在程序的開始部分,只是在main函數中被調

用、卻在main函數之后進行定義的函數,需要在main函數之前進行聲明,故D

也錯誤。

[單選題]58.不是C語言提供的合法關鍵字是()。

A.switch

B.default

C.case

D.Character

正確答案:D

參考解析:switch、case、default^char都是C語言提供的合法關鍵字,

Character不是,故D是錯誤的。

有以下程序段

intk=0;

while(k)k++;

[單選題]59.則while循環體執行的次數是()。

A.有語法錯,不能執行

B.一次也不執行

C.執行1次

D.無限次

正確答案:B

參考解析:While循環是先判斷后執行,先判斷k是否為真,初始值k=0,故不

滿足條件,則不會進行循環,也就是說while循環體執行的次數是一次也不執

行。

[單選題]60.表示關系x<=y<=z的c語言表達式為()。

A.(x<=y)AND(y<=z)

B.(x<=y<=z)

C.(x<=y)&(y<=z)

D.(x<=y)&&(y<=z)

正確答案:D

參考解析:

xUyUz這種寫法是數學上的表達方法,在C語言中,如果寫成這樣,程序編譯并不報錯,

這也是一個合法的邏輯運算表達式。先計算x<=y,結果是真(1)或假(0),然后再用這個

結果與z進行比較,得到最終結果。但本題顯然是判斷y>=x同時y<=z,C語言中邏輯“

與"為故x<=y<=z的c語言表達式為正確表達式為:(x<w)眺(yUz)。

main()

inti=O;

i=~i;

printf(**%d\n*\i);

[單選題]61.下列數據中屬于“字符串常量”的是()。

A.{ABC}

B.'abc\O'

C.a1

D."

正確答案:D

參考解析:在C語言中表示單個字符,表示字符串。所以ABC三項均錯誤,正

確選項為D。

[單選題]62.下面不正確的字符串常量是()。

A./PROGRAM'

B.”0"

C."M

D."12,12H

正確答案:A

參考解析:在C語言中表示單個字符,表示字符串。所以'PROGRAM,表示錯

誤,不是正確的字符串常量。

如下C程序的輸出結果為()

main()

inti=0;

i=~i;

Printf(n%d\n';i);

[單選題]63.}

A.1

B.8

C.65535

D.-l

正確答案:D

參考解析:;取反后為11111111,為負數,最高位代表符號位,其他代表數

值,那么該數的原碼為減一取反,故選D。

[單選

題]64.

已知:chars[20]=^programming*',*ps=s;則不能引用字母o的表達式是()。

A.s[2]

B.ps[2]

C.ps+2

D.ps+=2,*ps

正確答案:C

參考解析:當ps為指針時,ps[2]等價于s[2],表示的都是數組中的第3個元

素。前者表示指針名稱加下標引用元素,而后者表示數組名稱加下標來引用元

素,故AB均正確。ps+2就是s[2]的地址,即存放字符。的地址,所以C是錯

誤的。結合ps+2是s[2]的地址,故D項中*ps表示正確。

己知整型變量k和g,則下列程序段輸出結果為()。

intkg

k=OU:

g=l1;

[單選題]65.P”ntf("%d,%x/n",++k,g++)0

A.12,B

B.10,3

C.13,3

D.10,b

正確答案:A

參考解析:++k,先對k進行自加,k的初值是11,自加后值為12。刎是16進

制數,對11強制轉化為16進制數,則11為b。

[單選題]66.對于break語句和continue語句的說法錯誤的是()。

A.break和continue也可以用于if語句中

B.break語句不能用于循環語句和switch語句之外的任何其他語句中

C.continue語句只結束本次循環,而不是終止整個循環的執行

D.break語句是結束整個循環過程.不再判斷執行循環的條件是否成立

正確答案:A

參考解析:break語句通常用在循環語句和開關語句中,也就是說不能用于循環

語句和switch語句之外的任何其他語句中,故A項正確,B項錯誤;continue

語句只結束本次循環'break是終止整個循環的執行,故C項、D項正確;

給出以下定義:

charx(]="abcdefg";

chary[

[單選題]67.則正確的敘述為()

A.數組x和數組y等價

B.數組x的長度大于數組y的長度

C.數組x和數組y的長度相同

D.數組x的長度小于數組y的長度

正確答案:B

參考解析:

x表示字符串,y表示字符數組。字符串以'\0'結尾,也就是charx/

這個字符串在定義時會自動加上了'\0'變成鼠b;c',d.KT,V.'\0;故和字符數組y

是不一樣的,因此x的長度是8.v長度是7,因此x的長度大于v?的長度。所以ACD錯

誤,B正確。

[單選題]68.系統默認的C語言源程序擴展名為.3需經過()之后,生成.exe文

件,才能運行。

A.編譯、連接

B.編輯、連接

C.編輯、編澤

D.編輯、改錯

正確答案:A

參考解析:C語言程序運行步驟是編輯(把程序代碼輸入,交給計算機)、編譯

(成目標程序文件.obj)、連接(成可執行程序文件.exe)和運行(可執行程

序文件)。故系統默認的C語言源程序擴展名為.C,需經過編譯和連接之后,

生成.exe文件才能運行。

[單選題]69.C語言中對函數的描述正確的是()。

A.可以嵌套定義

B.嵌套調用,遞歸調用均可

C.不可以嵌套調用

D.可以嵌套調用。不可以遞歸調用

正確答案:B

參考解析:在C語言程序中,所有的函數都是平行的,即在定義函數時是互相

獨立的,一個函數并不從屬于另一個函數,即函數不能嵌套定義,但可以互相

調用,不管是嵌套調用和遞歸調用均可以。故B項正確。

[單選題]70.許多程序設計語言規定,程序中的數據都必須具有類型,其作用不

包括()。

A.便于為數據合理分配存儲單元

B.便于對參與表達式計算的數據對象進行檢查

C.便于定義動態數據結構

D.便于規定數據對象的取值范圍及能夠進行的運算

正確答案:C

參考解析:數據具有類型,便于編譯程序在基礎機器中完成對值的布局,同時

還可用于檢查表達式中對運算的應用是否正確。

[單選題]71.在C語言中,下列說法中正確的是0。

A.do-while語句構成的循環不能用其他語句構成的循環來代替

B.do-while語句構成的循環只能用break語句退出

C.do-while語句構成的循環,在while后的表達式非零時結束循環

D.do-while語句構成的循環,在while后的表達式為零時結束循環

正確答案:D

參考解析:do-while語句、while語句和for語句是C語言常見的三種循環結

構,A項可以用for循環代替,B不滿足條件時即條件的邏輯值為假(0)時推

出,break也可以,C項while(條件),條件為真時進行循環,為假(0)時退

出。D項while(條件),條件為真時進行循環,為假(0)時退出。故D項正

確。

[單選題]72.在C語言中,認為()為邏輯“真”

A.非0的數

B.true

C.大于0的數

D.非0整數

正確答案:A

參考解析:在C語言中,沒有專用的布爾型變量。只要邏輯表達式的值非0,就

被認為是“真”;相反0則為假。故選A非。數更準確。

[單選題]73.C語言中函數返回值的類型是由0決定的。

A.函數定義時指定的類型

B.形參的數據類型

C.調用該函數時的實參的數據類型

D.return語句中的表達式類型

正確答案:A

參考解析:C語言函數返回值是由定義函數時所定義的函數類型決定的。也就是

說,函數是什么類型,返回值就是什么類型。retun語句的表達式能轉換成函

數定義類型,則返回函數定義類型,否則將出錯,故A為正確選項。

[單選題]74.對丁基類型相同的兩個指針變量之間,不能進行的運算是()。

A.<

B.二

C.+

D.~

正確答案:C

參考解析:A選項兩個同類型的指針間可以比較大小,比較原則應該是按實際內

存的高低位比較的。B選項賦值,這個是可以的。C選項不可以,因為兩個指針

相加什么都得不到,所以規定不允許相加。D選項兩個相同指針變量相減可以獲

得在之間相隔的同類型元素的個數(在某個類型的數組中的應用)。

[單選題]75.若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式

(x-y)?(x++):(y++)中的條件表達式(x-y)等價的是()。

A.(x-y<0)

B.(x-y=O)

C.(x-y>0)

D.(x-y<0

(-y)>0)

正確答案:D

參考解析:x-y判斷為真執行x++,為假執行y++,無論真假與否會執行語句,

故選D。

[單選題]76.已知:inta[10];則對a數組元素的正確引用是()。

A.a[0]

B.a[3.5]

C.a(5)

D.a[10]

正確答案:A

參考解析:C語言規定不能一次引用整個數組,引用時只能逐個元素引用,數組

元素的表示形式為:數組名[下標],下標可以是整型常量或整型表達式,下標

最大值為元素個數D項下標為元素個數,B項下標不是整數,C項是括號,

均不正確,故正確選項為A。

[單選題]77.下列C語言用戶標識符中合法的是0。

A.*y

B.sum

C.int

D.%5f

正確答案:B

參考解析:在C語言中,用戶標識符不能是C語言的合法關鍵字,同時規定命

名只能是字母(A?Z,a?z)、數字(0?9)、下畫線(_)組成的字符串,并

且其第一個字符必須是字母或下畫線。ini是C語言的合在關鍵字,AD不滿足

命名規則。故只有B是正確的。

[單選題]78.在C語言中,要求運算數為整型的運算符是0。

A./

B.*

C.!=

D.%

正確答案:D

參考解析:

這是C語言的格式輸出,%c,如這些代表你要輸出的數據的數據類型:%d十進制有符號

整數

加十進制無符號整數

肌浮點數

如字符串

杭單個字符

理指針的值

指數形式的浮點數

%x,蟻無符號以十六進制表示的整數

加無符號以A進制表示的整數

%g自動選擇合適的表示法

[單選題]79.int*p,a=10,b=l;p=&a;a=*p+b;執行該程序段后,a的值為

Oo

A.10

B.11

C.12

D.編譯出錯

正確答案:B

參考解析:P二&a,就是將p指向a,故*p值為10,在將*p+b=11的值賦給a,

故執行程序后,a的值變為11。

若inti=10;執行下列程序后,變量i的正確結果是()。

switch(i)

Icase9:i+=l;

case10:i+=l;

case11:i+=l;

[單選題]80.default:i+=l;|

A.13

B.14

C.12

D.11

正確答案:A

參考解析:switchcase是C語言中的多重選擇語句,先對switch中的條件進行

判斷,滿足條件跳轉到對應的case語句,執行case的語句。如果沒遇到break

終止語句,則繼續往下執行。Default語句是默認條件。該題中i=10,跳轉到

執行caselO:后的語句,由于沒有break終止,將繼續往下執行,直到結束。

最終為i+勺執行3次,結果為113。

[單選題]81,語句int*p;說明了()。

A.p是指向int型數據的指針

B.p是指向一維數組的指針

C.p是指向函數的指針,該函數返回一int型數據

D.p是函數名,該函數返回一指向int型數據的指針

正確答案:A

參考解析:int*p的定義了一個int類型的指針變量p,并不是一維數組也不是

函數,故A是正確選項。

[單選題]82.設有數組定義:chararray□二"abed";則數組array所占的空間

為()。

A.6個字節

B.5個字節

C.8個字節

D.7個字節

正確答案:B

參考解析:

array表小字符串,字符串以'\0'結尾,也就是chararray[]="abcd"這個字符中

在定義時會自動加上了M)'變成|,因此array的長度是5,所以B是

正確選項Q

[單選題]83.以下對一維數組a的正確說明是()。

A.chara(10):

B.inta[];

C.intk=5,a[k];

D.chara[3]=iaVb'/c'l;

正確答案:D

參考解析:嚏義數組不能用小括號,排除A;數組定義的長度不能為變量,排除

B、C,故本題答案為D。

[單選題]84.對于說明語句inti,j,*p,*Q;下列賦值運算語句中,不正確的

是()。

A.i=*&j

B.Q=&*p

C.P=&I

D.P=&Q

正確答案:B

參考解析:*P是一個指針,指向P指針指向內存單元中的內容,&為取地址符

號,Q二&*p指針指向的是內容,而非內存單元地址。

[單選題]85.C語言中,說明語句“int(*p)();”的含義是()。

A.p是一個指向一維數組的指針變量

B.p是指針變量,指向一個整型數據

C.p是一個指向函數的指針,該函數的返回值是一個整型

D.以上都不對

正確答案:B

參考解析:*P是一個指向函數的指針,p表示指針變量名稱。

[單選題]86.有語句:inta[10];則()是對指針變量p的正確定義和初始化。

A.intp=*a;

B.intp=&a;

C.int*p=&a;

D.int*p二a;

正確答案:D

參考解析:a是數組,p是指針,故將p指向數組a的地址即可,也就是*p二a,

故D項正確。

若有以下數組說明,則元素數值是()。

[單選題]87.而a[12]=[1,4,7,10,2,5,8,11,3,6,9,12};

A.8

B.10

C.6

D.57

正確答案:C

參考解析:由于i=10,故a[10]=9,則a[a[10]]即a[9]=6。

[單選題]88.在C語言中,數組一個數組元素占兩個字節,數組開始

的地址為1000,的地址是()。

A.1026

B.1024

C.1014

D.1012

正確答案:A

參考解析:數組的第一個元素為M[0][0],因此在前面有2X

6+1-13,一個數組元素占兩個字節,起始地址為1000,則13個元素占26個字

節,M[2][l]的地址為1000+26=1026。

[單選題]89.字符串〃ABCD〃在內存占用的字節數是()。

A.8

B.4

C.2

D.5

正確答案:D

參考解析:“ABCD”表示字符串,字符串以'\0’結尾,也就是“ABCD”這個

字符串在定義時會自動加上了‘'0'變成{‘A,。'IT,,

'\0'},因此它的長度是5,所以D是正確選項。

[單選題]90.下列循環語句中有語法錯誤的是()。

A.dox++while(x=10);

B.while(x=y)5;

C.while(0);

D.do2;while(x二二B);

正確答案:A

參考解析:C語言中語句后面需要加上“;”,A項中語句x++后面缺少

“;”,故該項錯誤。

[單選題]91.在C語言中,函數原型不能標識()。

A.函數的返回類型

B.函數的功能

C.函數的參數類型

D.函數參數的個數

正確答案:B

參考解析:聲明函數原型時能標識函數的參數類型,參數個數和返回類型等,

但不能標識函數的功能。

[單選

題]92.

已知charx[]=”hell/,則關于兩個數組長度的正確描述是

()。

A.x大于y

B.相同

C.x小于y

D.以上答案都不對

正確答案:A

參考解析:

x表示字符串,y表示字符數組。字符串以結尾,也就是char"]="hello”這個

字符串在定義時會自動加上了A0,變成|h;e',T,T;oV\()'|,因此x的長度是6,y

長度是5,因此x的長度大于y的長度。A為正確選項。

[單選題]93.假定int類型變量占用兩個字節,其有定義:intx[10]={0,2,

4};,則數組x在內存中所占字節數是()。

A.3

B.7

C.9

D.20

正確答案:D

參考解析:數組定義時是一次完成申請內存空間,由于int類型變量占用兩個

字節,故在定義一個數組長度為10的int型數組x[10]時,會一次性申請2*10

也就是20個字節來存儲數組。

[單選題]94.C語言規定,簡單變量做實參時,它和對應形參之間的數據傳遞方

式為()。

A.由系統選擇

B.由用戶指定傳遞方式

C.地址傳遞

D.單向值傳遞

正確答案:D

參考解析:在C語言中,簡單變量做實參時,相應的形參變量也是簡單變量,

它們之間的數據傳遞方式是單向值傳遞,即數據只能由實參傳到形參,形參值

的改變不影響實參值的變化。

[單選題]95.在C語言程序中,若有一下函數調用語句:fun(a+b,(x,y),

fun(n+k,d,(a,b));在此函數調用語句中實際參數個數是()。

A.3

B.4

C.5

D.6

正確答案:A

參考解析:fun(a+b,(x,y),fun(n+k,d,(a,b)))中fun(n+k,

d,(a,b))是子函數,只需要傳如3個實際參數即可。

[單選題]96,已知:inta,*p=&a;則下列函數調用中錯誤的是()。

Aprintf(,,%d*\p);

Bscanf(

Cscanf("%d",p);

np

溫馨提示

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

評論

0/150

提交評論