國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷22(共240題)_第1頁
國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷22(共240題)_第2頁
國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷22(共240題)_第3頁
國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷22(共240題)_第4頁
國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷22(共240題)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷22(共9套)(共240題)國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下面敘述中正確的是A、線性表是線性結(jié)構(gòu)B、棧與隊(duì)列是非線性紿構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表是最簡(jiǎn)單的、最常用的一種線性結(jié)構(gòu)。所謂線性鏈表指的是采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)盼線性表。棧和隊(duì)列其實(shí)是一種特殊的線性表。樹是一種簡(jiǎn)單的非線性結(jié)構(gòu),二叉樹是樹的一種。2、一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為A、16B、10C、6D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故此度為1的結(jié)點(diǎn)個(gè)數(shù)=總結(jié)點(diǎn)數(shù)-葉子節(jié)點(diǎn)數(shù)-度為2的節(jié)點(diǎn)數(shù)=25-5-4=16。3、對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的長(zhǎng)度為n,最壞情況下冒泡排序需要比較的次數(shù)為n(n-1)/2。4、若有定義語句:inta=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。A、a=(b=4)=3;B、a=b=c+1;C、a=(b=4)+c;D、a=1+(b=c=4);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這道題目主要考察賦值表達(dá)式,對(duì)于賦值表達(dá)式來說,賦值號(hào)“=”的左邊一定為變量名,右邊為一個(gè)C語言合法的表達(dá)式。5、下面對(duì)軟件測(cè)試描述錯(cuò)誤的是()。A、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性B、隨機(jī)地選取測(cè)試數(shù)據(jù)C、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤D、軟件測(cè)試是保證軟件質(zhì)量的重要手段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試的準(zhǔn)則如下:①所有測(cè)試都應(yīng)追溯到需求。②嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。③充分注意測(cè)試中的群集現(xiàn)象。④程序員應(yīng)避免檢查自己的程序。⑤窮舉測(cè)試不可能。⑥妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。6、將E-R圖轉(zhuǎn)換為關(guān)系模型時(shí),實(shí)體和聯(lián)系都可以表示為()。A、屬性B、鍵C、關(guān)系D、域標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從E—R圖到關(guān)系模型的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E—R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。7、若用數(shù)組名作為函數(shù)調(diào)用時(shí)的實(shí)參,則實(shí)際上傳遞給形參的是()。A、數(shù)組的第一個(gè)元素值B、數(shù)組元素的個(gè)數(shù)C、數(shù)組中全部元素的值D、數(shù)組首地址標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:形參是在函數(shù)的定義中,放在括號(hào)里聲明的變量;實(shí)參是調(diào)用函數(shù)時(shí),傳入的參數(shù)。數(shù)組在進(jìn)行形參實(shí)參結(jié)合的,就是傳遞數(shù)組的首地址,并不是把整個(gè)數(shù)組復(fù)制一份放入函數(shù)里運(yùn)行。故D選項(xiàng)正確。8、以下敘述中正確的是A、在賦值表達(dá)式中,賦值號(hào)的右邊可以是變量,也可以是任意表達(dá)式B、a是實(shí)型變量,a=10在C語言中是允許的,因此可以說:實(shí)型變量中可以存放整型數(shù)C、若有inta=4,b=9;執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D、若有inta=4,b=9;執(zhí)行了a-b;b=a;之后,a的值為9,b的值為4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B中a=10,在賦值時(shí)會(huì)把10自動(dòng)轉(zhuǎn)換為double類型然后賦值,實(shí)型變量中不可能存放整型。而選項(xiàng)C中執(zhí)行a=b后,b的值不變還是9,選項(xiàng)D中執(zhí)行“a=b;b=a;”后,a的值為9,b的值也為9。9、有以下程序#include<stdio.h>main(){intb=10,a=-11;a%=b%=4;printf(’’%d%d\n’’,a,b);)則程序的輸出結(jié)果是A、12B、-1-2C、-12D、1.2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于表達(dá)式a%=b%=4為復(fù)合的賦值運(yùn)算,結(jié)合性自右至左,相當(dāng)于先計(jì)算b=b%4,a=a%b;絀果的符號(hào)和第一個(gè)操作數(shù)的符號(hào)相同,因此b為2,a的結(jié)果為-1.10、下列對(duì)軟件測(cè)試和軟件調(diào)試敘述中錯(cuò)誤的是()。A、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性B、軟件調(diào)試的目的是改正軟件錯(cuò)誤C、軟件測(cè)試不需要考慮測(cè)試成本D、正確的執(zhí)行測(cè)試用例標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件測(cè)試定義:使用人工或自動(dòng)手段來運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試的目的:發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,是評(píng)測(cè)軟件質(zhì)量的重要過程和手段。軟件調(diào)試的目的是診斷并改正程序中的錯(cuò)誤。測(cè)試必須對(duì)整個(gè)軟件總體進(jìn)行評(píng)估。軟件測(cè)試需要考慮測(cè)試成本,軟件測(cè)試成本也要計(jì)入軟件開發(fā)成本中。故C選項(xiàng)不正確。11、有以下程序:#includemain(){inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;for(i=0;i<3;i++)for(k=i+1;k<4;k++)if(a[i][i]A、1,1,2,6,B、6,2,1,1,C、6,4,3,2,D、2,3,4,6,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先對(duì)二維數(shù)組進(jìn)行賦值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值為1、4、…、6、1。通過for嵌套循環(huán)語句和if條件語句,對(duì)二維數(shù)組對(duì)角線元素進(jìn)行由大到小的排序操作,程序最后通過for語句輸出二維數(shù)組第1行的4個(gè)元素,因此C選項(xiàng)正確。12、以下敘述中錯(cuò)誤的是A、算法正確的程序最終一定會(huì)結(jié)束B、算法正確的程序可以有零個(gè)輸入C、算法正確的程序可以有零個(gè)輸出D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟。一個(gè)算法應(yīng)該具有5個(gè)特征:①有窮性。一個(gè)算法包含的操作步驟應(yīng)該是有限的。也就是說,在執(zhí)行若干個(gè)操作步驟之后,算法將結(jié)束,而且每一步都在合理的時(shí)間內(nèi)完成。②確定性。算法中的每一條指令必須有確切的含義,不能有二義性,對(duì)于相同的輸入必能得出相同的執(zhí)行結(jié)果。③可行性。算法中指定的操作,都可以通過已經(jīng)驗(yàn)證過可以實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)。④有零個(gè)或多個(gè)輸入。在計(jì)算機(jī)上實(shí)現(xiàn)的算法是用來處理數(shù)據(jù)對(duì)象的,在大多數(shù)情況下這些對(duì)象需要通過輸入來得到。13、以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑為r的圓面積s。程序在編譯時(shí)出錯(cuò)main()/*Beginning*/{intr;floats;scanf("%d",r);s=*π*r*r;printf("s=%f\n",s);}出錯(cuò)的原因是A、注釋語句書寫位置錯(cuò)誤B、存放圓半徑的變量r不應(yīng)該定義為整型C、輸出語句中格式描述非法D、計(jì)算圓面積的賦值語句使用了非法變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了C語言的基本輸入輸出函數(shù)。選項(xiàng)A錯(cuò)誤,代碼里面的注釋是正確的,“/*”和“*/”配對(duì);選項(xiàng)B錯(cuò)誤,r變量定義為整型是可以的;選項(xiàng)C輸出語句格式正確;選項(xiàng)D正確,計(jì)算s的時(shí)候s=*π*r*r使用了未定義變量π。14、計(jì)算機(jī)能直接執(zhí)行的程序是A、目標(biāo)程序B、可執(zhí)行程序C、匯編程序D、源程序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:把由高級(jí)語言編寫的程序稱為“源程序”,由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”(后綴名為.obj),由匯編語言編寫的程序稱為“匯編程序”。為了把源程序轉(zhuǎn)換成機(jī)器能接受的目標(biāo)程序,軟件工作者編制了一系列軟件,通過這些軟件可以把用戶按規(guī)定語法寫出的語句——翻譯成二進(jìn)制的機(jī)器指令。這種具有翻譯功能的軟件稱為“編譯程序”,每種高級(jí)語言都有與它對(duì)應(yīng)的編譯程序。C源程序經(jīng)過C編譯程序編譯之后生成一個(gè)后綴為.obj的二制進(jìn)文件(稱為目標(biāo)文件),這個(gè)目標(biāo)程序要和C語言的庫(kù)函數(shù)相鏈接生成一個(gè)后綴為.exe的文件,這個(gè)文件可以在操作系統(tǒng)中直接執(zhí)行,稱為可執(zhí)行程序。15、有以下程序段intk=0,a=1,b=2,c=3;k:a<b?b:a;k=k>c?c:k;執(zhí)行程序段后,k的值是A、3B、2C、1D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查條件表達(dá)式。k=a<b?b:a中a<b為真,因此k的值為b,即k=2。k=k>c?c:k中k>c為假,k的值為2,16、己知天寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是A、c=(’A’+c)%26-’a’B、c=C+32C、c=C-’A’+’a’D、c=(C一’A’)%26+’a’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項(xiàng)C)能將大寫字符c的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCII代碼;選項(xiàng)D)和C)左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與’a’的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項(xiàng)A)中應(yīng)該是加上’a’,而不是減去’a’。17、將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),E-R圖中的實(shí)體和聯(lián)系都可以表示為A、屬性B、鍵C、關(guān)系D、域標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為關(guān)系。18、若已建立以下鏈表結(jié)構(gòu),指針p、s分別指向如圖所示結(jié)點(diǎn)則不能將s所指節(jié)點(diǎn)插入到鏈表末尾的語句組是A、s->next=’\0’:p=p->next;p->next=s;B、p=p->next;s->next=p;P->next=s;C、p=p一>next;s->next=P->next;p->next=s;D、p=(*p).next;(*s).next=(*p).next;(*p).next=s;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A中首先p后移,s的后繼指針指向p,p的后繼指向s,在s和最后結(jié)點(diǎn)之間形成了圓圈,無法完成題中的操作。19、有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3),c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);prinff(”\11”);}A、4332B、2344C、1234D、1123標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查for語句的循環(huán)控制,首先定義了兩個(gè)數(shù)組并賦予了初始值,第一個(gè)for循環(huán)語句循環(huán)12次遍歷s數(shù)組的各個(gè)元素,將s[]中的原素值作為c[]數(shù)組中的下標(biāo),使相應(yīng)的值自加。例如當(dāng)i=0,c[s[0]]++為c[1]++,其值變?yōu)?,當(dāng)執(zhí)行i=1,2,...11后,c[1]、c[2]、c[3]、c[4]分別為4、3、3、2,故選項(xiàng)A)為正確的運(yùn)行結(jié)果。20、下列敘述中正確的是A、C程序中所有函數(shù)之間都可以相互調(diào)用B、在C程序中main函數(shù)的位置是固定的C、在C程序的函數(shù)中不能定義另一個(gè)函數(shù)D、每個(gè)C程序文件中都必須要有一個(gè)main函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C程序中主函數(shù)不能被其他函數(shù)調(diào)用,所以A選項(xiàng)錯(cuò)誤,main函數(shù)可以放在程序開始,也可以放在中間,也可以放在最后,位置不固定,但程序執(zhí)行時(shí)必須從main函數(shù)開始,所以B選項(xiàng)錯(cuò)誤,在C程序的函數(shù)中不能定義另一個(gè)函數(shù),可以聲明或調(diào)用另一個(gè)函數(shù),所以C選項(xiàng)正確?每個(gè)C程序中必須包含一個(gè)main函數(shù),但不一定是每個(gè)C程序文件中必須有,用戶單獨(dú)編寫的某個(gè)函數(shù)也可以存儲(chǔ)為一個(gè)C程序文件,所以D選項(xiàng)錯(cuò)誤。21、若有以下函數(shù)首部intfun(doublex[10],intn)則下面針對(duì)此函數(shù)的函數(shù)聲明語句中正確的是A、intfun(double,int);B、intfun(double*x,intn);C、intfun(double*,int*);D、intfun(doublex,int*n);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)說明的一般形式為:類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2,……)。因?yàn)楹瘮?shù)intfun(doublex[10],int*n)的第1個(gè)形式參數(shù)是一個(gè)雙精度型的一維數(shù)組,第2個(gè)參數(shù)是一個(gè)整型指針,并返回一個(gè)整型值。一維數(shù)組的名字表示的是一維數(shù)組的地址。22、已有定義:chara[]="xyz",b[]={’x’,’y’,’z’};,以下敘述中正確的是A、數(shù)組a和b長(zhǎng)度相同B、a數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度C、a數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度D、上述說法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查字符數(shù)組的定義。cllar“a[]="xyz",b[]={’x’,’y’,’z’};”定義了兩個(gè)字符數(shù)組a和b,a數(shù)組存放的是一個(gè)字符串,字符串以“/0”作為結(jié)束標(biāo)志,數(shù)組a的長(zhǎng)度必須加上結(jié)束符長(zhǎng)度1,因此數(shù)組a的長(zhǎng)度為4。數(shù)組b中有三個(gè)元素,長(zhǎng)度為3。23、有以下程序(注:字符a的ASCII碼值為97)main(){char*s={"abc"};do{printf("%d",*s%10);++s;}while(*s);}程序運(yùn)行后的輸出結(jié)果是A、abcB、7890C、979899D、789標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)樾懽址鸻,b,c的ASCII的值分別為97,98,99,而在dowhile循環(huán)語句中,每次對(duì)字符的ASCII的值取余數(shù)并輸出,第一次循環(huán)輸出7,第二次循環(huán)輸出8,第三次循環(huán)輸出9。24、以下敘述中正確的是A、結(jié)構(gòu)體數(shù)組名不能作為實(shí)參傳給函數(shù)B、結(jié)構(gòu)體變量的地址不能作為實(shí)參傳給函數(shù)C、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員D、即使是同類型的結(jié)構(gòu)體變量,也不能進(jìn)行整體賦值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體變量作為函數(shù)參數(shù),結(jié)構(gòu)體變量的地址可以作為參數(shù)傳給函數(shù),結(jié)構(gòu)體數(shù)組名就是一個(gè)地址,可以傳給函數(shù),如果是同類型的結(jié)構(gòu)體變量,可以整體賦值。25、若以下選項(xiàng)中的變量a,b,y均已正確定義并賦值,則語法正確的switch語句是A、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}B、switch(a+b){case1:case3:y=a+b;break;case0:case4:y=a-b;}C、switch(a+9){casea:y=a-b;caseb:y=a+b;}D、switcha*b{case10:y=a+b;default:y=a-b;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:switch語句,其一般形式為:switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;…case常量表達(dá)式n:語句n;default:語句n+1;}B選項(xiàng)中,case1和case2有錯(cuò)誤,;C選項(xiàng)中,casea和caseb不正確,case后面應(yīng)該跟常量表達(dá)式;D選項(xiàng)中,switcha*b,有誤。因此A選項(xiàng)正確。國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、算法的時(shí)間復(fù)雜度是指A、算法的執(zhí)行時(shí)間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。算法的工作量可以用算法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量。2、下列敘述中正確的是A、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化B、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化C、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化D、循環(huán)隊(duì)列中的元素個(gè)數(shù)不會(huì)變化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:所謂循環(huán)結(jié)構(gòu)就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置上,形成邏輯上的環(huán)狀空間,循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置,因此,隊(duì)列中的元素?cái)?shù)等于從隊(duì)頭指針front指向的后一個(gè)位置與隊(duì)尾指針rear指向位置之間的元素?cái)?shù)量。3、下列敘述中正確的是()。A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度太,則其空間復(fù)雜度必定小D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間,算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,兩者之間并沒有直接關(guān)系,答案為D。4、下面對(duì)軟件測(cè)試描述錯(cuò)誤的是()。A、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性B、隨機(jī)地選取測(cè)試數(shù)據(jù)C、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤D、軟件測(cè)試是保證軟件質(zhì)量的重要手段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試的準(zhǔn)則如下:①所有測(cè)試都應(yīng)追溯到需求。②嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。③充分注意測(cè)試中的群集現(xiàn)象。④程序員應(yīng)避免檢查自己的程序。⑤窮舉測(cè)試不可能。⑥妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。5、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是A、自頂向下B、逐步求精C、模塊化D、可復(fù)用標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)汁方法的主要原則可以概括為:自頂向下,逐步求精,模塊化,限制使用GOTO語句。自頂向下是指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對(duì)復(fù)雜問題應(yīng)設(shè)計(jì)一些子目標(biāo)過渡,逐步細(xì)化。模塊化是把程序要解決的總目標(biāo)先分解成分目標(biāo),再進(jìn)一步分解成具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊。可復(fù)用性是指軟件元素不加修改成稍加修改便可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要方法,不屬十結(jié)構(gòu)化程序設(shè)計(jì)方法。6、若有表達(dá)式(w)?(一x):(++y),則其中與w等價(jià)的表達(dá)式是A、w==1B、w==0C、w!=1D、w!=0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查條件表達(dá)式。(w)?(--x):(++y)的含義是如果w非0那么表達(dá)式的值為一x,否為++y,因此只有選項(xiàng)D和w等價(jià)。7、某圖書集團(tuán)數(shù)據(jù)庫(kù)中有關(guān)系模式R(書店編號(hào),書籍編號(hào),庫(kù)存數(shù)量,部門編號(hào),部門負(fù)責(zé)人),其中要求(1)每個(gè)書店的每種書籍只在該書店的一個(gè)部門銷售;(2)每個(gè)書店的每個(gè)部門只有一個(gè)負(fù)責(zé)人;(3)每個(gè)書店的每種書籍只有一個(gè)庫(kù)存數(shù)量。則關(guān)系模式R最高是()。A、1NFB、2NFC、3NFD、BCNF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題可知關(guān)系模式R有三個(gè)函數(shù)依賴:(書店編號(hào),書籍編號(hào))→部門編號(hào)(書店編號(hào),部門編號(hào))→負(fù)責(zé)人(書店編號(hào),書籍編號(hào))→庫(kù)存數(shù)量由此可知,(書店編號(hào),書籍編號(hào))可以唯一標(biāo)識(shí)關(guān)系模式R中的每個(gè)元組,因此屬于關(guān)系模式的主鍵。在此關(guān)系模式中,每個(gè)屬性都是不可再分的,R屬于1NF,且“書店編號(hào)”和“書籍編號(hào)”單獨(dú)之一都不能決定其他非主屬性,所以R屬于2NF;但(書店編號(hào),書籍編號(hào))可以決定“部門編號(hào)”,“部門編號(hào)”又可決定“部門負(fù)責(zé)人”,存在傳遞依賴,所以不屬于3NF,更不是BCNF。8、在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠A、對(duì)象的繼承B、對(duì)象的多態(tài)C、對(duì)象的封裝D、對(duì)象的分類標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)象的封裝性是指從外部看只能看到對(duì)象的外部特征,即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作,而不需要知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見的。從外面不能直接使用對(duì)象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。9、軟件是指A、程序B、程序和文檔C、算法加數(shù)據(jù)結(jié)構(gòu)D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)與相關(guān)文檔的完整集合。軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。10、有以下計(jì)算公式若程序前面已經(jīng)在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是A、y=sqrt(x);iffxB、if(x>=0)y=sqrt(x);elsey=sqrt(-x);C、if(x>=0)y=sqrt(x);if(x<0)y:sqrt(-x);D、y=sqrt(x>=0?x:-x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由題意可知計(jì)算公式的含義是:當(dāng)x大于等于0時(shí),y值等于x的算術(shù)平方根;當(dāng)x小于0時(shí),y值等于x的相反數(shù)的算術(shù)平方根。所以選項(xiàng)B)用一個(gè)完整的ifelse語句表達(dá)了計(jì)算公式的含義;選項(xiàng)C)用兩個(gè)if語句表達(dá)了計(jì)算公式的含義;選項(xiàng)D)在求平方根函數(shù)的后面用x≥0?x:-x條件表達(dá)式來表達(dá)了計(jì)算公式的含義。選項(xiàng)A)沒有用C語言語句正確的表達(dá)計(jì)算公式的含義。11、設(shè)有兩行定義語句:intscanf;floatcase;則以下敘述正確的是()。A、第2行語句不合法B、兩行定義語句都合法C、第1行語句不合法D、兩行定義語句都不合法標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查用戶標(biāo)識(shí)符,用戶自己定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標(biāo)識(shí)符相同。本題中scanf為預(yù)定義標(biāo)識(shí)符,可以作為用戶標(biāo)識(shí)符;case為關(guān)鍵字,不能作為用戶標(biāo)識(shí)符,故而答案選A。12、有以下程序:#includemain(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,”W”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);felose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。A、321B、12300C、1D、123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序首先將數(shù)組a[10]中的元素1、2、3分別寫入了文件d1.dat文件中,然后又將d1.dat文件中的數(shù)據(jù)123整體寫到變量n的空間中,所以打印n時(shí)輸出的數(shù)據(jù)為123。13、以下正確的字符串常量是A、abc’B、OlympicGamesC、""D、"\\\"標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串常量是由雙引號(hào)括起來的一串字符。在C語言中。以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表一個(gè)特定的ASCII字符。利用兩個(gè)’\\’表示一個(gè)反斜杠,因此選項(xiàng)D)的表示無法確認(rèn)表示幾個(gè)反斜杠。14、關(guān)于C語言的符號(hào)常量,以下敘述中正確的是A、符號(hào)常量的符號(hào)名是標(biāo)識(shí)符,但必須大寫B(tài)、符號(hào)常量在整個(gè)程序中其值都不能再被重新定義C、符號(hào)常量是指在程序中通過宏定義用一個(gè)符號(hào)名來代表一個(gè)常量D、符號(hào)常量的符號(hào)名必須是常量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語言程序中,用一個(gè)符號(hào)名來代表一個(gè)常量,稱為符號(hào)常量。注意:這個(gè)符號(hào)名必須在程序中進(jìn)行特別的“指定”,并符合標(biāo)識(shí)符的命名規(guī)則。一般在程序中都是利用宏定義來定義符號(hào)常量的,在代碼中可以利用undef來結(jié)束符號(hào)常量的定義,然后進(jìn)行重新定義,符號(hào)常量的大小寫并沒有特別的規(guī)定,一般時(shí)候?yàn)榱撕妥兞繀^(qū)分利用大寫。15、與十進(jìn)制數(shù)200等值的十六進(jìn)制數(shù)為A、A8B、A4C、C8D、C4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考察了進(jìn)制轉(zhuǎn)換,十進(jìn)制的數(shù)轉(zhuǎn)換為十六進(jìn)制規(guī)則:整數(shù)部分除以16取余數(shù),將余數(shù)倒過來排列。16、s1和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語句S;則以下選項(xiàng)中正確的是A、if(s1>s2)S;B、if(strcmp(s1,s2))S;C、if(strcmp(s2,s1)>0)S;D、if(strcp(s1,s2)>0)S;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符串標(biāo)記使用strcmp函數(shù),該函數(shù)有兩個(gè)參數(shù)分別是需要比較大小的兩個(gè)字符串s1和s2,如果s1大于s2則返回值大于0,如果s1小于s2則返回值小于0,否則s1和s2相同返回0。題目要求s1大于s2時(shí)執(zhí)行語句s,因此strcmp(s1,s2)的返回值大于0時(shí)執(zhí)行s。17、有以下程序段intk=0,a=1,b=2,c=3;k=ac?c:k;執(zhí)行程序段后,k的值是A、3B、2C、1D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查條件表達(dá)式。k=ac?c:k中k>c為假,k的值為2。18、若有以下程序#include<stdio.h>main(){inti,j=0;chara[]="Howareyou!",b[10];for(i=0;a[i];i++)if(a[i]==’’)b[j++]=a[i+1];b[j]=’\0’;printf("%s\n",b);}則程序的輸出結(jié)果是A、HowareyouB、Hay!C、Howareyou!D、ay標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:主函數(shù)中利用for循環(huán)訪問字符串a(chǎn)的每一個(gè)字符,判斷當(dāng)前字符是否為空格,如果是空格則保存該空格后面的一個(gè)字符存放到字符數(shù)組b中。在字符串"Howareyou!"中,第一個(gè)空格后面字符為’a’,第二個(gè)空格后廄字符為’y’。19、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)定義了3個(gè)整數(shù)指針變量p,q,r,并且使p指向m,q指向n,再執(zhí)行“r=p;p=q;q=r;”這三條語句,使q指向m,p指向n,再輸出變量“m,n,*p,*q”時(shí),它們值分別為1,2,2,1。20、有以下程序,程序的輸出結(jié)果是voidfun(double*p1,double*p2,double*s){s=(double*)calloc(1,sizeof(double));*s=*p1+*(p2+1);}main(){doublea[2]={1.1,2.2),b[2]={10.0,20.0),*s=a;fun(a,b,s);printf("%5.2f\n",*s);}A、1.10B、11.10C、12.10D、21.1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ANSIC標(biāo)準(zhǔn)規(guī)定calloc函數(shù)返回值的類型為void*。具體使用格式為:calloc(n,size)。該函數(shù)用來給n個(gè)同一類型的數(shù)據(jù)項(xiàng)分配連續(xù)的存儲(chǔ)空間.每個(gè)數(shù)據(jù)項(xiàng)的長(zhǎng)度為size個(gè)字節(jié)。若分配成功,函數(shù)返回存儲(chǔ)空問的首地址:否則返回空。通過調(diào)用calloc函數(shù)所分配的存儲(chǔ)單元,系統(tǒng)自動(dòng)置初值0。主函數(shù)中定義數(shù)組a,b,以及指針s指向數(shù)組a,調(diào)用fun函數(shù),實(shí)參a和b,以及s的值傳遞給相對(duì)應(yīng)形參p1,p2,以及s,在fun函數(shù)中更改s的指向,以及指向的數(shù)據(jù),但是函數(shù)調(diào)用結(jié)束以后,形參空間撤銷,這項(xiàng)改變對(duì)于實(shí)參沒有影響,因此實(shí)參s指向值不變,仍然為1.1。21、有以下程序#includemain(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={"Zhao",’m’,85.0,90.0},b={"Qian",’f’,95.0,92.0};b=a;printf("%s,%c,%2.0f,%2.0f\n",,b.sex,b.score[0],b.score[1]);}程序的運(yùn)行結(jié)果是()。A、Zhao,m,85,90B、Qian,m,85,90C、Zhao,f,95,92D、Qian,f,95,92標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:同類型的結(jié)構(gòu)體之間可以直接賦值,所以語句"b=a;"的作用是把結(jié)構(gòu)體a中的數(shù)據(jù)賦值給結(jié)構(gòu)體b,所以答案選A。22、為了建立如圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域),則在【】處應(yīng)填入的選項(xiàng)是Structlink{chardata;【】}node;A、structlink*next;B、linknext;C、link*next;D、structlinknext;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:?jiǎn)捂湵頌閯?dòng)態(tài)分配的存儲(chǔ)空間,在分配時(shí),每個(gè)結(jié)點(diǎn)之間可以是不連續(xù)的(結(jié)點(diǎn)內(nèi)是連續(xù)的)。結(jié)點(diǎn)之間的聯(lián)系用指針實(shí)現(xiàn),即在結(jié)點(diǎn)結(jié)構(gòu)中定義一個(gè)成員項(xiàng)用來存放下一結(jié)點(diǎn)的首地址,這個(gè)用于存放地址的成員,常把它稱為指針域,該指針為了保持鏈表中結(jié)點(diǎn)的地址,因此其基類型和結(jié)點(diǎn)的類型相同,選項(xiàng)為A。23、下列敘述中正確的是A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間,算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量,兩者之間并沒有直接關(guān)系,答案為D。24、以下數(shù)組定義中錯(cuò)誤的是()。A、intx[2][3]={1,2,3,4,5,6};B、intx[][3]={0};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={{1,2},{3,4},{5,6}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:D)選項(xiàng)中x[2][3]定義的是一個(gè)兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時(shí)卻賦成了三行,所以錯(cuò)誤。25、對(duì)長(zhǎng)度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:快速排序最壞情況就是每次選的基準(zhǔn)數(shù)都和其他數(shù)做過比較,共需比較(n-1)+(n-2)+…+1=n(n-1)/2,選D。國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、非線性結(jié)構(gòu)可以為空B、只有一個(gè)根結(jié)點(diǎn)和一個(gè)葉子結(jié)點(diǎn)的必定是線性結(jié)構(gòu)C、只有一個(gè)根結(jié)點(diǎn)的必定是線性結(jié)構(gòu)或二叉樹D、沒有根結(jié)點(diǎn)的一定是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:①有且只有一個(gè)根結(jié)點(diǎn):②每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線件結(jié)構(gòu)。則稱之為非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)都可以是空的數(shù)據(jù)結(jié)構(gòu)。樹只有一個(gè)根結(jié)點(diǎn),但不論有幾個(gè)葉子結(jié)點(diǎn),樹都是非線性結(jié)構(gòu)。2、有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}printf(’’%d\n’’,a);}程序的輸出結(jié)果是()。A、62B、63C、23D、36標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查while循環(huán)。當(dāng)i<20時(shí),進(jìn)入while循環(huán)體,循環(huán)體內(nèi)的for循環(huán)實(shí)現(xiàn)的功能是,當(dāng)i值是0或5的倍數(shù)時(shí),執(zhí)行“i+=13;a+-i;”這兩條語句;若i值不是5的倍數(shù)則一直執(zhí)行for循環(huán)。①當(dāng)i=0時(shí),執(zhí)行“i+=13;a+=i;i=13,a=13”;②判斷“i=13<20”,進(jìn)入while循環(huán)體,i=10時(shí),跳出for循環(huán),執(zhí)行“i+=13;a+i;i=23,a=36”;③判斷“i=23>20”,循環(huán)結(jié)束。3、有如下程序:#include<stdio.h>wildmain(){intx=Ox13:if(x=Ox18)printf(″T″);printf(″F\n″);}程序運(yùn)行后的結(jié)果是()。A、TFB、TC、FD、TFT標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:x=0x18為賦值表達(dá)式,十六進(jìn)制數(shù)0x18非0,if條件成立輸出T,之后再輸出F與回車符。程序運(yùn)行后的輸出結(jié)果是TF。4、軟件生命周期中的活動(dòng)不包括A、市場(chǎng)調(diào)研B、需求分析C、軟件測(cè)試D、軟件維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件的生命周期描述了軟件從產(chǎn)生到最終消亡的全過程,生命周期中的活動(dòng)包括需求分析、軟件設(shè)計(jì)(分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、軟件實(shí)現(xiàn)、軟件測(cè)試和軟件維護(hù),不包括市場(chǎng)調(diào)研。5、在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是A、各模塊應(yīng)包括盡量多的功能B、各模塊的規(guī)模應(yīng)盡量大C、各模塊之間的聯(lián)系應(yīng)盡量緊密D、模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:內(nèi)聚性是對(duì)一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。耦合性是對(duì)模塊間互相連接的緊密程度的度量。在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分應(yīng)遵循高內(nèi)聚、低耦合的原則,即減弱模塊之間的耦合性和提高模塊內(nèi)聚性,有利于提高軟件模塊的獨(dú)立性。6、在E-R圖中,用來表示實(shí)體的圖形是A、矩形B、橢圓形C、菱形D、三角形標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在E-R圖中,用矩形表示實(shí)體集,在矩形內(nèi)寫上該實(shí)體集的名字;用橢圓形表示屬性;用菱形(內(nèi)部寫上聯(lián)系名)表示聯(lián)系。7、設(shè)intk=0:以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是()。A、k++B、k+1C、++kD、k+=1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B、C、D都是對(duì)k的值加1,選項(xiàng)A的語句k++表示先利用k的值進(jìn)行運(yùn)算,然后k值才加1。8、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)的設(shè)計(jì)階段包括需要分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì),其中將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯設(shè)計(jì)階段。9、以下敘述中正確的是A、C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行B、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C、C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行D、main的各種大小寫拼寫形式都可以作為主函數(shù)名,如:MAIN,Main等標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中的主函數(shù)唯一為main()函數(shù)不能任意指定,所以B選項(xiàng)錯(cuò)誤。C語言從主函數(shù)main()開始,到主函數(shù)main()結(jié)束,所以C選項(xiàng)錯(cuò)誤。主函數(shù)必須寫成小寫的main,不能混淆大小寫,所以D選項(xiàng)錯(cuò)誤。10、有以下函數(shù):intfun(char*x,char*y){intn=0;while((*x==*y)&&*x!=’\0’){x++;y++;n++:}returnn:}函數(shù)的功能是()。A、將y所指字符串賦給x所指存儲(chǔ)空間B、查找x和y所指字符串中是否有’\0’C、統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)D、統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題中由循環(huán)條件可知,遇到’\0’或x與y所指的字符的值不等中的一個(gè)條件時(shí)就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。11、以下程序的輸出結(jié)果是()。#include#defineSUB(A)(A)-(A)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(’’%d\n’’,d);}A、0B、10C、一12D、一20標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查的是宏替換,在程序中執(zhí)行d=SUB(a+b)*c這條語句時(shí),首先要進(jìn)行宏替換,依據(jù)宏SUB(A)的定義可知,上面這條語句替換為d=(a+b)一(a+b)*c,因?yàn)槌朔ǖ膬?yōu)先級(jí)比減法的優(yōu)先級(jí)高,所以先進(jìn)行乘法運(yùn)算,即d=5—5*5=一20,可以看出,出現(xiàn)了運(yùn)算錯(cuò)誤。12、以下程序的輸出結(jié)果是()。voidf(int*q)main(){inti=0;{inta[5]={1,2,3,4,5},i;for(;i<5;i++)(*q)++;}f(a);for(i=0;i<5;i++)printf(’’%d,’’,a[i]);}A、2,2,3,4,5,B、6,2,3,4,5,C、1,2,3,4,5,D、2,3,4,5,6,標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中voidf(int*q)函數(shù)的功能是對(duì)(*q)的值連續(xù)5次自加1。在main函數(shù)中f(a)語句把一維數(shù)組a[5]的首地址作為實(shí)參,傳遞給函數(shù)f(int*q)的形參q,然后在函數(shù)f(int*q)內(nèi),a[0]連續(xù)5次自加1后,a[0]的值就變成6。所以輸出為6,2,3,4,5,選項(xiàng)B正確。13、有以下程序#include#deftneN4voidfun(inta[][N],intb[]){inti;for(i=0;iA、1,2,3,4,B、1,4,5,9,C、1,0,7,0,D、3,4,8,10,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(inta[][N],intb[])的功能是把矩陣a[N][N]主對(duì)角線上的元素賦給一維數(shù)組b[]。在主函數(shù)中由x[][N]的初始化可知,其主對(duì)角線上的元素是1,0,7,0。所以當(dāng)執(zhí)行完函數(shù)funq[x,y)后,一維數(shù)組元素y[]中的元素值為1,0,7,0。14、有以下程序#includemain(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序運(yùn)行后的輸出結(jié)果是()。A、1,3,3B、1,3,2C、1,2,3D、3,2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:else總是與前面距離它最近的且未曾配對(duì)的if語句配對(duì)。"a=1,b=2,c=3,d=0",所以語句"if(a==1&&b++==2)"的判定條件為真,之后b自加1,其值為3。而語句"if(b!=2||c--!=3)"的判定條件也為真,根據(jù)邏輯運(yùn)算符的"短路求值"原理,表達(dá)式"b!=2"為真后整個(gè)邏輯表達(dá)式的值就為真,"c--!=3"不再計(jì)算,所以答案選A。15、有下列程序:structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;iA、3,4,2,7,9,8,6,5,11,10,B、2,3,1,6,8,7,5,4,10,9,C、2,4,3,9,12,12,11,11,18,9,D、1,2,3,6,8,7,5,4,10,9,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:voidf(int*a,intn)函數(shù)的功能是對(duì)數(shù)組a[]的每一個(gè)元素加上其下標(biāo)的值。所以在main()函數(shù)中f(s.a(chǎn),s.n)語句會(huì)調(diào)用f(int*a,intn)函數(shù),此時(shí)指針a指向數(shù)組s.a(chǎn)={2,3,1,6,8,7,5,4,10,9}.n=10;然后執(zhí)行for(i=0;i16、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)定義了3個(gè)整數(shù)指針變量p,q,r,并且使p指向m,q指向n,再執(zhí)行“r=p;p=q;q=r;”這三條語句,使q指向m,p指向n,再輸出變量“m,n,*p,*q”時(shí),它們值分別為1,2,2,1。17、有以下程序main(){inti=5;do{if(i%3=1)if(i%5==2){printf("**%d",i);break;}i++;}while(i!=0);printf("\n");}程序的運(yùn)行結(jié)果是A、*3*5B、*5C、*7D、*2*6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于循環(huán)變量i的初值等于5,所以第一、二次進(jìn)入do....while循環(huán)語句時(shí),條件語句if(i%3==1),if(i%5==2){printf(“*%d”,i);break;}不執(zhí)行,只執(zhí)行i++語句。當(dāng)i=7時(shí),滿足條件語句if(i%3==1),if(i%5==2){printf("*%d",i);break;},所以輸出*7,結(jié)束循環(huán)。18、有下列程序:main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是A、20B、45C、36D、25標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一維整型數(shù)組t[]={1,2,3,4,5,6,7,8,9};然后在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t-i)語句,因?yàn)镃語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。所以程序運(yùn)行的結(jié)果是1-3+5+7-9=25,即變量s的值等于25。19、有以下程序,程序運(yùn)行后的輸出結(jié)果是#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、31.5B、7.5C、程序有錯(cuò)無輸出結(jié)果D、14標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查宏定義。預(yù)處理語句后面不能加分號(hào),因此程序有錯(cuò)。如果沒加分號(hào)的話S(a+b)=PT*a+b*a+b=3.5*1+2*1+2=7.5。20、下面選項(xiàng)中的程序段,沒有編譯錯(cuò)誤的是()。A、char*sp,s[10];sp="Hello";B、char*sp,s[10];s="Hello";C、charstr1[10]="computer",str2[10];str2=str1;D、charmark[];mark="PROGRAM";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符數(shù)組名為一個(gè)指針常量,在非定義狀態(tài)下,不能進(jìn)行任何賦值性操作,所以不能通過賦值操作將一個(gè)字符串的地址指給它,也不能一個(gè)字符數(shù)組的地址指給另一個(gè)字符數(shù)組名,選項(xiàng)B)、C)、D)錯(cuò)誤;但是可以通過賦值的方式把一個(gè)字符串地址指給一個(gè)字符指針,選項(xiàng)A)正確;答案選A)。21、有以下程序#includestructSTU{charname[9];charsex;intscore[2];};voidf(structSTUa[]){structSTUb={"Zhao",’m’,85,90};a[1]=b;}main(){structSTUc[2]={{"Qian",’f’,95,92},{"Sun",’m’,98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);}程序運(yùn)行后輸出結(jié)果是A、Qian,f,95,92,Sun,m,98,99B、Qian,f,95,92,Zhao,m,85,90C、Zhao,m,85,90,Sun,m,98,99D、Zhao,m,85,90,Qian,f,95,92標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行f函數(shù)后,結(jié)構(gòu)體數(shù)組c的第二個(gè)元素被改寫,c[1].name為Zhao,選項(xiàng)B正確。22、若有以下程序#include<stdio.h>int*f(int*s,int*t){int*k;if(*s<*t){k=s;s=t;t=k;}returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);}則程序的輸出結(jié)果是A、3,5,5,3,5B、5,3,5,3,5C、5,3,3,5,5D、3,5,3,5,5標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了返回值為指針的函數(shù),函數(shù)f的主要功能為第一個(gè)參數(shù)小于第二個(gè)參數(shù),那么交換指針的指向,這對(duì)于實(shí)參指向的數(shù)據(jù)時(shí)沒有影響的。最后返回比較大的元素的地址。主函數(shù)中p指向i,q指向j,調(diào)用r=f(p,q),返回q的地址,因此*p=3,*q=5,*r=5。23、構(gòu)成計(jì)算機(jī)軟件的是A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件指的是計(jì)算機(jī)系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔,選D。24、若有以下程序#includemain(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n",c1,c2);}則程序的輸出結(jié)果是A、H’9’B、H9C、F’9’D、表達(dá)式不合法輸出無定值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考察字符變量以及printf()函數(shù)相關(guān)知識(shí),字符變量c1被賦值為’C’+’8’-’3’,即ASSCII碼的運(yùn)算,67+54-49=72,即H;字符變量c2被賦值為’9’-’0’,但輸出時(shí),需要注意的是c1以字符變量輸出,而c2是以十進(jìn)制整型變量輸出。因此B選項(xiàng)正確。25、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是高內(nèi)聚低偶合、模塊大小規(guī)模適當(dāng)、模塊的依賴關(guān)系適當(dāng)?shù)取DK的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進(jìn)一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強(qiáng),易于理解和維護(hù)。模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性結(jié)構(gòu)應(yīng)滿足:有且只有一個(gè)根結(jié)點(diǎn)與每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,所以B)正確。所以有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu),所以A)錯(cuò)誤。循環(huán)鏈表和雙向鏈表都是線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),所以C)和D)錯(cuò)誤。2、下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A、源程序要文檔化B、數(shù)據(jù)說明的次序要規(guī)范化C、避免濫用goto語句D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一般來講,程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的??梢哉J(rèn)為,著名的“清晰第一、效率第二”的論點(diǎn)己成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。良好的程序設(shè)計(jì)風(fēng)格主要應(yīng)注重和考慮下列幾個(gè)因素:①源程序文檔化,包括下列三個(gè)方面:a.符號(hào)的命名應(yīng)具有一定的含義:b.正確的注釋能夠幫助讀者理解程序;c.視覺組織,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦"跀?shù)據(jù)說明的方法,包括下列三個(gè)方面:a.數(shù)據(jù)說明的次序規(guī)范化;b.說明語句中變量安排有序化;c.使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。③語句的結(jié)構(gòu)應(yīng)該簡(jiǎn)單直接,不應(yīng)該為提高效率而把語句復(fù)雜化。④輸入和輸出方式和風(fēng)格應(yīng)盡可能方便用戶的使用。3、有以下程序#includevoidmain(){intn=2,k=-1;while(!(k>0‖n++));printf("%d%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是()。A、02B、13C、57D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中整型變量n的初始值等于2,整型變量k的初始值等于1,在執(zhí)行while語句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷“n++”是否為真,“(k>0∥n++)”表達(dá)式的值為真?!?(k>0∥n++)”表達(dá)式的值為假,所以while語句中的條件不滿足,循環(huán)語句不會(huì)執(zhí)行,變量n的值也不會(huì)加1,所在輸出變量k和n的值是1和2。4、構(gòu)成計(jì)算機(jī)軟件的是A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。5、在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是A、各模塊應(yīng)包括盡量多的功能B、各模塊的規(guī)模應(yīng)盡量大C、各模塊之間的聯(lián)系應(yīng)盡量緊密D、模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:內(nèi)聚性是對(duì)一個(gè)模塊內(nèi)部名個(gè)元素間彼此結(jié)合的緊密程度的度量。耦合性是對(duì)模塊間瓦相連接的緊密程度的度量。在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分應(yīng)遵循高內(nèi)聚、低耦合的原則,即減弱模塊之間的耦合性和提高模塊內(nèi)聚性,有利于提高軟件模塊的獨(dú)立性。6、已知字符A的ASCII碼值是65,字符變量c1的值是’A’,c2的值是’D’,則執(zhí)行語句printf(’’%d,%d’’,c1,c2-2);的輸出結(jié)果是()。A、65,68B、A,68C、A,BD、65,66標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:打印時(shí)以%d整型格式打印輸出,所以字符變量c1的值打印出來就是65,從c2-2的值打印出來就是68-2,即66,所以選擇D選項(xiàng)。7、有以下程序#includemain(){inti,i,m=1;for(i=l;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf("m=%d\n",m);}程序運(yùn)行后的輸出結(jié)果是A、m=2B、m=4C、m=5D、m=6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這道題考查了for循環(huán)的嵌套應(yīng)用。對(duì)于外層for循環(huán)來說,變量i從1增到2,循環(huán)執(zhí)行2次。當(dāng)變量i的值等于1時(shí),對(duì)于內(nèi)層for循環(huán)來說,變量j從3減到1,求得變量m的值等于6。當(dāng)變量i的值等于2時(shí),第一遍執(zhí)行內(nèi)層for循環(huán),變量j的值等于3,那么i*j的值等于6,其值大于3,這時(shí)執(zhí)行break語句,退出內(nèi)層for循環(huán)的執(zhí)行。所以程序輸出變量m的值為6。8、以下對(duì)C語言中聯(lián)合類型數(shù)據(jù)的正確敘述是()。A、定義了聯(lián)合變量后,即可引用該變量或該變量中的任意成員B、一個(gè)聯(lián)合變量中可以同時(shí)存放其所有成員C、聯(lián)合中的各個(gè)成員使用共同的存儲(chǔ)區(qū)域D、在向聯(lián)合中的一個(gè)成員進(jìn)行賦值時(shí),聯(lián)合中其他成員的值不會(huì)改變標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聯(lián)合體的幾個(gè)特點(diǎn):①聯(lián)合體所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間;②各個(gè)成員分量全部是從低地址方向開始使用內(nèi)存單元;③聯(lián)合體中的空間在某一時(shí)刻只能保存某一個(gè)成員的數(shù)據(jù);④聯(lián)合體和結(jié)構(gòu)體可以任意嵌套。9、有以下程序:#includevoidmain(){chara[5][10]={“one”,“two”,“three”,“four”,“five”};inti,j;chart;for(i:0;i<5;i++)for(j=i+1;j<4;j++)if(a[i][0]>a[j][0]){t:a[i][0];a[i][0]=a[j][0];a[j][0]=t;puts(a[1]);}}程序運(yùn)行后的輸出結(jié)果是()。A、twoowoB、fixowoC、twofovD、owooff標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:for循環(huán)完成的功能是把二維數(shù)組a的第一列的字母按從小到大排序,其他列的字母不變。10、以下選項(xiàng)中,值為1的表達(dá)式是A、1-’0’B、’1’-0C、1.’\0’D、’\0’-0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為其對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符’1’對(duì)應(yīng)的ASClI碼值是49,字符’0’對(duì)應(yīng)的ASCII碼值是48,字符’\0’是字符串結(jié)束標(biāo)識(shí)符NULL,其對(duì)應(yīng)的ASCII碼值是0。11、有以下程序,程序的輸出結(jié)果是main(){charc1=’A’,c2=’Y’;printf("%d,%d\n",c1,c2);}A、輸出格式不合法,輸出出錯(cuò)信息B、65,90C、65,89D、A,Y標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語言允許對(duì)整型變量賦以字符值,也允許對(duì)字符變量賦以整型值。在輸出時(shí),允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。12、以下程序的輸出結(jié)果是()。#include#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;il=f(2);i2=f(1+1);printf(’’%d%d\n’’,il,i2);}A、1212B、127C、1211D、117標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了宏的嵌套定義定義了3個(gè)宏定義語句,分別是:#defineN5、#defineMN+1和#definef(x)(x*M),所以根據(jù)C語言的宏交替規(guī)則,我們可知,f(2)=2*N+1∧2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。13、有以下程序段charname[20];intnum;scanf("name=%snum=%d",name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=1001<回車>后,name的值為()。A、LiliB、name=LiliC、Lilinum=D、name=Lilinum=1001標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查scanf的格式輸入。如果scanf的""內(nèi)有普通字符,則程序調(diào)試的時(shí)候必須原樣輸入,所以字符數(shù)組name接受到的字符為L(zhǎng)ili,答案選A。14、以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’):C、printf("%c\n",65);D、printf("%c\n",’B’-1):標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B的輸出函數(shù)中,大寫字符lA-以整型數(shù)據(jù)的形式輸出。15、有以下程序#include#includevoidfun(chars[][10],intn){chart;inti,j;for(i=0;is[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}main(){charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc");fun(ss,5);printf("%s,%s\n",ss[0],ss[4]};}程序的運(yùn)行結(jié)果是A、aaaacc,xyB、bcc,aabccC、xy,aaaaccD、aabcc,bcc標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語句,比較二維字符數(shù)組s[][10]的每個(gè)字符串的首字符大小,如果前一個(gè)字符串首字符大于后一個(gè)字符串的首字符,則交換這兩個(gè)字符串的首字符。在豐函數(shù)中,語句fun(ss,5)的作用是對(duì)二維字符數(shù)組ss[5][10]的5個(gè)字符串的首字符進(jìn)行從小到大的排序,不影響各個(gè)字符串另外的字符。所以排序結(jié)束后,5個(gè)字符串的第一個(gè)字符依次變?yōu)閍、a、b、b和x;最后輸出第1個(gè)和第4個(gè)字符串。16、以下結(jié)構(gòu)體類型說明和變量定義中正確的是A、typedefstruct{intn;charc;}REC;RECtl,t2;B、structREC;{intn;charc;);RECt1,t2;C、typedefstructREC;{intn=0;charc=’A’;}tl,t2;D、struct{intn;charc;}REC;RECtl,t2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{成員列表};struct結(jié)構(gòu)體名后不能加“:”號(hào),所以選項(xiàng)B、C錯(cuò)誤,選項(xiàng)D中定義無名稱的結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體變量形式應(yīng)為structt1,t2:選項(xiàng)A為用戶自定義類型,其為正確的定義形式。17、以下程序的主函數(shù)中調(diào)用了其前面定義的fun函數(shù)#include<stdio.h>main(){doublea[15],k;k=fun(a);}則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是A、doublefun(doublea[15])B、doublefun(double*a)C、doublefun(doublea[])D、doublefun(doublea)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的定義和調(diào)用。根據(jù)對(duì)fun函數(shù)的調(diào)用可知,fun函數(shù)的返回值為double類型的,輸入?yún)?shù)是一個(gè)double類型的地址(指針),因此選項(xiàng)D)錯(cuò)誤。18、有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、a=1,b=1B、a=1,b=0C、a=2,b=1D、a=2,b=2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查的是用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個(gè)switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束循環(huán),此時(shí)a=2,b=1。19、有以下程序voidfunl(char*p){char*q;q=p;while(*q!=’\0’){(*q)++;q++;)}main(){chara[]={"Program"),*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是A、PrphsbnB、ProhsbnC、ProgsbnD、Program標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)voidfunl(char*p)中,語句(*q)++的功能是q所指的字符加1,變成其后面的字符;q++就是指針q指向下一個(gè)字符的位置。所以在主函數(shù)中,語句p=&a[3]的作用是使指針p指向字符數(shù)組a[]中的第四個(gè)字符的位置,即p指向字符’g’;然后調(diào)用函數(shù)fun1(p)后,字符’g’變成’h’,字符’r’變成’s’,字符’a’變成’b’,字符’m’變成’n’,因而字符數(shù)組a[]中的內(nèi)容就成“Prohsbn”。20、若有以下程序#includeintf(intm){staticintn=0;inta=2;n++;a++;returnn+m+a;}main(){intk;for(k=0;k<4;k++)printf("%d,",f(k));}則程序的輸出結(jié)果是()。A、4,6,8,10,B、4,7,10,13,C、4,5,6,7,D、3,5,7,9,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:靜態(tài)變量定義時(shí)的初始化只運(yùn)行一次,并且其值在程序運(yùn)行過程中一直存在,而局部變量則是用時(shí)分配,用完釋放。main()函數(shù)中調(diào)用四次f()函數(shù),f(0)=1+0+3=4,n=1,a=3;f(1)=2+1+3=6,n=2,a=3;f(2)=3+2+3=8,n=3,a=3;f(3)=4+3+3=10,n=4,a=3。所以答案選A。21、有如下程序#includevoidget_put(){charch;ch=getchar();if(ch!=’\n’)get_put();putchar(ch);}main(){get_put();printf("\n");}程序運(yùn)行時(shí),輸入1234<回車>,則輸出結(jié)果是()。A、4321B、1234C、4444D、1111標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)get_put()的作用是利用遞歸調(diào)用,優(yōu)先輸出最后一個(gè)輸入的字符,即逆序輸出輸入的字符串,答案選A。22、有以下程序:#includeintb=2;intfun(int*k){b=*k+b;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b;printf("%d",b);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、810B、1028C、1012D、1016標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:i=2時(shí),fun(&a[2])返回值是b=b+a[1]=2+3=5,b=b+b=5+5=10;i=3時(shí),fun(&a[3])返回值是b=b+a[3]=10+4=14,b=b+b=14+14=28。23、若有以下程序#includemain(){intc;c=10^5;printf("%d\n",c);}則程序的輸出結(jié)果是()。A、15B、10000C、5D、105標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:異或運(yùn)算符的運(yùn)算規(guī)則是參與運(yùn)算的兩個(gè)數(shù)相對(duì)應(yīng)的二進(jìn)制位相異或運(yùn)算,當(dāng)兩個(gè)對(duì)應(yīng)的二進(jìn)制位相異時(shí),結(jié)果為1。10的二進(jìn)制數(shù)為1010,5的二進(jìn)制數(shù)為0101,1010^0101=1111,對(duì)應(yīng)十進(jìn)制數(shù)值為15,答案選A。24、關(guān)于地址和指針,以下敘述正確的是()。A、可以通過強(qiáng)制類型轉(zhuǎn)換讓char型指針指向double型變量B、函數(shù)指針p指向一個(gè)同類型的函數(shù)f時(shí),必須寫成:p=&f;C、指針p指向一個(gè)數(shù)組f時(shí),必須寫成:p=&f;D、一個(gè)指針變量p可以指向自身標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)名代表函數(shù)的入口地址,函數(shù)指針p指向一個(gè)同類型的函數(shù)f時(shí),可以寫成“p=f;”,而不能寫成“p=&F;”,所以選項(xiàng)B錯(cuò)誤。指針p指向一個(gè)數(shù)組f時(shí),可以寫成“p=f;”,數(shù)組名f代表數(shù)組的首地址,所以選項(xiàng)C錯(cuò)誤。指針變量指向的是變量的地址,所以選項(xiàng)D錯(cuò)誤。char型根據(jù)轉(zhuǎn)化原則可以轉(zhuǎn)化為double型。故本題答案為A選項(xiàng)。25、若要使int型變量a,b,c,d的值都為0,以下寫法中錯(cuò)誤的是()。A、autointa,b,c,d;a=b=c=d=0;B、autointa=b=c=d=0;C、autointa=0,b=a,c=b,d=c;D、staticinta,b,c,d;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)B中,使用autoint定義了整型a,但b、c、d都是未定義的變量,所以不能作右值使用,錯(cuò)誤;選項(xiàng)A、C都是正確的定義和初始化;選項(xiàng)D中,static變量定義了a、b、c、d,由于未初始化,在程序運(yùn)行時(shí),首先將這四個(gè)變量賦值為0,正確;本題答案為B。國(guó)家二級(jí)C語言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的D、以上都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。2、有以下程序#includevoidmain(){intn=2,k=-1;while(!(k>0‖n++));printf("%d%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是()。A、02B、13C、57D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中整型變量n的初始值等于2,整型變量k的初始值等于1,在執(zhí)行while語句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷“n++”是否為真,“(k>0∥n++)”表達(dá)式的值為真?!?(k>0∥n++)”表達(dá)式的值為假,所以while語句中的條件不滿足,循環(huán)語句不會(huì)執(zhí)行,變量n的值也不會(huì)加1,所在輸出變量k和n的值是1和2。3、軟件生命周期中,確定軟件系統(tǒng)要做什么的階段是()。A、需求分析B、軟件測(cè)試C、軟件設(shè)計(jì)D、系統(tǒng)維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在軟件生命周期中,確定軟件系統(tǒng)要做什么的階段是需求分析階段,答案選A。4、下列關(guān)于棧的敘述中,正確的是()。A、棧底元素一定是最后入棧的元素B、棧操作遵循“先進(jìn)后出”的原則C、棧頂元素一定是最先入棧的元素D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是“先進(jìn)后出”,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。5、數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決A、數(shù)據(jù)共享問題B、數(shù)據(jù)安全問題C、大量數(shù)據(jù)存儲(chǔ)問題D、簡(jiǎn)化數(shù)據(jù)維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的一個(gè)核心問題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性能良好的數(shù)據(jù)庫(kù),這就是數(shù)據(jù)庫(kù)設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)是在一

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論