2021-2022年內(nèi)蒙古自治區(qū)包頭市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)包頭市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)包頭市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)包頭市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)包頭市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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年內(nèi)蒙古自治區(qū)包頭市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}運(yùn)行時(shí),若輸入123450<回車>,由輸出結(jié)果是()。A.6566456B.66656C.66666D.6666656

3.若有說(shuō)明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

4.若有定義語(yǔ)句“chars[10]=“1234567\0\0”;”,則Strlen(s)的值是()。

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

5.將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

6.C語(yǔ)言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。

A./B.!C.%D.==

7.

8.

9.

10.以下是if語(yǔ)句的基本形式:

if(表達(dá)式.語(yǔ)句

其中“表達(dá)式”()。

A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式

11.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}

A.SOB.SPC.SPOPKD.SHOB

12.下面結(jié)構(gòu)中最適于表示稀疏無(wú)向圖的是()。

A.鄰接矩陣B.逆鄰接表C.鄰接多重表D.十字鏈表

13.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

14.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

15.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9

16.下面C程序段中count++語(yǔ)句執(zhí)行的次數(shù)為()A.15B.16C.31D.32

17.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

18.當(dāng)接受用戶輸入的含有空格的字符串時(shí),應(yīng)使用()函數(shù)。

A.gets()B.getchar()C.scanf()D.printf()

19.有以下程序

#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

20.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”

二、2.填空題(20題)21.若有以下定義和語(yǔ)句,則使指針p指向值為36的數(shù)組元素的表達(dá)式是【】。

inta[10]={19,23,44,17,37,28,49,36},*p;

p=a;

22.順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置______的存儲(chǔ)單元中。

23.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),如果是素?cái)?shù),函數(shù)返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

24.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正常運(yùn)行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

printf("%If\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

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

main()

{charc=′z′;

printf("%c",c-25);}

26.二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。

27.閱讀下列程序,則在執(zhí)行后,程序的運(yùn)行結(jié)果為#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

28.數(shù)據(jù)的______結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空問(wèn)中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。

29.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒(méi)有______。

30.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

31.以下條件表達(dá)式可計(jì)算:1+|a|的值,請(qǐng)?zhí)羁?。a>=0?【】:【】

32.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一的聯(lián)系,一對(duì)多的聯(lián)系與多對(duì)多的聯(lián)系。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)學(xué)生只屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。

33.Fibonacci數(shù)列中的頭兩個(gè)數(shù)是1和1,從第3個(gè)數(shù)開始,每個(gè)數(shù)等于前兩個(gè)數(shù)之和。下述程序計(jì)算此數(shù)列的前20個(gè)數(shù),且每行輸出5個(gè)數(shù),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intf,f1=1,f2=1;

inti;

printf("%6d%6d",f1,f2);

for(i=3;i<=20;i++)

{f=【】;

printf("%6d",f);

if(【】)

printf("\n");

f1=f2;

【】;

}

}

34.以下程序的功能是建立—個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(struct

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

36.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。

37.以下程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

38.下列程序運(yùn)行后的輸出結(jié)果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

39.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對(duì)象。

40.執(zhí)行以下程序后的輸出結(jié)果是【】。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

三、1.選擇題(20題)41.有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i=f(fa,fb,2);pfintf(“%d\n”,i);}程序運(yùn)行后的輸出結(jié)果是

A.-4B.1C.4D.8

42.以下函數(shù)調(diào)用語(yǔ)句中實(shí)參的個(gè)數(shù)是()func((exp1,exp2),(exp3,exp4,exp5));

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

43.s1和s2已正確確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指字符串大于s2所指字符串時(shí),執(zhí)行語(yǔ)句S;則以下選項(xiàng)中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S;

D.if(stremp(s1,s2)>0)S;

44.若i是int型變量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的輸出結(jié)果是______。

A.**4##5B.##4**5C.**4**5D.##4##5

45.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}

A.1B.4C.7D.5

46.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);

A.aB.bC.cD.d

47.X、Y、Z被定義為mt型變量,若從鍵盤給X、Y、2輸入數(shù)據(jù),正確的輸入語(yǔ)句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

48.表達(dá)式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

49.若t為double類型,表達(dá)式t=1,t+5,t++;的值是______。

A.1B.6C.2D.1

50.假設(shè)a和b為int型變量,則執(zhí)行以下語(yǔ)句后,b的值為______。a=1;b=10;do{b-=a;a++;}while(b--<0);

