2021-2022年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁
2021-2022年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁
2021-2022年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁
2021-2022年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁
2021-2022年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>structord{intX,y;)dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序運行后的輸出結(jié)果是()。A.1,2B.4,1C.3,4D.2,3

2.對于C語言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

3.圖的深度優(yōu)先遍歷類似于二叉樹的_______。

A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷

4.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

5.設(shè)有以下函數(shù):

voidfun(intn,char*$s){……}

則下面對函數(shù)指針的定義和賦值均正確的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char);nf=&fun;

6.

7.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

8.在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點的是A.一致性B.分類性C.多態(tài)性D.標識唯一性

9.有以下程序

#include<stdio.h>

main()

{structnode{intn;structnode*next;}*p;

structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};

p=x:

printf("%d,",p->n);

printf("%d\n",P->next->n);

}

程序運行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6

10.下列選項中不是字符常量的是()。A.A.'\v'

B.'\x2a'

C.'a'

D."\0"

11.

12.設(shè)一棵滿二叉樹共有15個結(jié)點,則在該滿二叉樹中的葉子結(jié)點數(shù)為()

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

13.

14.棧和隊列的共同特點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

15.以下選項中的表達式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

16.設(shè)變量已正確定義并賦值,以下正確的表達式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

17.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

18.若有定義語句:“intkl一10,k2=20;”,執(zhí)行表達式(kl=kl>k2)(k2=k2>k1)后,kl和k2的值分別為()。

A.0和1B.0和20C.10和1D.10和20

19.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

20.在深度為5的滿二叉樹葉中,葉子結(jié)點的個數(shù)為()。

A.32B.31C.16D.15

二、2.填空題(20題)21.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

22.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設(shè)計屬于______中的一個階段。

23.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

24.下列程序的運行結(jié)果是______。

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

25.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:

請?zhí)羁?/p>

#defineN4

voidrotate(inta[][])

{inti,j,t;

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

for(j=0;【】;j++)

{t=a[i][j];【】;a[j][i]=t;}

}

26.請用位運算實現(xiàn)下述目標(設(shè)16位二進制數(shù)的最低位為零位):

(1)輸出無符號正整數(shù)m的第i個二進制位的數(shù)值。

(2)將m的第i個二進制位置1,其余的位不變,然后輸出m。

#include"stdio.h"

【】

main()

{

unsignedk,i,m=0;

scanf("%d%d",&m,&i);

k=【】;

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

k=pow(2,i);

m=【】;

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

}

27.在對文件進行操作的過程中,若要使文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。

28.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

29.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

30.有以下程序:

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

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

}

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

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

32.設(shè)一棵完全二叉樹共有700個結(jié)點,則在該二叉樹中有【】個葉子結(jié)點。

33.性結(jié)構(gòu)中,第一個結(jié)點沒有前驅(qū)結(jié)點,其余每個結(jié)點有且只有【】個前驅(qū)結(jié)點;最后一個結(jié)點沒有后繼結(jié)點,其余每個結(jié)點有且只有【】個后繼結(jié)點。

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

#include<stdio,h>

main()

charc1,c2;

for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

