![國家二級C語言機(jī)試(選擇題)模擬試卷48(共240題)_第1頁](http://file4.renrendoc.com/view8/M01/08/28/wKhkGWa9R5uABpKZAAIhH7AyAZo482.jpg)
![國家二級C語言機(jī)試(選擇題)模擬試卷48(共240題)_第2頁](http://file4.renrendoc.com/view8/M01/08/28/wKhkGWa9R5uABpKZAAIhH7AyAZo4822.jpg)
![國家二級C語言機(jī)試(選擇題)模擬試卷48(共240題)_第3頁](http://file4.renrendoc.com/view8/M01/08/28/wKhkGWa9R5uABpKZAAIhH7AyAZo4823.jpg)
![國家二級C語言機(jī)試(選擇題)模擬試卷48(共240題)_第4頁](http://file4.renrendoc.com/view8/M01/08/28/wKhkGWa9R5uABpKZAAIhH7AyAZo4824.jpg)
![國家二級C語言機(jī)試(選擇題)模擬試卷48(共240題)_第5頁](http://file4.renrendoc.com/view8/M01/08/28/wKhkGWa9R5uABpKZAAIhH7AyAZo4825.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級C語言機(jī)試(選擇題)模擬試卷48(共9套)(共240題)國家二級C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、數(shù)據(jù)庫管理系統(tǒng)是()。A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種操作系統(tǒng)標(biāo)準(zhǔn)答案:B知識點解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是一種在操作系統(tǒng)之上的系統(tǒng)軟件。2、下列敘述中正確的是A、所有數(shù)據(jù)結(jié)構(gòu)必須有根結(jié)點B、所有數(shù)據(jù)結(jié)構(gòu)必須有終端結(jié)點(即葉子結(jié)點)C、只有一個根結(jié)點,且只有一個葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D、沒有根結(jié)點或沒有葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點解析:只有一個空節(jié)點的結(jié)構(gòu)也屬數(shù)據(jù)結(jié)構(gòu),所以選項A和選項B不正確;有且只有一個根結(jié)點,每一個結(jié)點最多有一個前件,也最多有一個后件的數(shù)據(jù)結(jié)構(gòu)才屬于線性結(jié)構(gòu),其它的都屬于非線性結(jié)構(gòu),故選項C不正確,選項D正確。3、若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是A、sqrt(fabs(pow(n,x)+pow(x,e)))B、sqrt(abs(n^x+e^x))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))標(biāo)準(zhǔn)答案:C知識點解析:n和e的x冪次方,要分別調(diào)用C語言的數(shù)學(xué)庫函數(shù)doublepow(n,x)和doubleexp(x),因為這兩個函數(shù)的返回值都為double型,對其兩者的和計算絕對值,調(diào)用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對值,再調(diào)用開平方函數(shù)double.sqrt(1’’abs(pow(n,x)+exp(x))),這樣計算出的結(jié)果就是題干中算*表達(dá)式的值。4、若有定義語句:intyear=2009,*p=&year;,以下不能使變量year中的值增至2010的語句是()。A、(*p)++;B、*p++;C、++(*p);D、*p+=1;標(biāo)準(zhǔn)答案:B知識點解析:由于自加運算符++的運算級別高于間接運算*的運算級別,所以B選項的表達(dá)式*p++不能使變量year中的值增至2010,因此選擇B選項。5、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是A、編輯軟件B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、瀏覽器標(biāo)準(zhǔn)答案:B知識點解析:軟件根據(jù)應(yīng)用目標(biāo)的不同,是多種多樣的。軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開發(fā)的軟件。系統(tǒng)軟件是計算機(jī)管理自身資源,提高計算機(jī)使用效率并為計算機(jī)用戶提供各種服務(wù)的軟件。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開發(fā)軟件的工具性軟件,包括輔助和支持開發(fā)和維護(hù)應(yīng)用軟件的工具軟件,還包括輔助管理人員控制開發(fā)進(jìn)程和項目管理的工具軟件。6、下列描述中正確的是A、軟件交付使用后還需要再進(jìn)行維護(hù)B、軟件工具交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識點解析:通常將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護(hù)三個階段。已交付的軟件投入運行后,應(yīng)在運行使用中不斷地維護(hù),根據(jù)新提出的需要進(jìn)行必要而且可能的擴(kuò)充和刪改。7、在關(guān)系A(chǔ)(S,SN,D)和B(D,CN,NM)中,A的主關(guān)鍵字是S,B的主關(guān)鍵字是D,則D是A的()。A、外鍵(碼)B、候選鍵(碼)C、主鍵(碼)D、以上說法都不對標(biāo)準(zhǔn)答案:A知識點解析:如果關(guān)系A(chǔ)的某屬性集是關(guān)系B的鍵,則稱該屬性集為A的外鍵或者外碼,答案選A。8、下列選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是()。A、x%2==0B、x/2C、x%2!=0D、x%2==1標(biāo)準(zhǔn)答案:A知識點解析:算術(shù)運算符的優(yōu)先級高于關(guān)系運算符的優(yōu)先級,所以當(dāng)x為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。C選項的值為真,即1。D選項的值為真,即1。9、若有以下程序main(){inta=6,b=0,c=0;for(;a;){b+=a;a-=++c;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,14,3B、0,18,3C、0,14,3D、0,14,6標(biāo)準(zhǔn)答案:C知識點解析:循環(huán)體執(zhí)行三次,a初值6,第一次執(zhí)行循環(huán)體,b=6,a=5。繼續(xù)執(zhí)行循環(huán)體,b=11,a=3,第三次執(zhí)行循環(huán)體,b=14,a=0,循環(huán)退出。10、數(shù)據(jù)庫設(shè)計的根本目標(biāo)是要解決A、數(shù)據(jù)共享問題B、數(shù)據(jù)安全問題C、大量數(shù)據(jù)存儲問題D、簡化數(shù)據(jù)維護(hù)標(biāo)準(zhǔn)答案:A知識點解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個核心問題就是設(shè)計一個能滿足用戶要求、性能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計。數(shù)據(jù)庫設(shè)計是在一定平臺制約下,根據(jù)信息需求與處理需求設(shè)計出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫設(shè)計的根本目標(biāo)是要解決數(shù)據(jù)共享的問題。11、已定義以下函數(shù)intfun(int*P){retum*p;)fun函數(shù)返回值是A、不確定的值B、一個整數(shù)C、形參P中存放的值D、形參P的地址值標(biāo)準(zhǔn)答案:B知識點解析:由函數(shù)intfun(int=p){retum‘p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。12、以下選項中合法的標(biāo)識符是A、1-1B、1_1C、_11D、1__標(biāo)準(zhǔn)答案:C知識點解析:本題考查標(biāo)識符定義。合法標(biāo)識符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個字符必須是字母或下劃線。13、下列敘述中錯誤的是()。A、C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值B、在C程序的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限本復(fù)合語句內(nèi)C、C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù)賦一次初值D、C程序函數(shù)的形參不可以說明為static型變量標(biāo)準(zhǔn)答案:C知識點解析:A選項描述正確,自動變量未賦初值,為隨機(jī)值;B選項描述正確,變量定義除在函數(shù)開始位置外,在復(fù)合語句開始也可以;C選項描述是錯誤的,函數(shù)內(nèi)的靜態(tài)變量只在第一次調(diào)用時賦值,以后調(diào)用保留上次的值;D選項描述也正確,形參屬于局部變量,占用動態(tài)存儲區(qū),而static型變量占用靜態(tài)存儲區(qū)。14、下列結(jié)構(gòu)體的定義語句中錯誤的是()。A、stmctord{intx;inty;intz;}structorda;B、structord{intx;inty;intz;};structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;標(biāo)準(zhǔn)答案:A知識點解析:A選項錯誤,不能在定義結(jié)構(gòu)體的同時,又用結(jié)構(gòu)體類型名定義變量,應(yīng)該寫成B選項或者D選項的格式。15、以下程序的輸出結(jié)果是()。structSTR{inta,b;}data[2]={10,100,20,200};main(){structSTRp=data[1];printf(’’%d\n’’,++(p.a(chǎn)));}A、11B、20C、21D、10標(biāo)準(zhǔn)答案:C知識點解析:在題目中定義了結(jié)構(gòu)體STR類型的數(shù)組變量data,并對其賦初值。在程序中定義了指向結(jié)構(gòu)體STR類型的變量p,并把數(shù)組data的第二個元素data[1]的值賦給它,所以此時成員變量p.a(chǎn)的值等于20,在輸出時分別加1,所以輸入結(jié)果為選項C。16、以下正確的字符串常量是()。標(biāo)準(zhǔn)答案:A知識點解析:字符串常量是由兩個雙引號引起來的若干字符所構(gòu)成的字符序列,而且?\\\?不是C語言合法字符,所以"\\\"也不是合法的字符串常量,答案選A。17、C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為A、2B、3C、1D、4標(biāo)準(zhǔn)答案:C知識點解析:C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為1。18、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識點解析:關(guān)系R和關(guān)系S有公共域,關(guān)系T是通過公共域的等值進(jìn)行連接的結(jié)果,符合自然連接,選A。19、有以下程序#include<stdio.h>#include’’string.h’’typedefstruct{charname[9];charsex;floatscore[2];}STU;voidf(STUa){STUb={”Zhao’’,’m’,85.0,90.0);inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}程序的運行結(jié)果是A、Qian,m,85,90B、Zhao,m,85,90C、Zhao,f,95,92D、Qian,f,95,92標(biāo)準(zhǔn)答案:B知識點解析:本題考查在結(jié)構(gòu)體中函數(shù)的實參和形參的傳遞,調(diào)用ffc1后,實參傳向形參,進(jìn)行f()函數(shù)功能的實現(xiàn),但程序中沒有返回語句,故形參不能將值傳回實參,它們值的傳遞具有不可逆性,所與printf輸出的還是c中實參的值。20、設(shè)有定義:char*c;以下選項中能夠使c正確指向一個字符串的是A、charstr[]="string";c=str;B、scanf("%s",c);C、c=getchar();D、*c="string";標(biāo)準(zhǔn)答案:A知識點解析:在題目的題干中定義了字符指針變量c,在選項A)中,首先定義字符數(shù)組str,然后再把字符數(shù)組str的首地址賦給字符指針變量c。所以選項A)是正確的。在選項D)中,如果在定義字符指針c時,同時給c賦初值時,這樣的表達(dá)式是正確的。而本題不是在定義指針c時,同時給c賦初值。21、有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=’9’&&*s>=’0’){n=10*n+*s-0’;s++;}return(n];}main(){charsi10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};printf("%d\n",fun(s));}程序的運行結(jié)果是A、61490B、61C、9D、5標(biāo)準(zhǔn)答案:B知識點解析:在fun函數(shù)中,while循環(huán)的功能是逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個數(shù)保存到變量n中,并返回變量n的值。所以在主函數(shù)中調(diào)用fun(s)時,將把字符數(shù)組s中的數(shù)字組成一個數(shù)輸出。因為當(dāng)指針s指向數(shù)組的第3位時,即字符’*’,循環(huán)條件不成立,循環(huán)結(jié)束,返回n的值。所以輸出n的值為61。22、有以下程序#includevoidfun(int*x,ints,intn){inti;for(i=s;i>=n;i--)*(x+i+3)=*(x+i);}main(){intm[]={0,1,2,3,4,5,6,7,8,9},k;fun(m,10-4,3);for(k=0;k<10;k++)printf("%d",m[k]);}程序的運行結(jié)果是()。A、0123453456B、0123456345C、0123456666D、0123454569標(biāo)準(zhǔn)答案:A知識點解析:函數(shù)fun()的功能是將數(shù)組x下標(biāo)為n+3至s+3的元素被下標(biāo)為n到s的元素覆蓋,所以調(diào)用函數(shù)fun(m,10-4,3);結(jié)束后數(shù)組m中第7到10個元素被數(shù)組m的第4到7個元素覆蓋,數(shù)組中的元素為{0,1,2,3,4,5,3,4,5,6},答案選A。23、若有以下程序#includeint*f(int*s,int*t){int*k;if(*s<*t){k=s;s=t;t=k;}returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);}則程序的輸出結(jié)果是A、3,5,5,3,5B、3,5,3,5,5C、5,3,5,3,5D、5,3,3,5,5標(biāo)準(zhǔn)答案:B知識點解析:在主函數(shù)中分別給整型變量i、j和指針型變量p、q賦初值,并聲明指針變量r;調(diào)用f函數(shù),并將實參變量p和q的值傳遞給形參變量s和t,并且f函數(shù)是指針型函數(shù),即函數(shù)的返回值將是一個地址。在f函數(shù)中,如果條件成立,則將指針變量s和t互換,并且將指針s的地址返回主函數(shù)。最后輸出i,j,*p,*q,*r的值,即3,5,3,5,5。因此B選項正確。24、若有以下程序#includeint*f(int*s,int*t){intk;if(*s<*t){k=*s;*s=*t;*t=k;}returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);}則程序的輸出結(jié)果是A、5,3,3,5,5B、3,5,5,3,5C、3,5,3,5,5D、5,3,5,3,5標(biāo)準(zhǔn)答案:D知識點解析:在主函數(shù)中分別給整型變量i、j和指針型變量p、q賦初值,并聲明指針變量r;調(diào)用f函數(shù),并將實參變量p和q的值傳遞給形參變量s和t,并且f函數(shù)是指針型函數(shù),即函數(shù)的返回值將是一個地址。在f函數(shù)中,如果條件成立,則將指針變量s和t的值互換,并且將指針s的地址返回主函數(shù)。最后輸出i,j,*p,*q,*r的值,即5,3,5,3,5。因此D選項正確。25、有以下程序:#includeintf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運行后的輸出結(jié)果是()。A、7B、10C、8D、9標(biāo)準(zhǔn)答案:D知識點解析:調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。國家二級C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、算法的時間復(fù)雜度是指A、算法的執(zhí)行時間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的基本運算次數(shù)標(biāo)準(zhǔn)答案:D知識點解析:算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。算法的工作量可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量。2、下列敘述中正確的是A、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大B、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小C、一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識點解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,算法的工作量用算法所執(zhí)行的基本運算次數(shù)來度量,而算法所執(zhí)行的基本運算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量=f(n),其中n是問題的規(guī)模;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。根據(jù)各自的定義可知,算法的時間復(fù)雜度與空間復(fù)雜度并不相關(guān)。3、一個C程序由若干個C函數(shù)組成,各個函數(shù)在文件中的書寫位置為()。A、任意B、第一個函數(shù)必須是主函數(shù),其他函數(shù)任意C、必須完全按調(diào)用的順序排列D、其他函數(shù)必須在前,主函數(shù)必須在最后標(biāo)準(zhǔn)答案:A知識點解析:C程序在執(zhí)行時總是從main()函數(shù)開始,直到main()函數(shù)結(jié)束。其他函數(shù)只有在被maill()函數(shù)調(diào)用或嵌套調(diào)用時才被執(zhí)行。但如果調(diào)用函數(shù)出現(xiàn)在被調(diào)用函數(shù)之前,則在調(diào)用函數(shù)中必須對被調(diào)用函數(shù)進(jìn)行類型說明。4、下列關(guān)于線性鏈表的敘述中,正確的是A、各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)C、進(jìn)行插入與刪除時,不需要移動表中的元素D、以上都不正確標(biāo)準(zhǔn)答案:C知識點解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表。在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。5、有以下程序:#include<stdio.h>main(){intsum=0,x=5;do{sum+=x;}while(!——X);printf(″%d\n″,sum);}程序的運行結(jié)果是()。A、0B、5C、14D、15標(biāo)準(zhǔn)答案:B知識點解析:先執(zhí)行do中的表達(dá)式sum+=x,則sum=sum+x=0+5=5,再執(zhí)行while中的表達(dá)式,結(jié)果為0,退出循環(huán),所以運行結(jié)果是5。6、下列敘述中錯誤的是()。A、C程序可以由多個程序文件組成B、一個C語言程序只能實現(xiàn)一種算法C、C程序可以由一個或多個函數(shù)組成D、一個C函數(shù)可以單獨作為一個C程序文件存在標(biāo)準(zhǔn)答案:B知識點解析:在一個C語言程序中可以進(jìn)行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B選項錯誤。7、下列描述中正確的是A、程序就是軟件B、軟件開發(fā)不受計算機(jī)系統(tǒng)的限制C、軟件既是邏輯實體,又是物理實體D、軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合標(biāo)準(zhǔn)答案:D知識點解析:計算機(jī)軟件與硬件是計算機(jī)系統(tǒng)中相互依存的兩部分。計算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件由兩部分組成:一部分是機(jī)器可執(zhí)行的程序和數(shù)據(jù):二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運行、維護(hù)、使用等有關(guān)的文檔。軟件具有以下六個特點:①軟件是一種邏輯實體,而不是物理實體,具有抽象性。②軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程。③軟件在運行、使用期間不存在磨損、老化問題。④軟件的開發(fā)、運行對計算機(jī)系統(tǒng)具有依賴性,受計算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移值的問題。⑤軟件復(fù)雜性高,成本昂貴。⑥軟件的開發(fā)涉及諸多社會因素。8、有以下程序main(){chara,b,C,d;scanf("%c%c",&a,&b);c=getchar0;d=getchar();printf("%c%c%c%cha",a,b,c,d);}當(dāng)執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第1列開始,代表回車,注意:回車也是一個字符)1234則輸出結(jié)果是A、12B、1234C、123D、1234標(biāo)準(zhǔn)答案:C知識點解析:scanf和getchat.函數(shù)分別從鍵盤上讀入一個字符,因此輸入12宅格34,則變量a中存放的為1,b中存放2,c中存放空格,d中存放3。9、有以下程序:#includemain(){charc1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c”,&c1,&c2&c3,&c4);c5=getchar();c6=getchar();putchar(e1);putchar(c2);prinff(“%c%e\n”,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始):123<回車>45678<回車>則輸出結(jié)果是()。A、1256B、1245C、1278D、1267標(biāo)準(zhǔn)答案:B知識點解析:對于字符型數(shù)據(jù)的輸入而言,從鍵盤上輸入的字符,不管是否可以輸出,都會被讀入字符型變量中。因此,c1=1,c2=2,c3=3,c4=<回車>,c5=4,c6=5,輸出c1,c2,c5,c6的結(jié)果為1245,答案選B。10、下列描述中錯誤的是()。A、在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫D、數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持標(biāo)準(zhǔn)答案:A知識點解析:在數(shù)據(jù)庫系統(tǒng)中,物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式等)的改變。如存儲設(shè)備的更換、物理存儲的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。11、若有定義語句:char*s1=“OK”,*s2=“ok”;,以下選項中,能夠輸出“OK”的語句是()。A、if(stremp(s1,s2)!=0)puts(s2);B、if(strcmp(s1,s2)!=0)puts(s1);C、if(strcmp(s1,s2)==1)puts(s1);D、if(stremp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:B知識點解析:strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個字符串自左向右逐個字符相比(按照ASCⅡ碼值大小),以第一個不相同字符的大小作為比較結(jié)果。因為’OK’<’ok’,所以strcmp(s1,s2)為負(fù)值,只有B選項正確。12、以下程序的輸出結(jié)果是()。main(){intk=5;while(一一k)printf(’’%d’’,k一=3);printf(’’\n’’);}A、1B、0C、一1D、2標(biāo)準(zhǔn)答案:A知識點解析:本題考查while條件語句執(zhí)行過程,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出循環(huán)語句。所以程序的最后結(jié)果為1。13、下面描述不屬于軟件特點的是A、軟件是一種邏輯實體,具有抽象性B、軟件在使用中不存在磨損、老化問題C、軟件復(fù)雜性高D、軟件使用不涉及知識產(chǎn)權(quán)標(biāo)準(zhǔn)答案:D知識點解析:計算機(jī)軟件的特點:①軟件是由一個人或許多人共同完成的高強(qiáng)度智力勞動的結(jié)晶,是建立在知識、經(jīng)驗和智慧基礎(chǔ)上的具有獨創(chuàng)性的產(chǎn)物,是一種邏輯實體,具有抽象性。由于軟件具有獨創(chuàng)性(即原始性),所以軟件著作權(quán)人對軟件產(chǎn)品依法享有發(fā)表權(quán)、開發(fā)者身份權(quán)、使用權(quán)、許可權(quán)、獲得報酬權(quán)以及轉(zhuǎn)讓權(quán);②軟件產(chǎn)品是無形的,即沒有質(zhì)量,也沒有體積及其他物理性質(zhì),它只收藏在某種有形的載體中,如磁盤等介質(zhì),而且是通過該載體進(jìn)行交易;③軟件產(chǎn)品的復(fù)制(批量生產(chǎn))是極其簡單的,其復(fù)制成本同其開發(fā)成本相比較,幾乎可以忽略不計;④軟件產(chǎn)品維護(hù)同14、設(shè)有定義“char*c;”,以下選項中能夠使c正確指向一個字符串的是()。A、charstr[]="string";c=str;B、scanf("%s",c);C、c=getchar();D、*c="string";標(biāo)準(zhǔn)答案:A知識點解析:選項A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時為其分配確定的地址)。C選項錯誤,getchar()函數(shù)輸入一個字符給字符型變量,而不是字符指針。B選項和D選項有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現(xiàn)問題。因為在B選項和D選項中,字符指針沒有被賦值,是個不確定的值,指向一個不確定的內(nèi)存區(qū)域,這個區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個不確定的區(qū)域重新存放字符串,可能會發(fā)生無法預(yù)知的錯誤。15、有以下程序#includemain(){inta;a=(int)(-1.53*3);printf("%d\n",a);}程序的運行結(jié)果是()。A、-4B、-3C、-5D、結(jié)果不確定標(biāo)準(zhǔn)答案:A知識點解析:考查數(shù)據(jù)類型之間的強(qiáng)制轉(zhuǎn)換,程序中將表達(dá)式(-1.53*3)的值-4.59強(qiáng)制轉(zhuǎn)換成int型然后賦值給a,處理方法是直接將小數(shù)部分舍去,保留帶有符號的整數(shù)部分,所以答案選A。16、以下選項中關(guān)于C語言常量的敘述錯誤的是A、經(jīng)常被使用的變量可以定義成常量B、常量分為整型常量、實型常量、字符常量和字符串常量C、常量可分為數(shù)值型常量和非數(shù)值型常量D、所謂常量,是指在程序運行過程中,其值不能被改變的量標(biāo)準(zhǔn)答案:A知識點解析:C語言中,常量是指在程序運行過程中其值不能被改變的量,變量是指運行過程中其值可以改變的量,二者不能混淆,所以A選項錯誤。17、以下敘述正確的是A、C語言程序是由過程和函數(shù)組成的B、C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C、C語言函數(shù)不可以單獨編譯D、C語言中除了main函數(shù),其他函數(shù)不可作為單獨文件形式存在標(biāo)準(zhǔn)答案:B知識點解析:在C語言中,允許函數(shù)的嵌套調(diào)用,即遞歸調(diào)用。在C語言中不存在過程的概念,在C語言中函數(shù)允許單獨編譯,可以作為單獨的文件形式存在。18、有如下程序#includemain(){chara=’3’,b=’A’;inti;for(i=0;i<6;i++){if(i%3)putchar(a+i);elseputchar(b+i);}printf("\n");}程序運行后的輸出結(jié)果是()。A、A45D78B、ABC678C、34CD78D、34AB78標(biāo)準(zhǔn)答案:A知識點解析:程序的流程是:for循環(huán)i從0到5,如果a不能被3整除,也就是表達(dá)式"i%3"的值不為0,則輸出’3’+i對應(yīng)的字符;若a能被3整除,則輸出’A’+i對應(yīng)的字符,由此,答案選A。19、有以下程序main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2‖c--!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序運行后的輸出結(jié)果是A、1,3,2B、1,2,3C、1,3,3D、3,2,1標(biāo)準(zhǔn)答案:C知識點解析:a,b,c,d初始值分別為1,2,3,0。嵌套的if語句中,第一個if中,表達(dá)式a==1&&b++==2值為1,執(zhí)行嵌套的if分支,此時“b=3,b!=2”成立,由于運算符是‖,不管后面一個表達(dá)式的值是不是1,其整個表達(dá)式的值總是1,“c--!=3”表達(dá)式不執(zhí)行,最后打印出a,b,c的值是1,3,3。20、有以下程序#include<stdio-h>intfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){printf("%d\n",fun(4,2));}程序的運行結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識點解析:由程序可知函數(shù)fun(inta,intb)是一個遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)用fun(4,2)時,其執(zhí)行過程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。21、下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是A、不可以用賦值語句給字符數(shù)組名賦字符串B、可以用輸入語句把字符串整體輸入給字符數(shù)組C、字符數(shù)組中的內(nèi)容不一定是字符串D、字符數(shù)組只能存放字符串標(biāo)準(zhǔn)答案:D知識點解析:本題考查字符數(shù)組。選項A、B)和C)都是正確的,字符數(shù)組存放其他數(shù)據(jù)。22、有以下程序,程序運行后的輸出結(jié)果是#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、31.5B、7.5C、程序有錯無輸出結(jié)果D、14.0標(biāo)準(zhǔn)答案:C知識點解析:本題考查宏定義。預(yù)處理語句后面不能加分號,因此程序有錯。如果沒加分號的話S(a+b)=PT*a+b*a+b=3.5*1+2*1+2=7.5。23、有以下程序(說明:字母A的ASCII碼值是65)voidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}main(){chara[]="BYTE";fun(a);printf("\n");}程序運行后的輸出結(jié)果是A、BTB、YEC、YTD、BY標(biāo)準(zhǔn)答案:B知識點解析:程序只輸出字母ASCII值為奇數(shù)的字母,根據(jù)字母B,Y,T,E的ASCII值的奇偶性相應(yīng)輸出。24、有以下程序(strcpy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù))#include#includemain(){chara[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序運行后的輸出結(jié)果是A、a12xyzB、bc2yzC、a2yzD、12yz標(biāo)準(zhǔn)答案:C知識點解析:本題考查字符串處理函數(shù)strcpy和strcat,執(zhí)行完strcpy(a+1,b+2);后,a變?yōu)閍2,執(zhí)行完strcat(a,c+1)后,a變?yōu)閍2yz,所以答案為C選項。25、設(shè)有定義語句:char*aa[2]={"abcd","ABCD"};則以下敘述正確的是A、aa[0]存放了字符串"abcd"的首地址B、aa數(shù)組的兩個元素只能存放含有4個字符的一維數(shù)組的首地址C、aa數(shù)組的值分別是字符串"abcd"和"ABCD"D、aa是指針變量,它指向含有兩個元素的字符型數(shù)組標(biāo)準(zhǔn)答案:A知識點解析:本題中定義了一個指針數(shù)組,數(shù)組中存放的是字符指針,aa數(shù)組的兩個元素分別包含了5個字符,所以可以存放5個字符的一維數(shù)組的首地址,所以B選項錯誤。aa數(shù)組的值是指向那兩個字符串的字符指針,而不是那兩個字符串,所以C選項錯誤。aa本身是一個指向兩個字符指針的指針,所以D選項錯誤。國家二級C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、能采用順序存儲的必定是線性結(jié)構(gòu)B、所有的線性結(jié)構(gòu)都可以采用順序存儲結(jié)構(gòu)C、具有兩個以上指針的鏈表必定是非線性結(jié)構(gòu)D、循環(huán)隊列是隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點解析:所有的線性結(jié)構(gòu)都可以用數(shù)組保存,即都可以采用順序存儲結(jié)構(gòu)。而反過來不可以,完全二叉樹也能用數(shù)組保存(按層次依次存放到數(shù)據(jù)元素中),但完全二叉樹屬于非線性結(jié)構(gòu)。雙向鏈表具有兩個以上的指針,但屬于線性結(jié)構(gòu)。循環(huán)隊列是隊列的順序存儲結(jié)構(gòu)。2、以下語句定義正確的是()。A、inta[1][4]={1,2,3,4,5};B、floata[3][]={{1},{2},{3}};C、longa[2][3]={{1},{1,2},{1,2,3},{0,0}};D、doublea[][3]={0};標(biāo)準(zhǔn)答案:D知識點解析:本題考查的是如何對二維數(shù)組進(jìn)行賦值。選項A)中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B)中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達(dá)式而不可以省略第二個方括號中的常量表達(dá)式;選項C)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D)中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。3、下列敘述中正確的是A、棧是一種先進(jìn)先出的線性表B、隊列是一種后進(jìn)先出的線性表C、棧與隊列都是非線性結(jié)構(gòu)D、棧與隊列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點解析:棧是先進(jìn)后出,隊列是先進(jìn)先出。棧和隊列都是一種線性表,屬于線性結(jié)構(gòu)。4、下面描述中不屬于軟件需求分析階段任務(wù)的是()。A、撰寫軟件需求規(guī)格說明書B、軟件的總體結(jié)構(gòu)設(shè)計C、軟件的需求分析D、軟件的需求評審標(biāo)準(zhǔn)答案:B知識點解析:軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。軟件的總體結(jié)構(gòu)設(shè)計屬于軟件設(shè)計階段的任務(wù)。5、在黑盒測試方法中,設(shè)計測試用例的根據(jù)是()。A、數(shù)據(jù)結(jié)構(gòu)B、模塊間的邏輯關(guān)系C、程序調(diào)用規(guī)則D、軟件要完成的功能標(biāo)準(zhǔn)答案:D知識點解析:黑盒測試方法也稱功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn)行測試和驗證。它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只依據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能要求。6、設(shè)二叉樹的前序序列為ABDEGHCFIJ,中序序列為DBGEHACIFJ。則按層次輸出(從上到下,同一層從左到右)的序列為A、ABCDEFGHIJB、DGHEBIJFCAC、JIHGFEDCBAD、GHIJDEFBCA標(biāo)準(zhǔn)答案:A知識點解析:前序遍歷中,第一個字母是根結(jié)點,也就是A是根結(jié)點;在中序遍歷中,根結(jié)點前面的是左子樹、后面的是右子樹。前序中,B在A的后面,中序中在左子樹中,可知B為A的左結(jié)點。中序中D在B的前面,前序中在B的后面,可知D為B的左結(jié)點,GEH為B的右子樹。前序中順序為EGH,由此可知,E為B的右結(jié)點,G為E的左結(jié)點、H為E的右結(jié)點。右子樹中,前序中C在最前,因為右子樹根結(jié)點,也就是A的右結(jié)點,根據(jù)前序中的子樹FIJ和中序中的IFJ子樹可知F為C的右結(jié)點,I為F的左結(jié)點、J為F的右結(jié)點。由此可畫出這個二叉樹,然后根據(jù)二叉樹,可知按層次輸出(從上到下,同一層從左到右)的序列為:ABCDEFGHIJ。7、與數(shù)學(xué)表達(dá)式x≥y≥z對心的C語言表達(dá)式是A、(x>=y>=z)B、(x>=y)&&(y>=Z)C、(x>=y)!(y>=Z)D、(x>=y)‖(y>=x)標(biāo)準(zhǔn)答案:B知識點解析:若要表示x大于等于y,同時y大于等于z,需要用邏輯與表達(dá)式連接。8、下列敘述中錯誤的是()。A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計B、軟件設(shè)計是將軟件需求轉(zhuǎn)換為軟件表示的過程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計是軟件設(shè)計的任務(wù)之一D、PAD圖是軟件詳細(xì)設(shè)計的表示工具標(biāo)準(zhǔn)答案:A知識點解析:詳細(xì)設(shè)計的任務(wù)是為軟件結(jié)構(gòu)圖而非總體結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)、用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),因此A選項描述錯誤。9、if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于’’表達(dá)式’’值的敘述中正確的是A、必須是整數(shù)值B、必須是正數(shù)C、可以是任意合法的數(shù)值D、必須是邏輯值標(biāo)準(zhǔn)答案:C知識點解析:在if語句中,表達(dá)式可以是任意合法的數(shù)值。當(dāng)其值為非零時,執(zhí)行if語句,為0時執(zhí)行else語句。10、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識點解析:選擇是單目運算,其運算對象是一個表。該運算按給定的條件,從表中選出滿足條件的行形成一個新表作為運算結(jié)果。投影也是單目運算,該運算從表中選出指定的屬性值組成一個新表。自然連接是一種特殊的等價連接,它將表中有相同名稱的列自動進(jìn)行記錄匹配。自然連接不必指定任何同等連接條件。11、下面不屬于結(jié)構(gòu)化程序設(shè)計原則的是A、模塊化B、自頂向下C、可繼承性D、逐步求精標(biāo)準(zhǔn)答案:C知識點解析:結(jié)構(gòu)化程序設(shè)計(structuredprogranlming)是進(jìn)行以模塊功能和處理過程設(shè)計為主的詳細(xì)設(shè)計的基本原則。結(jié)構(gòu)化程序設(shè)計是過程式程序設(shè)計的一個子集,它對寫入的程序使用邏輯結(jié)構(gòu),使得理解和修改更有效更容易。結(jié)構(gòu)化程序設(shè)計原則是:自頂向下、逐步求精、模塊化和結(jié)構(gòu)化編碼。12、若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語句是()。A、switch(a+b){ease1:printf("*\n");ease2+1:printf("**\n");}B、switch((int)x);{case1:prinff("*\n");case2:printf("**\n");}C、switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}D、switch(a+b){ease1:printf("*\n");casec:prinff("**\n");}標(biāo)準(zhǔn)答案:A知識點解析:B選項中switch((int)x);語句中不應(yīng)該有最后的分號。switch(expr1)中的expr1不能用浮點類型或long類型,也不能為一個字符串,所以C選項錯誤。case后面必須為常量表達(dá)式,所以D選項錯誤。13、以下程序的輸出結(jié)果是()。#includemain(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識點解析:本題考查switch語句。因為a=8,a%4=0,所以執(zhí)行case0后面的語句,將m加1,遇到break語句跳出switch。14、有以下程序#includemain(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6平臺上編譯運行,程序運行后的輸出結(jié)果是()。A、4,8B、4,4C、2,4D、10,6標(biāo)準(zhǔn)答案:A知識點解析:考查不同類型的變量占用的字節(jié)數(shù)。VC6中,int型、long、int型以及對應(yīng)的unsigned型數(shù)據(jù)占用字節(jié)數(shù)均為4,shortint型、unsignedshortint型數(shù)據(jù)占用字節(jié)數(shù)為2,float型數(shù)據(jù)占用字節(jié)數(shù)為4,double型數(shù)據(jù)占用字節(jié)數(shù)為8。sizeof是C語言關(guān)鍵字,作用就是返回一個對象或者類型所占的內(nèi)存字節(jié)數(shù)。所以輸出結(jié)果為A)。15、在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為A、概念模式B、外模式C、內(nèi)模式D、物理模式標(biāo)準(zhǔn)答案:B知識點解析:用戶所見到的數(shù)據(jù)模式是外模式也稱用戶模式。它是用戶的數(shù)據(jù)視圖,它由概念模式導(dǎo)出。一個概念模式可以有若干個外模式,每個用戶只關(guān)心與它有關(guān)的外模式,這樣不僅可以屏蔽大量無關(guān)信息,而且有利于數(shù)據(jù)維護(hù)。16、在E—R圖中,用來表示實體聯(lián)系的圖形是A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識點解析:構(gòu)成E—R圖的基本要素是實體型、屬性和聯(lián)系,其表示方法為:實體型(Entitv)一用矩形表示;屬性(Attribute)一用橢圓形表示,聯(lián)系(Relationship)一用菱形表示,菱形枇內(nèi)寫明聯(lián)系名。17、以下選項中,能用作數(shù)據(jù)常量的是A、115LB、0118C、1.5e1.5D、o115標(biāo)準(zhǔn)答案:A知識點解析:本題考查常量定義。數(shù)據(jù)常量可有10進(jìn)制、8進(jìn)制、16進(jìn)制、指數(shù)法等,8進(jìn)制數(shù)字為0.7,第一個字符為0,而不是0。指數(shù)法表示時,指數(shù)部分須為整型,選項A)中數(shù)字后加入L是說明此變量為長整型,是正確的常量表示形式。18、有以下程序#includevoidmain(){charb,c;inti;b=’a’;c=’A’;for(i=0:i<6.i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運行后的輸出結(jié)果是A、ABCDEFB、aBcDeFC、abcdefD、AbCdEf標(biāo)準(zhǔn)答案:D知識點解析:循環(huán)變量i從0依次遞增到5,依次輸出字母A,b,C,d,E,f。19、軟件工程的三要素是A、方法、工具和過程B、建模、方法和工具C、建模、方法和過程D、定義、方法和過程標(biāo)準(zhǔn)答案:A知識點解析:軟件工程包括三個要素:方法、工具和過程。軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計、算法過程的設(shè)計、編碼、測試以及維護(hù)等。軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。目前,已經(jīng)推出了許多軟件工具,這些軟件工具集成起來,建立起稱之為計算機(jī)輔助軟件工程(CASE)的軟件開發(fā)支撐系統(tǒng)。CASE將各種軟件工具、開發(fā)機(jī)器和一個存放開發(fā)過程信息的工程數(shù)據(jù)庫組合起來形成一個軟件工程環(huán)境。軟件工程的過程則是將軟件工程20、C源程序中不能表示的數(shù)制是A、八進(jìn)制B、十進(jìn)制C、二進(jìn)制D、十六進(jìn)制標(biāo)準(zhǔn)答案:C知識點解析:在C語言的源程序中,數(shù)值可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來表示。不用二進(jìn)制來表示。21、下列敘述中錯誤的是()。A、用戶定義的函數(shù)中可以沒有return語句B、用戶定義的函數(shù)中可以有多個return語句,以便可以調(diào)用一次返回多個函數(shù)值C、用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型D、函數(shù)的return語句中可以沒有表達(dá)式標(biāo)準(zhǔn)答案:B知識點解析:本題重點考查函數(shù)返回值的相關(guān)知識。函數(shù)的值只能通過return語句返回主調(diào)函數(shù),在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。因此選擇B選項。22、設(shè)有定義doublea[10],*s=a;以下能夠代表數(shù)組元素a[3]的是A、(*s)[3]B、*(s+3)C、*s[3]D、*s+3標(biāo)準(zhǔn)答案:B知識點解析:指針的賦值首先基類型必須一致,s二維數(shù)組名,是二維數(shù)組的首地址,其基類型是一個具有10個元素的字符數(shù)組。p是一個字符指針變量,其基類型是一個字符,k是一個行指針,其基類型是具有3個元素的字符型數(shù)組。所以A、C、D中兩項的基類型不一致。而B選項,s[0]是二維數(shù)組s的第一個元素,其代表第一行元素構(gòu)成的數(shù)組的首地址,其相當(dāng)于一維數(shù)組的數(shù)組名,其基類型是一個字符類型,和p基類型一致。因此B選項正確。23、下列關(guān)系表達(dá)式中,結(jié)果為“假”的是A、(3<4)=1B、(3+4)>6C、(3!=4)>2D、3<=4標(biāo)準(zhǔn)答案:C知識點解析:關(guān)系表達(dá)式和邏輯表達(dá)式的結(jié)果為非零或者0,其中0表示假,而非零表示真,由于3!=4的結(jié)果為1,而1>2的結(jié)果為假。24、有以下程序voidfun(inta[],intn){inti,t;for(i=0;iA、876543B、321678C、1098765D、345678標(biāo)準(zhǔn)答案:B知識點解析:函數(shù)fun(inta[],intn)的功能是實現(xiàn)整型數(shù)組a[]元素的逆置操作。在主函數(shù)中當(dāng)執(zhí)行fun(k,5)時,對k[10]中的子數(shù)組k[5]={1,2,3,4,5}的首尾元素進(jìn)行逆置,此時k[10]={5,4,3,2,1,6,7,8,9,10}。所在循環(huán)語句中輸出從第2—7個數(shù)組元素時,其值分別為321678。25、下面選項中關(guān)于編譯預(yù)處理的敘述正確的是A、凡是以#號開頭的行,都被稱為編譯預(yù)處理命令行B、預(yù)處理命令行必須使用分號結(jié)尾C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:A知識點解析:在C語苦中,凡是以“#”號開頭的行,都稱為編譯預(yù)處理命令行。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開頭以“#”號開始,每行的末尾不能用“;”號結(jié)束,以區(qū)別于C語句、定義和說明語句。根據(jù)需要,命令行可以出現(xiàn)在程序的任何一行的開始部位,其作用一亢持續(xù)到源文件的末尾。26、若有定義語句:chars[10]="1234567\0\0";,則strlen(s)的值是A、7B、8C、9D、10標(biāo)準(zhǔn)答案:A知識點解析:本題考查字符串?dāng)?shù)組和字符串函數(shù)。數(shù)組s有7個數(shù)字,然后跟著結(jié)束符“\0”,因此數(shù)組s的長度為7。27、有以下程序intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);……)程序執(zhí)行后輸出結(jié)果是A、5.00B、5C、5.2lD、0.04.7函數(shù)之間的地址值的傳遞標(biāo)準(zhǔn)答案:A知識點解析:子函數(shù)funl(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回x的平方值的整數(shù)部分與y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)問的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.00。28、現(xiàn)有表示患者和醫(yī)療的關(guān)系如下:P(P#,Pn,Pg,By),其中P#為患者編號,Pn為患者姓名,Pg為性別,By為出生日期,Tr(P#,D#,Date,Rt),其中D#為醫(yī)生編號,Date為就診日期,Rt為診斷結(jié)果。檢索在1號醫(yī)生處就診的病人姓名的表達(dá)式是A、πpn(πp#(σD#=(Tr))P)B、πp#(σD#=(Tr)C、πpn(P)D、πpn(TrP)標(biāo)準(zhǔn)答案:A知識點解析:檢索在1號醫(yī)生處就診的病人姓名的表達(dá)式,首先對Tr(P#,D#,Date,Rt)關(guān)系在以就診日期D#=1為條件作選擇運算,得到在1號出診的醫(yī)生信息,然后再與患者P(P#,Pn,Pg,By)關(guān)系作自然連接運算,對運算結(jié)果在患者編號列作投影運算,再在患者姓名列作一次投影運算,得到在1號醫(yī)生處就診的病人姓名。所以選項A正確。29、以下敘述中正確的是A、關(guān)系運算符兩邊的運算對象可以是C語言中任意合法的表達(dá)式B、在C語言中,邏輯真值和假值分別對應(yīng)1和0C、對于浮點變量x和y,表達(dá)式:x==y是非法的,會出編譯錯誤D、分支結(jié)構(gòu)是根據(jù)算術(shù)表達(dá)式的結(jié)果來判斷流程走向的標(biāo)準(zhǔn)答案:A知識點解析:C語言中沒有邏輯類型,用非零表示邏輯真。0表示邏輯假,選項B錯誤,無法判斷兩個浮點變量是否相等,但是X==y不會出現(xiàn)編譯錯誤,選項C錯誤,分支結(jié)構(gòu)根據(jù)表達(dá)式的值,不一定為算術(shù)表達(dá)式,選項D錯誤。30、與數(shù)學(xué)表達(dá)式x≥y≥z對應(yīng)的C語言表達(dá)式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)‖(y>=x)標(biāo)準(zhǔn)答案:B知識點解析:若要表示x大于等于y,同時y大于等于z,需要用邏輯與表達(dá)式連接。31、有以下程序#includemain(){inta=2,b;b=a<<2;printf("%d\n",b);}A、4B、6C、8D、2標(biāo)準(zhǔn)答案:C知識點解析:表達(dá)式a<<2,把a(bǔ)向左移動2位,相當(dāng)于擴(kuò)大4倍。32、if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是A、必須是整數(shù)值B、必須是正數(shù)C、可以是任意合法的數(shù)值D、if(a>b){c=a;a=b;b=c;}標(biāo)準(zhǔn)答案:C知識點解析:在if語句中,表達(dá)式可以是任意合法的數(shù)值。當(dāng)其值為非零時,執(zhí)行if語句,為0時執(zhí)行else語句。33、若有以下程序main(){inta==2,b=0:do{++b;}while(a++);printf("%d,%d\n",a,b);}則程序的輸出結(jié)果是A、0,2B、1,2C、1,3D、2,3標(biāo)準(zhǔn)答案:C知識點解析:由于a的初始值等于-2,所以while循環(huán)語言執(zhí)行三次結(jié)束,第一次a=-2,b=1,然后判斷循環(huán)條件a++非零,執(zhí)行第二次循環(huán)體a=-1,b=2,判斷循環(huán)條件非零,執(zhí)行循環(huán)體a=0,b=3,判斷循環(huán)條件為0,此時變量a的值等于1。34、有以下程序#includeintfun(inta,intb){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z--);printf("%d\n",r);}程序運行后的輸出結(jié)果是()。A、21B、15C、20D、31標(biāo)準(zhǔn)答案:A知識點解析:考查函數(shù)的遞歸調(diào)用,函數(shù)fun()返回的是a和b之和,所以調(diào)用的次序是fun(6,7)=13,fun(13,z--),自減運算符后置是先使用該變量參與其他運算再自減,所以為fun(13,8)=21。答案選A。35、有以下程序#includeinta=2;intf(){staticintn;intm;m=n=0;n++;a++;m++;returnn+m+a;}main(){intk;for(k=0;k<3;k++)printf("%d,",f());printf("\n");}程序的運行結(jié)果是()。A、5,6,7,B、5,7,9,C、5,8,11,D、5,5,5,標(biāo)準(zhǔn)答案:A知識點解析:局變量在當(dāng)前文件內(nèi)也是一直存在的。而靜態(tài)變量定義時的初始化只運行一次,并且其值在程序運行過程中一直存在,函數(shù)f()在定義靜態(tài)變量n時并沒有對其初始化,接下來有個賦值語句"m=n=0;"所以每次執(zhí)行函數(shù)f()時,靜態(tài)變量n都會先被賦值為0再自加1,所以輸出的f(0)=1+1+3=5,n=1,m=1,a=3;f(1)=1+1+4=6,n=1,m=1,a=4;f(2)=1+1+5=7,n=1,m=1,a=5。所以答案選A。36、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。A、控制流B、事件驅(qū)動C、模塊調(diào)用D、數(shù)據(jù)流標(biāo)準(zhǔn)答案:D知識點解析:數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。37、若有以下程序段structst{intn;structst*next;};structsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];則以下選項中值為6的表達(dá)式是A、p->nB、(*p).nC、p->n++D、++(p->n)標(biāo)準(zhǔn)答案:D知識點解析:本題考查結(jié)構(gòu)體變量的引用,其中a為定義的結(jié)構(gòu)體數(shù)組,D選項中p->n為5,++(p->n)為6,所以D選項正確。38、表達(dá)式:(int)((double)9/2)-9%2的值是A、0B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點解析:先將整型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成double型,然后除以2得到的結(jié)果與double型保持一致,即為4.5,然后將4.5強(qiáng)制轉(zhuǎn)換成整型數(shù)據(jù)4,然后計算9%2的值為1,最后計算4-1的值為3,所以選擇B選項。39、下列敘述中正確的是A、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大B、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小C、一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識點解析:算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間,算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量,兩者之間并沒有直接關(guān)系,答案為D。40、若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是A、1B、0C、2D、不知道a的值,不能確定標(biāo)準(zhǔn)答案:A知識點解析:邏輯或"||"要求只要兩邊的運算對象有一個非零,結(jié)果就為真,雖然不知道a的值,但是若a為1,則左邊運算對象為1,若a的值不是1,則右邊運算對象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。國家二級C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、對長度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識點解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2??焖倥判蚍ㄒ彩且环N互換類的排序方法,但由于它比冒泡排序法的速度快,因此,稱為快速排序法。2、下面程序段的執(zhí)行結(jié)果是()。i=3;do{print"%2d",i--);}while(!i);A、3B、321C、不打印任何內(nèi)容D、陷入死循環(huán)標(biāo)準(zhǔn)答案:A知識點解析:do-while語句不管循環(huán)條件是什么都至少執(zhí)行一次,在執(zhí)行了一次打印語句后,i值變?yōu)?,!i為假(0),程序退出循環(huán)。3、在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識唯一性標(biāo)準(zhǔn)答案:A知識點解析:對象具有如下特征:標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性。4、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫系統(tǒng)階段D、三個階段相同標(biāo)準(zhǔn)答案:C知識點解析:數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。人工管理階段無共享,冗余度大;文件管理階段共享性差,冗余度大;數(shù)據(jù)庫系統(tǒng)管理階段共享性大,冗余度小。5、有以下程序段intn,t=1,s=0;scanf(“%d”,&n);do{s=s++;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是A、任意正奇數(shù)B、任意負(fù)偶數(shù)C、任意正偶數(shù)D、任意負(fù)奇數(shù)標(biāo)準(zhǔn)答案:D知識點解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過scanf給變量n賦值,在do…while循環(huán)中,s變量自增,t變量每次減2,t的初值為1,循環(huán)執(zhí)行執(zhí)行一次后t的值變成-1,然后是-3、-5…,直到t的值和n的值相同循環(huán)結(jié)束。從t的值的變化可知,t是一個變化的負(fù)奇數(shù),因此輸入的n如果是負(fù)奇數(shù),則循環(huán)能退出,否則是死循環(huán)。6、在以下給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。A、(E>0‖F(xiàn)<0)B、(E==0)C、(!E==0)D、(E!=0)標(biāo)準(zhǔn)答案:B知識點解析:while語句中條件表達(dá)式E的值不為0即為真,認(rèn)為滿足條件,所以與B選項中表達(dá)式的含義正好豐舀反,選擇B選項。7、已知字符A的ASCII碼值是65,字符變量c1的值是’A’,c2的值是’D’,則執(zhí)行語句pfintf("%d,%d",c1,c2-2);的輸出結(jié)果是()。A、65,68B、A,68C、A,BD、65,66標(biāo)準(zhǔn)答案:D知識點解析:打印時以%d整型格式打印輸出,所以字符變量c1的值打印出來就是65,從c2-2的值打印出來就是68-2,即66,所以選擇D選項。8、以下說法中正確的是()。A、C語言程序總是從第一個定義的函數(shù)開始執(zhí)行B、在C語言程序中,要調(diào)用的函數(shù)必須放在main()函數(shù)中定義C、C語言程序總是從main()函數(shù)開始執(zhí)行D、C語言程序中的main()函數(shù)必須放在程序的開始部分標(biāo)準(zhǔn)答案:C知識點解析:c程序總是從main()函數(shù)開始執(zhí)行,A選項錯誤,C選項正確;要調(diào)用的函數(shù)必須放在。main()函數(shù)中是函數(shù)嵌套,所有程序執(zhí)行是從main()函數(shù)開始的,被調(diào)用的函數(shù)在調(diào)用之前要進(jìn)行聲明,B選項錯誤;調(diào)用的函數(shù)可以放在main()函數(shù)之前,D選項錯誤。故正確答案為C。9、有以下程序:#includeintflintt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,2);printf("%d\n",s);}intf(intt[],intn){if((n>0)&&(n<5))returnt[n+1]+f(t,n一1);elsereturn0;}程序運行后的輸出結(jié)果是()。A、4B、7C、10D、6標(biāo)準(zhǔn)答案:B知識點解析:本題主要考查的是函數(shù)的遞歸調(diào)用,子函數(shù)f是一個遞歸函數(shù),所以主函數(shù)中執(zhí)行“f(a,2)”時,其執(zhí)行過程是“a[3]+f(a,1)=a[3]+a[2]+f(a,0)=7”。10、有以下程序intflintx);main(){intn=1,m;m=f(f(f(n)));printf("%d\n",m);)mtflintx){returnx*2;}程序運行后的輸出結(jié)果是A、1B、2C、4D、8標(biāo)準(zhǔn)答案:D知識點解析:程序考查了函數(shù)的調(diào)用。對于m=f(f(n)));首先計算最內(nèi)層的函數(shù)調(diào)用f(n),執(zhí)行f函數(shù),得到返回值2,然后計算f(2),得到返回值為4,最后計算f(4),得到計算結(jié)果為8。11、以下敘述中錯誤的是A、C程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中C、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D、C語言源程序經(jīng)編譯后生成后綴為.obi的目標(biāo)程序標(biāo)準(zhǔn)答案:C知識點解析:C語言中的非執(zhí)行語句例如宏定義命令,在預(yù)編譯之后替換到代碼中,該命令本身也就不存在了,不會轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。由高級語言編寫的程序稱為“源程序”,把由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”。C語言編寫的源程序就是一ASCH的形式存放在文本文件中的。C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“連接程序”(Link)的軟件,把此.obj文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。12、對于一個正常運行的C程序,以下敘述中正確的是A、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束C、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D、程序的執(zhí)行總是從main函數(shù)開始標(biāo)準(zhǔn)答案:D知識點解析:一個C語言源程序無論包括了多少函數(shù),在正常情況下總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。13、有以下程序,程序運行后的輸出結(jié)果是#include#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){printf("%d\n",NUM);}A、4B、8C、9D、6標(biāo)準(zhǔn)答案:B知識點解析:宏展開以后NUM為(2+1+1)*2+1/2,計算以后值為8。注意在進(jìn)行宏展開的時候,千萬不要試圖計算,展開以后再進(jìn)行計算。14、有如下程序#includemain(){intx=0x13;if(x=0x18)printf("T");printf("F");printf("\n");}程序運行后的輸出結(jié)果是()。A、TFB、TC、FD、TFT標(biāo)準(zhǔn)答案:A知識點解析:C語言中用非0值表示真,用0值表示假,0x18為用十六進(jìn)制表示的數(shù)值,為非0,賦值給x后x也為非0,所以if條件語句"printf("T");"能夠執(zhí)行,輸出T。之后執(zhí)行語句"printf("F");",所以輸出的結(jié)果為選項A)。15、有以下程序#includevoidmain(){charb,c;inti;b=’a’;c=’A’;for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運行后的輸出結(jié)果是A、ABCDEFB、aBeDeFC、abcdefD、AbCdEf標(biāo)準(zhǔn)答案:D知識點解析:循環(huán)變量i從0依次遞增到5,依次輸出字母.A,b,C,d,E,f。16、若有以下程序intf(inta[],intn){if(n>1){intt;t=f(a,n-1);retumt>a[n-1]?t:a[n-1];}elseretuma[0];}main(){inta[]={8,2,9,1,3,6,4,7,5};printf("%d\n",f(a,9));}則程序的輸出結(jié)果是A、9B、1C、8D、5標(biāo)準(zhǔn)答案:A知識點解析:主函數(shù)中調(diào)用f(a,9),遞歸函數(shù)的調(diào)用過程如下:f(a,9)→f(a,8)→f(a,7)→f(a,6)→f(a,5)→f(a,4)→f(a,3)→f(a,2)→f(a,1),f(a,1)得到返回值為a[0],值為8,遞歸過程開始回歸,回歸過程描述如下:8>a[1],返回8→8>a[2]不成立,返回a[2]的值為9……因此函數(shù)f的主要功能為計算數(shù)組中的最大值。主函數(shù)中輸出最大值為9。17、以下敘述中正確的是A、用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)B、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識符C、在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)D、實用的C語言源程序總是由一個或多個函數(shù)組成標(biāo)準(zhǔn)答案:D知識點解析:一個C語言源程序可以由一個或多個源文件組成,每個源文件可由一個或多個函數(shù)組成,這些函數(shù)可以是自定義函數(shù),也可以是庫函數(shù),各個函數(shù)之間沒有主從關(guān)系,不能嵌套定義函數(shù)。18、若有以下說明和語句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是A、p+1B、*(p+3)C、*(p+1)+3D、*(p[0]+2)標(biāo)準(zhǔn)答案:D知識點解析:本題考查數(shù)組和指針,在本題中c是二維數(shù)組,指針p指向二維數(shù)組c,p其實是指向c數(shù)組的第一行。因此選項A)中p+1指向c數(shù)組的第二行;選項B)中,p+3表示p指向c數(shù)組的第三行,因此*(p+3)表示取出c數(shù)組第三行首元素的地址:選項C)和選項B)類似,表示取出數(shù)組c第二行首元素地址然后加3;選項D)中p[0]+2表示數(shù)組第一行第三列元素的地址,因此*(p[0]+2)是取出該元素的值。19、在一個C源程序文件中所定義的全局變量,其作用域為A、由具體定義位置和extem說明來決定范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、所在文件的全部范圍標(biāo)準(zhǔn)答案:A知識點解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。在同一編譯單位內(nèi)用extern說明符擴(kuò)展全局變量的作用域(當(dāng)全局變量定義在后,引用它的函數(shù)在前時,應(yīng)該在引用它的函數(shù)中用extern對此全局變量進(jìn)行說明,以便通知編譯程序:該變量是一個已在外部定義了的全局變量,已經(jīng)分配了存儲單元,不需要再為它分配存儲單元。這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾)。當(dāng)一個程序由多個編譯單位構(gòu)成,并且在每個文件中均需要引用同一個全局變量,這時只在其中一個文件中定義所有的全局變量,而在其他用到這些全局變量的文件中用extern對這些變量進(jìn)行說明。20、有下列程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]==’T’)n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)果是A、1B、3C、0D、2標(biāo)準(zhǔn)答案:D知識點解析:本題在主函數(shù)中定義了一個字符二維數(shù)組str[][10],并用{“Mon”,“Tue”,“Wed”,“Thu”,“Fri”,“Sat”,“Sun”}初始化。函數(shù)fun(charp[][10])的功能是統(tǒng)計出p[][10]中p[i][0]等于字符’T’的個數(shù)。所以fun(str)的功能是統(tǒng)計一周七天中英文名稱首字母為“T”的個數(shù)。因為字符串“Tue”和“Thu”的首字符是“T”,所以n=2。21、一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDEl2345D、54321EDCBA標(biāo)準(zhǔn)答案:B知識點解析:棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇B)。22、以下敘述中正確的是()。A、在調(diào)用函數(shù)時,可以將結(jié)構(gòu)體變量作為實參傳給函數(shù)B、函數(shù)的返回值不能是結(jié)構(gòu)體類型C、函數(shù)的返回值不能是結(jié)構(gòu)體指針類型D、結(jié)構(gòu)體數(shù)組不能作為參數(shù)傳給函數(shù)標(biāo)準(zhǔn)答案:A知識點解析:結(jié)構(gòu)體類型為用戶自定義的一種類型,其使用和C語言基本數(shù)據(jù)類型的使用方法一致,所以答案選A)。23、若有以下定義和語句structst{intn;structst*next;};structsta[3]={5,&a[0],6,&a[1],7,&a[2]},*p;p=&a[0];則值為6的表達(dá)式是(提示:運算符->的優(yōu)先級高于++)()。A、(++p)->nB、p++->nC、p->n++D、(*p).n++標(biāo)準(zhǔn)答案:A知識點解析:語句"p=&a[0];"表示將指針p指向了結(jié)構(gòu)體數(shù)組a的首地址,所以(++p)->n值為6,p++->n相當(dāng)于p->n,p++,值為5,p->n++值為5,(*p).n++相當(dāng)于p->n++,值為5,答案選A。24、若fp已定義為指向某文件的指針,且沒有讀到該文件的末尾,則C語言函數(shù)feof(fp)的函數(shù)返回值是A、EOFB、非0C、-1D、0標(biāo)準(zhǔn)答案:D知識點解析:本題考查文件的定位,feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以選項D正確。25、有以下程序:#includemain(){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國特種氣體輔助設(shè)備市場前景預(yù)測及投資規(guī)劃研究報告
- 吸塵器過濾網(wǎng)行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2025年中國集尿袋行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃報告
- 2025年中國滾裝運輸行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略規(guī)劃研究報告
- 硅海綿塑料行業(yè)深度研究報告
- 煙草薄片行業(yè)市場發(fā)展現(xiàn)狀及趨勢與投資分析研究報告
- 【監(jiān)理工作報告范本】有關(guān)監(jiān)理工作報告
- 2025-2030年地毯干洗泡沫劑行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年手工蛋撻小店行業(yè)跨境出海戰(zhàn)略研究報告
- 2025-2030年商業(yè)POS機(jī)定制化行業(yè)跨境出海戰(zhàn)略研究報告
- 山東省濰坊市高職單招2023年英語自考測試卷(含答案)
- 工科高等數(shù)學(xué)(下)知到章節(jié)答案智慧樹2023年上海海洋大學(xué)
- 兒童羽毛球教程
- 通信工程安全生產(chǎn)手冊
- 流程成熟度模型(PEMM)
- 催化動力學(xué)分析法及其應(yīng)用
- 外研版英語九年級下冊詞匯表音標(biāo)打印
- 聯(lián)合國教科文組織(UNESCO):可持續(xù)發(fā)展教育-路線圖
- 延長保修服務(wù)
- 西師大版三年級數(shù)學(xué)下冊第五單元小數(shù)的初步認(rèn)識
- GB/T 9074.1-2002螺栓或螺釘和平墊圈組合件
評論
0/150
提交評論