A.9B.-2C.-1D.8

51.以下程序的輸出結(jié)果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

52.下面程序的輸出結(jié)果為______。#include<string.h>main(){charP[17]="abc"="ABC".STR[50]="xyz";strcpy(str,strcat(p1,p2));printf(%s,str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

53.有以下程序:#include<stdio.h>intf(inta)returna%2;}main()ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];prinff("%d\n",d);程序運(yùn)行后的輸出的結(jié)果是().

A.9B.11C.19D.21

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

A.線性鏈表的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲(chǔ)在其他元素的前面

C.線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存儲(chǔ)在其他元素的前面

D.線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存儲(chǔ)順序也是任意的

55.有以下程序#include<stdio.h>intfun(inta,intB){if(b=0)returna;elsereturn(fun(--a,--B));}main(){pdntf("%d\n",fun(4,2));}程序的運(yùn)行結(jié)果是()。

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

56.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

57.設(shè)x為int型變量,執(zhí)行以下語(yǔ)句,x=10;x+=x-=x-x;x的值為______。

A.10B.20C.30D.40

58.在說(shuō)明語(yǔ)句int*f()中,標(biāo)識(shí)符f代表的是______。

A.—個(gè)用于指向整型數(shù)據(jù)的指針變量

B.—個(gè)用于指向一維數(shù)組的行指針

C.—個(gè)用于指向函數(shù)的指針變量

D.一個(gè)返回值為指針型的函數(shù)名

59.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

60.設(shè)有如下三個(gè)關(guān)系表:

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

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

四、選擇題(20題)61.有如下說(shuō)明

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

則數(shù)值為9的表達(dá)式是

A.*p+9B.*(p+8)C.*p+=9D.p+8

62.

63.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。

A.隊(duì)頭指針是固定不變的

B.隊(duì)頭指針一定大于隊(duì)尾指針

C.隊(duì)頭指針一定小于隊(duì)尾指針

D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

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

A.在棧中只能插入數(shù)據(jù)

B.在棧中只能刪除數(shù)據(jù)

C.棧是先進(jìn)先出的線性表

D.棧是先進(jìn)后出的線性表

65.

66.

67.有以下程序:

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

A.0304B.2050C.3344D.3040

68.

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

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

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

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

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

70.

71.有以下程序:

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

A.16B.1C.32D.0

72.

73.模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的一般度量標(biāo)準(zhǔn)是

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法

74.

75.有以下程序語(yǔ)句,正確的是()。

chara,b,c*d;

A)a=′56′;B)b=′\xbc′;

C)c=′\0xab′;D)d=′\0127′;

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

A.EOFB.-lC.非零值D.0

77.有以下程序:

從第一列開始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車符.:

2743<CR>

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

A.66877B.668966C.6677877D.6688766

78.有以下程序:

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

79.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3.4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

80.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun(),其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使用庫(kù)函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串的后面。例如,分別輸入下面兩個(gè)字符串:“FirstString——”“SecondString”程序輸出:“FirstString——SecondString”注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:

參考答案

1.C

2.A根據(jù)題意,當(dāng)s=1時(shí),輸出65;當(dāng)s=2時(shí),輸出6;當(dāng)S=3時(shí),則輸出64;當(dāng)S=4時(shí),輸出5;當(dāng)s=5時(shí),輸出6;當(dāng)s=0時(shí),程序直接退出。所以最后答案為6566456,A選項(xiàng)正確。

3.D解析:“&”是求址運(yùn)算符,“*”是指變量說(shuō)明符。選項(xiàng)A)、B)應(yīng)改為scanf('%d',p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。

4.Astrlen函數(shù)計(jì)算字符串長(zhǎng)度時(shí),遇到結(jié)束標(biāo)識(shí)為止,且長(zhǎng)度不包括結(jié)束標(biāo)識(shí)。本題中的字符串從第1個(gè)字符開始,遇到第1個(gè)結(jié)束標(biāo)識(shí)‘\\0’為止,注意不占字符串長(zhǎng)度,所以字符串長(zhǎng)度為7。故本題答案為A選項(xiàng)。

5.C將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串,選用strcat函數(shù)來(lái)連接。

6.C

7.C

8.A

9.D

10.D解析:本題主要考查關(guān)于if語(yǔ)句的說(shuō)明,if后面圓括號(hào)中的表達(dá)式,可是任意合法的C語(yǔ)言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類型的數(shù)據(jù)(如:整型、實(shí)型、字符型、指針型等。)

11.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串中的第一個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

12.C

13.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。

14.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中“P+6”指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,即指向uE63,存放的是b[6]的地址。

15.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。

16.A

17.B第一個(gè)for循環(huán)的作用是讓p指向每行的首地址,第二個(gè)for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。

18.A

19.D解析:本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因?yàn)?7/2)>1,所以執(zhí)行f(3),以此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時(shí)x值為3,然后退出f(1.5)返回f(3),打印x值即7。所以選D。