35.以下程序運行后的輸出結(jié)果是【】。(注:如果結(jié)果中含有回車,可加一空格寫在一行,例如:

111

111

111

可以寫成:111111111。

#include<stdio.h>

mala()

{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

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

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

36.若有定義語句:inta=5;,則表達式:a++的值是【】。

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

#include<stdio.h>

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

38.在結(jié)構(gòu)化設(shè)計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實際上對應(yīng)一個處理模塊。

39.以下程序運行后的輸出結(jié)果是______。

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

40.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

三、1.選擇題(20題)41.以下敘述不正確的是______。

A.分號是C語言的必要組成部分

B.C程序的注釋可以寫在句的后面

C.函數(shù)是C程序的基本單位

D.主函數(shù)的名字不一定用main表示

42.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()

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

43.一個算法應(yīng)該具有“確定性”等五個特性,下面對另外四個特性的描述中錯誤的是()。

A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性

44.在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

45.在ASCII代碼表中每一個大寫字母比它相應(yīng)的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

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

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

47.設(shè)有以下語句:charX=3,y=6,z;z=XY<<2;則2的二進制值是

A.10100B.O0011011C.11100D.11000

48.下面程序的輸出結(jié)果是#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

49.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是

A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

50.以下只有在使用時才為該類型變量分配存儲單元的存儲類說明是______。

A.auto和static

B.auto和register

C.register和static

D.extern和register

51.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是

A.p=q;B.*p=*q;C.n=*q;D.p=n;

52.有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}main(){char*p[5]={"abc"

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

53.若有代數(shù)式“ex+y2+y/x”,則正確的C語言表達式是()

A.ex+y*y+y/x

B.expx+pow(y,2)+y/x

C.exp(x)+pow(y,2)+y/x

D.ex+y2+y/x

54.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復制到字符串str3之后

C.將字符串str2復制到字符串str1中后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串str1復制到字符串str3中

55.如果對一個關(guān)系實施了一種關(guān)系運算后得到了一個新的關(guān)系,而且新的關(guān)系中屬性個數(shù)少于原來關(guān)系中屬性個數(shù),這說明所實施的運算關(guān)系是()

A.選擇B.投影C.連接D.并

56.若有定義:"inta[2][3];"則對a數(shù)組的第i行第j列無素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

57.下面不屬于軟件設(shè)計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

58.定義結(jié)構(gòu)體數(shù)組:structstu{intnum;charname[20];}x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結(jié)果為()。

A.2A3N4A5UB.1I2A3H4IC.1A2N3A4UD.2H3A4H5I

59.若有下面的說明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;

A.30B.29C.24D.22

60.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序運行后的輸出結(jié)果是______。

A.abcdefB.gfedcbaC.gbcdefaD.abedcfg

四、選擇題(20題)61.假設(shè)a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8

62.下面的函數(shù)調(diào)用語句中func函數(shù)的實參個數(shù)是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

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

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

A.線性表的鏈式存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的

B.線性表的鏈式存儲結(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)

C.線性表的鏈式存儲結(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)

D.線性表的鏈式存儲結(jié)構(gòu)所需要的存儲空間與順序存儲結(jié)構(gòu)沒有任何關(guān)系

64.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

65.

66.

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

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/s(k+m);

printf("%d",a);

}

A.1B.4C.9D.0

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

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

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

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

D.上述3種說法都不對

68.以下敘述中錯誤的是(

)。A.函數(shù)形參的值也可以傳回給對應(yīng)的實參

B.函數(shù)調(diào)用可以作為一個獨立的語句存在

C.若函數(shù)有返回值,必須通過r;mm語句返回

D.C程序必須由一個或一個以上的函數(shù)組成

69.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10

70.

下列程序的運行結(jié)果為()。

#include<stdio.h>

main

{structdate

{intyear,month,day;

}today;

printf("%d\n",sizeof(structdate));

}

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

71.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。

main()

/*Beginning*/

{intr;floats;

scanf("%d",&r);

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

}

若想糾正錯誤,應(yīng)該()。

A)更改注釋語句書寫位置B)存放圓半徑的變量r應(yīng)該定義為整型

C)輸出語句中不能加“s=”D)給計算面積的PI變量賦值

72.表示關(guān)系M<=N<=P的C語言表達式為()。

