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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷5(共9套)(共469題)國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第1套一、選擇題(2分)(本題共29題,每題1.0分,共29分。)1、以下敘述錯(cuò)誤的是()。A、C語(yǔ)言區(qū)分大小寫B(tài)、C程序中的一個(gè)變量,代表內(nèi)存中一個(gè)相應(yīng)的存儲(chǔ)單元,變量的值可以根據(jù)需要隨時(shí)修改C、整數(shù)和實(shí)數(shù)都能用C語(yǔ)言準(zhǔn)確無誤地表示出來D、在C程序中,正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來表示標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題涉及C語(yǔ)言最基本的3個(gè)概念:①C語(yǔ)言是區(qū)分大小寫的,q和Q是兩個(gè)不同的變量;②變量的實(shí)質(zhì)就是在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,存儲(chǔ)單元里存放的是該變量的值,變量的值可以根據(jù)需要進(jìn)行修改;③整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確的表示出來,但不可能表示無限度的實(shí)數(shù)。正整數(shù)可用二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。2、以下不正確的轉(zhuǎn)義字符是()。A、’\\’B、’\t’C、’\n’D、’088’標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:’\\’是反斜線轉(zhuǎn)義字符;’\t’是水平跳格轉(zhuǎn)義字符;’\n’是換行轉(zhuǎn)義字符;C語(yǔ)言中沒有規(guī)定’088’是轉(zhuǎn)義字符。3、可在C程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。A、voiddefineWORDB、as_b3_123IfC、For-abccaseD、2cDOSIG標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標(biāo)識(shí)符。4、若變量已正確定義并賦值,則以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是()。A、a=a+7;B、a=7+b+c,a++C、int(12.3%4)D、a=a+7=c+b標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:暫無解析5、有以下程序段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、因變量類型與格式描述符的類型不匹配輸出無定值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í),格式說明與輸出項(xiàng)的個(gè)數(shù)應(yīng)該相同。如果格式說明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)不予輸出;如果格式說明個(gè)數(shù)多于輸出項(xiàng)個(gè)數(shù),則對(duì)于多余的格式項(xiàng)輸出不定值或0。6、下列敘述中錯(cuò)誤的是()。A、計(jì)算機(jī)不能直接執(zhí)行用C語(yǔ)言編寫的源程序B、C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件C、后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件D、后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:暫無解析7、有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序運(yùn)行后的輸出結(jié)果是()。A、4,6B、2,5C、3,5D、2,6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:暫無解析8、若有代數(shù)式(其中P僅代表自然對(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)用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計(jì)算出的結(jié)果就是題干中表達(dá)式的值。9、設(shè)有定義:intk=0;,下列選項(xiàng)的4個(gè)表達(dá)式中與其他3個(gè)表達(dá)式的值不相同的是()。A、k++B、k+=1C、#NAME?D、k+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析10、有下列程序,其中%u表示按無符號(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)解析:“%u”格式符表示以十進(jìn)制形式輸出無符號(hào)整形變最。本題中無符號(hào)整形變量x=0xFFFF表示的是十六進(jìn)制無符號(hào)整型變量的最大值65535,所以最后輸出的結(jié)果為65535。11、下面程序的運(yùn)行結(jié)果是()。for(i=3;i<7;i++)printf((i%2)?("**%d\a"):("##%d\n"),i);A、**3##4**5**6B、##3**4##5**6C、##3**4##5##6D、**3##4**5##6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查printf函數(shù)的輸出格式和條件表達(dá)式“?:”的使用。①printf函數(shù)輸出時(shí)“**%d\n”和“##%d\n”中的“##”和“**”都是直接輸出。②條件表達(dá)式的基本格式為:“a?b:c”。它的運(yùn)算規(guī)則為:當(dāng)a為非0時(shí),整個(gè)表達(dá)式的值取b的值,當(dāng)a為0時(shí),整個(gè)表達(dá)式取c的值。12、設(shè)有語(yǔ)句:if(a==1)b=2;c=3;,以下語(yǔ)句中與之等價(jià)的是()。A、if(a==1){b=2;c=3;}B、if(a!=1){;}else{b=2;c=3;}C、if(a=1)c=3;b=2;D、(a==1)?b=2:a:=a;c=3;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:暫無解析13、運(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=1;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);case1: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ǔ)句。scan函數(shù)通過鍵盤讀入nUm的值。因?yàn)閚um=321>99,所以s=3,i=3,i=2k=1。因?yàn)閟=3,所以執(zhí)行case3,輸出k,j,i的值,然后通過breed結(jié)束程序。14、判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。A、’a’<=c1<=’z’B、(c1>=A)&&(c1<=z)C、(’a’>=c1||(’z’<=c1)D、(c1>=’a’)&&(c1<=’z’)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:暫無解析15、設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過100個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。A、gets(s);B、scanf("%s",s);C、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;D、do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’\0’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語(yǔ)句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或者空格。因此選巧16、下面4個(gè)關(guān)于C語(yǔ)言的結(jié)論中錯(cuò)誤的是()。A、可以用do…while語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用while語(yǔ)句實(shí)現(xiàn)B、可以用for語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用while語(yǔ)句實(shí)現(xiàn)C、可以用while語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用for語(yǔ)句實(shí)現(xiàn)D、do…while語(yǔ)句與while語(yǔ)句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查幾個(gè)循環(huán)語(yǔ)句的關(guān)系。①do…while語(yǔ)句、while語(yǔ)句、for語(yǔ)句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語(yǔ)句和while語(yǔ)句的區(qū)別是do…while語(yǔ)句至少執(zhí)行一次,再判斷循環(huán)條件,while語(yǔ)句是先判斷條件再執(zhí)行。17、若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達(dá)式中值為5的是()。A、(p++)->mB、*(p++)->mC、(*p).mD、*(++p)->m標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:暫無解析18、下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[0];m++;}voidmain(){inta[]={1,2,3,4,5},k;intx;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}A、1,1,1,1,1,B、1,2,3,4,5,C、0,0,0,0,0,D、4,4,4,4,4,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中sub(int*s,int*y)函數(shù)的參數(shù)是兩個(gè)指針型變量,在函數(shù)體內(nèi)將數(shù)組s的第一個(gè)元素賦給y。主程序內(nèi),首先定義了一維數(shù)組并賦初值,然后通過for循環(huán),5次調(diào)用sub(a,&x)函數(shù),每一次調(diào)用都是將數(shù)組a的第一個(gè)元素1賦給x,并輸出。19、有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。A、3B、6C、8D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:暫無解析20、C語(yǔ)言中規(guī)定,程序中各函數(shù)之間()。A、既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用B、不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用C、允許直接遞歸調(diào)用不允許間接遞歸調(diào)用D、不允許直接遞歸調(diào)用允許間接遞歸調(diào)用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的基本概念。在函數(shù)調(diào)用時(shí),只要符合函數(shù)的使用,程序中的各個(gè)函數(shù)間既可以直接調(diào)用其他函數(shù),也可以遞歸調(diào)用其自身。21、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}A、3B、4C、1D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)外層循環(huán)為i時(shí),內(nèi)層循環(huán)i只能取j=i,所以s+=a[i][a[j][j]],其實(shí)就是s+=a[i][a[i][i]],當(dāng)i=0時(shí),s=s+a[0][a[01[0]]=s+a[0][0]=1,當(dāng)i=1時(shí),s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,當(dāng)i=2時(shí),s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。22、有以下程序:#include<stdio.h>#defineX5+6main(){inta=2,c;C=X*2:printf("%d",C);}程序運(yùn)行后的輸出結(jié)果是()。A、17B、22C、16D、11標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析23、當(dāng)用“#defineF37.5f”定義后,下列敘述正確的是()。A、F是float型數(shù)B、F是char型數(shù)C、F無類型D、F是字符串標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符替換定義格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。題中F是代表形參表達(dá)式的標(biāo)識(shí)符(字符串)。24、在一介C源程序文件中,要定義一個(gè)只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使削的存儲(chǔ)類別是()。A、autoB、registerC、externD、static標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“auto”類定義的自動(dòng)變:鞋實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量,作用域是在所說明的函數(shù)中;“register”說明只能用于說明函數(shù)中的變量和參數(shù)中的形參,因此不允許將外部變量或靜態(tài)變量說明為register;“extern”是定義在所有函數(shù)之外的全局變量,它可以被所有的函數(shù)訪問,在所有函數(shù)體的內(nèi)部是有效的,所以函數(shù)之間可以通過外部變量直接傳遞數(shù)據(jù);“static”為允許本源文件中所有函數(shù)使用的全局變量。25、以下說法正確的是()。A、宏定義是C語(yǔ)句,要在行末加分號(hào)B、可以使用#undefine提前結(jié)束宏名的使用C、在進(jìn)行宏定義時(shí),宏定義不能嵌套D、雙引號(hào)中出現(xiàn)的宏名也要進(jìn)行替換標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識(shí)符字符串,行末不加分號(hào);②雙引號(hào)中出現(xiàn)的宏名不替換;③如果提前結(jié)束宏名的使用,程序中可以使用#ndefine;④在進(jìn)行宏定義時(shí),宏定義能層層置換,能夠嵌套。26、下面程序的輸出結(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)的成員。27、以下程序中函數(shù)sort的功能足對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2,1,C、1,2,3,8,7,6,5,4,9,10,D、1,2,10,9,8,7,6,5,4,3,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中sort函數(shù)的功能是對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行從大到小的排序。主函數(shù)main中調(diào)用函數(shù)sort(&aa[3],51;,使得數(shù)組aa中從第4個(gè)元素開始的5個(gè)元素進(jìn)行從大到小的排序,數(shù)組aa中的元素變?yōu)椋?,2,3,8,7,6,5,4,9,10。并輸出這些元素。28、設(shè)x=061,y=016,則z=x|y的值是()。A、1111B、1.11111e+007C、111111D、1.1e+007標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查按位或運(yùn)算,x=061(二進(jìn)制為00110001),y=016(二進(jìn)制為00001110),進(jìn)行或運(yùn)算后結(jié)果為00111111。29、函數(shù)rewind(fp))的作用是()。A、使fp指定的文件的位置指針重新定位到文件的開始位置B、將fp指定的文件的位置指針指向文件中所要求的特定位置C、使fp指定的文件的位置指針向文件的末尾D、使fp指定的文件的位置指針自動(dòng)移至下一個(gè)字符位置標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:位置指針重返文件頭函數(shù)rewind()的調(diào)用形式為:rewind(fp)。其中,“fp”是指向文件的文件型指針。rewind(fp)的功能是:使fp指定的文件的位置指針重新定位到文件的開始位置。二、填空題(本題共15題,每題1.0分,共15分。)30、已知“inta=2,b=2,c=3;”,則執(zhí)行完語(yǔ)句“a*=18+(b++)-(++C);”后,a的值是()。標(biāo)準(zhǔn)答案:32知識(shí)點(diǎn)解析:暫無解析31、執(zhí)行以下“for(i=1;i++<=4;i++);”語(yǔ)句后,變量i的值是()。標(biāo)準(zhǔn)答案:6知識(shí)點(diǎn)解析:暫無解析32、若從鍵盤輸入24,則以下程序輸出的結(jié)果是()。#include<stdio.h>main(){inta;scanf("%d",&A);if(a>20)printf("%d",A);if(a>10)printf("%d",A);if(a>5)printf("%d",A);}標(biāo)準(zhǔn)答案:242424知識(shí)點(diǎn)解析:暫無解析33、下面程序的功能是:計(jì)算1~20之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁帐钩绦蚬δ芡暾?include<stdio.h>main(){inta=0,b=0,c=0,i;for(i=0;i<=20;i+=2){a+=i;();c+=b;}printf("偶數(shù)之和=%d\n",A);printf("奇數(shù)之和=%d\n",c-21);}標(biāo)準(zhǔn)答案:b=i+1知識(shí)點(diǎn)解析:分析for循環(huán)條件,i=0說明循環(huán)從0開始判斷,i+=2是間隔為2的數(shù),i<=20就是控制數(shù)是20之內(nèi)的a+=i,就是所有偶數(shù)的和,如果從1開始(b=i+1)間隔為2的數(shù)(1,3,5,7,9,11,13,15,17,19)相加就是所有奇數(shù)的和。34、設(shè)有以下程序:main(){inti,sum=0;for(i=2;i<10;i++){if((i%2)==0)continue;sum+=i;}printf("%d\n",sum);}程序執(zhí)行后的輸出結(jié)果是()。標(biāo)準(zhǔn)答案:24知識(shí)點(diǎn)解析:continue語(yǔ)句功能:結(jié)束本次循環(huán)(注:不是終止整個(gè)循環(huán)),即跳過循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,開始下一次循環(huán)。35、下面程序的功能是:從輸入的正整數(shù)中選3個(gè)數(shù)進(jìn)行輸出,要求這些數(shù)都是2的倍數(shù),請(qǐng)?zhí)羁?。main(){inta,i=0;scanf("%d",&A);do{if(a>0&&a%2==0){printf("%d\n",A);i++;}if(i!=3){scanf("%d",&A);}}while(());}標(biāo)準(zhǔn)答案:i<3知識(shí)點(diǎn)解析:暫無解析36、以下程序的輸出結(jié)果是()。#include<stdio.h>fun(){inta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<=4;cc++)fun();printf("\n");}標(biāo)準(zhǔn)答案:3333知識(shí)點(diǎn)解析:本題考查for循環(huán),for(cc=1;cc<=4;cc++)表示循環(huán)4次,a+=3表示每次a的值增加3,但是子函數(shù)中沒有將變量a定義為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都不能保存,這樣在下一次調(diào)用子函數(shù)時(shí),a的初值仍是0,所以不管調(diào)用多少次,子函數(shù)輸出始終是3。37、以下程序的輸出結(jié)果是()。#inciude<stdio.h>main(){chars[]="ABCabc";s[5]=’\0’;printf("%s\n",s);}標(biāo)準(zhǔn)答案:ABCab知識(shí)點(diǎn)解析:本題中字符數(shù)組的初值是“ABCabc”,s[5]=’c’,然后通過s[5]=’\0’重新給s[5]賦值,在C語(yǔ)言中’\0’是字符串結(jié)束標(biāo)志,執(zhí)行s[5]=’\0’,其實(shí)是將s[5]的值去掉只保留前面的字符。38、下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineSlZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]=’A’+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}標(biāo)準(zhǔn)答案:abcdelkjihgf知識(shí)點(diǎn)解析:本題先給字符型數(shù)組s的12個(gè)元素賦值a到1共12個(gè)字母,函數(shù)sub(char*a,intt1,intt2)的功能是將數(shù)組a的從第t1+1個(gè)元素到t2+1個(gè)元素進(jìn)行逆置,在主函數(shù)中調(diào)用sub(s,5,SIZE-1)函數(shù),是將數(shù)組s的第6個(gè)元素到第12個(gè)元素進(jìn)行逆置,其他元素位置不變。39、已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結(jié)果是()。#include<ctype.h>#include<string.h>voidfun(chars[]){inti,j;for(i=0,j=0;s[i];i++)s[j]=’\0’;}main(){charss[80]="goodmorning";fun(ss);printf("%s",ss);}標(biāo)準(zhǔn)答案:goodmorning知識(shí)點(diǎn)解析:子函數(shù)fun(chars[])的作用是將字符數(shù)組s中除去字母以外的所有其他字符都去掉,然后將字母仍按原來的順序存在數(shù)組s中。在主函數(shù)中調(diào)用fun(ss),是將“goodmorning”中所有的非字母去掉,在這里就是去掉空格,然后輸出ss。40、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、()和處理過程。標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲(chǔ)知識(shí)點(diǎn)解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng),是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項(xiàng)有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲(chǔ),處理過程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計(jì)算機(jī)文件。41、()的目的是分析數(shù)據(jù)間內(nèi)在語(yǔ)義關(guān)聯(lián),在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型。標(biāo)準(zhǔn)答案:數(shù)據(jù)庫(kù)概念設(shè)計(jì)知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)概念設(shè)計(jì)的目的是分析數(shù)據(jù)間內(nèi)在語(yǔ)義關(guān)聯(lián),在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型。42、下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為()。標(biāo)準(zhǔn)答案:3知識(shí)點(diǎn)解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。43、在兩種基本測(cè)試方法中,()測(cè)試的原則之。一是保證所測(cè)模塊中每一個(gè)獨(dú)立路徑至少要執(zhí)行一次。標(biāo)準(zhǔn)答案:白盒知識(shí)點(diǎn)解析:白盒測(cè)試的基本原則是:保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次;保證所測(cè)模塊每一循環(huán)都在邊界條件下至少執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。44、數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于()。標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)知識(shí)點(diǎn)解析:一個(gè)數(shù)據(jù)結(jié)構(gòu)是線性結(jié)構(gòu)還是非線性結(jié)構(gòu)。判斷依據(jù)是數(shù)據(jù)結(jié)構(gòu)前后件關(guān)系的復(fù)雜程度,而與其所使用的存儲(chǔ)結(jié)構(gòu)是沒有關(guān)系的。在一個(gè)非空的隊(duì)列中,每一個(gè)元素只有一個(gè)前件和后件,因此它屬于線性結(jié)構(gòu)。國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、順序查找一個(gè)具有n個(gè)元素的線性表,二分查找一個(gè)具有n個(gè)元素的有序表,其時(shí)間復(fù)雜性為______。A、O(n)B、O(log2n)C、O(n2)D、O(nlog2n)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析2、已知—個(gè)有序表為(12,18,24,35,47,50,62,83,90,115,134),當(dāng)二分查找值為47的元素時(shí),經(jīng)過______次比較后查找成功。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析3、在軟件質(zhì)量因素中,軟件在異常情況下仍能運(yùn)行的能力稱為軟件的______。A、可用性B、可靠性C、安全性D、健壯性標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析4、軟件的可靠性主要表現(xiàn)在______。A、能夠安裝多次B、能夠在不同類型的計(jì)算機(jī)系統(tǒng)上安裝和使用C、軟件的正確性和健壯性D、前面都正確標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析5、程序的3種基本控制結(jié)構(gòu)的共同點(diǎn)是______。A、不能嵌套使用B、只能用宋寫簡(jiǎn)單的程序C、已經(jīng)用硬件實(shí)現(xiàn)D、只有一個(gè)入口和一個(gè)出口標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析6、—個(gè)數(shù)據(jù)庫(kù)系統(tǒng)一般由三級(jí)模式組成,其中的模式(也稱邏輯模式或概念模式)指的是______。A、用戶使用的數(shù)據(jù)視圖B、所有用戶的公共數(shù)據(jù)視圖C、對(duì)數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述D、一種局部的邏輯數(shù)據(jù)視圖標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析7、下列數(shù)組說明中,正確的是______。A、intarray[][4];B、intarray[][];C、intmarray[][][5];D、intarray[3][];標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析8、若x和y都是血型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));,則輸出結(jié)果是______。A、200B、100C、100200D、輸出格式符不夠,輸出不確定的值標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析9、下面結(jié)構(gòu)體的定義語(yǔ)句中,不正確的是______。A、structdate{intmonth;intday;intyear;}Structdatedatel;B、stmctdate{intmonth;intday;intyear;}datel;C、struct{intmonth;intday;intyear;}date1;D、#defineDATEstmctdateDATE{intmonth;intday;intyear;}datel;標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析10、下列敘述中,正確的一條是______。A、C語(yǔ)言的整型變量可以分為int、short、long、unsignedint、unsignedshort、unsignedlong等幾種類型,因此整型常量也可以分為這幾種類型B、C語(yǔ)言的字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值C、若對(duì)字符型變量的定義為:charc;可使用語(yǔ)句c="a",對(duì)變量c賦值D、已知x為float型,執(zhí)行語(yǔ)句(int)x后,x為int型標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、能將高級(jí)語(yǔ)言程序轉(zhuǎn)換成目標(biāo)語(yǔ)言程序的是______。A、調(diào)試程序B、解釋程序C、編譯程序D、編輯程序標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:用高級(jí)語(yǔ)言編寫的程序稱為“源程序”,而計(jì)算機(jī)只能識(shí)別和執(zhí)行由0和1組成的二進(jìn)制指令,所以高級(jí)語(yǔ)言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進(jìn)制形式的“目標(biāo)程序”。12、______是構(gòu)成C語(yǔ)言程序的基本單位。A、函數(shù)B、過程C、子程序D、子例程標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少包含一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù),因此,函數(shù)是C程序的基本單位。13、可以在C語(yǔ)言中用做用戶標(biāo)識(shí)符的是______。A、voiddefineWORDB、asb3_123IfC、for-abccasD、2cDoSIG標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。14、下面語(yǔ)句的輸出結(jié)果是______。printf("/od\n",strlen("\t\"\065\xff\n"))A、14B、8C、5D、輸出項(xiàng)不合法,無正常輸出標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在C語(yǔ)言中,以“\”開頭的字符均為轉(zhuǎn)義字符,其中“\”后可跟1~3位八進(jìn)制數(shù)或在“\”后跟字母x及1~2位十六進(jìn)制數(shù),以此來代表一個(gè)特定的字符。15、下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);A、2500B、2050C、4D、0標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這依次循環(huán),執(zhí)行下一次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。16、下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}A、0B、3C、OKD、沒有任何輸出標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:在題中,i的值為3,由于“case3:”后面沒有break語(yǔ)句,所以繼續(xù)向下執(zhí)行“case4:”后面的語(yǔ)句,由于“case4:”后面的語(yǔ)句為break強(qiáng)行退出switch語(yǔ)句,所以,本題沒有任何輸出。17、下列程序執(zhí)行后的輸出結(jié)果是______。main(){intm[][3]={1,4.7,6,5,8,3,6,9};inti,k=2for(i=0,i<3;i++){printf("%d",m[k][i];}}A、456B、258C、369D、789標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。18、已知字母A的ASCII參政值是65,字母a的ASCII碼值是97,以下程序列______。main(){chara=’A’;intb=20;printf("%d,%o",(a=a+a,a+b,b),a+’a’+’A’,b);}A、表達(dá)式非法,輸出零或不確定值B、因輸出項(xiàng)過多,無輸出或輸出不確定值C、輸出結(jié)果為20,141D、輸出結(jié)果為20,141,20標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題中首先輸出逗號(hào)表達(dá)式“a=a+a,a+b,b”的值,即20。然后以八進(jìn)制的形式輸出a+’a’-’A’的值為97對(duì)應(yīng)的八進(jìn)制數(shù)141,由于最后一個(gè)表達(dá)式b沒有對(duì)應(yīng)輸出格式的輸出項(xiàng)表列就不會(huì)輸出。19、下列程序執(zhí)行后輸出的結(jié)果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta3;fun(a);d+=a++;printf("%d\n",d);}A、8,12B、9,13C、8,4D、9,5標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題執(zhí)行過程如下:首先調(diào)用fun函敗,使得實(shí)參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對(duì)p值的改變并不能引起a的改變),故本題的輸出是8,4。20、已知下面的程序段,正確的判斷是______#defineA3#defineB(A)((A+1)*a)X=3*(A+B(7));X=3*(A+B(7);A、程序錯(cuò)誤,不允許嵌套定義B、X=93C、X=81D、程序錯(cuò)誤,宏定義不允許有參數(shù)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}A、2B、3C、5D、4標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查ifelse語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語(yǔ)句;第二個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句,c+=1,得c=5。22、在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。A、(!E==0)B、(E>0‖E<0)C、(E==0)D、(E!=0)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在while(E)中,表達(dá)式E可以是C語(yǔ)言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)B)中表達(dá)式E>0‖E<0是一個(gè)邏輯表達(dá)式。23、有下列程序:#include"stdio.h"main(){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)答案:1知識(shí)點(diǎn)解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達(dá)式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠(yuǎn)非零。當(dāng)x加到7時(shí)不滿足循環(huán)條件,結(jié)束循環(huán)。24、有下列程序:main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。A、輸出字符a的ASCII碼B、輸出字符c的ASCII碼C、輸出字符cD、程序出錯(cuò)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:因?yàn)樽址麛?shù)組s[]中的數(shù)組名s表示的是一個(gè)地址常量。所以語(yǔ)句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位.因而程序編譯時(shí)出錯(cuò)。25、下列選項(xiàng)中非法的字符常量是()。A、’\t’B、’\039’C、’,’D、’\n’標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:選項(xiàng)A)中,’\t’表示的是橫向跳若干格;選項(xiàng)B)中,’039’錯(cuò)誤,’\039’是八進(jìn)制形式表示的字符,但其中出現(xiàn)了’9’,所以錯(cuò)誤;選項(xiàng)C)中,’,’是字符逗號(hào);選項(xiàng)D)中,’\n’表示的是回車換行。26、下列敘述中正確的是()。A、break語(yǔ)句只能用于swish語(yǔ)句B、在switch語(yǔ)句中必須使用defaultC、break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用D、在switch語(yǔ)句中,不一定使用break語(yǔ)句標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:break為C語(yǔ)言關(guān)鍵字,又稱間斷語(yǔ)句。break語(yǔ)句的功能是跳出正在執(zhí)行的條件語(yǔ)句或循環(huán)語(yǔ)句。它可以出現(xiàn)在switch語(yǔ)句中,也可以出現(xiàn)在循環(huán)語(yǔ)句中。default是關(guān)鍵字,起標(biāo)號(hào)的作用,代表所有case標(biāo)號(hào)之外的那些標(biāo)號(hào)。default標(biāo)號(hào)可以出現(xiàn)在語(yǔ)句體中任何標(biāo)號(hào)位置上。在switch語(yǔ)句體中也可以沒有default標(biāo)號(hào).27、下列敘述中,錯(cuò)誤的是()。A、在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量B、在main()函數(shù)體內(nèi)定義的變量是全局變量C、形參是局部變量,函數(shù)調(diào)用完成即失去意義D、若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個(gè)C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結(jié)束.28、C語(yǔ)言規(guī)定,調(diào)用一個(gè)函數(shù)時(shí),實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞是()。A、地址傳遞B、值傳遞C、由實(shí)參傳給形參,并由形參傳回給實(shí)參D、由用戶指定傳遞方式標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),實(shí)參和其所對(duì)應(yīng)的形參分別占用不同的存儲(chǔ)單元,彼此之間只是實(shí)參將值傳遞給形參.29、設(shè)q1和q2是指向一個(gè)float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語(yǔ)句是()。A、k=*q1+*q2;B、q1=k;C、q1=q2;D、k=*q1*(*q2);標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:選項(xiàng)A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項(xiàng)B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算:選項(xiàng)C)中,是兩個(gè)指針變量之間的賦值:選項(xiàng)D)中,是兩個(gè)指針型變量所指向的兩個(gè)float型數(shù)據(jù)相乘。30、若有說明:int*p1,*p2,n=8,m;下列均是正確賦值語(yǔ)句的選項(xiàng)是()。A、p1=&n;p2=&p1;B、p1=n;C、p1=&n;*p2=p1;D、p1=&n;p2=p1;標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查指針變量的賦值。選項(xiàng)A)中,p1、p2本身都是地址變量,不能再將p1取地址賦給p2;選項(xiàng)B)中,不能將整型數(shù)據(jù)直接賦值給指針型數(shù)據(jù);選項(xiàng)C)中,*p2代表了一個(gè)整型變量,而*p2=p1這個(gè)語(yǔ)句試圖把一個(gè)地址值放入一個(gè)整型變量中是錯(cuò)誤的:選項(xiàng)D)中指針間的賦值是正確的。31、若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。main(){inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A、i=1;i<4;++iB、i=1;i<3;++iC、i=4;i>2;i--D、i=2;i<4;++i標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語(yǔ)句,使引用的數(shù)組元素累加為65-50=15即可。32、若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。A、2B、3C、4D、無確定值標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大?。孩诋?dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。33、若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。A、i*m+j-1B、i*m+jC、j*m+1D、i*m+i+1標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。34、函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。A、將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后B、將字符串str1連接到字符串str2之后再?gòu)?fù)制到字符串str3之后C、將字符串str2復(fù)制到字符串sir1中后再將字符串str3連接到字符串str1之后D、將字符串str2連接到字符串str1之后再將字符串str1復(fù)制到字符串str3中標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制給s1字符串,要保證s1能容納下連接或復(fù)制后的字符串。35、下列程序的輸出結(jié)果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}A、4B、7C、6D、5標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查靜態(tài)變量的使用方法和for循環(huán)。在函數(shù)調(diào)用時(shí),static變量在函數(shù)調(diào)用結(jié)束后所作的所有變化均不保持,所以當(dāng)i=1時(shí),第2次進(jìn)入f函數(shù)時(shí)c=5,所以最終main函數(shù)中c的值為5。36、#define能作簡(jiǎn)單的替代,用宏來替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語(yǔ)句為()。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)答案:4知識(shí)點(diǎn)解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。37、定義結(jié)構(gòu)體數(shù)組:structstu{intnum;charname[20];}x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結(jié)果為()。A、2A3N4A5UB、1I2A3H4IC、1A2N3A4UD、2H3A4H5I標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體數(shù)組的使用。x[i].num為結(jié)構(gòu)體x[i]中的num成員,x[i].name[2]是結(jié)構(gòu)體x[i]中name成員的第3個(gè)元素。程序執(zhí)行循環(huán)過程時(shí):第1次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N:第3次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。38、若有下列說明和語(yǔ)句,已知int型數(shù)據(jù)占2個(gè)字節(jié),則下列語(yǔ)句的輸出結(jié)果是()。structst{chara[15];intb;doublec;};printf("%d",sizcof(structst));A、15B、8C、25D、2標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對(duì)結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立。題中intb占2個(gè)字節(jié),chara[15]占15個(gè)字節(jié),doublec占8個(gè)字節(jié),所以共25個(gè)字節(jié)。39、設(shè)intx=7,則~x的值是()。A、-8B、-7C、-1D、1標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題主要考查按位求反運(yùn)算和C語(yǔ)言中正負(fù)數(shù)的表示,“0”代表正數(shù),“1”代表負(fù)數(shù);x=7的二進(jìn)制為00111,第一個(gè)0代表正數(shù),~x為11000,第一個(gè)1代表負(fù)數(shù),值為8。40、函數(shù)ftell(fp)的作用是()。A、得到fp所指向文件的當(dāng)前讀寫位置B、初始化流式文件的位置指針C、移動(dòng)流式文件的位置指針D、以上答案均正確標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指引。ftell函數(shù)的功能;得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯(cuò)。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)41、數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。標(biāo)準(zhǔn)答案:邏輯知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)主要是反映數(shù)據(jù)之間的邏輯關(guān)系,而存儲(chǔ)結(jié)構(gòu)是用來反映數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。循環(huán)隊(duì)列主要是強(qiáng)調(diào)數(shù)據(jù)之間的關(guān)系,因此屬于邏輯結(jié)構(gòu)。42、隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。標(biāo)準(zhǔn)答案:隊(duì)尾知識(shí)點(diǎn)解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。43、在一個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。標(biāo)準(zhǔn)答案:31知識(shí)點(diǎn)解析:設(shè)隊(duì)列容量為m,如果:rear>front,則隊(duì)列中元素個(gè)數(shù)為rear-front;如果rear<front,則隊(duì)列中元素個(gè)數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。44、一棵二叉樹第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為______個(gè)。標(biāo)準(zhǔn)答案:32知識(shí)點(diǎn)解析:二叉樹第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn)。45、度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。標(biāo)準(zhǔn)答案:45知識(shí)點(diǎn)解析:對(duì)于長(zhǎng)度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。五、填空題(本題共11題,每題1.0分,共11分。)46、以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為’e’,則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請(qǐng)?zhí)羁?。char*fun(char*str,charc){intn=0;char*p=str;if(p!=NULL)while(P[n]!=c&&p[n]!=’\0’)n++;if(p[n]==’\0’)retumNULL;return(【】);}標(biāo)準(zhǔn)答案:str+n或p+n知識(shí)點(diǎn)解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結(jié)果用str+n或p+n表示。47、以下程序的輸出結(jié)果是【】。#include<stdio.h>main()inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];pfintf("%d\n",s);標(biāo)準(zhǔn)答案:30知識(shí)點(diǎn)解析:當(dāng)i=0時(shí),s=0+a[0][0]+a[0][2]=10;i=1時(shí),s=10+a[1][1]+a[1][1]=18;i=2時(shí),s=18+a[2][2]+a[2][0]=30。48、下面程序的運(yùn)行結(jié)果是【】。#include<stdio.h>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)解析:main函數(shù)調(diào)用fun函數(shù)時(shí),將10賦給n,形參數(shù)組t與實(shí)參數(shù)組a共用一段內(nèi)存空間。執(zhí)行if-else語(yǔ)句時(shí),n=10,所以執(zhí)行else子句。由于n>=2成立,執(zhí)行m=fun(t[0],9),遞歸調(diào)用fun函數(shù),m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),當(dāng)n=1時(shí)滿足if(n=1)的條件,執(zhí)行return語(yǔ)句,返回?cái)?shù)組首地址指向的值t[0],所以答案為11。49、有兩個(gè)C程序文件T18.c和myfun.c同在VC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:#include<stdio.h>#include"myfun.c"main(){fun();prinff("\n");}myfun.c文件如下:voidfun(){chars[80],c;intn=0;while((c=getchar())!:’\n’)s[n++]=c;n--;while(n>=0)prinff("%c",s[n--]);}當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入"Thank!”,則輸出結(jié)果是【】。標(biāo)準(zhǔn)答案:!knahT知識(shí)點(diǎn)解析:程序中myfun.c被包含在T18.c中進(jìn)行編譯。fun函數(shù)中用getehar函數(shù)輸入字符并賦給數(shù)組s,每輸入一個(gè)字符,數(shù)組下標(biāo)n加1,直到遇到回車鍵時(shí)輸入結(jié)束。while(n>=0)循環(huán)反序輸出字符中。所以myfun.c文件用于實(shí)現(xiàn)字符串反序的功能。50、若變量a,b已定義為int類型并分別賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請(qǐng)寫出完整的輸出語(yǔ)句行:【】。標(biāo)準(zhǔn)答案:printf("a=%d,b=%d",a,b);知識(shí)點(diǎn)解析:根據(jù)printf函數(shù)的格式可知輸出語(yǔ)句應(yīng)該為:printf("a=%d,b=%d",a,b);51、當(dāng)運(yùn)行以下程序時(shí),輸入abcd,程序的輸出結(jié)果是【】。insert(charstr[]){inti;i=stolen(str);while(i>0){str[2*i]=str[i];str[2*i-1]=’*’;i--;}printf("%s\n",sir);}main(){charstr[40];seanf("%s",str);insert(str);}標(biāo)準(zhǔn)答案:a*b*c*d*知識(shí)點(diǎn)解析:程序中的變量i用于存放字符串str的長(zhǎng)度,執(zhí)行while語(yǔ)句,通過分析可知,字符串第2*i項(xiàng)的值可由第i項(xiàng)的值得到;第2*i-1項(xiàng)直接賦值為。號(hào),i減1,如此反復(fù)直到不滿足i>0的條件時(shí),輸出運(yùn)行后的字符串。52、以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a,b,c輸入三角形三條邊長(zhǎng)時(shí),確定a,b,c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請(qǐng)?zhí)羁铡?include<stdio.h>main(){floata,b,c;scanf("%f%f%f",&a,&b,&c);if(【】)printf("YES\n");/*a.b.c能構(gòu)成三角形*/elseprinff("NO\n");/*a.b.c不能構(gòu)成三解形*/}標(biāo)準(zhǔn)答案:(a+b>c)&&(a+c>b)&&(b+c>a)知識(shí)點(diǎn)解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應(yīng)該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價(jià)的形式。53、以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:ABCDEFCHIJKLMNO請(qǐng)?zhí)羁胀瓿稍摮绦颉?include<stdio.h>main()inti.j,n;charch=’A’;scanf("%d",&n);if(n<11)for(i=1;i<=n;i++)for(j=1;j<=n-i+1;j++){printf("%2c",ch);【】;}【】;}elseprintf("nistoolarge!\n");prinff("\n");}標(biāo)準(zhǔn)答案:ch++或ch=ch+1或++ch,printf("\n")或prinff("\015")知識(shí)點(diǎn)解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內(nèi)循環(huán)的作用是控制每行的列數(shù),在內(nèi)循環(huán)中首先輸出當(dāng)前字符(從’A’開始),[6]中應(yīng)填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€(gè)字符。每輸出一行就需換一次行,所以[7]處應(yīng)填pfintf("\n")。54、以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),如果是素?cái)?shù),函數(shù)返回1,否則返回0。intisprime(inta)inti;for(i=2;i<=a/2;i++)if(a%i==0)【】;【】;}標(biāo)準(zhǔn)答案:return0或return(0)return1或return(1)知識(shí)點(diǎn)解析:素?cái)?shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語(yǔ)句,若形參a對(duì)i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對(duì)i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。55、以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?include<stdio.h>main(){inti,jfor(i=0;【】;i++){j=i*10+6;if(【】)continue:Printf("%d”",j);}}標(biāo)準(zhǔn)答案:i<10或i<9j%3!=0或j%3知識(shí)點(diǎn)解析:程序中的j用于存放符合條件的整數(shù),j=i,10+6;求得個(gè)位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10,所以[15]處填i<10。然后通過if語(yǔ)句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以[16]處填j%3!=0。56、以下程序中函數(shù)fun()的功能是構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單向鏈表中所有結(jié)點(diǎn)中的字符串。請(qǐng)?zhí)羁胀瓿珊瘮?shù)disp。#include<atdio.h>typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/{charsub[3];structnode*next;}NodeNode~un(chars)/*建立鏈表*/{......}voiddisp(Node*h){Node*Psp=h->next;while(【】){printf("%s\n",p->suh);p=【】;}}main(){Node*hd;hd=fun();disp(hd);prinff("\n");標(biāo)準(zhǔn)答案:p!=NULL或P或p!=0或p!=’0’p->next或(*p).next知識(shí)點(diǎn)解析:程序中定義了一個(gè)結(jié)構(gòu)體類型名Node,其中定義了一個(gè)指向結(jié)點(diǎn)類型的指針next。接下來用Node定義了頭結(jié)點(diǎn)指針變量h和指向第一個(gè)結(jié)點(diǎn)的指針變量p,在滿足p未指向最后一個(gè)結(jié)點(diǎn)的空指針時(shí)(即為NULL),輸出p所指向結(jié)點(diǎn)的字符串,所以第一處應(yīng)填p!=NULL,然后將p指向下一個(gè)非空結(jié)點(diǎn),所以第二處應(yīng)填P->next或與其等效的形式,反復(fù)執(zhí)行直到所有的結(jié)點(diǎn)都輸出。國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:快速排序的基本思想是:從表中選取一個(gè)元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個(gè)子表),此元素插入到其分界線的位置處。然后分別對(duì)兩個(gè)子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。2、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析3、下列不屬于軟件工程的3個(gè)要素的是A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。4、表達(dá)式’5’-’1’的值是()。A、整數(shù)4B、字符4C、表達(dá)式不合法D、字符6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符都是變?yōu)槠鋵?duì)應(yīng)的ASCII碼值來參加算術(shù)運(yùn)算的,但字符間的相對(duì)位置關(guān)系還是不變的,字符5和字符1的ASCII碼值相差仍是4。5、下列描述中正確的是()。A、程序就是軟件B、軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制C、軟件既是邏輯實(shí)體,又是物理實(shí)體D、軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:軟件是運(yùn)行在計(jì)算機(jī)硬件之上的邏輯實(shí)體,包括程序,數(shù)據(jù)和相關(guān)的文檔。軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制。6、信息隱蔽的概念與下述______概念直接相關(guān)。A、軟件結(jié)構(gòu)定義B、模塊獨(dú)立性C、模塊類型劃分D、模擬耦合度標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來說是不能訪問的。模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。衡量軟件模塊獨(dú)立性的度量標(biāo)準(zhǔn)是耦合性和內(nèi)聚性。一個(gè)模塊的內(nèi)聚性越強(qiáng),則該模塊的模塊獨(dú)立性越強(qiáng)。而內(nèi)聚性是信息隱蔽和局部化概念的自然擴(kuò)長(zhǎng)。7、下列關(guān)于棧的敘述正確的是()。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進(jìn)先出的線性表D、棧是先進(jìn)后出的線性表標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:棧是一種特殊的線性表,其插入與刪除運(yùn)算都只在線性表的一端進(jìn)行。在這種線性表的結(jié)構(gòu)中,一端封閉,不允許插入與刪除元素:另一端開口,允許插入與刪除元素。在棧中不僅能插入數(shù)據(jù),也能刪除數(shù)據(jù),選項(xiàng)A與選項(xiàng)B都錯(cuò)。棧是后進(jìn)先出的線性表,而不是先進(jìn)先出的線性表,選項(xiàng)C的說法錯(cuò)誤,選項(xiàng)D正確。8、應(yīng)用數(shù)據(jù)庫(kù)的主要目的是為了()A、解決數(shù)據(jù)的保密問題B、解決數(shù)據(jù)的共享問題C、解決數(shù)據(jù)量大的問題D、解決數(shù)據(jù)的完整性問題標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析9、系統(tǒng)軟件中最重要的是()A、操作系統(tǒng)B、語(yǔ)言處理程序C、工具軟件D、數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析10、棧和隊(duì)列的共同點(diǎn)是()。A、都是先進(jìn)先出B、都是先進(jìn)后出C、只允許在端點(diǎn)處插入和刪除元素D、沒有共同特點(diǎn)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的—端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。二、選擇題(1分)(本題共11題,每題1.0分,共11分。)11、有下列程序:main(){intt,a=1,b=5,c=-2;while(a>b>C){t=a;a=b;b=t;c++;}printf("%d,%d,%d",a,b,c);}程序的輸出結(jié)果是()。A、1,5,0B、1,5,-2C、5,1,-1D、5,1,-2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達(dá)式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。12、判斷char型變量cl是否為小寫字母的正確表達(dá)式為()。A、‘a(chǎn)’<=cl<=‘z’B、(cl>=a)&&(cl<=z)C、(‘a(chǎn)’>=cl∣∣(‘z’<=cl)D、(cl>=‘a(chǎn)’)&&(cl<=‘z’)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,字符常量在程序中要用單引號(hào)括起來。首先判斷c1是否為小寫字母的主要條件c1>=‘a(chǎn)’和c1<=‘z’是邏輯與關(guān)系,其次選項(xiàng)A的這種形式C語(yǔ)言中沒有,所以選項(xiàng)D正確。13、設(shè)變量x和Y均已正確定義并賦值,以下if語(yǔ)句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()。A、if(x++);B、if(x>y&&y!=0);C、if(x>y)x--elsey++;D、if(y<0){;}elsex++;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)C中,if(x>y)后面的“x--”是一個(gè)表達(dá)式而不是一個(gè)語(yǔ)句,所以在編譯時(shí)會(huì)產(chǎn)生錯(cuò)誤信息。14、當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是A、(c==2)||(c==4)||(c==6)B、(c>=2&&c<=6)||(c!=3)||(c!=5)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)&&(c%2!=1)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:滿足表達(dá)13式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個(gè)為真,即不論c為何值,表達(dá)式B)都為“真”。15、下列關(guān)于線性鏈表的描述中,正確的是()。Ⅰ、只含有一個(gè)指針域來存放下一個(gè)元素地址Ⅱ、指針域中的指針用于指向該結(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn)(即前件或后件)Ⅲ、結(jié)點(diǎn)由兩部分組成:數(shù)據(jù)域和指針域。A、僅Ⅰ、ⅡB、僅Ⅰ、ⅢC、僅Ⅱ、ⅢD、全部標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在定義的鏈表中,若只含有一個(gè)指針域來存放下一個(gè)元素地址,稱這樣的鏈表為單鏈表或線性鏈表。在鏈?zhǔn)酱鎯?chǔ)方式中,要求每個(gè)結(jié)點(diǎn)由兩部分組成:一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指針,稱為指針域。其中指針用于指向該結(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn)(即前件或后件)。16、若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是()。A、x1=26.8%3;B、1+2=x2;C、x3=0x12;D、x4=1+2=3;標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:正確的賦值語(yǔ)句的左值不能為常量或表達(dá)式。選項(xiàng)A)中右值的表達(dá)式錯(cuò);選項(xiàng)B)的左值為表達(dá)式,錯(cuò)誤;選項(xiàng)D)的表達(dá)式x4=1+2=3,是先執(zhí)行賦值表達(dá)式1+2=3,這本身就是錯(cuò)誤的,1+2不是變量,不能賦值。17、以下程序的輸出結(jié)果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}A、{B、1C、2D、-12標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:賦值運(yùn)算符的結(jié)合方向是自右至左,所以表達(dá)式a+a-=a*a先運(yùn)算最右邊的a*a得9,再運(yùn)算a=a-9,即a=3-9,所以此時(shí)a的值由3變成了-6,最后運(yùn)算a=a+(-6),即a-(-6)+(-6)=-12。18、有以下程序:main(){inta=666,b=888;printf("%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A、錯(cuò)誤信息B、666C、888D、666,888標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個(gè)%d,而輸出成員列表卻有兩個(gè)成員a和b,在這里將只輸出第一個(gè)成員a值為666,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。19、設(shè)int型占2個(gè)字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。A、0~65535B、-3276~32767C、1~65536D、0~32767標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題int型占2個(gè)字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(216(上標(biāo))-1),即0~65535。20、以下不合法的字符常量是______。A、’\018’B、’\’’’C、’\\’D、’\xcc’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言的字符常量是用單引號(hào)(即撇號(hào))括起來的一個(gè)字符。如’a’,’A’,’?’,’$’等都是字符常量。注意:’a’和’A’是不同的字符常量。除了以上形式的字符常量外,C還允許用—個(gè)"\"開頭的字符序列。如’\ddd’表示1到3位八進(jìn)制數(shù)所代表的字符,而八進(jìn)制是由0到7這幾個(gè)數(shù)字組成的,所以選項(xiàng)A是不合法的字符常量。21、以下關(guān)于C語(yǔ)言的敘述中正確的是A、C語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間B、C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義C、在C語(yǔ)言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致D、C語(yǔ)言的數(shù)值常量中夾帶空格不影響常量值的正確表示標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:暫無解析三、選擇題(2分)(本題共19題,每題1.0分,共19分。)22、若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\h",i);其輸出結(jié)果是()。A、0,0B、0,1C、1,1D、程序進(jìn)入無限循環(huán)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論