2021年山西省陽泉市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021年山西省陽泉市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021年山西省陽泉市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021年山西省陽泉市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021年山西省陽泉市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年山西省陽泉市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

3.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點,A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點()。

A.99B.100C.101D.49E.50F.51

4.下面程序的運行結(jié)果是()#include<stdio.h>#include<string.h>main(){char*a="AbcdEf",*b="aBcD"a++;b++;printf("%d\n",strcmp(a,b));}

A.0B.負數(shù)C.正數(shù)D.無確定值

5.可以判斷一個有向圖中是否含有回路的方法為()。

A.廣度優(yōu)先遍歷B.深度優(yōu)先遍歷C.拓撲排序D.求最短路徑

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

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

7.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。

A.58B.56C.45D.24

8.以下不能對二維數(shù)組a進行正確初始化的語句是

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

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

D.inta[][3]={1,2,3,4,5,6};

9.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈式存儲結(jié)構(gòu)

10.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356

11.以下選項中不能用作C語言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

12.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

13.下列敘述中正確的是______。

A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

14.一個無向連連通圖的生成樹是含有該連通圖的全部項點的_______。

A.極小連通子圖B.極小子圖C.極大連通子圖D.極大子圖

15.

16.有以下程序

#include<stdio.h>

intfun()

{staticintx=1;

x*2;returnx;

}

main()

{inti,s=1,

for(i=1;i<=2;i++)s=fun();

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

程序運行后的輸出結(jié)果是A.A.0B.1C.4D.8

17.以下敘述中錯誤的是()。

A.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

18.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦值40000的正確語句是()

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

19.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是______。main(){unsignedinta=32,b=66;printf("%c\n",b|b);}

A.66B.98C.bD.B

20.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值

二、2.填空題(20題)21.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

22.下面程序的運行結(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);}

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

#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

24.下面程序的功能是根據(jù)公式e=1+1/1!+1/2!+1/3!+1/4!+...計算e的近似值,精度要求為10-5。請?zhí)羁铡?/p>

main()

{intn;

doublee=1.0,t=1.0;

for(n=1;【】n++);

{【】e+=t;}

printf("%f\n",e);}

25.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

26.下列語句使指針p指向一個double類型的動態(tài)存儲單元。

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

27.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

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

29.數(shù)據(jù)庫三級模式體系結(jié)構(gòu)的劃分,有利于保持數(shù)據(jù)庫的【】。

30.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。

31.表示條件;10<x<100或x<0的C語言表達式是【】。

32.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

33.設(shè)i,j,k均為int型變量,則執(zhí)行完下面的for語句后,k的值為【】。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

34.以下程序的輸出結(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);

}

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

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

#include<stdio.h>

main()

{intn=12345,d;

while(n!=0){d=n%10;printf("%d",D);n/=10;}

}

37.媒體在計算機領(lǐng)域中的含義,是指存儲信息的實體和【】。

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

39.數(shù)據(jù)庫的設(shè)計通??梢苑譃?個步驟:需求分析、概念設(shè)計、【】和物理設(shè)計。

40.下面程序段的輸出結(jié)果是【】。

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

print("%d\n",sum);

三、1.選擇題(20題)41.有以下程序:#includo<stdio.h>main(){inty=10;while(y--)printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。

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

42.下列程序的輸出結(jié)果是_______。fun(){staticintx=5;if(x++>5)printf("%d",x);elseprintf("%d",x++);}main(){fun();fun();}

A.67B.69C.68D.78

43.閱讀以下程序以及對程序功能的描述,其中正確的描述是()。#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個磁盤文件合二為一的功能

C.程序完成將一個磁盤文件復(fù)制到另一個磁盤文件中的功能

D.程序完成將兩個磁盤文件合并并在屏幕上輸出的功能

44.若有定義inta[9],*p=a;則p+5表示

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

45.執(zhí)行下面程序時,若輸入1、-5、6,則輸出結(jié)果為()。#include<stdio.h>#include<math.h>#definedisc(a,b,c)b*b-4*a*cmain(){floatx1,x2;inta,b,c;scanf("%d,%d,%d",&a,&b,&c);x1=(-b+sqrt(disc(a,b,c)))/(2*a);x2=(-b-sqrt(disc(a,b,c)))/(2*a);printf("%5.1f.%5.1f",x1,x2);}

A.3,2B.3.0,2.0C.-3,-2D.程序出錯

46.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

47.以下語句定義正確的是()。

