2021-2022年廣東省肇慶市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁(yè)
2021-2022年廣東省肇慶市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁(yè)
2021-2022年廣東省肇慶市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁(yè)
2021-2022年廣東省肇慶市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁(yè)
2021-2022年廣東省肇慶市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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)介

2021-2022年廣東省肇慶市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.定義int*swap()指的是______。

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

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

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

D.以上說(shuō)法均錯(cuò)

2.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運(yùn)算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

3.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

4.

5.一個(gè)順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動(dòng)C.不能固定D.動(dòng)態(tài)變化

6.已知一個(gè)有序表為(15,19,30,33,49,50,65,88,93,126,164),當(dāng)二分查找值為126的元素時(shí),檢索成功需進(jìn)行的比較次數(shù)為()。

A.1次B.2次C.3次D.4次

7.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba

8.十六進(jìn)制數(shù)FF.1轉(zhuǎn)換成十進(jìn)制數(shù)是()

A.255.0625B.255.125C.127.0625D.127.125

9.如果一個(gè)函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說(shuō)明語(yǔ)句后的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量().

A.為全局變量,在本程序文件范圍內(nèi)有效

B.為局部變量,只在該函數(shù)內(nèi)有效

C.為局部變量,只在該復(fù)合語(yǔ)句中有效

D.定義無(wú)效,為非法變量

10.判斷一包含n個(gè)整數(shù)的數(shù)組a[]中是否存在i、j、k滿足a[i]+a[j]+a[k]=0的時(shí)間復(fù)雜度需要()

A.O(n^2)B.O(n^2logn)C.O(n^3)D.O(nlogn)

11.以下敘述中錯(cuò)誤的是()。

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡(jiǎn)單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過(guò)指向結(jié)構(gòu)體變量的指針訪問(wèn)所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

12.若有定義“intx=12,y=8,z;”,在其后執(zhí)行語(yǔ)句“z=0.9+x/y;”,則z的值為()。

A.1B.1.9C.2D.2.4

13.有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf("%d,%d\n",strlen(a),sizeof(a));}程序運(yùn)行后的輸出結(jié)果是()。A.7,4B.4,10C.8,8D.10,10

14.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o

B.統(tǒng)計(jì)x和Y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)

C.將Y所指字符串賦給X所指定存儲(chǔ)空間

D.統(tǒng)計(jì)X和Y所指字符串中相同的字符個(gè)數(shù)

15.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

16.設(shè)變量已正確定義并賦值,下列表達(dá)式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

17.

18.執(zhí)行下列程序段后的輸出結(jié)果是()。A.3B.2C.1D.4

19.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止

D.以上三種描述都不對(duì)

20.已定義以下函數(shù)fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函數(shù)的功能是

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

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

C.對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較

D.檢查P1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0'

二、2.填空題(20題)21.下面程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

22.以下程序的運(yùn)行結(jié)果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

23.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

24.軟件工程研究的內(nèi)容主要包括:軟件開(kāi)發(fā)技術(shù)和【】。

25.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱為【】。

26.以下程序的運(yùn)行結(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=%5ld\n",k);}

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

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

for(i=1;i<5.i++)

PRINT(a+i);

printf("\n");

}

28.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過(guò)程。

29.strcat函數(shù)的作用是【】。

30.下列程序的功能:對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(c))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

31.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于______的聯(lián)系。

32.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個(gè)數(shù)中,找出最大的和最小的數(shù)據(jù),請(qǐng)?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;______;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

33.下列程序段的輸出結(jié)果是______。

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

35.下列程序的運(yùn)行結(jié)果為【】。

main()

{inta=5,b=5,y,z;

y=b-->++a?++b:a;

z=++a>b?a:y;

printf("%d,%d,%d,%d",a,b,y,z);

}

36.深度為5的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為_(kāi)_____。

37.在樹(shù)形結(jié)構(gòu)中,沒(méi)有前件的結(jié)點(diǎn)是()。

38.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個(gè)數(shù)中,找出最大的和最小的數(shù)據(jù),請(qǐng)?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

39.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

40.以下程序?qū)崿F(xiàn)帶有頭結(jié)點(diǎn)的單鏈表的建立,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域data(字符型)和指針域next,所建立鏈表的頭指針由參數(shù)phd傳回調(diào)用程序。在空格處填入正確內(nèi)容。

#include<stdio.h>

#include<stdlib,h>

structnode{

chardata;

structnode*next;

};

voidcreatlist(【】)

