國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷4(共261題)_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷4(共261題)_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷4(共261題)_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷4(共261題)_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷4(共261題)_第5頁(yè)
已閱讀5頁(yè),還剩77頁(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ī)試模擬試卷4(共9套)(共261題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是將帶頭節(jié)點(diǎn)的單向鏈表逆置,即若原鏈表中從頭至尾節(jié)點(diǎn)數(shù)據(jù)域依次為2、4、6、8、10,逆置后,從頭至尾節(jié)點(diǎn)數(shù)據(jù)域依次為10、8、6、4、2。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#defineN5typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*p,*q,*r;/*********found*********/p=h->【1】;/*********found*********/if(p==【2】)return;q=p->next;p->next=NULL;while(q){r=q->next;q->next=p;/*********found*********/p=q;q=【3】;}h->next=p;}NODE*creatlist(inta[]){NODE*h,*p,*q;inti;h:(NODE*)malloc(sizeof(NODE));h->next=NULL:for(i=0;i<N;i++){q=(NODE*)malloc(sizeof(NODE));q->data=a[i];q->next=NULL:if(h->next==NULL)h->next=p=q;else{p->next=q;p=q;)}returnh;}voidoutlist(NODE*h){NODE*p;p=h->next;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);fun(head);printf("\nThelistafterinverting:\n");outlist(head);}標(biāo)準(zhǔn)答案:(1)next(2)NULL(3)r知識(shí)點(diǎn)解析:填空1:本空考查了為p賦初值,根據(jù)題目的要求是將帶頭節(jié)點(diǎn)的單向鏈表逆置可知,p的初值應(yīng)該為h->next。填空2:if判斷語(yǔ)句表明當(dāng)p等于什么時(shí)就要返回,因此只能當(dāng)p等于NULL時(shí)返回,不用做后面的鏈表的逆置了。填空3:把q的指針向后移動(dòng),才能實(shí)現(xiàn)將帶頭節(jié)點(diǎn)的單向鏈表逆置。因此本空填寫(xiě)r。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開(kāi)考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:計(jì)算s所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。請(qǐng)改正程序中的錯(cuò)誤或在下劃線處填上正確的內(nèi)容并把下劃線刪除,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<conio.h>#include<string.h>#include<stdio.h>#defineN80intfun(char*s,char*t){intn;char*p,*r;n=0;/*********found*********/*r=t:while(*s){p=s;while(*r){if(*r==*p){r++;p++;}elsebreak;if(*r==’\0’)n++;}/*********found*********/<u>1</u>;s++;}returnn;}voidmain(){chara[N],b[N];intm;printf("\nPleaseenterstringa:");gets(a);printf("\nPleaseentersubstringb:");gets(b);m=fun(a,b),printf("\nTheresultis:m=%d\n",m);}標(biāo)準(zhǔn)答案:(1)r=t;(2)r=t;或r=&t[0];知識(shí)點(diǎn)解析:從字符串s中找出子字符串的方法是:從第一個(gè)字符開(kāi)始,對(duì)字符串進(jìn)行遍歷,若s串的當(dāng)前字符等于t串的第一個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串t的末尾,則跳出循環(huán);若s串的字符與t串的字符不對(duì)應(yīng)相同,則繼續(xù)對(duì)s串的下一個(gè)字符進(jìn)行處理。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過(guò)N),按順序合并組成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為{“AAAA”,“BBBBBBB”,“CC”},則合并后的字符串內(nèi)容應(yīng)該是“AAAABBBBBBBCC”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(charaIM][N],char*b){}voidmain(){charw[M][N]={"AAAA","BBBBBBB","CC"};chara[100]={"##################");inti;printf("Thestring:\n");for(i=0;i<M;i++)puts(w[i]);printf("\n");fun(w,a);printf("TheAstring:\n");printf("%s",a);printf("\n\n");}標(biāo)準(zhǔn)答案:voidfun(chara[M][N],char*b){inti,j,k=0;for(i=0;i知識(shí)點(diǎn)解析:本題考查:字符串連接操作。本程序中第1個(gè)for循環(huán)的作用是對(duì)二維數(shù)組行的控制,第2個(gè)循環(huán)的作用是從同一行中取出字符并存放到一維數(shù)組b中,語(yǔ)句是b[k++]=a[i][j];。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、若有定義:inta=0,b=0,c=0,d=0;,有C語(yǔ)言表達(dá)式(a++&&b++)?c++:d++,以下關(guān)于其執(zhí)行順序的敘述中正確是()。A、先執(zhí)行a++,表達(dá)式a++的值為0,由此即可確定(a++&&b++)值為0,因此執(zhí)行d++B、先執(zhí)行a++,表達(dá)式a++的值為0;再執(zhí)行b++,表達(dá)式b++的值為0,由此可確定(a++&&b++)值為0,因此執(zhí)行d++C、先執(zhí)行a++,表達(dá)式a++的值為1;再執(zhí)行b++,表達(dá)式b++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++D、先執(zhí)行b++,表達(dá)式b++的值為1;再執(zhí)行a++,表達(dá)式a++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:把握前置運(yùn)算和后置運(yùn)算的基本運(yùn)算規(guī)則。2、下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是()。A、不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串B、可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組C、字符數(shù)組中的內(nèi)容不一定是字符串D、字符數(shù)組只能存放字符串標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符數(shù)組可以用來(lái)存放單個(gè)的字符或者字符串。3、有以下程序:#include<stdio.h>voidfun(intp){intd=2:p=d++;printf("%d",p);}main(){inta=1:fun(a);printf("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A、32B、12C、21D、22標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中函數(shù)參數(shù)傳遞滿足“單向傳遞”,實(shí)現(xiàn)傳遞值的功能,實(shí)參能傳給形參,形參卻不能傳回給實(shí)參。fun函數(shù)體內(nèi)輸出p的值為2,并不影響到fun函數(shù)外a的值,a的值在main函數(shù)內(nèi)依然為1。4、下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>voiddel(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!=’\0’;i++){if(a[i]>=’0’&&a[i]<=’9’){s[j]=a[i];j++;}s[j]=’\0’;}}main(){chars[]="aa89gggh";del(s);printf("\n%s",s);}A、aaB、89C、ggghD、aa89gggh標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入s數(shù)組中的字符,如果遇到數(shù)字,則將其重新存在s中,遇到非數(shù)字字符則跳過(guò)。所以最后輸出的應(yīng)該是字符串s中的所有數(shù)字。5、下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(i=0;i<4;i++){k=k+*p[i];}printf("%d",k);}A、10B、18C、6D、數(shù)組元素引用不合法,輸出結(jié)果不定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:第一個(gè)for循環(huán),給數(shù)組a的20個(gè)元素分別賦值0~19;第二個(gè)for循環(huán),給數(shù)組p賦值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三個(gè)for循環(huán),將數(shù)組p中元素的值進(jìn)行累加,k=1+2+5+10=18。6、以下程序中c的二進(jìn)制值是()。chara=2,b=4,c;c=a^b>>2A、00000011B、00010100C、00011100D、00011000標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查按位異或和右移運(yùn)算。b=4的二進(jìn)制為00000100,b>>2后為00000001,a=2的二進(jìn)制為00000010,兩者異或?yàn)?0000011。7、設(shè)有定義:intx=2;,以下表達(dá)式中,值不為6的是()。A、2*x,x+=2B、x++,2,xC、x*=(1+x)D、x*=x+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中逗號(hào)表達(dá)式先計(jì)算第一表達(dá)式2*x,然后計(jì)算表達(dá)式x+=2的值,即x=x+2即4,整個(gè)逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值4,所以選擇A。B選項(xiàng)中首先計(jì)算逗號(hào)表達(dá)式中第一表達(dá)式x++,此時(shí)x為3,在執(zhí)行第二個(gè)表達(dá)式2*x=2*3=6,所以逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值6。C選項(xiàng)的賦值表達(dá)式可以表示為x=x}(1+x)=2*(1+2)=6。D選項(xiàng)中的表達(dá)式可以表示為x=x*(x+1)=2*3=6。8、在源程序的開(kāi)始處加上“#include<stdio.h>”進(jìn)行文件引用的原因,以下敘述正確的是()。A、stdio.文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說(shuō)明,通過(guò)引用此文件以便能正確使用printf、scanf等函數(shù)B、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運(yùn)行C、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接D、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的二進(jìn)制代碼插入到引用處,以便進(jìn)行編譯鏈接標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:“stdio.h”文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說(shuō)明,預(yù)處理指令#include<stdio.h>是指程序可以在該文件中找到printf、scanf等函數(shù)。9、下面程序的輸出結(jié)果是()。typedefunion{longx[1];inty[4];charz[10];}M;Mt:main(){printf("%d\n",sizeof(t));}A、32B、26C、10D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“聯(lián)合體”所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間。題中聯(lián)合體的z[10]成員是聯(lián)合體中占空間最長(zhǎng)的成員。10、軟件按功能可以分為:應(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)軟件,只有C教務(wù)管理系統(tǒng)才是應(yīng)用軟件11、在軟件生產(chǎn)過(guò)程中,需求信息的來(lái)源是()。A、程序員B、項(xiàng)目經(jīng)理C、設(shè)計(jì)人員D、軟件用戶標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、性能、設(shè)計(jì)約束等方面的要求,是由用戶提出的。12、對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()。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)系中的所有元組。13、開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱做()。A、軟件矛盾B、軟件危機(jī)C、軟件藕合D、軟件產(chǎn)生標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加,研制周顯著變長(zhǎng),正確性難以保證,軟件開(kāi)發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟件危機(jī)”。14、下列4個(gè)程序中,完全正確的是()。A、#include<stdio.h>main();{/*programming*/printf(”programming!\n’’);}B、#include<stdio.h>main(){/*/programming/*/printf(’’programming!\h’’);}C、#include<stdio.h>main(){/*/programming*/*/printf(’’programming!\n’’);}D、include<stdio.h>main(){/*programming*/printf(’’programming!\n’’);}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A中,main()函數(shù)后面的分號(hào)是錯(cuò)誤的,C語(yǔ)言在函數(shù)名后面不能有分號(hào);在C語(yǔ)言中注釋內(nèi)容必須放在“/*”和“*/”之間,“/#”和“*/”必須成對(duì)出現(xiàn),按語(yǔ)法規(guī)定在注釋之間不可再嵌套“/*”和“*/”,選項(xiàng)C的程序段中注釋語(yǔ)句之間有嵌套;C語(yǔ)言用#include命令行來(lái)實(shí)現(xiàn)文件包含的功能。#include命令行的形式為:#include“文件名”,選項(xiàng)D中的include前面少了一個(gè)#符號(hào)。15、軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:該圖是()。A、N-S圖B、PAD圖C、程序流程圖D、E-R圖標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序流程圖基本圖符有3種:控制流(用箭頭表示)、加工步驟(用方框表示)、邏輯條件(用菱形表示)??刂平Y(jié)構(gòu)有5種:①順序結(jié)構(gòu);②選擇結(jié)構(gòu);③多分支選擇結(jié)構(gòu);④后判斷重復(fù)型結(jié)構(gòu);⑤先判斷重復(fù)型結(jié)構(gòu)。因此該圖是選擇結(jié)構(gòu)的程序流程圖。16、有以下程序#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正確。17、開(kāi)發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是()。A、大型系統(tǒng)的復(fù)雜性B、人員知識(shí)不足C、客觀世界千變?nèi)f化D、時(shí)間緊、任務(wù)重標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加,研制周期顯著變長(zhǎng),正確性難以保證,軟件開(kāi)發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟件危機(jī)”。18、若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式“x+a%3*(int)(x+y)%2/4”的值是()。A、2.500000B、2.750000C、3.500000D、0.000000標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是變量的類型轉(zhuǎn)換。表達(dá)式中“(int)(x+y)把x+y=(7.2)”的值強(qiáng)制轉(zhuǎn)化成整型即得到7,那么“a%3*(int)(x+y)%2”的值為整型常量1,所以“a%3*(int)(x+y)%2/4”的值為0;因?yàn)樽兞縳是浮點(diǎn)型變量,所以表達(dá)式“x+a%3*(int)(x+y)%2/4”的結(jié)果也是浮點(diǎn)型,得到2.500000。19、有以下程序:#includemain(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b;}A、1,2B、1,0C、3,2D、0,0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先打印b=a+b=1+0=1的值1,此時(shí)已給b賦值為l。然后打印a=2*b=2*1=2的值2。所以結(jié)果是1,2。20、若有以下定義:intx[10],*pt=x;則對(duì)x數(shù)組元素的正確引用是()。A、*&x[10]B、*(x+3)C、*(pt+10)D、pt+3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)組的下標(biāo)是從0開(kāi)始的,故x[10]實(shí)際上具體為x[0],x[1],…,x[9],而若使用x[10]就會(huì)溢出,編譯出錯(cuò),所以AC兩項(xiàng)錯(cuò)誤;D項(xiàng),pt+3指向地址,并未引用到元素;B項(xiàng)的表達(dá)正確,引用x[3]。21、程序調(diào)試的任務(wù)是()。A、設(shè)計(jì)測(cè)試用例B、驗(yàn)證程序的正確性C、發(fā)現(xiàn)程序中的錯(cuò)誤D、診斷和改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。22、有以下程序段:charname[20];intnum;scanf(’’name=%snum=%d’’,name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤(pán)輸入:name=Lilinum=1001<回車>后,name的值為()。A、IJKB、ABCDE\OFG\OIJKC、ABCDIJKD、EFGIJK標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符數(shù)組a中包含兩個(gè)’\0’,遇到第一個(gè)’\0’時(shí)就表示字符串a(chǎn)結(jié)束。字符串處理函數(shù)strcat(字符數(shù)組a,字符數(shù)組h),功能是連接兩個(gè)字符數(shù)組中的字符串,把字符串b連接到a的后面,結(jié)果放在字符數(shù)組a中。連接時(shí)將字符串a(chǎn)后的’0’取消,只在新串最后保留一個(gè)’\0’。本題相當(dāng)于將“ABCD”和“IJK”連接。因此C選項(xiàng)正確。23、有以下程序#include<stdio.h>#include<stdlib.h>voidfun(int*p1,int*p2,int*s){s=(int*)malloc(sizeof(int));*s=*p1+*(p2++);}main(){inta[2]={1,2},b[2]={10,20},*s=a;fun(a,b,s);printf("%d\n",*s);}程序運(yùn)行后的輸出結(jié)果是A、11B、10C、1D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行fun函數(shù)后,s的值并沒(méi)有發(fā)生變化,仍然是指向a,所以輸出結(jié)果為1,選項(xiàng)C正確。24、下列關(guān)于C語(yǔ)言數(shù)據(jù)文件的敘述中正確的是()。A、文件由ASCⅡ碼字符序列組成,C語(yǔ)言只能讀寫(xiě)文本文件B、文件由二進(jìn)制數(shù)據(jù)序列組成,C語(yǔ)言只能讀寫(xiě)二進(jìn)制文件C、文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件D、文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址,第一次for循環(huán),p=a,p指向數(shù)組的第一個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出p;第二次for循環(huán),p=p+2,則p指向數(shù)組的第三個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出o;第三次for循環(huán),p=p+2,則p指向數(shù)組的第5個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出r;第四次for循環(huán),p=p+2,則p指向數(shù)組的第7個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出m;結(jié)束循環(huán)。25、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的一個(gè)階段是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理技術(shù)的三個(gè)發(fā)展階段為人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)管理階段。只有在數(shù)據(jù)庫(kù)管理階段實(shí)現(xiàn)數(shù)據(jù)的自由分享更加容易和方便。26、有以下程序#include<stdio.h>main(){inta=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序運(yùn)行后輸出結(jié)果是A、0,2B、0,3C、1,3D、1,2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題重點(diǎn)考察while語(yǔ)句,變量a和b分別賦初值為-2和1,while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。a++即a參與運(yùn)算后,a的值再自增1。++b即b自增1后再參與其它運(yùn)算。當(dāng)表達(dá)式的值為0時(shí),退出循環(huán),最后輸出a和b的值為1和2。因此D選項(xiàng)正確。27、下列不合法的用戶標(biāo)識(shí)符是()。A、j2_KEYB、DoubleC、4dD、_8_標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言程序中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須是字母或下劃線。28、若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)()。A、getc()B、gets()C、getchar()D、scanf()標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf()語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getehar()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入。Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(str_adr,),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來(lái)從終端鍵盤(pán)讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc()函數(shù)的調(diào)用形式為:ch=gete(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。29、以下選項(xiàng)中,合法的實(shí)數(shù)是A、4.5E2B、E1.3C、7.11ED、1.2E1.2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:實(shí)型常量用帶小數(shù)點(diǎn)的數(shù)字表示,其值有兩種表達(dá)形式,分別為十進(jìn)制小數(shù)形式和指數(shù)形式。十進(jìn)制小數(shù)形式由數(shù)字和小數(shù)組成,必須有小數(shù)點(diǎn),且小數(shù)點(diǎn)的位置不受限制。指數(shù)形式由十進(jìn)制數(shù)加階碼標(biāo)志"e"或"E"以及階碼(只能為整數(shù),可以帶符號(hào))組成。4.5E2為指數(shù)形式實(shí)數(shù),A選項(xiàng)正確。E1.3階碼標(biāo)志前缺少十進(jìn)制數(shù),并且階數(shù)不是整數(shù),B選項(xiàng)錯(cuò)誤。7.11E缺少階數(shù),C選項(xiàng)錯(cuò)誤。1.2E1.2階數(shù)不是整數(shù),D選項(xiàng)錯(cuò)誤。30、設(shè)有n個(gè)數(shù)按從大到小的順序存放在數(shù)組x中,以下能使這n個(gè)數(shù)在x數(shù)組中的順序變?yōu)閺男〉酱蟮氖茿、for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-i-1];x[n-i-1]=t;}B、for(i=0;i<n;i++){t=x[i];x[i]=x[n-i-1];x[n-i-1]=t;}C、for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-i+1];x[n-i+1]=t;}D、for(i=0;i<n/2;i+=2){t=x[i];x[i]=x[n-i-1];x[n-i-1]=t;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題使用for循環(huán)實(shí)現(xiàn)數(shù)組元素首尾倒置。A選項(xiàng)中控制變量上限為n/2,用變量t實(shí)現(xiàn)數(shù)下標(biāo)值i與n-i-1的元素交換,使數(shù)組元素首尾倒置,從而實(shí)現(xiàn)從小到大排列,A選項(xiàng)正確。B選項(xiàng)控制變量上限為n,用變量t實(shí)現(xiàn)數(shù)下標(biāo)值i與n-i-1的元素交換,當(dāng)i=n/2時(shí),已經(jīng)實(shí)現(xiàn)數(shù)組首尾倒置,而繼續(xù)運(yùn)行至i=n,將再次將新的數(shù)組首尾倒置,與原數(shù)組相比沒(méi)有發(fā)生變化,依然是從大到小排列,B選項(xiàng)錯(cuò)誤。C選項(xiàng)數(shù)組越界,i=0時(shí)x[n+1]不存在,C選項(xiàng)錯(cuò)誤。D選項(xiàng)控制變量每次加2,實(shí)現(xiàn)數(shù)組偶數(shù)下標(biāo)值的元素首尾倒置,奇數(shù)下標(biāo)值元素不變,不能實(shí)現(xiàn)整個(gè)數(shù)組從小到大排列,D選項(xiàng)錯(cuò)誤。31、有以下程序#include<stdio.h>main(){chars[10]="verygood",*ps=s;ps="too";s[4]=’\0’;puts(ps);}程序的運(yùn)行結(jié)果是A、tooB、verygoodC、veryD、good標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義指針ps后,將數(shù)組s首地址賦給ps初始化后,再使指針ps指向字符串"too"的首地址,修改s[4](即字符g)不會(huì)改變ps的值,所以輸出ps的結(jié)果是"too",答案為選項(xiàng)A。32、有以下程序#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++){rewind(fp);fprintf(fp,"%d\n",a[i]);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}程序運(yùn)行后的輸出結(jié)果是A、6B、21C、123456D、654321標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題首先定義文件指針變量fp和一個(gè)數(shù)組a[],再打開(kāi)一個(gè)文件"data.dat",隨后先給文件寫(xiě)入數(shù)據(jù)a[0],由于rewind函數(shù)是將文件指針從當(dāng)前位置重新指向文件開(kāi)始位置,所以for循環(huán)依次將數(shù)組a中的數(shù)據(jù)寫(xiě)入文件開(kāi)始位置,退出循環(huán)后,文件中的數(shù)據(jù)順序?yàn)椋?54321,重新使指針指向文件開(kāi)始位置,將此時(shí)fp指向的數(shù)據(jù)(即文件中第一個(gè)數(shù)據(jù)6)寫(xiě)入變量k中,關(guān)閉文件,輸出k值,答案為A選項(xiàng)。33、一棵完全二叉樹(shù)共有360個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中度為1的結(jié)點(diǎn)個(gè)數(shù)為A、0B、1C、180D、181標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在二叉樹(shù)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點(diǎn)。由定義可以知道,完全二叉樹(shù)中度為1的結(jié)點(diǎn)個(gè)數(shù)為1或者0。若結(jié)點(diǎn)總數(shù)為偶數(shù),則有1個(gè)度為1的結(jié)點(diǎn);若結(jié)點(diǎn)總數(shù)為奇數(shù),沒(méi)有度為1的結(jié)點(diǎn)。由于題目中的完全二叉樹(shù)共有360個(gè)結(jié)點(diǎn),則度為1的結(jié)點(diǎn)個(gè)數(shù)為1。故選擇B選項(xiàng)34、有以下程序#include<stdio.h>main(){inta[3][3]={{1,3,5,},{7,9,11,},{13,15,17}};int(*p)[3]=a,i,j,n=0;for(i=0;i<3;i++)for(j=0;j<2;j++)n+=*(*(p+i)+j);printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、54B、60C、36D、48標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:for循環(huán)的作用是求數(shù)組各行前二列的數(shù)字之和。*(*(p+i)+j)?p[i][j]1+3+7+9+13+15=48,因此答案為D選項(xiàng).35、設(shè)循環(huán)隊(duì)列存儲(chǔ)空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過(guò)一系列入隊(duì)和退隊(duì)操作后,front=rear=25,則該循環(huán)隊(duì)列中元素個(gè)數(shù)為A、26B、25C、24D、0或50標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。循環(huán)隊(duì)列長(zhǎng)度為50,由初始狀態(tài)為front=rear=50可知此時(shí)循環(huán)隊(duì)列為空。入隊(duì)運(yùn)算時(shí),首先隊(duì)尾指針rear進(jìn)1(即rear+1),然后在隊(duì)尾指針rear指向的位置插入新元素。特別的,當(dāng)隊(duì)尾指針rear=50+1時(shí),置rear=1。退隊(duì)運(yùn)算時(shí),排頭指針front進(jìn)1(即front+1),然后刪除front指針指向的位置上的元素,當(dāng)排頭指針front=50+1時(shí),置front=1。若經(jīng)過(guò)運(yùn)算,front=rear可知隊(duì)列空或者隊(duì)列滿,則隊(duì)列中有0或者50個(gè)元素。故選D選項(xiàng)36、有以下程序段charch;intk;ch=’a’;k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進(jìn)制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是()。A、因變量類型與格式描述符的類型不匹配輸出無(wú)定值B、輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值C、a,97,12k=12D、a,97,k=12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在用基本輸出函數(shù)printf時(shí),格式說(shuō)明與輸出項(xiàng)的個(gè)數(shù)應(yīng)該相同。如果格式說(shuō)明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)不予輸出;如果格式說(shuō)明個(gè)數(shù)多于輸出項(xiàng)個(gè)數(shù),則對(duì)于多余的格式項(xiàng)輸出不定值或0。37、有以下程序#include<stdio.h>intfun(inta,intb){if(b=0)returna;elsereturn(fun(--a,--b));}main(){printf("%d\n",fun(4,2));}程序的運(yùn)行結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序可知,函數(shù)fun(inta,intb)是一個(gè)遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)用“fun(4,2)”時(shí),其執(zhí)行過(guò)程如下“fun(4,2)->fun(3,1)->fun(2,0)”,其返回值為2。所以正確答案為選項(xiàng)B)。38、在結(jié)構(gòu)化方法中,軟件功能屬于軟件開(kāi)發(fā)中的()階段。A、詳細(xì)設(shè)計(jì)B、需求分析C、總體設(shè)計(jì)D、編程調(diào)試標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:總體設(shè)計(jì)過(guò)程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì),確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實(shí)現(xiàn)角度把復(fù)雜的功能進(jìn)一步分解。分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個(gè)處理,如果一個(gè)處理的功能過(guò)分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡(jiǎn)單的功能。二、程序填空題(本題共1題,每題1.0分,共1分。)39、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:統(tǒng)計(jì)形參S所指的字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中,最后在主函數(shù)中輸出。例如,若形參s所指的字符串為“abcdef35adgh3kjsdf7”,則輸出結(jié)果為4。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確內(nèi)容并將下畫(huà)線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>voidfun(char*s,int*t){inti,n;n=0;/*********found*********/for(i=0;【1】!=0;i++)/*********found*********/if(s[i]>=’0’&&s[i]<=【2】)n++;/*********found*********/【3】;}main(){chars[80]="abcdef35adgh3kjsdf7";intt;printf("\nTheoriginalstringis:%s\n",s);fun(s,&t);printf("\nTheresultis:%d\n",t);}標(biāo)準(zhǔn)答案:(1)s[i](2)’9’(3)*t=n知識(shí)點(diǎn)解析:填空1:通過(guò)for循環(huán)語(yǔ)句來(lái)判斷是否到字符型結(jié)尾,變量i用來(lái)存放字符型數(shù)組下標(biāo),則應(yīng)填入s[i]。填空2:題目要求判斷數(shù)字字符,所以此處應(yīng)填入‘9’。填空3:將數(shù)字字符個(gè)數(shù)存入變量t中,此處需注意變量t是指針變量。三、程序修改題(本題共1題,每題1.0分,共1分。)40、使用VC++2010打開(kāi)考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第1項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21.…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為13。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>longfun(intg){/*********found*********/switch(g);{case0:return0;/*********found*********/case1;case2:return1;}return(fun(g-1)+fun(g-2));}voidmain(){longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n”,n);fib=fun(n);printf("fib=%d\n\n",fib);}標(biāo)準(zhǔn)答案:(1)去掉分號(hào)(2)case1:case2:return1;知識(shí)點(diǎn)解析:C語(yǔ)言中,switch語(yǔ)句之后不能有分號(hào),并且case語(yǔ)句常量后應(yīng)用的是冒號(hào)。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)41、函數(shù)fun的功能是:將s所指字符串中除下標(biāo)為偶數(shù)同時(shí)ASCII碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t所指的數(shù)組中。例如,若S所指字符串中的內(nèi)容為“ABCDEFG123456”,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除;字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;字符2的ASCII碼值為偶數(shù),在數(shù)組中的下標(biāo)也為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)足“246”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}voidmain(){charS[100],t[100];system(“CLS”);printf(“\nPleaseenterstringS:”);scanf(“%S”,S);fun(s,t);printf(“\nTheresultis:%s\n”,t);}標(biāo)準(zhǔn)答案:voidfun(char*s,chart[]){inti,j=0;for(i=0;s[i]!=‘\0’;i++)if(i%2==0&&s[i]%2==0)/*將s所指字符串中下標(biāo)和ASCII碼值都為偶數(shù)的字符放入數(shù)組t中*/t[j++]=s[i],t[j]=‘\0’;/*在字符串最后加上結(jié)束標(biāo)識(shí)*/}知識(shí)點(diǎn)解析:本題要求刪除除了下標(biāo)為偶數(shù)同時(shí)ASCII碼值也為偶數(shù)的字符,即保留下標(biāo)為偶數(shù)同時(shí)ASCII碼值也為偶數(shù)的字符。循環(huán)語(yǔ)句用于遍歷字符串,條件語(yǔ)句用于判斷當(dāng)前字符是否符合要求。注意判斷條件是下標(biāo)為偶數(shù),同時(shí)ASCII碼值也為偶數(shù),所以應(yīng)使用邏輯與“&&”運(yùn)算符。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列哪一條不屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)?()A、設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用結(jié)構(gòu)B、設(shè)計(jì)數(shù)據(jù)庫(kù)概論結(jié)構(gòu)C、設(shè)計(jì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)D、設(shè)計(jì)數(shù)據(jù)庫(kù)物理結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)工作量大而且過(guò)程復(fù)雜,既是一項(xiàng)數(shù)據(jù)庫(kù)工程也是一項(xiàng)龐大的軟件工程??紤]數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)開(kāi)發(fā)全過(guò)程.將數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施和數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)。2、有以下程序:#inlude<stdio.h>main(){ints,t,A=10;doubleB=6:s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6.0平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是()。A、10,6B、4,4C、2,4D、4,8標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長(zhǎng)度,在VC6.0平臺(tái)中,整型int占有4個(gè)字節(jié),double型數(shù)據(jù)占有8個(gè)字節(jié)。3、設(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)。4、字符串"\\\"ABCDEF\"\"的長(zhǎng)度是()。A、11B、10C、5D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題涉及字符串的兩個(gè)最基本的概念。①字符串的長(zhǎng)度是指字符串中字符的個(gè)數(shù),但不包含字符串結(jié)束符;②以反斜線“\”開(kāi)頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來(lái)的含義,不包含在字符串長(zhǎng)度之內(nèi),“\”連同后面的字符為一個(gè)長(zhǎng)度。5、有以下程序:#include<stdio.h>main(){inti;FILE*fp;for(i=0;i<3;i++){fp=fopen("res.txt","w");fputc(’K’+i,fp);fclose(fp);}}程序運(yùn)行后,在當(dāng)前目錄下會(huì)生成一個(gè)res.txt文件,其內(nèi)容是()。A、MB、EOFC、KLMD、L標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通過(guò)三次循環(huán),最后i的值定格在2,最后儲(chǔ)存值’K’+2=’M’,所以最后保存的數(shù)值為M。注意:fclose函數(shù),每次都關(guān)閉文件,并且重新回到文件首地址。6、以下敘述錯(cuò)誤的是()。A、C語(yǔ)言區(qū)分大小寫(xiě)B(tài)、C程序中的一個(gè)變量,代表內(nèi)存中一個(gè)相應(yīng)的存儲(chǔ)單元,變量的值可以根據(jù)需要隨時(shí)修改C、整數(shù)和實(shí)數(shù)都能用C語(yǔ)言準(zhǔn)確無(wú)誤地表示出來(lái)D、在C程序中,正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來(lái)表示標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題涉及C語(yǔ)言最基本的3個(gè)概念:①C語(yǔ)言是區(qū)分大小寫(xiě)的,q和Q是兩個(gè)不同的變量;②變量的實(shí)質(zhì)就是在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,存儲(chǔ)單元里存放的是該變量的值,變量的值可以根據(jù)需要進(jìn)行修改;③整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確的表示出來(lái),但不可能表示無(wú)限度的實(shí)數(shù)。正整數(shù)可用二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。7、有以下程序:#include<stdio.h>main(){intn,*p=NULL;*p=&n;printf("Inputn:");seanf("%d",&p);prinff("outputn:");printf("%d\n",p);}該程序試圖通過(guò)指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是()。A、intn,*P=NULL;B、*p=&n;C、scanf("%d",&p)D、printf("%d\n",p);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B的正確寫(xiě)法應(yīng)為p=&n;選項(xiàng)C的正確寫(xiě)法應(yīng)為scanf("%d",p);選項(xiàng)D的正確寫(xiě)法應(yīng)為printf("%d\n",*p)。8、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是()。A、數(shù)據(jù)庫(kù)設(shè)計(jì)B、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)C、數(shù)據(jù)庫(kù)維護(hù)D、數(shù)據(jù)庫(kù)管理員培訓(xùn)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是數(shù)據(jù)庫(kù)的設(shè)計(jì)。9、檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為()。A、確認(rèn)測(cè)試B、需求測(cè)試C、驗(yàn)證測(cè)試D、路徑測(cè)試標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說(shuō)明中確定的各種需求。10、有以下程序#includevoidmain(){chars[][={"01aXy");inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]<=’a’&&s[i]>=’z’)n++;printf("%d、n",n);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、2C、3D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這段程序的功能求出字符串s中字符的ASCII碼小于小寫(xiě)字符a并且大于小寫(xiě)字符z的字符的個(gè)數(shù)。因?yàn)樾?xiě)字符z的ASCII碼大于小寫(xiě)字符a的ASCII碼,所以滿足a的ASCII碼并且大于z的的ASCII碼的字符是不存在的,所以輸出0。11、以下程序運(yùn)行后的輸出結(jié)果是()。#includemain()voidreverse(inta[],intn){intb[10]={10,9,8,7,6,5,4,3,2,1};inti,s=0;{inti,t;reverse(b,10);for(i=0;iA、27B、6c)25C、30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進(jìn)行了逆置,此時(shí)b[10]={10,9,8,7,6,5,4,3,2,1},后面for語(yǔ)句的功能是將b中的后3個(gè)數(shù)累加,并將結(jié)果放在s中,最后將s輸出,結(jié)果s=1+2+3=6。12、下列不屬于軟件工程3個(gè)要素的是()。A、工具B、過(guò)程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理、文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制、管理。13、下面的程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是()。#inc1udemain(){int1_case;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&1_case,&printF);printf("%d%f\n",1_case,printF);}A、定義語(yǔ)句出錯(cuò),1case不能作為變量名B、定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符C、定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D、定義語(yǔ)句無(wú)錯(cuò),printf不能輸出1case的值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言變量名可由數(shù)字,字母,下劃線構(gòu)成,但首字符不能為數(shù)字。14、對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在最壞的情況下,堆排序需要比較的次數(shù)為O(nlog2n),所以選擇D)。15、若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則以下不正確的賦值語(yǔ)句是()。A、a+d;B、a++;C、a=b=c=d=100;D、a=(b=3)+(d=5);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,賦值號(hào)的右邊可以是一個(gè)賦值表達(dá)式,因此選項(xiàng)C)、選項(xiàng)D)正確;在選項(xiàng)B)中,a++是一個(gè)自加1的表達(dá)式,a被重新賦值,因此它是一個(gè)合法的賦值表達(dá)式;選項(xiàng)A)中,a+d是一個(gè)算術(shù)表達(dá)式,雖然最后有一個(gè)分號(hào),但這個(gè)表達(dá)式中沒(méi)有賦值操作,因此它不是一條賦值語(yǔ)句。16、設(shè)有以下說(shuō)明,則不正確的敘述是()。unionun{inta;charb:floatc;}art;A、arr所占的內(nèi)存長(zhǎng)度等于成員c的長(zhǎng)度B、arr的地址和它的各成員的地址都是同一地址C、arr可以作為函數(shù)參數(shù)D、不能在定義arr時(shí)對(duì)它初始化標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間,int占2個(gè)字節(jié),char占1個(gè)字節(jié),float占4個(gè)字節(jié),所以arr所占的內(nèi)存長(zhǎng)度等于成員c的長(zhǎng)度;arr的地址和它的各成員的地址都是同一地址;不能直接對(duì)arr賦值,即不能在定義arr時(shí)對(duì)它初始化;arr也不可以作為函數(shù)參數(shù)。17、有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是()。A、3B、1C、2D、0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查位運(yùn)算符以及相關(guān)運(yùn)算,^為按位或,&為按位與,那么a^b為3,再與c按位與仍然為3,所以答案為A選項(xiàng)。18、軟件按功能可以分為:應(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)軟件;②各種語(yǔ)言的解釋程序和編譯程序;③各種服務(wù)性程序;④各種數(shù)據(jù)庫(kù)管理系統(tǒng)。操作系統(tǒng)、編譯程序與匯編程序?qū)儆谙到y(tǒng)軟件,編譯程序與匯編程序?qū)儆谥诬浖?,教?wù)管理系統(tǒng)屬于應(yīng)用軟件。19、有以下程序:#includeintfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){printf("%d/n",fun(4,2));}程序運(yùn)行的結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)是一個(gè)遞歸函數(shù),其功能是:當(dāng)b的值為零時(shí),返回此時(shí)a的值;否則,返回fun(--a,--b),即將a和b的值分別減1后返回fun(a,b)。當(dāng)b不斷遞減時(shí),a也不斷遞減,直到b為零。執(zhí)行過(guò)程為:執(zhí)行fun(4,2),b=2,返回fun(3,1),此時(shí)b=1,返回fun(2,0),b=0,返回a的值2。20、有以下程序:#include<stdio.h>voidfull(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i<J){t=s[i];s[i]=s[J];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、4321098765B、5678901234C、0987654321D、0987651234標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中笫1,個(gè)元素和第4個(gè)元素互換,第2個(gè)元素和第3個(gè)元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個(gè)元素和第10個(gè)元素互換,第6個(gè)和第9個(gè)元素互換,第7個(gè)元素和第8個(gè)元素互換;其中fun(a,0,9);功能是將將一維數(shù)組中第1個(gè)元素和第10個(gè)元素互換,第2個(gè)元素和第9個(gè)元素互換……依此類推。因此B選項(xiàng)正確。21、若變量已正確定義,有以下程序段:i=0:doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是()。A、0,0B、0,1C、1,1D、程序進(jìn)入無(wú)限循環(huán)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:do…while循環(huán)的執(zhí)行過(guò)程如下:①執(zhí)行do后面的循環(huán)體中的語(yǔ)句。②計(jì)算while后一對(duì)圓括號(hào)中表達(dá)式的值。當(dāng)值為非O時(shí),轉(zhuǎn)去執(zhí)行步驟①;當(dāng)值為0時(shí),執(zhí)行步驟③。③退出do…while循環(huán)。對(duì)于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語(yǔ)句,輸出變量i的值0。再判斷while后面括號(hào)中表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過(guò)自加已經(jīng)變?yōu)?,所以再次輸出i的值“1”。22、有以下程序:#include#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ò)誤。23、有以下程序:#includestruetord{intx,y;}dt[2]={1,2,3,4};main(){struetord*P=dt;prinff(“%d,”,++(P一>x));prinff(“%d\n”,++(P一>y));}程序運(yùn)行后的輸出結(jié)果是()。A、3,4B、4,1C、2,3D、1,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作,dt為結(jié)構(gòu)體數(shù)組,那么指針p指向了結(jié)構(gòu)體數(shù)組的一個(gè)元素,所以p一>x為1,p一>y為2,結(jié)果為2,3。選項(xiàng)C正確。24、有以下程序:#inelude<stdio.h>intfun(inta[],intn,intx){int*p=a;while(p<a+n&&*p!=x)p++;if(p<a+n)returnp-a;elsereturn-1;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};printf("%d\\n",fun(a,10,10));}程序運(yùn)行后的輸出結(jié)果是()。A、9B、-1C、10D、0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:while(p<a+n&&*p!=x)p++;當(dāng)p=a;n=10,x=10;時(shí)while循環(huán)條件成立,直到p=a+9,結(jié)束循環(huán),執(zhí)行下一條語(yǔ)句,if條件成立,返回p-a,此時(shí)執(zhí)行p-a=a+9-a=9;因此,輸出9。故答案為A選項(xiàng)。25、有以下程序:#includemain(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的運(yùn)行結(jié)果是()。A、321B、12300C、1D、123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序首先將數(shù)組a[10]中的元素l、2、3分別寫(xiě)入了文件d1.dat文件中,然后又將d1.dat文件中的數(shù)據(jù)“123”整體寫(xiě)入到了變量n的空間中,所以打印n時(shí)輸出的數(shù)據(jù)為123。26、有定義語(yǔ)句:inti;chars1[10],s2[10]=“Program”;則能正確給sl數(shù)組賦字符串的語(yǔ)句是()。A、for(i=0;i<=7;i++)s1[i]=s2[i];B、s1=s2;C、while(s2)s1++=s2++;D、for(i=0;s2[i];i++)s1[i]=s2[i];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先字符數(shù)組只有在初始化的時(shí)候整體賦值,否則只能對(duì)字符數(shù)組逐個(gè)賦值,所以選項(xiàng)B錯(cuò)誤;字符數(shù)組名s1、s2是常量,不能改變,故選項(xiàng)C錯(cuò)誤;字符串“Program”包含結(jié)尾的‘\0’,選項(xiàng)D中在處理到s2[i]=’\0’時(shí),跳出循環(huán),未將’\0’賦給s1,所以選項(xiàng)D也是錯(cuò)誤的;由于“Program”包含結(jié)尾的’\0’總共有8個(gè)字符,所以選項(xiàng)A是正確的,答案為A。27、以下敘述中正確的是A、數(shù)組下標(biāo)的下限是1B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、charc1,c2,*c3,c4[40];是合法的變量定義語(yǔ)句標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)組下標(biāo)的下限是0。因此D選項(xiàng)正確。28、在以下選項(xiàng)中,按照C語(yǔ)言規(guī)定,不能出現(xiàn)在標(biāo)識(shí)符中的是()。A、大寫(xiě)字母B、下劃線C、數(shù)字字符D、連接符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:按照C語(yǔ)言規(guī)定,標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,且開(kāi)頭必須是字母或下劃線,所以選項(xiàng)D不合法。29、有以下程序:intf1(doublea){returna*a;)intf2(intx,inty){doublea,b;a=f1(x);b=f1(y);returna+b;}main(){doublew;w=f2(2.1,4.0);}程序執(zhí)行后,變量W的值是()。A、20.21B、20C、20.0D、0.0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的使用。計(jì)算w的時(shí)候,先調(diào)用f2函數(shù),f2函數(shù)的公式是“a+b”,計(jì)算a和b的時(shí)候又調(diào)用到f1函數(shù),f1的函數(shù)是“a*a”,因此,w的計(jì)算公式為:w=(double)[(int)(2.1*2.1)+(int)(4.0*4.0)]=20.0。30、有三個(gè)關(guān)系表R、S和T如下,其中三個(gè)關(guān)系對(duì)應(yīng)的關(guān)鍵字分別為A,B和復(fù)合關(guān)鍵字(A,B)。表T的記錄項(xiàng)(b,q,4)違反了A、實(shí)體完整性約束B(niǎo)、參照完整性約束C、用戶定義的完整性約束D、關(guān)系完整性約束標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系模型中可以有3類完整性約束:實(shí)體完整性約束、參照完整性約束和用戶定義的完整性約束。實(shí)體完整性約束是指,若屬性M是關(guān)系的主鍵,則屬性M中的屬性值不能為空值。T中主鍵不為空,A選項(xiàng)錯(cuò)誤。參照完整性約束是指,若屬性(或?qū)傩越M)A是關(guān)系M的外鍵,它與關(guān)系M的主碼相對(duì)應(yīng),則對(duì)于關(guān)系M中的每個(gè)元組在A上的值必須為:要么取空值;要么等于關(guān)系M中某個(gè)元組的主碼值。屬性B為關(guān)系S的外鍵,它與關(guān)系S的主鍵相對(duì)應(yīng),則T中元組在B上應(yīng)該為空或者與S中主鍵值相等,題目中不相等,違反參照完整性約束,B選項(xiàng)正確。此題關(guān)系中無(wú)語(yǔ)義要求,C選項(xiàng)錯(cuò)誤。31、有如下程序#include<stdio.h>main(){char*p,old_str[10]="wind";intpassword;scanf("%d",&password);p=old_str;while(*p){printf("%c",*p+password);p++;}printf("\n");}程序運(yùn)行時(shí),從鍵盤(pán)輸入2<回車>,輸出結(jié)果是A、ykpfB、windC、xjoeD、2222標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序執(zhí)行過(guò)程為:定義字符數(shù)組str并且初始化為:"wind",定義password并通過(guò)scanf函數(shù)從鍵盤(pán)為其賦值2。定義指針p并使其指向字符串。通過(guò)while循環(huán),將字符數(shù)組中每一個(gè)字符的ASCII碼加2,并且按字符格式輸出每一個(gè)字符。程序運(yùn)行后輸出結(jié)果是:ykpf,A選項(xiàng)正確。32、設(shè)有定義:intn=1234;doublex=3.1415;則語(yǔ)句printf("%3d,%1.3f\n",n,x);的輸出結(jié)果是A、1234,3.142B、123,3.142C、1234,3.141D、123,3.141標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)printf()中,%md指輸出帶符號(hào)的十進(jìn)制整數(shù),給定最小寬度為m位,不足m位左端補(bǔ)空格,超過(guò)m位按實(shí)際位數(shù)輸出,%.nf表示以小數(shù)形式輸出實(shí)數(shù),小數(shù)占n位,對(duì)應(yīng)題目,答案為A選項(xiàng)。33、有以下程序#include<stdio.h>main(){inti;FILE*fp;for(i=0;i<3;i++){fp=fopen("res.txt","w");fputc(’K’+i,fp);fclose(fp);}}程序運(yùn)行后,在當(dāng)前目錄下會(huì)生成一個(gè)res.txt文件,其內(nèi)容是A、EOFB、MC、KLMD、L標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:for循環(huán)中,每次都執(zhí)行打開(kāi)文件res.txt、寫(xiě)入文件、再關(guān)閉文件的操作,由于fopen函數(shù)使用’w’模式寫(xiě)文件,所以每次打開(kāi)res.txt后,都刪除文件中的原有數(shù)據(jù),再重新寫(xiě)入新數(shù)據(jù)。所以文件最終的內(nèi)容只與最后一次for循環(huán)有關(guān),最后一次for循環(huán)是向文件res.txt寫(xiě)入’K’+2,即M,正確答案是B選項(xiàng)。34、以下程序擬實(shí)現(xiàn)計(jì)算s=1+2*2+3*3+…+n*n+…,直到s>1000為止。#include<stdio.h>main(){ints,n;s=1;n=1;do{n=n+1;s=s+n*n;}while(s>1000);printf("s=%d\n",s);}程序運(yùn)行后,不能得到正確結(jié)果,以下修改方案正確的是A、把while(s>1000);改為while(s<=1000);B、把s=1;改為s=0;C、把n=1;改為n=0;D、把n=n+1;改為n=n*n;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題目中程序不能實(shí)現(xiàn)預(yù)期功能是因?yàn)閣hile的循環(huán)條件錯(cuò)誤,選項(xiàng)B,把s=1,改為s=0,最終的結(jié)果s=4,與題目原意不同,選項(xiàng)C,把n=1;改為n=0;最終的結(jié)果s=2,與題目原意不同,選項(xiàng)D,把n=n+1;改為n=n*n;最終的結(jié)果s=2,與題目原意不同,選項(xiàng)A,正確的修改了while循環(huán)條件,可以得到正確結(jié)果。故答案為A選項(xiàng).35、有以下程序#include<stdio.h>main(){inti;charc;scanf("%c",&c);for(i=0;i<5;i++){if(i>c)continue;printf("%d,",i);}}執(zhí)行時(shí)輸入:0<回車>后,則輸出結(jié)果是A、5B、0,0,0,0,0,C、0,1,2,3,4,D、0,1,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:scanf("%c",&c),輸入的字符,題目中輸入了0,是字符,對(duì)應(yīng)于ASCII碼為48,因此for循環(huán),i的范圍從0~5,均小于48,if條件不成立,直接執(zhí)行下一條語(yǔ)句,因此執(zhí)行printf,因此得到的結(jié)果是0,1,2,3,4。故答案為C選項(xiàng)36、設(shè)循環(huán)隊(duì)列存儲(chǔ)空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過(guò)一系列入隊(duì)和退隊(duì)操作后,front=rear=25,則該循環(huán)隊(duì)列中元素個(gè)數(shù)為A、26B、25C、24D、0或50標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。循環(huán)隊(duì)列長(zhǎng)度為50,由初始狀態(tài)為front=rear=50可知此時(shí)循環(huán)隊(duì)列為空。入隊(duì)運(yùn)算時(shí),首先隊(duì)尾指針rear進(jìn)1(即rear+1),然后在隊(duì)尾指針rear指向的位置插入新元素。特別的,當(dāng)隊(duì)尾指針rear=50+1時(shí),置rear=1。退隊(duì)運(yùn)算時(shí),排頭指針front進(jìn)1(即front+1),然后刪除front指針指向的位置上的元素,當(dāng)排頭指針front=50+1時(shí),置front=1。若經(jīng)過(guò)運(yùn)算,front=rear可知隊(duì)列空或者隊(duì)列滿,則隊(duì)列中有0或者50個(gè)元素。故選D選項(xiàng)37、下列敘述中錯(cuò)誤的是()。A、C語(yǔ)句必須以分號(hào)結(jié)束B(niǎo)、復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句C、空語(yǔ)句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行D、賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定每條語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào),分號(hào)是C語(yǔ)句的必要組成部分。復(fù)合語(yǔ)句也稱為“語(yǔ)句塊”,其形式如下:{語(yǔ)句1;語(yǔ)句2;……”語(yǔ)句n;},即用一對(duì)大括號(hào)把若干語(yǔ)句括起來(lái)構(gòu)成一個(gè)語(yǔ)句組。一個(gè)復(fù)合語(yǔ)句在語(yǔ)法上視為一條語(yǔ)句,在一對(duì)花括號(hào)內(nèi)的語(yǔ)句數(shù)量不限。一個(gè)賦值表達(dá)式的最后加一個(gè)分號(hào)就成為一條語(yǔ)句,即賦值語(yǔ)句。空語(yǔ)句是只有一個(gè)分號(hào)的語(yǔ)句,它什么也不做,程序設(shè)計(jì)中有時(shí)需要加一個(gè)空語(yǔ)句來(lái)表示存在一條語(yǔ)句,但隨意加分號(hào)會(huì)導(dǎo)致邏輯上的錯(cuò)誤,而且這種錯(cuò)誤十分隱蔽,編輯器也不會(huì)提示邏輯錯(cuò)誤,需要慎用。38、以下敘述中正確的是()。A、在C語(yǔ)言中,預(yù)處理命令行都以#開(kāi)頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include<stdio.h>必須放在C程序的開(kāi)頭D、C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中。凡是以#開(kāi)頭的都被稱為編譯預(yù)處理行,選項(xiàng)A正確;預(yù)處理行可以放在C源程序的任何位置,習(xí)慣放在起始位置,選項(xiàng)B錯(cuò)誤;語(yǔ)句#include<stdio.h>必須放在使用文件stdio.h中相關(guān)方法的語(yǔ)句之前,但是不一定非要放在C程序開(kāi)頭.選項(xiàng)C錯(cuò)誤;預(yù)處理包括宏定義、文件包含和條件編譯等,選項(xiàng)D錯(cuò)誤。二、程序填空題(本題共1題,每題1.0分,共1分。)39、給定程序中,函數(shù)fun的功能是:計(jì)算形參x所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),將所指數(shù)組中小于平均值的數(shù)據(jù)移至數(shù)組的前部,大于等于平均值的數(shù)據(jù)移至x所指數(shù)組的后部,平均值作為函數(shù)值返同,在主函數(shù)中輸出平均值和移動(dòng)后的數(shù)據(jù)。例如,有10個(gè)正數(shù):47、30、32、40、6、17、45、15、48、26,其平均值為30.500000。移動(dòng)后的輸出為:30、6、17、15、26、47、32、40、45、48。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容并把下畫(huà)線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdlib.h>2#include<stdio.h>3#define.N104doublefun(double*x)5{inti,j;doubleav,y[N];6av=0;7for(i=0;i<N;i++)8/*********found*********/9av+=【1】;10for(i=j=0;i<N;i++)11if(x[i]<av){12y[j]=x[i];x[.i]=-1;13/*********found*********/14【2】;15}16i=0;17while(i<N)18{if(x[i]!=-1)y[j++]=x[i];19/*********found*********/20【3】;21}22for(i=0;i<N;i++)x[i]=y[i];23returnav;24}25main()26{inti;doublex[N];27for(i=0;i<N;i++)28{x[i]=rand()%50;29printf(’’%4.0f’’,x[i]);}30printf(’’\n’’);31printf(’’\nTheaverageis:%f\n’’,fun(x));32printf(’’\nTheresult:\n’’,fun(x));33for(i=0

溫馨提示

  • 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)論