A.(M<=N.AND(N<=P.

B.(M<=N.&&(N<=P.

C.(M<=N<=P.

D.(M<=N.&(N<=P.

73.

74.

75.

76.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表

77.

78.有以下程序:

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

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*l=22*2=43*1=33*2=63*3=9

79.下列合法的聲明語句是()。

A.intabc=50;

B.doubleint=3+5e2.5;

C.longdo=1L;

D.float3asd=3e一3;

80.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數(shù)的類型是()。A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。

例如,輸入opdye,則應(yīng)輸出deopy。

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

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

試題程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:計算并輸出下列多項式值。S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為s=0.680803。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.Dp一>x的值為1,++(p->x)作用是取p->x的值加1作為表達式的值即值為2,同理++(p->y)的值為3。所以選D。

2.A

3.A

4.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

5.A解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標識符(*指針變量名)()。void(*pf)()定義了一個沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時,只把函數(shù)名fun賦給pf即可。所以正確答案為選項A)。

6.D

7.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串數(shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000

8.A對象具有如下特性:標識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性。

9.B解析:p指向x的第一個元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個元素,所以p->next->n為4。

10.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應(yīng)的ASCII碼值。"\0"用雙引號故不正確。

11.A

12.BB)【解析】在具有11個結(jié)點的滿二叉樹,其非葉子結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去葉子結(jié)點數(shù)。本題n=15,故非葉子結(jié)點數(shù)等于int(15/2)=7,葉子結(jié)點數(shù)等于15-7=8。

13.C

14.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。

15.C

16.A[解析]B)與D)選項中取模運算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯誤。C)選項中不能將x+z的值賦給表達式y(tǒng)*5.所以C)錯誤。

17.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

18.B

19.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個元素就是第2行第4個元素,即a[1][3]。故應(yīng)該選擇B。

20.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個結(jié)點的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點為最后一層的結(jié)點數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個結(jié)點。因此深度為5的滿二叉樹的葉子結(jié)點數(shù)為25-1=16個。

21.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關(guān)知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

22.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計、詳細設(shè)計、編碼和測試)、軟件維護期(即運行維護階段)。

23.x+=1;

24.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。

25.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應(yīng)填j<=i,第二處應(yīng)填a[i][j]=a[j][i]。

26.#include"math.h"m>>i&1m|k

27.rewind或fseekrewind或fseek

28.

29.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。

30.87788,7,7,8解析:本題中執(zhí)行語句p=&a和q=&b后,*p=7,*q=8;執(zhí)行完語句r=p,p=q,q=r后,*p=8,*q=7,故答案為8,7,7,8。

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

32.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點。因此,設(shè)一棵完全二叉樹具有n個結(jié)點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點以及n/2-1個度為2的結(jié)點,還有1個是度為1的結(jié)點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點以及[n/2]個度為2的結(jié)點,沒有度為1的結(jié)點。本題中,完全二叉樹共有700個結(jié)點,700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點以及349個度為2的結(jié)點,還有1個是度為1的結(jié)點。所以,本題的正確答案為350。

33.11

34.918273645918273645解析:程序通過for循環(huán)將字符'0'~'9'從前向后,同時從后向前依次輸出,所以輸出結(jié)果為:0918273645。

35.123056009或123056009123\r\n056\r\n009\r\n或123056009解析:程序開頭定義了一個3行3列的數(shù)組,即:

1,2,3

4,5,6

7,8,9

進入循環(huán),for(i=0;i<3;i++)

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

把a[1][0],a[2][0],a[2][1]分別賦為0,輸出結(jié)果為:

123

056

009

36.55解析:a++的含義是在使用a值以后,使a值加1,所以a++的值為5。

37.efghefgh解析:函數(shù)*ss的作用是使字符串指針往后移strlen(s)/2個位置。形參指針a指向字符串'abcdefeh',調(diào)用函數(shù)*ss后,指針指向e,所以輸出為efgh。

38.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應(yīng)一個處理模塊。

39.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

40.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

41.D解析:C語言的程序是由主函數(shù)main()開始運行,由主函數(shù)來調(diào)用其他函數(shù),所以D是錯誤的。

42.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

43.B解析:算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。算法具有五個重要特性:

①有窮性:一個算法必須總是在執(zhí)行有限步之后結(jié)束,且每一步都可在有限時間內(nèi)完成。

②確定性:算法中每一步驟都必須有明確的定義,不允許有模棱兩可的解釋,也不允許有多義性,對于相同的輸入只能得出相同的輸出。

③可行性:算法中描述的操作可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次來實現(xiàn)。

④輸入:一個算法有零個或多個的輸入。

⑤輸出:一個算法有一個或多個輸出,這些輸出是同輸入有著某些特定關(guān)系的量。

44.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

45.A解析:本題考查大小寫字母的ASCII碼值的關(guān)系。大寫字母比它相應(yīng)的小寫字母的ASCII碼小32。

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

47.B解析:本題考查兩個位運算符。

按位異或運算符“^”是雙目運算符。其功能是參與運算的兩數(shù)各對應(yīng)的二進位相異或,當兩對應(yīng)的二進位相異時,結(jié)果為1。

左移運算符“<<”是雙目運算符。其功能把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。并且“<<”運算符的優(yōu)先級高干“^”。

48.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符“*”的優(yōu)先級高于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

49.D解析:C語言中數(shù)組下標是從0開始的,所以二維數(shù)組a[2][3]的第一維下標取值為0、1;第二維的下標取值為0、1、2,因而選項A)、B)、C)都是錯誤的,選項D)表示數(shù)組元素a[0][0]。