{

charch;

structnode*s,*r;

*phd=malloc(sizeof(structnode));

r=*phd;

ch=getchar();

while(ch!='@'){

s=malloc(sizeof(structnode));

s->data=ch;

r->next=s;

r=s;

ch=getchar();

};

r->next=【】;

}

main()

{

structnode*head;

head=NULL;

creatlist(【】)

}

三、1.選擇題(20題)41.若程序中已包含頭文件stdio.h,以下選項(xiàng)中,正確運(yùn)用指針變量的程序段是

A.int*i=NULL;scanf("%d",i);

B.float*f=NULL;*f=10.5;

C.chart='m',*c=&t;*c=&t;

D.long*L;L='\0';

42.不能把字符串"Hello!"賦給數(shù)組b的語(yǔ)句是______。

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10]={'h','e','l','l','o','!'};

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

43.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語(yǔ)句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

44.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

45.開(kāi)發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是()。

A.大型系統(tǒng)的復(fù)雜性B.人員知識(shí)不足C.客觀世界千變?nèi)f化D.時(shí)間緊、任務(wù)重

46.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的輸出結(jié)果是

A.409B.277C.1D.91

47.C語(yǔ)言允許函數(shù)類型缺省定義,此時(shí)函數(shù)值隱含的類型是()。

A.floatB.intC.longD.double

48.開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱做()。A.軟件矛盾B.軟件危機(jī)C.軟件藕合D.軟件產(chǎn)生

49.下列敘述中正確的是()。

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的聯(lián)系

B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小

D.上述三種說(shuō)法都不對(duì)

50.數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫(kù)管理系統(tǒng)C.數(shù)據(jù)庫(kù)D.數(shù)據(jù)庫(kù)管理員

51.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

52.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

53.下列關(guān)于棧的敘述中正確的是

A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧足先進(jìn)先出的線性表D.棧是先進(jìn)后出的線性表

54.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是______。

A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼

55.下列選項(xiàng)可以正確表示字符型常量的是

A.'\r'B.aC.\897D.296

56.下面的程序段運(yùn)行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=2*i+j;for(i=0;i<8;i++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

57.下列程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

58.在使用程序流程圖來(lái)表示算法時(shí),菱形用來(lái)表示_______。

A.輸入與輸出B.子程序C.判斷分支D.循環(huán)邊界

59.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8;則下列語(yǔ)句:printf("i=%08d",i);輸出的結(jié)果是()。

A.i=8,B.i=00000008,C.i=08,D.8

60.以下程序的輸出結(jié)果是main(){inta=5,b=4,c=6,d;printf((“%d\n”,d=a>b?)(a>c?a:c):(b));}

A.5B.4C.6D.不確定

四、選擇題(20題)61.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A.學(xué)生管理系統(tǒng)B.C語(yǔ)言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫(kù)管理系統(tǒng)

62.下列是用戶自定義標(biāo)識(shí)符的是()。

A._wlB.3_xyC.intD.LINE-3

63.

有以下程序:

voidf(intx,inty)

{intt;

if(x<y){t=x;x=Y;y=t;)

}

main

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

f(a,b);f(a,c);f(b,c);

printf("%d,%d,%d\n",a,b,c);

}

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

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

64.有以下程序:

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

A.0B.3C.4D.7

65.

66.

67.有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.123,abeB.abc.123C.1bc,a23D.321,cba

68.

69.以下選項(xiàng)中正確的語(yǔ)句組是()。

70.若有定義語(yǔ)句:“charS[3][10],(*k)[3],*p;”,則以下賦值語(yǔ)句正確的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

71.

下面for語(yǔ)句的循環(huán)次數(shù)為()。

for(x=1,y=0;(y!=19)&&(x<6);x++);

A.是無(wú)限循環(huán)B.循環(huán)次數(shù)小定C.最多執(zhí)行6次D.最多執(zhí)行5次

72.

73.有以下程序:

#include<stdio.h>

structSTU{charname[9];charsex;intscore[2];};

voidf(structSTUa[])

{structSTUb={"Zhao",m,85,90);

a[1]=b;

}

main()

{structSTUc[2]={{"Qian",f,95,92},{"Sun",m98,99}};

f(c);

printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);

printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[o],c[1].score

[1]);

}

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

A.Zhao,m,85,90,Sun,m,98,99

B.Zhao,m,85,90,Qian,f,95,92

C.Qian,f,95,92,Sun,m,98,99

D.Qian,f,95,92,Zhao,m,85,90

74.不能把字符串:Hello!賦給數(shù)組b的語(yǔ)句是()。

