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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷44(共9套)(共270題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下敘述中錯(cuò)誤的是A、C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B、所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行C、C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行D、C程序中字符變量存放的是字符的ASCII值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:計(jì)算機(jī)程序都是編譯為二進(jìn)制的代碼,計(jì)算機(jī)才會(huì)執(zhí)行。2、下列敘述中正確的是A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的,元素的動(dòng)態(tài)變化也是通過(guò)隊(duì)頭指針和隊(duì)尾指針來(lái)反映的。3、一棵二叉樹中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為A、219B、221C、229D、231標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在二叉樹中,葉子結(jié)點(diǎn)個(gè)數(shù)為n0,則度為2的結(jié)點(diǎn)數(shù)n2=n0-1。本題中葉子結(jié)點(diǎn)的個(gè)數(shù)為70,所以度為2的結(jié)點(diǎn)個(gè)數(shù)為69,因而總結(jié)點(diǎn)數(shù)=葉子結(jié)點(diǎn)數(shù)+度為1的結(jié)點(diǎn)數(shù)+度為2的結(jié)點(diǎn)數(shù)=70+80+69=219。4、下列關(guān)于軟件工程的描述中正確的是A、軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題B、軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題C、軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過(guò)程中需要應(yīng)用工程化原則D、軟件工程只是解決軟件開發(fā)中的技術(shù)問(wèn)題標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件工程是建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。軟件工程主要思想是強(qiáng)調(diào)在軟件開發(fā)過(guò)程中需要應(yīng)用工程化原則。5、若實(shí)體A和B是一對(duì)多的聯(lián)系,實(shí)體B和C是一對(duì)一的聯(lián)系,則實(shí)體A和C的聯(lián)系是A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于B和C有一一對(duì)應(yīng)的聯(lián)系,而A和B只間有一對(duì)多的聯(lián)系,則通過(guò)關(guān)系之間的傳遞,則A和C之間也是一對(duì)多的聯(lián)系。6、設(shè)順序表的長(zhǎng)度為40,對(duì)該表進(jìn)行冒泡排序。在最壞情況下需要的比較次數(shù)為A、780B、820C、40D、41標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:冒泡排序(BubbleSort),是一種計(jì)算機(jī)科學(xué)領(lǐng)域的較簡(jiǎn)單的排序算法。冒泡排序算法的運(yùn)作如下:比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換它們兩個(gè);對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù);針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè);持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。冒泡排序的最壞時(shí)間復(fù)雜度為(n*(n-1))/2=780。7、39.有以下定義:inta;longb;doublex,y;則以下選項(xiàng)中正確的表達(dá)式是()。A、a%(int)(x一y)B、a=x<>yC、(a*y)%bD、y=x+y=x標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B中<>運(yùn)算符不存在,選項(xiàng)C中double類型不能進(jìn)行余(%)操作,要求兩個(gè)運(yùn)算數(shù)必須是整數(shù),選項(xiàng)D中x+y=x錯(cuò)誤。8、在軟件開發(fā)中,需求分析階段可以使用的工具是A、N-S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在軟件開發(fā)中,需求分析階段常使用的工具有數(shù)據(jù)流圖(DFD),數(shù)據(jù)字典(DD)、判斷樹和判斷表。9、設(shè)已有定義floatx;,則下列對(duì)指針變量p進(jìn)行定義且賦初值的語(yǔ)句中正確的是()。A、int*p=(float)x;B、float*p=&x;C、floatp=&x;D、float*p=1024;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:指針是用來(lái)存放地址的變量,用(類型名*指針變量名)的形式定義。賦值時(shí)應(yīng)將某個(gè)變量地址即&x賦給指針變量,所以選擇B。10、有以下程序#includemain(){intk:4,m=1,p:fun(inta,intb){intstaticm=0,i=2;p=fun(k,m);i=i+m+1;printf("0%d,",p);m=i+a+b;p=fun(k,m);returnm;}printf("%d\n",p);}程序運(yùn)行后的輸出結(jié)果是A、8,17B、7,16C、8,8D、7,17標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查了靜態(tài)變量以及局部變量的同名問(wèn)題。主函數(shù)中調(diào)用fun函數(shù)兩次,第一次調(diào)用fun(4,1),形參a和b接收以后,i值為3,m的值為8,調(diào)用結(jié)束返回8存放到p中并且輸出p的值為8,除了靜態(tài)變量m和i,變量a,b撤銷。第二次調(diào)用fun(4,1),接收實(shí)參值以后,i為3+8+1,而m為12+4+1,即輸出函數(shù)值17。11、有以下程序#includemain(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是A、輸出字符C的ASCII碼B、輸出字符CC、輸出字符a的ASCII碼D、程序出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)樽址麛?shù)組s[]的數(shù)組名s表示的是一個(gè)地址常量。所以語(yǔ)句“s+=2;”不能將指針存當(dāng)前化置的基礎(chǔ)上再向后移動(dòng)兩位。因而程序編譯時(shí)出錯(cuò)。12、有以下程序段charname[20];intnum;scanf("name=%snum=%d",name,&nurn);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=1001后,name的值為A、name=LiliB、Lilinum=C、name=Lilinum=1001D、Lili標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在題目中以字符串的形式給字符數(shù)組賦值,所以字符數(shù)組name的值為L(zhǎng)ili。13、已知字符’A’的ASCII代碼值是65,字符變量c1的值是’A’,c2的值是’D’。則執(zhí)行語(yǔ)句printf("%d,%d",c1,c2-2);的輸出結(jié)果是A、A,68B、A,BC、65,66D、65,68標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符常量在內(nèi)存中占一個(gè)字節(jié),存放的是字符的ASCII碼值。所有的字符常量都作為整型量來(lái)處理。在本題中輸出語(yǔ)句用整型格式輸出字符時(shí),輸出的是其ASCII碼值。因?yàn)樽址疉’和’D’的ASCII碼值分別為65和68,所以c2-2=68-2=66。14、若有以下程序,則程序的輸出結(jié)果是#include<stdio.h>main(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%dha",c1,c2);}A、H9B、H’9’C、F’9’D、表達(dá)式不合法輸出無(wú)定值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符常量允許進(jìn)行簡(jiǎn)單的算術(shù)運(yùn)算,則’C’+5表示H,而’9’-’0’則表示數(shù)值9。15、有以下計(jì)算公式若程序前面已經(jīng)在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是A、y=sqrt(x);if(x<0)y=sqrt(-x);B、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語(yǔ)句表達(dá)了計(jì)算公式的含義;選項(xiàng)C用兩個(gè)if語(yǔ)句表達(dá)了計(jì)算公式的含義;選項(xiàng)D在求平方根函數(shù)的后面用x≥0?x:-x條件表達(dá)式來(lái)表達(dá)了計(jì)算公式的含義。選項(xiàng)A沒(méi)有用C語(yǔ)言語(yǔ)句正確的表達(dá)計(jì)算公式的含義。16、以下程序段中,不能實(shí)現(xiàn)條件"如果aA、if(aB、if(aC、x=-10;if(aD、x=(a>=b)?-10:10;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題目的意思若a=b,x=-10,選項(xiàng)A)少考慮了a==b的情況。答案選A)。17、若fp已定義為指向某文件的指針,且沒(méi)有讀到該文件的末尾,則C語(yǔ)言函數(shù)feof(fp)的函數(shù)返回值是A、0B、非0C、-1D、EOF標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:feof用來(lái)判斷文件是否結(jié)束。如果遇到文件結(jié)束,函數(shù)feof(fb)的值為1,否則為0。18、若以下選項(xiàng)中變量全部為整型變量,且己正確定義并賦值,則語(yǔ)法正確的switch語(yǔ)句是A、switch(a+b){case1:case3:y=a+b;break;case0:case4:y=a-b;}B、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}C、switch(a+9){casec1:y=a-b;casec2:y=a+b;}D、switcha*b{case10:x=a+b;default:y=a-b;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch的使用。選項(xiàng)A)中的case0和case4沒(méi)有break語(yǔ)句:選項(xiàng)B)正確;選項(xiàng)C)中的case后面不是常量,錯(cuò)誤;選項(xiàng)D)中switch后面沒(méi)有括號(hào)。19、以下與函數(shù)fseek(fp,OL,SEEK_SET)有相同作用的是A、feof(fp)B、ftell(fp)C、fgetc(fp)D、rewind(fp)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查文件系IO函數(shù)的使用,fseek函數(shù)用于設(shè)置文件指針的位置,feof函數(shù)用于判斷是否已經(jīng)到了文件結(jié)束,ftell函數(shù)返回文件指針的當(dāng)前位置,fgetc從文件讀取一個(gè)字符,rewind函數(shù)將文件指針重新指向文件開始。題目當(dāng)中fseek(fp,OL,SEEK_SET)表示把文件指針移動(dòng)到文件的開始位置0,和rcwind函數(shù)功能一致。20、有以下程序#includeintfun(inta,intb){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z-);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是A、15B、21C、20D、31標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查了函數(shù)的調(diào)用,函數(shù)fun功能為求兩個(gè)數(shù)據(jù)的和。主函數(shù)中表達(dá)式r=fun(fun(x,y),z--),首先計(jì)算內(nèi)層調(diào)用fun(x,y),計(jì)算結(jié)果為13,然后外層調(diào)用fun(13,8),結(jié)果為21。21、以下敘述中正確的是A、語(yǔ)句“charstr[10]="string!";”和“charstr[10]={"string!"};”并不等價(jià)B、對(duì)于一維字符數(shù)組,不能使用字符串常量來(lái)賦初值C、對(duì)于字符串常量“string!”,系統(tǒng)已自動(dòng)在最后加入了“’\0’”字符,表示串結(jié)尾D、在語(yǔ)句charstr[]="string!";中,數(shù)組str的大小等于字符串的長(zhǎng)度標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,可以借助在定義時(shí)初始化以及輸入來(lái)把字符串存入數(shù)組,并規(guī)定以字符’\0’作為“字符串結(jié)束標(biāo)志”?!?’是一個(gè)轉(zhuǎn)義字符,稱為空值,它的ASCII碼值為0?!?’作為標(biāo)志占用存儲(chǔ)空間,但不計(jì)入字符串的實(shí)際長(zhǎng)度。在C語(yǔ)言中,系統(tǒng)在每個(gè)字符串的最后自動(dòng)加入一個(gè)字符(’\0’)作為字符串的結(jié)束標(biāo)志。22、有以下程序段structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式的值為11的是A、pt->xB、*pt->yC、++pt->xD、(pt++)->x標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由題目的已知條件可知,pt指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c[0],所以pt->x=10,執(zhí)行自加運(yùn)算后為11。23、有以下程序#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a(chǎn),a.b,a.c);}voidf(structAt){t.a(chǎn)=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運(yùn)行后的輸出結(jié)果是A、1002,ChangRong,1202.0B、1001,ChangRong,1098.0C、1001,ZhangDa,1098.0D、1002,ZhangDa,1202.0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查是的函數(shù)調(diào)用時(shí)參數(shù)之間的傳遞問(wèn)題。在C語(yǔ)言中參數(shù)之間的傳遞是傳值,也就是把實(shí)參的值復(fù)制一份傳遞給形參,而實(shí)參的值不發(fā)生變化。所以對(duì)于本題來(lái)說(shuō),在主函數(shù)中執(zhí)行f(a),把結(jié)構(gòu)體變量a的值復(fù)制一份傳遞給形參變量t,而實(shí)參變量a的值保持不變。24、有以下程序structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a(chǎn),a.b,a.c);}voidf(structAt){t.a(chǎn)=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運(yùn)行后的輸出結(jié)果是A、1002,ChangRong,1202.0B、1001,ZhangDa,1098.0C、1001,ChangRong,1098.0D、1002,ZhangDa,1202.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義結(jié)構(gòu)體A的變量a,并對(duì)其賦初值,再調(diào)用函數(shù)f(a),形參t接收實(shí)參的數(shù)據(jù),在函數(shù)f(t)中對(duì)結(jié)構(gòu)體變量t的各個(gè)成員進(jìn)行了賦值操作,需要注意的,形參和實(shí)參之間是數(shù)據(jù)傳遞,因此對(duì)形參的操作對(duì)實(shí)參不產(chǎn)生影響,因此在主函數(shù)輸出仍然輸出變量a的數(shù)據(jù)25、有以下程序#include<stdio.h>#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){printf("%d\n",NUM);}程序運(yùn)行后的輸出結(jié)果是A、4B、8C、9D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:宏展開以后NUM為(2+1+1)*2+1/2,計(jì)算以后值為8。注意在進(jìn)行宏展開的時(shí)候,千萬(wàn)不要試圖計(jì)算,展開以后再進(jìn)行計(jì)算。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、某完全二叉樹按層次輸出(同一層從左到右)的序列為ABCDEFGH。該完全二叉樹的前序序列為()。A、ABCDEFGHB、ABDHECFGC、HDBEAFCGD、HDEBFGCA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:完全二叉樹的特點(diǎn)是除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。根據(jù)這一特點(diǎn),再根據(jù)題意輸出序列為ABCDEFGH,可以得到該二叉樹的結(jié)構(gòu)如下:故此完全二叉樹的前序序列為ABDHECFG。2、有如下程序:#includevoidmain()}intX=0x13;if(x=0x18)prinff(“T”);prinff(“F\n”);}程序運(yùn)行后的結(jié)果是()。A、TFB、TC、FD、TFT標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:x=Oxl8為賦值表達(dá)式,十六進(jìn)制數(shù)Oxl8非0,if條件成立輸出T,之后再輸出F與回車符。程序運(yùn)行后的輸出結(jié)果是TF。3、某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:該系統(tǒng)總體結(jié)構(gòu)圖的深度是A、7B、6C、3D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這個(gè)系統(tǒng)總體結(jié)構(gòu)圖是一棵樹結(jié)構(gòu),在樹結(jié)構(gòu)中,根結(jié)點(diǎn)在第1層,同一層上所有子結(jié)點(diǎn)都在下一層,由系統(tǒng)總體結(jié)構(gòu)圖可知,這棵樹共3層。在樹結(jié)構(gòu)中,樹的最大層次稱為樹的深度。所以這棵樹的深度為3。4、某二叉樹有5個(gè)度為2的節(jié)點(diǎn),則該二叉樹中的葉子節(jié)點(diǎn)數(shù)是()。A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的節(jié)點(diǎn)(葉子節(jié)點(diǎn))總是比度為2的節(jié)點(diǎn)多一個(gè)。5、有以下程序段:inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;ease0:exit(0);}printf("%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()A、for循環(huán)語(yǔ)句固定執(zhí)行8次B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí),執(zhí)行“case0:exit(0)”這條語(yǔ)句,結(jié)束程序的運(yùn)行。6、冒泡排序在最壞情況下的比較次數(shù)是A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)過(guò)n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。7、下列敘述中正確的是A、循環(huán)隊(duì)列是順序存儲(chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列的插入運(yùn)算不會(huì)發(fā)生溢出現(xiàn)象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:循環(huán)隊(duì)列屬于隊(duì)列的特例和棧同屬于線性結(jié)構(gòu),所以選項(xiàng)C不正確。在順序隊(duì)列中,由于數(shù)組空間不夠而產(chǎn)生的溢出叫真溢出;順序隊(duì)列因多次入隊(duì)列和出隊(duì)列操作后出現(xiàn)的有存儲(chǔ)空間但不能進(jìn)行入隊(duì)列操作的溢出稱為假溢出;假溢出是由于隊(duì)尾rear的值和隊(duì)頭front的值不能由所定義數(shù)組下界值自動(dòng)轉(zhuǎn)為數(shù)組上界值而產(chǎn)生的,解決的辦法是把順序隊(duì)列所使用的存儲(chǔ)空間構(gòu)造成一個(gè)邏輯上首尾相連的循環(huán)隊(duì)列。因此,順序隊(duì)列通常都采用順序循環(huán)隊(duì)列結(jié)構(gòu);棧的存儲(chǔ)方式有順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ),故選項(xiàng)A正確,選項(xiàng)B不正確。循環(huán)隊(duì)列雖然能解決假溢出,卻不能解決在順序隊(duì)列中,由于數(shù)組空間不夠而產(chǎn)生的真溢出,故選項(xiàng)D不正確。8、以下程序的輸出結(jié)果是()。#includevoidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A、11,42,3112,22,41B、11,41,2012,42,20C、11,21,4011,21,21D、11,41,2112,42,22標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是函數(shù)參數(shù)的傳遞及自加運(yùn)算符。主函數(shù)中第一次調(diào)用函數(shù)“prt(&a,&b,&c);”,此函數(shù)中的輸出語(yǔ)句“printf("%d,%d,%d\n",++*x,++*y,*(z++));”使得a和b的值均加1,而“*(z++)”由于先執(zhí)行“z++”,所以c的值不變;第二次調(diào)用函數(shù)“prt(&a,&b,&c);”使得a和b在上一次的基礎(chǔ)上再各自加1(因?yàn)樾螀⒑蛯?shí)參進(jìn)行的是地址傳遞),而c的值仍不變。9、將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)系的屬性。10、若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語(yǔ)句是A、switch(a+b){case1:printf("*\n");case2+1:printf("**\n"):}B、switch((int)x);{case1:printf("*\n"):case2:printf("*"\n");}C、switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}D、switch(a+b){case1:pfintf("*\n");casec:pfintf("**\n");}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,switch()后一對(duì)圓括號(hào)中的可以是整犁表達(dá)式或字符表達(dá)式。case語(yǔ)句后面的常量表達(dá)式的類型必須與switch后圓括號(hào)中的表達(dá)式類犁相同,各case語(yǔ)句標(biāo)號(hào)的值應(yīng)該互不相同,選項(xiàng)B)中switch后括號(hào)表達(dá)式出錯(cuò),選項(xiàng)C)中case后面的常量類型不正確,選項(xiàng)D)中case后面出現(xiàn)了變量表達(dá)式,所以D)不正確。11、C語(yǔ)言程序的模塊化通過(guò)以下哪個(gè)選項(xiàng)來(lái)實(shí)現(xiàn)A、變量B、程序行C、函數(shù)D、語(yǔ)句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:用函數(shù)作為程序模塊以實(shí)現(xiàn)C程序的模塊化,程序有多個(gè)函數(shù)構(gòu)成,每個(gè)函數(shù)可以實(shí)現(xiàn)一個(gè)具體的功能,實(shí)現(xiàn)程序的模塊化設(shè)計(jì)。12、有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i.j++)m=m%j;printf(’’%d\n’’,m);}程序的運(yùn)行結(jié)果是A、0B、1C、2D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:存程序中,內(nèi)層循環(huán)判斷條件為”i<=i”而i的初值為3,故當(dāng)外層循環(huán)變量i的值為1和2時(shí),內(nèi)層循環(huán)體都不會(huì)被執(zhí)行。只有當(dāng)i和i都等于3時(shí)循環(huán)才會(huì)執(zhí)行一次。因?yàn)閙的值為55對(duì)3求余結(jié)果為1。13、關(guān)于C語(yǔ)言的符號(hào)常量,以下敘述中正確的是A、符號(hào)常量的符號(hào)名是標(biāo)識(shí)符,但必須大寫B(tài)、符號(hào)常量在整個(gè)程序中其值都不能再被重新定義C、符號(hào)常量是指在程序中通過(guò)宏定義用一個(gè)符號(hào)名來(lái)代表一個(gè)常量D、符號(hào)常量的符號(hào)名必須是常量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言程序中,用一個(gè)符號(hào)名來(lái)代表一個(gè)常量,稱為符號(hào)常量。注意:這個(gè)符號(hào)名必須在程序中進(jìn)行特別的“指定”,并符合標(biāo)識(shí)符的命名規(guī)則。一般在程序中都是利用宏定義來(lái)定義符號(hào)常量的,在代碼中可以利用under來(lái)結(jié)束符號(hào)常量的定義,然后進(jìn)行重新定義,符號(hào)常量的大小寫并沒(méi)有特別的規(guī)定,一般時(shí)候?yàn)榱撕妥兞繀^(qū)分利用大寫。14、C源程序中不能表示的數(shù)制是A、八進(jìn)制B、十進(jìn)制C、二進(jìn)制D、十六進(jìn)制標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言的源程序中,數(shù)值可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來(lái)表示。不用二進(jìn)制來(lái)表示。15、以下是if語(yǔ)句的基本形式:if(表達(dá)式)語(yǔ)句其中“表達(dá)式”A、必須是邏輯表達(dá)式B、必須是關(guān)系表達(dá)式C、必須是邏輯表達(dá)或關(guān)系表達(dá)D、可以是任意合法的表達(dá)式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查if語(yǔ)句,C語(yǔ)言中if語(yǔ)句中的表達(dá)式可以是任意合法的表達(dá)式。16、C語(yǔ)言程序中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是A、/B、%C、&&D、*標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:%要求參與運(yùn)算的運(yùn)算量為整型,其他三個(gè)運(yùn)算符對(duì)于參與運(yùn)算的運(yùn)算量沒(méi)有直接要求。17、第二范式是在第一范式的基礎(chǔ)上消除了A、多值依賴B、非主屬性對(duì)鍵的傳遞函數(shù)依賴C、主鍵值對(duì)鍵的部分函數(shù)依賴D、非主屬性對(duì)鍵的部分函數(shù)依賴標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第二范式實(shí)際上對(duì)關(guān)系增加了一約束,就是關(guān)系中的每一個(gè)屬性必須完全依賴于主碼,即在第一范式的基礎(chǔ)上,消除非主屬性對(duì)主碼的部分函數(shù)依賴可達(dá)到第二范式。所以選項(xiàng)D正確。18、關(guān)于do循環(huán)體while(條件表達(dá)式);以下敘述中正確的是A、循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次B、條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次C、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無(wú)關(guān)D、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:do…while語(yǔ)句先執(zhí)行語(yǔ)句,后判斷表達(dá)式的值。故do…Vwhile語(yǔ)句又稱“直到型”循環(huán)結(jié)構(gòu)。由于是先執(zhí)行后判斷,因此do…while語(yǔ)句的循環(huán)語(yǔ)句至少被執(zhí)行一次,循環(huán)條件至少判斷一次。19、以下敘述中正確的是()。A、C語(yǔ)言本身沒(méi)有提供對(duì)字符串進(jìn)行整體操作的運(yùn)算符B、函數(shù)調(diào)用strlen(s);會(huì)返回字符串s實(shí)際占用內(nèi)存的大?。ㄒ宰止?jié)為單位)C、兩個(gè)字符串可以用關(guān)系運(yùn)算符進(jìn)行大小比較D、當(dāng)拼接兩個(gè)字符串時(shí),結(jié)果字符串占用的內(nèi)存空間是兩個(gè)原串占用空間的和標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中沒(méi)有為字符串提供整體操作的運(yùn)算符,但是提供了相應(yīng)的字符串處理函數(shù)對(duì)字符串進(jìn)行處理,選項(xiàng)A)正確,選項(xiàng)C)錯(cuò)誤;strlen()函數(shù)的功能是計(jì)算字符串的實(shí)際長(zhǎng)度(不包含結(jié)束標(biāo)志),而字符串實(shí)際占用內(nèi)存會(huì)包含結(jié)束標(biāo)識(shí)符,選項(xiàng)B)錯(cuò)誤;每個(gè)字符串末尾都會(huì)有一個(gè)結(jié)束標(biāo)識(shí)符,但是拼接后只保留了一個(gè),計(jì)算字符串占用內(nèi)存時(shí)結(jié)束標(biāo)識(shí)符也會(huì)占用1個(gè)字節(jié),所以要小于兩個(gè)原串占用空間的和,選項(xiàng)D)錯(cuò)誤;答案選A)。20、以下敘述中正確的是A、使用typedef說(shuō)明新類型名時(shí),其格式是:typedef新類型名原類型名;B、使用typedef說(shuō)明新類型名時(shí),后面不能加分號(hào)C、在程序中,允許用typedef來(lái)說(shuō)明一種新的類型名D、在使用typedef改變?cè)愋偷拿Q后,只能使用新的類型名標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說(shuō)明一種新類型名。定義形式如下:typedef類型名標(biāo)識(shí)符;其中“類型名”必須是在此語(yǔ)句之前已定義的類型標(biāo)識(shí)符;“標(biāo)識(shí)符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名;typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來(lái)代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。21、C語(yǔ)言主要是借助以下哪種手段來(lái)實(shí)現(xiàn)程序模塊化A、定義函數(shù)B、定義常量和外部變量C、使用豐富的數(shù)據(jù)類型D、使用三種基本結(jié)構(gòu)語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言程序的模塊化通過(guò)函數(shù)來(lái)體現(xiàn),所以選擇A。22、下列關(guān)于棧的敘述正確的是A、棧按"先進(jìn)先出"組織數(shù)據(jù)B、棧按"先進(jìn)后出"組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按"先進(jìn)后出"的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進(jìn)行操作。23、在關(guān)系模型中,每一個(gè)二維表稱為一個(gè)A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系模型采用二維表來(lái)表示,即每個(gè)二維表稱為一個(gè)關(guān)系。24、以下定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。A、intnum[][3]={{1,2},3,4,5,6};B、intnum[2][4]={{1,2},{3,4},{5,6}};C、intnum[]={1,2,3,4,5,6};D、intnum[][4]={1,2,3,4,5,6};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:B選項(xiàng)中定義的數(shù)組為2行4列,而賦值時(shí)賦成了3行所以出錯(cuò)。25、有以下程序#include#includemain(){charp[20]={’a’,’b’,’c’,’d’},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序運(yùn)行后的輸出結(jié)果是A、11B、9C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:strcpy:字符串拷貝函數(shù);strlen:求字符串長(zhǎng)度函數(shù)(注意:不包含字符串結(jié)束標(biāo)記字符’\0’);strcat:字符串連接函數(shù)。執(zhí)行完語(yǔ)句strcat(p,r);后,p數(shù)組中存儲(chǔ)的元素為a,b,c,d,a,b,c,d,e;執(zhí)行語(yǔ)句strcpy(p+strlen(q),q);得到的結(jié)果是將q所指向的字符串拷貝至p+strlen(q)開始的存儲(chǔ)位置,因?yàn)閟trlen的值為3,即p+3開始存儲(chǔ)q中的元素。所以執(zhí)行完strcpy(p+strlen(q),q)語(yǔ)句后,字符數(shù)組p[20]的存儲(chǔ)元素為a,b,c,a,b,c;所以strlen(p)的結(jié)果為6。因此C選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列描述中正確的是A、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對(duì)應(yīng)的B、由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)C、程序設(shè)計(jì)語(yǔ)言中的數(shù)據(jù)一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。一般來(lái)說(shuō),一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。2、有以下程序:#includeintb=2;intfun(int*k){b=*k+b;return(b);}voidmain(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b;prinff(“%d”,b);}prinff(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A、1012B、810C、1028D、1016標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閎是全局變量,所以它的值在整個(gè)程序結(jié)束才會(huì)消失。for循環(huán)中,第一次循環(huán),i=2,a[2]=3,所以fun(&a[i]=3+2=5,b=5,所以b:fun(&a[i])+b=5+5=10;第二次循環(huán),b=10,然后fun(&a[i])代入a[3]=4,這時(shí)fun(&a[i]=10+4=14,所以b=fun(&a[i])+b=14+14=28。3、下列敘述中正確的是A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。4、設(shè)變量均已正確定義并賦值,以下與其他三組輸出結(jié)果不同的一組語(yǔ)句是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知識(shí)點(diǎn)解析:本題考查自增運(yùn)算符。++在前表示先自增然后使用,++在后面表示先使用然后自增。選項(xiàng)A中首先執(zhí)行x++,執(zhí)行完后x自增1,然后printf輸出的是x自增后的值;選項(xiàng)B首先執(zhí)行++x,x的值增加1,接著輸出x的值;選項(xiàng)C中++在x的后面,因此n的值是x自增前的值,printf輸出的是x自增前的值;選項(xiàng)D中++在x的前面,因此x首先自增,然后再賦值給n,n的值是x自增后的值,輸出的也是x自增后的值。5、下列敘述中正確的是A、所謂有序表是指在順序存儲(chǔ)空間內(nèi)連續(xù)存放的元素序列B、有序表只能順序存儲(chǔ)在連續(xù)的存儲(chǔ)空間內(nèi)C、有序表可以用鏈接存儲(chǔ)方式存儲(chǔ)在不連續(xù)的存儲(chǔ)空間內(nèi)D、任何存儲(chǔ)方式的有序表均能采用二分法進(jìn)行查找標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:有序表可以用順序存儲(chǔ)空間內(nèi)連續(xù)存放的元素序列來(lái)實(shí)現(xiàn),也可以用鏈接存儲(chǔ)方式存儲(chǔ)在不連續(xù)的存儲(chǔ)空間內(nèi),已達(dá)到邏輯上連續(xù),存儲(chǔ)空間上不一定連續(xù)的效果。二分法進(jìn)行查找只適用于順序存儲(chǔ)的有序表。故選項(xiàng)C正確。6、執(zhí)行以下程序段后,w的值為()。intw=’A’,x=14,y=15;w=((x‖y)&&(w<’a’));A、-1B、NULLC、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符變量w的初值為字符“’A’”,其ASCH碼值為65,字符“’at’”的ASCII碼值為97,所以關(guān)系表達(dá)式“w<’a’”的值為1:變量x=14,變量y=15,“x‖y”為或,x、y均為真,所以x‖y的結(jié)果1。因而邏輯表達(dá)式“(x‖y)&&(w<’a’)”的值為1。7、有以下程序main(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf(”%dkn”,pad);)程序的輸出結(jié)果是A、5B、7C、8D、6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:有逗號(hào)表達(dá)式構(gòu)成的語(yǔ)句:pAd=++sum,pAd++,++pad;主要從左到由連續(xù)運(yùn)算,因此pad的值為6。注意pad和pAd的是不同的變量。8、下列描述中正確的是A、程序就是軟件B、軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制C、軟件既是邏輯實(shí)體,又是物理實(shí)體D、軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件與硬件是計(jì)算機(jī)系統(tǒng)中相互依存的兩部分。計(jì)算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件由兩部分組成:一部分是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。軟件具有以下六個(gè)特點(diǎn):①軟件是一種邏輯實(shí)體,而不是物理實(shí)體,具有抽象性。②軟件的生產(chǎn)與硬件不同,它沒(méi)有明顯的制作過(guò)程。③軟件在運(yùn)行、使用期間不存在磨損、老化問(wèn)題。④軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移值的問(wèn)題。⑤軟件復(fù)雜性高,成本昂貴。⑥軟件的開發(fā)涉及諸多社會(huì)因素。9、表達(dá)式a+=a一=a=9的值是()。A、18B、一9C、0D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先計(jì)算a=9,然后計(jì)算a一=9,即a=a一9,結(jié)果為0,然后計(jì)算a+=0,即a=a+0,所以最終結(jié)果為0。10、若變量已正確定義,則語(yǔ)句S=32;s^=32;printf(“%d”,s);的輸出結(jié)果是()。A、一1B、0C、1D、32標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查邏輯異或運(yùn)算。異或運(yùn)算只有在兩個(gè)比較的位不同時(shí)其結(jié)果為1,否則結(jié)果為0,題目中兩個(gè)值相同,所以結(jié)果為0。11、表達(dá)式3.6-5/2+1.2+5%2的值是()。A、4.3B、4.8C、3.3D、3.8標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算5/2,結(jié)果取整數(shù)值2。計(jì)算3.6-2,結(jié)果與高精度數(shù)據(jù)保持一致,即為1.6。計(jì)算1.6+1.2,結(jié)果為2.8。計(jì)算5%2,結(jié)果為1。計(jì)算2.8+1結(jié)果為3.8。所以選擇D選項(xiàng)。12、有以下程序:#include<stdio.h>voidfun(char*a,char*b){while(*a==′*′)a++;while(*b=*a){b++;a++;}}main(){char*s=″*****a*b****″t[80];fun(s,t);puts(t);}程序的運(yùn)行結(jié)果是()。A、a*b****B、a*bC、*****a*bD、ab標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:注意兩個(gè)while,第一個(gè)是判斷相等“==”,第二個(gè)是賦值“=”,第一個(gè)循環(huán)終止的條件是指針指向的字符不為“*”,就會(huì)在遇到字符“a”時(shí)停止,第二個(gè)循環(huán)把a(bǔ)指針?biāo)傅膬?nèi)容依次賦給了b指針指向的內(nèi)容,直到字符串結(jié)束時(shí)終止。所以結(jié)果就是字符串的后半段,選項(xiàng)A正確。13、有以下程序#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;for(i=0;i<3;i++)for(j=2;j>=i;j--)t+=b[i][j];printf(’’%d\n’’,t);}程序運(yùn)行后的輸出結(jié)果是()。A、4B、3C、8D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這道題主要考查的是二維數(shù)組的有關(guān)知識(shí)。在兩層for循環(huán)語(yǔ)句中,累加上三角元素,所以程序執(zhí)行的過(guò)程為“t=-b[0][0]+b[0][1]+b[0][2]+b[1][1]+b[1][2]+b[2][2]=8”。14、執(zhí)行以下語(yǔ)句段后,xy的值是()。int*pt,xy;xy=200;pt=&xy;xy=*pt+30;A、200B、170C、260D、230標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針的運(yùn)用。通過(guò)pt=&xy,將pt指向xy所占的內(nèi)存地址,而*pt是指針pt所指向內(nèi)存單元中的內(nèi)容,即200,所以最后xy的值為230。15、以下選項(xiàng)中,不合法的C語(yǔ)言用戶標(biāo)識(shí)符是()。A、a--bB、AaBcC、a_bD、_1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查用戶標(biāo)識(shí)符的命名規(guī)則。合法的標(biāo)識(shí)符由字母、數(shù)字、下劃線組成并且第一個(gè)字符不能為數(shù)字,由此選項(xiàng)A)不合法。答案選A)。16、若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是A、main(){……x=fun(2,10);……}floatfun(inta,intb){……}B、floatfun(inta,intb){……}main(){……x=fun(i,j);……}C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}D、main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)。在選項(xiàng)A中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B、C中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在選項(xiàng)D中,在主函數(shù)中先對(duì)子函數(shù)floatfun(inti,intj)進(jìn)行了聲明,然后進(jìn)行調(diào)用。17、若有定義語(yǔ)句doublex,y,*px,*py;,執(zhí)行了px=&x;py=&y;之后,正確的輸入語(yǔ)句是()。A、searlf("%If%le",px,py);B、seanf("%f%f"&x,&y);C、scard"("%f%f",x,y);D、seanf("%If%If",x,y);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閤和y都是double型數(shù)據(jù),所以輸入時(shí)的格式字符應(yīng)為%lf,所以B、C選項(xiàng)錯(cuò)誤。D選項(xiàng)中的scanf("%lf%lf",x,y);應(yīng)為scanf("%lf%lf",&x,&y);。18、將數(shù)據(jù)庫(kù)的結(jié)構(gòu)劃分成多個(gè)層次,是為了提高數(shù)據(jù)庫(kù)的物理獨(dú)立性和A、規(guī)范程度B、操作獨(dú)立性C、邏輯獨(dú)立性D、降低數(shù)據(jù)冗余標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)中數(shù)據(jù)是相互獨(dú)立的。即,數(shù)據(jù)在磁盤上怎樣存儲(chǔ)由DBMS管理,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲(chǔ)改變了,應(yīng)用程序不用改變:邏輯獨(dú)立性存在于外模式和內(nèi)模式之間。數(shù)據(jù)的邏輯獨(dú)立性是指數(shù)據(jù)與程序的邏輯獨(dú)立性。用戶的應(yīng)用程序和數(shù)據(jù)庫(kù)中的邏輯結(jié)構(gòu)是相互獨(dú)立的,當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)發(fā)生改變時(shí)應(yīng)用不需要改變,邏輯獨(dú)立性存在于外模式和內(nèi)模式之間。數(shù)據(jù)的邏輯獨(dú)立性是指數(shù)據(jù)與程序的邏輯獨(dú)立性。19、若有以下程序#includemain(){inti,j=0;chara[]="Howareyou!",b[10];for(i=0;a[i];i++)if(a[i]=’’)b[j++]=a[i+1];bD]=’\0’;printf("%sha",b);}則程序的輸出結(jié)果是A、HowareyouB、Hay!C、Howareyou!D、ay標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:主函數(shù)中利用for循環(huán)訪問(wèn)字符串a(chǎn)的每一.個(gè)字符,判斷當(dāng)前字符是否為空格,如果是空格則保存該空格后面的一個(gè)字符存放到字符數(shù)組b中。在字符串"Howareyou!"中,第一個(gè)空格后面字符為’a’,第二個(gè)空格后面字符為’V’。20、有以下程序yoidfun2(chara,charb){printf(’’%c%c’’,a,b);)chara=’A’,b=’B’;yoidfunl(){a=’C’;b=’D’;)main(){funl();printf(’’%c%c’’a,b);fun2(’E’,’F’);}程序的運(yùn)行結(jié)果是A、ABEFB、CDEFC、abcDD、CDAB3.8變量的作用域和生存期標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:存funl()函數(shù)之前定義了全局字符變量a和b。這兩個(gè)變量的作用域是從其定義處到整個(gè)程序結(jié)束。在fun1()函數(shù)之內(nèi)定義了兩個(gè)變量a和b,并且分別初始化為字符’C’和’D’。在C語(yǔ)言中,若全局變量和某個(gè)函數(shù)中的局部變量同名,則在該函數(shù)中此全局變量被屏蔽,在該函數(shù)內(nèi)訪問(wèn)的是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。所以在主函數(shù)中,執(zhí)行fun1()后,變量a、b的值分別等于’C’、’D’,打印輸出CD,接著執(zhí)行fun2(’E’F’)語(yǔ)句,變量a、b的值變?yōu)椤疎’、’F’并輸出。21、以下正確的字符串常量是A、abc’B、OlympicGamesC、""D、"\\\"標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串常量是由雙引號(hào)括起來(lái)的一串字符。在C語(yǔ)言中。以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來(lái)代表一個(gè)特定的ASCII字符。利用兩個(gè)’\\’表示一個(gè)反斜杠,因此選項(xiàng)D)的表示無(wú)法確認(rèn)表示幾個(gè)反斜杠。22、以下敘述中正確的是A、語(yǔ)句inta[4][3]={1,2,4,5};是錯(cuò)誤的初始化形式B、語(yǔ)句inta[][3]={1,2,4,5);是錯(cuò)誤的初始化形式C、在邏輯上,可以把二維數(shù)組看成是一個(gè)具有行和列的表格或矩陣D、語(yǔ)句inta[4][3]={{1,2),{4,5));是錯(cuò)誤的初始化形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在理解二維數(shù)組的時(shí)候,可以把一個(gè)二維數(shù)組看成是一個(gè)一維數(shù)組,每個(gè)數(shù)組元素又是包含有若干個(gè)元素的一維數(shù)組,也就是具有行列的結(jié)構(gòu),二維數(shù)組初始化也是在類型說(shuō)明時(shí)給各下標(biāo)變量賦以初值。二維數(shù)組可按行分段賦值,也可按行連續(xù)賦值。23、以下選項(xiàng)中不屬于字符常量的是A、’C’B、CC、’\xCC’D、’\072’標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符型常量。選項(xiàng)A正確,是大小字母C;選項(xiàng)B錯(cuò)誤,使用雙引號(hào)括起來(lái)的是字符串,不是字符:選項(xiàng)C正確,使用了轉(zhuǎn)義字符“\”,xCC表示16進(jìn)制的CC;選項(xiàng)D正確,使用了轉(zhuǎn)義字符“\”,072表示8進(jìn)制的72。24、在關(guān)系A(chǔ)(S,SN,D)和B(D,CN,NM)中,A的主關(guān)鍵字是S,B的主關(guān)鍵字是D,則D是A的A、外鍵(碼)B、候選鍵(碼)C、主鍵(碼)D、候選鍵或主鍵標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二維表中的一行稱為元組。候選鍵(碼)是二維表中能唯一標(biāo)識(shí)元組的最小屬性集。若一個(gè)二維表有多個(gè)候選碼,則選定其中一個(gè)作為主鍵(碼)供用戶使用。表M中的某屬性集是表N的候選鍵或者主鍵,則稱該屬性集為表M的外鍵(碼)。A中屬性集D是B的主關(guān)鍵字,故D是A的外鍵(碼),所以選項(xiàng)A正確。25、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是A、while((s[i++]=getchar0)!=’\n’);s[i]=’\0’;B、scanf("%s",s);C、gets(s);D、,do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’0\’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語(yǔ)句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或者空格。26、有以下程序段charname[20];intnurn;scanf("name=%snurn=%d",name,&nurn);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinurn=1001后,name的值為A、name=LiliB、Lilinurn=C、name=Lilinurn=1001D、Lili標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在題目中以字符串的形式給字符數(shù)組賦值,所以字符數(shù)組n鋤e的值為L(zhǎng)ili。27、以下敘述中正確的是A、if語(yǔ)句只能嵌套一層B、不能在else子句中再嵌套if語(yǔ)句C、if子句和else子句中可以是任意的合法的C語(yǔ)句D、改變if-else語(yǔ)句的縮進(jìn)格式,會(huì)改變程序的執(zhí)行流程標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:含else子句的if語(yǔ)句的格式為ifr表達(dá)式)語(yǔ)句1else語(yǔ)句2其中if和else是C語(yǔ)言的關(guān)鍵字。“語(yǔ)句1”稱為if子句,“語(yǔ)句2”稱為else子句,這些子句只允許為一條語(yǔ)句,若需要多條語(yǔ)句時(shí),則應(yīng)該使用復(fù)合語(yǔ)句,對(duì)于if~fielse語(yǔ)句的嵌套原則是比較自由的。28、關(guān)于"while(條件表達(dá)式)循環(huán)體",以下敘述正確的是()。A、條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次B、循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次C、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣D、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無(wú)關(guān)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查while循環(huán)的執(zhí)行過(guò)程。先計(jì)算括號(hào)內(nèi)表達(dá)式的值,若不為0,則執(zhí)行循環(huán)體語(yǔ)句,若為0則跳出while循環(huán),所以條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次,答案選A。29、若變量已正確定義,則以下語(yǔ)句的輸出結(jié)果是s=32;s^=32;printf("%d",s);A、-1B、1C、32D、0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“核位異或”運(yùn)算的規(guī)則是:參與運(yùn)算的兩個(gè)運(yùn)算數(shù)中相對(duì)應(yīng)的二制位上,若數(shù)相同,則該位的結(jié)果為0;若數(shù)不同,則該位的結(jié)果為1。因?yàn)檎Z(yǔ)句s=32;s^=32:相當(dāng)于s與自身做按位異或運(yùn)算,所以其結(jié)果等于0。30、若有定義語(yǔ)句:doublex,y,*px,*py;執(zhí)行px=&x;py=&y;正確的輸入語(yǔ)句是A、scanf("%f%f"&x,&y);B、scanf("%f%f",x,y);C、scanf("%lf%le",px,py);D、scanf("%lf%lf",x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查scanf語(yǔ)句。scanf()函數(shù)的一般格式為:scanf("格式字符串",輸入項(xiàng)首地址表),對(duì)于double類型數(shù)據(jù),輸入時(shí)候要加上1修飾,否則會(huì)產(chǎn)生錯(cuò)誤的輸入信息,同時(shí)輸入項(xiàng)必須是地址,可以使保存變量地址的指針變量。31、流程圖是描述算法的很好的工具,一般的流程圖中由幾種基本圖形組成。其中輸入輸出框的圖形是()。A、平行四邊形B、長(zhǎng)方形C、橢圓型D、菱形標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:繪制流程圖中,習(xí)慣用圓角矩形表示"開始"與"結(jié)束";用矩形表示行動(dòng)方案、普通工作環(huán)節(jié);用菱形表示問(wèn)題判斷或判定(審核/審批/評(píng)審)環(huán)節(jié);用平行四邊形表示輸入輸出;箭頭代表工作流方向。答案選A。32、有以下程序#include<stdio.h>main(){inti,j;for(i=3;>=1:i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序的運(yùn)行結(jié)果是A、

