第 1 頁(yè):選擇題 |
點(diǎn)擊查看:2017年12月計(jì)算機(jī)二級(jí)考試C語(yǔ)言考前提分卷匯總
一、選擇題(每小題1分,共40分)
1[單選題] 若有定義語(yǔ)句:double a,* P=&a;以下敘述中錯(cuò)誤的是( )。
A.定義語(yǔ)句中的*號(hào)是一個(gè)間址運(yùn)算符
B.定義語(yǔ)句中的*號(hào)是一個(gè)說(shuō)明符
C.定義語(yǔ)句中的P只能存放double類型變量的地址
D.定義語(yǔ)句中,*P=&a把變量a的地址作為初值賦給指針變量P
參考答案:A
參考解析:在變量定義double a,* P=&a;中,*號(hào)是一個(gè)指針運(yùn)算符,而非間址運(yùn)算符,所以A錯(cuò)誤。
2[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.321
B.12300
C.1
D.123
參考答案:D
參考解析:程序首先將數(shù)組a[10]中的元素1、2、3分別寫(xiě)入了文件dl.dat文件中,然后又將dl.dat文件中的數(shù)據(jù)123,整體寫(xiě)入到了變量n的空間中,所以打印n時(shí)輸出的數(shù)據(jù)為123。
3[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.1,0,7,0,
B.1,2,3,4,
C.1,4,5,9,
D.3,4,8,l0,
參考答案:A
參考解析:該程序首先在定義變量時(shí),對(duì)二維數(shù)組a[][N]進(jìn)行賦值操作;調(diào)用函數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0][0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組元素1,O,7,0,輸出。
4[單選題] 有以下程序段:
程序運(yùn)行后的輸出結(jié)果是( )。
A.a=10 b=50 c=30
B.a=10 b=50 c=10
C.a=10 b=30 c=10
D.a=50 b=30 c=50
參考答案:B
參考解析:本題中a>b的條件不滿足,所以不執(zhí)行逗號(hào)表達(dá)式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值為10。
5[單選題] 有以下程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.y=0
B.y=-1
C.y=1
D.while構(gòu)成無(wú)限循環(huán)
參考答案:B
參考解析:執(zhí)行y--直到值為0,由于y--是先用再減,所以退出循環(huán)時(shí),y的值為-l。
6[單選題] 若有定義語(yǔ)句:int x=10;,則表達(dá)式x-=x+x的值為( )。
A.0
B.-20
C.-10
D.10
參考答案:C
參考解析:算術(shù)運(yùn)算符+的優(yōu)先級(jí)高于-=,且-=的結(jié)合方向?yàn)樽杂蚁蜃,所以表達(dá)式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,選擇C。
7[單選題] 有以下程序段:
程序段:
當(dāng)執(zhí)行上述程序段,從鍵盤(pán)上輸入555667777abc后,Y的值為( )。
A.566.0
B.55566.0
C.7777.0
D.566777.0
參考答案:A
參考解析:它是格式輸入函數(shù),即按用戶指定的格式從鍵盤(pán)上把數(shù)據(jù)輸入到指定的變量之中。其中的格式命令可以說(shuō)明最大域?qū)。在百分?hào)(%)與格式碼之間的整數(shù)用于限制從對(duì)應(yīng)域讀入的最大字符數(shù)。所以j的值為55,y的值為566.0,字符數(shù)組name為7777abc。
8[單選題] 若有定義語(yǔ)句:double x,y,*px,*py;執(zhí)行了px=&x;py=&y;之后,正確的輸入語(yǔ)句是( )。
A.scanf(”%If%le”,px,py);
B.scanf(”%f%f”&x,&y);
C.sceanf(”%f%f”,x.y);
D.scanf(”%If%If'’,x,y);
參考答案:A
參考解析:因?yàn)閤,y都是double型數(shù)據(jù),所以輸入時(shí)的格式字符應(yīng)為%lf,所以B與C錯(cuò)誤。D選項(xiàng)中scanf("%lf%If",x,y);應(yīng)為scanf(“%If%If"”,&x,&y);。
9[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.1,2
B.1,0
C.3,2
D.0,0
參考答案:A
參考解析:首先打印b=a+b=1+0=1的值1,此時(shí)已給b賦值為1。然后打印a=2*b=2*1=2的值2。所以結(jié)果是1,2。
10[單選題] 有兩個(gè)關(guān)系R、S如下:
由關(guān)系R通過(guò)運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為( )。
A.選擇
B.投影
C.插入
D.連接
參考答案:B
參考解析:投影運(yùn)算是指對(duì)于關(guān)系內(nèi)的域指定可引入新的運(yùn)算。本題中S是在原有關(guān)系R的內(nèi)部進(jìn)行的,是由R中原有的那些域的列所組成的關(guān)系。所以選擇B。
11[單選題] 下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是( )。
A.循環(huán)隊(duì)列
B.帶鏈隊(duì)列
C.二叉樹(shù)
D.帶鏈棧
參考答案:C
參考解析:樹(shù)是簡(jiǎn)單的非線性結(jié)構(gòu),所以二叉樹(shù)作為樹(shù)的一種也是一種非線性結(jié)構(gòu)。
12[單選題] 若有以下程序段:
程序運(yùn)行后的輸出結(jié)果是( )。
A.16
B.8
C.4
D.2
參考答案:C
參考解析:本題考查位運(yùn)算,屬于基礎(chǔ)知識(shí),題目中將整型變量8,二進(jìn)制表達(dá)為00001000,右移一位為00000100,即4,選項(xiàng)C正確。
13[單選題] 對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是( )。
A.隊(duì)頭指針是固定不變的
B.隊(duì)頭指針一定大于隊(duì)尾指針
C.隊(duì)頭指針一定小于隊(duì)尾指針
D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
參考答案:D
參考解析:循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針。
14[單選題] 設(shè)有定義:
char*c;
以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是( )。
ABCD參考答案:A
參考解析:A選項(xiàng)為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定地址)。C選項(xiàng)錯(cuò)誤,getchar()函數(shù)只能輸入一個(gè)字符給字符型變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無(wú)語(yǔ)法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問(wèn)題。因?yàn)樵贐選項(xiàng)和D選項(xiàng)中,字符指針沒(méi)有被賦值,是個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存區(qū)域。這個(gè)區(qū)域可能存放有用的指令或致?lián)。在這個(gè)不確定的區(qū)域重新存放字符串,可能會(huì)發(fā)生無(wú)法預(yù)知的錯(cuò)誤。因此A選項(xiàng)正確。
15[單選題] 若變量已正確定義,在if(W)printf(”%d\n”,k);中,以下不可替代w的是( )。
A.a<>b+c
B.ch=getchar()
C.a==b+c
D.a++
參考答案:A
參考解析:選項(xiàng)A是非法的表達(dá)式,C語(yǔ)言中沒(méi)有<>運(yùn)算符。
16[單選題] 下列排序方法中,最壞情況下比較次數(shù)最少的是( )。
A.冒泡排序
B.簡(jiǎn)單選擇排序
C.直接插入排序
D.堆排序
參考答案:D
參考解析:冒泡排序與筒單插入排序與簡(jiǎn)單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。
17[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.500
B.401
C.503
D.1404
參考答案:C
參考解析:本題重點(diǎn)考察函數(shù)的定義和調(diào)用,第一次循環(huán),a=0,i=0,返回值a=0*0+1+0=1;第二次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第三次循環(huán),a=102,i=20,返回值a=20*20+1+102=503;第四次循環(huán),a=503,i=30;不符合i<30,跳出循環(huán),最后結(jié)果輸出a=503。
18[單選題] 數(shù)據(jù)庫(kù)管理系統(tǒng)是( )。
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D.一種操作系統(tǒng)
參考答案:B
參考解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。
19[單選題] 有以下函數(shù):
該函數(shù)的功能是( )。
A.計(jì)算s所指字符串的長(zhǎng)度
B.比較兩個(gè)字符串的大小
C.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
D.將s所指字符串復(fù)制到字符串t中
參考答案:A
考解析:首先char*s接受一個(gè)字符型數(shù)組的首地址并將這個(gè)首地址賦給另一個(gè)字符型指針char*t,while(*t++)不斷循環(huán)直到*t為'\0',再將t-1,這時(shí)字符指針t指向字符串的最后一個(gè)字符,又因?yàn)閟指向字符數(shù)組的首地址即字符串的首地址所以return(t-s)便是返回字符數(shù)組中字符串的長(zhǎng)度。
20[單選題] 以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是( )。
A._0_
B.8_8
C.void
D.unsigned
參考答案:A
參考解析:C語(yǔ)言中標(biāo)識(shí)符由字母、下劃線、數(shù)字組成,且開(kāi)頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識(shí)符。B中以數(shù)字8開(kāi)頭,所以錯(cuò)誤。C與D中用的是關(guān)鍵字void與unsigned,所以錯(cuò)誤。
21[單選題] 以下敘述中錯(cuò)誤的是( )。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
參考答案:A
參考解析:使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問(wèn)題,而不只是解決簡(jiǎn)單問(wèn)題,所以A錯(cuò)誤。
22[單選題] 下列敘述中正確的是( )。
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)
參考答案:D
參考解析:棧是先進(jìn)后出的線性表,所以A錯(cuò)誤;隊(duì)列是先進(jìn)先出的線性表,所以B錯(cuò)誤;循環(huán)隊(duì)列是線性結(jié)構(gòu)的線性表,所以C錯(cuò)誤。
23[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.2,1,1,2
B.1,2,1,2
C.2,1,2,1
D.1,2,2,1
參考答案:D
參考解析:int m=1,n=2,*P=&m,*q=&n,*r;即指針變量p指向m,指針變量q指向n,r=p;p=q;q=r;即通過(guò)指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。
24[單選題] 有以下程序:
若想通過(guò)鍵盤(pán)輸入,使得a1的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序運(yùn)行后的輸出結(jié)果是:l2,a,34,b。則正確的輸入格式是(以下︺代表空格,代表回車)( )。
ABCD參考答案:D
參考解析:在輸入多個(gè)數(shù)據(jù)時(shí),若格式控制串中無(wú)非格式字符,則認(rèn)為所有輸人的字符均為有效字符。所以應(yīng)按選項(xiàng)D的順序輸入數(shù)據(jù)。
25[單選題] 以下不構(gòu)成無(wú)限循環(huán)的語(yǔ)句或語(yǔ)句組是( )。
A.n=0:
do{++n;}while(n<=0);
B.n=0;
while(1){n++;}
C.n=10;
while(n);{n--;}
D.for(n=0,i=1;;i++)n+=i;
參考答案:A
參考解析:選項(xiàng)A中do后面的語(yǔ)句只執(zhí)行了一次便結(jié)束了循環(huán);B選項(xiàng)中條件while(1)永遠(yuǎn)成立,所以是死循環(huán);C選項(xiàng)中n的值為10,而循環(huán)體為空語(yǔ)句,所以wilile(n)永遠(yuǎn)為真,進(jìn)入死循環(huán);D選項(xiàng)中for語(yǔ)句第二個(gè)表達(dá)式為空,所以沒(méi)有判別條件,進(jìn)入死循環(huán)。
26[單選題] 若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能確定
參考答案:A
參考解析:邏輯或”||”要求只要兩邊的運(yùn)算對(duì)象有一個(gè)非零,結(jié)果就為真。雖然不知道a的值,但是若a為l,則左邊運(yùn)算對(duì)象為1;若a的值不是1,則右邊運(yùn)算對(duì)象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。
27[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.9
B.8
C.7
D.10
參考答案:A
參考解析:題目中靜態(tài)局部變量a,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放。所以第一次調(diào)用函數(shù)執(zhí)行n+=a++;時(shí)a先與n相加在再進(jìn)行自增。n的值為4,a的值為2,且a變量執(zhí)行完后空間沒(méi)有釋放。再執(zhí)行s=s+f
28[單選題] 程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為指針指向鏈表的第一個(gè)結(jié)點(diǎn)。
若有以下程序段:
該程序段實(shí)現(xiàn)的功能是( )。
A.刪除尾結(jié)點(diǎn)
B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)
C.刪除首結(jié)點(diǎn)
D.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)
參考答案:D
參考解析:本題考查鏈表的操作,本題中首先是s指向了它的下個(gè)結(jié)點(diǎn),題目中說(shuō)明了s總是指向鏈表的第一個(gè)結(jié)點(diǎn),然后while循環(huán)找到鏈表的最后一個(gè)元素,然后最后一個(gè)元素指向了之前鏈表的頭結(jié)點(diǎn),之前頭結(jié)點(diǎn)指向了空結(jié)點(diǎn),所以本題實(shí)現(xiàn)的功能是使首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。選項(xiàng)D正確。
29[單選題] 有以下程序(說(shuō)明:字母A的ASCIl碼值是65):
程序運(yùn)行后的輸出結(jié)果是( )。
A.BT
B.YE
C.YT
D.BY
參考答案:B
參考解析:本題中執(zhí)行fun(a)時(shí),會(huì)取字符串a(chǎn)的第一個(gè)字母B,因?yàn)樽帜窧的ASCII碼值為66,所以不會(huì)輸出字母8,函數(shù)只會(huì)輸出ASCII碼值為奇數(shù)的字母,字母Y的ASCIl碼值為89,字母T的ASCII碼值為84,字母E的ASCII碼值為69。因此B選項(xiàng)正確。
30[單選題] 下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是( )。
A.可封裝
B.自頂向下
C.模塊化
D.逐步求精
參考答案:A
參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A。
31[單選題] 某二叉樹(shù)有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)是( )。
A.10
B.8
C.6
D.4
參考答案:C
參考解析:根據(jù)二叉樹(shù)的基本性質(zhì)3:在任意一棵二叉樹(shù)中,度為0的葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè),所以本題中是5+1=6個(gè)。
32[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.1*1=11*2=21*3=3
2*2:42*3=6
3*3=9
B.1*1=11*2=21*3=3
2*1=22*2=4
3*1=3
C.1*1=1 .
1*2=22*2=4
1*3=32*3=63*3=9
D.1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
參考答案:A
參考解析:外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為1,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1+2=2;內(nèi)循環(huán)第三次j的值為3,打印l*3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2*3=6,打印回車換行.退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3.打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。
33[單選題] 以下關(guān)于宏的敘述中正確的是( )。
A.宏替換沒(méi)有數(shù)據(jù)類型限制
B.宏定義必須位于源程序中所有語(yǔ)句之前
C.宏名必須用大寫(xiě)字母表示
D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間
參考答案:A
參考解析:宏定義寫(xiě)在函數(shù)的花括號(hào)外邊,作用域?yàn)槠浜蟮某绦颍ǔT谖募淖铋_(kāi)頭,所以B選項(xiàng)中宏定義必須位于源程序中所有語(yǔ)句之前是錯(cuò)誤的:宏名一般用大寫(xiě).但不是必須用大寫(xiě),所以C選項(xiàng)錯(cuò)誤。宏展開(kāi)不占運(yùn)行時(shí)間,只占編譯時(shí)間,函數(shù)調(diào)用占運(yùn)行時(shí)間(分配內(nèi)存、保留現(xiàn)場(chǎng)、值傳遞、返回值),所以D選項(xiàng)錯(cuò)誤。
34[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.11
B.9
C.6
D.7
參考答案:C
參考解析:strepy:字符串拷貝函數(shù);strlen:求字符串長(zhǎng)度函數(shù)(注意:不包含字符串結(jié)束標(biāo)識(shí)符‘\0’);strcat:字符串連接函數(shù)。執(zhí)行完語(yǔ)句strcat(p,r);后,p數(shù)組中存儲(chǔ)的元素為a,b,c,d,a,b,c,d,e;執(zhí)行語(yǔ)句strcpy(p+strlen(q),q);得到的結(jié)果是將q所指向的字符串拷貝至p+strlen(q)開(kāi)始的存儲(chǔ)位置,因?yàn)閟trlen的值為3,即從p+3開(kāi)始存儲(chǔ)q中的元素。所以執(zhí)行完strepy(p+strhn(q),q)語(yǔ)句后,字符數(shù)組p[20]的存儲(chǔ)元素為a b,e,a,b,c;所以strlen(p)的結(jié)果為6。因此C選項(xiàng)正確。
35[單選題] 支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是( )。
A.棧
B.樹(shù)
C.隊(duì)列
D.二叉樹(shù)
參考答案:A
參考解析:棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A。
36[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.*2*6
B.*3*5
C.*5
D.*7
參考答案:D
參考解析:d0...while語(yǔ)句是先執(zhí)行后判斷,所以第一次先執(zhí)行循環(huán)體,判斷i%3==1的條件,由于i為5,所以余數(shù)為2.條件不成立,執(zhí)行i++,i的值為6,判斷while條件為真;第二次執(zhí)行循環(huán)體,同第一次循環(huán)的執(zhí)行過(guò)程一樣,i的值變?yōu)?,判斷while條件為真;第三次執(zhí)行循環(huán)體,此時(shí)i%3==1,條件成立,再判斷i%5==2也成立,打印t與i的值,即*7,然后執(zhí)行break語(yǔ)句,跳出循環(huán)。所以選擇D選項(xiàng)。
37[單選題] 有以下程序:
以上程序執(zhí)行后abc.dat文件的內(nèi)容是( )。
A.China
B.Chinang
C.ChinaBeijing
D.BeijingChina
參考答案:B
參考解析:本題考查文件操作函數(shù),fwrite和rewind函數(shù),題目中先是將a2字符串寫(xiě)入adc.dat中,然后將寫(xiě)指針回到文件開(kāi)頭,然后寫(xiě)入sl字符串,那么s1字符串就將前5個(gè)字符覆蓋,所以最終結(jié)果為Chinang,選項(xiàng)B正確。
38[單選題] 軟件詳細(xì)設(shè)計(jì)生產(chǎn)的圖如右圖:
該圖是( )。
A.N-S圖
B.PAD圖
C.程序流程圖
D.E-R圖
參考答案:C
參考解析:N-S圖提出了用方框圖來(lái)代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對(duì)。PAD圖是問(wèn)題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具,所以B不對(duì)。E-R圖是數(shù)據(jù)庫(kù)中的用于表示E-R模型的圖示工具,所以D不對(duì)。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計(jì)時(shí)使用的程序流程圖。
39[單選題] 將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為( )。
A.屬性
B.鍵
C.關(guān)系
D.域
參考答案:C
參考解析:從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E—R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。記
40[單選題] 設(shè)有定義:
struct complex
{ int real,unreal;}data1={1,8},data2;
則以下賦值語(yǔ)句中錯(cuò)誤的是( )。
A.data2=(2,6);
B.data2=data1;
C.data2.real=data1.real;
D.data2.real=data1.unreal;
參考答案:A
參考解析:A選項(xiàng)中可以在聲明變量的同事為data2賦值,但是data2=(2,6);應(yīng)寫(xiě)作data2={2,6}。所以選擇A。
二、程序填空題(共18分)
41[填空題]
下列給定程序中,函數(shù)fun的功能是:求ss所指字符串?dāng)?shù)組中長(zhǎng)度最短的字符串所在的行下標(biāo),作為函數(shù)值返回,并把其串長(zhǎng)放在形參n所指的變量中。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)小于N。
請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。
注意:部分源程序在文件BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
參考解析:【參考答案】 (1)M
(2)<
(3)k
【考點(diǎn)分析】
本題考查:for循環(huán)語(yǔ)句的循環(huán)條件;if語(yǔ)句條件表達(dá)式;return語(yǔ)句完成函數(shù)值的返回。
【解題思路】
填空1:題目指出ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,所以for循環(huán)語(yǔ)句循環(huán)條件是i
填空2:要求求長(zhǎng)度最短的字符串,+n中存放的是已知字符串中長(zhǎng)度最短的字符串的長(zhǎng)度,這里將當(dāng)前字符串長(zhǎng)度與*n比較,若小于*n,則將該長(zhǎng)度值賦給*n,因此if語(yǔ)句的條件表達(dá)式為len<*n。
填空3:將最短字符串的行下標(biāo)作為函數(shù)值返回,變量k儲(chǔ)存行下標(biāo)的值。
三、程序修改題(共18分)
42[簡(jiǎn)答題]
下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫(xiě)字母全部改為對(duì)應(yīng)的大寫(xiě)字母,其他字符不變。
例如,若輸入“Ab,cD”,則輸出“AB,CD”。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
參考解析:【參考答案】
【考點(diǎn)分析】
本題考查:if語(yǔ)句條件表達(dá)式;小寫(xiě)字母轉(zhuǎn)大寫(xiě)字母的方法。
【解題思路】
(1)分析本題可知,要判斷字符是否為小寫(xiě)字母,即判斷其是否在a~z之間,所以這里需要進(jìn)行連續(xù)的比較,用&&。
(2)從ASCIl碼表中可以看出,小寫(xiě)字母的ASCII碼值比對(duì)應(yīng)大寫(xiě)字母的ASCII值大32。將字符串中的小寫(xiě)字母改為
大寫(xiě)字母的方法是:從字符串第一個(gè)字符開(kāi)始,根據(jù)ASCII碼值判斷該字母是不是小寫(xiě)字母,若是,則ASCII碼值減32即可。
四、程序設(shè)計(jì)題(共24分)
43[簡(jiǎn)答題]
編寫(xiě)函數(shù)fun,其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使用庫(kù)函數(shù)strcat),即把p2所指的字符串連接到pl所指的字符串的后面。
例如,分別輸入下面兩個(gè)字符串:
FirstString- -
SecondString
程序運(yùn)行后的輸出結(jié)果是: .
FirstString- -SecondString
注意:部分源程序在文件PROG1.C中。 .
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填人你編寫(xiě)的若干語(yǔ)句。
參考解析:【參考答案】
【考點(diǎn)分析】
本題考查:不使用字符串函數(shù)實(shí)現(xiàn)字符串連接操作。通過(guò)for循環(huán)語(yǔ)句來(lái)完成,不要忘了最后需要加上字符串結(jié)束標(biāo)識(shí)‘\0’。
【解題思路】
本題用兩個(gè)循環(huán)完成操作,第1個(gè)循環(huán)的作用是求出第l個(gè)字符串的長(zhǎng)度。印將i指到第1個(gè)字符串的末尾。第2個(gè)循環(huán)的作用是將第2個(gè)字符串的字符連連第l個(gè)字符串的末尾。最后在第1個(gè)字符串的結(jié)尾加上字符串結(jié)束標(biāo)識(shí)'\0'。
相關(guān)推薦:
2017年12月計(jì)算機(jī)等級(jí)考試考前必做題匯總
【考試吧整理】計(jì)算機(jī)等級(jí)考試各科目歷年真題【考試吧整理】計(jì)算機(jī)等級(jí)考試報(bào)考完全指南
2017年12月全國(guó)計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間通知
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |