2021年山東省濰坊市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第1頁
2021年山東省濰坊市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第2頁
2021年山東省濰坊市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第3頁
2021年山東省濰坊市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第4頁
2021年山東省濰坊市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年山東省濰坊市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:

程序運行后的輸出結(jié)果是()。

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

2.

3.以下選項中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

4.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。

A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度

5.設(shè)有定義intn=0,*p=&n,**q=&p;,則下列選項中正確的賦值語句是

A.p=1;B.*q=2;C.q=p;D.*p=5;

6.在一個單鏈表HL中,若要在指針q所指結(jié)點的后面插入一個由指針p所指向的結(jié)點,則執(zhí)行____。

A.q一>next=p一>next;p一>next=q;

B.q一>next=p一>next;p一>next=q;

C.p一>next=q一>next;q=p;

D.p一>next=q一>next;q一>next=p;

7.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

8.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun

A.7,431B.6C.980D.6,980

9.若有定義"int*p[3];",則以下敘述中正確的是()。

A.定義了一個基類型為int的指針變量p,該變量具有3個指針

B.定義了一個指針數(shù)組p,該數(shù)組含有3個元素,每個元素都是基類型為int的指針

C.定義了—個名為*p的整型數(shù)組,該數(shù)組含有3個int類型元素

D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有3個int類型元素

10.有以下程序:#include<stdio.h>#defineSUB(x,y)(x)*(y)main(){inta=3,b=4;printf(“%d\n”,SUB(a++,b++));程序運行后的輸出結(jié)果是()。

A.15B.12C.16D.20

11.折半查找法的查找速度一定比順序查找法快()。

A.正確B.錯誤

12.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運行結(jié)果是()。

A.55B.50C.45D.60

13.對于n個結(jié)點的單向鏈表(無表頭結(jié)點),需要指針單元的個數(shù)至少為______。

A.n-1B.nC.n+1D.2n

14.以下關(guān)于鏈式存儲結(jié)構(gòu)說法錯誤的是()

A.比順序存儲結(jié)構(gòu)的存儲密度小

B.每個節(jié)點是由數(shù)據(jù)域和指針域組成

C.查找結(jié)點時鏈式存儲比順序存儲快

D.邏輯上不相鄰的節(jié)點物理上可能相鄰

15.下面判斷正確的是

A.char*a="china";等價于char*a;*a="china";

B.charstr[5]={"china"};等價于charstr[]={"china"};

C.char*s="china";等價于char*s;s="china";

D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";

16.下列二維數(shù)組初始化語句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

17.以下程序的輸出結(jié)果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定

18.軟件生命周期中,花費最多的階段是()。

A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護

19.鏈表不具備的特點是()

A.所需空間與其長度成正比B.不必事先估計存儲空間C.插入刪除不需要移動元素D.可隨機訪問任一節(jié)點

20.下列敘述中正確的是A.為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系

B.表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項

C.一個關(guān)系的屬性名表稱為關(guān)系模式

D.一個關(guān)系可以包括多個二維表

二、2.填空題(20題)21.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3),{4,5}},b[3][2],i,j;

for(i=0;i<2;i++)

{for(j=0;j<30++)

______;

}

}

22.在進行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。

23.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。

charch='B';

printf("%c%d\n",ch,ch);

24.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請?zhí)羁?使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

25.在最壞情況下,冒泡排序的時間復(fù)雜度為【】。

26.函數(shù)fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

27.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];

pfintf("%d\n",s);

28.下面的語句要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

29.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。

30.以下程序輸出的結(jié)果是______。

mazn()

{inta=5,b=4,c=3,d;

d=(a>b>C);

printf("%d\n",D);

}

31.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

printf("%c%d\n",ch,ch);

32.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊列屬于______。

33.設(shè)有如下宏定義

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通過宏調(diào)用實現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP(【】a,b);

34.以下程序的運行結(jié)果是【】。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:case2:return1;

}

return(fib(g-1)+fib(g-2));

}

main()

{longk;

k=fib(5);

printf("k=%d\n",k);

}

35.下面程序的執(zhí)行結(jié)果是【】。

main()

{

inta=5,b=4,c=9;

printf("###%d",(a<C)?c*b:a*B);

}

36.\13'在內(nèi)存中占1個字節(jié),"\12"在內(nèi)存中占______個字節(jié)。

37.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

38.當運行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

printf("%s\n",str);

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

39.以下程序的輸出結(jié)果是【】。

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

printf(“%d\n”,s);

}

40.以下程序運行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

三、1.選擇題(20題)41.下列關(guān)于單目運算符++、--的敘述中正確的是

A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運算對象可以足char型變量、int型變量和float型變量

42.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次

43.已知大寫字母F的ASCII碼為70,以下程序的運行結(jié)果為()#include<stdio.h>main(){charc1='F',c2='p';printf("%d,%d\n",c1,c2);}

A.70,80B.70,81C.70,82D.70,83

44.在C語言中,關(guān)于函數(shù)fseek的說法正確的是()。

A.使位置指針重新返回文件的開頭

B.使位置指針到文件的結(jié)尾

C.可以改變文件位置指針

D.利用fseek函數(shù)只能實現(xiàn)文件順序讀寫

45.設(shè)有如下3個關(guān)系表:

下列操作中正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

46.下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A.軟件測試B.概要設(shè)計C.軟件維護D.詳細設(shè)計

47.以下只有使用時才為該類型變量分配內(nèi)存的存儲類型說明是()

A.auto和static

B.auto和register

C.register和static

D.extern和register

48.有三個關(guān)系R、s和T如下:

由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

49.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

50.定義int*swap()指的是______。

A.—個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

51.八進制數(shù)253.74轉(zhuǎn)換成二進制數(shù)是()

A.10101011.1111

B.10111011.0101

C.11001011.1001

D.10101111.1011

52.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。

A.XZCYABB.XYZABCC.XYABCZD.XYAZBC

53.以下程序的輸出結(jié)果是______。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}

D.1111222334

54.有以下程序:#include<stdio.h>fun(intx,inty,intz){z=x*y;}main(){inta=4,b=2,c=6;fun(a,b,c);printf("%d",c);}程序運行后的輸出結(jié)果是()。

A.16B.6C.8D.12

55.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。#include<stdio,h>main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*Π*r*r;printf("s=%f\n",s);程序在編譯時出錯,出錯的原因是()。

A.注釋語句書寫位置錯誤

B.存放圓半徑的變量r不應(yīng)該定義為整型

C.輸出語句中格式描述符非法

D.計算圓面積的賦值語句中使用了非法變量

56.設(shè)有聲明語句chara='\72';,則變量a______。

A.包含1個字符B.包含2個字符C.包含3個字符D.聲明不合法

57.下列程序執(zhí)行后的輸出結(jié)果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}

A.5B.6C.7D.8

58.請讀程序:#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100:a++){if(b>=20)break;if(b%3=1”{b+=3;continue;}b=5;}printf("%d\n",A);}上面程序的輸出結(jié)果是_______。

A.7B.8C.9D.10

59.在數(shù)據(jù)庫設(shè)計的四個階段中,為關(guān)系模式選擇存取方法應(yīng)該是在______階段。

A.需求分析B.概念設(shè)計C.邏輯設(shè)計D.物理設(shè)計

60.以下程序的輸出結(jié)果是

#include<stdio.h>

intfun(intn,int*s)

{intf1,f2;

if(n==0||n==1)

*s=1;

else

{fun(n-1,&f1);

fun(n-2,&f2);

*s=f1+f2;

}}

voidmain()

{intx;

fun(6,&x);

printf("\n%d",x);}

A.7B.13C.9D.10

四、選擇題(20題)61.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序

D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序

62.

63.有以下程序:

程序執(zhí)行后的輸出結(jié)果是()。

A.y=一1B.Y=0C.y=1D.while構(gòu)成無限循環(huán)

64.以下選項中合法的標識符是()。

65.設(shè)文件指針fp已定義,執(zhí)行語句fp=fopen(”61e”,”W”);后,以下針對文本文件file操作敘述的選項中正確的是()。

A.只能寫不能讀B.寫操作結(jié)束后可以從頭開始讀C.可以在原有內(nèi)容后追加寫D.可以隨意讀和寫

66.以下不能將s所指字符串正確復(fù)制到t所指存儲空間的是()。

A.do{*t++=*8++;}while(*s);

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++;}

D.for(i=0,j=0;t[i++]=s[j++];);

67.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是()。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)

68.(42)希爾排序法屬于哪一種類型的排序法()

A.交換類排序法

B.插入類排序法

C.選擇類排序法

D.建堆排序法

69.下面關(guān)于完全二叉樹的敘述中,錯誤的是______。A.A.除了最后一層外,每一層上的結(jié)點數(shù)均達到最大值

B.可能缺少若干個左右葉子結(jié)點

C.完全二叉樹一般不是滿二叉樹

D.具有結(jié)點的完全二叉樹的深度為[log2n]+1

70.

71.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

72.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上答案均正確

73.已定義以下函數(shù):

fun(int*p)

{return&p;}

該函數(shù)的返回值是()。

A.不確定的值

B.形參p中存放的值

C.形參p所指存儲單元中的值

D.形參p的地址值

74.

75.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。

A.2B.3C.4D.5

76.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

77.已定義以下函數(shù):