B、

C、

D、

標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題中的外層行變量i從3逐次遞減到1,共輸出3行。內(nèi)層列變量i每次從1遞增到2,每行輸出2個(gè)數(shù)字。所以當(dāng)i=3時(shí),第一行輸出i+1=4i+2=5,即45;當(dāng)i=2時(shí),第一行輸出i+1=3和i+2=4,即34;當(dāng)i=1時(shí),第一行輸出i+1=2和i+2=3,即23。33、有以下程序#includeintfun(chars[]){char*P=s;while(*P=0)p++;return(p-s);}main(){printf("%d\n",fun("0ABCDEF"));}程序運(yùn)行后的輸出結(jié)果是A、6B、7C、1D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的主要功能是計(jì)算字符串中實(shí)際字符的個(gè)數(shù),因此主函數(shù)中調(diào)用fun得到結(jié)果為7。34、有以下程序(strcat函數(shù)用以連接兩個(gè)字符串)#include<stdio.h>#include<string.h>main(){chara[201="ABCD\OEFG\0",b[]="IJK";strcat(a,b);printf("%s\n",a);}程序運(yùn)行后的輸出結(jié)果是A、ABCDE\0FG\0IJKB、ABCDIJKC、IJKD、EFGIJK標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在字符串中字符’\0’示字符串的結(jié)束標(biāo)志,所以字符串a(chǎn)和b.相連接的結(jié)果為ABCDIJK。35、有以下程序#includemain(){charc1=’A’,c2=’Y’;printf("%d,%d\n",c1,c2);}程序的輸出結(jié)果是A、輸出格式不合法,輸出出錯(cuò)信息B、65,89C、65,90D、A,Y標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察字符變量的相關(guān)知識(shí)。分別給字符型變量a和b分別賦值為’A’和’Y’,即A和Y的ASSCII碼,因此輸出結(jié)果為65,89,因此B選項(xiàng)正確。36、若有定義:intw[3][5];則以下不能正確表示該數(shù)組元素的表達(dá)式是A、*(*w+3)B、*(*(w+1))C、*(w+1)[4]D、*(&w[0][0]+1)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,二維數(shù)組的名字表示的是二維數(shù)組的地址,對(duì)于二維數(shù)組intw[3][5],可以認(rèn)為w為一個(gè)一維數(shù)組,含有3個(gè)元素,而每個(gè)元素為一個(gè)含有5個(gè)元素的一維數(shù)組。而(w+1)為一個(gè)含有兩個(gè)元素的一維數(shù)組,首先和(w+1)[4]結(jié)合非法,4超出了二維數(shù)組的邊界,取值也就是非法的了。37、以下選項(xiàng)中,沒(méi)有編譯錯(cuò)誤的是A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstr1[5]="pass",str2[6];str2=str1;C、charname[10];name="china";D、charstr4[];str4="helloworld";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A是定義了字符數(shù)組str3[],并對(duì)其賦初值。選項(xiàng)B中語(yǔ)句str2=str1非法,字符數(shù)組不能直接賦值。選項(xiàng)C,D和選項(xiàng)B一致。38、以下選項(xiàng)中函數(shù)形參不是指針的是A、fun(int*a){…}B、fun(inta[10]){…}C、fun(int&p){…}D、fun(intp[]){…}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:B選項(xiàng)和D選項(xiàng)是將數(shù)組作為函數(shù)參數(shù);A選項(xiàng)是將指針作為函數(shù)參數(shù);因此C選項(xiàng)正確。39、有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語(yǔ)句有錯(cuò)誤的是A、scanf("%d",&s[0].age);B、scanf("%c",&(ps->sex));C、scanf("%s",s[0].name);D、scanf("%d",ps->age);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序段定義了結(jié)構(gòu)體變量數(shù)組s[5]和指針變量ps,然后ps指向數(shù)組s[5]中的第一個(gè)元素,因而ps->age引用s[0].age。因?yàn)樵谳斎雜canf()函數(shù)中,第2個(gè)參數(shù)應(yīng)該表示為地址變量,而選項(xiàng)A表示的值,而不是一個(gè)地址值。40、若有以下程序#includemain(){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、Howareyou!B、HowareyouC、Hay!D、ay標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序首先初始化字符數(shù)組a[]為"Howareyou!"。語(yǔ)句if(a[i]==’’)b[j++]=a[i+1];條件是判斷字符數(shù)組a[]中是否是空格字符,如果是空格的話,將空格后的字符賦給數(shù)組b。并將b輸出。因此D選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度B、算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度C、算法的復(fù)雜度是指算法程序中指令的數(shù)量D、算法的復(fù)雜度是指算法所處理的數(shù)據(jù)量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法復(fù)雜度是指算法在編寫成可執(zhí)行程序后,運(yùn)行時(shí)所需要的資源,資源包括時(shí)間資源和內(nèi)存資源。算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。2、下列敘述中正確的是()。A、非完全二叉樹可以采用順序存儲(chǔ)結(jié)構(gòu)B、有兩個(gè)指針域的鏈表就是二叉鏈表C、有的二叉樹也能用順序存儲(chǔ)結(jié)構(gòu)表示D、順序存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在計(jì)算機(jī)中,二叉樹為非線性結(jié)構(gòu),通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),但對(duì)于滿二叉樹和完全二叉樹來(lái)說(shuō),可以按層進(jìn)行順序存儲(chǔ)。因此A項(xiàng)錯(cuò)誤,C項(xiàng)正確。雖然滿二叉樹和完全二叉樹可以采用順序存儲(chǔ)結(jié)構(gòu),但仍是一種非線性結(jié)構(gòu),因此D項(xiàng)錯(cuò)誤。雙向鏈表也有兩個(gè)指針域,因此B項(xiàng)錯(cuò)誤。3、下列敘述中正確的是A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。4、下列定義變量的語(yǔ)句中錯(cuò)誤的是A、floatUS$;B、doubleint;C、charFor;D、int_int:標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,變量的標(biāo)識(shí)符只能由字母、數(shù)字或下劃線3種字符組成,且首字符必須為字母或F劃線。在C語(yǔ)言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)B定義的變量標(biāo)識(shí)符int和選項(xiàng)D定義的變量標(biāo)識(shí)符int與C語(yǔ)言的關(guān)鍵字int是不同的,是正確的變量標(biāo)識(shí)。選項(xiàng)C定義的變量標(biāo)識(shí)符For與C語(yǔ)言中的關(guān)鍵字for是兩個(gè)不同的標(biāo)識(shí)符,而在選項(xiàng)A包含有特殊字符$,因而其不符合C語(yǔ)言的變量命名規(guī)定。5、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二叉鏈表作為樹的存儲(chǔ)結(jié)構(gòu)。鏈表中結(jié)點(diǎn)的兩個(gè)鏈域分別指向該結(jié)點(diǎn)的第一個(gè)孩子結(jié)點(diǎn)和下一個(gè)兄弟結(jié)點(diǎn)。6、下面描述中不屬于軟件需求分析階段任務(wù)的是()。A、撰寫軟件需求規(guī)格說(shuō)明書B、軟件的總體結(jié)構(gòu)設(shè)計(jì)C、軟件的需求分析D、軟件的需求評(píng)審標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說(shuō)明書和需求評(píng)審。軟件的總體結(jié)構(gòu)設(shè)計(jì)屬于軟件設(shè)計(jì)階段的任務(wù)。7、數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決A、數(shù)據(jù)共享問(wèn)題B、數(shù)據(jù)安全問(wèn)題C、大量數(shù)據(jù)存儲(chǔ)問(wèn)題D、簡(jiǎn)化數(shù)據(jù)維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的一個(gè)核心問(wèn)題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性能良好的數(shù)據(jù)庫(kù),這就是數(shù)據(jù)庫(kù)設(shè)計(jì)。數(shù)據(jù)庫(kù)設(shè)計(jì)是在一定平臺(tái)制約下,根據(jù)信息需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題。8、有以下程序#includevoidmsilq(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;csse4:c+=2;bteak;}printf("%d\n",c);}A、9B、7C、5D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在這段程序中,整型變量c的初始值賦為0,在第一次執(zhí)行for循環(huán)語(yǔ)句時(shí),因?yàn)榇藭r(shí)變量k的值等于1,所以在switch語(yǔ)句中首先執(zhí)行default語(yǔ)句,給變量c的值加1,因?yàn)樵赿efault語(yǔ)句后面沒(méi)有break語(yǔ)句,所以就會(huì)接著執(zhí)行case2這條語(yǔ)句,再給變量c的值加1,其值變?yōu)?,這時(shí)退出switch語(yǔ)句塊,進(jìn)入第二次for循環(huán),此時(shí)k的值等于2,就會(huì)執(zhí)行switch語(yǔ)句塊中的case2這條語(yǔ)句,再給變量c的值加1,這時(shí)變量c的值就是3,此時(shí)退出switch語(yǔ)句塊,循環(huán)變量k的值加1,成為3,此時(shí)已不再滿足循環(huán)條件,執(zhí)行程序中的最后一條語(yǔ)句,把變量c的值在屏幕上輸出。9、有以下程序:#includevoidfun(inta,intb){intt;t=a:a=b:b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(e[i],c[i+1]);for(i=0;i<10;i++)printf(“%d,”,c[i]);printf(“\n”);{程序的運(yùn)行結(jié)果是()。A、1,2,3,4,5,6,7,8,9,0,B、2,1,4,3,6,5,8,7,0,9,C、0,9,8,7,6,5,4,3,2,1,D、0,l,2,3,4,5,6,7,8,9,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的,即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過(guò)程中,形參的值發(fā)生改變,而實(shí)參的值不會(huì)變化,所以數(shù)組c中的元素值并沒(méi)有變化,選擇A選項(xiàng)。10、有以下函數(shù)定義:intfun(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是()。A、if(fun(x,y)){……}B、z=fun(fun(x,y),fun(x,y));C、z=fun(fun(x,y)x,y);D、fun(x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。選項(xiàng)C中第一個(gè)參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。11、下列定義變量的語(yǔ)句中錯(cuò)誤的是A、int_int;B、doubleint_;C、charFor;D、floatUS$;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,變量命名必須符合標(biāo)識(shí)符的命名規(guī)則。D選項(xiàng)中包含了非法字符"$",所以錯(cuò)誤?標(biāo)識(shí)符由字母?數(shù)字或下劃線組成,且第一個(gè)字符必須是大小寫英文字母或者下劃線,而不能是數(shù)字。大寫字符與小寫字符被認(rèn)為是兩個(gè)不同的字符,所以For不是關(guān)鍵字for。12、有以下程序#includemain(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d\n",pad);}程序的輸出結(jié)果是()。A、6B、5C、7D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言對(duì)字母大小寫敏感,pAd與pad不是同一個(gè)變量,表達(dá)式"pAd=++sum,pAd++,++pad;"中牽扯到pad的只有最后一個(gè)逗號(hào)后的表達(dá)式,pad=6,所以輸出的最后結(jié)果為A)。13、有以下程序#include#includemain(){inta=1,b=4,c=2;doublex=10.5,y=4.0,z;z=(a+b)/c+sqrt(y)*1.2/c+x;printf("%f\n",z);}程序運(yùn)行后的輸出結(jié)果是()。A、13.700000B、14.000000C、15.400000D、14.900000標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查運(yùn)算符與表達(dá)式。表達(dá)式(a+b)/c+sqrt(y)*1.2/c+x;先計(jì)算(a+b)/c,a、b、c均為整數(shù),所以計(jì)算的結(jié)果也為整數(shù)即2;然后計(jì)算sqrt(y)*1.2/c,即2.0*1.2/c,結(jié)果為1.2;最后計(jì)算2+1.2+x的值,為13.7,輸出結(jié)果為選項(xiàng)A)。14、以下敘述中正確的是A、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行B、C語(yǔ)言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行C、main的各種大小寫拼寫形式都可以作為主函數(shù)名,如:MAIN,Main等D、C語(yǔ)言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定必須以main作為主函數(shù)名。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個(gè)可執(zhí)行的C程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。一個(gè)C程序中可以包含任意多個(gè)不同的函數(shù),但只能有一個(gè)主函數(shù)。程序要從main()函數(shù)開始執(zhí)行,最后在main()函數(shù)中結(jié)束。15、下列敘述中正確的是A、兩個(gè)連續(xù)的單引號(hào)(")是合法的字符常量B、可以對(duì)字符串進(jìn)行關(guān)系運(yùn)算C、兩個(gè)連續(xù)的雙引號(hào)("")是合法的字符串常量D、空字符串不占用內(nèi)存,其內(nèi)存空間大小是0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:兩個(gè)連續(xù)的雙引號(hào):"",是一個(gè)字符串常量,稱為“空串”。16、以下選項(xiàng)中非法的C語(yǔ)言字符常量是A、’9’B、’\09’C、’\x09’D、’\x9d’標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)把一個(gè)字符括起來(lái)。也可以為轉(zhuǎn)移字符,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來(lái)代表某一個(gè)特定的ASCII字符,這些字符常量也必須括在一對(duì)單引號(hào)內(nèi)。其中反斜線后的八進(jìn)制數(shù)可以不用0開頭,但是不能有8和9字符出現(xiàn)。反斜線后的十六制數(shù)只可由小寫字母x開頭。17、有以下程序段scanf("%d%d%d",&a,&b,&c);if(aA、輸出a的原始值B、輸出a、b、c中的最大值C、輸出a、b、c中的最小值D、輸出a、b、c中值相等的數(shù)值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:該程序中沒(méi)有賦值運(yùn)算符"=",也就是說(shuō)沒(méi)有變量會(huì)被改變,所以a值也不變,答案選A。18、有以下程序#includeinta=1,b=2;voidfun1(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){fun1(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、3456B、1256C、5612D、5634標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)fun1()的作用是輸出局部變量a和b的值,在主函數(shù)中執(zhí)行fun1(5,6)的結(jié)果是輸出5,6;函數(shù)fun2()的作用是給變量a和b分別賦值3,4;執(zhí)行fun2()的作用是輸出3,4。19、以下敘述中錯(cuò)誤的是A、函數(shù)可以返回地址值B、改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值C、當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULLD、可以給指針變量賦一個(gè)整數(shù)作為地址值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:指針變量的值只能是存儲(chǔ)單元地址,而不能是一個(gè)整數(shù),選項(xiàng)D)的描述是錯(cuò)誤,為待選答案。函數(shù)可以返回內(nèi)存空間的地址,同時(shí)函數(shù)形參和實(shí)參分別占用不同的內(nèi)存單元,改變形參的值不會(huì)改變對(duì)應(yīng)實(shí)參的值,在頭文件stdio.h中,NULL被定義為void型的指針。20、有以下程序#includemain(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);printf("outputn:");ofintf("%d\n".p);}該程序、試圖通過(guò)指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是A、intn,*p=NULL;B、*p=&n;C、scanf("%d.t,&p)D、printf("%d\n",p);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A表示在程序中,聲明定義變量語(yǔ)句“intn,*p=NULL;”定義了整型變量n和指針變量P,并且指針變量P初始化為空。其他的語(yǔ)句都是錯(cuò)誤的。其中選項(xiàng)B,&n的地址應(yīng)存放到指針變量p中,而選項(xiàng)C中數(shù)據(jù)輸入項(xiàng)錯(cuò)誤,選項(xiàng)D輸出地址信息。21、有以下程序structS{inta;intb;};main(){structSa,*p=&a;a.a=99;printf("%d\n",__________);}程序要求輸出結(jié)構(gòu)體中成員a的數(shù)據(jù),以下不能填入橫線處的內(nèi)容是A、a.aB、*p.aC、p->aD、(*p).a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:如果p指向結(jié)構(gòu)體,那么下面三種形式都可以訪問(wèn)結(jié)構(gòu)體的成員:結(jié)構(gòu)體變量.成員名、(*p).成員名、p->成員名。22、以下選項(xiàng)中不合法的標(biāo)識(shí)符是()。A、&aB、FORC、printD、00標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中標(biāo)識(shí)符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識(shí)符。因?yàn)镃語(yǔ)言中區(qū)分大小寫,所以B)選項(xiàng)中的"FOR"可以作為標(biāo)識(shí)符來(lái)用。A)選項(xiàng)中含有非法字符&,所以選擇A)。23、設(shè)有定義:charp[]={’1’,’2’,’3’},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。A、sizeof(p)B、sizeof(char)C、sizeof(*q)D、sizeof(p[0])標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)題目中的定義可以知道sizeof(p),計(jì)算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占字節(jié)數(shù)。24、以下敘述中錯(cuò)誤的是A、C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論