版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷10(共9套)(共303題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.C。在此程序中,函數(shù)fun的功能是:將a所指4×3矩陣中第k行的元素與第0行元素交換。例如,有下列矩陣:123456789101112若k為2,程序執(zhí)行結(jié)果為:789456123101112請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BIANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN3#defineM4/*********found*********/voidfun(int(*a)[N],int【1】){inti,temp;/*********found*********/for(i=0;i<【2】;i++){temp=a[0][i];/*********found*********/a[0][i]=【3】;a[k][i]=temp;}}main(){intx[M][N]={{1,2,3},{4,5,6},{7,8,9),{10,11,12)},i,j;printf("Thearraybeforemoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d",x[i][j]);printf("\n\n");}fun(x,2);printf("Thearrayaftermoving:\n\n");for(i=0;i<M;i++){for(j=0;J<N;j++)printf("%3d",x[i][j]);printf("\n\n");}}標(biāo)準(zhǔn)答案:(1)k(2)N(3)a[k][i]知識(shí)點(diǎn)解析:填空1:變量k在函數(shù)體fun中已經(jīng)使用,但在函數(shù)體中沒(méi)有定義,肯定是在函數(shù)的形參中定義的,所以應(yīng)填k。填空2:數(shù)組共N列,所以應(yīng)填N。填空3:這部分語(yǔ)句實(shí)現(xiàn)的功能是變量值的交換,所以應(yīng)填a[k][i]。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開(kāi)考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCII碼值升序排序后輸出。例如,若輸入“edcba”,則應(yīng)輸出“abede”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODl1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<string.h>#include<Stdio.h>voidfun(chart[]){charc;inti,j;/*********found*********/for{i=strlen(t);i;i--)for(j=0;j<i;j++)/*********found*********/if(t[j]<t[j+1]){c=t[j];t[j]=t[j+1];t[j+1]=c;}}main(){chars[81];printf("\nPleaseenteracharacterstring:");gets(s);printf("\n\nBeforesorting:\n%s",s);fun(s);printf("\nAftersortingdecendingly:\n%s",s);}標(biāo)準(zhǔn)答案:(1)for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)(2)if(t[j]>t[j+1])知識(shí)點(diǎn)解析:(1)本題是利用選擇法對(duì)數(shù)組元素進(jìn)行比較排序。所謂選擇法,是依次用當(dāng)前取得的元素和其后面的元素進(jìn)行比較,在第一個(gè)元素和其后面的元素順次比較時(shí),可以借助中間變量來(lái)對(duì)兩個(gè)數(shù)進(jìn)行交換,要保證第一個(gè)元素始終存放數(shù)組中的最大數(shù),以后依次挑選出次大數(shù),這樣最終的數(shù)組就是有序的。strlen函數(shù)所求得的字符串長(zhǎng)度,數(shù)組最大下標(biāo)表示為字符串長(zhǎng)度減1,所以要減1。(2)這里是一個(gè)分析邏輯錯(cuò)誤,題中要求按升序排序,所以應(yīng)改為if(t[j]>t[j+1])。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(xiě)(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4Efg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<conio.h>#include<Stdio.h>#include<string.h>#include<stdlib.h>voidfun(char*ss){}voidmain(){FILE*wf;chartt[81],s[81]="abc4Efg";system("CLS");printf("\nPleaseenteranstringwithin80characters:\n");gets(tt);printf("\n\nAfterchanging,thestring\n%s",tt);fun(tt);printf(“\nbecomes\n%s\n",tt);/*****************/wf=fopen("out.dat","w"),fun(s),fprintf(wf,"%s",s);fclose(wf);/*****************/}標(biāo)準(zhǔn)答案:voidfun(char*ss){inti;for(i=0,ss[i]!=’\0’;i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(xiě)*/if(i%2==1&&ss[i]>=’a’&&ss[i]<=’z’)ss[i]=ss[i]-32;}知識(shí)點(diǎn)解析:該題要求將給定字符串中奇數(shù)位置的字母轉(zhuǎn)換為大寫(xiě),需要先判斷奇數(shù)位置以及是否是小寫(xiě)字母,如果是再通過(guò)其轉(zhuǎn)換方法進(jìn)行轉(zhuǎn)換。從C語(yǔ)言的學(xué)習(xí)中知道,只要將小寫(xiě)字母減去32即轉(zhuǎn)成大寫(xiě)字母,將大寫(xiě)字母加上32即轉(zhuǎn)成小寫(xiě)字母。本程序用if語(yǔ)句實(shí)現(xiàn)轉(zhuǎn)換功能。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、在C語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量的是()。A、auto和registerB、extern和registerC、auto和staticD、static和register標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間。auto變量的存儲(chǔ)單元是分配在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中,每當(dāng)進(jìn)入函數(shù)體時(shí)自動(dòng)分配存儲(chǔ)單元。register變量也是自動(dòng)類(lèi)變量。static說(shuō)明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說(shuō)明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。2、下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D、文件由字符序列組成,其類(lèi)型只能是文本文件標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言將文件看作是一個(gè)字符(字節(jié))的序列,即由一個(gè)一個(gè)字符(字節(jié))數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組成形式,可將文件分為兩種:①ASCII文件,又稱(chēng)文本(text)文件,它的每一個(gè)字節(jié)可放一個(gè)ASCII碼,代表一個(gè)字符;②二進(jìn)制文件,是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣輸出到磁盤(pán)上存放。所以C文件就是一個(gè)字節(jié)流或一個(gè)二進(jìn)制流。3、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是一種先進(jìn)后出的線性表,隊(duì)列是一種先進(jìn)先出的線性表,棧與隊(duì)列都是線性結(jié)構(gòu)。4、以下關(guān)于C語(yǔ)言的敘述中正確的是()。A、預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語(yǔ)言中的變量定義須在其他語(yǔ)句之前C、在C語(yǔ)言程序的書(shū)寫(xiě)中,一個(gè)語(yǔ)句必須單占一行D、一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由自己的main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義。C語(yǔ)言程序的書(shū)寫(xiě)中,多個(gè)語(yǔ)句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語(yǔ)句。一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。5、有關(guān)return語(yǔ)句說(shuō)法不正確的是()。A、系統(tǒng)默認(rèn)的返回值類(lèi)型為整型,故當(dāng)函數(shù)的返回值為int型時(shí),在函數(shù)定義時(shí),返回值的類(lèi)型說(shuō)明可以省略。B、當(dāng)函數(shù)有返回值時(shí),凡是允許表達(dá)式出現(xiàn)的地方,都可以調(diào)用該函數(shù)。C、當(dāng)函數(shù)沒(méi)有返回值時(shí),函數(shù)的返回值類(lèi)型可以說(shuō)明為void型,它表示“無(wú)類(lèi)型”或“空類(lèi)型”。D、函數(shù)的返回值類(lèi)型必須與return語(yǔ)句中的表達(dá)式值的類(lèi)型一致,但C語(yǔ)言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類(lèi)型說(shuō)明為準(zhǔn),并自動(dòng)地將return語(yǔ)句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類(lèi)型。標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的返回值類(lèi)型一般與return語(yǔ)句中的表達(dá)式值的類(lèi)型一致,但C語(yǔ)言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類(lèi)型說(shuō)明為準(zhǔn),并自動(dòng)地將return語(yǔ)句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類(lèi)型。6、若有定義inta[5],*p=a;則正確引用數(shù)組元素的是()。A、*&a[5]B、*a+2C、*(p+5)D、*(a+2)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查通過(guò)指針引用數(shù)組元素。用指針引用數(shù)組有以下3種形式:①(p+n)與(a+n)表示數(shù)組元素a[n]的地址:②*(p+n)與*(a+n)表示數(shù)組元素a[n];③p[n]=*(p+n),都表示數(shù)組元素a[n]。選項(xiàng)A、B沒(méi)有這種引用形式;選項(xiàng)C,*(p+5)是引用數(shù)組的第6個(gè)元素,而數(shù)組一共有5個(gè)元素,出現(xiàn)越界;選項(xiàng)D,*(a+2)引用數(shù)組的第3個(gè)元素。7、若輸入’’abcdef’’、’’abdef’’,以下程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main(){intn;chars1[201,s2[20],*p1,*p2;scanf(’’%s’’,s1);scanf(’’%s’’,s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf(’’%d\n’’,n);}A、-B、0C、’’abcdef’’D、’’abdef’’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查兩個(gè)知識(shí)點(diǎn):①字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。②字符串依次比較的是它們相同位置上字符的ASCII碼值。8、在數(shù)據(jù)處理中,其處理的最小單位是()。A、數(shù)據(jù)B、數(shù)據(jù)項(xiàng)C、數(shù)據(jù)結(jié)構(gòu)D、數(shù)據(jù)元素標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)元素是由多個(gè)數(shù)據(jù)項(xiàng)組成,數(shù)據(jù)是能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體,數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng)。9、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、編譯程序B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、匯編程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有教務(wù)管理系統(tǒng)才是應(yīng)用軟件。10、設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。A、x=y+z+5,++yB)int(15.8%5)B、x=y*5=x+zC、x=25%5.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B與D選項(xiàng)中取模運(yùn)算符%的左右兩個(gè)操作數(shù)均應(yīng)為整數(shù),所以B、D錯(cuò)誤。C選項(xiàng)中不能將x+y的值賦給表達(dá)式y(tǒng)*5,所以C錯(cuò)誤。11、有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf(’’%d,’’,b=(a++)+(a++));printf(’’%d\n’’,a+b);}程序運(yùn)行后的輸出結(jié)果是()。A、4,6B、2,5C、3,5D、2,6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義了兩個(gè)整型變量a和b,并把它們的初值分別設(shè)置為1和0;在第二條語(yǔ)句中,首先計(jì)算b=a+a,然后a自增兩次,因此第二句結(jié)束時(shí),b=2,a=3,然后第三句,a+b=5。12、以下函數(shù)按每行8個(gè)輸出數(shù)組中的數(shù)據(jù):voidfun(int*w,intn){inti;for(i=0;i<n;i++){________printf("%d",w[i]);}printf("\n");}下畫(huà)線處應(yīng)填入的語(yǔ)句是()。A、if(i/8==0)printf("\n");B、if(i/8==0)continue;C、if(i%8==0)printf("\n");D、if(i%8==0)continue;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:每行輸出8個(gè)數(shù)組數(shù)據(jù),即輸出8個(gè)后就輸出一個(gè)換行,所以,應(yīng)該對(duì)8取余,當(dāng)結(jié)果為0時(shí)輸出換行符,即填入語(yǔ)句“if(i%8==0)printf("\n");”。13、若有chars[3][3]={"AAA","BBB","CCC"};說(shuō)明語(yǔ)句,則與它等價(jià)的語(yǔ)句是()。A、char**s={"AAA","BBB","CCC"};B、char*s[31={"AAA","BBB","CCC"};C、chars[][5]:{"AAA","BBB","CCC"};D、chars[][3]={"AAA","BBB","CCC"};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二維字符數(shù)組在定義時(shí)可省略第一維的維數(shù),根據(jù)初始化有3個(gè)字符串,所以選項(xiàng)D)中數(shù)組有3行,與已知說(shuō)明語(yǔ)句等價(jià)。14、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)階段實(shí)現(xiàn)了數(shù)據(jù)共享,具有數(shù)據(jù)的集成性,這使得數(shù)據(jù)可被多個(gè)應(yīng)用所共享,還可以極大地減少數(shù)據(jù)冗余性。A項(xiàng),在人工管理階段,數(shù)據(jù)不保存,沒(méi)有對(duì)數(shù)據(jù)進(jìn)行管理的軟件,數(shù)據(jù)不能共享;B項(xiàng),文件系統(tǒng)階段是數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展的初級(jí)階段,它提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是這種能力十分有限。從人工管理階段到文件系統(tǒng)階段再到數(shù)據(jù)庫(kù)系統(tǒng)階段,對(duì)數(shù)據(jù)共享的能力在不斷增強(qiáng)。15、有如下程序段:intx=12:doubley=3.141593;printf("%d%8.6f",x,y);其輸出結(jié)果是()。A、123.141593B、123.141593C、12,3.141593D、123.1415930標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:printf函數(shù)中格式字符“%8.6”的含義是:變量y的輸出寬度為8(包括小數(shù)點(diǎn)),小數(shù)點(diǎn)后面保留6位小數(shù),且右對(duì)齊。所以選擇A。16、關(guān)于字符常量,以下敘述正確的是()。A、空格不是一個(gè)字符常量B、字符常量能包含大于一個(gè)的字符C、單引號(hào)中的大寫(xiě)字母和小寫(xiě)字母代表的是相同的字符常量D、所有的字符常量都可以作為整型量來(lái)處理標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查字符常量的4個(gè)知識(shí)點(diǎn):①空格是一個(gè)字符常量,而且單引號(hào)中的空格不可以省略;②字符常量只能包含一個(gè)字符;③單引號(hào)中的大寫(xiě)字母和小寫(xiě)字母代表的是不相同的字符常量;④所有的字符常量都作為整型量來(lái)處理,在計(jì)算機(jī)內(nèi)部,其對(duì)應(yīng)的整數(shù)值就是ASCII碼值。17、若a是數(shù)值類(lèi)型,則邏輯表達(dá)式(a==1)||(a!=1)的值是A、1B、0C、2D、不知道a的值,不能確定標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:邏輯或"||"要求只要兩邊的運(yùn)算對(duì)象有一個(gè)非零,結(jié)果就為真,雖然不知道a的值,但是若a為1,則左邊運(yùn)算對(duì)象為1,若a的值不是1,則右邊運(yùn)算對(duì)象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。18、若有以下定義:intx[10],*pt=x;則對(duì)x數(shù)組元素的正確引用是()。A、pt+3B、*&x[10]C、*(pt+10)D、*(x+3)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:沒(méi)有A選項(xiàng)的引用形式。*與&放在一起作用抵消,所以B選項(xiàng)錯(cuò)誤,最大只能引用到x[9]。*(pt+i)表示引用指針pt所指元素后的第i個(gè)元素,所以c選項(xiàng)錯(cuò)誤,最大只能為*(pt+9)。因此D選項(xiàng)正確。19、有以下程序#include<stdio.h>main(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開(kāi)頭*/fwrite(s1,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat文件的內(nèi)容是A、ChinaB、ChinangC、ChinaBeijingD、BeijingChina標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件操作函數(shù),fwrite和rewind函數(shù),題目中先是將s2字符串寫(xiě)入adc.dat中,然后將寫(xiě)指針回到文件開(kāi)頭,然后寫(xiě)入s1字符串,那么s1字符串就將前五個(gè)字符覆蓋,所以最終結(jié)果為Chinang,選項(xiàng)B正確。20、設(shè)有一聯(lián)合體變量定義如下:uniondata{longa;floatb:intc:chard:};uniondatax:執(zhí)行下列語(yǔ)句后,正確的聯(lián)合體變量x的值是()。x.a(chǎn)=111111,x.b=2222;x.c=2.1546;x.d=’R’;A、111111B、2222C、2.1546D、R標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查的知識(shí)點(diǎn)是聯(lián)合體的內(nèi)存使用。聯(lián)合體與結(jié)構(gòu)體的定義相同,其本質(zhì)區(qū)別就在于內(nèi)存使用方式的不同。聯(lián)合體所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間,各個(gè)成員分量全部是從低地址方向開(kāi)始使用內(nèi)存單元;聯(lián)合體中的空間在某一時(shí)刻只能保持某一個(gè)成員的數(shù)據(jù),所以本題執(zhí)行完一系列賦值后,只得到最后執(zhí)行的字符’R’。21、以下選項(xiàng)中可用做C程序合法實(shí)數(shù)的是()。A、3.0e0.2B、.1e0C、E9D、9.12E標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中e后面的指數(shù)必須為整數(shù),所以錯(cuò)誤C語(yǔ)言規(guī)定,F(xiàn)之前必須要有數(shù)字,所以C選項(xiàng)錯(cuò)誤E后面必須要有數(shù)字,且必須為整數(shù),所以D選項(xiàng)錯(cuò)誤。22、下面關(guān)于數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)的敘述中,正確的是()。A、內(nèi)模式可以有多個(gè),外模式和模式只有一個(gè)B、外模式可以有多個(gè),內(nèi)模式和模式只有一個(gè)C、內(nèi)模式只有一個(gè),模式和外模式可以有多個(gè)D、模式只有一個(gè),外模式和內(nèi)模式可以有多個(gè)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫(kù)系統(tǒng)的外模式、模式和內(nèi)模式。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式,但只有一個(gè)模式和一個(gè)內(nèi)模式。23、下列選項(xiàng)中屬于面向?qū)ο笤O(shè)計(jì)方法主要特征的是()。A、繼承B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:面向?qū)ο蠡痉椒ǖ幕靖拍钣袑?duì)象、類(lèi)和實(shí)例、消息、繼承與多態(tài)性,所以選擇A、24、若有以下程序:#includevoidfun(inta[],intn){intt,i,j;for(i=1;ia[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){inte[10]:{10,9,8,7,6,5,4,3,2,1},i;fun(c,10);for(i=0;i<10;i++)printf("%d,",e[i]);printf("\n");}則程序的輸出結(jié)果是()。A、1,10,3,8,5,6,7,4,9,2,B、10,9,8,7,6,5,4,3,2,1,C、2,9,4,7,6,5,8,3,10,1,D、10,1,8,3,6,5,4,7,2,9,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查for的嵌套循環(huán)。該題首先對(duì)一維數(shù)組進(jìn)行初始化,c[0]到c[9]依次賦值為10到1;fun(c,10);語(yǔ)句調(diào)用fun函數(shù),fun函數(shù)的功能是將一維數(shù)組偶數(shù)位元素的數(shù)值由小到大排序;最后將排好序的新的一維數(shù)組進(jìn)行輸出。因此D選項(xiàng)正確。25、有以下程序:#include#definef(X)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n”,s,t);}程序運(yùn)行后的輸出結(jié)果是()。A、10,64B、10,10C、64,10D、64,64標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查宏定義的用法,宏定義只是做個(gè)簡(jiǎn)單的替換,所以本題中執(zhí)行f(a+1)=a+1*a+1*a+1=3*a+1=10,f((a+1))=(a+1)*(a+1)*(a+1)=64,所以答案為A選項(xiàng)。26、設(shè)文件指針fp已定義,執(zhí)行語(yǔ)句fp=fopen("file","w");后,以下針對(duì)文本文件file操作敘述的選項(xiàng)中正確的是()。A、只能寫(xiě)不能讀B、寫(xiě)操作結(jié)束后可以從頭開(kāi)始讀C、可以在原有內(nèi)容后追加寫(xiě)D、可以隨意讀和寫(xiě)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查文件操作函數(shù)fopen的基礎(chǔ)知識(shí),以"w"方式打開(kāi)文件,只能寫(xiě)不能讀。選項(xiàng)A正確。27、以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");該程序段的輸出結(jié)果是()。A、*B、****C、**D、********標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析28、下列敘述中正確的是()。A、在C程序的函數(shù)中不能定義另一個(gè)函數(shù)B、在C程序中main函數(shù)的位置是固定的C、C程序中所有函數(shù)之間都可以相互調(diào)用D、每個(gè)C程序文件中都必須要有一個(gè)main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析29、程序測(cè)試的主要目的是()。A、設(shè)計(jì)測(cè)試程序B、驗(yàn)證程序的正確性C、發(fā)現(xiàn)程序中的錯(cuò)誤D、改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序測(cè)試的主要目的是改正程序中的錯(cuò)誤。30、若有說(shuō)明intm[3][4]={3,9,7,8.5),(*q)[4];和賦值語(yǔ)句q=m;,則對(duì)數(shù)組元素m[i][j](其中0<=i<3,0<-j<4)值的正確引用為()。A、(q+i)[j]B、*q[i][1]C、*(*q[i]+j)D、*(*(q+i)+j)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:*q+i)指向第i行首地址,*(*(q+i)+j)代表第i行第j個(gè)元素。31、有以下程序:voidss(char*s,chart){while(*S){if(*s=t)*s=t-’a’+’A’;S++:}}main(){charstrl[100]=’’ABCddfefdbd’’,c=’d’;ss(strl,c);printf(’’%s\n’’,strl);}程序運(yùn)行后的輸出結(jié)果是()。A、ABCDDEFEDBDB、ABCDDfefDbDC、ABCAAfefAbAD、ABCdd~fdbd標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)ss(char*s,chart)的功能是將指針s所指向的字符串中存在的字符”t”均改寫(xiě)成大寫(xiě)字*;所以main函數(shù)中引用函數(shù)ss后使得數(shù)組strl中的小寫(xiě)字*”d”均變成了大寫(xiě)字*”D”,然后輸出數(shù)組strl,結(jié)果為:ABCDDflefDbD。32、下列二維數(shù)組初始化語(yǔ)句中,正確且與語(yǔ)句inta[][3]={1,2,3,4,5}等價(jià)的是()。A、inta[2][]={{1,2,3},{4,5}};B、inta[][3]={1,2,3,4,5,0};C、inta[][3]={{1,0},{2,0},{3,0}};D、inta[2][]={{1,2,3},{4,5,6)};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是二維數(shù)組的初始化。題干中數(shù)組a的第二個(gè)下標(biāo)為3,由此可知數(shù)組a是一個(gè)2行3列的數(shù)組,初始化時(shí)未賦初值的元素的值自動(dòng)為0,所以與選項(xiàng)B是等價(jià)的,最后一個(gè)元素的值為0。33、下列隊(duì)列的描述中,正確的是()。A、隊(duì)列屬于非線性表B、隊(duì)列在隊(duì)尾刪除數(shù)據(jù)C、隊(duì)列按“先進(jìn)后出”進(jìn)行數(shù)據(jù)操作D、隊(duì)列按“先進(jìn)先出”進(jìn)行數(shù)據(jù)操作標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。隊(duì)列的操作數(shù)是依據(jù)先進(jìn)先出的原則進(jìn)行的。因此隊(duì)列亦稱(chēng)作先進(jìn)先出的線性表,或后進(jìn)后出的線性表。34、C語(yǔ)言源程序名的后綴是()。A、.exeB、.CC、.objD、.cp標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由C語(yǔ)言構(gòu)成的指令序列稱(chēng)為C源程序,源程序文件的后綴為“.c”。源程序經(jīng)過(guò)C編譯程序編譯生成后綴為“.obj”的二進(jìn)制文件(稱(chēng)為目標(biāo)文件),然后由稱(chēng)為“連接程序”(Link)的軟件把目標(biāo)文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起求,生成后綴為“.exe”的可執(zhí)行文件。35、定義結(jié)構(gòu)體數(shù)組structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);程序執(zhí)行后的輸出結(jié)果是()。A、2A3N4E50B、1H213U4EC、1A2N3E40D、1A2N3E40標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體數(shù)組。x[i]Inum是結(jié)構(gòu)體x[i]中的num成員,x[i]-name[2]是結(jié)構(gòu)體x[i]中name成員的第3個(gè)元素。第一次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第二次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第三次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4E;第四次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即50。36、有C語(yǔ)言表達(dá)式2*3+4+15%3,關(guān)于其執(zhí)行順序,以下敘述正確的是A、先執(zhí)行2*3得6,再執(zhí)行6+4得10,再執(zhí)行15%3得0,最后執(zhí)行10+0得10B、先執(zhí)行2*3得6,再執(zhí)行15%3得5,最后執(zhí)行6+4+5得15C、先執(zhí)行15%3得0,再執(zhí)行2*3得6,最后執(zhí)行6+4+0得10D、先執(zhí)行15%3得3,再執(zhí)行4+3得7,再執(zhí)行2*3得6,最后執(zhí)行6+7得13標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先運(yùn)算符"*"和運(yùn)算符"%"有相同優(yōu)先級(jí),并且優(yōu)先級(jí)都高于運(yùn)算符’+’,再根據(jù)運(yùn)算結(jié)合性,乘法和取余運(yùn)算都滿足從左到右的運(yùn)算規(guī)則,C,D選項(xiàng)錯(cuò)誤;因?yàn)?5%3=0,排除B選項(xiàng),答案為A選項(xiàng)。37、有以下程序#include<stdio.h>intk=5;voidf(int*s){s=&k;*s=k;}main(){intm=3;f(&m);printf("%d,%d\n",m,k);}程序運(yùn)行后的輸出結(jié)果是A、3,3B、5,5C、3,5D、5,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)f()的功能是:定義一個(gè)臨時(shí)的整型指針變量s,指向全局變量k,然后用k的值對(duì)s指向的內(nèi)存地址進(jìn)行賦值,結(jié)果當(dāng)然是k的值不變;另外在調(diào)用函數(shù)f()過(guò)程中,雖然使用m的地址初始化s,但是s在f函數(shù)內(nèi)部又被指向k的地址,所以s的后續(xù)操作對(duì)m沒(méi)有任何影響,因此最后輸出為3,5,答案為C選項(xiàng)。38、深度為7的完全二叉樹(shù)中共有125個(gè)結(jié)點(diǎn),則該完全二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為A、62B、63C、64D、65標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在樹(shù)結(jié)構(gòu)中,定義一棵樹(shù)的根結(jié)點(diǎn)所在的層次為1,其他結(jié)點(diǎn)所在的層次等于它的父結(jié)點(diǎn)所在的層次加1,樹(shù)的最大層次稱(chēng)為樹(shù)的深度。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點(diǎn)。深度為6的滿二叉樹(shù),結(jié)點(diǎn)個(gè)數(shù)為26-1=63,則第7層共有125-63=62個(gè)葉子結(jié)點(diǎn),分別掛在第6層的左邊62個(gè)結(jié)點(diǎn)上,加上第6層的最后1個(gè)葉子結(jié)點(diǎn),該完全二叉樹(shù)共有63個(gè)葉子結(jié)點(diǎn),故B選項(xiàng)正確。39、下列敘述中正確的是A、軟件是程序、數(shù)據(jù)和文檔B、軟件是程序和數(shù)據(jù)C、軟件是算法和數(shù)據(jù)結(jié)構(gòu)D、軟件是算法和程序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。故選A選項(xiàng)40、有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[5-i]);rewind(fp);for(i=0;i<6;i++){fscanf(fp,"%d",&k);printf("%d,",k);}fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A、6,5,4,3,2,1,B、1,2,3,4,5,6,C、1,1,1,1,1,1D、6,6,6,6,6,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fopen("data.dat","w+");w+打開(kāi)可讀寫(xiě)文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。rewind(fp);使文件fp的位置指針指向文件開(kāi)始。fprintf(fp,"%d\n",a[5-i]);將a[i]輸出到fp指向的文件中。fscanf(fp,"%d",&k);將fp讀入到變量k中,第一個(gè)for循環(huán)將數(shù)組中元素倒著輸入到fp指向的文件中,rewind()則指向文件開(kāi)始,因此打印是數(shù)組a的倒敘。故打印為6,5,4,3,2,1。答案為A選項(xiàng)二、程序填空題(本題共1題,每題1.0分,共1分。)41、下列給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中,將所有串長(zhǎng)超過(guò)k的寧符串中后面的寧符刪除,只保留前面的k個(gè)字符。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于M。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容并將下畫(huà)線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<string.h>#defineN5#defineM10/**********found***********/voidfun(char(*SS)【1】,intk){inti=0;/**********found***********/while(i<【2】){/**********found***********/ss[i][k]=【3】;i++;)}main(){charx[N][M]={“Create”,“Nodify”,“Sort”,“skip”,“Delete”};inti;printf(“\nTheoriginalstring\n\n”);for(i=0;i<N;i++)puts(x[i]);printf(“\n”);fun(x,4);printf(“\nThestringafterdeleted:\n\n”);for(i=0,i<N;i++)puts(x[i]);printf(“\n”);}標(biāo)準(zhǔn)答案:(1)[M](2)N(3)‘\0’知識(shí)點(diǎn)解析:填空1:根據(jù)main函數(shù)中的函數(shù)調(diào)用語(yǔ)句,確定函數(shù)定義時(shí)的形式參數(shù),所以填入[M]。填空2:while循環(huán)語(yǔ)句需要對(duì)所有字符串進(jìn)行操作,因此循環(huán)條件是i<N。填空3:字符串結(jié)尾加入字符串結(jié)束標(biāo)以‘\0’。三、程序修改題(本題共1題,每題1.0分,共1分。)42、下列給定程序的功能是:建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)數(shù)據(jù)域賦值。函數(shù)fun的作用是求出單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域中的最大值,并且作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2#include<conio.h>3#include<stdlib.h>4typedefstructaa5{intctata;6structaa*next;7}NODE;8fun(NODE*h)9{intmax=-1;10NODE*p;11/*********found*********/12p=h;13while(p)14{if(p->data>max)15max=p->data;16/*********found*********/17p=h->next;18}19returnmax;20}21outresult(ints,F(xiàn)ILE*pf)22{fprintf(pf,’’\nThemaxinlink:%d\n’’,s);23}24NODE*treatlink(intn,intm)25{NODE*h,*p,*s;26inti;27h=p=(NODE*)malloc(sizeof(NODE));28h->data=9999;29for(i=l;i<=n;i++)30{s=(NODE*)malloc(sizeof(NODE));31s->data=rand()%m;32s->next=p->nexL;33p->next=s;p=p->next;34}35p->next=NULL;36returnh;37}38outlink(NODE*h,F(xiàn)ILE*pf)39{NODE*p;40p=h->next;41fprintf(pf,’’\nTheLIST:\n\nHEAD’’);42while(p)43{fprintf(pf,’’->%d’’,p->data);44p=p->next;}45fprintf(pf,’’\n’’);46}47main()48{NODE*head;intm;49system(’’CLS’’);50head=creatlink(12,100);51outlink(head,stdout);52m=fun(head);53printf(’’\nTheRESULT:\n’’);54outresult(m,stdout);55}標(biāo)準(zhǔn)答案:(1)p=h->next;(2)p=p->next;知識(shí)點(diǎn)解析:(1)因?yàn)殒湵淼念^結(jié)點(diǎn)沒(méi)有數(shù)據(jù)域,所以對(duì)指針p進(jìn)行初始化時(shí),要將p指向頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)。(2)通過(guò)指針p的移動(dòng)遍歷鏈表,因此此處應(yīng)改為p=p->next;。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、編寫(xiě)函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時(shí)停止迭代)。程序運(yùn)行后,若輸入精度0.0005,則程序應(yīng)輸出為3.140578。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){doublex;printf(”Inputeps:”),scanf(”%lf”,&x);printf(”\neps=%lf,PI=%lf\n”,x,fun(x));}標(biāo)準(zhǔn)答案:doublefun(doubleeps){doubles=0.0,s1=1.0;intn=1;while(sl>=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下一項(xiàng)*/s=s+s1;/*求和*/{s1=s1*n/(2*n+1);/*求多項(xiàng)式的每一項(xiàng)*/n++;}return2*s;}知識(shí)點(diǎn)解析:首先應(yīng)該定義double類(lèi)型變量,并同.賦初值,用來(lái)存放多項(xiàng)式的某一項(xiàng)和最后的總和。從第二項(xiàng)開(kāi)始以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+1),程序中用s1來(lái)表示每一項(xiàng),s表示求和后的結(jié)果。需注意s1和s的初值都為1.0,因?yàn)檠h(huán)變量從第二項(xiàng)開(kāi)始累加。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、在一棵二叉樹(shù)上,第5層的結(jié)點(diǎn)數(shù)最多是()。A、8B、9C、15D、16標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì):二叉樹(shù)第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16個(gè)。2、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績(jī)B、學(xué)號(hào),成績(jī)C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績(jī)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:學(xué)號(hào)是學(xué)生表s的主鍵,課號(hào)是課程表c的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C。3、以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的敘述中正確的是()。A、可以是任意合法的表達(dá)式B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類(lèi)型的數(shù)據(jù)D、只能是整數(shù)0或1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言的邏輯運(yùn)算符比較特別,它的操作數(shù)沒(méi)有明確的數(shù)據(jù)類(lèi)型,可以是任意合法的表達(dá)式,所以選擇A。4、若有定義inta[5],*p=a;則正確引用數(shù)組元素的是()。A、*&a[5]B、*a+2C、*(p+5)D、*(a+2)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查通過(guò)指針引用數(shù)組元素。用指針引用數(shù)組有以下3種形式:①(p+n)與(a+n)表示數(shù)組元素a[n]的地址:②*(p+n)與*(a+n)表示數(shù)組元素a[n];③p[n]=*(p+n),都表示數(shù)組元素a[n]。選項(xiàng)A、B沒(méi)有這種引用形式;選項(xiàng)C,*(p+5)是引用數(shù)組的第6個(gè)元素,而數(shù)組一共有5個(gè)元素,出現(xiàn)越界;選項(xiàng)D,*(a+2)引用數(shù)組的第3個(gè)元素。5、對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:遍歷就是不重復(fù)地訪問(wèn)一叉樹(shù)的所有結(jié)點(diǎn)。二叉樹(shù)遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問(wèn)根→按前序遍歷左子樹(shù)→按前序遍歷右子樹(shù):②中序,按中序遍歷左子樹(shù)→訪問(wèn)根→按中序遍歷右子樹(shù);③后序,按后序遍歷左子樹(shù)→按后序遍歷右子樹(shù)→訪問(wèn)根。所以對(duì)該二叉樹(shù)的中序遍歷結(jié)果為ABDGEHCF。6、有以下程序:#include<stdio.h>main(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序運(yùn)行后的輸出結(jié)果是()。A、zB、0C、元素ch[5]的地址D、字符y的地址標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語(yǔ)句pc=ch;使得指針變量指向字符數(shù)組ch的首地址,即指向字符‘u’。則pc+5指向的是字符向后移動(dòng)5位,指向字符‘z’。所以輸出的水pc+5的值即為‘z’。因此A選項(xiàng)正確。7、有以下程序:voidss(char*s,chart){while(*s){if(*s==t)*s=t-’a’+’A’;s++;}}main(){charstrl[100]="abcddfefdbd",c=’d’;ss(strl,c);printf("%s\n",strl);}程序運(yùn)行后的輸出結(jié)果是()。A、ABCDDEFEDBDB、abcDDfefDbDC、abcAAfefAbAD、Abcddfefdbd標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)ss(char*s,chart)的功能是將指針s所指向的字符串中存在的字符“t”均改寫(xiě)成大寫(xiě)字母;所以main函數(shù)中引用函數(shù)ss后使得數(shù)組str1中的小寫(xiě)字母“d”均變成了大寫(xiě)字母“D”,然后輸出數(shù)組str1,結(jié)果為:abcDDfefDbD。8、設(shè)有以下定義:chars1[]="0123";chars2[]={’0’,’1’,’2’,’3’};則以下敘述正確的是()。A、數(shù)組s1的長(zhǎng)度小于s2的長(zhǎng)度B、數(shù)組s1和s2的長(zhǎng)度相同C、數(shù)組s1的長(zhǎng)度大于s2的長(zhǎng)度D、數(shù)組s1和s2完全等價(jià)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符數(shù)組s1賦值字符串“0123”,字符串中字符依次放人數(shù)組中,在最后一個(gè)字符后要添加一個(gè)結(jié)束字符‘\0’,數(shù)組s1長(zhǎng)度為5。數(shù)組s2只需要4個(gè)單元即可放下所有初始化值,故數(shù)組長(zhǎng)度為4。所以數(shù)組s1的長(zhǎng)度大于s2的長(zhǎng)度。9、下列關(guān)于線性表的敘述中,不正確的是()。A、線性表可以是空表B、線性表是一種線性結(jié)構(gòu)C、線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件D、線性表是由n個(gè)元素組成的一個(gè)有限序列標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表是一種線性結(jié)構(gòu),由n(n≥0)個(gè)元素組成,所以線性表可以是空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒(méi)有前件,最后一個(gè)結(jié)點(diǎn)沒(méi)有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C是錯(cuò)誤的。10、下列程序的輸出結(jié)果是()。#includevoidmain(){inta=0,b=1,c=2;if(++a>0||++b>0)++C;printf("%d,%d,%(1",a,b,c);}A、0,1,2B、1,2,3C、1,1,3D、1,2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查if語(yǔ)句。先判斷if語(yǔ)句的條件是否成立,因?yàn)?+a=1>0,所以條件成立,又因?yàn)槭沁M(jìn)行邏輯或運(yùn)算,在已知其中一個(gè)運(yùn)算對(duì)象為真的情況下,不必判斷另外一個(gè)運(yùn)算對(duì)象的真假,即不進(jìn)行++b操作,就可以直接得出整個(gè)表達(dá)式的值為邏輯1,執(zhí)行下面的++c。11、有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf("%d",t[2-i][i]);}程序執(zhí)行后的輸出結(jié)果是()。A、357B、753C、369D、751標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二維數(shù)組t[][3]實(shí)際上指t[3][3]={{9,8,7},{6,5,4},{3,2,1}},通過(guò)循環(huán)語(yǔ)句for語(yǔ)句可以得到i=0,t[2][0]=3、i=1,t[1][1]=5、i=2,t[0][2]=7、i=3時(shí)循環(huán)結(jié)束即t[2][0]=3、t[1][1]=5、t[0][2]=7。因此A選項(xiàng)正確。12、以下關(guān)于宏的敘述錯(cuò)誤的是()。A、宏替換不具有計(jì)算功能B、宏是一種預(yù)處理指令C、宏名必須用大寫(xiě)字母構(gòu)成D、宏替換不占用運(yùn)行時(shí)間標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:宏名習(xí)慣采用大寫(xiě)字母,以便與一般變量區(qū)別,但是并沒(méi)有規(guī)定一定要用大寫(xiě)字母。13、以下程序的功能是:通過(guò)調(diào)用calc函數(shù),把所求得的兩數(shù)之和值放入變量add中,并在主函數(shù)中輸出。#includevoidcalc(floatx,floaty,float*sum){________=x+y;}main(){floatx,y,add;scanf("%f%",&x,&y);calc(x,y,&add);pfintf("x+y=%f\n",add);}calc函數(shù)中下劃線處應(yīng)填入的是()。A、*sumB、sumC、&sumD、add標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序的執(zhí)行過(guò)程為:從鍵盤(pán)讀入兩個(gè)。float類(lèi)型數(shù)據(jù),分別賦給x、y,調(diào)用函數(shù)calc將兩數(shù)之和放入指針sum指向的地址,正確的引用形式為(*sum),所以橫線處填寫(xiě)*sum。14、設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語(yǔ)句時(shí),若從鍵盤(pán)輸入876543.0,則a和b的值分別是()。A、87和6.0B、876和543.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:scanf()函數(shù)的一般形式為:scan(格式控制,地址表列)。其中,“格式控制”是用雙引號(hào)括起來(lái)的字符串,也稱(chēng)為“轉(zhuǎn)換控制字符串”,它包括兩種信息:①格式說(shuō)明,由“%”和格式字符組成;②普通字符,即需要原樣輸入的字符。“地址表列”是需要接收輸入數(shù)據(jù)的一系列變量的地址。本題中的“格式控制”是“%2d%f”,“%2d”的意思是要輸入一個(gè)整數(shù),但該整數(shù)最寬只占2個(gè)字符,而“%2d”是要輸入一個(gè)浮點(diǎn)數(shù)。題目要求輸入的是876空格543.0,所以scanf()函數(shù)將87賦給a,將6賦給b。15、若變量已正確定義,以下選項(xiàng)中非法的表達(dá)式是()。A、’a’=1/2*(x=y=20,x*3)B、a!=4||’b’C、’a’%4D、’A’+32標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查用戶(hù)標(biāo)識(shí)符,用戶(hù)自己定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標(biāo)識(shí)符相同。本題中scanf為預(yù)定義標(biāo)識(shí)符,可以作為用戶(hù)標(biāo)識(shí)符;case為關(guān)鍵字,不能作為用戶(hù)標(biāo)識(shí)符,故而答案選A)。16、對(duì)于現(xiàn)實(shí)世界中事物的特征,在實(shí)體-聯(lián)系模型中使用()。A、屬性描述B、關(guān)鍵字描述C、二維表格描述D、實(shí)體描述標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在實(shí)體一聯(lián)系模型中,用屬性來(lái)描述現(xiàn)實(shí)世界中對(duì)象的屬性所表示的對(duì)象的性質(zhì)、特征和行為。17、若有定義和語(yǔ)句:inta,b;scanf("%d,%d,",&a,&b);以下選項(xiàng)中的輸入數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。A、3,5B、3,5C、3,5,D、3,5,4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查數(shù)據(jù)的輸入,printf("%d,",b=a+b);先計(jì)算b=a+b,得出b=1,再輸出b值。語(yǔ)句printf("%d\n",a=2*b);先計(jì)算a=2*b,得出a=2,再輸出a值。所以輸出結(jié)果為A)。18、下列關(guān)于數(shù)據(jù)庫(kù)設(shè)計(jì)的敘述中,正確的是()。A、在需求分析階段建立數(shù)據(jù)字典B、在概念設(shè)計(jì)階段建立數(shù)據(jù)字典C、在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典D、在物理設(shè)計(jì)階段建立數(shù)據(jù)字典標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中不斷修改、充實(shí)和完善的。19、設(shè)有以下語(yǔ)句:typedefstruetTr{charc;inta14]:}CIN;則下面敘述中正確的是()。A、CIN是struetTT類(lèi)型的變量B、Tr是struet類(lèi)型的變量C、可以用TT定義結(jié)構(gòu)體變量D、可以用CIN定義結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查typedef重新聲明一種結(jié)構(gòu)體類(lèi)型,其中CIN為結(jié)構(gòu)體類(lèi)型名,而不是結(jié)構(gòu)體變量,所以D選項(xiàng)正確。20、設(shè)有說(shuō)明int(*ptr)[M];其中的標(biāo)識(shí)符ptr是()。A、M個(gè)指向整型變量的指針B、指向M個(gè)整型變量的函數(shù)指針C、一個(gè)指向具有M個(gè)整型元素的一維數(shù)組的指針D、具有M個(gè)指針元素的一維指針數(shù)組,每個(gè)元素都只能指向整型變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)C語(yǔ)言的語(yǔ)法規(guī)則可知,int(*ptr)[M]中的標(biāo)識(shí)符ptr是一個(gè)指向具有M個(gè)整型元素的一維數(shù)組指針。21、對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含尺中的所有元組,這樣的集合運(yùn)算稱(chēng)為()。A、并運(yùn)算B、交運(yùn)算C、差運(yùn)算D、積運(yùn)算標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。22、定義無(wú)符號(hào)整數(shù)類(lèi)為UInt,下面可以作為類(lèi)UInt實(shí)例化值的是()。A、一369B、369C、0.369D、整數(shù)集合{1,2,3,4,5}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只有B選項(xiàng)369可以用無(wú)符號(hào)整數(shù)來(lái)表示和存儲(chǔ)。A選項(xiàng)一369有負(fù)號(hào),選項(xiàng)C0.369是小數(shù)都不能用無(wú)符號(hào)整數(shù)類(lèi)存儲(chǔ)。選項(xiàng)D是一個(gè)整數(shù)集合得用數(shù)組來(lái)存儲(chǔ)。23、有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤(pán)上輸入555667777abc后,y的值為()。A、55566B、566C、7777D、566777標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)樵谳斎敫袷娇刂品兄付ㄗ兞縥的輸入格式控制符為“%2d”,即變量.j所占的寬度為2,所以變量j只接收輸入數(shù)據(jù)的前兩位,從第3位開(kāi)始直到空格之間的輸入整數(shù)都會(huì)被保存到變量y中,因?yàn)閥為浮點(diǎn)型數(shù)據(jù),所以輸出結(jié)果為選項(xiàng)B)。24、有以下程序:#include#includestruetA{inta;charb[10];doublec;};structAf(struetAt);main(){struetAa={1001,“ZhangDa”,1098.0};a=f(a);printf(“%d,%s,%6.1f\n”,a.a(chǎn),a.b,a.c);}struetAf(struetAt){t.a(chǎn)=1002;strcpy(t.b,“ChangRong”);t.e=1202.0:returnt;}程序運(yùn)行后的輸出結(jié)果是()。A、1002,ZhangDa,1202.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復(fù)雜,其實(shí)比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對(duì)參數(shù)重新賦值并返回,所以該題目的答案為B選項(xiàng)。25、有以下計(jì)算公式若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是()。A、if(x>=0)y=sqrt(x);if(x<0)y=sqrt(一x);B、if(x>=0)y=sqrt(x);elsey=sqrt(一x);C、y=sqrt(x);D、if(x<0)y=sqrt(一x);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題重點(diǎn)考查的知識(shí)點(diǎn)是:sqrt()函數(shù)。sqrt()函數(shù)的作用是計(jì)算平方根,要求輸出的參數(shù)x必須大于等于0。題目公式的要求是無(wú)論x大于等于0還是小于0,y的值都為x絕對(duì)值的開(kāi)方。選項(xiàng)C中調(diào)用了sqrt(x)函數(shù),而沒(méi)有判斷x的正負(fù),則y=sqrt(x)會(huì)出錯(cuò)。26、設(shè)有兩行定義語(yǔ)句:intscanf;floatcase;則以下敘述正確的是()。A、第2行語(yǔ)句不合法B、兩行定義語(yǔ)句都合法C、第1行語(yǔ)句不合法D、兩行定義語(yǔ)句都不合法標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查用戶(hù)標(biāo)識(shí)符,用戶(hù)自己定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標(biāo)識(shí)符相同。本題中scanf為預(yù)定義標(biāo)識(shí)符,可以作為用戶(hù)標(biāo)識(shí)符;case為關(guān)鍵字,不能作為用戶(hù)標(biāo)識(shí)符,故而答案選A)。27、有以下程序#includeintm1(intx,inty){returnx<=y?x:y;}intm2(intx,inty){returnx<=y?y:x;}intfun(inta,intb){returna+b;}main(){intx=2,y=3,z=1;printf("%d\n",fun(m1(x,y),m2(y,z)));}程序的運(yùn)行結(jié)果是()。A、5B、6C、4D、3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析28、有以下程序#includetypedefstruct{intb,p;}A;voidf(Ac)/*注意:c是結(jié)構(gòu)變量名*/{intj;c.b+=1;c.p+=2;}main(){inti;Aa={1,2};f(a);printf("%d,%d\n",a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2B、2,4C、1,4D、2,3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析29、以下選項(xiàng)中非法的C語(yǔ)言字符常量是A、’\x9d’B、’9’C、’\x09’D、’\09’標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考察字符常量,字符常量是用單引號(hào)括起來(lái)的一個(gè)字符。例如:’a’、’=’、’+’等。轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線"\"開(kāi)頭,后跟一個(gè)或幾個(gè)字符。D選項(xiàng)中’\09’,\0表示后面的字符是八進(jìn)制數(shù)。又出現(xiàn)9所以是非法的,故D選項(xiàng)正確。30、有以下程序#include<stdio.h>intfuna(inta,intB){returna+b;}intfunb(inta,intB){returna-b;}intsss(int(*t)(),intx,inty){return((*t)(x,y));}main(){intx;x=sss(funa,9,3);x+=sss(funb,8,3);printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是A、24B、23C、17D、22標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由x=sss(funa,9,3);可得到x=9+3=12,而后直接傳入函數(shù)funb,x=x+8-3=12+5=17。因此C選項(xiàng)正確。31、程序中若有以下的說(shuō)明定義和語(yǔ)句:#include#includestructST{charnum[10];ints;};main(){structSTt,*p;p=&t;…}下列語(yǔ)句不能正確賦值的是()。A、(*p).s=2;p->num[0]=’\0’;B、p->s=12;p->num[0]=0;C、(*p).s=12;(*p).num=’’’’;D、p->s=12;strcpy((*p).mum,’’’’);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量使用,運(yùn)算符引用結(jié)構(gòu)體成員變量,結(jié)構(gòu)體指針使用一>運(yùn)算符引用結(jié)構(gòu)體成員變量。另外,由于成員變量num是字符數(shù)組,所以不能直接進(jìn)行賦值,若要對(duì)num賦空字符串值,可以把num中第一個(gè)元素賦值為0或’0\’,或者用strcpy()函數(shù)。32、定義結(jié)構(gòu)體數(shù)組structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);程序執(zhí)行后的輸出結(jié)果是()。A、2A3N4E5OB、1H213U4EC、1A2N3E4OD、1A2N3E4O標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體數(shù)組。x[i].num是結(jié)構(gòu)體x[i]中的num成員,x[i].name[2]是結(jié)構(gòu)體x[il中name成員的第3個(gè)元素。第一次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第二次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第三次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4E;第四次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即50。33、有以下程序#include<stdio.h>structS{inta;int*b;};main(){intx1[]={3,4},x2[]={6,7};structSx[]={1,x1,2,x2};printf("%d,%d\n",*x[0].b,*x[1].b);}程序的運(yùn)行結(jié)果是A、1,2B、3,6C、4,7D、變量的地址值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序的執(zhí)行過(guò)程為:定義整型數(shù)組x1,x2并進(jìn)行初始化,兩個(gè)數(shù)組長(zhǎng)度均為2。定義結(jié)構(gòu)體數(shù)組x,并為其初始化,則x[0].a=1,x[0].b=x1,x[1].a=2,x[0].b=x2。輸出x[0]的成員指針b指向的內(nèi)存單元值,即數(shù)組x1的第一個(gè)元素3,輸出x[1]的成員指針b指向的內(nèi)存單元值,即數(shù)組x2的第一個(gè)元6。程序的運(yùn)行結(jié)果是3,6,B選項(xiàng)正確。34、以下敘述正確的是A、只使用三種基本結(jié)構(gòu)即可解決任何復(fù)雜問(wèn)題B、C語(yǔ)言程序并不是必須要定義main()函數(shù)C、只要程序包含了任意一種基本結(jié)構(gòu),就肯定是結(jié)構(gòu)化程序D、程序中的語(yǔ)法錯(cuò)誤只能在運(yùn)行時(shí)才能顯現(xiàn)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言程序必須要定義main()函數(shù),B選項(xiàng)錯(cuò)誤;只有同時(shí)包含三種基本結(jié)構(gòu)時(shí),程序才是結(jié)構(gòu)化程序,C選項(xiàng)錯(cuò)誤;程序中的語(yǔ)法錯(cuò)誤在編譯時(shí)能顯現(xiàn),排除D選項(xiàng),答案選A。35、某循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:m),初始狀態(tài)為front=rear=m?,F(xiàn)經(jīng)過(guò)一系列的入隊(duì)操作和退隊(duì)操作后,front=m,rear=m-1,則該循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、m-1B、mC、1D、0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:循環(huán)隊(duì)列長(zhǎng)度為m,由初始狀態(tài)為front=rear=m,可知此時(shí)循環(huán)隊(duì)列為空。入隊(duì)運(yùn)算時(shí),首先隊(duì)尾指針進(jìn)1(即rear+1),然后在rear指針指向的位置插入新元素。特別的,當(dāng)隊(duì)尾指針rear=m+1時(shí),置rear=1。退隊(duì)運(yùn)算時(shí),排頭指針進(jìn)1(即front+1),然后刪除front指針指向的位置上的元素,當(dāng)排頭指針front=m+1時(shí),置front=1。從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素。如果rear-front>0,則隊(duì)列中的元素個(gè)數(shù)為rear-front個(gè);如果rear-front<0,則隊(duì)列中的元素個(gè)數(shù)為rear-front+m。該題中m-1<m,即rear-front<0,則該循環(huán)隊(duì)列中的元素個(gè)數(shù)為(m-1)-m+m=m-1。故選A選項(xiàng).36、設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。A、gets(s);B、while((s[i++]=getchar())?。健痋n’);s[i]=’\0’;C、scanf("%s",s);D、do{scanf("%c",&s[i]);}while(s[i++]?。健痋n’);s[i]=’\0’;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串的輸入不能使用scanf("%s",s);而應(yīng)該使用gets(s)。37、算法的時(shí)間復(fù)雜度是指()。A、算法的長(zhǎng)度B、執(zhí)行算法所需要的時(shí)間C、算法中的指令條數(shù)D、算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。38、當(dāng)變量C的值不為2、4、6時(shí),值為“真”的表達(dá)式是()。A、(c==2)||(c==4)||(c==6)B、(c>=2&&c<=6)||(c!=3)||(c!=5)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)&&(c%21=1)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查的是邏輯表達(dá)式。邏輯與運(yùn)算中只有兩邊的表達(dá)式同時(shí)為真.最后結(jié)果才為真;參與邏輯或運(yùn)算的表達(dá)式只要有一個(gè)為真,最后結(jié)果就為真。選項(xiàng)A中表達(dá)式的意思是當(dāng)c等于2或4或6時(shí),表達(dá)式的值為真,否則為假,所以不滿足題意。選項(xiàng)C中表達(dá)式的意思是當(dāng)c大于等于2且小于等于6,并且c不是奇數(shù)時(shí),表達(dá)式的值為真,否則為假。此時(shí)滿足該表達(dá)式的c只能取值為2、4、6,所以也不滿足題意。選項(xiàng)D中后面一個(gè)子表達(dá)式(c%2!=1)和選項(xiàng)C中的!(c%2)是等價(jià)的,都是判斷c不是奇數(shù),因此也不滿足題意。故B選項(xiàng)正確。39、若有定義語(yǔ)句:inta[4][10],*P,*q[4];,且0≤i<4,則錯(cuò)誤的賦值是()。A、p=aB、q[i]=a[i]C、p=a[i]D、p=&a[2][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二維數(shù)組名是指向指針的指針,所以a和q都為指向指針的指針,而p為指向int類(lèi)型的指針,p和a不同類(lèi)型,故A項(xiàng)p=a賦值語(yǔ)句錯(cuò)誤。其余選項(xiàng)可以正確賦值,其中D項(xiàng)是用&返回整數(shù)的地址,然后復(fù)賦值p。二、程序填空題(本題共1題,每題1.0分,共1分。)40、給定程序中,函數(shù)fun的功能是將不帶頭結(jié)點(diǎn)的單向鏈表逆置,即若原鏈表中從頭至尾結(jié)點(diǎn)數(shù)據(jù)域依次為2、4、6、810,逆置后,從頭至尾結(jié)點(diǎn)數(shù)據(jù)域依次為10、8、6、4、2。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容并把下畫(huà)線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#defineN5typedefstructnode{intdata;structnode*next,}NODE;/**********found***********/【1】fun(NODE*h){NODE*P,*q,*r;p=h;if(p==NULL)returnNULL;q=p一>next;P一>next=NULL:while(q){/**********found***********/r=q一>【2】;q一>nexL=P,p=q,/**********found***********/q=【3】,}returnp,}NODE*creatlist(inta[]){NODE*h,*p,*q,inti;h=NULL;for(i=0;i<N;i++){q=(NODE*)malloc(sizeof(NODE));q一>data=a[i];q一>next=NULL;if(h==NULL)h=p=q,else{P一>next=q;p=q,)}returnh;}voidoutlist(NODE*h){NODE*p;P=h;if(p=NULL)printf(“ThelistisNULL!\n”);else{printf(“\nHead”);do{printf(“一>%d”,p一>data),p=P一>next;)while(P!=NULL);printf(“一>End\n”);}}main(){NODE*head;inta[N]={2,4,6,8,10},head=creatlist(a);printf(“\nTheoriginallist:\n”);outlist(head);head=fun(head);printf(“\nThelistafteriverting:\n”);outlist(head);}標(biāo)準(zhǔn)答案:(1)NODE(2)next(3)r知識(shí)點(diǎn)解析:填空1:本題考查了函數(shù)指針變量的函數(shù)返回值的類(lèi)型,*fun(NODE*)的返回值為p,而p的數(shù)據(jù)類(lèi)型為NODE,因此本空應(yīng)該填寫(xiě)NODE。填空2:從此空的形式p一>可知本空應(yīng)該填寫(xiě)next。填空3:本題要求將不帶頭結(jié)點(diǎn)的單向鏈表逆置,為了使q的指針向后移,此空應(yīng)該填寫(xiě)r。三、程序修改題(本題共1題,每題1.0分,共1分。)41、使用VC++2010打開(kāi)考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:將s所指字符串中位于奇數(shù)位置的字符或ASCII碼值為偶數(shù)的字符依次放人t所指數(shù)組中。例如,字符串中的數(shù)據(jù)為“AABBCCDDEEFF”,則輸出應(yīng)當(dāng)是“ABBCDDEFF”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<conlo.h>#include<stdio.h>#include<string.h>#defineN80voidfun(char*s,chart[]){inti,j=0;for(i=0;i<(int)strlen(s);i++)/*********found*********/if(i%2&&s[i]%2==0)t[j++]=s[
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代文學(xué)史自考知識(shí)點(diǎn):沈從文作品考點(diǎn)總結(jié)
- 2024-2025學(xué)年高中政治第四單元當(dāng)代國(guó)際社會(huì)第九課第1框國(guó)際社會(huì)的主要成員:主權(quán)國(guó)家和國(guó)際組織作業(yè)含解析新人教版必修2
- 2025年度租賃車(chē)輛租賃政策及法規(guī)解讀服務(wù)合同2篇
- 上海電機(jī)學(xué)院《演講與口才》2023-2024學(xué)年第一學(xué)期期末試卷
- 課程設(shè)計(jì)行楷怎么寫(xiě)好
- 閥體工藝及夾具課程設(shè)計(jì)
- 2025年度庫(kù)房租賃及智能化倉(cāng)儲(chǔ)解決方案合同2篇
- 2025屆江蘇省徐州邳州市中考?xì)v史仿真試卷含解析
- 二零二五年度酒店與旅行社生態(tài)旅游合作框架協(xié)議3篇
- 二零二四女方離婚協(xié)議書(shū)模板與財(cái)產(chǎn)分割及子女撫養(yǎng)權(quán)合同2篇
- 離職分析報(bào)告
- 春節(jié)家庭用電安全提示
- 醫(yī)療糾紛預(yù)防和處理?xiàng)l例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學(xué)寒假作業(yè)1
- 保險(xiǎn)產(chǎn)品創(chuàng)新與市場(chǎng)定位培訓(xùn)課件
- (完整文本版)體檢報(bào)告單模版
- 1例左舌鱗癌手術(shù)患者的圍手術(shù)期護(hù)理體會(huì)
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 鋼結(jié)構(gòu)牛腿計(jì)算
評(píng)論
0/150
提交評(píng)論