20.D在C語(yǔ)言中,字符串常量是用雙引號(hào)標(biāo)注的字符序列,因此B選項(xiàng)和C選項(xiàng)不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符以“\\”開頭。A選項(xiàng)中包含3個(gè)前兩個(gè)(\\\\)代表一個(gè)“\\”字符,后面一個(gè)為“””。因?yàn)閈\”被看作一個(gè)“””,所以該字符串缺少一個(gè)結(jié)束的“””。因此A選項(xiàng)不正確。D選項(xiàng)的兩個(gè)“”之間沒(méi)有任何字符,代表的是一個(gè)空串,是合法的字符串常量,因此D選項(xiàng)正確。B選項(xiàng)的abc應(yīng)該使用雙引號(hào)標(biāo)注。故本題答案為D選項(xiàng)。

21.p=p+7或p+=7p=p+7或p+=7解析:本題考查通過(guò)指針引用數(shù)組元素。值為36的數(shù)組元素在a數(shù)組中是第8個(gè)元素,即a[7]。在程序中,p=a;語(yǔ)句將數(shù)組a的首地址賦給了指針變量p,則可以用*(p+i)來(lái)表示數(shù)組元素,*(p+i)與a[i]等價(jià),a[7]可表示為*(p+7)。要使指針p指向a[7],可以用p=p+7移動(dòng)指針,故填寫p=p+7或p+=7。

22.相鄰相鄰

23.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素?cái)?shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語(yǔ)句,若形參a對(duì)i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對(duì)i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。

24.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函數(shù)中調(diào)用了一個(gè)max函數(shù),而max函數(shù)是在調(diào)用之后定義的,所以要求填空的內(nèi)容應(yīng)該是對(duì)函數(shù)進(jìn)行聲明的語(yǔ)句。由max函數(shù)的定義可知此函數(shù)是double型的,因此空格處應(yīng)該填doublemax或externdoublemax。

25.aa解析:'z'的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后,得97,以字符形式輸出是a。

26.中序中序解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問(wèn)根

27.D

28.邏輯邏輯解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。

29.前件前件

30.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

31.1+a1-a1+a,1-a解析:考查條件運(yùn)算符的使用。因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對(duì)值之和,所以根據(jù)數(shù)學(xué)中求絕對(duì)值的規(guī)則;當(dāng)a>=0時(shí),絕對(duì)值取本身,當(dāng)a<0時(shí),絕對(duì)值取相反數(shù),再結(jié)合條件運(yùn)算符的計(jì)算規(guī)則,可得到本題的答案為a>=0。

32.一對(duì)多一對(duì)多解析:實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一、一對(duì)多與多對(duì)多。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)教師只歸屬于一個(gè)學(xué)生,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于一對(duì)多的聯(lián)系。

33.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用來(lái)保存前兩個(gè)數(shù)之和,并作為第三個(gè)數(shù),計(jì)算后把第二個(gè)數(shù)(f2)賦給f1,第三個(gè)數(shù)(f)賦給f2,再執(zhí)行for循環(huán)。

34.解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。

35.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。

36.封裝封裝

37.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語(yǔ)言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒(méi)有break語(yǔ)句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。

38.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

39.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的?duì)象稱為類,類是對(duì)象的抽象,對(duì)象是類的實(shí)例。

40.a=14a=14解析:逗號(hào)表達(dá)式的值是以逗號(hào)分隔的最后一個(gè)表達(dá)式的值。所以題目中的語(yǔ)句a=(3*5,a+4);就等價(jià)于a=a+4;。故本題輸出結(jié)果是a=14。

41.C解析:函數(shù)f()有3個(gè)形式參數(shù)f1、f2和x,其中f1、f2是指向函數(shù)的指針變量。在main()函數(shù)中執(zhí)行了函數(shù)調(diào)用“f(fa,fb,2)”,從而使f()的形式參數(shù)f1指向了fa,形式參數(shù)f2指向了fb,把實(shí)參2傳給了形參變量x。函數(shù)f()中的return語(yǔ)句相當(dāng)于“fb(2)-fa(2)”(fb(2)的返回值為2*2*2=8,fa(2)返回值為2*2=4)即(8-4),值為4。函數(shù)f()執(zhí)行后把返回值4賦給了i,輸出i的值是4。

