C語言題庫附有答案_第1頁
C語言題庫附有答案_第2頁
C語言題庫附有答案_第3頁
C語言題庫附有答案_第4頁
C語言題庫附有答案_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言題庫[復(fù)制]僅供期末復(fù)習(xí)使用,禁止二傳,違者必究!一、選擇題1.構(gòu)成C語言程序的基本單位是()。[單選題]*A.過程B.語句C.函數(shù)(正確答案)D.表達(dá)式答案解析:函數(shù)是C程序中模塊化設(shè)計(jì)的基礎(chǔ),是C語言程序的基本單位。2.一個(gè)C程序的執(zhí)行是從()。[單選題]*A.本程序的main函數(shù)開始,到main函數(shù)結(jié)束(正確答案)B.本程序的main函數(shù)開始,到本程序的最后一個(gè)函數(shù)結(jié)束C.本程序的第一個(gè)函數(shù)開始,到本程序的最后一個(gè)函數(shù)結(jié)束D.本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束答案解析:C語言的啟動(dòng)函數(shù)就是main函數(shù),所有的執(zhí)行都是在這里,其他函數(shù)的執(zhí)行都是通過main函數(shù)直接或間接調(diào)用,最終又回到main函數(shù),main函數(shù)執(zhí)行結(jié)束,整個(gè)程序也就結(jié)束了。所以,一個(gè)C程序的執(zhí)行是從本程序的main函數(shù)開始,到main函數(shù)結(jié)束。3.以下敘述正確的是()。[單選題]*A.C程序中,main函數(shù)必須位于程序的最前面B.C程序中,大、小寫字母是有區(qū)別的(正確答案)C.C程序的每行只能寫一條語句D.C程序中,若一條語句較長,也不能分寫在下一行上答案解析:C程序的執(zhí)行是從main函數(shù)開始,但并不要求main函數(shù)必須位于程序的最前面,故選項(xiàng)A不正確。C程序中,語句以分號結(jié)束,一行可以寫多條語句,一句也可以書寫在多行上,故選項(xiàng)C、選項(xiàng)D均不正確。C語序是區(qū)分大小寫的,大、小寫字母是有區(qū)別的,故此題答案選B。4.以下敘述錯(cuò)誤的是()。[單選題]*A.C程序中,語句用分號“;”結(jié)尾,分號“;”是C語句的一部分B.C程序中,可以在“{}”內(nèi)寫若干條語句,構(gòu)成復(fù)合語句C.C語言的變量在使用之前必須先定義其數(shù)據(jù)類型D.C語言函數(shù)內(nèi)部可以定義函數(shù)(正確答案)答案解析:C語言中對函數(shù)的“定義”和“聲明”不是一回事?!岸x”是指對函數(shù)功能的確立,包括指定函數(shù)名,函數(shù)值類型、形參類型、函數(shù)體等,它是一個(gè)完整的、獨(dú)立的函數(shù)單位,C語言規(guī)定函數(shù)的定義必須是獨(dú)立的,不能在其他函數(shù)的內(nèi)部。而函數(shù)的“聲明”的作用則是把函數(shù)的名字、函數(shù)類型以及形參類型、個(gè)數(shù)和順序通知編譯系統(tǒng),以便在調(diào)用該函數(shù)時(shí),系統(tǒng)按此進(jìn)行對照檢查,函數(shù)的聲明只要放在被調(diào)用程序之前即可,可以在函數(shù)外部進(jìn)行聲明,也可以在函數(shù)內(nèi)部的聲明部分進(jìn)行函數(shù)聲明,故選項(xiàng)D是不正確的,不能在函數(shù)內(nèi)部定義函數(shù)。其余選項(xiàng)是正確的,故本題答案選D。5.以下敘述不正確的是()。[單選題]*A.C程序的注釋部分放在“/*”和“*/”之間,“/”和“*”之間不允許有空格B.一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成C.一個(gè)C源程序必須有一個(gè),且只能有一個(gè)main函數(shù)D.C程序編譯時(shí),注釋部分的錯(cuò)誤將被發(fā)現(xiàn)(正確答案)答案解析:一個(gè)C源程序有且僅有一個(gè)main函數(shù),可以包含若干個(gè)其他函數(shù),main函數(shù)是程序的入口,故選項(xiàng)B、C是正確的。C語言規(guī)定注釋部分放在“/*”和“*/”之間,編譯器通過“/*”來判斷為注釋開始,“*/”為注釋結(jié)束,“/”和“*”之間不允許有空格,否則編譯器認(rèn)定為不是注釋的符號。C語言編譯時(shí)注釋部分的內(nèi)容不參與程序的編譯和運(yùn)行,也就是說在“/*”和“*/”之間的程序不被執(zhí)行,也就無法發(fā)現(xiàn)注釋部分的錯(cuò)誤,故選項(xiàng)A是正確的,選項(xiàng)D是不正確的。此題答案選D。6.一個(gè)C語言源程序中,main函數(shù)的位置()。[單選題]*A.必須在最開始B.必須在自定義函數(shù)的前面C.可以放在某一用戶函數(shù)定義之前,也可以放在某一用戶函數(shù)定義之后(正確答案)D.必須在自定義函數(shù)的后面答案解析:C語言不限定函數(shù)源代碼在源文件中的位置,但是函數(shù)內(nèi)的標(biāo)識符同函數(shù)外的標(biāo)識符一樣也必須滿足使用的標(biāo)識符先聲明后引用的原則。在main函數(shù)之前或之后均可以寫自定義的函數(shù),只是寫在main之后的定義的函數(shù),需要在main函數(shù)之前聲明該函數(shù),所以main函數(shù)可以放在某一用戶函數(shù)定義之前,也可以放在某一用戶函數(shù)定義之后。答案選C。7.C語言中,復(fù)合語句的構(gòu)成是將一系列語句置于()。[單選題]*A.begin與end之間B.圓括號“()”之間C.花括號“{}”之間(正確答案)D.方框號“[]”之間答案解析:C語言中的語句可以簡單地劃分為單條語句和復(fù)合語句兩類。單條語句指只有一條語句,而復(fù)合語句指多條語句的總稱,但是,多條語句用花括號(“{}”)括起來才稱復(fù)合語句。沒有用花括號括起的若干條單條語句只能稱為語句序列。故本題答案選C。8.編制C語言程序的步驟是()。[單選題]*A.編譯、連接、編輯、運(yùn)行B.編輯、連接、編譯、運(yùn)行C.編輯、編譯、連接、運(yùn)行(正確答案)D.編譯、編輯、連接、運(yùn)行答案解析:解析:編制并運(yùn)行C語言程序的“四步曲”:(1)編輯:將程序代碼輸入計(jì)算機(jī);(2)編譯:生成目標(biāo)程序文件.obj;(3)鏈接:生成可執(zhí)行程序文件.exe。(4)運(yùn)行:執(zhí)行可執(zhí)行程序文件。故本題答案選C。9.哪個(gè)運(yùn)算符用于C語言中的取余運(yùn)算?()[單選題]*A.%(正確答案)B./C.!D.&10.以下表示常量正確的是()。[單選題]*A.E-5B.1E5.1C.'a12'D.32766L(正確答案)答案解析:浮點(diǎn)型常量用指數(shù)形式表示的形式為aEn,a和n都不能省略,n必須為整數(shù),因此選項(xiàng)A和B是不正確的。字符串常量是由一對雙引號括起來的字符序列,選項(xiàng)C是用單引號,因此選項(xiàng)C不正確。選項(xiàng)D是在一個(gè)整型常量的尾部加上字母L,表示該整數(shù)為長整型常量,是正確的。11.若有定義:inta=1,b=2,c=3,d=4,x=5,y=6;,則表達(dá)式(x=a>;b)&&(y=c>;d)的值為()。[單選題]*A.0(正確答案)B.1C.5D.6答案解析:由于a=1,b=2因此a>;b的值為0(表示假),因此x=a>;b的值為0,由于后面跟的是&&(與運(yùn)算),因此后面表達(dá)式y(tǒng)=c>;d的值可不計(jì)算,整個(gè)表達(dá)式的值為0。12.以下()是正確的字符常量。[單選題]*A."c"B.'\\''C.'W'(正確答案)D."\32a"答案解析:由于字符常量是使用單引號括起來的一個(gè)字符,因此只有選項(xiàng)C符合要求。13.在C語言中,正確的整數(shù)數(shù)據(jù)類型是()。[單選題]*A.StringB.int(正確答案)C.boolD.Float14.以下()是不正確的字符串常量。[單選題]*A.'abc'(正確答案)B."12'12"C."0"D.""答案解析:字符串常量是由一對雙引號括起來的字符序列,字符串中可以包含任何字符,包括空格、轉(zhuǎn)義符,甚至漢字。以上選項(xiàng)中'abc'是不正確的字符串常量。15.在C語言中,下面哪個(gè)選項(xiàng)是合法的變量名?()[單選題]*A.2thingsB.things2(正確答案)C.this-thingD.**_thing16.哪種數(shù)據(jù)類型用于存儲(chǔ)非常大的整數(shù),在標(biāo)準(zhǔn)C中不是基本數(shù)據(jù)類型?()[單選題]*A.intB.longC.BigInt(正確答案)D.Float17.以下是正確的浮點(diǎn)數(shù)的是()。[單選題]*A.e3B.62(正確答案)C.2e4.5D.123答案解析:浮點(diǎn)型常量用指數(shù)形式表示的形式為aEn,a和n都不能省略,n必須為整數(shù),因此選項(xiàng)A和C是不正確的。以十進(jìn)制小數(shù)形式表示浮點(diǎn)型常量時(shí),整數(shù)和小數(shù)部分可省略其中任一個(gè),因此選項(xiàng)B是正確的。選項(xiàng)D表示的是整形常量,如果用于表示浮點(diǎn)型常量,后面要加上一個(gè)點(diǎn),即123.。18.若有定義:inta=2;,則正確的賦值表達(dá)式是()。[單選題]*A.a-=(a*3)(正確答案)B.double(-a)C.a*3D.a*4=3答案解析:a-=(a*3)與a=a-(a*3)等價(jià),是正確的,其余的選項(xiàng)都不是賦值表達(dá)式。19.若有定義:intx=1111,y=222,z=33;,則語句printf("%4d+%3d+%2d",x,y,z);運(yùn)行后的輸出結(jié)果為()。[單選題]*A.111122233B.1111,222,33C.111122233D.1111+222+33(正確答案)答案解析:格式控制字符串有+號,輸入時(shí)要保留,因此只有選項(xiàng)D符合要求。20.已有如下定義和輸入語句:若要求a、b的值分別為11和22,正確的數(shù)據(jù)輸入是哪一個(gè)?()[單選題]*A.1122B.11,22C.a=11,b=22D.11;22(正確答案)答案解析:格式控制字符串有逗號,輸入時(shí)要保留,因此正確的輸入應(yīng)為11,22。21.C語言中的邏輯“非”運(yùn)算符是()。[單選題]*A.?B.!(正確答案)C.~D.^22.已有如下定義和輸入語句,若要求a、c1、c2的值分別為40、A和A,正確的數(shù)據(jù)輸入是()。[單選題]*A.40AAB.40AAC.40AA(正確答案)D.40,A,A答案解析:空格在輸入時(shí)也會(huì)當(dāng)作字符處理,因此c1,c2會(huì)接收空格,因此B、C選項(xiàng)是錯(cuò)的,D選項(xiàng)中多了兩個(gè)逗號,運(yùn)行后c1和c2的值分別為’,’和’A’。23.語句a=(3/4)+3%2;運(yùn)行后,a的值為()。[單選題]*A.0B.1(正確答案)C.2D.3答案解析:3/4是整除,值為0,3%2求余,值為1,因此整個(gè)表達(dá)式的值為1。24.char型變量存放的是()。[單選題]*A.ASCII代碼值(正確答案)B.字符本身C.十進(jìn)制代碼值D.十六進(jìn)制代碼值答案解析:C語言在內(nèi)存中存放字符時(shí)是用字符數(shù)據(jù)的ASCII碼值存儲(chǔ),因此選項(xiàng)A是正確的。25.在下列運(yùn)算符中,優(yōu)先級最高的運(yùn)算符是()。[單選題]*A.<=B.!=C.!(正確答案)D.||答案解析:通過教材的“表2-9C運(yùn)算符的優(yōu)先級與結(jié)合性”可知,<=的優(yōu)先級是6,!=的優(yōu)先級是7,!的優(yōu)先級是2,||的優(yōu)先級是12。26.設(shè)單精度型變量f、g的值均為2.0,使f為4.0的表達(dá)式是()。[單選題]*A.f+=g(正確答案)B.f-=g+2C.f*=g-6D.f/=g*10答案解析:對于選項(xiàng)A,該表達(dá)式相當(dāng)于f=f+g,因此f的值為4.0。27.若有定義:inti=7,j=8;,則表達(dá)式i>;=j||i[單選題]*A.1(正確答案)B.變量i的值C.0D.變量j的值答案解析:i的值為7,j的值為8,因此i<j的值為“真”,||運(yùn)算的結(jié)果是整個(gè)表達(dá)的值為“真”,C語言中用1表示真。28.若希望當(dāng)a的值為奇數(shù)時(shí),表達(dá)式的值為"真",a的值為偶數(shù)時(shí),表達(dá)式的值為"假"。則不能滿足要求的表達(dá)式是()。[單選題]*A.a%2==1B.!(a%2==0)C.!(a%2)(正確答案)D.a%2答案解析:a%2是求a整除2的余數(shù),當(dāng)a為奇數(shù)時(shí)值為1,當(dāng)a為偶數(shù)時(shí)值為0。在選項(xiàng)C中,進(jìn)行!(非)運(yùn)算后的值分別為0和1。因此當(dāng)a為奇數(shù)時(shí)表達(dá)式!(a%2)的值為“假”,當(dāng)a為偶數(shù)時(shí)整個(gè)表達(dá)式的值為“真”,與題目的要求相反。29.若有定義:intx=3,y=4,z=5;則值為0的表達(dá)式是()。[單選題]*A.'x'&&'y'B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)(正確答案)答案解析:對于選項(xiàng)D,括號內(nèi)子表達(dá)式的最后部分為“||1”,因此括號內(nèi)子表達(dá)式的值為真,非真為假,因此整個(gè)表達(dá)式的值為0。30.若有定義:floatx=3.5;intz=8;則表達(dá)式x+z%3/4的值為()。[單選題]*A.3.75B.3.5(正確答案)C.3D.4答案解析:z%3的值為1(求余數(shù)),1/4的值為0(整數(shù)除),x+0值為3.5。31.已知chara='R';則正確的賦值表達(dá)式是()。[單選題]*A.a=(a++)%4(正確答案)B.a+2=3C.a+=256--D.a='\078'答案解析:C語言在內(nèi)存中存放字符時(shí)是用字符數(shù)據(jù)的ASCII碼值存儲(chǔ)的,字符數(shù)據(jù)可以參加算術(shù)運(yùn)算。選項(xiàng)A是正確的,其中(a++)%4是將a的ASCII碼值(字符’R’的ASCII碼值為82)整除4的余數(shù),值為2,賦值給a,然后a再加1,因此最后a的ASCII碼值為3。選項(xiàng)B錯(cuò)誤的原因是a+2不能作為賦值運(yùn)算的“左值”。選項(xiàng)C錯(cuò)誤的原因是自減運(yùn)算符“--”不能作用于常量。在選項(xiàng)D中,’\ddd’是指用八進(jìn)制數(shù)代表的轉(zhuǎn)義符,而八進(jìn)制只可以用0~7的字符,而選項(xiàng)D中出現(xiàn)了8,因此a得不到想要的數(shù)據(jù)。32.C語言中使用哪個(gè)關(guān)鍵字來定義常量?()[單選題]*A.const(正確答案)B.defineC.constantD.Static33.若有定義:intb=7;floata=2.5,c=4.7;,則表達(dá)式a+(b/2*(int)(a+c)/2)%4的值是()。[單選題]*A.2.5B.3.5C.4.5(正確答案)D.5.5答案解析:b/2的值為3,int(a+c)的值為7,3*7得21,整除以2得10,因此b/2*(int)(a+c)/2的值為10,整除以4的余數(shù)為2,與a相加得4.5。34.若已定義:inti=3,k;則語句k=(i--)+(i--);運(yùn)行后k的值為()。[單選題]*A.4B.5C.6(正確答案)D.7答案解析:由于(i--)+(i--)中兩個(gè)“—”都是后綴運(yùn)算符,因此k的值等于i+i,為6。35.若已定義:inta=5;floatb=63.72;以下語句中能輸出正確值的是()。[單選題]*A.printf("%d%d",a,b);B.printf("%d%.2f",a,b);(正確答案)C.printf("%.2f%.2f",a,b);D.printf("%.2f%d",a,b);答案解析:由于a和b分別是整型和浮點(diǎn)型變量,對應(yīng)于printf函數(shù)的輸出格式控制符是%d和%f;浮點(diǎn)型數(shù)據(jù)輸出可以用%m.nf來指定數(shù)據(jù)輸出總的寬度占m列,小數(shù)部分占n列。因此B選項(xiàng)可以輸出正確值。36.C語言中,能正確表示條件10[單選題]*A.10<x<20B.x<10||x<20C.x>;10&&<20D.(x>;10)&&(x<20)(正確答案)答案解析:條件10<x>20表示x小于20并且大于10。A選項(xiàng)是數(shù)學(xué)上的表示方式,不符合C語言的語法;B選項(xiàng)中||表示或;C選項(xiàng)中的<20應(yīng)為x<20。37.C語言中用于定義字符型數(shù)組的正確方式是()。[單選題]*A.chars[10]="hello";(正確答案)B.strings="hello";C.charss[10]="hello";D.strs="hello";38.若表達(dá)式!x的值為1,則以下哪個(gè)表達(dá)式的值為1()。[單選題]*A.x==0(正確答案)B.x==1C.x=!1D.x!=0答案解析:若表達(dá)式!x=1,則x的值一定為0,因此選項(xiàng)A正確。39.在C語言中,正確的整數(shù)數(shù)據(jù)類型是()。[單選題]*A.StringB.int(正確答案)C.boolD.Float40.語句x=(y=3,b=++y);運(yùn)行后,x、y、b的值依次為()。[單選題]*A.4,4,3B.3,3,3C.4,4,4(正確答案)D.4,3,4答案解析:逗號表達(dá)式y(tǒng)=3,b=++y從左到右運(yùn)算,首先y=3給y賦值3,接著b=++y先使y增1等于4再賦值給b,因此b和y的值都為4。由于逗號表達(dá)式是將最右邊一個(gè)表達(dá)式的值作為整個(gè)表達(dá)式的值,因此x為4。41.若有定義:intx,c;,則語句x=(c=3,c+1);運(yùn)行后,x,c的值分別是()。[單選題]*A.3,3B.4,4C.3,3D.4,3(正確答案)答案解析:逗號表達(dá)式(c=3,c+1)從左到右運(yùn)算,首先為c賦值3,又因?yàn)槎禾柋磉_(dá)式的值為最右邊表達(dá)式c+1的值,因此x的值為c+1等于4。42.語句a=(6/8)+6%5;運(yùn)行后,a的值為()。[單選題]*A.1(正確答案)B.2C.1.75D.1.2答案解析:6/8表示6整除以8,值為0;6%5求6整除以5的余數(shù),值為1。43.若有定義:intx,y;,則表達(dá)式(x=2,y=5,x*2,y++,x+y)的值是()。[單選題]*A.7B.8(正確答案)C.9D.10答案解析:逗號表達(dá)式的求值過程是,從左到右依次對各表達(dá)式求值,并將最右邊一個(gè)表達(dá)式的值作為整個(gè)表達(dá)式的值,即x+y的值是整個(gè)表達(dá)式的值。此外,要注意:(1)x*2不改變x的值,x還是2;(2)y++表達(dá)式運(yùn)算之后,y加了1為6,因此x+y值為8。44.對代數(shù)式(4ad)/(bc),不正確的C語言表達(dá)式是()。[單選題]*A.a/b/c*d*4B.4*a*d/b/cC.4*a*d/b*c(正確答案)D.a*d/c/b*4答案解析:由于算符“*”與“/”的優(yōu)先級相同,運(yùn)算順序是從左到右,因此C選項(xiàng)4*a*d/b*c相當(dāng)于(4ab/b)*c,不正確。45.在C語言中,下面哪個(gè)選項(xiàng)是合法的變量名?()[單選題]*A.2thingsB.things2(正確答案)C.this-thingD.&_thing46.C語言中的邏輯“非”運(yùn)算符是()。[單選題]*A.?B.!(正確答案)C.~D.^47.C語言中用于定義字符型數(shù)組的正確方式是()。[單選題]*A.chars[10]="hello";(正確答案)B.strings="hello";C.charss[10]="hello";D.strs="hello";48.哪個(gè)運(yùn)算符用于C語言中的取余運(yùn)算?()[單選題]*A.%(正確答案)B./C.!D.&49.若x和y為整數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是()。[單選題]*A.abs(x-y)<10B.(x-y)>;-10&&(x-y)<10C.!(x-y)<-10||!(y-x)>;10(正確答案)D.(x-y)*(x-y)<100答案解析:由于邏輯非運(yùn)算符!的優(yōu)先級最高,因此對于C選項(xiàng)的運(yùn)算順序是:先運(yùn)算!(x-y),結(jié)果只能為0或1;然后運(yùn)算!(y-x),結(jié)果也只能為0或1;因此!(x-y)<-10與!(y-x)>;10兩個(gè)表達(dá)式的值一定是0(假),最后兩個(gè)表達(dá)式進(jìn)行||(或)運(yùn)算,值為0,因此不管x、y為任何值,該表達(dá)式的值一定為0,故選項(xiàng)C中的表達(dá)式不正確。50.C語言中,哪個(gè)預(yù)處理指令用于包含標(biāo)準(zhǔn)輸入輸出庫?()[單選題]*A.#include<stdio.h>;(正確答案)B.#include"stdio.h"C.#library<stdio.h>;D.#library"stdio.h"51.C語言中用于輸入整數(shù)的標(biāo)準(zhǔn)庫函數(shù)是()。[單選題]*A.printfB.scanC.scanf(正確答案)D.Input52.若有以下程序段,則z的二進(jìn)制值是()。[單選題]*A.00010100B.00011011(正確答案)C.00011000D.00000110答案解析:運(yùn)算符<<的優(yōu)先級高于^,因此先計(jì)算y<<2,由于y的二進(jìn)制值為00000110,左移兩位為00011000,然后與x(00000011)進(jìn)行按位異或運(yùn)算,值為00011011。53.有以下程序執(zhí)行后輸出結(jié)果是()。[單選題]*A.1,1,2B.2,2,1C.2,2,2(正確答案)D.2,2,3答案解析:本題主要考查邏輯運(yùn)算符的運(yùn)算規(guī)則。對于運(yùn)算符“||”和“&&”,如果運(yùn)算符左側(cè)表達(dá)式的值足以確定整個(gè)邏輯表達(dá)式的值,則不再計(jì)算右側(cè)表達(dá)式的值。對于表達(dá)式“(j++||k++)&&i++”,先計(jì)算括號內(nèi)的“j++||k++”,因?yàn)閖初值為1,在邏輯表達(dá)式中判定為真,真值與任何數(shù)進(jìn)行或運(yùn)算均為真,所以表達(dá)式“j++||k++”的值為真,且不計(jì)算k++;而對于“&&”運(yùn)算符來說,左側(cè)表達(dá)式為真,要確定整個(gè)表達(dá)式的值,還需要計(jì)算i++。在程序運(yùn)行過程中,i++和j++被執(zhí)行了,而k++沒被執(zhí)行,因此,輸出i的值為2,j的值為2,k的值為2.54.下列哪一個(gè)不是C語言的基本控制語句?()[單選題]*A.forB.switchC.loop(正確答案)D.If55.定義inta=3,b=10,c=7,執(zhí)行下列語句輸出為()[單選題]*A.0101(正確答案)B.0100C.11111D.011156.有以下程序執(zhí)行后輸出結(jié)果是()。[單選題]*A.2B.3(正確答案)C.4D.編譯時(shí)有錯(cuò),無結(jié)果答案解析:本題主要考查比較運(yùn)算符的運(yùn)算規(guī)則。對于優(yōu)先級別相同的比較運(yùn)算符應(yīng)從左到右依次計(jì)算。變量a,b,c,d初始值依次為5,4,3,2。對于第一個(gè)條件表達(dá)式“a>;b>;c”,先判斷“a>;b”,條件成立,其值為1,再判斷“1>;c”,條件不成立,因此第一個(gè)if語句的條件為假,執(zhí)行其else部分;第二個(gè)條件表達(dá)式“((c-1>;=d)==1,”,結(jié)合運(yùn)算符的優(yōu)先級易得出條件成立,執(zhí)行語句“printf("%d\n",d+1);”,輸出3。57.以下程序的運(yùn)行結(jié)果是()。[單選題]*A.8B.7C.89(正確答案)D.87答案解析:本題考查switch語句的使用。程序執(zhí)行“switch(n--)”語句,因?yàn)樽詼p運(yùn)算符在變量之后,所以先用n與各個(gè)case語句的值相互匹配后再自減,因?yàn)閚的值為9,無法找到與其相匹配的case語句,因此執(zhí)行“default:printf("%d",n++);”語句,此時(shí)n自減為8后輸出,n再自增為9;接著往下執(zhí)行“case8:case7:printf("%d",n);break;”,直到遇到break語句退出switch結(jié)構(gòu)。故本題答案選C。58.下列哪一個(gè)不是C語言的基本控制語句?()[單選題]*A.forB.switchC.loop(正確答案)D.If59.有以下程序:當(dāng)輸入247時(shí),程序的輸出結(jié)果是()。[單選題]*A.689B.6689(正確答案)C.66778D.66887答案解析:本題主要考查while循環(huán)結(jié)構(gòu)的執(zhí)行流程,switch語句在循環(huán)體中的執(zhí)行過程。while語句中“((c=getchar())!='\n')”的作用是控制循環(huán)輸入字符,直到輸入回車符結(jié)束。執(zhí)行while語句,第一次輸入字符2,由于switch語句中“c-'2'”的值為0,便依次執(zhí)行case0、case1和case2三種情況的子句,輸出“66”;第二次輸入字符4,“c-'2'”的值為2,執(zhí)行case2情況的子句,輸出“8”;第三次輸入字符7,“c-'2'”的值為5,執(zhí)行“default:putchar(c+2);”,輸出9。故本題答案選B。60.在C語言中,以下哪個(gè)語句可以用于創(chuàng)建一個(gè)無限循環(huán)?()[單選題]*A.for(inti=0;i<10;i++)B.while(1)(正確答案)C.do{...}while(0);D.for(inti=0;i<100000;i++)61.以下程序段的輸出結(jié)果是()。[單選題]*A.1B.30C.1-2(正確答案)D.死循環(huán)答案解析:本題主要考查do...while語句的使用,該語句的執(zhí)行特點(diǎn)是無條件地執(zhí)行循環(huán)體一次,再判斷循環(huán)條件。程序第一次執(zhí)行時(shí),輸出表達(dá)式“x-=2”的值為1,此時(shí)x的值為1。在循環(huán)判斷時(shí),!(--x)的值為1(x的值自減為0),條件成立,執(zhí)行循環(huán)體,輸出“x-=2”的值為-2。再進(jìn)行循環(huán)判斷時(shí),!(--x)的值為0(其中x的值為-2),條件不成立,循環(huán)結(jié)束。故本題答案選C。62.do…while循環(huán)與while循環(huán)的主要區(qū)別是()。[單選題]*A.while循環(huán)體至少無條件執(zhí)行一次,而do…while循環(huán)體可能一次都不執(zhí)行。B.do…while循環(huán)體中可使用continue語句,while循環(huán)體中不允許出現(xiàn)continue語句。C.do…while循環(huán)體中可使用break語句,while循環(huán)體中不允許出現(xiàn)break語句。D.do…while循環(huán)體至少無條件執(zhí)行一次,而while循環(huán)體可能一次都不執(zhí)行。(正確答案)答案解析:本題主要考查while與do...while循環(huán)語句的區(qū)別。while語句的特點(diǎn)是先對循環(huán)條件進(jìn)行判斷再執(zhí)行循環(huán)體,在第一次判斷,循環(huán)條件就不成立時(shí),則循環(huán)體一次都不執(zhí)行;而do...while語句是先執(zhí)行循環(huán)體再進(jìn)行條件判斷,因此它至少會(huì)執(zhí)行一次循環(huán)體。故本題答案選D。63.在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()。[單選題]*A.整型常量B.整型表達(dá)式C.整型常量或整型表達(dá)式(正確答案)D.任何類型的表達(dá)式答案解析:C語言規(guī)定,其數(shù)組元素下標(biāo)的數(shù)據(jù)類型只允許是整型常量或整型表達(dá)式。64.以下對一維數(shù)組a進(jìn)行正確初始化的語句是()。[單選題]*A.inta[10]=(0,0,0,0,0);B.inta[10]={};C.inta[]={0};(正確答案)D.inta[10]={10*1};答案解析:選項(xiàng)A錯(cuò)在初始化數(shù)據(jù)用了圓括號,選項(xiàng)B錯(cuò)在無初始化數(shù)據(jù),選項(xiàng)D錯(cuò)在初始化數(shù)據(jù)是表達(dá)式,初始化數(shù)據(jù)應(yīng)該是常量。65.若已定義intarr[10];,則不能正確引用arr數(shù)組元素的是()。[單選題]*A.arr[0]B.arr[1]C.arr[10-1]D.arr[7+3](正確答案)答案解析:已定義數(shù)組arr,其數(shù)組元素的最大下標(biāo)值為9,選項(xiàng)D的超過了此值。66.若已定義intx[4]={2,1,3};,則元素x[1]的值為()。[單選題]*A.0B.2C.1(正確答案)D.3答案解析:數(shù)組x已定義并初始化后,其數(shù)組元素x[0]至x[3]的值應(yīng)依次為2、1、3、0。67.以下程序段運(yùn)行后,x[1]的值為()。[單選題]*A.6B.0(正確答案)C.1D.5答案解析:數(shù)組元素x[1]=x[3]+x[2+2]-x[3-1],即x[1]=x[3]+x[4]-x[2]=2+1-3=0。68.下面程序段的運(yùn)行結(jié)果是()。[單選題]*A.71098114B.71098112C.51098112(正確答案)D.51098114答案解析:數(shù)組m經(jīng)定義并初始化后,其數(shù)組元素x[0]至x[5]的值依次為5、8、7、6、9、2。執(zhí)行do循環(huán)后,其x[0]、x[5]的值未變,x[1]至x[4]的值先后各增加2,依次變?yōu)?10、9、8、11,因此選C。69.下面程序段的運(yùn)行結(jié)果是()。[單選題]*A.518716912(正確答案)B.151817161912C.158176192D.587692答案解析:循環(huán)變量i的取值依次為0、1、2、3、4、5,這些值被2取余,不等于0的是1、3、5,而這3個(gè)值作為下標(biāo),確定的數(shù)組元素,它們的值均增加10,其余數(shù)組元素的值未被改變。70.下面關(guān)于數(shù)組的敘述中,正確的是()。[單選題]*A.定義數(shù)組后,數(shù)組的大小是固定的,且數(shù)組元素的數(shù)據(jù)類型都相同(正確答案)B.定義數(shù)組時(shí),可不加類型說明符C.定義數(shù)組后,可通過賦值運(yùn)算符“=”對該數(shù)組名直接賦值D.在數(shù)據(jù)類型中,數(shù)組屬基本類型答案解析:定義數(shù)組時(shí),即(由類型說明符)確定了數(shù)組類型(即數(shù)組元素的數(shù)據(jù)類型)、數(shù)組名、數(shù)組的大小,數(shù)組元素的數(shù)據(jù)類型都相同,數(shù)組的大小是固定的。數(shù)組屬構(gòu)造類型,不能通過賦值運(yùn)算符“=”對數(shù)組名直接賦值,使數(shù)組元素獲得數(shù)據(jù)。71.以下程序段執(zhí)行后輸出的結(jié)果是()。[單選題]*A.2B.3C.6D.7(正確答案)答案解析:解析:由該數(shù)組定義及初始化知數(shù)組a有3行4列,a[1][2]為第2行第3個(gè)數(shù)組元素,其值為7,因此選D。72.下列關(guān)于函數(shù)定義的描述中,錯(cuò)誤的是()。[單選題]*A.定義函數(shù)時(shí),函數(shù)的存儲(chǔ)類型可以省略B.定義函數(shù)時(shí),函數(shù)名和函數(shù)類型必須指明C.定義函數(shù)時(shí),必須有函數(shù)體D.定義函數(shù)時(shí),必須指明函數(shù)參數(shù)(正確答案)答案解析:定義無參函數(shù)時(shí)不需要指明函數(shù)參數(shù)。定義函數(shù)時(shí)必須有函數(shù)體,即使函數(shù)體是空的,標(biāo)示函數(shù)體的花括號也必須有。73.下列關(guān)于函數(shù)(原型)聲明的描述中,錯(cuò)誤的是()。[單選題]*A.函數(shù)聲明可放在函數(shù)體內(nèi),也可放在函數(shù)體外B.函數(shù)聲明既要給出函數(shù)名和類型,又要指出函數(shù)參數(shù)C.函數(shù)調(diào)用前必須給出被調(diào)函數(shù)的函數(shù)聲明,否則出錯(cuò)(正確答案)D.被調(diào)函數(shù)的定義在主調(diào)函數(shù)前面時(shí),可以不用函數(shù)聲明答案解析:如果被調(diào)函數(shù)在主調(diào)函數(shù)之前已經(jīng)定義,則函數(shù)調(diào)用前不必給出被調(diào)函數(shù)的函數(shù)聲明。74.以下正確的定義函數(shù)首部的形式是()。[單選題]*A.floatfunc(intn;floatx)B.floatfunc(intn,floatx);C.floatfunc(intn;floatx);D.floatfunc(intn,floatx)(正確答案)答案解析:函數(shù)首部的形參之間應(yīng)用逗號隔離,形參表結(jié)束處不用標(biāo)點(diǎn)符號。75.下列關(guān)于函數(shù)參數(shù)的描述中,錯(cuò)誤的是()。[單選題]*A.定義函數(shù)時(shí)可以有參數(shù),也可以沒有參數(shù)B.在傳值調(diào)用時(shí),實(shí)參只能是變量名,不可以是表達(dá)式(正確答案)C.函數(shù)的形參在該函數(shù)被調(diào)用前是沒有確定值的D.要求函數(shù)的形參和對應(yīng)的實(shí)參個(gè)數(shù)應(yīng)相等、類型應(yīng)賦值兼容答案解析:在傳值調(diào)用時(shí),實(shí)參不僅可以是變量名,還可以是常量、函數(shù)調(diào)用等表達(dá)式形式。76.下列說法中,不正確的是()。[單選題]*A.實(shí)參可以為任意類型B.形參與對應(yīng)實(shí)參的類型要賦值兼容C.形參可以是常量、變量或表達(dá)式(正確答案)D.實(shí)參可以是常量、變量或表達(dá)式答案解析:形參不可以是常量或表達(dá)式。77.下面函數(shù)調(diào)用語句中,實(shí)參的個(gè)數(shù)是()。[單選題]*A.6B.5C.4D.3(正確答案)答案解析:該函數(shù)調(diào)用語句中,有3個(gè)實(shí)參。其中第一個(gè)實(shí)參是單一的變量,第二個(gè)實(shí)參為n2與n3相加的表達(dá)式,第三個(gè)實(shí)參是函數(shù)表達(dá)式。78.設(shè)有下面函數(shù)調(diào)用語句,則其所調(diào)函數(shù)fun中形參的個(gè)數(shù)是()。[單選題]*A.5B.4C.3(正確答案)D.2答案解析:該函數(shù)語句所調(diào)用的函數(shù)fun中,形參的個(gè)數(shù)應(yīng)該有3個(gè)。因?yàn)樵摵瘮?shù)語句中有3個(gè)實(shí)參,按規(guī)定其所調(diào)用的函數(shù)中應(yīng)該有相同個(gè)數(shù)的形參與之對應(yīng)。79.下面說法中正確的是()。[單選題]*A.實(shí)參占用存儲(chǔ)單元,形參不占用存儲(chǔ)單元B.相對應(yīng)的實(shí)參與形參共用同一存儲(chǔ)單元C.相對應(yīng)的實(shí)參與形參同名時(shí),它們共用同一存儲(chǔ)單元D.相對應(yīng)的實(shí)參與形參占用不同的存儲(chǔ)單元(正確答案)答案解析:函數(shù)的實(shí)參與形參,在個(gè)數(shù)、類型、順序上要對應(yīng)一致,函數(shù)調(diào)用過程中實(shí)參與形參,不僅占用不同的存儲(chǔ)單元,而且占用的時(shí)間也不同。80.實(shí)參為簡單變量,其與對應(yīng)形參之間的數(shù)據(jù)傳遞方式為()。[單選題]*A.由用戶另外指定傳遞方式B.雙向值傳遞C.單向值傳遞(正確答案)D.地址傳遞答案解析:簡單變量作實(shí)參時(shí),函數(shù)調(diào)用過程中是將實(shí)參的值傳遞到對應(yīng)形參(設(shè)置的臨時(shí)變量存儲(chǔ)單元)中,被調(diào)函數(shù)形參值的改變對主調(diào)函數(shù)的實(shí)參沒有影響,調(diào)用結(jié)束后,形參存儲(chǔ)單元被釋放,實(shí)參仍保持原值不變,這種調(diào)用只能由實(shí)參向形參傳遞數(shù)據(jù),稱之為“單向值傳遞”。81.設(shè)已經(jīng)有定義:floatx;,則下列對指針變量p進(jìn)行定義且賦初值的語句中正確的是()。[單選題]*A.float*p=1024;B.int*p=(float)x;C.floatp=&x;D.float*p=&x;(正確答案)答案解析:一個(gè)指針變量被定義之后,其所能指向變量的類型就確定了。題中變量x為float型,所以用于存儲(chǔ)變量x地址的指針也應(yīng)為float型,故B項(xiàng)不正確。定義指針變量的一般形式為:類型說明符*標(biāo)識符,故C項(xiàng)不正確。只能將相同數(shù)據(jù)類型的變量地址賦給指針變量,A項(xiàng)賦的值為整數(shù),故不正確。只有D項(xiàng)正確,答案選D。82.若有以下定義則對x組元素的正確引用是()。[單選題]*A.*&xB.*(x+3)(正確答案)C.*(pt+10)D.pt+3答案解析:pt、x、&x[0]的值均為數(shù)組x首地址,也是數(shù)組x第1個(gè)元素a[0]的地址,或者說它們?nèi)呔赶蚴自豿[0]。而pt+i、x+i、&x[i](i小于數(shù)組a的元素個(gè)數(shù))指向第i+1個(gè)元素x[i],*(pt+i)、*(x+i)、*(&x[i])均表示第i+1個(gè)元素。數(shù)組x定義下標(biāo)為10表示包含10個(gè)元素,引用時(shí)數(shù)組下標(biāo)為0~9,故A項(xiàng)、C項(xiàng)下標(biāo)超界,不正確。D項(xiàng)表示第4個(gè)元素地址,僅有B項(xiàng)正確,故答案選B。83.有下列程序:該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,下列語句正確的是()。[單選題]*A.intn,*p=NULL;(正確答案)B.*p=&n;C.scanf("%d",&p);D.printf("%d",p);答案解析:選項(xiàng)A,定義整型變量n,整型指針變量p并賦空值是正確的。B項(xiàng)*p表示所指向的整型變量,不能接收取地址賦值,根據(jù)題義應(yīng)改為p=&n,故B不正確。C項(xiàng),通過scanf函數(shù)給整型變量n賦值,要取n的地址可以是&n或者p(前提要求p已經(jīng)指向n),而采用&p表示取指針變量p的地址是不正確的。D項(xiàng),表示要輸入整型的值,參數(shù)可以是整型變量n,或者是通過p進(jìn)行指針運(yùn)算(*p)得到所指向的變量n,而直接寫p是不正確的。所以,本題答案選A。84.有下列程序:程序運(yùn)行后的輸出結(jié)果是()。[單選題]*A.z(正確答案)B.0C.元素ch[5]的地址D.字符y的地址答案解析:根據(jù)題意,ch表示字符數(shù)組的首地址,故pc指向數(shù)組首元素,pc+5表示指向數(shù)組第6個(gè)元素,也即存儲(chǔ)ch[5]的地址,*(p+5)表示ch[5]元素本身,故輸出的值為字符′z′,所以本題答案選A。85.C語言中的指針?biāo)阈g(shù)運(yùn)算中,假設(shè)p是指向整數(shù)的指針,p+1的值是什么?()[單選題]*A.p的內(nèi)存地址加1B.p的內(nèi)存地址加4C.p的內(nèi)存地址加sizeof(int)(正確答案)D.p的內(nèi)存地址減186.下面哪一個(gè)不是C語言的編譯預(yù)處理命令()。[單選題]*A.#ifB.#undefine(正確答案)C.#defineD.#endif答案解析:#if是條件編譯,“#define”是宏定義標(biāo)識符,“#endif”是條件編譯結(jié)束標(biāo)識符,“#define”、“#if”、“#endif”三者均是編譯預(yù)處理命令。C語言中不存在“#undefine”標(biāo)識符,它不是C語言的編譯預(yù)處理命令。故本題答案為B。87.下列使用文件包含的預(yù)處理命令中,哪一個(gè)是錯(cuò)誤的()。[單選題]*A.#include<stdio.h>B.#include"stdio.h"C.#include"file1.c”D.#include'stdio.h'(正確答案)答案解析:文件包含預(yù)處理命令有兩種格式:#include"文件名"或#include<文件名>;,故本題答案為D。88.下面哪一個(gè)不是C語言提供的3種條件編譯命令()。[單選題]*A.#define…#undef(正確答案)B.#ifdef…#else…#endifC.#if…#else…#endifD.#ifndef…#else…#endif答案解析:B項(xiàng)為當(dāng)標(biāo)識符已經(jīng)定義時(shí)才進(jìn)行編譯,C項(xiàng)為條件滿足時(shí)才編譯,D項(xiàng)為當(dāng)標(biāo)識符沒有定義時(shí)進(jìn)行編譯。A為定義、取消宏定義標(biāo)識。故本題答案選A。89.若程序中有宏定義行:#defineN100,則下列敘述中正確的是()。[單選題]*A.宏定義行中定義了標(biāo)識符N的值為整數(shù)100B.在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識符N(正確答案)C.對C源程序進(jìn)行編譯時(shí)用100替換標(biāo)識符ND.在運(yùn)行時(shí)用100替換標(biāo)識符N答案解析:宏定義又稱為宏代換、宏替換,簡稱“宏”。預(yù)處理(預(yù)編譯)工作也叫做宏展開:將宏名替換為字符串。故本題答案為B。90.關(guān)于結(jié)構(gòu)體在C語言中的描述,哪個(gè)是錯(cuò)誤的?()[單選題]*A.結(jié)構(gòu)體可以包含不同類型的數(shù)據(jù)。B.結(jié)構(gòu)體可以包含自己類型的指針。C.結(jié)構(gòu)體不能包含自己類型的其他結(jié)構(gòu)體。(正確答案)D.結(jié)構(gòu)體可以嵌套其他結(jié)構(gòu)體。91.若有定義:則變量stu1所占用的內(nèi)存字節(jié)數(shù)是()。[單選題]*A.15(正確答案)B.16C.8D.19答案解析:結(jié)構(gòu)體類型變量所占的內(nèi)存字節(jié)數(shù)是其結(jié)構(gòu)體內(nèi)部成員的所占字節(jié)數(shù)的總和。因?yàn)樽兞縩um是int類型,其占用2個(gè)字節(jié);name是char類型的數(shù)組,占用8個(gè)字節(jié);sex是char類型變量占用1個(gè)字節(jié),score是float類型,占用4個(gè)字節(jié)。因此,stu1所占的字節(jié)數(shù)是2+8+1+4=15。本題答案為A。92.若有定義:下列敘述不正確的是(

)。[單選題]*A.student是結(jié)構(gòu)體類型名B.structstudent是結(jié)構(gòu)體類型名(正確答案)C.stu1是用戶定義的結(jié)構(gòu)體類型變量名D.num,sex,age都是結(jié)構(gòu)體變量stu1的成員答案解析:當(dāng)一個(gè)結(jié)構(gòu)體類型定義完成后,即可在其后面定義結(jié)構(gòu)體變量,因此stu1是結(jié)構(gòu)體類型的變量,C正確;結(jié)構(gòu)體內(nèi)部所定義的成員即是結(jié)構(gòu)體變量的成員,D正確;structstudent是結(jié)構(gòu)體類型的定義方式,其結(jié)構(gòu)體類型名應(yīng)是student,A正確,所以B錯(cuò)誤。故本題答案為B。93.設(shè)有如下語句:則下面表達(dá)式的值為102的是()。[單選題]*A.(p++)->;numB.(*++p).num(正確答案)C.(*p++).numD.*(++p)->;num答案解析:訪問結(jié)構(gòu)體成員的方法有兩種,如果是結(jié)構(gòu)體變量,用“.”號訪問,其格式是“結(jié)構(gòu)體變量名.結(jié)構(gòu)體成員名”;如果是結(jié)構(gòu)體指針變量,則用“->;”號訪問,其格式是“結(jié)構(gòu)體指針變量名->;結(jié)構(gòu)體成員變量”。在本題中,p是指向結(jié)構(gòu)體數(shù)組s首地址的指針變量。選項(xiàng)A是先取得p->;num的值作為整個(gè)表達(dá)式的值,然后p自增向后移一個(gè)元素,因此其值是101;選項(xiàng)B是先對指針p自增指向下一個(gè)元素,即“++p”相當(dāng)于“s[1]”的地址,“*++p”相當(dāng)于“s[1]”,因此“(*++p).num”相當(dāng)于“s[1].num”,其值為102;答案C是與A一樣,只是訪問方式換了。

溫馨提示

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

評論

0/150

提交評論