A.inta[1][4]={1,2,3,4,5};

B.floata[3][]={{1,2},{2,3},{3,1}};

C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};

D.doublea[][3]={8};

48.語句“printf("%d",(a=2)&&(b=-2);”的輸出結(jié)果是______。

A.無輸出B.結(jié)果不確定C.-1D.1

49.下面程序的輸出結(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

50.下列程序的運行結(jié)果是______。voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}

A.63B.36C.編譯出錯D.0

51.下列選項可以正確表示字符型常量的是

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

52.軟件需求分析階段的工作,可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()。

A.階段性報告B.需求評審C.總結(jié)D.都不正確

53.下述程序段的輸出結(jié)果是()intx=10;inty=x++;printf("%d,%d",(x++,y),y++);

A.11,10B.11,11C.10,10D.10,11

54.下列不屬于軟件工程的3個要素的是______。

A.工具B.過程C.方法D.環(huán)境

55.下面關(guān)于對象概念的描述中,錯誤的是

A.對象就是C語言中的結(jié)構(gòu)體變量

B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體

C.對象是一個狀態(tài)和操作(或方法)的封裝體

D.對象之間的信息傳遞是通過消息進行的

56.若變量c為char類型,能正確判斷出c為小寫字母的表達式是______。

A.'a'<=c<='z'

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

C.('a'<=c)and('z'>=c)

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

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

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

58.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;}程序在執(zhí)行了c=&b;b=&a;語句后,表達式**c的值是______。

A.變量a的地址B.變量b中的地址C.變量a中的值D.變量b的地址

59.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:

A.intB.doubleC.floatD.char

60.下列程序執(zhí)行后輸出的結(jié)束是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}

A.8,12B.9,13C.8,4D.9,5

四、選擇題(20題)61.下面的程序段運行后,輸出結(jié)果是()。

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

62.

63.

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

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

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

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

66.下列敘述中正確的是()。A.順序存儲結(jié)構(gòu)的存儲空間一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的

B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)

C.順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表

D.鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間

67.

68.

69.

70.若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為()。

A.4B.16C.32D.52

71.假定所有變量均已正確說明,下列程序段運行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

72.若有定義語句:intm[]={1,2,3,4,5},i=4;,則下面對m數(shù)組元素的引用中錯誤的是

A.m[++i]B.m[1*2]

C.m[m[0]]D.m[m[--i]]

73.

74.在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()。

A.各模塊應(yīng)包括盡量多的功能

B.各模塊的規(guī)模應(yīng)盡量大

C.各模塊之間的聯(lián)系應(yīng)盡量緊密

D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度

75.

76.

77.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束

78.在單鏈表中,增加頭結(jié)點的目的是()。

A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈式存儲實現(xiàn)

79.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

80.下列敘述中錯誤的是()。

A.數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的核心

B.數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員三部分組成

C.數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段

D.數(shù)據(jù)庫中的數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如,變量a中的值原為8,b中的值原為3,程序運行后,a中的值為3,b中的值為8。請改正程序中的錯誤,使它得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.輸出1900~2000年中所有的閏年。每輸出3個年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除?;蛘吣鼙?00整除。)

參考答案

1.B

2.B本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進制整數(shù),即87,然后將緊接著的6賦給b,因為b的值為單精度數(shù)在,即6.000000,故選擇B選項。

3.A

4.C

5.C

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

7.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當i=0時,條件成立,k=k+p[0]=11;當i=1時,條件仍成立,k=k+p[1]=11+13=24;當i=2時,p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。

8.C解析:關(guān)于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個數(shù)與數(shù)組元素的個數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時,系統(tǒng)將自動給后面各行的元素補初值0;③在給二維數(shù)組賦初值時可以不用行花括號對。選項C)應(yīng)該是inta[3][2]={{1,2},{3,4},{5,6,}};

9.C

10.B本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。

11.CC選項中不能含有逗號,所以“1,234”不能用作C語言程序的合法常量。B選項表示的是八進制的常量,D選項表示的是十六進制的常量。故本題答案為C選項。

12.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項A中包含了三個“\\”,前兩個(\\\\)代表了一個“\\”字符,后面一個和“'”一起(\\”)被看作一個……,所以該字符串缺少一個結(jié)束的“'”,故不正確。選項D的兩個……之間沒有任何字符,代表的是一個空串,是合法的字符串常量,故應(yīng)該選擇D。

13.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

14.A