42.B

43.D字符串的比較不能直接用關(guān)系運(yùn)算符,可用字符串比較函數(shù)strcmp(char.s1,char*s2)實(shí)現(xiàn),其比較規(guī)則是對(duì)兩個(gè)字符串自左至右逐個(gè)字符按其對(duì)應(yīng)的ASCII碼值進(jìn)行比較,直到出現(xiàn)不同的字符或遇到'\\0'為止。若對(duì)應(yīng)字符都相同,則兩字符串相等;若出現(xiàn)不相同的字符,則以第一個(gè)不相同的字符的比較結(jié)果為準(zhǔn)。比較的結(jié)果由函數(shù)值帶回。當(dāng)s1<s2時(shí),返回負(fù)數(shù);當(dāng)s1=s2時(shí),返回0;當(dāng)s1>s2時(shí),返回正數(shù)。所以在此題中要使得s1所指串大于s2所指串,就必定使得strcmp(s1,s2)>0。

44.B解析:函數(shù)printf中的參數(shù)是三目條件表達(dá)式,循環(huán)控制變量i值為4時(shí),i%2為0,格式控制字符串為'##%d\\n',輸出為##4;循環(huán)控制變量i值為5時(shí),i%2為1,格式控制字符串為'**%d\\n',輸出為*5,兩次輸出不在同一行。

45.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長(zhǎng)度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。

46.A解析:C函數(shù)的參數(shù)傳遞方式采用按值傳遞,不能通過(guò)調(diào)用函數(shù)改變形參指針本身的值,只能改變指針?biāo)缸兞康闹怠U{(diào)用point函數(shù)時(shí),將實(shí)參指針p的值(b數(shù)組的首地址)傳給了形參指針P,P+=3運(yùn)算使形參指針指向字符d,但并不能改變main函數(shù)中p的值,所以本題正確答案應(yīng)該是選項(xiàng)A)。

47.B解析:C語(yǔ)言中沒(méi)有輸入輸出語(yǔ)句,它是通過(guò)C語(yǔ)言提供的函數(shù)來(lái)實(shí)現(xiàn)的,本題C中,應(yīng)為變量地址。

48.D解析:*、/和%的優(yōu)先級(jí)要高于+和—,同級(jí)別的運(yùn)算符從左至右運(yùn)算。所以本題首先計(jì)算5/2和5%2,雖然我們都知道5/2的結(jié)果應(yīng)該是2.5,但C語(yǔ)言中規(guī)定了兩個(gè)整數(shù)相除的結(jié)果為整數(shù),而且是截尾取整,所以5/2的結(jié)果是2;5%2表示的是5除以2所得的余數(shù),其結(jié)果為1。計(jì)算完后,表達(dá)式變?yōu)?.6-2+1.2+1,從左至右計(jì)算不難得出結(jié)果為3.8,故應(yīng)該選擇D。

49.D

50.D解析:本題程序第一輪循環(huán)后b的值為9,在進(jìn)行循環(huán)條件測(cè)試時(shí),先取b的現(xiàn)值9與0比較,然后再將b減1。由于9<0不成立,因此循環(huán)結(jié)束,這時(shí)b的值已變成8,本題正確答案為D。

51.C解析:C語(yǔ)言中如果邏輯與運(yùn)算符左邊的表達(dá)式為假,右邊的表達(dá)式就不再運(yùn)算了,(++a<0)=(0<0)=0,所以邏輯與右邊的表達(dá)式就不參與運(yùn)算,沒(méi)有改變b的值。因此輸出b=1,a=0。

52.B解析:strcpy(strl,s1):作用是將字符串s1拷貝到字符數(shù)組strl中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組pl,p2,str,strcat(pl,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過(guò)strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。

53.A解析:在主函數(shù)main中,f(s[i])為for語(yǔ)句的循環(huán)終止條件,當(dāng)f函數(shù)返回非零值時(shí),則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán),輸出d的值。程序的運(yùn)行步驟為:當(dāng)i=0時(shí),f(s[i])返回值為1,執(zhí)行d+=1,d=1;當(dāng)i=1時(shí),將s[1];3傳給形參變量s,f函數(shù)返回a%2=1,執(zhí)行d=d+s[1]=1+3=4;當(dāng)i=2時(shí),將s[2]=5傳給形參變量a,f函數(shù)返回a%2=1,執(zhí)行d=d+s[2]=4+5=9;當(dāng)i=3時(shí),將a[3]=2傳給形參變量a,f函數(shù)返回a%2=0,終止循環(huán),輸出d的值9。