A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};

B.charb[10];b="Hello!";

C.charb[10];strcpy(b,"Hello!");

D.charb[10]="Hello!";

75.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

76.HTTP協(xié)議的消息有()兩種類型。

A.發(fā)送消息和接收消息B.請(qǐng)求消息和響應(yīng)消息C.消息頭和消息體D.實(shí)體消息和控制消息

77.某二叉樹(shù)共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個(gè),則該二叉樹(shù)的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。

A.3B.4C.6D.7

78.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf("%d",x);

}

main

{fun(7);printf("\n");}

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

A.137B.731C.73D.37

79.

80.設(shè)有以下語(yǔ)句:typedefstructTY{charC;inta{41;}CIN;

則下面敘述中正確的是()。

A.CIN是structTr類型的變量

B.TT是struct類型的變量

C.可以用,lr定義結(jié)構(gòu)體變量

D.可以用CIN定義結(jié)構(gòu)體變量

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個(gè)字符串連接起來(lái),組成一個(gè)新串,放入pt所指字符串中,例如,把2個(gè)字符串a(chǎn)bc、CD串聯(lián)起來(lái),結(jié)果是abcCD。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編一個(gè)函數(shù)intfun(inta),它的功能是:判斷a是否是素?cái)?shù),若a是素?cái)?shù),返回1;若不是素?cái)?shù),返回0。A的值由主函數(shù)從鍵盤讀入。

參考答案

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

2.D本題給出的兩個(gè)關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進(jìn)行∩、∪、一運(yùn)算。而兩個(gè)不同結(jié)構(gòu)的關(guān)系是可以進(jìn)行笛卡兒積(×)運(yùn)算的。

3.C在C語(yǔ)言中,main函數(shù)也可以有參數(shù),例如,main(intar90,char*argv),argc是指字符串的指針數(shù)組,而其他幾項(xiàng)表達(dá)不正確。

4.B

5.A

6.C

7.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對(duì)該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過(guò)fun函數(shù)的調(diào)用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項(xiàng)。

8.A

9.C

10.A

11.A函數(shù)返回值類型可以是簡(jiǎn)單類型和結(jié)構(gòu)體類型。

12.A在表達(dá)式“z=0.9+x/y”中,先計(jì)算“3.6-2”,結(jié)果為1;再計(jì)算“0.9+1”,結(jié)果為1.9。因?yàn)樽兞縵為整型,所以z的值為1。故本題答案為A選項(xiàng)。

13.Bstrlen是求字符串的長(zhǎng)度,結(jié)果為4,sizeof是求數(shù)組的長(zhǎng)度,而數(shù)據(jù)在定義時(shí)已給出長(zhǎng)度為10。

14.B由題中while(*x==*y*x!=\\n)可知此函數(shù)是統(tǒng)計(jì)x和y所指向的字符串中最前面的聯(lián)系相同的字符的個(gè)數(shù)。

15.D本題j=要是考查帶參數(shù)的宏的定義,過(guò)程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

16.A運(yùn)算符“%”的左右兩個(gè)操作數(shù)均應(yīng)為整數(shù),所以B選項(xiàng)與D選項(xiàng)錯(cuò)誤。C選項(xiàng)中不能將“x+z”的值賦給表達(dá)式“y*5”,所以C選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

17.A

18.A

19.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都有很緊密的關(guān)系。算法的空間復(fù)雜度是指執(zhí)行該算法需要的內(nèi)存空間,并非算法程序中指令的條數(shù)。算法一般應(yīng)該具有以下4個(gè)特征:可行性、確定性、有窮性和擁有足夠情報(bào)。其中,有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止,否則可能失去實(shí)際意義。

20.A解析:fun()函數(shù)中聲明了兩個(gè)字符串指針作為形參,在其函數(shù)體中用了一個(gè)while循環(huán),首先while括號(hào)內(nèi)表達(dá)式*p2=*p1是將p1所指的內(nèi)容賦值到P2所指的存儲(chǔ)空間中,然后再判斷是否為'\\0',表達(dá)式的值為真時(shí),執(zhí)行循環(huán)體,指針p1和指針P2分別下移一位,當(dāng)p1指向字符'\\0'時(shí),表達(dá)式的值為假,循環(huán)結(jié)束,故此函數(shù)的功能是將p1所指字符串復(fù)制到p2所指內(nèi)存空間中。