15.B

16.C

17.A在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本復(fù)合語句塊范圍內(nèi)有效,選項A錯誤,其他選項正確。本題答案為A選項。

18.D

19.C解析:位運算符“|”的作用是按位或,即兩個二進制數(shù)的相應(yīng)位中只要一個為1,該位的結(jié)果值為1。最后以字符型輸出,98對應(yīng)的字符“b”。

20.C用int方法定義變量時,編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。

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

22.

23.100010100010解析:對于define宏定義語句,系統(tǒng)在編譯前進行如下替換:

i1=1000/s(N)i1=1000/s(10)i1=1000/10*10

i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)

24.t>=le-5;t=t/n;

25.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。

26.(double*)

27.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。

28.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。

29.數(shù)據(jù)獨立性數(shù)據(jù)獨立性解析:數(shù)據(jù)庫的三級模式體系結(jié)構(gòu)把數(shù)據(jù)的組織管理工作進行了劃分,把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機中的具體表示方式與存儲方式,保證了數(shù)據(jù)的獨立性。

30.-16-16解析:將賦值運算符右側(cè)的“表達式”的值賦給左側(cè)的變量,并且賦值運算符按照“自右而左”的結(jié)合順序,本題表達式應(yīng)先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。

31.(x>10&&x<100)||x<0

32.JD

33.1010解析:該for語句以i為0,j為10作為初始值,循環(huán)條件是i<=j,每次循環(huán)后i增1、j減1,循環(huán)體是將i與j的和賦給k,這樣變量k將保存的是最后一次賦給它的值。一次循環(huán)后i為1、j為9,二次循環(huán)后i為2、j為8,……,五次循環(huán)后i為5、j為5,第六次循環(huán),將i與j的和10賦給k后,i為6、j為4,循環(huán)結(jié)束,k值為10。

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

35.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

36.5432154321解析:在while循環(huán)中,d=n%10;語句每次求得的結(jié)果是n個位上的數(shù)值,例如12345÷10所得的余數(shù)就是個位上的5。接下來輸出得到的個位數(shù)字d,然后執(zhí)行n/=10;語句,該語句等價于n=n/10;。在C語言中,如果/運算的兩個運算分量都是整數(shù),那所得的結(jié)果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個位上的數(shù)字。由此可知,隨著while循環(huán)的繼續(xù),n依次為12345、1234、123、12、1,而每次輸出n的個位數(shù)字將為5、4、3、2、1。故本題應(yīng)填543210。

37.載體載體

38.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

39.邏輯設(shè)計邏輯設(shè)計解析:數(shù)據(jù)庫設(shè)計的4個階段為:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。

40.16

41.B解析:程序首先判斷y值是否非0,顯然y=10滿足條件,y自減1,再次執(zhí)行while語句,判斷y為9的值是否滿足條件,滿足條件,y自減1,……,直到y(tǒng)為0,條件不成立,結(jié)束循環(huán),y自減1后變?yōu)?1,所以輸出結(jié)果為y=-1。

42.C解析:模塊的代碼開始運行后,使用static語句聲明的變量會—直保持其值,直至該模塊復(fù)位或重新啟動。在第1次調(diào)用fun函數(shù)時,x的初值為5,if語句的條件不成立,執(zhí)行elseprintf('%d'x++);語句,輸出6,執(zhí)行后x的值變?yōu)?,由于x是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它并不釋放,仍保留x=7。在第2次調(diào)用fun函數(shù)時,if語句的條件成立,執(zhí)行printf('%d',x);語句,輸出8。

43.C解析:在C程序中,如果已經(jīng)定義文件指針FILE*fp;fopen函數(shù)的功能是打開一個文件,調(diào)用方式為fp=fopen(文件名,使用文件方式);feof函數(shù)的功能是檢查文件是否結(jié)束,調(diào)用方式為feof(FILE*fp);fpute函數(shù)的功能是把一個字符寫到磁盤文件中,調(diào)用方式為fputc(ch,fp),ch是要輸出的字符,fp是指定要將該字符寫入的文件,該文件必須已經(jīng)以寫或讀寫方式打開了;fgetc函數(shù)的功能是從磁盤文件中讀入一個字符,調(diào)用方式為ch=fsetc(fp),ch是字符變量,fp是文件指針變量;fclose函數(shù)的功能是關(guān)閉一個文件,調(diào)用方式為fclose(文件指針)。

44.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動了5個int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。

