版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)C語言機(jī)試(選擇題)模擬試卷5(共9套)(共270題)國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列描述中不屬于軟件特點(diǎn)的是()。A、軟件是一種邏輯實(shí)體,具有抽象性B、軟件在使用中不存在磨損、老化問題C、軟件復(fù)雜性高D、軟件使用不涉及知識(shí)產(chǎn)權(quán)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件不像硬件一樣具有實(shí)物的特性,而是一種邏輯實(shí)體,具有抽象性;開發(fā)復(fù)雜性高,成本昂貴;在運(yùn)行、使用期間不存在磨損、老化問題。故A、B和C選項(xiàng)正確。由于軟件是一種知識(shí)產(chǎn)品,受知識(shí)產(chǎn)權(quán)法的保護(hù),所以D選項(xiàng)不正確。2、下列敘述中正確的是A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、以上三項(xiàng)均正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。3、按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是A、隊(duì)列B、棧C、雙向鏈表D、二叉樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,也是最先被刪除的元素;棧底元素總是最先被插入的元素,也是最后才能被刪除的元素。即棧是按照“后進(jìn)先出”(LastInFirstOut,簡稱LIFO)或“先進(jìn)后出”(FirstInLastOut,簡稱FILO)的原則組織數(shù)據(jù)的。因此,棧也稱為“后進(jìn)先出表”或“先進(jìn)后出”表。4、有二又樹如下圖所示:則前序序列為()。A、ABDEGCFHB、DBGEAFHCC、DGEBHFCAD、ABCDEFGH標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:前序遍歷首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;在遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。故本題前序序列是ABDEGCFH。中序遍歷首先遍歷左子樹,然后訪問跟結(jié)點(diǎn),最后遍歷右子樹;在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問跟結(jié)點(diǎn),最后遍歷右子樹。故本題的中序序列是DBGEAFHC。后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn);在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。故本題的后序序列是DGEBHFCA。5、以下敘述中正確的是()。A、如果企圖通過一個(gè)空指針來訪問一個(gè)存儲(chǔ)單元,將會(huì)得到一個(gè)出錯(cuò)信息B、即使不進(jìn)行強(qiáng)制類型轉(zhuǎn)換,在進(jìn)行指針賦值運(yùn)算時(shí),指針變量的基類型也可以不同C、設(shè)變量p是一個(gè)指針變量,則語句p=0;是非法的,應(yīng)該使用p=NULL;D、指針變量之間不能用關(guān)系運(yùn)算符進(jìn)行比較標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:空指針意味著該指針沒有指向任何具體的變量,所以不能訪問一個(gè)存儲(chǔ)單元,選項(xiàng)A正確。指針的賦值運(yùn)算只能在同一數(shù)據(jù)類型之間進(jìn)行,故選項(xiàng)B錯(cuò)。語句p=0和p=NULL是一樣的,都是把一個(gè)空指針賦給指針變量p,故選項(xiàng)C錯(cuò)。指針之間能進(jìn)行關(guān)系運(yùn)算,比較的是地址值的大小,選項(xiàng)D錯(cuò)。答案選A。6、下列敘述中正確的是A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表,二者均為線性結(jié)構(gòu)。7、設(shè)順序表的長度為16,對(duì)該表進(jìn)行簡單插入排序。在最壞情況下需要的比較次數(shù)為()。A、120B、60C、30D、15標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:簡單插入排序在最壞情況下,即初始排序序列是逆序的情況下,比較次數(shù)為n(n-1)/2,移動(dòng)次數(shù)為n(n-1)/2。本題中n=16,16×(16-1)÷2=8÷15=120。8、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是A、順序存儲(chǔ)的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。9、下列結(jié)構(gòu)中為非線性結(jié)構(gòu)的是A、樹B、向量C、二維表D、矩陣標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性結(jié)構(gòu)是一個(gè)有序數(shù)據(jù)厄素的集合。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串。常見的非線性結(jié)構(gòu)有:二維數(shù)組,多維數(shù)組,廣義表,樹二叉樹等),圖。10、設(shè)表的長度為n。在下列結(jié)構(gòu)所對(duì)應(yīng)的算法中,最壞情況下時(shí)間復(fù)雜度最低的是A、堆排序B、有序鏈表查找C、希爾排序D、循環(huán)鏈表中尋找最大項(xiàng)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在循環(huán)鏈表中尋找最大項(xiàng)算法是,首先取出第一個(gè)數(shù)作為最大數(shù),然后和后面的所有項(xiàng)進(jìn)行比較查找。因此,比較次數(shù)為n-1。11、若有以下定義,則對(duì)數(shù)組元素的正確引用是()。inta[5],*p=a;A、*&a[5]B、(*a)+2C、*p+4D、*(a+2)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查通過指針引用數(shù)組元素。選項(xiàng)A)、C)沒有這種引用形式;選項(xiàng)B),(*a)+2與*a+2相同,表示第一個(gè)元素的值加2;選項(xiàng)D),*(a+2)引用數(shù)組的第3個(gè)元素。12、與數(shù)學(xué)表達(dá)式x≥y≥z對(duì)應(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知識(shí)點(diǎn)解析:若要表示x大于等于y.同時(shí)y大于等于z,需要用邏輯與表達(dá)式連接。13、若變量已正確定義,則語句s=32;s^=32;pfintf("%d",s);的輸出結(jié)果是()。A、-1B、0C、1D、32標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查邏輯異或運(yùn)算。異或運(yùn)算只有在兩個(gè)比較的位不同時(shí)其結(jié)果為1,否則結(jié)果為0,題目中兩個(gè)值相同,所以結(jié)果為0。14、數(shù)據(jù)庫設(shè)計(jì)過程不包括A、概念設(shè)計(jì)B、邏輯設(shè)計(jì)C、物理設(shè)計(jì)D、算法沒汁標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。15、以下敘述中錯(cuò)誤的是()。A、書寫風(fēng)格良好的程序執(zhí)行效率高B、書寫風(fēng)格良好的程序易讀性好C、C程序可以在一行上寫多條語句D、C程序允許將一條語句分寫在多行上標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序的執(zhí)行效率和程序的時(shí)間復(fù)雜度和空間復(fù)雜度有關(guān),而良好的書寫風(fēng)格僅能增加程序的可讀性,所以答案選A。16、以下選項(xiàng)中不能用作C程序合法常量的是A、’\123’B、1,234C、123D、\X7D標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)B)中的1,234在兩側(cè)加雙引號(hào)才是C程序的合法字符串常量。17、由關(guān)系R1和:R2得到關(guān)系R3的操作是A、等值連接B、并C、笛卡爾積D、交標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:等值連接是關(guān)系運(yùn)算一連接運(yùn)算的一種常用的連接方式。是條件連接(或稱θ連接)在連接運(yùn)算符為“=”號(hào)時(shí),即θ=0時(shí)的一個(gè)特例。18、有以下程序,程序運(yùn)行后的輸出結(jié)果是#includemain(){intx,y,z;x=y(tǒng)=1;z=x*,y*,*y;printf("%d,%d,%d\n",x,y,z);}A、2,3,1B、2,3,2C、2,3,3D、2,2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在程序中,整型變量x、y的初值都為1,賦值語句z=x++,y++,++y右邊的“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,所以逗號(hào)表達(dá)式的值為++y的值。執(zhí)行逗號(hào)表達(dá)式“x++,y++,++y”后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式的值,為1。19、設(shè)有定義:inta=1,b=2,c=3;以下語句中執(zhí)行效果與其它三個(gè)不同的是A、if(a>b)c=a;a=b;b=c;B、if(a>b){c=a,a=b,b=c;}C、if(a>b)c=a,a=b,b:c;D、if(a>b){c=a;a=b;b=c;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語言中,用分號(hào)表示一條語句的結(jié)柬;用f}把幾條語句放在一塊表示一個(gè)語句塊,其整體表示一個(gè)功能。因而在題目給出的四個(gè)選項(xiàng)中,選項(xiàng)B)、C)、D)表示的功能相同,而選項(xiàng)A)表示的是一條if語句,兩條賦值語句。20、以下敘述中錯(cuò)誤的是A、用戶定義的函數(shù)中可以沒有return語句B、用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型C、用戶定義的函數(shù)中可以有多個(gè)return語句,以便可以調(diào)用一次返回多個(gè)函數(shù)值D、函數(shù)的return語句中可以沒有表達(dá)式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)值通過return語句返回,return語句的形式如下:return表達(dá)式或return(表達(dá)式);當(dāng)程序執(zhí)行到return語句時(shí),程序的流程就返回到調(diào)用該函數(shù)的地方,并帶回函數(shù)值。在同一函數(shù)內(nèi),可以根據(jù)需要,在多處出現(xiàn)return語句,在函數(shù)體的不同部位退出函數(shù)。無論函數(shù)體中有多少個(gè)return語句,return語句只可能執(zhí)行一次,返回一個(gè)函數(shù)值。return語句中也可以不含有表達(dá)式,這時(shí)必須定義函數(shù)為void類型,它的作用只是使流程返回到調(diào)用函數(shù),并沒有確定的函數(shù)值。函數(shù)體內(nèi)可以沒有return語句,這時(shí)也必須定義函數(shù)為void類型,程序的流程就一直執(zhí)行到函數(shù)末尾的“}”,然后返回調(diào)用函數(shù),也沒有確定的函數(shù)值帶回。21、有以下程序#includeintfun(intn){inta;if(n==1)return1;a=n+fun(n-1);return(a);}main(){printf("%d\n",fun(5));}程序的輸出結(jié)果是A、14B、10C、15D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun為遞歸定義的函數(shù),當(dāng)調(diào)用fun(5)→5+fun(4)→5+4+fun(3)→5+4+3+fun(2)→5+4+3+2+fun(1),因此最后的結(jié)果為15。22、以下敘述中正確的是A、C語言程序總是從最前面的函數(shù)開始執(zhí)行B、C語言程序總是從main函數(shù)開始執(zhí)行C、C語言程序中main函數(shù)必須放在程序的開始位置D、C語言程序所調(diào)用的函數(shù)必須放在main函數(shù)的前面標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語言中一個(gè)源程序都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù);C語言規(guī)定必須用main作為主函數(shù)名。其后的一對(duì)圓括號(hào)中可以是空的,但不能省略。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個(gè)程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。一個(gè)C程序總是從主函數(shù)開始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個(gè)程序中的位置如何。而調(diào)用函數(shù)的定義位置和調(diào)用沒有直接關(guān)系。23、若有以下程序#includecharf(charx){returnx*x+’a’;}main(){chara,b=0;for(a=0;a<4;a+=1){b=f(A(;putchar(B);}}則程序的輸出結(jié)果是A、abcdB、ABEJC、abejD、ABCD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:該題目首先初始化變量a和b,通過for循環(huán)語句使a取值為0、1、2、3,f函數(shù)的功能是將a*a+’a’的值返回給b,即b為a、b、e、j。最后通過字符輸出函數(shù)putchar()將b輸出。因此C選項(xiàng)正確。24、有以下程序#ineludevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0),i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是A、2,1,4,3,6,5,8,7,0,9,B、0,9,8,7,6,5,4,3,2,1,C、1,2,3,4,5,6,7,8,9,0,D、0,1,2,3,4,5,6,7,8,9,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。由此可知,在本題中,函數(shù)fun(inta,intb)的功能是實(shí)現(xiàn)形參整形變量a和b值的互換。當(dāng)在主函數(shù)中調(diào)用fun(c[i],c[i+1])時(shí),把實(shí)參變量c[i]和c[i+1]的值賦給形參變量a和b,執(zhí)行完函數(shù)fun(c[i],c[i+1])時(shí),形參變量a和b的值發(fā)生了互換,實(shí)參變量c[i]和c[i+1]的值并沒有發(fā)生互換,所以輸出的值為1,2,3,4,5,6,7,8,9,0。25、關(guān)于算法,以下敘述中錯(cuò)誤的是A、某個(gè)算法可能會(huì)沒有輸入B、某個(gè)算法可能會(huì)沒有輸入C、一個(gè)算法對(duì)于某個(gè)輸入的循環(huán)次數(shù)是可以事先估計(jì)出來的D、任何算法都能轉(zhuǎn)換成計(jì)算機(jī)高級(jí)語言的程序,并在有限時(shí)間內(nèi)運(yùn)行完畢標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的特征:①有窮性:一個(gè)算法(對(duì)任何合法的輸入)在執(zhí)行有窮步后能夠結(jié)束,并且在有限的時(shí)間內(nèi)完成。②確定性:算法中的每一步都有確切的含義。③可行性:算法中的操作能夠用已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次來實(shí)現(xiàn)。④輸入:一個(gè)算法有零個(gè)或者多個(gè)輸入,零個(gè)輸入就是算法本身確定了初始條件。⑤輸出:一個(gè)算法有一個(gè)或者多個(gè)輸出,以反映出數(shù)據(jù)加工的結(jié)果。所以選擇D選項(xiàng)。26、有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}voidmain(){intx[N][N]={{1,2,3,4),{5,6,7,8),{9,10,11,12),{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n")A、-12,-3,0,0,B、-3,-1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)的功能足求出二維數(shù)組a中第i行第i個(gè)元素與第N-1-i元素的差,賦給b[i]。在主函數(shù)中,把實(shí)參二維數(shù)組x和一維數(shù)組y傳遞給形參a和b,最后輸出一維數(shù)組y中元素的值。27、有以下程序#includevoidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是A、3,5,5,3B、3,5,3,5C、5,3,3,5D、5,3,5,3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)的調(diào)用與指針。p和q分別為指向x和y的指針,函數(shù)fun()的兩個(gè)形參均為指針型,主要功能為交換兩個(gè)指針的指向,當(dāng)調(diào)用結(jié)束以后,該操作不能返回主函數(shù)。而主函數(shù)中,fun(p,q)、fun(&x,&y)的實(shí)參均為x與y的地址,因此,兩者結(jié)果相同,并且兩者指針指向的值不能變化。28、若有以下程序voidflintx)main(){intz=123456;{if(x>=10)f(z);}{printf("%d-",x%10);f(x/10);}elseprintf("%d",x);}則程序的輸出結(jié)果是A、6-5-4-3-2-1B、6-5-4-3-2-1-C、1-2-3-4-5-6D、1-2-3-4-5-6-標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)f的主要功能為逆置輸出整數(shù)x的每一位數(shù)據(jù),如果z的值為123456,逆置輸出的結(jié)果為6-5-4-3-2-1。29、下面選項(xiàng)中關(guān)于編譯預(yù)處理的敘述正確的是A、凡是以#號(hào)開頭的行,都被稱為編譯預(yù)處理命令行B、預(yù)處理命令行必須使用分號(hào)結(jié)尾C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語言中,凡是以“#”號(hào)開頭的行,都稱為編譯預(yù)處理命令行。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開頭以“#”號(hào)開始,每行的末尾不能用“;”號(hào)結(jié)束。以區(qū)別于C語句、定義和說明語句。根據(jù)需要,命令行可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾。30、以下敘述中正確的是()。A、全局變量的存儲(chǔ)類別可以是靜態(tài)類B、對(duì)于變量而言,"定義"和"說明"這兩個(gè)詞實(shí)際上是同一個(gè)意思C、在復(fù)合語句中不能定義變量D、函數(shù)的形式參數(shù)不屬于局部變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:全局變量可以用static修飾,限制該變量只能在當(dāng)前文件有效而不能被其他文件訪問,選項(xiàng)A)正確;變量的說明只是向編譯程序描述變量類型,但不為該變量分配存儲(chǔ)空間,變量的定義才為該變量分配存儲(chǔ)空間,選項(xiàng)B)錯(cuò)誤;在語句塊內(nèi)可以定義變量,定義的變量為局部變量,選項(xiàng)C)錯(cuò)誤;函數(shù)的形參相當(dāng)于在函數(shù)內(nèi)部定義的一個(gè)變量,屬于局部變量,選項(xiàng)D)錯(cuò)誤;答案選A)。31、若有定義語句:doublex,y,*px,*py;執(zhí)行px=&x;py=&y;正確的輸入語句是()。A、scanf("%lf%le",px,py);B、scanf("%f%f"&x,&y);C、scanf("%f%f",x,y);D、scanf("%lf%lf",x,y);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:scanf函數(shù)的一般形式為scanf("格式控制字符串",輸入項(xiàng)1,輸入項(xiàng)2,…),其中,輸入項(xiàng)由地址運(yùn)算符"&"后跟變量名組成,取地址運(yùn)算符"&"不可以省除非輸入項(xiàng)為一指針,本身代表一個(gè)地址。另,若要輸入雙精度浮點(diǎn)數(shù),"格式控制字符串"部分應(yīng)為為"%lf",所以答案選A。32、有以下程序#includevoidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){charb=’a’,a=’A’;fun(&b,a);printf("%c,%c\n",b,a);}程序運(yùn)行后的輸出結(jié)果是()。A、b,B,b,AB、b,B,B,AC、a,B,B,aD、a,B,a,B標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:計(jì)算字符常量時(shí)一般使用其ASCII碼進(jìn)行運(yùn)算?!痑’+1=’b’,fun()中的第一個(gè)參數(shù)為地址傳參,形參的變化會(huì)影響實(shí)參的變化,所以兩次輸出的b值都為字符’b’;第二個(gè)參數(shù)為值傳參,形參變化不會(huì)影響實(shí)參,所以在函數(shù)fun()體內(nèi)輸出字符’B’,函數(shù)fun()體外輸出結(jié)果為字符’A’,所以答案選A。33、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是A、1,2,3,A,B,CB、C,B,A,1,2,3C、C,B,A,3,2,1D、1,2,3,C,B,A標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧的修改是按后進(jìn)先出的原則進(jìn)行的,所以順序應(yīng)與入棧順序相反,故選C。34、有以下程序#includemain(){FILE*f:f=fopen("filea.txt","w");fprintf(f,"abc");fclose(f);}若文本文件filea.txt中原有內(nèi)容為:hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為A、abcloB、abcC、helloabcD、abchello標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件打開方式。格式:文件指針名=fopen(文件名,使用文件方式)需要注意的是:用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個(gè)新文件。35、有以下函數(shù)intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是A、比較兩個(gè)字符串的大小B、計(jì)算s所指字符串的長度C、計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)D、將s所指字符串復(fù)制到字符串t中標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時(shí)退出循環(huán),因而語句return(t-s);返回的就是字符串s所指字符串的長度。36、若有以下程序段charstr[4][12]={"aa","bbb","ccccc","d"},*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項(xiàng)是()。A、strpB、str[0]C、strp[3]D、*strp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針strp為一個(gè)指針數(shù)組,str為一個(gè)二維數(shù)組名。語句"strp[i]=str[i];"將str數(shù)組中第i+1個(gè)字符串的首地址賦值給strp[i],所以str[i]與strp[i]、*(strp+i)、*(str+i)等價(jià),選項(xiàng)B)、C)、D)正確,而strp為指針數(shù)組所占內(nèi)存的首地址,不能引用字符串,所以答案選A)。37、有以下程序#includemain(){charc[2][5]={"6938","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=c[i];for(i=0;i<2;i++)for(j=0;p[i][j]>0;j+=2)s=10*s+p[i][j]-’0’;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A、6385B、9824C、4528D、6938標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一個(gè)for循環(huán)將數(shù)組中每個(gè)字符串的首地址賦值給了指針數(shù)組p的元素,所以p[i][j]與c[i][j]等價(jià)。第二個(gè)嵌套for循環(huán)中外層循環(huán)i從0到1,內(nèi)層循環(huán)j為偶數(shù)且從0遞增,語句"s=10*s+p[i][j]-?0?;"用一個(gè)整數(shù)s記錄數(shù)組c中列下標(biāo)為偶數(shù)的所有數(shù)字,并按照其先后順序放置于整數(shù)s的不同位上,所以計(jì)算得到的結(jié)果為6385,答案選A。38、設(shè)有定義:intx=0,*p;緊接著的賦值語句正確的是A、*p=NULL;B、p=NULL;C、p=x;D、*p=x;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義指針變量時(shí),必須將指針變量初始化為NULL(為空),否則,如果不賦給它地址,系統(tǒng)會(huì)隨機(jī)給它分配一個(gè)地址。39、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;voidf(char*p){strcpy(p,"Qian");}main(){STUa={"Zhao",’m’,290},b;b=a;f();b.gender=’f’;b.score=350;printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Zhao,m,290B、Qian,f,350,Qian,f,350C、Zhao,m,290,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)中結(jié)構(gòu)體變量定義同時(shí)賦初值。執(zhí)行b=a;語句后,b的數(shù)據(jù)和a的數(shù)據(jù)相同,調(diào)用函數(shù)f(),形參指針p接收實(shí)參的地址,此時(shí)p和指向同一個(gè)存儲(chǔ)空間,流程轉(zhuǎn)到f執(zhí)行,p指向的存儲(chǔ)空間存放字符串"Qian",流程結(jié)束返回主函數(shù)。主函數(shù)中變量b的其他成員存放數(shù)據(jù)。因此a的數(shù)據(jù){"Zhao",’m’,290},b的數(shù)據(jù)為{"Qian",’f’,350}。注意本題結(jié)構(gòu)體STU類型變量a和b中的name成員為數(shù)組,不是指針,它具有自己的存儲(chǔ)空間。40、以下敘述中正確的是A、在scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,不會(huì)輸出到屏幕上B、在使用scanf函數(shù)輸入整數(shù)或?qū)崝?shù)時(shí),輸入數(shù)據(jù)之間只能用空格來分隔C、在printf函數(shù)中,各個(gè)輸出項(xiàng)只能是變量D、使用printf函數(shù)無法輸出百分號(hào)%標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,無論其中有什么字符,也不會(huì)輸出到屏幕上,所以A正確。scanf()的格式控制串可以使用其他非空白字符,如逗號(hào),但在輸入時(shí)必須輸入這些字符,以保證匹配就可以,所以B錯(cuò)誤。Printf函數(shù)可以輸出常量也可以輸出變量,所以C錯(cuò)誤。Prinf函數(shù)可以用"\%"來輸出百分號(hào)%,所以D錯(cuò)誤。國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、以上都不正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。2、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(注:□代表一個(gè)空格符)A、□□□1,2,3B、1,□□□2,□□□3C、1,2,3D、1□2□3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題t要考查scanf函數(shù)的輸入格式問題。scanf函數(shù)的一般形式為:scanfi(格式控制字符串,地址1。地址2,…);格式控制字符串是由雙撇號(hào)括起來的字符串,它主要由兩種類型的字符組成:①格式說明符由“%”和格式字符組成,如%c,%d,%s,%f等。其作用是將輸入的數(shù)據(jù)轉(zhuǎn)換為指定的格式,賦給scanf的二個(gè)參量(是地址1)所指定的內(nèi)存單元(可能一次使用多個(gè))中。格式說明以“%”字符為標(biāo)志。②普通字符,是需要用戶在輸入時(shí)原樣輸入的字符。在本題中格式控制字符串為“%d,%d,%d”,表示按十進(jìn)制輸入三個(gè)數(shù)據(jù)。要求在輸入數(shù)據(jù)時(shí),兩個(gè)數(shù)據(jù)間一定以一個(gè)逗號(hào)“,”作為間隔符。3、若變量已正確定義為int型,要通過語句scanf("%d,%d,%dtt,&a,&b,&c);給a賦值1、給b賦值2、給C賦值3,以下輸入形式中錯(cuò)誤的是(注:口代表一個(gè)空格符)A、□□□1,2,3B、1,□□□2,□□□3C、1,2,3D、1□2□3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查scanf函數(shù)的輸入格式問題。scanf函數(shù)的一般形式為:scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由雙撇號(hào)括起來的字符串,它主要由兩種類型的字符組成:①格式說明符由“%”和格式字符組成,如%c,%d,%s,%f等。其作用是將輸入的數(shù)據(jù)轉(zhuǎn)換為指定的格式,賦給scanf的二個(gè)參量(是地址1)所指定的內(nèi)存單元(可能一次使用多個(gè))中。格式說明以“%”字符為標(biāo)志。②普通字符,是需要用戶在輸入時(shí)原樣輸入的字符。在本題中格式控制字符串為“%d,%d,%d”,表示按十進(jìn)制輸入三個(gè)數(shù)據(jù)。要求在輸入數(shù)據(jù)時(shí),兩個(gè)數(shù)據(jù)間一定以一個(gè)逗號(hào)“,”作為間隔符。4、若以下選項(xiàng)中的變量a,b,y均已正確定義并賦值,則語法正確的switch語句是A、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;)B、switch(a+b){casel:case3.4y=a+b;break;case0:case4:y=a-b;)C、switch(a+9){casea:y=a-b;caseb:y=a+b;}D、switcha*b{case10:y=a+b;default:y=a_b;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:使用switch語句直接處理多個(gè)分支,其一般形式為:switch(表達(dá)式){case常量表達(dá)式l:語句1:break;case常量表達(dá)式2:語句2:break;case常量表達(dá)式n:語句n:break;default:語句n+1:break;}switch語句的執(zhí)行流程是:首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇break語句就退出switch語句:若圓括號(hào)中表達(dá)式的值與所有ease后面的常量表達(dá)式都不等,則執(zhí)行default后面的語句n+1,然后退出switch語句。對(duì)于選項(xiàng)B),case語句和常量之間沒有空格,而選項(xiàng)C)中的case后面為變量,選項(xiàng)D)中switch后面沒給出圓括號(hào)。5、有以下函數(shù):intfun(char*s){char*t=s:while(*t++);return(t-s);}該函數(shù)的功能是()。A、計(jì)算s所指字符串的長度B、比較兩個(gè)字符串的大小C、計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)D、將s所指字符串復(fù)制到字符串t中標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先char*s接受一個(gè)字符型數(shù)組的首地址,并將這個(gè)首地址賦給另一個(gè)字符型指針char*t,while(*t++)不斷循環(huán)直到*t為’\0’,循環(huán)結(jié)束,此時(shí)指針t指向結(jié)束標(biāo)記’\0’后,所以return(t-s)返回的是字符串s所占的字節(jié)數(shù)。6、下列各項(xiàng)中不屬于軟件設(shè)計(jì)階段任務(wù)的是()。A、制訂軟件確認(rèn)測試計(jì)劃B、數(shù)據(jù)庫設(shè)計(jì)C、軟件總體設(shè)計(jì)D、算法設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)階段的主要任務(wù)包括兩個(gè):一是進(jìn)行軟件系統(tǒng)的可行性分析,確定軟件系統(tǒng)的建設(shè)是否值得,能否建成;二是進(jìn)行軟件的系統(tǒng)分析,了解用戶的需求,定義應(yīng)用功能,詳細(xì)估算開發(fā)成本和開發(fā)周期。7、軟件生存周期中,解決軟件“做什么”的階段是A、需求分析B、軟件設(shè)計(jì)C、軟件實(shí)現(xiàn)D、可行性研究標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析8、有以下程序#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;)printf(’’%d\n’’,a[2]);}程序運(yùn)行后的輸出結(jié)果是A、20B、30C、10D、40標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)橹羔樧兞縫的初始值指向數(shù)組a,所以執(zhí)行for循環(huán)語句后,數(shù)組a中的元素的值不變。9、對(duì)軟件系統(tǒng)總體結(jié)構(gòu)圖,下面描述中錯(cuò)誤的是A、深度等于控制的層數(shù)B、扇入是一個(gè)模塊直接調(diào)用的其他模塊數(shù)C、扇出是一個(gè)模塊直接調(diào)用的其他模塊數(shù)D、V一定是結(jié)構(gòu)圖中位于葉子結(jié)點(diǎn)的模塊標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在軟件工程中,模塊的扇入是指有多少個(gè)上級(jí)模塊調(diào)用它;模塊的扇出是指該模塊直接調(diào)用的下級(jí)模塊的個(gè)數(shù)。10、以下敘述中正確的是A、下面的語句用賦初值方式來定義字符串,其中,’\0’是必須的charstrl[]={’s’,’t’,’r’,’1’,’\0’);B、有定義語句:charstr1[]=’’str1’’,數(shù)組str1將包含4個(gè)元素C、字符串常量’’str1’’的類型是:字符串?dāng)?shù)據(jù)類型D、字符數(shù)組的每個(gè)元素可存放~個(gè)字符,并且最后一個(gè)元素必須是’\0’字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)B中除了字符串中實(shí)際字符之外,還要存儲(chǔ)字符串結(jié)束標(biāo)志,應(yīng)為5個(gè)元素。在C語言中沒有字符串?dāng)?shù)據(jù)類型,因此選項(xiàng)C不正確,選項(xiàng)D字符數(shù)組不一定必須存放字符串,因此沒有規(guī)定最后一個(gè)元素為字符串結(jié)束標(biāo)志。11、表達(dá)式3.6-5/2+1.2+5%2的值是A、4.18B、3.3C、3.8D、4.3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式的計(jì)算過程為:3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8。此題要注意5/2的結(jié)果是2,而不2.5,因?yàn)槌ㄟ\(yùn)算符兩邊的數(shù)值類型均為整型,故運(yùn)算結(jié)果的數(shù)值類型也被認(rèn)定為整型。12、以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的敘述中正確的是A、只能是整數(shù)0或非0整數(shù)B、可以是結(jié)構(gòu)體類型的數(shù)據(jù)C、可以是任意合法的表達(dá)式D、只能是整數(shù)0或1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象可以是任意合法的表達(dá)式。邏輯表達(dá)式的運(yùn)算結(jié)果或者為1(“真”),或者為0(“假”)。13、若有以下程序#includemain(){inta=-2,b=0;while(a++)++b;printf("%d,%d\n",a,b);}則程序的輸出結(jié)果是()。A、1,2B、0,2C、1,3D、2,3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:自增自減運(yùn)算符后置時(shí)(a++),a是先參與運(yùn)算后再自增1。while循環(huán)結(jié)束條件是表達(dá)式"a++"為0,此時(shí)a=0,從-2到0,b一共自增了2次,所以b=2。表達(dá)式"a++"計(jì)算完畢后a=1,所以答案選A。14、有以下程序#includemain(){FILE*fp;charstr[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str);puts(str);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A、28cB、abc28C、abcD、因類型不一致而出錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在程序中首先把字符串a(chǎn)bc寫入到文件myfile.dat中,然后再把整數(shù)28追加到字符串a(chǎn)bc的后面,最后把文件myfile.dat的內(nèi)容讀入到字符串str中,并把其內(nèi)容輸出。15、流程圖是描述算法的很好的工具,一般的流程圖中由幾種基本圖形組成。其中判斷框的圖形是()。A、菱形B、長方形C、平行四邊形D、橢圓型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:繪制流程圖中,習(xí)慣用圓角矩形表示"開始"與"結(jié)束";用矩形表示行動(dòng)方案、普通工作環(huán)節(jié);用菱形表示問題判斷或判定(審核/審批/評(píng)審)環(huán)節(jié);用平行四邊形表示輸入輸出;箭頭代表工作流方向。答案選A。16、有以下程序#includemain(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的運(yùn)行結(jié)果是A、0B、1C、2D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在程序中,內(nèi)層循環(huán)判斷條件為“i<=i”,而j的初值為3,故當(dāng)外層循環(huán)變量i的值為1和2時(shí),內(nèi)層循環(huán)體都不會(huì)被執(zhí)行。只有當(dāng)i和j都等于3時(shí)循環(huán)才會(huì)執(zhí)行一次。因?yàn)閙的值為55對(duì)3求余結(jié)果為1。17、以下定義數(shù)組的語句中錯(cuò)誤的是A、intnum[][3]:{{1,2},3,4,5,6};B、intnum[]={1,2,3,4,5,6};C、intnum[][4]={1,2,3,4,5,6};D、intnum[2][4]={{1,2},{3,4},{5,6}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D)的數(shù)組定義中,賦值號(hào)左邊定義了一個(gè)2行4列的二維數(shù)組,而在右邊定義了一個(gè)3行2列的二維數(shù)組。18、若有以下程序#include<stdio.h>int*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,j9*p,*q,*r);}則程序的輸出結(jié)果是A、3,5,5,3,5B、5,3,5,3,5C、5,3,3,5,5D、3,5,3,5,5標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了返回值為指針的函數(shù),函數(shù)f的主要功能為第一個(gè)參數(shù)小于第二個(gè)參數(shù),那么交換指針的指向,這對(duì)于實(shí)參指向的數(shù)據(jù)時(shí)沒有影響的。最后返回比較大的元素的地址。主函數(shù)中p指向i,q指向j,調(diào)用r=f(p,q)。返回q的地址,因此*p=3,*q=5,*r=5。19、有以下程序,程序運(yùn)行后的輸出結(jié)果是#include#defineSUB(X,Y)(X+1)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));)A、20B、12C、16D、25標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:宏展開的結(jié)果(a+++1)*b++,后綴自加表達(dá)式參加運(yùn)算,先用a和b的初值得到表達(dá)式的值,進(jìn)行計(jì)算,然后a和b在自加。因此計(jì)算結(jié)果為16。20、有以下程序#includemain(){intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}程序運(yùn)行后的輸出結(jié)果是()。A、23B、26C、43D、46標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義二維數(shù)組的語句為"intaa[3][3]={{2},{4},{6}}"表明aa[0][0]=2,aa[1][0]=4,aa[2][0]=6,指針p指向二維數(shù)組aa的第一個(gè)元素。第一次循環(huán),i值為0,則計(jì)算aa[0][1]的值為*p+1=aa[0][0]+1=3,輸出*p的值為2;第二次循環(huán),p指針移動(dòng),指向aa[0][1],輸出結(jié)果為3。答案選A。21、若有函數(shù)聲明voidfun(floatarray[],int*ptr);以下敘述正確的是()。A、函數(shù)參數(shù)array,ptr都是指針變量B、函數(shù)參數(shù)array不是指針變量,ptr是指針變量C、調(diào)用函數(shù)時(shí),實(shí)參數(shù)組的值將一一復(fù)制給array數(shù)組D、調(diào)用函數(shù)時(shí),array是按值傳送,ptr是按地址傳送標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)組名表示該數(shù)組的首地址,是一個(gè)地址常量,作為函數(shù)參數(shù)時(shí)傳遞的是數(shù)組的首地址,屬于地址傳參,所以答案選A。22、有下列程序:#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是A、1,2,3,4,9,8,7,6,5,0,B、0,9,8,7,6,5,1,2,3,4,C、0,9,8,7,6,5,4,3,2,1,D、1,2,3,4,5,6,7,8,9,0,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fun()函數(shù)的功能是對(duì)數(shù)組a[]的元素從大到小進(jìn)行排序。所以在主函數(shù)執(zhí)行fun(c+4,6)語句時(shí),將從數(shù)組c的第5個(gè)元素開始的后6個(gè)元素進(jìn)行從大到小排序。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。23、一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是A、一對(duì)一B、一對(duì)多C、多對(duì)多D、多對(duì)一標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)橐粋€(gè)人可以操作多個(gè)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)又可以被多個(gè)人使用,所以兩個(gè)實(shí)體之間是多對(duì)多的關(guān)系。24、下面關(guān)于"EOF"的敘述,正確的是A、EOF的值等于0B、EOF是在庫函數(shù)文件中定義的符號(hào)常量C、文本文件和二進(jìn)制文件都可以用EOF作為文件結(jié)束標(biāo)志D、對(duì)于文本文件,fgetc函數(shù)讀入最后一個(gè)字符時(shí),返回值是EOF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語言中,或更精確地說成C標(biāo)準(zhǔn)函數(shù)庫中表示文件結(jié)束符(endoffile)。在while循環(huán)中以EOF作為文件結(jié)束標(biāo)志,這種以EOF作為文件結(jié)束標(biāo)志的文件,必須是文本文件。在文本文件中,數(shù)據(jù)都是以字符的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~255,不可能出現(xiàn)-1,因此可以用EOF作為文件結(jié)束標(biāo)志。25、有以下程序#includemain(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d\n",pad);}程序的輸出結(jié)果是A、5B、6C、7D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語言區(qū)分大小寫,pad與pAd是兩個(gè)不同的變量。首先將5賦值給兩個(gè)變量,由于賦值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符,所以計(jì)算pAd=++sum,此時(shí)pAd為6,sum也為6,然后計(jì)算pAd++,pAd的值變?yōu)?,++pad,pad的值變?yōu)?,所以選擇B。國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、算法的空間復(fù)雜度是指A、算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。這個(gè)內(nèi)存空間包括算法程序所占的空間,輸入的初始數(shù)據(jù)所占的仃儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間。2、有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}printf(’’%d\n’’,a);}程序的輸出結(jié)果是()。A、62B、63C、23D、36標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查while循環(huán)。當(dāng)i<20時(shí),進(jìn)入while循環(huán)體,循環(huán)體內(nèi)的for循環(huán)實(shí)現(xiàn)的功能是,當(dāng)i值是0或5的倍數(shù)時(shí),執(zhí)行“i+=13;a+-i;”這兩條語句;若i值不是5的倍數(shù)則一直執(zhí)行for循環(huán)。①當(dāng)i=0時(shí),執(zhí)行“i+=13;a+=i;i=13,a=13”;②判斷“i=13<20”,進(jìn)入while循環(huán)體,i=10時(shí),跳出for循環(huán),執(zhí)行“i+=13;a+i;i=23,a=36”;③判斷“i=23>20”,循環(huán)結(jié)束。3、下列敘述中正確的是A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查了棧、隊(duì)列、循環(huán)隊(duì)列的概念,棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),又可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。4、下列敘述中正確的是()。A、算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)B、算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量C、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān),與算法的空間復(fù)雜度沒有關(guān)系。數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)位置無關(guān),即與存儲(chǔ)結(jié)構(gòu)無關(guān),所以選擇B。5、以下選項(xiàng)中不能用作C程序合法常量的是A、’\123’B、1.234C、123D、\x7D標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)B中的1,234在兩側(cè)加雙引號(hào)才是C程序的合法字符串常量。6、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二叉鏈表作為樹的存儲(chǔ)結(jié)構(gòu)。鏈表中結(jié)點(diǎn)的兩個(gè)鏈域分別指向該結(jié)點(diǎn)的第一個(gè)孩子結(jié)點(diǎn)和下一個(gè)兄弟結(jié)點(diǎn)。7、下列敘述中正確的是A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹這類的的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。8、下面對(duì)對(duì)象概念描述正確的是()。A、對(duì)象間的通信靠消息傳遞B、對(duì)象是名字和方法的封裝體C、任何對(duì)象必須有繼承性D、對(duì)象的多態(tài)性是指一個(gè)對(duì)象有多個(gè)操作標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?。操作描述了?duì)象執(zhí)行的功能,通過消息傳遞,還可以為其他對(duì)象使用。操作過程是被封裝在對(duì)象中,用戶看不到,稱之為對(duì)象的封裝性。對(duì)象的多態(tài)性是指同一個(gè)操作可以是不同對(duì)象的行為。不是所有的對(duì)象都必須有繼承性。9、下面不屬于軟件測試實(shí)施步驟的是()。A、集成測試B、回歸測試C、確認(rèn)測試D、單元測試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測試實(shí)施的步驟有單元測試、集成測試和確認(rèn)測試。10、兩個(gè)或兩個(gè)以上的模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、連接度標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:耦合度是模塊間互相連接的緊密程度的度量;內(nèi)聚度是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。11、有以下程序#includevoidmain(){intn=2,k=-1;while(!(k>0‖n++));printf("%d%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是()。A、02B、13C、57D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中整型變量n的初始值等于2,整型變量k的初始值等于1,在執(zhí)行while語句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷“n++”是否為真,“(k>0∥n++)”表達(dá)式的值為真?!?(k>0∥n++)”表達(dá)式的值為假,所以while語句中的條件不滿足,循環(huán)語句不會(huì)執(zhí)行,變量n的值也不會(huì)加1,所在輸出變量k和n的值是1和2。12、有以下程序#includemain(){intx;scanf("%d",&x);if(x<=3);elseif(x!=10)printf("%dkn"x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果A、不等于10的整數(shù)B、大于3或等于10的整數(shù)C、小于3的整數(shù)D、大于3且不等10的整數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于3且不等于10時(shí)打印出來。13、若有定義語句:doublex,y,*px,*PY;執(zhí)行px=&x;py=&y;正確的輸入語句是A、scanf(’’%f%f’&x,&y);B、scanf(’’%f%f’,x,y);C、scanf(’’%1f%1e’’,px,py);D、scanf(’’%1f%1f’’,x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查scanf語句。scanf()函數(shù)的一般格式為:scanf(“格式字符串”,輸入項(xiàng)首地址表),對(duì)于double類型數(shù)據(jù),輸入時(shí)候要加上l修飾,否則會(huì)產(chǎn)生錯(cuò)誤的輸入信息,同時(shí)輸入項(xiàng)必須是地址,可以使保存變量地址的指針變量。14、設(shè)文件指針fp已定義,執(zhí)行語句fp=fopen(″file″,″w″);后,以下針對(duì)文本文件file操作敘述的選項(xiàng)中正確的是()。A、只能寫不能讀B、寫操作結(jié)束后可以從頭開始讀C、可以在原有內(nèi)容后追加寫D、可以隨意讀和寫標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:文件打開方式為“w”表示只寫不讀,選項(xiàng)A正確。15、數(shù)據(jù)字典(DD)所定義的對(duì)象都包含于()。A、軟件結(jié)構(gòu)圖B、方框圖C、數(shù)據(jù)流圖(DFD圖)D、程序流程圖標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)字典(DD)是指對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各元素做出詳細(xì)的說明。16、以下敘述中正確的是A、continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)B、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)C、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同D、break語句只能用于switch語句體中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。而break語句可以使程序流程跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體。17、設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是()。A、charstr[]="string";c=str;B、scanf("%s",c);C、c=getchar();D、*c="string";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定的地址)。C選項(xiàng)錯(cuò)誤,getchar()函數(shù)輸入一個(gè)字符給字符型變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無語法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問題。因?yàn)樵贐選項(xiàng)和D選項(xiàng)中,字符指針沒有被賦值,是個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存區(qū)域,這個(gè)區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個(gè)不確定的區(qū)域重新存放字符串,可能會(huì)發(fā)生無法預(yù)知的錯(cuò)誤。18、有以下程序:#include<stdio.h>struetS{intn;inta[20];};voidf(streetS*p){inti,j,t;for(i=0;i<p->n-1;i++)for(j=i+1;j<p->n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti:structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);flor(i=0;i<s.n;i++)printf("%d,",s.a(chǎn)[i]);}程序的運(yùn)行結(jié)果是()。A、2,3,1,6,8,7,5,4,lO,9,B、10,9,8,7,6,5,4,3,2,1,C、1,2,3,4,5,6,7,8,9,10,D、10,9,8,7,6,1,2,3,4,5,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題中子函數(shù)f的功能是對(duì)結(jié)構(gòu)體變量s中第二個(gè)成員數(shù)組中的所有數(shù)據(jù)進(jìn)行從小到大的冒泡排序,所以結(jié)果是C選項(xiàng)。19、當(dāng)變量c的值不為2、4、6時(shí),值為"真"的表達(dá)式是()。A、(c>=2&&c<=6)||(c!=3)||(c!=5)B、(c==2)||(c==4)||(c==6)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)&&(c%2!=1)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:邏輯或運(yùn)算符的兩個(gè)運(yùn)算對(duì)象中,只要有一個(gè)值為真,整個(gè)邏輯表達(dá)式的值就為真;邏輯與運(yùn)算符的兩個(gè)運(yùn)算對(duì)象的值均為真,整個(gè)邏輯表達(dá)式的值才為真。選項(xiàng)A)中,只要c的值不為3或者不為5或者在2和6之間,這個(gè)表達(dá)式就為真,所以答案選A)。20、有以下程序main(){chara[5][10]={"one","two","three","four","five");inti,j;Chart;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]){t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;)puts(a[1]);}程序運(yùn)行后的輸出結(jié)果是A、fwoB、owoC、twoD、fix標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這個(gè)程序的執(zhí)行過程是當(dāng)i=0時(shí),j=1,a[0][0]=0a[3][0]=f;置換a[2][0]=f,a[3][0]=t;此時(shí),a[2][0]=Ca[1][0]=t,再置換a[2][0]=t,a[1][0]=f,;當(dāng)i=3時(shí),j=4,a[3][0]=f=a43][0]=f;不置換;所以a[1]的結(jié)果為fwo。21、若有定義語句:doublex,y,*px,*py;執(zhí)行px=&x;py=&y;正確的輸入語句是A、scanf("%f%f"&x,&y);B、scanf("%f%f",x,y);C、scanf("%1f%1e",px,py);D、scanf("%1f%1f",x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查scanf語句。scalaf()函數(shù)的一般格式為:scanf("格式字符串",輸入項(xiàng)首地址表),對(duì)于double類型數(shù)據(jù),輸入時(shí)候要加上1修飾,否則會(huì)產(chǎn)生錯(cuò)誤的輸入信息,同時(shí)輸入項(xiàng)必須是地址,可以使保存變量地址的指針變量。22、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%2!=0C、x%2=0D、x%2==1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于x為大于1的奇數(shù),因此x%2取余的值為1,和0不相等。23、以下選項(xiàng)中合法的標(biāo)識(shí)符是A、1-1B、1_1C、_11D、1__標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查標(biāo)識(shí)符定義。合法標(biāo)識(shí)符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個(gè)字符必須是字母或下劃線。24、有以下程序#includemain(){intk,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A、10B、6C、24D、40標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:嵌套循環(huán),外層循環(huán)k從2循環(huán)到5,每次自增2,。內(nèi)層循環(huán)j從k到5,每次自增1,s為在s的基礎(chǔ)上累加當(dāng)前內(nèi)層循環(huán)所有的j值。程序輸出的是最后一次外層循環(huán)時(shí)s的統(tǒng)計(jì)值,即k=4時(shí),j的取值為4、5,所以s=10,答案選A。25、若有以下程序#include<stdio.h>main(){inta=-11,b=10;a/=b/=-4;printf("%d%d\n",a,b);}則輸出結(jié)果是A、-1-2B、5-2C、4-3D、5-3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于語句“a/=b/=-4;”相當(dāng)于“a=a/Co=b/-4.);”a初值為-11,b的初值為10,則運(yùn)算以后10/-4值為-2,-11/-2值為5。26、有以下程序structs{intn;inta[20];};voidf(structs*p){inti,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;iA、10,9,8,7,6,5,4,3,2,1,B、2,3,1,6,8,7,5,4,10,9,C、10,9,8,7,6,1,2,3,4,5,D、1,2,3,4,5,6,7,8,9,10,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:voidf(structS*p)函數(shù)的功能使用了結(jié)構(gòu)體指針變量實(shí)現(xiàn)對(duì)一維數(shù)組的元素從小到人排序。用關(guān)系表達(dá)式p->a[i]>p->a[j]實(shí)現(xiàn)一維數(shù)組中相鄰元素兩兩比較,大的元素向后移,小的元素向前移。在主函數(shù)中語句f(&s);的功能實(shí)現(xiàn)對(duì)結(jié)構(gòu)體變量s中一維數(shù)組的元素從小到大的排序,所以循環(huán)語句的輸出結(jié)果為1,2,3,4,5,6,7,8,9,10。27、有以下程序#includevoidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是A、3,5,3,5B、3,5,5,3C、5,3,3,5D、5,3,5,3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fun函數(shù)的功能是交換形式參數(shù)的值,即交換指針變量a和b的值,但是fun函數(shù)并不能夠交換實(shí)參的值,因此fun(p,q)不能交換p和q的值,所以第一個(gè)printf語句的輸出為3,5。第二個(gè)fun函數(shù)對(duì)x和y的地址進(jìn)行了操作,同樣不能交換x和y的值,并不能影響p和q指針指向的數(shù)據(jù),因此第二個(gè)printf語句的輸出也是3,5。因此A選項(xiàng)正確。28、在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是A、(E>0‖E<0)B、(!E==0)C、(E!=0)D、(E==0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)A)中表達(dá)式E>0‖E<0是一個(gè)邏輯表達(dá)式。29、有以下程序#include#defineN3voidfun(inta[][N],intb[]){inti,j;for(i=0;iA、3,6,9,B、1,3,5,C、2,4,8,D、3,5,7標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查數(shù)組名作為函數(shù)參數(shù)。數(shù)組名作為函數(shù)參數(shù)屬于地址傳參,形參和實(shí)參為同一數(shù)組,變化同步。函數(shù)fun()中,用兩層循環(huán)尋找a中每一行數(shù)據(jù)的最大值,并將其賦值給b,函數(shù)調(diào)用結(jié)束后,數(shù)組y[N]中存儲(chǔ)的就是x[N]中每一行的最大值,分別是:3、6、9,答案選A。30、以下選項(xiàng)中不屬于C語言程序運(yùn)算符的是A、sizeofB、<>C、()D、&&標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語言中的不等于符號(hào)用"!="表示,沒有符號(hào)"<>",所以選擇B。31、有以下程序fun(intx)main(){intp;{if(x==0‖x==1)return(3);printf("%d\n",fun(7));p=x-fun(x-2);}returnp;}執(zhí)行后的輸出結(jié)果是A、3B、7C、0D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或等于1時(shí),返回值為“3”。否則“p=x-fun(x-2)”這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)的時(shí)候,其過程為:“fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3.3))=7.5=2”,所以最后的輸出結(jié)果為2。32、有以下程序段int*p;p=_______malloc(sizeof(int));若要求使P指向一個(gè)int型的動(dòng)態(tài)存儲(chǔ)單元,在橫線處應(yīng)填入的是A、(int*)B、intC、int*D、(*int)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ANSIC標(biāo)準(zhǔn)規(guī)定malloc函數(shù)返回值的類型為void*。使用形式為:malloc(size),其中size的類型為unsignedint。malloc函數(shù)用來分配size個(gè)字節(jié)的存儲(chǔ)區(qū),返回一個(gè)指向存儲(chǔ)區(qū)首地址的基類型為void的地址。若沒有足夠的內(nèi)存單元供分配,函數(shù)返回空(NULL)??梢酝ㄟ^強(qiáng)制類型轉(zhuǎn)換將返回值轉(zhuǎn)換為需要類型的地址。33、有下列程序:main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是A、20B、45C、36D、25標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一維整型數(shù)組t[]={1,2,3’4,5,6,7,8,9};然后在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因?yàn)镃語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。所以程序運(yùn)行的結(jié)果是1+3+5+7+9_25,即變量s的值等于25。34、執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開)#includemain(){FILE*fb;char*s1="Fortran",*s2="Basic";if((fb=fopen("test.txt","wb"))==NULL){printf("Can’topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fb);/*把從地址s1開始的7個(gè)字符寫到fb所指文件中*/fseek(fb,OL,SEEK_SET);/*文件位置指針移到文件開頭*/fwrite(s2,5,1,fb));fclose(fb);}A、BasicanB、BasicFortranC、BasicD、FortranBasic標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查文件的基本操作。在main函數(shù)中,首先打開text.txt文件,然后通過fwrite函數(shù)把s1字符串寫到文件中,接下來通過fseek函數(shù)把文件指針移動(dòng)到文件開始,再調(diào)用fwrite函數(shù)把s2字符竄寫到文件中,s2的長度小于s1的長度,因此第二次寫的時(shí)候會(huì)覆蓋第一次寫的部分內(nèi)容,程序運(yùn)行后test.text中內(nèi)容為Basican。35、若變量已正確定義for(x=0,y=0;(y!=99&&x<4);x++)則以上for循環(huán)A、執(zhí)行3次B、執(zhí)行4次C、執(zhí)行無限次D、執(zhí)行次數(shù)不定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察for語句的循環(huán)次數(shù),for(x=0,y=0;(y!=99&&x<4);x++),y!=99&&x<4即循環(huán)條件當(dāng)y不等于99以及x<4時(shí),執(zhí)行循環(huán)語句,當(dāng)有一個(gè)條件不成立時(shí),均結(jié)束循環(huán),因此循環(huán)4次,B選項(xiàng)正確。36、有以下程序#include#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}程序的輸出結(jié)果是A、0B、1C、9D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查宏定義,宏定義只是做個(gè)簡單的替換,執(zhí)行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m*k+m=15/2,a/=SQR(k+m)/SQR(k+m)的結(jié)果為1,選項(xiàng)B正確。37、軟件需求規(guī)格說明書的作用不包括A、軟件驗(yàn)收的依據(jù)B、用戶與開發(fā)人員對(duì)軟件要做什么的共同理解C、軟件設(shè)計(jì)的依據(jù)D、軟件可行性研究的依據(jù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。軟件需求規(guī)格說明書有以下幾個(gè)方面的作用。①便于用戶、開發(fā)人員進(jìn)行理解和交流,B正確;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù),C正確;③作為確認(rèn)測試和驗(yàn)收的依據(jù),A正確。38、有如下程序#includestructperson{charname[10];intage;}main(){structpersonroom[4]={{"Zhang",19},{"Li",20},{"Wang",17},{"Zhao",18}};printf("%s:%d\n",(room+2)->name,room->age);}程序運(yùn)行后的輸出結(jié)果是()。A、Wang:19B、Wang:17C、Li:20D、Li:19標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體為用戶自定義的一種構(gòu)造類型,其用法和C語言基本數(shù)據(jù)類型一致,所以(room+2)->name與room[2].name等價(jià),room->age與room[0].age等價(jià),輸出結(jié)果為選項(xiàng)A)。39、一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)橐婚g宿舍可以住多個(gè)學(xué)生即多個(gè)學(xué)生住在一個(gè)宿舍中,但一個(gè)學(xué)生只能住一間宿舍,所以實(shí)體宿舍和學(xué)生之間是一對(duì)多的關(guān)系。40、有以下程序:#includemain(){intx[3][2]={0},i;for(i=0;i<3;i++)scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若運(yùn)行時(shí)輸入:246<回車>,則輸出結(jié)果為()。A、204B、200C、240D、246標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中輸入的3個(gè)數(shù)據(jù)2,4,6分別賦值給了x[0][0],x[1][0],x[2][0]。x[0][
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師年終總結(jié)個(gè)人
- DB45T 2461-2022 克氏原螯蝦苗種繁育技術(shù)規(guī)范
- 殘聯(lián)工作計(jì)劃5篇
- 2024年農(nóng)業(yè)大棚病蟲害防治與四害消殺綜合服務(wù)協(xié)議2篇
- 2025校外實(shí)訓(xùn)實(shí)習(xí)基地合同
- 學(xué)前教育實(shí)習(xí)報(bào)告范文匯編六篇
- 策劃方案集合八篇
- 2024年社交媒體平臺(tái)內(nèi)容合作伙伴合同3篇
- 2024年中國絎縫織物制品市場調(diào)查研究報(bào)告
- 2024年度高速公路施工安全監(jiān)管合同:某安全公司為某段高速公路的施工項(xiàng)目提供安全監(jiān)管2篇
- 輕食行業(yè)宏觀環(huán)境分析報(bào)告
- 中外鋼琴名作賞析智慧樹知到期末考試答案2024年
- 小學(xué)心理健康教育主題班會(huì)活動(dòng)記錄表
- 河北省滄州市2022-2023學(xué)年高一年級(jí)上冊期末考試英語試題(解析版)
- 太常引建康中秋夜為呂叔潛賦課件
- 韓國豪華游輪7日游課件
- 高中數(shù)學(xué)成績分析報(bào)告
- 自來水廠安全教育課件
- 關(guān)愛自己從心開始課件
- 2024歷史建筑測繪建檔規(guī)程
- 工地水電倉庫管理制度
評(píng)論
0/150
提交評(píng)論