21.1-21,-2解析:考查嵌套的循環(huán)結(jié)構(gòu)。題中外層while循環(huán)的循環(huán)條件是\ue008y--!=-1\ue009,即y>=0;內(nèi)層do厀hile循環(huán)的循環(huán)條件是y--,即y-->0,y>=1。

22.149161,4,9,16,解析:分析程序執(zhí)行過(guò)程,第1次循環(huán),k=1時(shí),此時(shí)s(1)=1*1=1,然后k的值加1;第2次循環(huán),k=2時(shí),s(2)=2*2=4,然后k的值加1;第3次循環(huán),k=3時(shí),s(3)=3*3=9,然后k的值加1;第4次循環(huán),k=4時(shí),s(4)=4*4=16,然后k的值加1;當(dāng)k=5時(shí),條件不滿足,退出循環(huán)。

23.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

24.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開(kāi)發(fā)與維護(hù):軟件工程學(xué)的主要研究對(duì)象包括軟件開(kāi)發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面。即軟件工程研究的內(nèi)容主要包括:軟件開(kāi)發(fā)技術(shù)和軟件工程管理。

25.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個(gè)對(duì)象上的各種操作。

26.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

27.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時(shí),調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時(shí),調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時(shí),調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時(shí),調(diào)用PRINT(4),P(4)輸出4,theend。

28.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)

29.連接兩個(gè)字符數(shù)組中的字符連接兩個(gè)字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個(gè)字符數(shù)組中的字符串。

30.分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒(méi)有換行),所以條件為(c=getchar())!='\\n'。\r\n\r\n

31.1對(duì)多(或1:N)1對(duì)多(或1:N)

32.

33.morningclassmorningclass解析:本題考查了兩個(gè)知識(shí)點(diǎn):①“++,--”運(yùn)算后綴形式是先使用變量原來(lái)的值,使用完后再使其增1或減1;②在switch語(yǔ)句中,當(dāng)n='c'時(shí),執(zhí)行“case'c'”,輸出morning;因?yàn)榇司渲袥](méi)有break語(yǔ)句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。

34.88解析:本程序定義了3個(gè)指針變量p1、p2、p,并且將,、b的地址分別賦給P1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語(yǔ)句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲(chǔ)單元,賦值語(yǔ)句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。

35.7467

36.1616解析:滿二叉樹(shù)的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。

37.根結(jié)點(diǎn)根結(jié)點(diǎn)

38.q<p+nq<p+n解析:考查對(duì)于函數(shù)的地址傳遞的掌握情況。通過(guò)地址傳遞可以在被調(diào)函數(shù)中對(duì)調(diào)用函數(shù)中的變量進(jìn)行引用。

39.k-1k\r\n-1解析:顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j]。開(kāi)始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]還位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個(gè)空框處應(yīng)填入k。

40.structnode**phdNULL&head

41.D解析:選項(xiàng)A定義了一個(gè)整型變量i,并且初始化讓它指向NULL,接著通過(guò)seanf()函數(shù),改變i指向的存儲(chǔ)空間的值,選項(xiàng)A中首先定義了整型指針變量i并初始化為NULL,即表示指針i不指向任何內(nèi)存,即此時(shí)程序還沒(méi)有為i在內(nèi)存中開(kāi)辟存儲(chǔ)單元,而在scanf()函數(shù)中笫;個(gè)參數(shù)是地址參數(shù),顯然在這里i不在表示地址,所以下面的scanf('%d',i)語(yǔ)句是不正確的,故選項(xiàng)A不正確;選項(xiàng)B定義了一個(gè)浮點(diǎn)型變量f并初始化讓它指向NULL,而當(dāng)一個(gè)指針變量指向NULL以后不能在給它賦值,而按下來(lái)的程序中為其賦了一值,故選項(xiàng)B錯(cuò)誤;選項(xiàng)C中首先定義了一個(gè)字符變量t并給它賦初值\'m\',然后定義一個(gè)字符型指針c并讓它指向了變量t,這一部分正確,然后接著用了一個(gè)語(yǔ)句“c=&t;”應(yīng)該特該語(yǔ)句中c前的“*”去掉,故選項(xiàng)c運(yùn)用指針變量不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

42.B解析:在C語(yǔ)言中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,因此,“hello!”和“Hello!”是兩個(gè)不同的字符串。

43.B解析:選項(xiàng)A的錯(cuò)誤在于,先已經(jīng)把q結(jié)點(diǎn)給釋放,無(wú)法再進(jìn)行余下語(yǔ)句了:選項(xiàng)C和D的錯(cuò)誤在于因?yàn)橛辛藂=(*q).next做了賦值,則free(q)釋放了原來(lái)q后面的一個(gè)結(jié)點(diǎn)。