45.B解析:本題是使用帶參數(shù)的宏來求解一元二次方程的兩個根。表達式x1=(-b+sqrt(disc(a,b,c)))/(2*a)宏展開后為:x1=(-b+sqrt(b*b-4*a*c))/(2*a)=(5+sqrt(25-24))/2=6/2=3。表達式x2=(-b-sqrt(disc(a,b,c)))/(2*a)宏展開后為:x2=(-b-sqrt(b*b-4*a*c))/(2*a)=(5-sqrt(25-24))/2=4/2=2。所以程序輸出結(jié)果為3.0,2.0,應(yīng)該選擇B。

46.B解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的地址值。

47.D

48.D

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

50.B解析:本題中主函數(shù)里的x、y,fun函數(shù)里的a、b、k,這些都是指針,fun函數(shù)中只是將a、b這兩個指針交換了位置,而并沒有改變主函數(shù)中變量a、b的值。

51.A解析:C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號括起來,所以選項B),C)錯誤,選項D)超過了字符常量的表示范圍。

52.B解析:需求分析是軟件定義時期的最后一個階段??梢愿爬?個方面:①需求獲?。虎谛枨蠓治?;⑧編寫需求規(guī)格說明書;④需求評審。

53.A

54.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。

55.A解析:對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接的對應(yīng)關(guān)系,對象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對象的思想廣泛應(yīng)用于C++、Java等語言中,因此A)錯誤。

56.D解析:字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的,大寫字母A到Z是從65到90,小寫字母a到z是97到122,所以只要變量c大于a并且小于z就能保證其為小寫字母。

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

58.C解析:指針變量是用來存放地址的。&:取地址運算符。*:指針運算符。**c為指針變量*c所指向的存儲單元,*c為指針指針變量c所指向的存儲單元,而c=&b表示c為變量b的地址,b=&a表示b為變量a的地址。表邊式**c的值就是變量a中的值。

59.B解析:雙目運算中兩邊運算量類型轉(zhuǎn)換規(guī)律:

運算數(shù)1運算數(shù)2轉(zhuǎn)換結(jié)果類型

短整型長整型短整型->長整型

整型長整型整型->長整型

字符型整型字符型->整型

有符號整型無符號整型有符號整型->無符號整型

整型浮點型整型->浮點型

在a/b的時候,a、b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double←float。

60.C解析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8:返回主函數(shù)執(zhí)行“d+=a++”,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。

61.B本題主要考查的是用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:

01200000

23400000

45600000

00000000

00000000

由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。從第二次的嵌套循環(huán)結(jié)束后j的值為3,所以

計算的是數(shù)組中所有第四列的元素的和,即0。

62.B

63.C

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

65.D

\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。

\n

66.A解析:本題考查的是順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。鏈式存儲結(jié)構(gòu)既可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu),所以選項B和C不正確;鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)每個元素多了一個或多個指針域,比順序存儲結(jié)構(gòu)要多耗費一些存儲空間,所以選項D也不止確。所以,本題中只有選項A是正確的。

67.C

68.D

69.B

70.C本題主要考查逗號表達式。逗號是一個特殊的運算符,它具有所有運算符中最低的優(yōu)先級。在C語言中,用它可以將兩個表達式連接起來,逗號表達式的一般表現(xiàn)形式為:

表達式1,表達式2,…,表達式n

逗號表達式的求解過程是:先求解表達式1,再求解表達式2,依次往后計算,整個逗號表達式的值是最后一個表達式的值,如“3+5,5+6”的值是11。

在本題中,逗號表達式為i=4,j=16,k=32,根據(jù)上面的分析,計算逗號表達式得到的結(jié)果為k=32,最后將逗號表達式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。

71.B解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

72.A本題考查一維數(shù)組的引用。一維數(shù)組表示為數(shù)組名[下標],下標可以是整型常量或整型表達式,題目中給出的四個選項,在格式上都是正確的。A選項中,首先進行++i運算,運算的結(jié)果為5,而該數(shù)組初始化后有效取值范圍為m[0]~m[4],m[5]不存在,引用錯誤。B選項引用的是m[2]中的數(shù)值3。C選項先計算m[0]中的數(shù)據(jù),得到1,隨后計算m[1]中的數(shù)值,可得2。D選項先計算m[--i],得到m[3]中的數(shù)據(jù)4,隨后計算m[4]中的數(shù)值,可得5。

7

溫馨提示

  • 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

提交評論