全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言模擬測(cè)試【含詳細(xì)解析】-(6)資料_第1頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言模擬測(cè)試【含詳細(xì)解析】-(6)資料_第2頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言模擬測(cè)試【含詳細(xì)解析】-(6)資料_第3頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言模擬測(cè)試【含詳細(xì)解析】-(6)資料_第4頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言模擬測(cè)試【含詳細(xì)解析】-(6)資料_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)對(duì)象的數(shù)據(jù)和操作結(jié)合于統(tǒng)一體中的是A.結(jié)合B.封裝C.隱藏D.抽象正確答案:B你的答案:解析:【解析】對(duì)象的基本特點(diǎn)是:標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。封裝是指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),將數(shù)據(jù)和操作結(jié)合于統(tǒng)一體,僅對(duì)外提供訪問(wèn)方式,B選項(xiàng)正確。2.在進(jìn)行邏輯設(shè)計(jì)時(shí),將E-R圖中實(shí)體之間聯(lián)系轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)的A.關(guān)系B.元組C.屬性D.屬性的值域正確答案:A你的答案:解析:【解析】E-R模型和關(guān)系模式的對(duì)照表如下由表中可以看出,聯(lián)系轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)的關(guān)系,A選項(xiàng)正確。3.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)相比,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)有A.節(jié)省存儲(chǔ)空間B.插入與刪除運(yùn)算效率高C.便于查找D.排序時(shí)減少元素的比較次數(shù)正確答案:B你的答案:解析:【解析】順序表和鏈表的優(yōu)缺點(diǎn)比較如下表:由表中可以看出鏈?zhǔn)酱鎯?chǔ)插入與刪除運(yùn)算效率高,故B選項(xiàng)正確。4.深度為7的完全二叉樹(shù)中共有125個(gè)結(jié)點(diǎn),則該完全二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為A.62B.63C.64D.65正確答案:B你的答案:解析:【解析】在樹(shù)結(jié)構(gòu)中,定義一棵樹(shù)的根結(jié)點(diǎn)所在的層次為1,其他結(jié)點(diǎn)所在的層次等于它的父結(jié)點(diǎn)所在的層次加1,樹(shù)的最大層次稱為樹(shù)的深度。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點(diǎn)。深度為6的滿二叉樹(shù),結(jié)點(diǎn)個(gè)數(shù)為2^6-1=63,則第7層共有125-63=62個(gè)葉子結(jié)點(diǎn),分別掛在第6層的左邊62個(gè)結(jié)點(diǎn)上,加上第6層的最后1個(gè)葉子結(jié)點(diǎn),該完全二叉樹(shù)共有63個(gè)葉子結(jié)點(diǎn),故B選項(xiàng)正確。5.下列敘述中正確的是A.所謂有序表是指在順序存儲(chǔ)空間內(nèi)連續(xù)存放的元素序列B.有序表只能順序存儲(chǔ)在連續(xù)的存儲(chǔ)空間內(nèi)C.有序表可以用鏈接存儲(chǔ)方式存儲(chǔ)在不連續(xù)的存儲(chǔ)空間內(nèi)D.任何存儲(chǔ)方式的有序表均能采用二分法進(jìn)行查找正確答案:C你的答案:解析:【解析】"有序"是特指元素按非遞減排列,即從小到大排列,但允許相鄰元素相等,A選項(xiàng)錯(cuò)誤。有序表可以順序存儲(chǔ)也可以鏈?zhǔn)酱鎯?chǔ),B選項(xiàng)錯(cuò)。能使用二分法查找的線性表必須滿足兩個(gè)條件:用順序存儲(chǔ)結(jié)構(gòu);線性表是有序表,D選項(xiàng)錯(cuò)誤。故C選項(xiàng)正確。6.設(shè)二叉樹(shù)如下:

則后序遍歷序列為A.ABDEGCFHB.DBGEAFHCC.DGEBHFCAD.ABCDEFGH正確答案:C你的答案:解析:【解析】二叉樹(shù)遍歷可以分為3種:前序遍歷(訪問(wèn)根結(jié)點(diǎn)在訪問(wèn)左子樹(shù)和訪問(wèn)右子樹(shù)之前)、中序遍歷(訪問(wèn)根結(jié)點(diǎn)在訪問(wèn)左子樹(shù)和訪問(wèn)右子樹(shù)兩者之間)、后序遍歷(訪問(wèn)根結(jié)點(diǎn)在訪問(wèn)左子樹(shù)和訪問(wèn)右子樹(shù)之后)。本題中前序遍歷為ABDEGCFH,中序遍歷為DBGEAFHC,后序遍歷為DGEBHFCA,故C選項(xiàng)正確。7.計(jì)算機(jī)軟件包括A.算法和數(shù)據(jù)B.程序和數(shù)據(jù)C.程序和文檔D.程序、數(shù)據(jù)及相關(guān)文檔正確答案:D你的答案:解析:【解析】計(jì)算機(jī)軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。故D選項(xiàng)正確。8.下面描述中不屬于軟件需求分析階段任務(wù)的是A.撰寫軟件需求規(guī)格說(shuō)明書(shū)B(niǎo).軟件的總體結(jié)構(gòu)設(shè)計(jì)C.軟件的需求分析D.軟件的需求評(píng)審正確答案:B你的答案:解析:解析】需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說(shuō)明書(shū)和需求評(píng)審。故B選項(xiàng)正確。9.當(dāng)數(shù)據(jù)庫(kù)中數(shù)據(jù)總體邏輯結(jié)構(gòu)發(fā)生變化,而應(yīng)用程序不受影響,稱為數(shù)據(jù)的A.邏輯獨(dú)立性B.物理獨(dú)立性C.應(yīng)用獨(dú)立性D.空間獨(dú)立性正確答案:A你的答案:解析:【解析】數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性,物理獨(dú)立性指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),也不會(huì)引起應(yīng)用程序的改動(dòng);邏輯獨(dú)立性指數(shù)據(jù)庫(kù)的總體邏輯結(jié)構(gòu)的改變,不會(huì)導(dǎo)致相應(yīng)的應(yīng)用程序的改變。故A選項(xiàng)正確。10.有三個(gè)關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是A.并B.投影C.交D.選擇正確答案:A你的答案:解析:【解析】用于查詢的3個(gè)操作無(wú)法用傳統(tǒng)的集合運(yùn)算表示,引入的運(yùn)算為投影運(yùn)算、選擇運(yùn)算、笛卡爾積。常用的擴(kuò)充運(yùn)算有交、除、連接及自然連接等。投影,從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系,T相較于R沒(méi)有缺少屬性,故B選項(xiàng)錯(cuò)誤。選擇,從關(guān)系中找出滿足給定條件的元組的操作稱為選擇,T相較于R增加了元組,故D選項(xiàng)錯(cuò)誤。交:R∩S結(jié)果是既屬于R又屬于S的記錄組成的集合,T中元組多于R與S,故C選項(xiàng)錯(cuò)誤。并:R∪S是將S中的記錄追加到R后面,與題目中結(jié)果相符,故A選項(xiàng)正確。11.以下敘述正確的是A.C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為.obj的二進(jìn)制文件B.C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為.exe的可執(zhí)行文件C.C編譯程序把文件后綴為.obj的二進(jìn)制文件編譯成文件后綴為.exe的可執(zhí)行文件D.鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為.exe的可執(zhí)行文件正確答案:A你的答案:解析:【解析】C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為.obj的二進(jìn)制文件,鏈接將一個(gè)或多個(gè)目標(biāo)文件與程序用到的庫(kù)文件連接起來(lái),形成一個(gè)可以在操作系統(tǒng)直接運(yùn)行的執(zhí)行程序.exe,故排除B,C,D選項(xiàng),答案選A選項(xiàng)。12.以下敘述正確的是A.循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)都是結(jié)構(gòu)化程序的基本結(jié)構(gòu)B.計(jì)算機(jī)可以直接執(zhí)行C語(yǔ)言程序,不需要做任何轉(zhuǎn)換C.過(guò)于復(fù)雜的算法不能使用N-S流程圖描述D.只有不超過(guò)20步操作步驟的算法才是簡(jiǎn)單算法正確答案:A你的答案:解析:【解析】計(jì)算機(jī)只能識(shí)別機(jī)器語(yǔ)言,C語(yǔ)言是高級(jí)語(yǔ)言,計(jì)算機(jī)無(wú)法直接執(zhí)行,排除B選項(xiàng);N-S流程圖是復(fù)雜流程算法的描述手段,因此C選項(xiàng)錯(cuò)誤;算法的復(fù)雜與簡(jiǎn)單,不能用操作步驟數(shù)來(lái)衡量,D選項(xiàng)錯(cuò)誤;循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)都是結(jié)構(gòu)化程序的基本結(jié)構(gòu),答案為A選項(xiàng)。13.有如下程序#include<stdio.h>main(){intx=072;printf("X=%d.\n",x+1);}程序運(yùn)行后的輸出結(jié)果是A.X=115B.X=73C.X=59.D.X=72.正確答案:C你的答案:解析:【解析】x定義為072,表示x為一個(gè)八進(jìn)制數(shù),%d代表十進(jìn)制整數(shù)輸出,x需要轉(zhuǎn)化成十進(jìn)制為58,在輸出時(shí),x+1=59,再輸出,答案為C選項(xiàng),另外輸出時(shí)不能忘記"."。14.下面敘述正確的是A.任何復(fù)雜任務(wù)都可以分解成簡(jiǎn)單子任務(wù)B.C語(yǔ)言程序的所有函數(shù)只能處于同一個(gè)源文件中WErC.包含全部三種基本結(jié)構(gòu)的程序才是結(jié)構(gòu)化程序D.C語(yǔ)言程序可以定義多個(gè)不同內(nèi)容的main函數(shù)正確答案:A你的答案:解析:【解析】C語(yǔ)言程序的函數(shù)可以處于不同的源文件,B選項(xiàng)錯(cuò)誤;包含一種基本結(jié)構(gòu)的程序就是結(jié)構(gòu)化程序,C選項(xiàng)錯(cuò)誤;C語(yǔ)言只可以定義一個(gè)main函數(shù),D選項(xiàng)錯(cuò)誤,答案為A選項(xiàng)。15.以下敘述正確的是A.C程序總是以main()作為程序執(zhí)行的起始行B.main()函數(shù)若不帶參數(shù),其后面的一對(duì)圓括號(hào)可省略C.函數(shù)體內(nèi)的定義語(yǔ)句和可執(zhí)行語(yǔ)句允許任意穿插出現(xiàn)D.C語(yǔ)言中的語(yǔ)句之間必須用分號(hào)作為分隔符正確答案:A你的答案:解析:【解析】main()函數(shù)后面的括號(hào)告訴編譯器這是一個(gè)函數(shù),不可以省略,排除B選項(xiàng);在復(fù)合語(yǔ)句中,不僅可以有執(zhí)行語(yǔ)句,還可以有定義語(yǔ)句,定義語(yǔ)句應(yīng)該出現(xiàn)在執(zhí)行語(yǔ)句的前面,故排除C選項(xiàng);C語(yǔ)言中的某些語(yǔ)句可以不用分號(hào),例如if語(yǔ)句,故D選項(xiàng)錯(cuò)誤;答案為A選項(xiàng)。16.有以下程序#include<stdio.h>main(){charc;for(;(c=getchar())!='#';)putchar(++c);}執(zhí)行時(shí)如輸入為:abcdefg##<回車>,則輸出結(jié)果是A.abcdefgB.bcdefgh$C.bcdefgh$$D.bcdefgh正確答案:D你的答案:解析:【解析】for語(yǔ)句中執(zhí)行的含義是,每次把輸入賦給c值,如果不等于'#',則執(zhí)行putchar(++c),即將當(dāng)前c值在ASCII碼上+1后再輸出字符型c值,c的值等于'#',則終止循環(huán),所以輸出應(yīng)該是bcdefgh,答案為D選項(xiàng)。17.有以下程序#include<stdio.h>main(){inta=1,b=0;for(;a<5;a++){if(a%2==0)break;continue;b+=a;}printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是A.0B.1C.10D.4正確答案:A你的答案:解析:【解析】題干中for循環(huán)有break和continue語(yǔ)句,且均放在b+=a語(yǔ)句前面,無(wú)論if條件是否滿足,b+=a都不會(huì)被執(zhí)行,因此b值始終為0,答案為A選項(xiàng)。18.有以下程序#include<stdio.h>main(){intx=0x13;if(x=0x12)printf("True");printf("False\n");}程序運(yùn)行后的輸出結(jié)果是A.TrueB.TrueFalseC.FalseD.TrueFalseTrue正確答案:B你的答案:解析:【解析】if(x=0x12)表示x=0x12,此為賦值語(yǔ)句,表達(dá)式的值為0x12,非零為真,執(zhí)行printf("True"),再執(zhí)行printf("False\n"),因此答案為B選項(xiàng),注意賦值操作符"="與相等操作符"=="的區(qū)別。19.為了避免在嵌套的if-else語(yǔ)句中產(chǎn)生二義性,C語(yǔ)言規(guī)定與else子句配對(duì)是A.與其在同一行上的if子句B.在其之后最近的不帶else的if子句C.與其縮排位置相同的if子句D.在其之前最近的不帶else的同層if子句正確答案:D你的答案:解析:【解析】注意if與else的配對(duì)關(guān)系。原則是if總是與它上面最近的、未配對(duì)的else配對(duì),因此答案為D選項(xiàng)。20.有以下程序#include<stdio.h>main(){inti,a;for(i=0;i<=10;i++)a=i;printf("%d,%d\n",i,a);}程序的運(yùn)行結(jié)果是A.11,10B.10,10C.10,11D.11,11正確答案:A你的答案:解析:【解析】當(dāng)i=10時(shí),i值賦值給a,同時(shí)i+1,再判定是否滿足i<=10,i=11時(shí),不滿足條件,結(jié)束循環(huán)。循環(huán)結(jié)束時(shí),輸出i,a的值為11,10,答案為A選項(xiàng)。21.有以下程序#include<stdio.h>voidfun(inta[],intn){inti=0;for(i=0;i<n;i++){if(i%2==0)a[i]+=n;elsea[i]-=n;}}main(){intc[5]={5,4,3,2,1},i;fun(c,5);for(i=0;i<5;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A.10,-1,8,-3,6,B.5,4,3,2,1,C.10,2,8,4,6,D.5,-1,3,-3,1,正確答案:A你的答案:解析:【解析】fun()函數(shù)功能是:對(duì)數(shù)組中,下標(biāo)為偶數(shù)的元素累加5,下標(biāo)為奇數(shù)的元素減去5,所以執(zhí)行完fun()函數(shù)后,數(shù)組c變?yōu)?0,-1,8,-3,6,A選項(xiàng)正確。22.有以下程序#include<stdio.h>#defineN4voidfun(inta[][N]){inti;for(i=0;i<N;i++)a[0][i]=a[N-1][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i;fun(x);for(i=0;i<N;i++)printf("%d,",x[i][i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A.16,6,11,16,B.1,6,11,16,C.4,7,10,13,D.17,17,17,17,正確答案:A你的答案:解析:【解析】程序最后輸出x[0][0],x[1][1],x[2][2],x[3][3],其中只有x[0][0]的值在fun函數(shù)中發(fā)生改變,在fun函數(shù)中,當(dāng)i=0時(shí),x[0][0]=x[3][3]=16,因此答案為A選項(xiàng)。23.有如下程序#include<stdio.h>intconvert(int*data){return(*data)++;}main(){intdata=56;convert(&data);printf("%d,",data);data=convert(&data);printf("%d,\n",data);}程序運(yùn)行后的輸出結(jié)果是A.56,57,B.57,58,C.57,57,D.55,57,正確答案:C你的答案:解析:【解析】convert函數(shù)每次都定義了一個(gè)指針*data,再將指針變量*data對(duì)應(yīng)地址的值進(jìn)行加一處理,再返回加1前的值作為結(jié)果,因此答案為C選項(xiàng)。24.設(shè)有如下程序段inta[1]={0};intb[]={9};charc[3]={"A","B"};chard="12";以下敘述正確的是A.a,b的定義合法,c,d的定義不合法B.a,b,c,d的定義都是合法的C.a,b,c的定義是合法的,d的定義不合法D.只有a的定義是合法的正確答案:A你的答案:解析:【解析】inta[1]={0}表示定義一個(gè)數(shù)組a[1]初值為0,intb[]={9},表示定義一個(gè)數(shù)組b,其中只有一個(gè)值9,系統(tǒng)自動(dòng)識(shí)別數(shù)組有1個(gè)元素。charc[3]={"A","B"},數(shù)組元素為字符串,需要用二維數(shù)組來(lái)表示,C選項(xiàng)錯(cuò)誤;chard="12";,字符串常量不能賦值給字符變量,D選項(xiàng)錯(cuò)誤;因此答案為A選項(xiàng)。25.設(shè)有定義:intx=2,*p=&x;floaty=3.0;charz='c';,則立即進(jìn)行以下運(yùn)算有安全隱患的是A.p++;B.x++;C.y++;D.z++;正確答案:A你的答案:解析:【解析】由于x是一個(gè)整形變量,將x地址賦值給p指針后,A選項(xiàng)中p++對(duì)指針p進(jìn)行加1運(yùn)算,p指針的值相當(dāng)于加4(整型變量的地址占4個(gè)字節(jié)),此時(shí)p指向了未知的內(nèi)存地址,對(duì)未知內(nèi)存地址進(jìn)行操作具有安全隱患,故答案為A選項(xiàng)。26.有以下程序#include<stdio.h>doublefun(doublea){doublex;x=a-(int)a;returnx;}main(){doublea=3.1415;printf("%f\n",fun(a));}程序的運(yùn)行結(jié)果是A.3.000000B.3.141500C.0.141500D.0.000000正確答案:C你的答案:解析:【解析】這里考查了強(qiáng)制轉(zhuǎn)換的概念,在fun函數(shù)中,x=a-(int)a表示x取值為a的小數(shù)部分,因此,輸入a為3.1415,輸出x=0.141500,答案為C選項(xiàng)。27.有以下程序#include<stdio.h>#include<string.h>char*a="you";char*b="WelcomeyoutoBeijing!";main(){char*p;p=b;while(*p!=*a)p++;p+=strlen(a)+1;printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是A.Beijing!B.youtoBeijing!C.WelcomeyoutoBeijing!D.toBeijing!正確答案:D你的答案:解析:【解析】while函數(shù)判斷p指針指向地址的內(nèi)容是否和a指針指向地址的內(nèi)容相等,如果不是,則移動(dòng)指針p+1,當(dāng)p指向*b字符串中的'y'時(shí),和*a首地址元素相等,退出while語(yǔ)句后,p再向右移動(dòng)a字符串長(zhǎng)度+1個(gè)單位地址,此時(shí)p指向't',輸出't'及剩余的字符串,答案為D選項(xiàng)。28.有如下程序#include<stdio.h>#include<string.h>main(){printf("%d\n",strlen("0\t\nA011\1"));}程序運(yùn)行后的輸出結(jié)果是A.8B.9C.7D.10正確答案:A你的答案:解析:【解析】strlen是求字符串長(zhǎng)度的函數(shù),"0\t\nA011\1"是一個(gè)長(zhǎng)度為8的字符串,其中\(zhòng)t、\n、\1均為轉(zhuǎn)移字符常量,但是長(zhǎng)度也是1,因此輸出結(jié)果是8,答案為A選項(xiàng)。29.有如下程序#include<stdio.h>intsum(intdata){staticintinit=1;returninit+=data;}main(){inti;for(i=1;i<=1;i++)printf("%d,",sum(i));printf("\n");}程序運(yùn)行后的輸出結(jié)果是A.2,B.2,3,C.3,D.1,正確答案:A你的答案:解析:【解析】在輸出函數(shù)中,調(diào)用sum函數(shù),sum函數(shù)作用是定義一個(gè)常數(shù)init=1,對(duì)Init進(jìn)行疊加主函數(shù)傳遞的data值,隨后將和返回給主函數(shù),因此輸出為2,答案為A選項(xiàng)。30.有以下程序#include<stdio.h>main(){chars1[]="programe",s2[]="Language";char*p1=s1,*p2=s2;intk;for(k=0;k<8;k++)if(*(p1+k)==*(p2+k))printf("%s\n",(p1+k));}程序的運(yùn)行結(jié)果是A.grameameeeB.gaeC.programeD.無(wú)輸出字符正確答案:A你的答案:解析:【解析】定義兩個(gè)指針變量p1,p2,分別指向數(shù)組s1,s2首地址,在for循環(huán)中,比較兩個(gè)指針對(duì)應(yīng)地址的元素是否相等,如果相等,則輸出當(dāng)前指針指向地址的字符串,答案為A選項(xiàng)。31.以下針對(duì)全局變量的敘述錯(cuò)誤的是A.全局變量的作用域是從定義位置開(kāi)始至源文件結(jié)束B(niǎo).全局變量是在函數(shù)外部任意位置上定義的變量C.用extern說(shuō)明符可以限制全局變量的作用域D.全局變量的生存期貫穿于整個(gè)程序的運(yùn)行期間正確答案:C你的答案:解析:【解析】在不同編譯單位內(nèi)用extern說(shuō)明符來(lái)擴(kuò)展全局變量的作用域,extern可以將全局變量作用域擴(kuò)展到其他文件,而不是限制全局變量的作用域,答案為C選項(xiàng)。32.有以下程序#include<stdio.h>#include<string.h>typedefstructstu{charname[10];chargender;intscore;}STU;voidf(STU*c){strcpy(c->name,"Qian");c->gender='f';c->score=350;}main(){STUa={"Zhao",'m',290},b;b=a;f(&b);printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}程序運(yùn)行后的輸出結(jié)果是A.Zhao,m,290,Qian,f,350B.Zhao,m,290,Qian,m,290C.Zhao,m,290,Zhao,m,290D.Zhao,m,290,Qian,m,350正確答案:A你的答案:解析:【解析】本題定義了一個(gè)結(jié)構(gòu)變量structstu,并且命名為STU,STU結(jié)構(gòu)中包含三個(gè)數(shù)據(jù)。main函數(shù)中,首先定義兩個(gè)結(jié)構(gòu)體STU類型的變量a,b,并對(duì)a完成初始化,然后將a賦值給b,使得結(jié)構(gòu)體a,b的值都是{"Zhao",'m',290},然后調(diào)用f函數(shù),f函數(shù)的功能是將形參結(jié)構(gòu)體指針c指向的結(jié)構(gòu)體賦值為{"Qian",'f',350},由于形參是指針,c指向的結(jié)構(gòu)體就是b,所以實(shí)參b的值被修改為{"Qian",'f',350},而a的值不變,答案為A選項(xiàng)。33.下面關(guān)于編譯預(yù)處理的命令行,正確的是A.#definePAI3.14B.#DefineEps0.00001C.##DEFINEFALSE0D.#defineintINT正確答案:A你的答案:解析:【解析】宏定義用法一般表達(dá)式為#define宏名字符串,A選項(xiàng)滿足宏定義用法;C語(yǔ)言中是區(qū)分大小寫的,define屬于C語(yǔ)言的關(guān)鍵字,不可以大寫,因此B,C選項(xiàng)錯(cuò)誤;D選項(xiàng)中,int是代表整數(shù)類型,不滿足define用法,D選項(xiàng)錯(cuò)誤,因此答案為A選項(xiàng)。34.有以下程序#include<stdio.h>#defineD(x)2*x+3main(){inti=1,j=2;printf("%d\n",D(i+j));}程序運(yùn)行后的輸出結(jié)果是A.7B.6C.9D.2正確答案:A你的答案:解析:【解析】宏定義只作簡(jiǎn)單的替換,輸出中D(i+j)表達(dá)式執(zhí)行運(yùn)算為2*i+j+3,代入i,j,答案為A選項(xiàng)。35.有以下程序#include<stdio.h>#include<string.h>structS{charname[10];};voidchange(structS*data,intvalue){strcpy(data->name,"#");value=6;}main(){structSinput;intnum=3;strcpy(,"OK");change(&input,num);printf("%s,%d\n",,num);}程序運(yùn)行后的輸出結(jié)果是A.OK,6B.#,6C.OK,3D.#,3正確答案:D你的答案:解析:【解析】聲明結(jié)構(gòu)類型S中有一個(gè)字符數(shù)組name,在main函數(shù)中,定義了一個(gè)結(jié)構(gòu)變量input,為input中成員name初始化"ok"后,調(diào)用change()函數(shù)。chang()執(zhí)行功能是把"#"賦值給name,由于change()函數(shù)的形參為結(jié)構(gòu)體指針,因此change函數(shù)改變形參指針data指向的name值的同時(shí),也改變了實(shí)參input的成員name值;而形參value為整型變量,change函數(shù)改變value值的同時(shí)不影響實(shí)參num,所以輸出為#,3。答案為D選項(xiàng)。36.有如下定義structst{charname[12];intage;charsex;}std[10],*p=std;以下語(yǔ)句錯(cuò)誤的是A.scanf("%d",p->age);B.scanf("%s",std[0].name);C.scanf("%d",&std[1].age)D.scanf("%c",&(p->sex));正確答案:A你的答案:解析:【解析】A選項(xiàng)中,p->age是結(jié)構(gòu)指針訪問(wèn)結(jié)構(gòu)成員的方式,如果為結(jié)構(gòu)體內(nèi)變量進(jìn)行賦值,應(yīng)該對(duì)指針地址指向的單元進(jìn)行賦值,因此在p->age前面應(yīng)該加入取地址符&,A選項(xiàng)語(yǔ)句錯(cuò)誤,答案為A選項(xiàng)。37.有以下程序#include<stdio.h>#include<stdlib.h>voidfun(int**s,intx[2][3]){**s=*(x[1]+1);}main(){inta[2][3]={1,2,3,4,5,6},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}程序的運(yùn)行結(jié)果是A.6B.2C.5D.3正確答案:C你的答案:解析:【解析】malloc(size)函數(shù)作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)分配一個(gè)長(zhǎng)度為size的連續(xù)空間,函數(shù)的返回值是新分配的存儲(chǔ)區(qū)的首地址,將該地址賦值給p指針,然后取p指針的地址,調(diào)用fun函數(shù)。fun函數(shù)中對(duì)指向指針的指針s指向的內(nèi)存單元賦值,其中x[1]表示二維數(shù)組x的第二行的行地址,x[1]+1表示二維數(shù)組x的第二行第二列的地址,所以fun函數(shù)的功能是將二維數(shù)組x的第二行第二列的值,即x[1][1]賦值給**s,*s為p,所以**s代表*p,x[1][1]與a[1][1]等價(jià),因此答案為C選項(xiàng)。38.有如下定義structst{inta;floatb;}x[10];FILE*fp;若文件已正確打開(kāi),且數(shù)組x的10個(gè)元素均已賦值,以下將數(shù)組元素寫到文件中的語(yǔ)句錯(cuò)誤的是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論