50.B解析:auto變量和register變量在使用時,系統(tǒng)自動為其分配存儲單元;退出時自動釋放這些存儲單元另做它用。

51.D解析:本題中首先定義了一整型變量n并賦初值為2,接著定義了一個整型指針變量p并讓它指向n,接著又定義了一指向指針的指針變量q。選項A中給指針變量p賦值q,故這個賦值語句正確。選項B中*p=*q就是將*q的值賦給指針變量p所指向的變量n,故這個賦值語句不是非法的賦值語句。選項C中是將*q的值賦給變量n,故這個表達式不是非法的賦值語句。選項D中p為一指針變量,應(yīng)該將一地址賦給它,而在此選項的表達式中將變量n而不是n的地址賦給它,故這個表達式不合法。

52.D解析:函數(shù)f的功能是將字符串數(shù)組中的每個字符串元素按照由小到大的順序進行排列,調(diào)用f(p,5)后,字符串數(shù)組p變?yōu)閧“aabdfg”,“abbd”,“abc”,“cd”,“dcdbe”},所以最后輸出p[1]即'abbd'的長度應(yīng)為4。

53.C

54.C解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制給s1字符串,要保證s1能容納下連接或復制后的字符串。

55.B解析:本題考核對幾種關(guān)系代數(shù)運算的掌握。其中選擇和投影的區(qū)別在于:如果將一個關(guān)系看作一張表,那么選擇操作就是從這張表中選出一些行而丟棄另一些行。而投影操作則是從這張表中選出某些列而丟棄另一些列。如果只對一個關(guān)系中的某些屬性感興趣,那么就需要在這些屬性上使用投影操作投影該關(guān)系。并操作的結(jié)果表示為Rus,它是一個關(guān)系,包括或者在R中、或者在S中、或者同時在R和S中的所有元組,新的關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)。連接操作用于將兩個關(guān)系中的相關(guān)元組組合成單個元組。

56.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

57.C解析:軟件設(shè)計遵循軟件工程的基本目標和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。

58.A解析:本題主要考查結(jié)構(gòu)體數(shù)組的使用。x[i].num為結(jié)構(gòu)體x[i]中的num成員,x[i].name[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N:第3次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。

59.D解析:本題主要考查結(jié)構(gòu)體變量和共用體變量所占存儲空間大小的計算方法。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

60.B解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是將p[4]與p[2]互換,p[5]與p[1]互換,p[6]與p[0]互換,最后的結(jié)果為gfedcba。

61.D當b為10

溫馨提示

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

評論

0/150

提交評論