fun(char*p2,char*p1)

{while((*p2=*p1)!=’\0’){p1++;p2++;}}

函數(shù)的功能是()。

A.將p1所指字符串復(fù)制到p2所指向內(nèi)存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有’\0’

78.以下語句中存在語法錯誤的是()。

79.若變量已正確定義,有以下程序段:

其輸出結(jié)果是()。

A.0,0B.0,1C.1,1D.程序進入無限循環(huán)

80.在滿足實體完整性約束的條件下()。

A.一個關(guān)系中廊該有一個或多個候選關(guān)鍵字

B.一個關(guān)系中只能有一個候選關(guān)鍵字

C.一個關(guān)系中必須有多個候選關(guān)鍵字

D.一個關(guān)系中可以沒有候選關(guān)鍵字

五、程序改錯題(1題)81.下列給定的程序中,proc()函數(shù)的功能是:將str所指字符串中每個單詞的最后一個字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。

例如,若輸人:Howdoyoudo,則輸出:HoWdOyoUd0。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個位數(shù)依次放在c數(shù)的十位和千位上,b中的十位數(shù)和個位數(shù)依次放在c數(shù)的百位和個位上。例如,當a=45,b=12時,調(diào)用該函數(shù)后,c=5142。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

參考答案

1.D調(diào)用缸函數(shù)后,實參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項正確。

2.B

3.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數(shù)點的數(shù)表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數(shù),因此選頂D是正確的。

4.C解析:在C語言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。

5.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。

6.D

7.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

8.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

9.B解析:指針數(shù)組也是一種數(shù)組,所有有關(guān)的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲類型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個長度1的數(shù)組,其中數(shù)組元素為相應(yīng)存儲類型的指針,對比定義可知,選項A、C和D都不正確,所以,4個選項中選項B符合題意。

10.B#define命令是C語言中的一個宏定義命令,標識符一般使用大寫,用標識符定義一個:字符串,該標識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進行其他操作,僅僅只是替換標識符。后綴自增運算a++表示先運算,后自加。意思是遇到a++了,先把當前的a的值拿來參加運算,后面再自加。SUB(a++,b++)→(a++)*(b++)=3*4。故本題答案為B選項。

11.B

12.D靜態(tài)變量是始終存在的,當函數(shù)變量退出后,靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項。

13.C解析:在n個結(jié)點的單向鏈表(無表頭結(jié)點)中,每個結(jié)點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。

14.C

15.C解析:選項A)char*a;*a=“china”應(yīng)改為a=china;,選項B)應(yīng)該是charstr[6];D)項表述方法有錯誤。

16.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。

在選項D)賦值表達式中,對每一維的元素賦初值應(yīng)用{},而不是()。

17.A當所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。

18.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設(shè)計、詳細設(shè)計、開發(fā)和測試;維護階段是一個單獨階段,不包含在開發(fā)階段內(nèi),它是所花費用最多的一個階段。

19.D

20.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對數(shù)據(jù)進行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計算機,也就是建立關(guān)系。所以選項A錯誤。對于一個表示關(guān)系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關(guān)系的屬性名表稱為關(guān)系模式,也就是二維表的表框架,相當于記錄型。因此,選項C說法正確。

21.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標和列標互換,然后賦給數(shù)組b即可。

22.驅(qū)動模塊驅(qū)動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調(diào)用或驅(qū)動,同時被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動模塊,后者稱為承接模塊。其中驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。

23.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。

24.k<=nk++k<=n,k++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句'k++;'\ue009。

25.

解析:冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。

26.字符串a(chǎn)和b的長度之和字符串a(chǎn)和b的長度之和解析:本題首先通過第一個while循環(huán)計算字符串a(chǎn)的長度,再通過第二個循環(huán),將字符串a(chǎn)和b相連,最后返回連接后的總長度。

27.3030解析:當i=0時,s=0+a[0][0]+a[0][2]=10;i=1時,s=10+a[1][1]+a[1][1]=18;i=2時,s=18+a[2][2]+a[2][0]=30。

28.(double*)(double*)解析:本題考查強制類型轉(zhuǎn)換。函數(shù)malloc的默認返回是void*,若要使指針指向double類型,必須進行類型轉(zhuǎn)換,類型轉(zhuǎn)換格式為:(數(shù)據(jù)類型*)。

29.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。

30.00解析:關(guān)系運算符“>”的結(jié)合方式是從左向右的,所以在本題中的表達式a>b>c;從左向右開始計算,a>b的結(jié)果為“1”,接著1和c比較假,該空格處應(yīng)該填0。

31.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標準輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數(shù)格式是66。所以,輸出為B66。

32.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊列有且只有一個根結(jié)點,而且每一個結(jié)點最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。

