




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)(C語言)筆試模擬試卷18(共9套)(共549題)國家二級(jí)(C語言)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、使用白盒測(cè)試法時(shí),確定測(cè)試數(shù)據(jù)應(yīng)該根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。A、程序的內(nèi)部邏輯B、程序的復(fù)雜結(jié)構(gòu)C、使用說明書D、程序的功能標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:白盒測(cè)試是把測(cè)試對(duì)象看作是一個(gè)打開的盒子,允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及相關(guān)信息來設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有的邏輯路徑進(jìn)行測(cè)試。所以,白盒測(cè)試的對(duì)象基本上是源程序,以程序的內(nèi)部邏輯和指定的覆蓋標(biāo)準(zhǔn)測(cè)試數(shù)據(jù)。2、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在s內(nèi)的有序組所組成,記為R∩S,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。3、下列關(guān)于隊(duì)列的敘述中正確的是A、在隊(duì)列中只能插入數(shù)據(jù)B、在隊(duì)列中只能刪除數(shù)據(jù)C、隊(duì)列是先進(jìn)先出的線性表D、隊(duì)列是先進(jìn)后出的線性表標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:隊(duì)列是一種操作受限的線性表。它只允許在線性表的一端進(jìn)行插入操作,另一端進(jìn)行刪除操作。其中,允許插入的一端稱為隊(duì)尾(rear),允許刪除的一端稱為隊(duì)首(front)。隊(duì)列具有先進(jìn)先出的特點(diǎn),它是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。4、下列關(guān)于隊(duì)列的敘述中正確的是A、在隊(duì)列中只能插入數(shù)據(jù)B、在隊(duì)列中只能刪除數(shù)據(jù)C、隊(duì)列是先進(jìn)先出的線性表D、隊(duì)列是先進(jìn)后出的線性表標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:隊(duì)列是一種操作受限的線性表。它只允許在線性表的一端進(jìn)行插入操作,另一端進(jìn)行刪除操作。其中,允許插入的一端稱為隊(duì)尾(rear),允許刪除的一端稱為隊(duì)首(front)。隊(duì)列具有先進(jìn)先出的特點(diǎn),它是按"先進(jìn)先出"的原則組織數(shù)據(jù)的。5、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。A、存儲(chǔ)問題B、共享問題C、安全問題D、保護(hù)問題標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:數(shù)據(jù)庫產(chǎn)生的背景就是計(jì)算機(jī)的應(yīng)用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對(duì)數(shù)據(jù)共享的要求越來越高。數(shù)據(jù)庫技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問題。6、下面不屬于軟件設(shè)計(jì)原則的是______。A、抽象B、模塊化C、自底向上D、信息隱蔽標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在軟件設(shè)計(jì)過程中,必須遵循軟件工程的基本原則:這些原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可靠性。7、在C語言中,以下一組運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是______。A、<=B、=C、%D、&&標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析8、若有定義“char,*p2,*p3,*p4,ch;”,則不能正確賦值的程序語句為()A、p1=&ch;scanf("%c",p1);B、p2=(char*)malloc(1);scanf("%c",p2);C、p3=getchar();D、p4=&ch;*p4=getchar();標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析9、一棵二叉樹中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為A、219B、221C、229D、231標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對(duì)任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有70個(gè)葉子結(jié)點(diǎn),則其度為2的結(jié)點(diǎn)數(shù)為70-1,即69個(gè)。二叉樹的總結(jié)點(diǎn)數(shù)是度為2、度為1和葉子結(jié)點(diǎn)的總和,因此,題目中的二叉樹總結(jié)點(diǎn)數(shù)為69+80+70,即219。因此,本題的正確答案是選項(xiàng)A。10、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是______。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。人工管理階段的特點(diǎn):數(shù)據(jù)不保存、數(shù)據(jù)不獨(dú)立、數(shù)據(jù)不能共享、數(shù)據(jù)無結(jié)構(gòu),沒有專門的數(shù)據(jù)管理軟件。文件系統(tǒng)階段的特點(diǎn):數(shù)據(jù)可以長期保存,有專門的數(shù)據(jù)管理軟件——文件系統(tǒng)。但是數(shù)據(jù)獨(dú)立性低,共享性差、冗余度大,數(shù)據(jù)記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)階段的特點(diǎn):數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)獨(dú)立性高,數(shù)據(jù)共享性高,冗余度小,易于擴(kuò)充,數(shù)據(jù)庫管理系統(tǒng)提供統(tǒng)一的數(shù)控制功能,包括數(shù)據(jù)安全性、完整性、并發(fā)控制和數(shù)據(jù)恢復(fù)功能。二、選擇題(1分)(本題共11題,每題1.0分,共11分。)11、若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語句:printf("i=%u,j=%x\n".i,j);輸出的結(jié)果是()。A、i=8,j=9B、8.9C、89D、i=8,i=8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)printf()的格式?!?x”表示以十六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以十進(jìn)制無符號(hào)型輸出整型數(shù)據(jù)。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。12、有下列程序:main(){inty=20;do{y--;}while(--y);printf("%d\n",y--);}當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。A、-1B、1C、4D、0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查do…while循環(huán)。當(dāng)--y是0(即y是0)時(shí)結(jié)束循環(huán),輸出y--是先輸出y的值再將y的值減1。13、設(shè)a和b均為int型變量,且a:6、b=11、c=3,則能使值為3的表達(dá)式是()。A、b%(c%4)B、b%(c-a%5)C、b%a-a%5D、(b%a)-(a%4)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題首先判斷a>b,當(dāng)a>b時(shí)結(jié)果等于a,否則等于“d>c?d:b”,因?yàn)閍>b,所以直接輸出a的值,注:這里“a:d>c?d:b”是用來干擾考生的。14、______是構(gòu)成C語言程序的基本單位。A、函數(shù)B、過程C、子程序D、子例程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C程序是由函數(shù)構(gòu)成的?!獋€(gè)C源程序至少包含—個(gè)main函數(shù),也可以包含—個(gè)main函數(shù)和若干個(gè)其他函數(shù),因此,函數(shù)是C程序的基本單位。15、對(duì)序線性表(23,29,34,55,60,70,78)用二分法查找值為60的元素時(shí),需要比較次數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進(jìn)行比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進(jìn)行比較,由于60小于70,所以在線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時(shí)兩者相等。即查找成功。16、有以下計(jì)算公式:若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是()。A、if(x>=0)y=sqrt(x);elsey=sqrt(-x);B、y=sqrt(x);if(x<0)y=sqrt(-x);C、if(x>=0)y=sqrt(x);if(x<0)=sqdrt(-x);D、y=sqrt(x>=0?x:-x);標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:選項(xiàng)B一開始就調(diào)用了sqrt(x)而沒有判斷x的正負(fù),所以是錯(cuò)誤的。故應(yīng)該選B。17、下列屬于C語言語句的是______。A、printf("%d\n"a)B、#include<stdio.h>C、a=b;b=c;c=a;D、/*thisisaprogram*/標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在C語言中,—個(gè)完整的C語句必須在語句末尾出現(xiàn)分號(hào),分號(hào)是C語句的必要組成部分。本題答案為C。18、C語言程序的基本單位是()A、函數(shù)B、過程C、字符D、語句標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析19、以下能正確表示x在-5到-1或5到1范圍(含5和1)內(nèi),值為“真”的表達(dá)式是()A、(x>=-5)||(x<=-1)&&(x<=5)&&(x>=1)B、!(x>=-5||x<=-1&&x<=5||x>=1)C、x<-5&&x>-1||x<1&&x>5D、(x<-5)||(x>-1&&x<1)||(x>5)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析20、下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A、它們的運(yùn)算對(duì)象可以是任何變量和常量B、它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量C、它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量D、它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語言中的++和——運(yùn)算符,這兩種運(yùn)算符是單目運(yùn)算符,其運(yùn)算對(duì)象可以是整型、字符型、float型和double型等基本數(shù)據(jù)類型。21、若有以下定義和語句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a則值為3的表達(dá)式是_______。A、P+=2,*(p++)B、P+=2,*++pC、P+=3,*p++D、P+=2,++*p標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:引用一個(gè)數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)22、有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=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、987654321B、4321098765C、5678901234D、987651234標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(int*s,intn1,intn2)的功能是對(duì)數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5.6,7,8,9,01;再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。23、下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d,",*(p++));printf("%d",**q);}A、2,2B、1,1C、3,4D、1,2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題干中,*(p++)就是數(shù)組元素a[0],輸出a[0],之后指針p的值加1,**q即是數(shù)組元素a[1]。24、下面for語句的循環(huán)次數(shù)為()。for(x=1,y=0;(y!=19)&&(x<6);x++);A、是無限循環(huán)B、循環(huán)次數(shù)不定C、最多執(zhí)行6次D、最多執(zhí)行5次標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查for循環(huán)的使用。根據(jù)條件考慮x的取值變化,x從1取到5,可以循環(huán)5次,但并不知道y是如何變化的,有可能出現(xiàn)y=19提前跳出循環(huán)的情況,所以是最多執(zhí)行5次。25、fwrite函數(shù)的一般調(diào)用形式是A、fwrite(buffer,count,size,fp);B、fwrite(fp,size,count,buffer);C、fwrite(fp,count,size,buffer);D、fwrite(buffer,size,count,fp);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示準(zhǔn)備輸出的數(shù)據(jù)塊的起始地址,size表示每個(gè)數(shù)據(jù)塊的字節(jié)數(shù),count用來指定每寫一次或輸出的數(shù)據(jù)塊,fp為文件指針。26、已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。A、scanf("%3d,%3d,%3d",&i,Aj,&k);B、scanf("%d,%d,%d",&i,&j,&k);C、scanf("%d%d%d",&i,&J,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,其中的逗號(hào)也必須輸入。27、以下敘述中正確的是()。A、預(yù)處理命令行必須位于C源程序的起始位置B、在C語言中,預(yù)處理命令行都以“#”開頭C、每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include<stdio.h>D、C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:暫無解析28、設(shè)有以下語句:typedefstreetS{intg;charh;}T;則下面敘述中正確的是()。A、可用S定義結(jié)構(gòu)體變量B、可以用T定義結(jié)構(gòu)體變量C、S是struct類型的變量D、T是structS類型的變量標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:可以用typedef定義新的類型名來代替已有的類型名。T是所定義的新的類型名,它代表題中定義的一個(gè)結(jié)構(gòu)體類型,這樣就可以用T定義結(jié)構(gòu)體變量了。29、對(duì)以下說明語句的正確理解是()。inta[10]={6,7,8,9,10};A、將5個(gè)初值依次賦給a[1]至a[5]B、將5個(gè)初值依次賦給a[0]至a[4]C、將5個(gè)初值依次賦給a[6]至a[10]D、因?yàn)閿?shù)組長度與初值的個(gè)數(shù)不相同,所以此語句不正確標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題中,表達(dá)式將5個(gè)初值分別賦給a[0]至a[4],系統(tǒng)自動(dòng)給后面的元素a[5]至a[9]賦0。30、有以下程序:#include<studio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}A、12B、15C、16D、20標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考核的知識(shí)點(diǎn)是宏與自增運(yùn)算符的綜合運(yùn)用.在程序中先用表達(dá)式將宏替換掉,則輸出語句中的表達(dá)式為(a++)*(b++),而a++的值為3,b++的值為4。因此最后的值為3*4=12。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。31、以下所列的各函數(shù)首部中,正確的是______。A、voidplay(var:Integer,varb:Integer)B、voidplay(inta,b)C、voidplay(inta,intb)D、Subplay(aasinteger,basinteger)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析32、若有如下定義:ints[3][4];則下面表達(dá)式中能代表數(shù)組元素s[1][0]的值的是()A、*(s+1)B、s[1]C、s+1D、*(s[1])標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析33、交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列哪一個(gè)位運(yùn)算符()A、~B、&C、^D、|標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析34、下面程序段的執(zhí)行結(jié)果是()。intx=10;for(;x;x--){if(x%3)continue;printf("%d",x);}A、875421B、963C、741D、852標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題的for循環(huán)省略了第一個(gè)表達(dá)式,即for沒有任何初始化動(dòng)作;第二個(gè)表達(dá)式x的意思是只要x非0,則循環(huán)繼續(xù);第三個(gè)表達(dá)式讓x在每次循環(huán)結(jié)束時(shí)減1。x初始為10,然后進(jìn)入循環(huán)體,判斷x是否能被3整除,不能整除則執(zhí)行continue;語句進(jìn)入下一次循環(huán),能整除則輸出x。故最終輸出的結(jié)果為從10遞減到1之中能被3整除的數(shù)9、6和3。所以正確答案是B。35、有以下程序main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);}程序運(yùn)行后的輸出結(jié)果是A、123B、234C、223D、233標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:根據(jù)優(yōu)先級(jí)順序,先計(jì)算內(nèi)層括號(hào)的值。j自加1等于3,所以++j==3成立,表達(dá)式為1,由于1“|”任何數(shù)都為1,所以不用計(jì)算“||”后面的表達(dá)式,所以k=3,最后計(jì)算“&&”之前的表達(dá)式,i先進(jìn)行判斷再自加1,所以i++==1成立,自加1后i=2。if語句的條件為“1”,所以輸出i、j、k的值分別是2,3,3。36、有以下程序main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);}程序運(yùn)行后輸出結(jié)果是A、8,7,8,7B、7,8,7,8C、8,7,7,8D、7,8;8,7標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:程序中定義了兩個(gè)變量a和b,并分別賦初值為7和8,定義了三個(gè)指針變量p、q、r,并讓指針p指向變量a,讓q指向變量b,然后通過一個(gè)中間指針變量f,使指針變量p和q互換,互換后p指向q所指的內(nèi)容即b,q指向開始p所指向的內(nèi)容即a,因此最后輸出的*p,*q的值為8,7,a,b的值沒有改變?nèi)詾?,8。37、有如下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.Of\n",fun((int)fun(a+c,B),(a-C)))}程序運(yùn)行后的輸出結(jié)果為_______。A、編譯出錯(cuò)B、9C、21D、9標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題中先執(zhí)行(int)fun(a+c,b)函數(shù)的調(diào)用,值為整型數(shù)值15;然后再執(zhí)行fun(15,(a-c))函數(shù)調(diào)用,值為單精度實(shí)型數(shù)值9.000000。輸出為%3.of,即有效數(shù)長度為3,沒有小數(shù)位數(shù),所以最后結(jié)果為9。38、設(shè)有以下語句chara=3,b=6,c;c=ab<<2;則c的二進(jìn)制值是_______。A、11011B、10100C、11100D、11000標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:“<<”是C語言中規(guī)定的左移運(yùn)算符,^是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為00011011。39、下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}A、intB、不確定C、voidD、float標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時(shí),盡管y的類型是float,x的類型是double,但是因?yàn)楹瘮?shù)定義時(shí)省去類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計(jì)算后的y的類型是int型。40、以下敘述中正確的是A、局部變量說明為static存儲(chǔ)數(shù),其生存期將得到延長B、全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大C、任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的D、形參可以使用的存儲(chǔ)類說明符與局部變量完全相同標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:全局變量說明為static存儲(chǔ)類,其生命周期將得到延長,但作用域不能被擴(kuò)大;static存儲(chǔ)類變量在未賦初值時(shí),是有默認(rèn)值的,形參中的存儲(chǔ)類說明符與局部變量完全相同。41、已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達(dá)式是A、isupper(c)B、’A’<=c<=’Z’C、’A’<=c&&c<=’Z’D、c<=(’z’-32)&&(’a’-32)<=c標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:大寫字母從’A’~’Z’的ASCII碼是連續(xù)的,所以如果當(dāng)一個(gè)字符大于等于’A’31小于等于’Z’時(shí),那這個(gè)字符就一定是一個(gè)大寫字母,故選項(xiàng)C正確。C語言中的庫函數(shù)isupper()的作用也正是判斷一個(gè)字符是否為大寫字母的,故選項(xiàng)A正確。在ASCII碼中,小寫字母的編碼也是連續(xù)的,對(duì)應(yīng)的小寫字符比大寫字符的ASCII碼值大32,所以選項(xiàng)D經(jīng)過小寫字符-32后,換算成了對(duì)應(yīng)的大寫字母’z’和’A’,所得到結(jié)果和選項(xiàng)C是一致的,故也是正確的。選項(xiàng)B中,C語言的邏輯表達(dá)式不能直接連寫,而應(yīng)該寫成選項(xiàng)C那樣,故是錯(cuò)誤的,應(yīng)該選擇B。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)42、按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。標(biāo)準(zhǔn)答案:隊(duì)列知識(shí)點(diǎn)解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。43、在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為【】。標(biāo)準(zhǔn)答案:繼承知識(shí)點(diǎn)解析:繼承是類間的一種基本關(guān)系,是在某個(gè)類的層次關(guān)聯(lián)中不同的類共享屬性和操作的一種機(jī)制。在“is-a”的層次關(guān)聯(lián)中,一個(gè)父類可以有多個(gè)子類,這些子類都是父類的特側(cè),父類描述了這些子類的公共屬性和操作。一個(gè)子類可以繼承它的父類(或祖先類)中的屬性和操作。這些屬性和操作在子類中不必定義,子類中還可以定義它自己的屬性和操作。一個(gè)子類只有唯一的一個(gè)父類,這種繼承稱為單一繼承。一個(gè)子類也可以有多個(gè)父類,它可以從多個(gè)父類中繼承特性,這種繼承稱為多重繼承。例如,“水陸兩用交通工具”類既可繼承“陸上交通工具”類,又可繼承“水上交通工具”類的特性。44、對(duì)于長度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。標(biāo)準(zhǔn)答案:n/2知識(shí)點(diǎn)解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+-…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-l+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。45、按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu),是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。46、符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【】。標(biāo)準(zhǔn)答案:順序結(jié)構(gòu)知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法是程序設(shè)計(jì)的先進(jìn)方法和工具。其中結(jié)構(gòu)化程序設(shè)計(jì)的三種基本控制構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、順序結(jié)構(gòu)。五、填空題(本題共11題,每題1.0分,共11分。)47、以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請(qǐng)?zhí)羁?。FILE*myf;longfl;myf=【】("test.t","rb");fseek(myf,(),SEEK_END)fl+ftell(myf);fclose(myf);printf("%ld\n",fl);標(biāo)準(zhǔn)答案:fopen知識(shí)點(diǎn)解析:C語言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開,使用后要關(guān)閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen("文件名","使用文件方式");關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。48、下列執(zhí)行后輸出的結(jié)果是【】。main(){intarr[10],i,k=0for(i=0;i<10;i++)atr[i]=ifor(i=1,i<4;i++)k+=arr[i]+i;printf("%d\n",k);}標(biāo)準(zhǔn)答案:12知識(shí)點(diǎn)解析:本題的第—個(gè)for循環(huán)用于始數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。49、以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。#defineN2#defineMN+1#defineKM+1*M/2main(){inti;for(i=1;i<K;i++){...}...}標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查宏定義。K=M+1*M/2=N+1+1*N+1/2=2+1+1*2+1/2=5,故for循環(huán)體執(zhí)行的次數(shù)是4。50、若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和()測(cè)試方法。標(biāo)準(zhǔn)答案:黑盒知識(shí)點(diǎn)解析:軟件測(cè)試的方法和技術(shù)是多種多樣的,對(duì)于軟件測(cè)試方法和技術(shù),可以從不同角度加以分類。若從是否需要執(zhí)行被測(cè)試軟件的角度劃分,可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,若從功能劃分,可以分為白盒測(cè)試和黑盒測(cè)試。51、有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:structaa{intdata;【】}node;標(biāo)準(zhǔn)答案:structaa*lhead,*rchild;知識(shí)點(diǎn)解析:結(jié)構(gòu)體對(duì)鏈表的定義。52、下面程序的運(yùn)行結(jié)果是:【】。fun(intt[],intn){inti,m;if(n==1)returnt[0];elseif(n>=2){m=fun(t,n-1);returnm;}}main(){inta[]={11,4,6,3,8,2,3,5,9,2};printf("%d\n",fun(a,10));}標(biāo)準(zhǔn)答案:11知識(shí)點(diǎn)解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個(gè)if語句,然后再執(zhí)行第一個(gè)if語句,最后用return返回?cái)?shù)值。53、下面的語句要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁?。p=【】malloc(sizeof(double));標(biāo)準(zhǔn)答案:(double*)知識(shí)點(diǎn)解析:本題考查強(qiáng)制類型轉(zhuǎn)換。函數(shù)malloc的默認(rèn)返回是void*,若要使指針指向double類型,必須進(jìn)行類型轉(zhuǎn)換,類型轉(zhuǎn)換格式為:(數(shù)據(jù)類型*)。54、以下程序的輸出結(jié)果是【】。#include<stdio.h>#defineMAX(x,y)(x),(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf("%d\n",t);}標(biāo)準(zhǔn)答案:7知識(shí)點(diǎn)解析:本題綜合考查帶參數(shù)的宏以及三目運(yùn)算符的計(jì)算方法。三目運(yùn)算符的一般形式是:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>?!?:”運(yùn)算符的含義是:先求表達(dá)式1的值,如果為真,則求表達(dá)式2的值,并把它作為整個(gè)表達(dá)式的值;如果表達(dá)式1的值為假,則求表達(dá)式3的值,并把它作為整個(gè)表達(dá)式的值。注意,在本題中宏替換時(shí)可采用逐步求解,最終為7>6?7:6*10,即t=7>6?7:60,其值為t=7。55、以下程序的輸出結(jié)果是【】。#include<stdio.h>#deftneJFT(x)x*xmain(){inta,k=3;a=++JFT(k+1);printf("%d",a);}標(biāo)準(zhǔn)答案:9知識(shí)點(diǎn)解析:宏替換的原則是按原樣替換,本題中遇到形參x則以實(shí)參k+1替換,其他字符不變,所以JFT(k+1)經(jīng)替換后為k+1,k+1,則a=++k+1*k+1。若k的值為3,則經(jīng)過運(yùn)算為a=4+1*4+1=9。56、以下程序運(yùn)行的結(jié)果是【】。#include<conio.h>#include<stdio.h>#defineM100voidfun(intm,int*a,int*n){inti,j=0;for(i=1;i<=m;i++)if(i%7==0‖i%11==0)a[j++]=i;*n=j;}main(){intaa[M],n,k;clrscr();fun(10,aa,&n);for(k=0;k<n;k++)if((k+1)%20==0)printf("\n");elseprintf("%4d",aa[k]);printf("\n");}標(biāo)準(zhǔn)答案:7知識(shí)點(diǎn)解析:解答本題的關(guān)鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if的條件中應(yīng)使用“&&”運(yùn)算符。當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時(shí)輸入結(jié)果為:711142122283335424449。57、以下程序運(yùn)行后的輸出結(jié)果是【】。main(){chara[]="Language",b[]="Pragrame";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}標(biāo)準(zhǔn)答案:gae知識(shí)點(diǎn)解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個(gè)指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進(jìn)行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。國家二級(jí)(C語言)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列敘述中錯(cuò)誤的是()。A、一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)C、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)D、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)分順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),一個(gè)數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲(chǔ)空間是連續(xù)的,而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素通過指針就聯(lián)系在一起了,所以所占的存儲(chǔ)空間不一定是連續(xù)的。2、下列關(guān)于棧的描述中錯(cuò)誤的是()。A、棧是先進(jìn)先出的線性表B、棧只能順序存儲(chǔ)C、棧具有記憶作用D、對(duì)棧的插入刪除操作中,不需要改變棧底指針標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,因此具有記憶作用。棧可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。3、對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。A、125B、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)長度為n的線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找完成。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素中的所有元素進(jìn)行比較,因此比較次數(shù)為n。4、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、繼承C、封裝性D、模塊化標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο笤O(shè)計(jì)方法是使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。5、設(shè)計(jì)軟件結(jié)構(gòu)是軟件生命周期的()。A、軟件定義期B、軟件開發(fā)期C、軟件維護(hù)期D、以上3個(gè)都不是標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題是對(duì)軟件設(shè)計(jì)結(jié)構(gòu)的考查。設(shè)計(jì)軟件結(jié)構(gòu)是軟件概要設(shè)計(jì)階段進(jìn)行的,而概要設(shè)計(jì)屬于軟件開發(fā)期。6、下列工具中為需求分析常用工具的是()。A、PADB、BFDC、N-SD、DFD標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析常用的工具有4種:數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判斷樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N—S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。7、下列敘述中不正確的是()。A、在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參B、在C的函數(shù)中,最好使用全局變量C、外部變量可以在函數(shù)之間傳遞數(shù)據(jù)D、自動(dòng)變量實(shí)質(zhì)上足一個(gè)函數(shù)內(nèi)部的局部變量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序運(yùn)行時(shí)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間解放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存未知的情況下,最好不要使用全局變量。8、下列選項(xiàng)不符合良好程序設(shè)計(jì)風(fēng)格的是()。A、源程序要文檔化B、數(shù)據(jù)說明的次序要規(guī)范化C、避免濫用goto語句D、模塊設(shè)計(jì)原則是高耦合、高內(nèi)聚標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序設(shè)計(jì)中對(duì)于軟件設(shè)計(jì)中的模塊設(shè)計(jì)要保證高內(nèi)聚和低耦合,源程序要有文檔說明,同時(shí)對(duì)程序中+;”,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。不執(zhí)行下面的switch。9、有下列程序:#includemain(){inta=6,b=7,m=1;switch(a%2){case0:m++.break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(”%d\n”,m);}程序的運(yùn)行結(jié)果是()。A、3B、2C、4D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語句以及break的用法,第一個(gè)switch語句,因?yàn)閍=6,a%2=0,所以執(zhí)行“case0,m++;”,將m+1遇到,break語句跳出switch語句,結(jié)束循環(huán),不執(zhí)行下面的switch。10、下列程序的運(yùn)行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A、2,3,2B、2,3,1C、1,3,3D、3,1,2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查whlle循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,x++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句,退出循環(huán)。結(jié)果為D。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。A、DB包含DBS和DBMSB、DBMS包含DB和DBSC、DBS包含DB和DBMSD、沒有任何關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)由如下5個(gè)部分組成:數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺(tái)之一——硬件平臺(tái)(硬件)、系統(tǒng)平臺(tái)之二——軟件平臺(tái)(軟件)。其中DB(DataBase)即數(shù)據(jù)庫,是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用完程序提供訪問DB的方法。由以上可知.選C為正確答案。12、下列合法的聲明語句是()。A、int_abc=50;B、doubleint=3+5e2.5;C、longdo=1L;D、float3_asd=3e-3;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。B選項(xiàng)int不是表達(dá)變量類型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名。C選項(xiàng)do是C語言的…個(gè)關(guān)鍵字。D選項(xiàng)標(biāo)識(shí)符只能以字母或下劃線開始。13、設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。A、x&&yB、x<=yC、x‖y+z&&y—zD、!((x<y)&&!z||1)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都是邏輯1時(shí),表達(dá)式返回值才是1;“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是1,x<y為1,!z為0.1&&0為1,0||為1,因此,!1為0。14、若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch=’b’;k=10;printf(""%x,%o,"",ch,ch,k);printf(""k=%%d\n"",k);"A、因變量類型與格式描述符的類型不匹配,輸出無定值B、輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值C、62,142,k=%dD、62,142,k=%10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:第1個(gè)printf函數(shù),格式說明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,所以對(duì)于多余的輸出項(xiàng)k不予輸出;第2個(gè)printf函數(shù),有兩個(gè)%說明,第1個(gè)%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進(jìn)制和八進(jìn)制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②prjntf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項(xiàng)的個(gè)數(shù)也要相等,如果格式說明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),則對(duì)予多余的輸出項(xiàng)不予輸出。15、有下列程序:fun(intx,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A、6B、7C、8D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(intx,inty)的功能是返回x+y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2.3。因此逗號(hào)表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等于8。16、假定x和y為double型,則表達(dá)式x=2,y=x+3/2的值是()。A、3.500000B、3C、2.000000D、3.000000標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在x=2,y=x+3/2中,3/2=1,2+1=3,因此表達(dá)式的值為3,因?yàn)閤,y為double型變量,故選擇D選項(xiàng)。17、如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)x為1時(shí),執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒有break,接著執(zhí)行case2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。18、下列程序的輸出結(jié)果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A、123B、234C、223D、233標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查自增運(yùn)算符“++”、邏輯與運(yùn)算符“&&”和邏輯或運(yùn)算符“||”。自增運(yùn)算符“++”出現(xiàn)在變量之前,表示先使用變量的值加1,再使用變量的值進(jìn)行運(yùn)算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行運(yùn)算,再使用變量的值加1。當(dāng)邏輯與運(yùn)算符“&&”兩邊的運(yùn)算對(duì)象都為真時(shí),邏輯表達(dá)式的值才為真;當(dāng)邏輯或運(yùn)算符“||”只要一個(gè)值為1,值就為1。根據(jù)運(yùn)算符的優(yōu)先級(jí),題中應(yīng)先計(jì)算內(nèi)層括號(hào)中的值。++j是先自加后運(yùn)算。因此運(yùn)算時(shí)j的值等于3,所以表達(dá)式++j=3成立,即表達(dá)式的值為1;1與任何數(shù)都為進(jìn)行或(||)運(yùn)算,結(jié)果都為1.因此k=3的表達(dá)式i++是先運(yùn)算后自加,因此運(yùn)算時(shí)i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。19、下列程序的輸出結(jié)果是()。#includemain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}}printf("%d",i);}A、19B、1C、6D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查switch語句。當(dāng)i=1時(shí),執(zhí)行case1,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆]有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆]有遇到break語句.所以依次往下運(yùn)行,a=a+2=13,a=a+3=i6;當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。20、有以下程序:main(){intx,1;for(i=1;i<=50;i++){x=i;if(x%2=0)if(x%3=0)if(x%7=0)printf("%d,i)";}}輸出結(jié)果是()。A、28B、27C、42D、41標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42.故選擇C選項(xiàng)。三、選擇題(2分)(本題共18題,每題1.0分,共18分。)21、以下程序的輸出結(jié)果是()。voidprt(int*m,intn){int1;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}A、1,2,3,4,5B、2,3,4,5,6C、3,4,5,6,7D、2,3,4,5,1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)調(diào)用時(shí),prt函數(shù)的作用是為使m數(shù)組中的數(shù)自增1,因此數(shù)組下標(biāo)從0開始,每個(gè)元素都自加1。22、有以下程序:voidfunl(char*p){char*q;q=p;while(*q!=’\0’){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];funl(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是()。A、ProhsbnB、PrphsbnC、ProgsbnD、Program標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中使用了函數(shù)的調(diào)用,由funl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加1,而從主函數(shù)傳到函數(shù)時(shí)是從下標(biāo)為3開始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過去的字符串為’hsbn’,前面不變。23、若有以下的說明和語句,則在執(zhí)行for語句后,*(*(pt+1)+2)表示的數(shù)組元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];A、t[2][0]B、t[2][2]C、t[1]E2]D、t[2][1]標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。24、有以下程序:main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()。A、21,43B、43,21C、43,00D、21,00標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:s是一個(gè)公用體,d的值分別與ch中的兩個(gè)元素的值相同,d的高位放在ch[1]中、低位放在ch[0]中,因此輸出的結(jié)果為21,43。25、以下程序的輸出結(jié)果是()。main(){inta=1,b;for(b=1’b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);A、3B、4C、5D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)b=1時(shí),a=1,第二個(gè)if語句成立,此時(shí)a=6,返回for循環(huán);當(dāng)b=2,兩個(gè)if語句都為假,此時(shí)a=3,再返回循環(huán);當(dāng)b=3,第二個(gè)if成立,此時(shí)a=8,繼續(xù)循環(huán);當(dāng)b=4.第一個(gè)if成立,退出for循環(huán)體時(shí)b為4,a為8。26、設(shè)有以下定義和語句:charstr[20]="Program",*p:p=str;則以下敘述中正確的是()。A、*p與str[0]的值相等B、str與p的類型完全相同C、str數(shù)組長度和p所指向的字符串長度相等D、數(shù)組str中存放的內(nèi)容和指針變量p中存放的內(nèi)容相同標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中的str為一個(gè)字符型數(shù)組,p為字符型指針變量.其指向str的首地址,*p的值為str[0]中的字符,其類型、長度不同,但字符第一個(gè)相同。故答案選擇A。27、有下列程序:#includemain(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d”,y,x);}程序的輸出結(jié)果是()。A、0,7B、7,7C、0,6D、1,6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查while循環(huán)。在while循環(huán)申,y自加每次循環(huán)都加1,在循環(huán)體內(nèi)y--每次減1,所以總的y值不變,當(dāng)x自加到7時(shí),不滿足循環(huán)條件,循環(huán)結(jié)束。28、下列程序的運(yùn)行結(jié)果是()。#includemain(){inta=2,b=3,c=4;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}A、2B、3C、5D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查if…else語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則執(zhí)行第二個(gè)if語句,再判斷條件,發(fā)現(xiàn)b<0條件不成立。則執(zhí)行與其配對(duì)的else語句c++,c自加1.得c=5。29、#define能作簡單的替代,用宏來替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。A、#definef(x)5*x*x+5*x+5B、#definef5*x*x+5*x+5C、#definef(a)(5*a*a+5*a+5)D、#define(5*x*x+5*x+5)f(x)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查帶參數(shù)宏的格式:#define標(biāo)識(shí)符(彤參表)形參表達(dá)式。其功能是:把預(yù)處理程序中出現(xiàn)的所有帶實(shí)參的宏名,展開形成由實(shí)參組成的表達(dá)式。敵C正確。30、函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。A、將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后B、將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后C、將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后D、將字符串str2連接到字符串str1之后再將字符串str1復(fù)制到字符串str3中標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:strcat(s1,s2)甬?dāng)?shù)的功能是把s2字符串連接到s1字符串末昆,strcpy(s1.s2)是把s2字符串復(fù)制到s1字符串,要保證s1的容量。31、若有定義“doublea;”,則正確的輸入語句是()。A、seanf("%1f",a);B、scanf("%f",&a);C、scanf("%1f",&a)D、scanf("%le",&a);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查scanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地垃用取地址符“&”加變量名表示,所以選項(xiàng)D正確。32、下列程序的輸出結(jié)果是()。#includemain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0;case3:a+=1;case1:case2:a=2;default:a+=3;}}printf("%d",a);}A、19B、18C、6D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查switchcase開關(guān)語句.default退出繼續(xù)循環(huán)。當(dāng)i=1時(shí).執(zhí)行case1,因?yàn)闆]有break語句,所以依次往下運(yùn)行,a=a+2=2,a=a+3=5;當(dāng)i=2時(shí),執(zhí)行case2,沒有break語句,所以依次往下運(yùn)行,a=a+2=7,a=a+3=10;當(dāng)i=3時(shí),執(zhí)行case3,當(dāng)a=a+1=11,沒有break語句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí)。沒有case語句,則執(zhí)行default,a=a+3=19,i=5不成立,循環(huán)結(jié)束。表達(dá)式的右邊出現(xiàn)變量本身,選項(xiàng)D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對(duì)。33、下列能正確定義且賦初值的語句是()。A、intn1=n2=1;B、charc=99:C、floatf=f+1;D、doublex=1.2E5.6;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語言規(guī)定中,可以在定義變量的同時(shí)給變量賦初值,選項(xiàng)A中n2沒有定義;選項(xiàng)C中不能賦值表達(dá)式的右邊出現(xiàn)變量本身,選項(xiàng)D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對(duì)。34、下列程序的輸出結(jié)果是()。main(){inta=6,b=3,c;if(a<b){c=a*b;printf("%d%d,%d\n",b,a,c);}else}A、3,6,18B、3,6,2C、6,3,18D、6,3,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查if…else語句。如果if條件成立.則執(zhí)行if下面的語句.不成立則執(zhí)行else,判斷條件。發(fā)現(xiàn)a<b不成立,則執(zhí)行else后面的語句,得c=b/a=2。35、若有定義和語句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()。A、20,10B、20,20C、10,20D、10,10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針變雖的賦值。**pp是定義一個(gè)指針變量,語句pp=&p是將pp指向指針p,*p和**pp都是指針p所指的內(nèi)存空問的內(nèi)容,即b的值。36、下列程序的運(yùn)行結(jié)果是()。#includevoidfun(int*s,int*p){staticintt=3;*p=s[t];t--:}voidmain(){inta[]={2,3,4,5},k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A、5,4,3,2B、2,3,4,5C、2,2,2,2D、5,5,5,5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組p。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main()函數(shù)中調(diào)用函數(shù)fun(a.&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。37、下列程序的輸出結(jié)果是()。#includemain(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un)};}A、6,2B、6,4C、8,4D、8。6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)和聯(lián)合內(nèi)存使用的一些區(qū)別:結(jié)構(gòu)中每個(gè)成員相互獨(dú)立,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和;聯(lián)合所占用內(nèi)存空間是指最長的成員占用的空間。38、標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。A、從文件file中讀取長度為n的字符串存入字符數(shù)組s中B、從文件file中讀取長度不超過n-1個(gè)字符的字符串放到字符數(shù)組S中C、從文件file中讀到n個(gè)字符串存入字符數(shù)組s中D、從文件file中讀取長度為n-1個(gè)字符的字符串存入字符數(shù)組s中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查fgets()函數(shù)的使用調(diào)用形式:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個(gè)字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個(gè)數(shù);“fp”是指向該文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個(gè)字符的字符串,并將該字符串放到字符數(shù)組s中,讀入字符串后會(huì)自動(dòng)在字符串末尾加入"\0"結(jié)束符,表示字符串結(jié)束。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)39、長度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)的元素的平均個(gè)數(shù)為________。標(biāo)準(zhǔn)答案:n/2。知識(shí)點(diǎn)解析:在線性表的任何位置插入一個(gè)元素概率相等,為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為[*]。40、軟件設(shè)計(jì)模塊化的目的是________程序設(shè)計(jì)的復(fù)雜性。標(biāo)準(zhǔn)答案:降低。知識(shí)點(diǎn)解析:模塊化是指解決一個(gè)復(fù)雜問題時(shí),自項(xiàng)向下逐層把軟件系統(tǒng)劃分成若干模塊的過程,由此分解來降低程序設(shè)計(jì)的復(fù)雜性。41、在算法的4個(gè)特性中,算法必須能執(zhí)行有限個(gè)步驟之后終止指的是算法的特性________。標(biāo)準(zhǔn)答案:有窮性。知識(shí)點(diǎn)解析:本題考查算法的4個(gè)基本特性;可靠性、確定性、有窮性和擁有足夠的情報(bào),其中,算法的有窮性是指算法必須在有限的時(shí)間內(nèi)完成,即算法必須執(zhí)行有限個(gè)步驟之后終止。42、設(shè)一棵完全二叉樹共有500個(gè)結(jié)點(diǎn),則在該二叉樹中有________個(gè)葉子結(jié)點(diǎn)。標(biāo)準(zhǔn)答案:250。知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì):具有n個(gè)結(jié)點(diǎn)的完全二叉樹,其父結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去父結(jié)點(diǎn)數(shù)。43、下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號(hào)能被4整除但不能被100整除或年號(hào)能被400整除,請(qǐng)?zhí)羁眨篲_______。標(biāo)準(zhǔn)答案:(y%4==0)&&(y%100!=0)||(y%400==0)。知識(shí)點(diǎn)解析:本題考查閏年的計(jì)算方法。年號(hào)能被整除(y%4==0)但不能被100整陳(y%100!=0)兩者都是與的關(guān)系。年號(hào)能被400整除即y%400==0,與前兩項(xiàng)是或的關(guān)系。五、填空題(本題共8題,每題1.0分,共8分。)44、若要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁?。p=__________malloe(sizeof(double));標(biāo)準(zhǔn)答案:double*。知識(shí)點(diǎn)解析:p是個(gè)指向double變量的指針,因此填double*。45、結(jié)構(gòu)化分析方法是面向__________進(jìn)行分析的方法。標(biāo)準(zhǔn)答案:數(shù)據(jù)流知識(shí)點(diǎn)解析:本題考查對(duì)結(jié)構(gòu)化分析的理解,結(jié)構(gòu)化分析方法的實(shí)質(zhì)著眼于數(shù)據(jù)流,自上面下,逐層分解,建立系統(tǒng)的處理流程.以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。46、以下程序的功能是打印以下楊輝三角形,請(qǐng)?zhí)羁铡?1112113311464115101051main(){staticintm,n,k,b[10][10]={10};b[0][1]=1;for(m=1;m<10;m++);{for(n=1;n<=m;n++){b[m][n]=________;printf("%-5d",b[m][n]);}printf("\n");}}標(biāo)準(zhǔn)答案:b[m-1][n-1]+b[m-1][n]。知識(shí)點(diǎn)解析:楊輝三角形第3行開始非邊緣的元素值是其上一行斜上方元素和正上方元素之和。所以填b[m][n]=b[m-1][n-1]+b[m-1][n]。47、下面函數(shù)的功能是將一個(gè)字符串的內(nèi)容顛倒過來,請(qǐng)?zhí)羁?。voidfun(charstr[]){inti,j,k;for(i=0,j=________;i<j;i++,j--){k=str[i];str[i]=str[i];str[j]=k;}}標(biāo)準(zhǔn)答案:strlen(str)-1。知識(shí)點(diǎn)解析:for循環(huán)的作用是再來完成字符串的遍歷,應(yīng)該先對(duì)循環(huán)條件初始化,所以應(yīng)填strlen(str)-1。48、若x為int類型,請(qǐng)寫出與!x等價(jià)的C語言表達(dá)式_________。標(biāo)準(zhǔn)答案:x=0。知識(shí)點(diǎn)解析:x為真,!x的邏輯意思就是x為假,幫x=0,本題中x為int型,也就是整型數(shù)值,所以!x為0。49、下列程序的運(yùn)行結(jié)果是_________。main(){inta=1,b=10;do{b-=a;a++}while(b--<0);printf("%d,%d\n",a,b);}標(biāo)準(zhǔn)答案:2,8。知識(shí)點(diǎn)解析:本題考查do—while語句的功能:先執(zhí)行循環(huán)俸,再判斷循環(huán)條件是否成立,若為真,則重復(fù)執(zhí)行循環(huán)體,否則退出循環(huán)。程序開始時(shí)a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<0不成立,則退出循環(huán),但b的菹被減1,因此結(jié)果為a=2,b=8。50、下列程序的運(yùn)行結(jié)果是_________。main(){intj,a[10];a[0]=a[1]=1:for(i=2;i<5;i++)a[i]=a[i-2]+a[i-1];for(i=0;i<5;i++){if(i%2==0)printf("\n");printf("%d",a[i]);}}標(biāo)準(zhǔn)答案:11235(知識(shí)點(diǎn)解析:本題專查for循環(huán),第一個(gè)for循環(huán)“for(i=2;i<5;i++)”a[i]=a[i-2]+a[i—1];是將數(shù)組中前面兩項(xiàng)的和賦值給數(shù)組當(dāng)前元素,可知a的值應(yīng)為{1,1,2,3,5}。語句if(i%2==0)printf("\n")是將數(shù)組中的元素以每行2個(gè)的形式輸出。51、下列程序的輸出結(jié)果是_________。#includeintfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(11));}標(biāo)準(zhǔn)答案:4。知識(shí)點(diǎn)解析:本題考查函數(shù)的遞歸調(diào)用。在主函數(shù)中第1坎調(diào)用fun(1),如果x等于0或者x等于1剛返回3,否則返回11—fun(9);第2次調(diào)用函數(shù)fun(9),返回9-fum(7);第3次是fun(7),返回7-fun(5);第4次是調(diào)用fun(5),返回5-fun(3);第5次調(diào)用fun(3),返回3-fun(1);第6次調(diào)用fun(1),返回3??偟姆祷刂凳牵?1-(9-(7-(5-(3-3))))=1。六、填空題(含2小題)(本題共2題,每題1.0分,共2分。)52、以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:y1=(x十8)2-(x+8)+6y2=sin2(x)-2sin(x)+6請(qǐng)?zhí)羁铡?includedoublefun(doublex){return(x*x-2*x+6);}main(){doublex,y1,y2;printf("Enterx:");scanf("%If",&x);y1=fun(_________)y2=fun(_________)printf("y1=%1f,y2=1f\n",y1,y2);}標(biāo)準(zhǔn)答案:(x+8)sin(x)。知識(shí)點(diǎn)解析:fun函數(shù)的功能是求x2-2x+6的值,所以只要填(x+8),sin(x)即可。注意優(yōu)先級(jí),所以要加上括號(hào)。53、下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?includeFILE*fp;main(){charch;if((fp=fopen(________))==NULL)exit(0);while((ch=getchar())!=’@’)fputc(ch,fp);________;}標(biāo)準(zhǔn)答案:"bi.dat","w"fclose(fp)。知識(shí)點(diǎn)解析:本題要求從終端讀入文本到bi.dat文件中,故填"bi.dat","w",輸入完成國家二級(jí)(C語言)筆試模擬試卷第3套一、選擇題(1分)(本題共10題,每題1.0分,共10分。)1、算法的空間復(fù)雜度是指()。A、算法程序的長度B、算法程序中的指令條數(shù)C、算法程序所占的存儲(chǔ)空間D、算法執(zhí)行過程中所需要的存儲(chǔ)空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。如果額外空間量相對(duì)于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實(shí)際問題中,為了減少算法所占的存儲(chǔ)空間,通常采用壓縮存儲(chǔ)技術(shù),以便盡量減少不必要的額外空間。2、下列敘述中正確的是()。A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲(chǔ)結(jié)構(gòu),其處理的效率是不同的。3、下列關(guān)于類、對(duì)象、屬性和方法的敘述中,錯(cuò)誤的是()。A、類是對(duì)一類具有相同的屬性和方法對(duì)象的描述B、屬性用于描述對(duì)象的狀態(tài)C、方法用于表示對(duì)象的行為D、基于同一個(gè)類產(chǎn)生的兩個(gè)對(duì)象不可以分別設(shè)置自己的屬性值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類是對(duì)一類具有相同的屬性和方法對(duì)象的描述,屬性用于描述對(duì)象的狀態(tài),方法用于表示對(duì)象的行為,基于同一個(gè)類產(chǎn)生的兩個(gè)對(duì)象是可以分別設(shè)置自己的屬性值的。4、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、數(shù)據(jù)字典B、詳細(xì)設(shè)計(jì)說明書C、數(shù)據(jù)流圖說明書D、軟件需求規(guī)格說明書標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析的最終結(jié)果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便。5、數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和()。A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)目前一段采用生命周期法,即將整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。6、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。7、下列敘述中,正確的是()。A、軟件交付使用后還需要進(jìn)行維護(hù)B、軟件一旦交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件的運(yùn)行和維護(hù)是指將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。而軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程。8、設(shè)一棵滿二叉樹共有15個(gè)結(jié)點(diǎn),則在該滿二叉樹中的葉子結(jié)點(diǎn)數(shù)為()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在具有n個(gè)結(jié)點(diǎn)的滿二叉樹,其非葉子結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去非葉子結(jié)點(diǎn)數(shù)。本題n=15,故非葉子結(jié)點(diǎn)數(shù)等于int(15/2)=7,葉子結(jié)點(diǎn)數(shù)等于15.7=8。9、設(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è)。10、下列選項(xiàng)中,不屬于數(shù)據(jù)庫管理的是()。A、數(shù)據(jù)庫的建立B、數(shù)據(jù)庫的調(diào)整C、數(shù)據(jù)庫的監(jiān)控D、數(shù)據(jù)庫的校對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)院常規(guī)考試試題及答案
- 人教版七年級(jí)歷史下學(xué)期第三單元明清時(shí)期至鴉片戰(zhàn)爭(zhēng)前統(tǒng)一多民族封建國家的鞏固與發(fā)展第4課時(shí)清朝的邊疆治理測(cè)試試題(含答案)
- 2025年水利廳筆試試題及答案
- 2025年考試試題排序規(guī)則及答案
- 2025年駕照筆試題庫及答案
- 車工中級(jí)練習(xí)試題
- 家庭照護(hù)練習(xí)卷含答案
- 2025年防水工的考試題及答案
- 2025年計(jì)量局考試試題及答案
- 2025年機(jī)電副礦長考試題及答案
- 日間手術(shù)管理制度考核試題及答案
- avolites tiger touch ii v7.0操作說明書添加面板按鍵介紹
- 部編人教版小學(xué)五年級(jí)道德與法治下冊(cè)全冊(cè)完整課件ppt
- 頂罩沖壓工藝與模具設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 分離工程試習(xí)題庫-葉慶國
- 山財(cái)自考審計(jì)學(xué)37作業(yè)(已填好答案)
- 電纜線纜生產(chǎn)企業(yè)(線纜廠)安全生產(chǎn)三項(xiàng)制度責(zé)任制+制度+規(guī)程
- 土地整治項(xiàng)目工程量計(jì)算規(guī)則(2013-8-1實(shí)施)
- 儲(chǔ)罐基礎(chǔ)允許偏差項(xiàng)目復(fù)測(cè)記錄
- 5G基站建設(shè)審批事項(xiàng)清單、流程
- 綠色金融簡介及廣東綠色金融發(fā)展分析
評(píng)論
0/150
提交評(píng)論