版權(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ī)試模擬試卷8(共9套)(共344題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、以下敘述中錯(cuò)誤的是()。A、用戶(hù)定義的函數(shù)中可以沒(méi)有return語(yǔ)句B、用戶(hù)定義的函數(shù)中可以有多個(gè)return語(yǔ)句,以便可以調(diào)用一次返回多個(gè)函數(shù)值C、用戶(hù)定義的函數(shù)中若沒(méi)有return語(yǔ)句,則應(yīng)當(dāng)定義函數(shù)為void類(lèi)型D、函數(shù)的return語(yǔ)句中可以沒(méi)有表達(dá)式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:用戶(hù)定義的函數(shù)有兩種:①void函數(shù),可以沒(méi)有return語(yǔ)句,如果有return語(yǔ)句,也不可以返回任何表達(dá)式;②指定返回類(lèi)型函數(shù),至少有一個(gè)返回語(yǔ)句。在一個(gè)函數(shù)內(nèi),可以根據(jù)需要在多處出現(xiàn)return語(yǔ)句,但無(wú)論有多少個(gè)return語(yǔ)句,return語(yǔ)句只會(huì)被執(zhí)行一次,然后退出函數(shù),并且只能返回一個(gè)函數(shù)值。2、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實(shí)現(xiàn)用戶(hù)需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。它包括從E-R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實(shí)現(xiàn)。3、下面程序的輸出結(jié)果是()。#includemain(){chara[]={’a’,’b’,’c’,’d’,’f’,’g’},*p;p=a;printf(“%c\n”,*p+4);}A、aB、bC、eD、f標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“*”號(hào)的優(yōu)先級(jí)比“+”的優(yōu)先級(jí)高,所以先執(zhí)行“*p”;指針p指向的是數(shù)組的首地址,因此*p=a,再加4得‘e’。4、下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡(jiǎn)單選擇排序C、直接插人排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序、簡(jiǎn)單插入排序與簡(jiǎn)單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。5、按照C語(yǔ)言規(guī)定的用戶(hù)標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。A、大寫(xiě)字母B、下劃線C、數(shù)字字符D、連接符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中標(biāo)識(shí)符由字母、下劃線、數(shù)字組成,且開(kāi)頭必須是字母或下劃線。所以D選項(xiàng)中的連接符不合法。6、有以下程序,其中%u表示按無(wú)符號(hào)整數(shù)輸出()。main(){unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/printf("%u\n",x);}程序運(yùn)行后的輸出結(jié)果是()。A、-1B、65535C、32767D、0xFFFF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)椋表示按無(wú)符號(hào)整數(shù)輸出,而x用十六進(jìn)制表示為0xFFFF,所以輸出無(wú)符號(hào)整數(shù)的最大值65535。7、運(yùn)行下列程序時(shí),若輸入數(shù)據(jù)為“321”,則輸出結(jié)果是()。main(){intnum,i,j,k,s;scanf("%d",&num);if(num>99)s=3;elseif(num>9)s=2;elses=l;i=num/100;j=(num—i*100)/10;k=(num—i*100—j*10);switch(s){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);casel:printf("%d\n",k);}}A、123B、1,2,3C、321D、3,2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if…else語(yǔ)句和switch語(yǔ)句。scanf函數(shù)通過(guò)鍵盤(pán)讀入num的值。因?yàn)椤皀um=321>99”,所以“s=3,i=3,j=2,k=1”。因?yàn)閟=3,所以執(zhí)行case3.輸出k,j,i的值,然后通過(guò)break結(jié)束程序。8、有以下程序:#include<stdio.h>#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b:2;printf("%4.1f\n",S(a+b));}程序運(yùn)行后的輸出結(jié)果是()。A、7.5B、31.5C、程序有錯(cuò)無(wú)輸出結(jié)果D、14.0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:宏定義不是C語(yǔ)句,末尾不需要有分號(hào)。所以語(yǔ)句printf("%4.1f\n",s(a+b));展開(kāi)后為printf("%4.1f\n",3.5;*a+b*a+b;);所以程序會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。9、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式,所以選擇D。10、在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱(chēng)為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱(chēng)為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱(chēng)為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱(chēng)為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個(gè)作為用戶(hù)使用的鍵稱(chēng)為主鍵或主碼。11、若有定義語(yǔ)句:intx=10;,則表達(dá)式x-=x+x的值為()。A、0B、-20C、-10D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算術(shù)運(yùn)算符+的優(yōu)先級(jí)高于-=,且-=的結(jié)合方向?yàn)樽杂蚁蜃?,所以表達(dá)式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,選擇C。12、以下定義數(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ò)。13、有以下程序:#include<stdio.h>voidfun1(char*p){char*q;q=p;while(*q!=’\0’){(*q)++;q++;}main(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是()。A、PrphsbnB、ProhsbnC、ProgsbnD、Program標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:(*q)++是q所指的字符加1,q++就是指針移到下一個(gè)字符。因此B選項(xiàng)正確。14、有以下程序:#include#include“string.h”voidfun(char*s[],intn){char*t;inti.d;for(i=0;istrlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={“bcc”,“bbcc”,“xy”,“aaaacc”,“aabcc”);fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A、xy,aaaaccB、aaaacc,xyC、bcc,aabccD、aabcc,bcc標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從main函數(shù)入手,定義了一個(gè)一維數(shù)組并賦初值,接著調(diào)用函數(shù)fun(),函數(shù)的功能是:比較數(shù)組中各元素的長(zhǎng)度,按元素長(zhǎng)度從小到大的順序排列元素,所以執(zhí)行fun(SS,5)函數(shù)后,*ss[]={"xy","bcc","bbcc""aabcc""aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。15、以下程序的輸出結(jié)果是()。#include<stdio.h>voidprt(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,‰\n’’,++*x,++*y,*(z++));”使得a和b的值均加1,而“*(z++)”由于先執(zhí)行“z++”所以c的值不變;第二次調(diào)用函數(shù)“pn(&a,&b,&c);”使得a和b在上一次的基礎(chǔ)上再各自加1(因?yàn)樾螀⒑蛯?shí)參進(jìn)行的是地址傳遞),而c的值仍不變。16、對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A、隊(duì)頭指針是固定不變的B、隊(duì)頭指針一定大于隊(duì)尾指針C、隊(duì)頭指針一定小于隊(duì)尾指針D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu)所以對(duì)頭指針有時(shí)可能大于隊(duì)尾指針有時(shí)也可能小于隊(duì)尾指針。17、若有代數(shù)式,(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則下列能夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是()。A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(X)))標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:n和e的x冪次方,要分別調(diào)用C語(yǔ)言的數(shù)學(xué)庫(kù)函數(shù)doublepow(n,x)和doubleexp(x),因?yàn)檫@兩個(gè)函數(shù)的返回值都為double型,對(duì)兩者的和計(jì)算絕對(duì)值,調(diào)用庫(kù)函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對(duì)值,再調(diào)用開(kāi)平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計(jì)算出的結(jié)果就是題干中表達(dá)式的值。18、設(shè)已有定義:floatx;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語(yǔ)句中正確的是()。A、float*p=&;x;B、int*p=(float)x;C、floatp=&;x;D、float*p=1024:標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查指針變量的初始化。只能把對(duì)應(yīng)類(lèi)型的變量的地址賦值給指針,選項(xiàng)B錯(cuò)誤;定義指針時(shí)要加上“*”標(biāo)明該變量為一個(gè)指針變量,選項(xiàng)C錯(cuò)誤;不能把一個(gè)整數(shù)直接賦值給指針變量,選項(xiàng)D錯(cuò)誤;所以答案選A。19、if語(yǔ)句的基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。A、必須是邏輯值B、必須是整數(shù)值C、必須是正數(shù)D、可以是任意合法的數(shù)值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:if語(yǔ)句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。所以D選項(xiàng)正確。20、有以下程序:#includemain(){intk=5,n=0;do{switch(k){ease1:ease3:n+=1;k一一;break;default:n=0;k一一;case2:ease4:n+=2;k一一;break;}pfintf(“%d”,n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是()。A、02356B、0235C、235D、2356標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:k的值為5,逐個(gè)對(duì)case語(yǔ)句進(jìn)行匹配,均不匹配,執(zhí)行default下的語(yǔ)句n=0;k一一。再執(zhí)行case2:cased.:后面的語(yǔ)句n+=2;k一一;。執(zhí)行break語(yǔ)句跳出switch判斷,打印n的值,即2。經(jīng)過(guò)第一次循環(huán)后,k的值為3,然后進(jìn)行k>0&&n<5條件判斷為真。第二次執(zhí)行循環(huán)體,執(zhí)行case3:后面的語(yǔ)句n+=1;k一一;。再執(zhí)行break語(yǔ)句跳出循環(huán),此時(shí)打印n的值3,此時(shí)k的值為2。第三次執(zhí)行循環(huán)體k的值為2,滿(mǎn)足條件,執(zhí)行case2:case4:后面的語(yǔ)句n+=2;k一一;執(zhí)行break語(yǔ)句跳出循環(huán)體,打印n的值5。此時(shí)n不滿(mǎn)足條件k>0&&n<5,所以結(jié)束循環(huán)。整個(gè)程序的打印結(jié)果為235。21、下列方法中,不屬于軟件調(diào)試方法的是()。A、回溯法B、強(qiáng)行排錯(cuò)法C、集成測(cè)試法D、原因排除法標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件調(diào)試主要采用以下三種方法:強(qiáng)行排錯(cuò)法:作為傳統(tǒng)的調(diào)試方法,其過(guò)程可概括為設(shè)置斷點(diǎn)、程序暫停、觀察程序狀態(tài)、繼續(xù)運(yùn)行程序。回溯法:該方法適合于小規(guī)模程序的排錯(cuò)、即一旦發(fā)現(xiàn)了錯(cuò)誤,先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。原因排除法:原因排除法是通過(guò)演繹和歸納,以及二分法來(lái)實(shí)現(xiàn)。22、設(shè)有如下類(lèi)型說(shuō)明語(yǔ)句typedefstruet{intnum;struet{inty,m,d;}date;}PER;則以下定義結(jié)構(gòu)體數(shù)組并賦初值的語(yǔ)句中錯(cuò)誤的是()。A、PERst[2]={{1001},2008,8,1,{1002},2006,5,20};B、PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};C、PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};D、PERst[2]={1001,2008,8,1,1002,2006,5,20};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體PER類(lèi)型定義了兩個(gè)成員:num為整型,date為嵌套的結(jié)構(gòu)體類(lèi)型,初始化時(shí),成員值的順序必須與成員定義的順序相同,num必須是整數(shù),date必須是小括號(hào)括起來(lái)的嵌套的三個(gè)整數(shù),選項(xiàng)A中,{1001}和{1002}都不是整數(shù),所以選項(xiàng)A錯(cuò)誤,本題答案為A。23、設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A、6B、8C、9D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:R為n元關(guān)系,有p個(gè)元組S為m元關(guān)系,有q個(gè)元組。兩個(gè)關(guān)系笛卡兒積是一個(gè)n+m元的關(guān)系,元組個(gè)數(shù)是q×p。所以T的元組的個(gè)數(shù)為9個(gè)。24、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++:switch(b%3){default:m++;case0:m++:break;}}printf(’’%d\n’’,m);}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語(yǔ)句,將m加1,遇到break語(yǔ)句跳出switch。25、閱讀以下程序#includemain(){IntCase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下說(shuō)法正確的是()。A、定義語(yǔ)句出錯(cuò),Case是關(guān)鍵字,不能用作用戶(hù)自定義標(biāo)識(shí)符,printF不能用作用戶(hù)自定義標(biāo)識(shí)符.B、定義語(yǔ)句出錯(cuò),Int無(wú)法被識(shí)別。C、定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D、定義語(yǔ)句無(wú)錯(cuò),printf不能輸出Case的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言是一種大小寫(xiě)敏感的語(yǔ)言,因此Int應(yīng)為int,而CaseprintF則可以使用。26、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說(shuō)明書(shū)評(píng)審D、制定軟件集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作有:需求獲??;需求分析;編寫(xiě)需求規(guī)格說(shuō)明書(shū);需求評(píng)審,所以選擇D。27、設(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正確。28、有以下程序#include<stdio.h>main(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;}printf("%d,",--x);}}程序的運(yùn)行結(jié)果是A、7,4,2,B、8,7,5,2,C、9,7,6,4,D、8,5,4,2,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:coutinue的作用是跳出循環(huán)體中剩余的語(yǔ)句而進(jìn)行下一次循環(huán),第一次循環(huán)x的值為8,循環(huán)體中if條件成立,打印x的值8后將x減1,再執(zhí)行continue語(yǔ)句,跳出本次循環(huán),第二次判斷循環(huán)條件時(shí),x的值變?yōu)?,不滿(mǎn)足循環(huán)體內(nèi)if條件,執(zhí)行打印--x的操作,即打印5后跳出循環(huán),第三次判斷循環(huán)條件時(shí)x的值為4,滿(mǎn)足循環(huán)體中if條件,執(zhí)行打印x--的操作,即打印4,后將x值減一,執(zhí)行continue語(yǔ)句,跳出本次循環(huán),第四次判斷循環(huán)條件時(shí)x的為2,滿(mǎn)足循環(huán)體中if條件,打印x--,即打印2后將x減一,執(zhí)行continue語(yǔ)句,跳出本次循環(huán),在進(jìn)行for條件表達(dá)式中第三個(gè)表達(dá)式x--的操作后x的值為0,不滿(mǎn)足條件結(jié)束循環(huán),所以打印結(jié)果為8,5,4,2,。29、有以下程序#includemain(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k:}k--;}printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、4C、6D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)闆](méi)有break語(yǔ)句,當(dāng)k=2的時(shí)候,會(huì)順序執(zhí)行兩條語(yǔ)句,k=1的時(shí)候,會(huì)順序執(zhí)行3條語(yǔ)句。30、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35。現(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。在循環(huán)隊(duì)列中進(jìn)行出隊(duì)、入隊(duì)操作時(shí),頭尾指針仍要加1,朝前移動(dòng)。只不過(guò)當(dāng)頭尾指針指向向量上界時(shí),其加1操作的結(jié)果是指向向量的下界0。由于入隊(duì)時(shí)尾指針向前追趕頭指針,出隊(duì)時(shí)頭指針向前追趕尾指針,故隊(duì)空和隊(duì)滿(mǎn)時(shí),頭尾指針均相等。答案為D選項(xiàng)。31、設(shè)有定義:doublex=5.16894;,則語(yǔ)句printf("%lf\n",(int)(x*1000+0.5)/1000.);的輸出結(jié)果是()。A、5.16900B、5.16800C、0.00000D、輸出格式說(shuō)明符與輸出項(xiàng)不匹配,產(chǎn)生錯(cuò)誤信息標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:(x*1000+0.5)表示x移動(dòng)3位小數(shù),加0.5,也就是小數(shù)第4位加5,若這位大于等于5,則進(jìn)1到個(gè)位。因?yàn)椤?.16894*10005168.94+0.55169.44”所以(int)(x*1000+0.5)強(qiáng)制轉(zhuǎn)換為整型結(jié)果為5169。(5169/1000.0)5.169,由于1000.0結(jié)果自動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù)所以printf(“%lf\n”,5.169)結(jié)果是5.16900。故答案為A選項(xiàng)32、若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,5,1B、1,5,5C、-1,4,4D、-1,4,-1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:逗號(hào)運(yùn)算符的結(jié)合性從左到右,因此逗號(hào)表達(dá)式將從左到右進(jìn)行計(jì)算,且逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,先計(jì)算a+=++b,結(jié)果a為1,b為1,然后計(jì)算b+=4,b的值為5,逗號(hào)表達(dá)式的值為其中最后一個(gè)表達(dá)式的值,所以將5賦給變量c,即a為1,b為5,c為5,所以選擇B。33、有以下程序:#include#defineM6#defineg(x)(x*M)main(){intm,n,k=1;m=g(k+1);n=g(2);printf(’’%d,%d\n’’,m,n);}程序運(yùn)行后的輸出結(jié)果是()。A、7,12B、12,12C、7,11D、7,7標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:宏定義一定要先代入再計(jì)算表達(dá)式的值,m=(k+1*6)=(1+6)=7;n=(2*6)=12。34、假如下列選項(xiàng)中的變量已正確定義并成功賦值,其中正確的表達(dá)式是()。A、int(22.1%2)B、n=y+m+5,++yC、x=y*3=x+kD、x=21%7.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:求余運(yùn)算符的左右兩個(gè)數(shù)字都必須是整數(shù),所以選項(xiàng)A和D錯(cuò)誤,另外,進(jìn)行整型強(qiáng)制轉(zhuǎn)化時(shí)正確的表達(dá)式是(int)x,而不是int(x);選項(xiàng)C中不能將x+k的值賦給y*3,所以選項(xiàng)C錯(cuò)誤。選項(xiàng)B中涉及逗號(hào)運(yùn)算符,它的級(jí)別最低,因此,選項(xiàng)B表達(dá)式的執(zhí)行過(guò)程是先將y+m+5的值賦給n,y值自加一次。35、設(shè)有某函數(shù)的說(shuō)明為int*func(inta[10],intn);則下列敘述中,正確的是A、形參a對(duì)應(yīng)的實(shí)參只能是數(shù)組名B、說(shuō)明中的a[10]寫(xiě)成a[]或*a效果完全一樣C、func的函數(shù)體中不能對(duì)a進(jìn)行移動(dòng)指針(如a++)的操作D、只有指向10個(gè)整數(shù)內(nèi)存單元的指針,才能作為實(shí)參傳給a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察返回指針值的函數(shù)相關(guān)知識(shí),返回指針值的函數(shù),一般定義形式為:類(lèi)型名*函數(shù)名(參數(shù)列表)。func函數(shù)被定義為指針型函數(shù),它的形參inta[10]和intn,分別指一維數(shù)組a[0]和整型變量n。36、有以下程序#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)正確。37、以下對(duì)C語(yǔ)言函數(shù)的敘述中正確的是A、調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳給形參,形參的值不能傳給實(shí)參B、函數(shù)既能嵌套定義,又能遞歸定義C、函數(shù)必須有返回值,否則不能使用D、程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序中標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言不能嵌套定義函數(shù),能遞歸定義函數(shù),因此B選項(xiàng)錯(cuò)誤;函數(shù)可以沒(méi)有返回值,沒(méi)有返回值的函數(shù)返回類(lèi)型為void,C選項(xiàng)錯(cuò)誤;程序有調(diào)用關(guān)系的所有函數(shù)可以不放在同一源程序中,D選項(xiàng)錯(cuò)誤,答案為A選項(xiàng)。38、有以下程序#include<stdio.h>#include<string.h>main(){charstr[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是A、10,One*Dream!B、9,One*Dream!C、9,One*WorldD、10,One*World標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:unsignedintstrlen(char*s);計(jì)算字符串s的(unsignedint型)長(zhǎng)度,不包括’\0’在內(nèi);p指向數(shù)組的第二個(gè)元素,因此strlen(p)=10,并打印,故答案為A選項(xiàng)39、軟件生命周期是指A、軟件的定義和開(kāi)發(fā)階段B、軟件的需求分析、設(shè)計(jì)與實(shí)現(xiàn)階段C、軟件的開(kāi)發(fā)階段D、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:通常把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過(guò)程稱(chēng)為軟件生命周期。選項(xiàng)A、B、C選項(xiàng)均為生命周期的一部分。故選D選項(xiàng)40、下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt==3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<,4;k++){fun(a,&x);printf("%d,",x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素“逆置”賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。二、程序填空題(本題共1題,每題1.0分,共1分。)41、下列給定程序中,函數(shù)fun的功能是:將形參a所指數(shù)組中的前半部分元素中的值與后半部分元素中的值對(duì)換。形參n中存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),若n為奇數(shù),則中間的元素不動(dòng)。例如,若a所指數(shù)組中的數(shù)據(jù)為:1,2,3,4,5,6,7,8,9,則調(diào)換后為:6,7,8,9,5,1,2,3,4。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容并將下畫(huà)線刪除.使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN9voidfun(inta[],intn){inti,t,P;/**********found***********/P=(n%2==0)?n/2:n/2+【1】;for(i=0;i<n/2;i++){t=a[i];/**********found***********/a[i]=a[P+【2】];/**********found***********/【3】=t,}}main(){intb[N]={1,2,3,4,5,6,7,8,9),i;printf(“\nTheoriginaldata:\n”);for(i=0,i<N;i++)printf(“%4d”,b[i]);printf(“\n”);fun(b,N),printf(“\nThedataaftermoving:\n”);for(i=0;i<N;i++)printf(“%4d”,b[i]),printf(“\n”);}標(biāo)準(zhǔn)答案:(1)1(2)i(3)a[p+i]或*(a+p+i)知識(shí)點(diǎn)解析:填空1:該處是判斷數(shù)組元索的個(gè)數(shù)足奇數(shù)還是偶數(shù),為奇數(shù)時(shí)要使當(dāng)前位置加1,使p指向數(shù)組中間位置。填空2和填空3:這里是一個(gè)比較常見(jiàn)的數(shù)組位置調(diào)換程序,應(yīng)填入i和a[p+i]或*(a+p+i)。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODll.C中函數(shù)fhn的功能是:將m(1≤m≤10)個(gè)字符串連接起來(lái),組成一個(gè)新串,放入pt所指存儲(chǔ)區(qū)中。例如:把3個(gè)串:“abc”,“CD”,“EF”連接起來(lái),結(jié)果是“abcCDEF”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#includevoidfun(charstr[][10],intm,char*pt){/**********found***********/Intk,q,i;for(k=0;k標(biāo)準(zhǔn)答案:(1)intk,q,i;(2)pt[i]=str[k][1i]j知識(shí)點(diǎn)解析:函數(shù)的功能是將m(1≤m≤10)個(gè)字符串連接起來(lái)。(1)第一標(biāo)識(shí)下是整型變量k、q和i的定義,根據(jù)C語(yǔ)言中整型變量的定義方式,第一標(biāo)識(shí)下應(yīng)為“intk,q,i;”。(2)第二個(gè)標(biāo)識(shí)下的“pt[i]=str[k,i];”語(yǔ)句應(yīng)該將str中的字符依次拷貝到pt中,根據(jù)C語(yǔ)言中對(duì)二維數(shù)組每一位的取值,應(yīng)該是str[k][i],所以“pt[i]=str[k,i];”改為“pt[i]=str[k][i];四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、程序定義了NxN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun(inta[][N]),函數(shù)的功能是:使數(shù)組左下三角元素中的值全部置成0。例如:a數(shù)組中的值為則返回主程序后a數(shù)組中的值應(yīng)為注意:部分源程序存在文件PROGl.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#inc2ude#inc2ude#defineN5voidfun(inta[][N]){}NONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,j,a[5][5];rf=fopen(“in.dat”,“r”);wf=fopen(“out.dat”,“w”);for(i=0;i<5;i++)for(j=0;j<5;j++)fscanf(rf,“%d”,&a[i][j]);fun(a);for(i=0;i<5;i++){for(j=0;j<5;j++)fprintf(wf,“%4d”,a[i][j]);fprintf(wf,“\n”);}fclose(rf);fclose(wf);}main(){inta[N][N],i,j;printf("*****Thearray*****\n");for(i=0;i標(biāo)準(zhǔn)答案:inti,j;for(i=0;i知識(shí)點(diǎn)解析:程序功能是使數(shù)組左下半三角元素的值全部置成0。(1)對(duì)二維數(shù)組常用雙重循環(huán)結(jié)構(gòu)來(lái)處理:外層循環(huán)控制二維數(shù)組的行處理,內(nèi)層循環(huán)控制二維數(shù)組的列處理。(2)左下半三角元素的下標(biāo)特點(diǎn)是列下標(biāo)小于或等于行下標(biāo),即i<=i。(3)依次訪問(wèn)二維數(shù)組,把符合以上條件的元素的值賦0。該題是對(duì)矩陣操作的考查。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、對(duì)于一個(gè)正常運(yùn)行的C程序,下列敘述中正確的是()。A、程序的執(zhí)行總是從main函數(shù)開(kāi)始,在main函數(shù)結(jié)束B(niǎo)、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開(kāi)始,在main函數(shù)結(jié)束C、程序的執(zhí)行總是從main函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束D、程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一個(gè)C語(yǔ)言源程序無(wú)論包括了多少函數(shù),總是從main函數(shù)開(kāi)始執(zhí)行,從main函數(shù)結(jié)束。2、在一棵二叉樹(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è)。3、設(shè)有定義:doublex=2.12;,則以下各項(xiàng)中不能完整輸出變量x值的語(yǔ)句是()。A、printf("x=%5.of\n",x);B、printf("x=%f\n",x);C、printf("x=%lf\n",x);D、printf("x=%O.5f\n",x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式輸出,“格式控制字符串”部分為“%f”表示按照浮點(diǎn)型輸出,選項(xiàng)B正確;加入長(zhǎng)度格式符1即“%1”表示按照雙精度浮點(diǎn)型輸出,選項(xiàng)C正確;若要控制輸出精度,則需以“.”開(kāi)頭,后跟十進(jìn)制整數(shù),如“%.2f”或“%O.2f”,選項(xiàng)D正確;控制輸出寬度則是用整數(shù)表示,如“%5f”,選項(xiàng)A中“%5.Of’’表示輸出寬度為5,右對(duì)齊,小數(shù)點(diǎn)后保留位數(shù)為0,所以結(jié)果輸出為2,不能完整輸出x,答案選A。4、有以下程序:#include<stdio.h>voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、321678B、876543C、1098765D、345678標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中的函數(shù)fun()的功能是將數(shù)組k中前5個(gè)元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。5、下列敘述中正確的是()。A、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)結(jié)構(gòu)具備如下兩個(gè)基本特征:(1)線性表中的所有元素所占的存儲(chǔ)空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。用一組任意的存儲(chǔ)單元來(lái)依次存放線性表的節(jié)點(diǎn),這組存儲(chǔ)單元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位置上的。因此C選項(xiàng)正確。6、以下對(duì)聯(lián)合類(lèi)型敘述正確的是()。A、可以對(duì)聯(lián)合變量名直接賦值B、使用聯(lián)合變量的目的是為了節(jié)省內(nèi)存C、任何一個(gè)聯(lián)合變量可以同時(shí)引用聯(lián)合中的不同成員D、聯(lián)合類(lèi)型定義中不能同時(shí)出現(xiàn)結(jié)構(gòu)類(lèi)型的成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:山于聯(lián)合體是同一存儲(chǔ)區(qū)域山不同類(lèi)型的變量共享,所以不可以直接對(duì)聯(lián)合體變量名進(jìn)行賦值,且聯(lián)合體中的空間在某一時(shí)刻只能保持某一成員的數(shù)據(jù);另外合體中可以出現(xiàn)結(jié)構(gòu)類(lèi)型的成員。7、己知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。A、一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)B、一個(gè)文件指針,指向要讀的文件C、一個(gè)指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置D、一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:ffead(buffer,size,count,fp))。ffead函數(shù)參數(shù)說(shuō)明:“buffer”是一個(gè)指針,對(duì)fread來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫(xiě)的字節(jié)數(shù);“count”是要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。8、在數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部結(jié)構(gòu)體系中,索引屬于()。A、模式B、內(nèi)模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)模式又稱(chēng)物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤(pán)及磁盤(pán)操作)。9、有兩個(gè)關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是()。A、選擇B、交C、投影D、并標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系T是由關(guān)系R的第3、4行的元組組成的,很顯然這是對(duì)關(guān)系R進(jìn)行選擇運(yùn)算的結(jié)果??梢院?jiǎn)單理解為:選擇運(yùn)算是對(duì)行的操作,投影運(yùn)算是對(duì)列的操作。選擇是從表中選出滿(mǎn)足給定條件的元組組成新表。故C選項(xiàng)正確。10、交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A、&B、^C、‖D、~標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:按邏輯位運(yùn)算的特定作用主要有3點(diǎn):①用按位與運(yùn)算將特定位清0或保留特定位;②用按位或運(yùn)算將特定的位置設(shè)置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。11、有以下程序:#includemain(){intm=1,n=2,*P=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*P,*q);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中定義了兩個(gè)整型變量,然后用兩個(gè)指針?lè)謩e指向這兩個(gè)整型變量,交換指針,那么原來(lái)指向第一個(gè)整數(shù)的指針將指向第二個(gè)整數(shù),原來(lái)指向第二個(gè)整數(shù)的指針將指向第一個(gè)整數(shù)。12、下面程序運(yùn)行后的輸出結(jié)果是()。#inc1udemain(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[i]];printf("%d\n",s);}A、12B、15C、11D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這道題目是計(jì)算一維數(shù)組b中某些元素的和。這些元素的下標(biāo)值是一維數(shù)組a中元素值。s=0+b[1]+b[0]+b[4]+b[2]+b[0]=2+1+5+3+1=12.13、以下敘述中錯(cuò)誤的是()。A、gets函數(shù)用于從終端讀入字符串B、getchar函數(shù)用于從磁盤(pán)文件讀入字符C、fputs函數(shù)用于把字符串輸出到文件D、fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符處理函數(shù)和文件操作函數(shù),屬于基礎(chǔ)知識(shí),其中B選項(xiàng)getchar函數(shù)是用于從終端讀入一個(gè)字符。14、下列敘述中正確的是()。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)。15、一般情況下,當(dāng)對(duì)關(guān)系R和S進(jìn)行自然連接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的()。A、記錄B、行C、屬性D、元組標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:進(jìn)行自然連接時(shí)要求兩個(gè)關(guān)系具有相同列,即屬性。16、以下各項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。A、x%2==0B、x/2C、x%21=0D、x%2==1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)x為大于1的奇數(shù)時(shí),x%2==0表達(dá)式為0,所以答案為A。17、若有定義語(yǔ)句:char*s1="OK",*s2="ok";以下選項(xiàng)中,能夠輸出"OK"的語(yǔ)句是A、if(strcmp(s1,s2)!=0)puts(s2);B、if(strcmp(s1,s2)!=0)puts(s1);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比(按照ASCII碼值大?。?,以第一個(gè)不相同的字符的大小作為比較結(jié)果。因?yàn)椤疧K’<’ok’,所以strcmp(s1,s2)為負(fù)值,只有B選項(xiàng)正確。18、有以下程序:#includeintfun(intx[],intf1){staticintsum=0,i;for(i=0;iA、55B、50C、45D、60標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。因此D選項(xiàng)正確。19、若x=4,y=5,則x&y的結(jié)果是()。A、0B、4C、3D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查按位與運(yùn)算的知識(shí)點(diǎn)。按位與是對(duì)兩個(gè)運(yùn)算量相應(yīng)的位進(jìn)行邏輯與,“&”的規(guī)則和邏輯與“&&”相同。x=4的二進(jìn)制為00000100,v=5的二進(jìn)制為00000101,x&y=00000100,轉(zhuǎn)化為十進(jìn)制即為4。20、若有以下語(yǔ)句:typedefstructS{intg;charh;}T;以下敘述中正確的是()。A、可用s定義結(jié)構(gòu)體變量B、可用T定義結(jié)構(gòu)體變量C、S是struct類(lèi)型的變量D、T是structS類(lèi)型的變量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查typedef重新聲明一種結(jié)構(gòu)體類(lèi)型,那么T為結(jié)構(gòu)體類(lèi)型,而不是結(jié)構(gòu)體變量,所以B選項(xiàng)正確。21、以下關(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è)源文件可由自己的ma1n函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(inc1ude命令僅為其中的一種)。C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義。C語(yǔ)言程序的書(shū)寫(xiě)中,多個(gè)語(yǔ)句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語(yǔ)句。一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。22、若有以下程序:#includemain(){inta=1,b=2,c=3,d:4;if((a=2)∣∣(b=1))c=2;if((c==3)&&(d=-1))a=5;printf("%d,%d,%d,%d\n",a,b,c,d;則程序的輸出結(jié)果是()。A、1,2,3,4B、2,1,2,-1C、5,1,2,-1D、2,2,2,4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第一個(gè)if語(yǔ)句的判斷條件是邏輯或表達(dá)式,所以只要有一個(gè)運(yùn)算對(duì)象為真結(jié)果就為真,且如果前面的已經(jīng)為真,后面的表達(dá)式不再進(jìn)行執(zhí)行判斷。執(zhí)行第一個(gè)if判斷條件時(shí)a的值為2,整個(gè)表達(dá)式的值為真,b的值不變,c的值為2。判斷第二個(gè)if條件為邏輯與表達(dá)式,只有兩個(gè)運(yùn)算對(duì)象均非零,才為真,第一個(gè)表達(dá)式c==3,不成立,不再判斷第二個(gè)運(yùn)算對(duì)象,所以不執(zhí)行d=一1操作和a=5操作。所以結(jié)果為選項(xiàng)D。23、有以下程序:#includemain(){intx;scanf(“%d“,&x);if(x<=0);elseif(x!=5)printf(“%d\n”,x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。A、不等于5的整數(shù)B、大于0且不等5的整數(shù)C、大于0或等于5的整數(shù)D、小于5的整數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時(shí)將其打印出來(lái)。24、下列程序的運(yùn)行結(jié)果是()。#includevoidfun(int*S,int*P){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5),k,x;for(k=0;k<4;k++){fun(a,&x);printf(“%d,”,x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。25、判斷字符串s1是否大于字符串s2,應(yīng)該使用()。A、if(strcmp(s1,s2)<0)B、if(s1>s2)C、if(strcmp(s2,s1)<0)D、if(strcmp(s1,s2))標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查字符串比較函數(shù)strcmp(),調(diào)用形式:strcmp(str+1,str+2),其中str+1、str+2分別是字符串存儲(chǔ)區(qū)的首地址,函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù):當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)。注意:不能使用關(guān)系運(yùn)算符比較兩個(gè)字符串的大小。26、有以下程序:#include<stdio.h>main(){inta=7;while(a--);printf("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、-1C、1D、7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:a--的含義是先用后減1,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a--,a的值變?yōu)?1。27、有以下程序:#include<stdio.h>main(){charb,c;inti:b=’a’;c=’A’;for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、abcdefB、ABCDEFC、aBcDeFD、AbCdEf標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的含義是如果i的值能被2整除,以字符格式打印輸出i+c的值,如果i的值不能被2整除,打印i+b的值。第一次i值為0,執(zhí)行else語(yǔ)句打印字符‘A’,第二次i值為1,打印1+b的值即字符‘b’,第三次i值為2,打印字符‘C’,依此類(lèi)推選擇D選項(xiàng)。28、下列敘述中正確的是A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。29、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A)。30、設(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)。31、若要打印出字符A,以下語(yǔ)句不正確的是()。(注:字符A的ASCⅡ碼值為65,字符a的ASCⅡ碼值為97)A、printf(’’%c\n’’,’a’一32);B、printf(’’%c\n’’,’B’—1);C、printf(’’%c\n’’,65);D、printf(’’%d\n’’,’A’);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:要打印出A,輸出格式應(yīng)該是%c,所以選項(xiàng)D錯(cuò)誤;另外,字符是一種特殊的整型數(shù),對(duì)應(yīng)的是其ASCⅡ碼數(shù)值,所以選項(xiàng)A,B,C正確。32、有以下程序#include<stdio.h>voidfun(char**p){inti;for(i=0;i<4;i++)printf("%s",p[i]);}main(){char*s[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};fun(s);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、ABCDEFGHIJKLB、ABCDC、AEIMD、ABCDEFGHIJKLMNOP標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查字符串?dāng)?shù)組,s表示指向字符數(shù)組的指針,s指向了第一個(gè)字符串,s++指向了第二個(gè)字符串,所以最后輸出結(jié)果為D選項(xiàng)。33、一個(gè)學(xué)生可選多門(mén)課程,一門(mén)課程也可由多個(gè)學(xué)生來(lái)選。則學(xué)生和課程間的聯(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)答案:D知識(shí)點(diǎn)解析:一個(gè)學(xué)生可選多門(mén)課程,一門(mén)課程也可由多個(gè)學(xué)生來(lái)選,所以他們之間是多對(duì)多的關(guān)系。34、有以下程序#include<stdio.h>intk=5;voidf(int*s){*s=k;}main(){intm=3,*p=&m;f(p);printf("%d,%d",m,*p);}程序的運(yùn)行結(jié)果是A、5,5B、3,3C、3,5D、5,3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題程序執(zhí)行過(guò)程為:m=3,p指向m,調(diào)用函數(shù)f,將實(shí)參p中m的地址傳遞給形參s,s指向m,則k賦值給m,m=5,p依然指向m,故輸出5,5。A選項(xiàng)正確。35、有以下程序:#includemain(){inti=3,j=5,*p=&i,*q=&j,**r;r=&q;i++;(*q)++;printf(’’%d,%d,%d,%d,%d\n’’,i,j,*P,*q,**r);}執(zhí)行后的輸出結(jié)果是()。A、4,6,4,6,6B、5,3,5,3,5C、4,6,4,6,4D、4,6,4,4,6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查指針及指針的指針,(*q)是對(duì)其指向的地址空間的存儲(chǔ)值的引用,所以(*q)++等同于j++;同時(shí),r指向的具體數(shù)值也會(huì)發(fā)生變化。36、有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");fprintf(fp,"%d\n",a[0]);for(i=1;i<6;i++){fseek(fp,0L,0);fscanf(fp,"%d",&k);fseek(fp,0L,0);fprintf(fp,"%d\n",a[i]+k);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}程序的運(yùn)行結(jié)果是A、21B、6C、123456D、11標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fopen函數(shù)以一定方式打開(kāi)指定文件,返回一個(gè)指向文件的文件指針,如果不能實(shí)現(xiàn)打開(kāi)指定文件的操作,則返回一個(gè)空指針NULL。fscanf函數(shù)從文本文件中按格式輸入。fprintf函數(shù)按照格式向文本文件中輸出數(shù)據(jù)。文件定位函數(shù)fseek,將指針由文件開(kāi)頭0、當(dāng)前位置1、末尾2移動(dòng)指定字節(jié)。rewind函數(shù)功能使文件的位置指針?lè)祷氐轿募^。程序執(zhí)行過(guò)程為:以讀/寫(xiě)方式建立一個(gè)新的文本文件data.dat,將1寫(xiě)入文件;執(zhí)行for循環(huán),將文件指針移到文件開(kāi)頭,將文件第一個(gè)數(shù)值1賦給k,再將指針移動(dòng)到開(kāi)頭,向文件內(nèi)輸入a[i]+k=3。for循環(huán)實(shí)現(xiàn)將a數(shù)組中元素累加,結(jié)果21存放在文件中。調(diào)用rewind將文件指針移動(dòng)到開(kāi)頭,調(diào)用fscanf函數(shù)從文件中讀出數(shù)值賦予k=21,調(diào)用fclose函數(shù)關(guān)閉文件,打印k值,A選項(xiàng)正確。37、有以下程序#include<stdio.h>main(){charc;while((c=getchar())!=’\n’){switch(c-’2’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}printf("\n");}程序運(yùn)行后從第一列開(kāi)始輸入以下數(shù)據(jù)2473<回車(chē)>程序的輸出結(jié)果是A、668977B、4444C、6677877D、68766標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題執(zhí)行過(guò)程為:輸入c=’2’,c-’2’=0,首先匹配case0,依次輸出6,6,后執(zhí)行break語(yǔ)句,跳出分支結(jié)構(gòu);輸入c=’4’,c-’2’=2,匹配case2,輸出8,執(zhí)行break語(yǔ)句,跳出分支結(jié)構(gòu);輸入c=’7’,c-’2’=5,匹配default,輸出9,執(zhí)行break語(yǔ)句,跳出分支結(jié)構(gòu);輸入c=’3’,c-’2’=1,匹配case1,依次輸出7,7,執(zhí)行break語(yǔ)句,跳出分支結(jié)構(gòu)。輸入回車(chē),結(jié)束循環(huán)。A選項(xiàng)正確。38、設(shè)循環(huán)隊(duì)列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=20?,F(xiàn)要在該循環(huán)隊(duì)列中尋找最大值的元素,最壞情況下需要比較的次數(shù)為A、4B、6C、m-5D、m-6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針指向排頭元素的前一個(gè)位置,因此,從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素,隊(duì)列初始狀態(tài)為front=rear=m,當(dāng)front=15,rear=20時(shí),隊(duì)列中有5個(gè)元素,比較次數(shù)為4次,A選項(xiàng)正確。39、有如下程序#include<stdio.h>intsum(inta,intb){returna+b-2;}main(){inti;for(i=0;i<5;i++)printf("%d",sum(i,3));printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、54321B、1234C、45678D、12345標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)際參數(shù)表)對(duì)無(wú)參函數(shù)調(diào)用時(shí),則無(wú)實(shí)際參數(shù)表。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構(gòu)造類(lèi)型數(shù)據(jù)及表達(dá)式。各實(shí)參之間用逗號(hào)分隔。函數(shù)sum在main函數(shù)之前,所以在main函數(shù)中不需要聲明。本題程序執(zhí)行過(guò)程為:在i=0,1,2,3,4時(shí)依次輸出sum(i,3),即調(diào)用sum函數(shù)后依次輸出1、2、3、4、5,D選項(xiàng)正確。40、以下敘述正確的是A、在C語(yǔ)言中分號(hào)是語(yǔ)句的組成部分B、C語(yǔ)言程序由C語(yǔ)句組成,可以省略main函數(shù)C、分號(hào)是C語(yǔ)句之間的分隔符D、所有程序行都必須用分號(hào)結(jié)束標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言C程序的入口函數(shù)是main(),因此C程序中有且只有一個(gè)main函數(shù),故選項(xiàng)B錯(cuò)誤。分號(hào)是C語(yǔ)言一條語(yǔ)句的結(jié)束標(biāo)志,不是分隔符,C語(yǔ)言分隔符是用來(lái)分隔多個(gè)變量、數(shù)據(jù)項(xiàng)、表達(dá)式等的符號(hào),包括逗號(hào)、空白符、分號(hào)和冒號(hào)等等,選項(xiàng)C錯(cuò)誤。C語(yǔ)言的程序不是以分號(hào)結(jié)束的,分號(hào)是C語(yǔ)言一條語(yǔ)句的結(jié)束標(biāo)志,C語(yǔ)言是面向過(guò)程的,從main函數(shù)開(kāi)始在main函數(shù)里結(jié)束,選項(xiàng)D錯(cuò)誤。故答案為A選項(xiàng)。二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序的功能是:調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時(shí)函數(shù)返回值為1,失敗時(shí)返回值為0。在復(fù)制的過(guò)程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標(biāo)文件名放在變量tfname中。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#includeintfun(char*source,char*target;)(FILE*fs,*ft;charch;/**********found**********/if((fs=fopen(source,______1______))==NULL)return0;if((ft=fopen(target,"w"))==NULL)return0;printf("\nThedatainfile:\n");ch=fgetc(fs);/**********found**********/while(!feof(______2______)){putchar(ch);/**********found**********/fputc(ch,______3______);ch=fgetc(fs);}fclose(fs);fclose(ft);printf("\n\n");return1;}main()(charsfname[20]="myfile1",tfname[20]="myfile2";FILE*myf;inti;chac;myf=fopen(sfname,"w");printf("\nTheoriginaldata:\n");for(i=1;i<30;i++){c=’A’+rand()%25;fprintf(myf,"%c",c);printf("%c",c);)fclose(myf);printf("\n\n");if(fun(sfname,tfname))printf("Succeed!");elseprintf("Fail!");}標(biāo)準(zhǔn)答案:(1)"r"(2)fs(3)ft知識(shí)點(diǎn)解析:第一空:將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,源文件只需讀,因此以只讀方式打開(kāi)即可,故第一空處應(yīng)該是“if((fs=fopen(source,"r"))=NULL)”。第二空:“while(!feof(__2__))”循環(huán)的目的是不斷讀取源文件直至到達(dá)源文件的末尾,循環(huán)結(jié)束標(biāo)志是已達(dá)到文件的末尾。用feof()函數(shù)來(lái)檢查是否已經(jīng)到了文件末尾,文件狀態(tài)檢測(cè)函數(shù)feof()的調(diào)用形式是:feof(fs),如果已經(jīng)到達(dá)文件尾函數(shù)返回非零值,否則返回0,故第二空處應(yīng)該是“while(!feof(fs))”。第三空:考察fputc函數(shù)的使用方法,fputc函數(shù)的調(diào)用形式是:fputc(ch,ft),ch是要輸出的字符,由“ch=fgetc(fs)”從源文件讀到字符ch,然后將ch寫(xiě)到目標(biāo)文件中,故第三空處應(yīng)該是“fputc(ch,ft);”。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODIl.C中函數(shù)fun的功能是:將長(zhǎng)整型數(shù)s中每一位上為偶數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為:87653142時(shí),t中的數(shù)為:8642。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includevoidfun(longs,long*t){intd;longs1=1;*t=0;while(s>0){d=s%10;/************found************/if(d%2=0){*t=d*s1+*t;s1*=10;}/************found************/s\=10;}}main(){longs,t;printf("\nPleaseenters:");scanf("%1d",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}標(biāo)準(zhǔn)答案:(1)if(d%2==0)(2)s/=10;知識(shí)點(diǎn)解析:(1)第一個(gè)標(biāo)識(shí)是判斷d是否是偶數(shù),即比較d%2是否等于0,在C語(yǔ)言中,“==”表示的是“等于”,而“=”是賦值,因此第一個(gè)標(biāo)識(shí)下“if(d%2=0)”應(yīng)改為“if(d%2==0)”。(2)第二個(gè)標(biāo)識(shí)下的“s\=10:”是對(duì)a的截取,這里的“\”本意應(yīng)該是除號(hào),但這個(gè)在C語(yǔ)言中是不可識(shí)別的,所以第二個(gè)標(biāo)識(shí)下“s\=10;”應(yīng)該改為“s/=10;”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、函數(shù)fun的功能是:將a、b中的兩個(gè)兩位正整數(shù)合并形成一個(gè)新的整數(shù)放在C中。合并的方式是:將a中的十位和個(gè)位數(shù)依次放在變量c的千位和十位上,b中的十位和個(gè)位數(shù)依次放在變量c的個(gè)位和百位上。例如,當(dāng)a=45,b=12。調(diào)用該函數(shù)后,c=4251。注意:部分源程序存在文件PROGl.C中。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#includevoidfun(inta,intb,long*c){}voidNONO(){/+本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%1d\n",a,b,c);}fclose(rf);fclose(wf);}msin(){inta,b;longc;voidNONO();printf(”Inputa,b:”);scanf(”%d%d”,&a,&b);fun(a,b,&c);printf("Theresultis:%1d\n",c);NONO();}標(biāo)準(zhǔn)答案:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);知識(shí)點(diǎn)解析:(1)分解兩位數(shù)的正整數(shù)n的個(gè)位和十位數(shù),可用n%10和n/10實(shí)現(xiàn)。(2)設(shè)x0、x1、x2、x3為一位數(shù),則x0、x1×10、x2×100、x3×1000,可以分別使x0、x1、x2、x3構(gòu)成個(gè)、十、百、下帶權(quán)數(shù),而x0+x1×10+x2×100+x3×1000構(gòu)成四位數(shù)。本題最多只考慮四位數(shù)。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹(shù)D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性結(jié)構(gòu)的特點(diǎn):①有且只有一個(gè)根結(jié)點(diǎn);②每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。不滿(mǎn)足線性結(jié)構(gòu)條件的稱(chēng)為非線性結(jié)構(gòu),二叉樹(shù)的非葉子結(jié)點(diǎn)最多可以有兩個(gè)后件,屬于非線性結(jié)構(gòu)。2、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間,故本題答案為A選項(xiàng)。3、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按“先進(jìn)后出”的原則組織數(shù)據(jù)的;隊(duì)列是按“先進(jìn)先出”的原則組織數(shù)據(jù)的,故本題答案為B選項(xiàng)。4、某二叉樹(shù)共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹(shù)的深度為(根結(jié)點(diǎn)在第1層)()。A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹(shù)中,度為0的結(jié)點(diǎn)數(shù)等于度為2的結(jié)點(diǎn)數(shù)加1,即n2=n0-1,葉子結(jié)點(diǎn)即度為0,n0=1,則n2=0,總結(jié)點(diǎn)數(shù)為12=n0+n1+n2=1+n1+0,則度為1的結(jié)點(diǎn)數(shù)n1=11,所以深度為12,故D選項(xiàng)正確。5、下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是()。A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、判定表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化方法軟件需求分析工具主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表。6、下面不屬于軟件測(cè)試實(shí)施步驟的是()。A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試主要包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。7、下面描述中不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是()。A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)為高共享、低冗余、獨(dú)立性高、具有完整性等,故C選項(xiàng)錯(cuò)誤。8、負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢(xún)操作的數(shù)據(jù)庫(kù)語(yǔ)言是()。A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)管理語(yǔ)言C、數(shù)據(jù)操縱語(yǔ)言D、數(shù)據(jù)控制語(yǔ)言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)定義語(yǔ)言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語(yǔ)言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢(xún)及增、刪、改等操作;數(shù)據(jù)控制語(yǔ)言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。9、設(shè)數(shù)據(jù)元素的集合D={1,2,3,4,5},則滿(mǎn)足下列關(guān)系R的數(shù)據(jù)結(jié)構(gòu)中為線性結(jié)構(gòu)的是()。A、R={(1,2),(3,2),(5,1),(4,5)}B、R={(1,3),(4,1),(3,2),(5,4))C、R={(1,2),(2,4),(4,5),(2,3)}D、R={(1,3),(2,4),(3,5),(1,2)}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R中的每個(gè)結(jié)點(diǎn)由兩個(gè)部分構(gòu)成,分別是數(shù)據(jù)域和指針域。B選項(xiàng)中可以看出,元素序列為5→4→1→3→2,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年新教材高中物理第3章機(jī)械波第3節(jié)波的干涉和衍射第4節(jié)多普勒效應(yīng)及其應(yīng)用學(xué)案魯科版選擇性必修第一冊(cè)
- 2024-2025學(xué)年高中政治第四單元發(fā)展中國(guó)特色社會(huì)主義文化第十課第二框加強(qiáng)思想道德建設(shè)訓(xùn)練含解析新人教版必修3
- 2025監(jiān)理工程師《合同管理》考試預(yù)測(cè)題
- 2025年拉薩貨運(yùn)從業(yè)資格證考試模擬題庫(kù)及答案
- 2025年德陽(yáng)道路運(yùn)輸從業(yè)資格證模擬考試年新版
- 2025的建設(shè)工程設(shè)計(jì)合同范本
- 中國(guó)櫥具項(xiàng)目投資可行性研究報(bào)告
- 社區(qū)評(píng)估報(bào)告范文醫(yī)療
- 上海商學(xué)院《中小學(xué)心理健康教育課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海商學(xué)院《圖形圖像處理技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 標(biāo)識(shí)標(biāo)牌售后服務(wù)方案
- 人教版高中地理必修一全冊(cè)測(cè)試題(16份含答案)
- 基于單片機(jī)數(shù)字秒表的設(shè)計(jì)
- 基于LabVIEW的溫濕度監(jiān)測(cè)系統(tǒng)
- 人保《理賠工作聘請(qǐng)保險(xiǎn)公估機(jī)構(gòu)管理辦法》實(shí)施細(xì)則
- GB/T 40636-2021掛面
- GB 18383-2007絮用纖維制品通用技術(shù)要求
- 臺(tái)積電半導(dǎo)體制造自動(dòng)化課件
- 法律專(zhuān)題(本)(52876)-國(guó)家開(kāi)放大學(xué)電大學(xué)習(xí)網(wǎng)形考作業(yè)題目答案
- MVR熱泵精餾處理回收稀DMAC水溶液
- 搶救車(chē)管理質(zhì)控分析
評(píng)論
0/150
提交評(píng)論