54.DD.【解析】在線性鏈表中,各元素在存儲(chǔ)空間中的位置是任意的,各元素的順序也是任意的,依靠指針來(lái)實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。

55.B

56.CC。【解析】結(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

57.B解析:本題x=10,表達(dá)式“x+=x-=x-x;”的求解步驟如下:先進(jìn)行x-=x-x的運(yùn)算,相當(dāng)于)x=x-(x-x)=x=10;再進(jìn)行x+=x的運(yùn)算,即x=x+x=20。

58.D解析:返回指針值的函數(shù),其—般定義形式為:類型標(biāo)識(shí)符*函數(shù)名(參數(shù)表);例如:int*f(x,y);其中,f是函數(shù)名,調(diào)用它以后能得到—個(gè)指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)為別為*運(yùn)算符和()運(yùn)算符,而()優(yōu)先級(jí)高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個(gè)函數(shù)前面有一個(gè)*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

59.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。

60.C解析:本題考查數(shù)據(jù)庫(kù)的關(guān)系代數(shù)運(yùn)算。R表中只有一個(gè)域名A,有兩個(gè)記錄(也叫元組),分別是m和n;S表中有兩個(gè)域名,分別是B和C,其所對(duì)應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個(gè)記錄依次與S的所有記錄組合,然后再由R的第二個(gè)記錄與S的所有記錄組合,形成的一個(gè)新表。上述運(yùn)算恰恰符合關(guān)系代數(shù)的笛卡兒積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運(yùn)算用“×”來(lái)表示。因此,上述運(yùn)算可以表示為T=R×S。因此,本題的正確答案為C。

61.B本題主要考查指針變量對(duì)數(shù)組元素的引用。在本題中,首先定義了一個(gè)一維數(shù)組a,并對(duì)其進(jìn)行初始化操作,然后定義了一個(gè)同類型的指針變量p,使其指向數(shù)組a的首地址。

通過(guò)指針引用數(shù)組元素主要分如下兩種情況。

(1)引用數(shù)組a首元素的常用等價(jià)方式有:

①獲取首元素地址:a,p;

②訪問(wèn)首地址的值:a[0],p[0],*a,*p。

(2)引用數(shù)組第i個(gè)元素(從0開始計(jì)數(shù))的常用等價(jià)方式有:

①獲取i元素地址:a+i,&a[i],p+i,&p[i];

②訪問(wèn)i運(yùn)算的值:*(a+i),a[i],*(p+i),p[i]。

題目要求訪問(wèn)值為9的元素,從數(shù)組中不難看出該元素是數(shù)組的第8個(gè)元素(從0開始計(jì)數(shù)),結(jié)合上面的分析可以知道,用指針變量p引用數(shù)組a中的第8個(gè)元素的值的方法可以為*(p+8)或p[8],因此本題的正確答案選B。

62.D

63.D循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針。

64.D

65.B

66.D

67.D第一次循環(huán)i為0,i%2為o,執(zhí)行switch(a[O]%2)中的ca∞0語(yǔ)句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)i的值為l,i%2為1,執(zhí)行ca∞1:a[i]=0;所以a[1]的值變成0;第三次循環(huán)i的值為2,i%2為0,執(zhí)行switch(a[2]%2)中的ca∞1語(yǔ)句后的內(nèi)容a[2]一一,8[2]的值變成4;第四次循環(huán)i的值為3,i%2為1,執(zhí)行casel:a[i]=0;所以a[3]的值變成0。

68.D

69.C本題考查對(duì)面向?qū)ο蟮睦斫?,面向?qū)ο蟮某绦蛟O(shè)計(jì)是對(duì)象模擬問(wèn)題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴性小,通過(guò)消息來(lái)實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。

70.A

71.B無(wú)符號(hào)整型變量a的值為8,二進(jìn)制表示為00001000,右移3位后為00000001,即十進(jìn)制的l,所以輸出1。

72.A

73.C本題考查衡量模塊獨(dú)立性的標(biāo)準(zhǔn)

溫馨提示

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