44.D解析:文件狀態(tài)檢測(cè)函數(shù)feof(fp)的功能是:測(cè)試所指的文件的位置指針是否已達(dá)到文件尾,如果已到達(dá)文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。

45.AA)【解析】隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加,研制周期顯著變長(zhǎng),正確性難以保證,軟件開(kāi)發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟中#危機(jī)”。

46.D解析:本題是計(jì)算50之內(nèi)的自然數(shù)相加之和,題中if語(yǔ)句括號(hào)中的條件表達(dá)式!(i%5)&&!(i%3)表明只有能同時(shí)被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個(gè)條件的只有3個(gè)數(shù),15,30,45,因?yàn)閟的初始值為1,所以s=1+15+30+45=91。故正確答案為D)。

47.B解析:在C語(yǔ)言中,對(duì)于自定義函數(shù)要遵循“先定義,后使用”的規(guī)則,如定義時(shí),不指定函數(shù)類型,C編譯系統(tǒng)都默認(rèn)函數(shù)的返回值是int型。

48.BB)【解析】隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加,研制周期顯著變長(zhǎng),正確性難以保證,軟件開(kāi)發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了入們難以控制軟件發(fā)展的局面,即所謂的“軟件危機(jī)”。

49.C解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對(duì)象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對(duì)象是以數(shù)據(jù)為中心的,操作圍繞對(duì)其數(shù)據(jù)所需做的處理來(lái)設(shè)置,沒(méi)有無(wú)關(guān)的操作。從模塊的獨(dú)立性考慮,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。由于完成對(duì)象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對(duì)象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對(duì)象之間的耦合通常比較松。所以,選項(xiàng)A與B錯(cuò)誤,選項(xiàng)C正確。

50.B解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是負(fù)責(zé)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)的軟件。數(shù)據(jù)庫(kù)管理系統(tǒng)建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行,最終都必須通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)。另外,數(shù)據(jù)庫(kù)管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫(kù)的安全保護(hù)工作,按照數(shù)據(jù)庫(kù)管理員所規(guī)定的要求,保證數(shù)據(jù)庫(kù)的完整性和安全性。

51.D解析:表達(dá)式a+=a-=a*a看起來(lái)復(fù)雜,其實(shí)將它分成兩個(gè)表達(dá)式來(lái)計(jì)算就簡(jiǎn)單了:①第一個(gè)表達(dá)式(a-=a*a)=(a=a-a*a=-12);②第二個(gè)表達(dá)式(a+=a-=a*a)=(a=a+a=-24)。

52.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語(yǔ)言不允許用賦值表達(dá)式對(duì)字符數(shù)組賦值,如下面的語(yǔ)句就是非法的:strl=“China”,如果想把“China”這5個(gè)字符放到數(shù)組strl中,除了逐個(gè)地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個(gè)字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語(yǔ)句來(lái)實(shí)行賦值(將str2的值傳給strl):strl=str2;不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長(zhǎng)度不應(yīng)小于字符串2的長(zhǎng)度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

53.D解析:對(duì)棧可進(jìn)行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能在棧頂,是一種特殊的線性表.所以棧是先進(jìn)后出的線性表。

54.D解析:將—個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。

55.A解析:C語(yǔ)言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來(lái)作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號(hào)括起來(lái),所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過(guò)了字符常量的表示范圍。

56.C解析:本題主要考查的用二維數(shù)組首地址和下標(biāo)來(lái)引用二維數(shù)組元素的方法。通過(guò)分析可知,程序中的雙重循環(huán)定義了一個(gè)如下的二維數(shù)組:

由于數(shù)組的下標(biāo)是從0開(kāi)始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對(duì)應(yīng)位置的元素。

57.A解析:轉(zhuǎn)義字符'\\n'表示換行,'\\\\'表示反斜杠,函數(shù)strlen()是計(jì)算字符串的長(zhǎng)度,不包括文件結(jié)束標(biāo)志('\\0'),函數(shù)sizeof()統(tǒng)計(jì)字符串所占的字節(jié)數(shù)。

58.C解析:美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定了一些常用的流程圖符號(hào),其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。

59.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時(shí),在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。

60.C解析:在C語(yǔ)言中問(wèn)號(hào)表達(dá)式(如:a>c?a:c;)的計(jì)算規(guī)則為:如果a>c為真,那么表達(dá)式的值為a的值;否則表達(dá)式的值為c的值。本題

溫馨提示

  • 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)論