國家二級C語言機(jī)試(選擇題)模擬試卷43(共270題)_第1頁
國家二級C語言機(jī)試(選擇題)模擬試卷43(共270題)_第2頁
國家二級C語言機(jī)試(選擇題)模擬試卷43(共270題)_第3頁
國家二級C語言機(jī)試(選擇題)模擬試卷43(共270題)_第4頁
國家二級C語言機(jī)試(選擇題)模擬試卷43(共270題)_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級C語言機(jī)試(選擇題)模擬試卷43(共9套)(共270題)國家二級C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)先出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊列B、棧C、隊列D、二叉樹標(biāo)準(zhǔn)答案:C知識點解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊列是“先進(jìn)先出”(EIFO)或“后進(jìn)后出”(LILO)的線性表。2、一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為1的結(jié)點數(shù)為A、16B、10C、6D、4標(biāo)準(zhǔn)答案:A知識點解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個,故此度為1的結(jié)點個數(shù)=總結(jié)點數(shù)-葉子節(jié)點數(shù)-度為2的節(jié)點數(shù)=25-5-4=16。3、在長度為n的順序表中查找一個元素,假設(shè)需要查找的元素一定在表中,并且元素出現(xiàn)在表中每個位置上的可能性是相同的,則在平均情況下需要比較的次數(shù)為()。A、n/4B、nC、3n/4D、(n+1)/2標(biāo)準(zhǔn)答案:D知識點解析:在順序表中查找,最好情況下第一個元素就是要查找的元素,則比較次數(shù)為1;在最壞情況下,最后一個元素才是要找的元素,則比較次數(shù)為n。則平均比較次數(shù):(1+2+…+n)/n=(n(n+1)/2)/n=(n+1)/2。4、己知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個數(shù)組:structanumber[10];假定文件己正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。A、fread(b,sizeof(structa),10,fp);B、for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp);C、for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);D、for(i=0;i>5;i+=2)fread(b+i,sezeof(structa),2,fp);標(biāo)準(zhǔn)答案:B知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為;fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址?!皊ize”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。選項B中b[i]是一個數(shù)組,不是指針,需改為&b[i]。注意:完成一次讀操作(1jread())后,如果沒有關(guān)閉流(fclose()),則指針(FILE*fp)自動向后移動前一次讀寫的長度,不關(guān)閉流則繼續(xù)下一次讀操作,接著上次的輸出繼續(xù)輸出。5、在滿足實體完整性約束的條件下A、一個關(guān)系中應(yīng)該有一個或多個候選關(guān)鍵字B、一個關(guān)系中只能有一個候選關(guān)鍵字C、一個關(guān)系中必須有多個候選關(guān)鍵字D、一個關(guān)系中可以沒有候選關(guān)鍵字標(biāo)準(zhǔn)答案:A知識點解析:在關(guān)系數(shù)據(jù)庫中,實體完整性的概念是主屬性不能為空。在滿足實體完整性的前提下,必須在關(guān)系中存在主屬性,也就是在關(guān)系中應(yīng)該有候選關(guān)鍵字。一個關(guān)系中可以有一個或者多個候選關(guān)鍵字。6、下列描述中正確的是A、為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系B、表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項C、一個關(guān)系的屬性名表稱為關(guān)系模式D、一個關(guān)系可以包括多個二維表標(biāo)準(zhǔn)答案:A知識點解析:二維表中元組的分量是不可分割的基本數(shù)據(jù)項,這就是元組分量的原子性,故選項B)錯誤;關(guān)系的框架稱為關(guān)系模式;一個滿足“元組個數(shù)有限性、元組的惟一性、元組的次序無關(guān)性、元組分量的原子性、屬性名惟一性、屬性的次序無關(guān)性、分量值域的同一性”7個性質(zhì)的二維表稱為關(guān)系。7、有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z)printf("%d",++z);elseprintf("%d",++y);printf("%d\n",x++);}程序的運行結(jié)果是()。A、1B、41C、2D、331標(biāo)準(zhǔn)答案:A知識點解析:else總是與離它最近的if配對,所以第一個if語句的判斷條件不成立,不再執(zhí)行第二個if語句和與第二個if語句配對的else語句,而是直接執(zhí)行打印x++的操作,打印x的值1以后再加1。8、下列選項中,能夠滿足“只要字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A、if(s1一s2==0)ST;B、if(s1==s2)ST;C、if(strcpy(s1,s2)==1)ST;D、if(strcmp(s2,s1)==0)ST;標(biāo)準(zhǔn)答案:D知識點解析:在C語言中,要對兩個字符串的大小進(jìn)行比較,就需要調(diào)用字符串比較函數(shù)strcmp,如果這個函數(shù)的返回值等于0,說明兩個字符串相等,因此D選項正確。9、以下選項中不能用作C程序合法常量的是A、’\123’B、1,234C、123D、\X7D標(biāo)準(zhǔn)答案:B知識點解析:選項B)中的1,234在兩側(cè)加雙引號才是C程序的合法字符串常量。10、以下程序的輸出結(jié)果是()。main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf(’’%d*%d=%d’’,i,j,i*j);printf(’’\n’’);}}A、1*1=11*2=21*3=32*1=22*2=43*1=3B、1*1=11*2=22*2=41*3=32*3=63*3=9C、1*1=11*2=21*3=32*2=42*3=63*3=9D、1*1=12*1=22*2=43*1=33*2=63*3=9標(biāo)準(zhǔn)答案:C知識點解析:本題考查嵌套for循環(huán),外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束。對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。11、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)D、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)在存儲空間的需求上沒有可比性標(biāo)準(zhǔn)答案:B知識點解析:線性鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結(jié)構(gòu)。12、若有以下程序#includemain(){inta=-11,b=10;a/=b/=-4;printf("%d%d\n",a,b);}則程序的輸出結(jié)果是()。A、5-2B、-1-2C、4-3D、5-3標(biāo)準(zhǔn)答案:A知識點解析:考查運算符與表達(dá)式。若除法運算符"/"的參與量均為整型,則結(jié)果也為整型,所以表達(dá)式"a/=b/=-4;"先計算表達(dá)式"b/=-4;"的值,b為-2,然后計算表達(dá)式"a/=b"即"a=a/b"得a為5,所以輸出結(jié)果為選項A)。13、若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A、#definen5inta[2*n];B、inta[5+5];C、#defineN10inta[N];D、intn=10,a[n];標(biāo)準(zhǔn)答案:D知識點解析:在C語言中,定義一維數(shù)組的語句形式為:類型名數(shù)組名[整型常量表達(dá)式1。在選項D)中,n是一個整型的變量。14、C語言程序中,運算對象必須是整型數(shù)的運算符是A、/B、%C、&&D、*標(biāo)準(zhǔn)答案:B知識點解析:%要求參與運算的運算量為整型,其他三個運算符對于參與運算的運算量沒有直接要求。15、有以下程序#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c-(’a’-’A’);c++;}}main(){chars[81];gets(s);fun(s);puts(s);}當(dāng)執(zhí)行程序時從鍵盤上輸入HelloBeijing<回車>,則程序的輸出結(jié)果是A、hellobeijingB、HelloBeijingC、HELLOBEIJINGD、hELLOBeijing標(biāo)準(zhǔn)答案:C知識點解析:主程序讀取整個字符串存于s中,調(diào)用fun函數(shù),字符指針c指向數(shù)組s。函數(shù)fun的功能是把指針c所指向的字符數(shù)組中的所有小寫字符轉(zhuǎn)換為大寫。gets函數(shù)可以把空格作為字符串的一部分輸入,以回車作為輸入結(jié)束。如果*c為小寫字符,則*c=*c-32(轉(zhuǎn)大寫)。因此C選項正確。16、設(shè)有定義:intk=0;以下選項的四個表達(dá)式中與其他三個表達(dá)式的值不相同的是A、k++B、k+=1C、++kD、k+1標(biāo)準(zhǔn)答案:A知識點解析:因為題中有語句“intk=0;”,所以選項B)、C)、D)都是對k的值加1。選項A)的語句k++表示先利用k的值進(jìn)行運算,然后k值才加1。17、表示關(guān)系式x≤y≤z的C語言表達(dá)式的是A、(x<=y)||(y<=z)B、(x<=y<=z)C、(x<=y)&&(y<=z)D、(x<=y)!(y<=z)標(biāo)準(zhǔn)答案:C知識點解析:表示三個變量的關(guān)系,要利用邏輯表達(dá)式,用邏輯與連接。18、以下合法的字符型常量是A、’\x13’B、’\081’C、’65’D、’/n’標(biāo)準(zhǔn)答案:A知識點解析:本題考查字符型常量。選項A)正確,使用了轉(zhuǎn)義字符“\”,x13表示16進(jìn)制的13;選項B)同樣使用了轉(zhuǎn)義字符,但081錯誤,以0開始表示8進(jìn)制,8進(jìn)制數(shù)字的范圍是0.7,沒有8;選項C)錯誤,65是一個字符串,不是字符;選項D)錯誤,換行符是“\n”。19、以下敘述中正確的是A、賦值語句是一種執(zhí)行語句,必須放在函數(shù)的可執(zhí)行部分B、scanf和printf是C語言提供的輸入和輸出語句C、由printf輸出的數(shù)據(jù)都隱含左對齊D、由printf輸出的數(shù)據(jù)的實際精度是由格式控制中的域?qū)捄托?shù)的域?qū)拋硗耆珱Q定的標(biāo)準(zhǔn)答案:A知識點解析:C語言本身沒有提供輸入輸出語句,但是可以通過調(diào)用標(biāo)準(zhǔn)庫函數(shù)中提供的輸入和輸出函數(shù)來實現(xiàn)輸入和輸出,選項B)錯誤;采用printf輸出數(shù)據(jù),輸出數(shù)據(jù)都默認(rèn)為右對齊,若要左對齊,可以在格式控制中的“%”和寬度之間加一個“-”號來實現(xiàn),選項C)錯誤;printf的輸出精度由變量的類型決定,與域?qū)挓o關(guān),選項D)錯誤。20、若有以下程序#includemain(){inta=-2,b=0;while(a++)++b;printf("%d,%d\n",a,b);}則程序的輸出結(jié)果是A、1,2B、0,2C、1,3D、2,3標(biāo)準(zhǔn)答案:A知識點解析:第一次while判斷條件中a++,先用后加,為-2不為0條件為真,執(zhí)行a的自加與++b操作,a的值變?yōu)?1,b的值變?yōu)?,第二次while判斷后,a的值變?yōu)?,b的值變?yōu)?,第三次while判斷條件為假,但是仍要執(zhí)行自加操作,即值為1,跳出循環(huán),打印1和2。21、有以下程序#includeintfun(char*s){char*p=s;while(*P!=0)p++;return(p-s);}main(){printf("%d\n",fun("goodbey!"));}程序的輸出結(jié)果是A、6B、8C、0D、7標(biāo)準(zhǔn)答案:B知識點解析:函數(shù)fun的主要功能是計算字符串中實際字符的個數(shù),因此"goodbey!"含有字符為8,返回值為8。22、以下敘述中錯誤的是A、函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型B、只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值C、可以通過指針變量來訪問結(jié)構(gòu)體變量的任何成員D、函數(shù)可以返回指向結(jié)構(gòu)體變量的指針標(biāo)準(zhǔn)答案:A知識點解析:函數(shù)的返回值類型可以是結(jié)構(gòu)體類型。結(jié)構(gòu)體變量之間可以相互復(fù)制。23、若有以下程序#includevoidsp(int*a){intb=2;main(){intk=3,*p=&k;a=&b;sp(p);*a=*a*2;printf("%d,%d\n",k,*p);printf("%d,",*a);}}則程序的輸出結(jié)果是A、4,3,4B、4,3,3C、6,3,6D、6,6,6標(biāo)準(zhǔn)答案:B知識點解析:主函數(shù)中定義指針變量p指向k,調(diào)用函數(shù)sp(p),將k的地址傳遞給形參指針a,函數(shù)轉(zhuǎn)到sp運行,a指向b的地址,表達(dá)式*a=*a*2,相當(dāng)于b=b*2,得到*a的數(shù)據(jù)4輸出。函數(shù)調(diào)用結(jié)束,此時a和b的空間撤銷,而對實參k和p的值并沒有改變,仍舊是3。24、6.程序調(diào)試的任務(wù)是A、設(shè)計測試用例B、驗證程序的正確性C、發(fā)現(xiàn)程序中的錯誤D、診斷和改正程序中的錯誤標(biāo)準(zhǔn)答案:D知識點解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。25、設(shè)有定義:inta=1,b=2,c=3;以下語句中執(zhí)行效果與其它三個不同的是A、if(a>b)c=a,a=b,b=c;B、if(a>b){c=a,a=b,b=c;}C、if(a>b)c=a;a=b;b=c;D、if(a>b){c=a;a=b;b=c;}標(biāo)準(zhǔn)答案:C知識點解析:由于a不小于b,所以所有選項中的條件都為假,A選項中實際執(zhí)行了a=b;b=c;兩個操作。而B,C,D選項由于條件不成立,所以什么也沒有做,所以選擇C選項。國家二級C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、在線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,其存儲空間一般是不連續(xù)的,并且()。A、前件節(jié)點的存儲序號小于后件節(jié)點的存儲序號B、前件節(jié)點的存儲序號大于后件節(jié)點的存儲序號C、前件節(jié)點的存儲序號可以小于也可以大于后件節(jié)點的存儲序號D、以上三種說法均不正確標(biāo)準(zhǔn)答案:C知識點解析:在線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,各數(shù)據(jù)節(jié)點的存儲序號是不連續(xù)的,并且各節(jié)點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致,因此前件節(jié)點的存儲序號與后件節(jié)點的存儲序號之間不存在大小關(guān)系。2、在E—R圖中,用來表示實體聯(lián)系的圖形是()。A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識點解析:在E—R圖中,實體集用矩形,屬性用橢圓,聯(lián)系用菱形。3、一個棧的初始狀態(tài)為空,現(xiàn)將元素A、B、C、D、E依次入棧,然后依次退棧三次,并將退棧的三個元素依次入隊(原隊列為空),最后將隊列中的元素全部退出。則元素退隊的順序為A、ABCB、CBAC、EDCD、CDE標(biāo)準(zhǔn)答案:C知識點解析:棧是根據(jù)先進(jìn)后出的原則組織數(shù)據(jù),所以退棧三次的元素依次為E、D、C;隊列是根據(jù)先進(jìn)先出的原則組織數(shù)據(jù)的,所以退隊的順序依次為E、D、C,所以選項C正確。4、有以下程序:#includedoublefun(doublea){doublex;x=a一(int)a;returnx;}main(){doublea=3.1415;printf(“%f\n”,fun(a));}程序的運行結(jié)果是()。A、0.141500B、3.141500C、30000000D、0.000000標(biāo)準(zhǔn)答案:A知識點解析:這里考查了強(qiáng)制轉(zhuǎn)換的概念。在fun函數(shù)中,x=a一(int)a,表示x取值為a的小數(shù)部分,因此,輸入a為3.1415,輸出x=0.141500,故A選項正確。5、以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是A、x/2B、x%2=0C、x%21=0D、x%2=1標(biāo)準(zhǔn)答案:B知識點解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項B等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。6、有以下程序main()(intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序運行后的輸出結(jié)果是A、2B、0C、1D、3標(biāo)準(zhǔn)答案:B知識點解析:x=1,if和elseif的條件都不滿足,故y值不改變輸出。7、若有定義語句:chars[10]=“1234567\0\0”;,則strlen(s)的值是()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:A知識點解析:strlen()函數(shù)是計算字符串長度時,遇到結(jié)束標(biāo)識為止,且長度不包括結(jié)束標(biāo)識。本題中的字符串從第一個字符開始,遇到第一個結(jié)束標(biāo)識’\0’為止,注意’\0’不占字符串長度,所以字符串長度為7,因此A選項正確。8、數(shù)字字符0的ASCII值為48,若有以下程序,程序運行后的輸出結(jié)果是main(){chara=’1’,b=’2’;printf("%c,",b++);printf("%d\n",b-A);}A、3,2B、50,2C、2,2D、2,50標(biāo)準(zhǔn)答案:C知識點解析:本題主要考查ASCII碼和自加運算。第一個printf語句中,是以字符形式輸出b++的值,++放在變量的后面是先使用然后自增,因此第一個printf輸出值是2,然后b的值變成’3’。在第二個printf語句中,b的值為’3’,a的值為’1’,所以b-a的值為2。9、某系統(tǒng)總體結(jié)構(gòu)如下圖所示A、層次結(jié)構(gòu)B、網(wǎng)狀結(jié)構(gòu)C、分支結(jié)構(gòu)D、循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識點解析:層次結(jié)構(gòu)(hierarchy)是一種操作系統(tǒng)的組織結(jié)構(gòu),其提供了一種隔離操作系統(tǒng)各層功能的模型。其包括歸屬層次結(jié)構(gòu)dissonance-attributionhierarchy維度層次結(jié)構(gòu)dimensionhierarchy層次結(jié)構(gòu)數(shù)據(jù)庫hierarchicaldatabase等。網(wǎng)狀結(jié)構(gòu)這一名詞來自早期解剖學(xué)家用光學(xué)顯微鏡對腦干中央?yún)^(qū)網(wǎng)絡(luò)狀外觀的描述,在光鏡下這部分組織學(xué)的特點是神經(jīng)細(xì)胞分散,形態(tài)各異,大小不等,神經(jīng)纖維交錯穿行其間,形成一種灰白質(zhì)交織的結(jié)構(gòu),稱之為網(wǎng)狀結(jié)構(gòu)。分支結(jié)構(gòu)的執(zhí)10、以下敘述中錯誤的是A、typedef的作用是用一個新的標(biāo)識符來代表已存在的類型名B、typedef說明的新類型名必須使用大寫字*,否則會出編譯錯誤C、可以用typedef說明的新類型名來定義變量D、用typedef可以說明一種新的類型名標(biāo)準(zhǔn)答案:B知識點解析:typedef語句的作用僅僅是用“標(biāo)識符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原來類型名依然有效。為了便于識別,一般習(xí)慣將新的類型名用人寫字*表示。11、下面選項中關(guān)于位運算的敘述正確的是A、位運算符都需要兩個操作數(shù)B、左移運算的結(jié)果總是原操作數(shù)據(jù)2倍C、右移運算時,高位總是補(bǔ)0D、位運算的對象只能是整型或字符型數(shù)據(jù)標(biāo)準(zhǔn)答案:D知識點解析:位運算則是以位(bit)一級進(jìn)行的運算,位運算符中除“~”以外,均為二元運算符,即要求兩側(cè)各有一個運算量,運算量只能是整型或字符型的數(shù)據(jù),不能為實型數(shù)據(jù)。其中右移時,右端(低位)移出的二進(jìn)制數(shù)舍棄,左端(高位)移入的二進(jìn)制數(shù)分兩種情況:對于無符號整數(shù)和正整數(shù),高位補(bǔ)0;對于負(fù)整數(shù),高位補(bǔ)1。而左移運算在沒有溢出的前提下每移動一位,相當(dāng)于原數(shù)據(jù)的2倍。12、有以下程序main(){inti=1;i=i^i;printf("%d\n",i);}程序運行后的輸出結(jié)果是A、-1B、0C、1D、7標(biāo)準(zhǔn)答案:B知識點解析:按位異或(^)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應(yīng)的二進(jìn)制位上,若數(shù)相同,則該位的結(jié)果為0;若數(shù)不同,該位的結(jié)果為1。本題中表達(dá)式i^i的值必為0,因為i的各個位置的二進(jìn)制值相同。13、定義學(xué)生選修課程的關(guān)系模式:SC(S#,Sn,C#,Cn,G)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績)該關(guān)系的范式最高達(dá)到A、1NFB、2NFC、3NFD、BCNF標(biāo)準(zhǔn)答案:A知識點解析:第一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個新的實體,新的實體由重復(fù)的屬性構(gòu)成,新實體與原實體之間為一對多關(guān)系。在第一范式(1NF)中表的每一行只包含一個實例的信息。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被唯一地區(qū)分。本題中關(guān)系模式中的可能不被唯一地區(qū)分,因此它只能滿足第一范式,而滿足不了第二范式。14、有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結(jié)果是A、963B、852C、741D、875421標(biāo)準(zhǔn)答案:B知識點解析:y的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出句,輸出表達(dá)式--y的值。因為自減符號在y的前面,所以首先y的自減1,然后再輸出y的值,故輸出結(jié)果為852。15、以下敘述中錯誤的是A、預(yù)處理命令行的最后不能以分號表示結(jié)束B、C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的C、#defineMAX是合法的宏定義命令行D、在程序中凡是以“#”開始的語句行都是預(yù)處理命令行標(biāo)準(zhǔn)答案:B知識點解析:預(yù)處理命令行是以“#”開始的語句,預(yù)處理命令行的最后不能以分號表示結(jié)束,預(yù)處理命令行。其中宏定義的字符替換的定義格式為:#define標(biāo)識符字符串,預(yù)處理命令行是在系統(tǒng)對源程序進(jìn)行編譯之前進(jìn)行處理的,不是在程序執(zhí)行的過程中。16、有下列程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運行后的輸出結(jié)果是A、28B、24C、32D、36標(biāo)準(zhǔn)答案:A知識點解析:程序中定義了全局整型變量a=4。在intf(intn)函數(shù)中定義了局部靜態(tài)整型變量并進(jìn)行了初始化即staticinta=5。在intf(intn)函數(shù)中對n是否是偶數(shù)進(jìn)行判斷,如果n是奇數(shù),則函數(shù)的返回值為11,局部靜態(tài)整型變量a=6;如果n是偶數(shù),則函數(shù)的返回值為12,局部靜態(tài)整型變量a=6。所以在main()函數(shù)中循環(huán)首先執(zhí)行s+=f(0)語句,而f(0)返回值12,所以第一次循環(huán)結(jié)束s的值等于4+12=16:第二次開始執(zhí)行f(1)時,在f(1)中執(zhí)行if(n%2){inta=6;t+=a++;}和returnt+a++;這兩條語句,這時t=6,a=6(靜態(tài)局部變量第一次循環(huán)后其值加1值不釋放,執(zhí)行第二次循環(huán)量,其值仍有效),所以f(1)的返回值等于12。再在主函數(shù)中執(zhí)行s+=f(1)語句,即16+12=28。17、有以下程序#includevoidmain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運行后的輸出結(jié)果是A、2050B、3344C、3040D、0304.標(biāo)準(zhǔn)答案:C知識點解析:在主函數(shù)的for循環(huán)語句中,當(dāng)循環(huán)變量i的值等于0,2時,執(zhí)行switch中的case0語句,分別對數(shù)組元素a[0]和a[2]加1和減1,所以a[0]的值等于3,a[2]等于4。當(dāng)循環(huán)變量i的值等于1,3時,執(zhí)行switch中的case1語句,把數(shù)組元素a[1]和a[3]的值賦為0。所以輸出數(shù)組a的元素,其結(jié)果為3040。18、以下選項中合法的實型常量是A、0B、3.13e-2.1C、.914D、2.0*10標(biāo)準(zhǔn)答案:C知識點解析:A選項為整型數(shù)據(jù),B選項中e后面必須為整數(shù),D選項是表達(dá)式,不是常量,所以選擇C。19、讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);其中buffer代表的是A、一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)B、一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址C、一個文件指針,指向待讀取的文件D、一個內(nèi)存塊的字節(jié)數(shù)標(biāo)準(zhǔn)答案:B知識點解析:buffer是數(shù)據(jù)塊的指針,對fread來說,它是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中;20、有以下程序#includestructord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;pfintf(“%d,”,++(p->x));printf("%d\n",++(p->y));}程序運行后的輸出結(jié)果是A、4,1B、2,3C、3,4D、1,2標(biāo)準(zhǔn)答案:B知識點解析:在題目中定義了結(jié)構(gòu)體ord類型的數(shù)組變量dt,并對其賦初值。在程序中定義了指向結(jié)構(gòu)體ord類型的指針變量p,并且它指向變量數(shù)組dt的第一個元素dt[0],所以此時成員變量p->x的值等于1,成員變量p->y的值等于2,在輸出時分別加1,所以輸出結(jié)果為選項B。21、有以下程序#includemain(){char*s[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"},**p;inti;p=s;for(i=0;i<4;i++)printf("%s",p[i]);printf("\n");}程序運行后的輸出結(jié)果是()。A、ABCDEFGHIJKLMNOPB、ABCDEFGHIJKLC、ABCDD、AEIM標(biāo)準(zhǔn)答案:A知識點解析:語句"p=s",將p指向指針數(shù)組s的首地址,則p[i]與s[i]等價,均是指向第i+1個字符串的首地址,輸出語句"printf("%s",p[i]);"會將該字符串整體輸出。所以main()函數(shù)輸出的為字符串?dāng)?shù)組s的前4個字符串,答案選A。22、以下敘述中正確的是A、結(jié)構(gòu)體變量的地址不能作為實參傳給函數(shù)B、結(jié)構(gòu)體數(shù)組名不能作為實參傳給函數(shù)C、即使是同類型的結(jié)構(gòu)體變量,也不能進(jìn)行整體賦值D、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員標(biāo)準(zhǔn)答案:D知識點解析:一個結(jié)構(gòu)體變量包含若干成員,這些成員可以是數(shù)值類型、字符類型、數(shù)組類型,也可以是指針類型,甚至可以是正在定義的結(jié)構(gòu)體類型指針。用結(jié)構(gòu)體變量作實參時,采取的是“值傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單尢的內(nèi)容令部順序傳遞給形參。形參也必須是同類型的結(jié)構(gòu)體變量。結(jié)構(gòu)體數(shù)組作為參數(shù)時,采取了“地址傳遞”的方式,形參須為同類型的結(jié)構(gòu)指針或者形參結(jié)構(gòu)數(shù)組。23、若已建立以下鏈表結(jié)構(gòu),指針p、s分別指向如圖所示結(jié)點則不能將s所指節(jié)點插入到鏈表末尾的語句組是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知識點解析:選項A中首先p后移,s的后繼指針指向p,p的后繼指向s,在s和最后結(jié)點之間形成了圓圈,無法完成題中的操作。24、以下敘述中正確的是A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的B、結(jié)構(gòu)體類型中的各個成分均不能是數(shù)組或指針C、結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時一起定義D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過結(jié)構(gòu)體類型之后,單獨進(jìn)行定義標(biāo)準(zhǔn)答案:A知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,結(jié)構(gòu)體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結(jié)構(gòu)體類型的變量可以在聲明結(jié)構(gòu)體的時候一起定義,C選項錯誤,D選項中可以一起定義。25、有以下程序#includemain(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+32):a;printf("%c\n",a);}程序運行后的輸出結(jié)果是A、HB、hC、AD、a標(biāo)準(zhǔn)答案:B知識點解析:條件運算符構(gòu)成的選擇結(jié)構(gòu)的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3。其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式2的值作為整個條件表達(dá)式的值。該題目中首先給字符變量a賦值為’H’。語句a=(a>=’A’&&a<=’Z’)?(a+32):a;即將大寫字母變?yōu)樾懽帜?。因此B選項正確。國家二級C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A、循環(huán)隊列B、帶鏈隊列C、二叉樹D、帶鏈棧標(biāo)準(zhǔn)答案:C知識點解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。循環(huán)隊列、帶鏈隊列和帶鏈棧都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。2、某二叉樹的中序遍歷序列為CBADE,后序遍歷序列為CBEDA,則前序遍歷序列為()。A、CBADEB、CBEDAC、ABCDED、EDCBA標(biāo)準(zhǔn)答案:C知識點解析:二叉樹的后序遍歷序列為CBEDA,由于后序遍歷最后訪問根結(jié)點,可以確定該二叉樹的根結(jié)點是A。再由中序遍歷序列為CBADE,可以得到子序列(cB)一定在左子樹中,子序列(DE)一定在右子樹中。結(jié)點C、B在中序序列和后序序列中順序未變,說明結(jié)點B是結(jié)點c的父結(jié)點;結(jié)點D、E在中序序列和后序序列中順序相反,說明結(jié)點D是結(jié)點E的父結(jié)點。因此該二叉樹的前序遍歷序列為ABcDE。3、已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(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知識點解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符C的ASCII代碼轉(zhuǎn)換為小寫字符c的ASClI代碼:選項D)和C)左側(cè)的表達(dá)式都是大寫字符c與大寫字符A的差與’a’的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項A)中應(yīng)該是加上’a’,而不是減去’a’。4、設(shè)有定義:inta;floatb;執(zhí)行scanf(’’%2d%f’,&a,&b);語句時,若從鍵盤輸入876543.0則a和b的值分別是A、876和543.0B、87和6.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:B知識點解析:在輸入函數(shù)scanf的輸入格式符%2d%f中,2d表示輸入的數(shù)據(jù)的寬度為2,所以當(dāng)從鍵盤輸入876543.0<CR>時,這時把輸入數(shù)字串的前兩位87賦給變量a,然后將緊接著將6按照格式控制符%f的形式賦給變量b,所以b的值為6.000000。5、有兩個關(guān)系R,S如下,由關(guān)系R和S通過運算得到關(guān)系T,則所使用的操作為()。A、并B、自然連接C、笛卡爾積D、差標(biāo)準(zhǔn)答案:D知識點解析:由關(guān)系可以看出,關(guān)系T是由關(guān)系R中減去關(guān)系R和關(guān)系S共有的元組得到的,所以答案選擇D。6、若有以下程序main(){inta=6,b=0,c=0;for(;a;){b+=a;a-=++C;}printf(’’%d,%d,%dkn’’,a,b,c);)則程序的輸出結(jié)果是A、1,14,3B、0,18,3C、0,14,3D、0,14,6標(biāo)準(zhǔn)答案:C知識點解析:循環(huán)體執(zhí)行三次,a初值6,第一次執(zhí)行循環(huán)體,b=6,題a=5。繼續(xù)執(zhí)行循環(huán)體,b=11,a=3,第三次執(zhí)行循環(huán)體,b=14,a=0,循環(huán)退出。7、有以下程序#includemain(){inti,j,m=1;for(i=1:i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf("m=%d\n",m);}程序運行后的輸出結(jié)果是A、m=2B、m=4C、m=5D、m=6標(biāo)準(zhǔn)答案:D知識點解析:這道題考查了for循環(huán)的嵌套應(yīng)用。對于外層for循環(huán)來說,變量i從1增到2,循環(huán)執(zhí)行2次。當(dāng)變量i的值等于1時,對于內(nèi)層for循環(huán)來說,變量i從3減到1,求得變量m的值等于6。當(dāng)變量i的值等于2時,第一遍執(zhí)行內(nèi)層for循環(huán),變量i的值等于3,那么i*i的值等于6,其值大于3,這時執(zhí)行break語句,退出內(nèi)層for循環(huán)的執(zhí)行。所以程序輸出變量m的值為6。8、若有定義語句doublex,y,*px,*py;,執(zhí)行了px=&x;py=&y;之后,正確的輸入語句是()。A、seanf("%If%le",px,py);B、seanf("%f%f"&x,&y);C、sccanf("%f%f",x,y);D、scanf("%If%If",x,y);標(biāo)準(zhǔn)答案:A知識點解析:因為x和y都是double型數(shù)據(jù),所以輸入時的格式字符應(yīng)為%lf,所以B、C選項錯誤。D選項中的scanf("%lf%lf|,x,y);應(yīng)為scanf("%lf%lf",&x,&y);。9、以下選項中合法的變量是()。A、_10_B、5aC、A%D、sizeof標(biāo)準(zhǔn)答案:A知識點解析:C語言規(guī)定,標(biāo)識符由字母(A~Z,a~z)、數(shù)字(0~9)或者下劃線(_)組成,并且第一個字符必須為字母或者下劃線。變量為用戶標(biāo)識符,命名方法需要遵循標(biāo)識符的命名規(guī)則,答案選A。10、設(shè)變量均已正確定義并賦值,以下與其他三組輸出結(jié)果不同的一組語句是A、x++;printf("%d\n",x);B、++x;printf("%d\n",x);C、n=x++:printf("%d\n",n);D、n=++x;printf("%d\n",n);標(biāo)準(zhǔn)答案:C知識點解析:本題考查自增運算符。++在前表示先自增然后使用,++在后面表示先使用然后自增。選項A中首先執(zhí)行x++,執(zhí)行完后x自增1,然后printf輸出的是x自增后的值;選項B首先執(zhí)行++x,x的值增加1,接著輸出x的值:選項C中++在x的后面,因此n的值是x自增前的值,printf輸出的是x自增前的值;選項D中++在x的前面,因此x首先自增,然后再賦值給n,n的值是x自增后的值,輸出的也是x自增后的值。11、以下選項中合法的常量是A、2.7eB、999C、123E0.2D、OXab標(biāo)準(zhǔn)答案:D知識點解析:0xab是十六進(jìn)制表示的常量。12、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是(注:□代表一個空格符)A、□□□1.2,3B、1,□□□2,□□□3C、1.2.3D、1□2□3標(biāo)準(zhǔn)答案:D知識點解析:本題主要考查scanf函數(shù)的輸入格式問題。scanf函數(shù)的一般形式為:scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由雙撇號括起來的字符串,它主要由兩種類型的字符組成:①格式說明符由“%”和格式字符組成,如‰c,%d,%s,%f等。其作用是將輸入的數(shù)據(jù)轉(zhuǎn)換為指定的格式,賦給scanf的二個參量(是地址1)所指定的內(nèi)存單元(可能一次使用多個)中。格式說明以“%”字符為標(biāo)志;②普通字符,是需要用戶在輸入時原樣輸入的字符。在本題中格式控制字符串為“%d,%d,%d”,表示按十進(jìn)制輸入三個數(shù)據(jù)。要求在輸入數(shù)據(jù)時,兩個數(shù)據(jù)間一定以一個逗號“,”作為問隔符。13、若有以下程序main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;if(c!=3);r+=3;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結(jié)果是A、7B、10C、6D、3標(biāo)準(zhǔn)答案:B知識點解析:程序代碼中有四條并列的if語句,第一條if表達(dá)式a!=1不成立,執(zhí)行else分支,r=1:第二條if表達(dá)式b==2成立,執(zhí)行r+=2,r=3;第三條if語句c!=3不成立,執(zhí)行語句r+=3,r=6;第四條if分支d==4成立,執(zhí)行該if分支語句,r+=4,r=10。14、有以下程序main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是A、2B、4C、1D、死循環(huán)標(biāo)準(zhǔn)答案:C知識點解析:在程序語句中,k的初始值為5,進(jìn)行第1次while循環(huán)后-k自減l為4,菲0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為1。15、若有定義語句:inta[2][3],*p[3];則以下語句中正確的是A、p[0]=&a[1][2];B、p[0]=a;C、p=a;D、p[1]=&a;標(biāo)準(zhǔn)答案:A知識點解析:定義語句“inta[2][3],*p[3];”定義了整型二維數(shù)組a[2][3]和指針數(shù)組p[3]。在C語言中,二維數(shù)組名也是一個存放地址常量的指針,其值為二維數(shù)組中第一行的地址。所以選項A中,把整型數(shù)組a[0]的指針賦給p[0]。16、有以下程序#includemain(){inta=7;while(a--);printf("%d\n",a);}程序運行后的輸出結(jié)果是()。A、-1B、0C、1D、7標(biāo)準(zhǔn)答案:A知識點解析:考查while循環(huán)語句。while(a--);的循環(huán)條件是若a值不為0,則循環(huán),每次判定循環(huán)條件的時候是選用a進(jìn)行判定,然后a自減1,再執(zhí)行循環(huán)體的空語句";",當(dāng)a=0的時候,循環(huán)條件不滿足,不再進(jìn)行循環(huán),a--后,a的值為-1,答案選A。17、以下程序的主函數(shù)中調(diào)用了其前面定義的fun函數(shù)#include<stdio.h>main(){doublea[15],k;k=fun(a);}則以下選項中錯誤的fun函數(shù)首部是A、doublefun(doublea[15])B、doublefun(double*a)C、doublefun(doublea[])D、doublefun(doublea)標(biāo)準(zhǔn)答案:D知識點解析:本題考查函數(shù)的定義和調(diào)用。根據(jù)對fun函數(shù)的調(diào)用可知,fun函數(shù)的返回值為double類型的,輸入?yún)?shù)是一個double類型的地址(指針),因此選項D)錯誤。18、程序中若有如下說明和定義語句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;}以下選項中對函數(shù)fun的正確調(diào)用語句是A、(*f1)(a);B、*f1(*s);C、fun(a);D、ch=*f1(s);標(biāo)準(zhǔn)答案:A知識點解析:本題主要考查函數(shù)調(diào)用和函數(shù)指針的使用。根據(jù)定義f1是一個函數(shù)指針,且指向fun函數(shù),因此可以使用函數(shù)指針來調(diào)用函數(shù)。使用函數(shù)指針調(diào)用函數(shù)的時候使用.運算符,即*f1和fun是一樣的,fun函數(shù)有參數(shù),通過f1調(diào)用fun函數(shù)寫法為:(*f1)(a),括號是必須的,這樣才能保證各部分正確結(jié)合。19、若有以下定義intx[10],*pt=x;則對x數(shù)組元素的正確引用是A、*(x+3)B、*&x[10]C、*(pt+10)D、pt+3標(biāo)準(zhǔn)答案:A知識點解析:本題考查指針的調(diào)用。x代表x[10]數(shù)組的首地址指針,pt是指向x[10]數(shù)組的首地址的指針,即兩者指向同一內(nèi)存單元。+(x+3)等同于x[3]。20、有下列程序:structS{intn;inta[20];};voidflint*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(s.a(chǎn),s.n);for(i=0;i<s.n;i++)printf("%d,",s.a(chǎn)[i]);}程序運行后的輸出結(jié)果是A、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知識點解析:void{(int*aintn)函數(shù)的功能是對數(shù)組a[]的每一個元素加上其下標(biāo)的值。所以在main()函數(shù)中f(s,a,s,n)語句會調(diào)用f(int*a,intn)函數(shù),此時指針a指向數(shù)組s.a(chǎn)={2,3,1,6,8,7,5,4,10,9),n=10;然后執(zhí)行for(i=0;i<n-1;i++)a[i]+=i;語句,也就是從0開始到8對數(shù)組S.a(chǎn)={2,3,1,6,8,7,5,4,10,9}中的每一個元素加上其下標(biāo)值。21、有以下程序#include<stdio.h>#include<string.h>voidfun(chars[][10],intn){chart;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(s[i][0]>s[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]);}程序的運行結(jié)果是A、aaaacc,xyB、bcc,aabccC、xy,aaaaccD、aabcc,bcc標(biāo)準(zhǔn)答案:C知識點解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語句,比較二維字符數(shù)組s[][10]的每個字符串的首字符大小,如果前一個字符串首字符大于后一個字符串的首字符,則交換這兩個字符串的首字符。在主函數(shù)中,語句fun(ss,5)的作用是對二維字符數(shù)組ss[5][10]的5個字符串的首字符進(jìn)行從小到大的排序,不影響各個字符串另外的字符。所以排序結(jié)束后,5個字符串的第一個字符依次變?yōu)閍、a、b、b和x;最后輸出第1個和第4個字符串。22、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的??梢杂脕硎占嬎銠C(jī)存儲空間中所有空閑的存儲結(jié)點,是線性表。在單鏈表中的結(jié)點中增加一個指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個結(jié)點中含有兩個指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對表的鏈接方式稍做改變,使得對表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹的物理實現(xiàn),是一種存儲結(jié)構(gòu),不屬于線性結(jié)構(gòu)。答案為A選項。23、結(jié)構(gòu)化程序設(shè)計的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A)。24、由以下while構(gòu)成的循環(huán),循環(huán)體執(zhí)行的次數(shù)是intk=0;while(k=1)k++;A、有語法錯,不能執(zhí)行B、一次也不執(zhí)行C、執(zhí)行一次D、無限次標(biāo)準(zhǔn)答案:D知識點解析:本題考察while語句,while語句的語義是:計算表達(dá)式的值,當(dāng)值為真(非0)時,執(zhí)行循環(huán)體語句。k=1為賦值語句,即k的值等于1。while(k=1)=while(1),是死循環(huán),執(zhí)行無限次。因此A選項正確。25、數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是A、內(nèi)模式B、概念模式C、外模式D、設(shè)計模式標(biāo)準(zhǔn)答案:C知識點解析:數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C)。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。國家二級C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列關(guān)于棧的敘述中正確的是()。A、棧按“先進(jìn)先出”組織數(shù)據(jù)B、棧按“先進(jìn)后出”組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識點解析:棧是只允許在棧頂進(jìn)行插入和刪除運算的線性表,按“先進(jìn)后出”組織數(shù)據(jù)。2、下列敘述中正確的是A、算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B、算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量C、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的D、算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)標(biāo)準(zhǔn)答案:B知識點解析:算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量。算法的工作量用算法所執(zhí)行的基本運算的次數(shù)來度量,而算法所執(zhí)行的基本運算次數(shù)是問題規(guī)模的函數(shù):算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。算法的時間復(fù)雜度與空間復(fù)雜度并不相關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它是從邏輯上描述數(shù)據(jù)元素之間的關(guān)系,是獨立于計算機(jī)的;數(shù)據(jù)的存儲結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計算機(jī)中表示,它們并非一一對應(yīng)。算法的執(zhí)行效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)。3、以下敘述中正確的是A、C語言程序總是從最前面的函數(shù)開始執(zhí)行B、C語言程序總是從main函數(shù)開始執(zhí)行C、C語言程序中main函數(shù)必須放在程序的開始位置D、C語言程序所調(diào)用的函數(shù)必須放在main函數(shù)的前面標(biāo)準(zhǔn)答案:B知識點解析:C語言中一個源程序都有一個且只能有一個main函數(shù),即主函數(shù);C語言規(guī)定必須用main作為主函數(shù)名。其后的一對圓括號中可以是空的,但不能省略。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個程序都必須有一個且只能有一個主函數(shù)。一個C程序總是從主函數(shù)開始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個程序中的位置如何。而調(diào)用函數(shù)的定義位置和調(diào)用沒有直接關(guān)系。4、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是A、順序存儲的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表標(biāo)準(zhǔn)答案:A知識點解析:二分法查找只適應(yīng)于順序存儲的有序表。有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。5、有以下程序main(){charc1,c2;c1=’A’+’8’一’4’:c2=’A’+’8’一’5’:Printf("%C,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出結(jié)果是A、D,,69B、E,68C、E,DD、輸出無定值標(biāo)準(zhǔn)答案:B知識點解析:字符變量c1的ASCII值等于69,而字符變量c2的ASCII值等于68,當(dāng)分別以字符和整型輸出c1和c2的ASCII碼值時,其結(jié)果為E,68。6、軟件調(diào)試的目的是A、發(fā)現(xiàn)錯誤B、改正錯誤C、改善軟件的性能D、驗證軟件的正確性標(biāo)準(zhǔn)答案:B知識點解析:軟件調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試活動由兩部分組成,一是根據(jù)錯誤的跡象確定程序中的錯誤的確切性質(zhì)、原因和位置。二是對程序進(jìn)行修改,排除這個錯誤。7、設(shè)二叉樹的前序序列為ABDEGHCFIJ,中序序列為DBGEHACIFJ。則按層次輸出(從上到下,同一層從左到右)的序列為A、ABCDEFGHIJB、DGHEBIJFCAC、JIHGFEDCBAD、GHIJDEFBCA標(biāo)準(zhǔn)答案:A知識點解析:前序遍歷中,第一個字母是根結(jié)點,也就是A是根結(jié)點;在中序遍歷中,根結(jié)點前面的是左子樹、后面的是右子樹。前序中,B在A的后面,中序中在左子樹中,可知B為A的左結(jié)點。中序中D在B的前面,前序中在B的后面,可知D為B的左結(jié)點,GEH為B的右子樹。前序中順序為EGH,由此可知,E為B的右結(jié)點,G為E的左結(jié)點、H為E的右結(jié)點。右子樹中,前序中C在最前,因為右子樹根結(jié)點,也就是A的右結(jié)點,根據(jù)前序中的子樹FIJ和中序中的IFJ子樹可知F為C的右結(jié)點,I為F的左結(jié)點、J為F的右結(jié)點。由此可畫出這個二叉樹,然后根據(jù)二叉樹8、以下程序的輸出結(jié)果是()。#include#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)main(){intx=2;P(F(5)*x);}A、12B、13C、14D、16標(biāo)準(zhǔn)答案:A知識點解析:本題考查帶參數(shù)的宏定義及相關(guān)運算。“P(F(5)*x)-P(2.84+5*2)=P(12.84)”,調(diào)用“w(12.84)”,輸出“(int)(12.84)=12”。9、若有定義:doublea=22;inti=0,k=18;則不符合C語言規(guī)定的賦值語句是()。A、i=a%11;B、i=(a+k)<=(i+k);C、a=a++,i++;D、i=!a;標(biāo)準(zhǔn)答案:A知識點解析:考查運算符與表達(dá)式。求余運算符’%’要求參與運算的量均為整型,選項A)中的a為雙精度,不符合運算規(guī)則,所以答案選A)。10、有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));prinff("%d\n",m);}intf(intx){returnx*2;}程序的運行結(jié)果是()。A、8B、2C、4D、1標(biāo)準(zhǔn)答案:A知識點解析:第一次調(diào)用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8。11、計算機(jī)軟件包括A、算法和數(shù)據(jù)B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識點解析:軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運行、維護(hù)、使用等有關(guān)的文檔。12、在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于A、需求分析階段B、概念設(shè)計階段C、邏輯設(shè)計階段D、物理設(shè)計階段標(biāo)準(zhǔn)答案:A知識點解析:數(shù)據(jù)庫的設(shè)計階段包括需要分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計,其中將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯設(shè)計階段。13、有如下嵌套的if語句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是A、k=(a<b)?((bc)?b:c);B、k=(a<c)?b:c;C、k=(a<c)?a:c;D、k=(a<b)?((a<c)?a:c):((b<c)?b:c);標(biāo)準(zhǔn)答案:D知識點解析:嵌套的ifelse語句的含義是,在變量a的值小于變量b的值,同時,變量a的值小于變量c的值時,把變量a的值賦給變量k。在變量a的值小于變量b的值,同時,變量a的值大于等于變量c的值時,把變量c的值賦給變量k。在變量a的值大于等于變量b的值,同時,變量b的值小于變量c的值時,把變量b的值賦給變量k。在變量a的值大于等于變量b的值,同時,變量b的值大于等于變量c的值時,把變量c的值賦給變量k。14、一名雇員就職于一家公司,一個公司有多個雇員。則實體公司和實體雇員之間的聯(lián)系是A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:B知識點解析:一對多關(guān)系是關(guān)系數(shù)據(jù)庫中兩個表之間的一種關(guān)系,該關(guān)系中第一個表中的單個行可以與第二個表中的一個或多個行相關(guān),但第二個表中的一個行只可以與第一個表中的一個行相關(guān)。本題中一個公司有多個雇員,但一名雇員就職于一家公司,因此是一對多關(guān)系。15、s1和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句S;則以下選項中正確的是A、if(s1>s2)S;B、if(strcmp(s1,s2))S;C、if(strcmp(s2,s1)>0、1S;D、if(strcp(s1,s2)>0)S;標(biāo)準(zhǔn)答案:D知識點解析:字符串標(biāo)記使用strcmp函數(shù),該函數(shù)有兩個參數(shù)分別是需要比較大小的兩個字符串s1和s2,如果s1大于s2則返回值大于0,如果s1小于s2則返回值小于0,否則s1和s2相同返回0。題目要求s1大于s2時執(zhí)行語句S,因此strcmp(s1,s2)的返回值大于。時執(zhí)行S。16、有以下程序#includeintfun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]==’T’)n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)果是A、1B、2C、3D、0標(biāo)準(zhǔn)答案:B知識點解析:此程序是統(tǒng)計一周七天中英文名稱首字母為"T"的個數(shù)。P[i][0]是字符串的首字符,一共有兩個"T",所以n=2。因此B選項正確。17、設(shè)有定義charstr[]="Hello";則語句printf("%d%d",sizeof(str),strlen(str));的輸出結(jié)果是A、66B、65C、55D、56標(biāo)準(zhǔn)答案:B知識點解析:sizeof主要用于測試變量所占的實際內(nèi)存,而str1en函數(shù)主要測試字符串中實際字符的個數(shù),字符串"Hello"占有內(nèi)存6個字節(jié),而字符串中共有5個字符。18、以下關(guān)于宏的敘述中正確的是A、宏定義必須位于源程序中所有語句之前B、宏名必須用大寫字母表示C、宏調(diào)用比函數(shù)調(diào)用耗費時間D、宏替換沒有數(shù)據(jù)類型限制標(biāo)準(zhǔn)答案:D知識點解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替換兩類。使用宏時應(yīng)注意以下幾點:①宏定義僅僅是符號替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。19、下列選項中,能正確定義數(shù)組的語句是A、intnum[];B、intN=2008;intnum[N];C、intnum[0..2008];D、#defineN2008inthum[N];標(biāo)準(zhǔn)答案:D知識點解析:在定義一維數(shù)組時,數(shù)組的下標(biāo)應(yīng)該是一個確定的整數(shù)值。要注意的是在定義二維數(shù)組時,其第一維下標(biāo)可以省略,但第二維下標(biāo)不能省略。20、有以下程序#inelude#defineN4voidfun(inta[][N],intb[]){inti:for(i=0;i<N;i++)b[i]=a[i][i];}main(){intx[][N]={{1,2,3),{4),{5,6,7,8),{9,10)},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序的運行結(jié)果是A、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ù)fun(inta[][N],intb[])的功能是把矩陣a[N][N]主對角線上的元素賦給一維數(shù)組b[]。在主函數(shù)中由x[][N]的初始化可知,其主對角線上的元素是1,0,7,0。所以當(dāng)執(zhí)行完函數(shù)fun(x,y)后,一維數(shù)組元素y[]中的元素值為1,0,7,0。21、以下程序的功能是:通過調(diào)用calc函數(shù),把所求得的兩數(shù)之和值放入變量add中,并在主函數(shù)中輸出。#includevoidcalc(floatx,floaty,float*sum){________=x+y;}main(){floatx,y,add;scanf("%f%f",&x,&y);calc(x,y,&add);printf("x+y=%f\n",add);}calc函數(shù)中下劃線處應(yīng)填入的是()。A、*sumB、sumC、&sumD、add標(biāo)準(zhǔn)答案:A知識點解析:sum為一個指針變量,所以要將x、y的和賦值給sum指向的變量,需要使用取值運算符*,答案選A。22、以下敘述中錯誤的是A、函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型B、只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值C、可以通過指針變量來訪問結(jié)構(gòu)體變量的任何成員D、函數(shù)可以返回指向結(jié)構(gòu)體變量的指針標(biāo)準(zhǔn)答案:A知識點解析:函數(shù)的返回值類型可以是結(jié)構(gòu)體類型。結(jié)構(gòu)體變量之間可以相互復(fù)制。23、有以下程序#includemain(){chara=4;printf("%d\n",a=a<<1);}程序的運行結(jié)果是()。A、8B、16C、40D、4標(biāo)準(zhǔn)答案:A知識點解析:左移運算符"<<"的運算規(guī)則是把左邊運算數(shù)的各二進(jìn)制位全部左移n位,n取決于"<<"右邊的數(shù)值,高位丟棄,低位補(bǔ)0。字符變量a的ASCII碼值為4,對應(yīng)二進(jìn)制數(shù)值為0100,左移1位后值為1000,對應(yīng)十進(jìn)制數(shù)值為8,所以輸出結(jié)果為8,答案選A。24、有以下程序charfun(char*c){if(*c<=’Z’&&*c>=’A’)*c-=’A’-’a’;return*c;}main(){chars[81],*p=s;gets(s);while(*p){*p=fun(p);putchar(*p);p++;}printf("\n");}若運行時從鍵盤上輸入OPENTHEDOOR,程序的輸出結(jié)果是A、oPENtHEdOORB、openthedoorC、OPENTHEDOORD、OpenTheDoor標(biāo)準(zhǔn)答案:B知識點解析:函數(shù)fun的主要功能是判斷字符是否為大寫字符,如果是則轉(zhuǎn)換為小寫字符,主函數(shù)讀入大寫字符串,轉(zhuǎn)換成小寫。25、設(shè)有以下函數(shù):voidfun(intn,char*s){…},則下列對函數(shù)指針的定義和賦值均正確的是()。A、void(*pf)(int,char);pf=&fun;B、void*pf();pf=fun;C、void*pf();*pf=fun;D、void(*pf)(int,char*);pf=fun;標(biāo)準(zhǔn)答案:D知識點解析:函數(shù)的參數(shù)可以是指針類型,它的作用是將一個變量的地址傳送到另一個函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為“void(*pf)();”。如果定義為“void*pf();”,則表示函數(shù)pf的返回值是一個基類型為void的指針。故本題答案為D選項。國家二級C語言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共40題,每題1.0分,共40分。)1、設(shè)數(shù)據(jù)結(jié)構(gòu)B=(D,R),其中D={a,b,c,d,e,f}R={(f,8),(d,b),(e,d),(e,e),(a,c)}該數(shù)據(jù)結(jié)構(gòu)為()。A、線性結(jié)構(gòu)B、循環(huán)隊列C、循環(huán)鏈表D、非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識點解析:數(shù)據(jù)的邏輯結(jié)構(gòu)有兩個要素:一是數(shù)據(jù)元素的集合,通常記為D;二是D上的關(guān)系,它反映了D中各數(shù)據(jù)元素之間的前后件關(guān)系,通常記為R。即一個數(shù)據(jù)結(jié)構(gòu)可以表示成B=(D,R)。其中B表示數(shù)據(jù)結(jié)構(gòu)。為了反映D中各數(shù)據(jù)元素之間的前后件關(guān)系,一般用二元組來表示。例如,假設(shè)a與b是D中的兩個數(shù)據(jù),則二元組(a,b)表示a是b的前件,b是a的后件。本題中R中的根結(jié)點為f,元素順序為f→a→c→e→d→b,滿足線性結(jié)構(gòu)的條件。2、下列敘述中正確的是()。A、能采用順序存儲的必定是線性結(jié)構(gòu)B、所有的線性結(jié)構(gòu)都可以采用順序存儲結(jié)構(gòu)C、具有兩個以上指針的鏈表必定是非線性結(jié)構(gòu)D、循環(huán)隊列是隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點解析:所有的線性結(jié)構(gòu)都可以用數(shù)組保存,即都可以采用順序存儲結(jié)構(gòu)。而反過來不可以,完全二叉樹也能用數(shù)組保存(按層次依次存放到數(shù)據(jù)元素中),但完全二叉樹不屬于非線性結(jié)構(gòu)。雙向鏈表具有兩個以上的指針,但屬于線性結(jié)構(gòu)。循環(huán)隊列是隊列的順序存儲結(jié)構(gòu)。3、下列對隊列的描述中正確的是A、隊列屬于非線性表B、隊列按“先進(jìn)后出”原則組織數(shù)據(jù)C、隊列在隊尾刪除數(shù)據(jù)D、隊列按“先進(jìn)先出”原則組織數(shù)據(jù)標(biāo)準(zhǔn)答案:D知識點解析:隊列(queue)是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表。允許插入的一端稱為隊尾;允許刪除的一端稱為隊頭。在隊列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除;反之,最后插入的元素將最后才能被刪除。因此,隊列又稱“先進(jìn)先出”或“后進(jìn)后出”的線性表。4、數(shù)據(jù)的存儲結(jié)構(gòu)是指()。A、存儲在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲空間量C、數(shù)據(jù)在計算機(jī)中的順序存儲方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示標(biāo)準(zhǔn)答案:D知識點解析:在對數(shù)據(jù)進(jìn)行處理時各數(shù)據(jù)元素在計算機(jī)中的存儲關(guān)系,即為數(shù)據(jù)的存儲結(jié)構(gòu)。5、下列敘述中正確的是A、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間一般要少于順序存儲結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)的存儲空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間可以是連續(xù)的,也可以是不連續(xù)的D、以上都不正確標(biāo)準(zhǔn)答案:C知識點解析:線性表的存儲分為順序存儲和鏈?zhǔn)酱鎯?。在順序存儲中,所有元素所占的存儲空間是連續(xù)的。而在鏈?zhǔn)酱鎯Φ姆绞街?,將存儲空間的每一個存儲結(jié)點分為兩部分,一部分用于存儲數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲下一個元素的存儲序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯Ψ绞奖软樞虼鎯Ψ绞降拇鎯臻g要大一些。6、下列定義變量的語句中錯誤的是A、floatUS$;B、doubleint_;C、charFor;D、int_int;標(biāo)準(zhǔn)答案:A知識點解析:C語言規(guī)定,變量的標(biāo)識符只能由字*、數(shù)字或下劃線3種字符組成,且首字符必須為字*或下劃線。在C語言中大寫字*和小寫字*被認(rèn)為是兩個不同的字符。選項B定義的變量標(biāo)識符int和選項D定義的變量標(biāo)識符int與C語言的關(guān)鍵字int是不同的,是正確的變量標(biāo)識。選項C定義的變量標(biāo)識符For與C語言中的關(guān)鍵字for是兩個不同的標(biāo)識符,而在選項A包含有特殊字符$,因而其不符合C語言的變量命名規(guī)定。7、一般情況下,當(dāng)對關(guān)系R和S進(jìn)行自然連接時,要求R和S含有一個或者多個共有的()。A、記錄B、行C、屬性D、元組標(biāo)準(zhǔn)答案:C知識點解析:自然連接是一種特殊的等值連接,它滿足下面的條件:①兩關(guān)系間有公共域;②通過公共域的等值進(jìn)行連接,故C選項正確。8、在面向?qū)ο蠓椒ㄖ校瑢崿F(xiàn)信息隱蔽是依靠()。A、對象的繼承B、對象的多態(tài)C、對象的封裝D、對象的分類標(biāo)準(zhǔn)答案:C知識點解析:對象的封裝性是指從外部看只能看到對象的外部特征,即只需知道數(shù)據(jù)的取值范圍和可以對該數(shù)據(jù)施加的操作。而不需要知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法。對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的。從外面不能直接使用對象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對象的內(nèi)部狀態(tài)只能由其自身改變。9、下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是A、可封裝B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識點解析:結(jié)構(gòu)化設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用GOTO語句。10、有以下稗宇:#includemain(){inta=1,b=2,c=3,x;x=(a^b.&c:printf(“%d\n”,x);}程序的運行結(jié)果是()。A、3B、1C、2D、0標(biāo)準(zhǔn)答案:A知識點解析:本題考查位運算符以及相關(guān)運算。^為按位或,&為按位與,那么a^b為3,再與c按位與仍然為3,所以答案為A選項。11、程序流程圖中帶有箭頭的線段表示的是A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識點解析:程序流程圖是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計工具,通常也稱為程序框圖。其中,用帶箭頭的線段表示控制流,用柜形表示加工步驟,用菱形表示邏輯條件。12、與數(shù)學(xué)表達(dá)式x≥y≥z對應(yīng)的C語言表達(dá)式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)‖(y>=x)標(biāo)準(zhǔn)答案:B知識點解析:若要表示x大于等于y,同時y大于等于z,需要用邏輯與表達(dá)式連接。13、有以下程序main(){inta=2,c=5;printf("a=%%d,b=%%d\

溫馨提示

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

評論

0/150

提交評論