33.cc解析:該題考查以下兩個知識點:

(1)用一個指定的標識符(即名字)來代表一個字符串,它的一般形式為#define標識符字符串

(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應(yīng)填c。

34.k=5k=5解析:由題可知fib(0)的值為0,fib(1)和fib(2)的值為1,因此,fib(3)=fib(2)+fib(1)=2;fib(4)=fib(3)+fib(2)=3;fib(5)=fib(4)+fib(3)=5。

35.###36

36.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結(jié)束標志“'\\0'”,所以共有2個字節(jié)。

37.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

38.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。

39.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達式“3<3”不成立,循環(huán)結(jié)束。

40.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。

41.D解析:本題考核的知識點是c語言中的++和--運算符,這兩種運算符是單目運算符,其運算對象可以是整型、字符型、float型和double型等基本數(shù)據(jù)類型。所以,D選項為所選。

42.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。

43.A

44.C解析:fseek()函數(shù)可以自由的改變文件位置指針的位置,即可以自由讀寫文件中的任何位置,故選項A、B、D都是錯誤的,應(yīng)該選擇C。

45.C解析:R表中只有一個域名A,有兩個記錄,分別是m和n;s表中有兩個域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。表T是由R的第一個記錄依次與s的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算符合關(guān)系代數(shù)的笛卡爾積運算規(guī)則。關(guān)系代數(shù)中,笛卡爾積運算用“×”來表示。因此,上述運算可以表示為T=R×S。

46.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設(shè)計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當軟件在使用過程中發(fā)現(xiàn)錯誤時應(yīng)加以改正;當環(huán)境改變時應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當用戶有新要求時應(yīng)該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。

47.B

48.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

49.C解析:除選項C項外,其他各項都沒有按照C語言中的函數(shù)定義規(guī)則定義函數(shù)。

50.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。

51.A

52.D解析:對二叉樹的前序遍歷是指先訪問根結(jié)點,然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左、右于樹。

53.2解析:while的執(zhí)行過程是:先計算條件表達式的值,若成立則執(zhí)行循環(huán)體,重復(fù)上述過程,直到條件表達式的值為“假”(值為零)時,退出循環(huán),并轉(zhuǎn)下一語句去執(zhí)行。本題在輸出num的值為3之后,再判斷while的循環(huán)條件3<=2,不成立,所以不再輸出num的值,故本題的答案選B。

54.B解析:本題考查函數(shù)形參與實參的傳遞規(guī)則,當形參與實參都是簡單的數(shù)據(jù)類型時,形參值的改變不能影響實參值,即本題中c的值未改變,仍然是6。

55.D解析:本題中表達式*Π*r*r非法,且未對變量Π做任何定義,所以編譯時會出現(xiàn)非法字符的錯誤信息。

56.A解析:轉(zhuǎn)文字符常量'\\xx'可以把'\\'后面的數(shù)字轉(zhuǎn)換為對應(yīng)的ASCII字符。

57.D解析:本題中的宏調(diào)用MA(1+a+b)展開后的結(jié)果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以輸出的結(jié)果是8,選項D正確。

58.B解析:break語句的作用是用刊曲循環(huán)體;Continue語句的作用是用于跳出本次循環(huán)。執(zhí)行第一次循環(huán)時,(b%3=1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當b=22時結(jié)束循環(huán),共循環(huán)8次,即a=8。

59.D解析:需求分析階段是分析用戶的需求,顯然不屬于這個階段,由此可以排除選項A.概念設(shè)計是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)及概念模型的過程,涉及不到數(shù)據(jù)的存取,所以選項D錯誤。邏輯設(shè)計是在概念設(shè)計的基礎(chǔ)上將E-R圖轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)的邏輯數(shù)據(jù)模型表示的邏輯模式,也不涉及存取問題,選項C也不對。答案為D。

60.B解析:考查函數(shù)的遞歸調(diào)用。n=0或n=1是遞歸的終止條件,然后利用已知值逐步遞推求出未知值。通過傳送地址值,在被調(diào)用函數(shù)中直接改變調(diào)用函數(shù)中的變量的值。

61.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

62.B

63.Ay一一表示Y使用后再自減l。所以最后一次Y的值為0,條件不成立但仍要執(zhí)行自減操作,Y的值為一1,跳出循環(huán)。打印Y的值一1。

64.A標識符由字母、數(shù)字或下劃線組成,并且數(shù)字不能開頭,所以答案選擇A)。

65.A考查文件操作函數(shù)fopen的基礎(chǔ)知識,以”W”方式打開文件,只能寫不能讀。選項A正確。

66.Ado{*t++=}S++;}while(*S);不能因為當*s=’、0。時,while(*s)跳出循環(huán),這樣字

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論