版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年山西省陽泉市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
3.一個(gè)長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個(gè)節(jié)點(diǎn),A以步長為1向前移動(dòng),B以步長為3向前移動(dòng),一共需要同時(shí)移動(dòng)多少步A和B才能再次指向同一個(gè)節(jié)點(diǎn)()。
A.99B.100C.101D.49E.50F.51
4.下面程序的運(yùn)行結(jié)果是()#include<stdio.h>#include<string.h>main(){char*a="AbcdEf",*b="aBcD"a++;b++;printf("%d\n",strcmp(a,b));}
A.0B.負(fù)數(shù)C.正數(shù)D.無確定值
5.可以判斷一個(gè)有向圖中是否含有回路的方法為()。
A.廣度優(yōu)先遍歷B.深度優(yōu)先遍歷C.拓?fù)渑判駾.求最短路徑
6.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語句是()。
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進(jìn)行正確初始化的語句是
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.元素按值有序且采用鏈?zhǔn)酱鎯Y(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);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
11.以下選項(xiàng)中不能用作C語言程序合法常量的是()。
A.123B.‘\123’C.1,234D.“\x7D”
12.以下正確的字符串常量是()。
A.\\\B.'abc'C.OlympicGames
13.下列敘述中正確的是______。
A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
14.一個(gè)無向連連通圖的生成樹是含有該連通圖的全部項(xiàng)點(diǎn)的_______。
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);
}
程序運(yùn)行后的輸出結(jié)果是A.A.0B.1C.4D.8
17.以下敘述中錯(cuò)誤的是()。
A.在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
B.在一個(gè)函數(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)將自動(dòng)給a賦初值為0B.系統(tǒng)將自動(dòng)給a賦初值一lC.這時(shí)a中的值無意義D.這時(shí)a中無任何值
二、2.填空題(20題)21.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
22.下面程序的運(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);}
23.下面程序的運(yùn)行結(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!+...計(jì)算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指向一個(gè)double類型的動(dòng)態(tài)存儲單元。
p=【】malloc(sizeof(double));
27.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。
28.設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
29.數(shù)據(jù)庫三級模式體系結(jié)構(gòu)的劃分,有利于保持?jǐn)?shù)據(jù)庫的【】。
30.若有定義intm=5,y=2,則執(zhí)行表達(dá)式y(tǒng)+=y-=m*=y后,y的值為【】。
31.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。
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.以下程序運(yùn)行后的輸出結(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.媒體在計(jì)算機(jī)領(lǐng)域中的含義,是指存儲信息的實(shí)體和【】。
38.下列程序的運(yùn)行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
39.數(shù)據(jù)庫的設(shè)計(jì)通??梢苑譃?個(gè)步驟:需求分析、概念設(shè)計(jì)、【】和物理設(shè)計(jì)。
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.程序完成將兩個(gè)磁盤文件合二為一的功能
C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中的功能
D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出的功能
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í)行下面程序時(shí),若輸入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.程序出錯(cuò)
46.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。
A.無確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲單元的地址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.下列程序的運(yùn)行結(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.編譯出錯(cuò)D.0
51.下列選項(xiàng)可以正確表示字符型常量的是
A.'\r'B.aC.\897D.296
52.軟件需求分析階段的工作,可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()。
A.階段性報(bào)告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個(gè)要素的是______。
A.工具B.過程C.方法D.環(huán)境
55.下面關(guān)于對象概念的描述中,錯(cuò)誤的是
A.對象就是C語言中的結(jié)構(gòu)體變量
B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C.對象是一個(gè)狀態(tài)和操作(或方法)的封裝體
D.對象之間的信息傳遞是通過消息進(jìn)行的
56.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是______。
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.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
58.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;}程序在執(zhí)行了c=&b;b=&a;語句后,表達(dá)式**c的值是______。
A.變量a的地址B.變量b中的地址C.變量a中的值D.變量b的地址
59.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式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.下面的程序段運(yùn)行后,輸出結(jié)果是()。
A.9B.0C.不確定值D.18
62.
63.
64.在深度為5的滿二叉樹葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
65.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
66.下列敘述中正確的是()。A.順序存儲結(jié)構(gòu)的存儲空間一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間不一定是連續(xù)的
B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性結(jié)構(gòu)
C.順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表
D.鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
67.
68.
69.
70.若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。
A.4B.16C.32D.52
71.假定所有變量均已正確說明,下列程序段運(yùn)行后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ù)組元素的引用中錯(cuò)誤的是
A.m[++i]B.m[1*2]
C.m[m[0]]D.m[m[--i]]
73.
74.在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是()。
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é)點(diǎn)的目的是()。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯?shí)現(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.下列敘述中錯(cuò)誤的是()。
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ù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如,變量a中的值原為8,b中的值原為3,程序運(yùn)行后,a中的值為3,b中的值為8。請改正程序中的錯(cuò)誤,使它得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.輸出1900~2000年中所有的閏年。每輸出3個(gè)年號換一行。(判斷閏年的條件為下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)
參考答案
1.B
2.B本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進(jìn)制整數(shù),即87,然后將緊接著的6賦給b,因?yàn)閎的值為單精度數(shù)在,即6.000000,故選擇B選項(xiàng)。
3.A
4.C
5.C
6.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個(gè)存儲單。
7.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當(dāng)i=0時(shí),條件成立,k=k+p[0]=11;當(dāng)i=1時(shí),條件仍成立,k=k+p[1]=11+13=24;當(dāng)i=2時(shí),p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。
8.C解析:關(guān)于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個(gè)數(shù)與數(shù)組元素的個(gè)數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時(shí),系統(tǒng)將自動(dòng)給后面各行的元素補(bǔ)初值0;③在給二維數(shù)組賦初值時(shí)可以不用行花括號對。選項(xiàng)C)應(yīng)該是inta[3][2]={{1,2},{3,4},{5,6,}};
9.C
10.B本題考查分支語句用法加個(gè)句號因?yàn)樽兞康某跏贾捣謩e為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語句,輸出0,k減1;這時(shí)n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個(gè)分支,結(jié)果是n=2、k=3,打印出2;這時(shí)n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個(gè)分支,結(jié)果是n=3、k=2,打印出3;這時(shí)n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個(gè)分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
11.CC選項(xiàng)中不能含有逗號,所以“1,234”不能用作C語言程序的合法常量。B選項(xiàng)表示的是八進(jìn)制的常量,D選項(xiàng)表示的是十六進(jìn)制的常量。故本題答案為C選項(xiàng)。
12.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項(xiàng)B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項(xiàng)A中包含了三個(gè)“\\”,前兩個(gè)(\\\\)代表了一個(gè)“\\”字符,后面一個(gè)和“'”一起(\\”)被看作一個(gè)……,所以該字符串缺少一個(gè)結(jié)束的“'”,故不正確。選項(xiàng)D的兩個(gè)……之間沒有任何字符,代表的是一個(gè)空串,是合法的字符串常量,故應(yīng)該選擇D。
13.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
14.A
15.B
16.C
17.A在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本復(fù)合語句塊范圍內(nèi)有效,選項(xiàng)A錯(cuò)誤,其他選項(xiàng)正確。本題答案為A選項(xiàng)。
18.D
19.C解析:位運(yùn)算符“|”的作用是按位或,即兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中只要一個(gè)為1,該位的結(jié)果值為1。最后以字符型輸出,98對應(yīng)的字符“b”。
20.C用int方法定義變量時(shí),編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時(shí)變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。
21.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
22.
23.100010100010解析:對于define宏定義語句,系統(tǒng)在編譯前進(jìn)行如下替換:
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解析:本題先定義了一個(gè)宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。
26.(double*)
27.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。
28.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。
29.數(shù)據(jù)獨(dú)立性數(shù)據(jù)獨(dú)立性解析:數(shù)據(jù)庫的三級模式體系結(jié)構(gòu)把數(shù)據(jù)的組織管理工作進(jìn)行了劃分,把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的具體表示方式與存儲方式,保證了數(shù)據(jù)的獨(dú)立性。
30.-16-16解析:將賦值運(yùn)算符右側(cè)的“表達(dá)式”的值賦給左側(cè)的變量,并且賦值運(yùn)算符按照“自右而左”的結(jié)合順序,本題表達(dá)式應(yīng)先算m的值為10,再運(yùn)算y的值為8,最后計(jì)算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)的功能是實(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所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
35.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
36.5432154321解析:在while循環(huán)中,d=n%10;語句每次求得的結(jié)果是n個(gè)位上的數(shù)值,例如12345÷10所得的余數(shù)就是個(gè)位上的5。接下來輸出得到的個(gè)位數(shù)字d,然后執(zhí)行n/=10;語句,該語句等價(jià)于n=n/10;。在C語言中,如果/運(yùn)算的兩個(gè)運(yùn)算分量都是整數(shù),那所得的結(jié)果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個(gè)位上的數(shù)字。由此可知,隨著while循環(huán)的繼續(xù),n依次為12345、1234、123、12、1,而每次輸出n的個(gè)位數(shù)字將為5、4、3、2、1。故本題應(yīng)填543210。
37.載體載體
38.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
39.邏輯設(shè)計(jì)邏輯設(shè)計(jì)解析:數(shù)據(jù)庫設(shè)計(jì)的4個(gè)階段為:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。
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解析:模塊的代碼開始運(yùn)行后,使用static語句聲明的變量會—直保持其值,直至該模塊復(fù)位或重新啟動(dòng)。在第1次調(diào)用fun函數(shù)時(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ù)時(shí),if語句的條件成立,執(zhí)行printf('%d',x);語句,輸出8。
43.C解析:在C程序中,如果已經(jīng)定義文件指針FILE*fp;fopen函數(shù)的功能是打開一個(gè)文件,調(diào)用方式為fp=fopen(文件名,使用文件方式);feof函數(shù)的功能是檢查文件是否結(jié)束,調(diào)用方式為feof(FILE*fp);fpute函數(shù)的功能是把一個(gè)字符寫到磁盤文件中,調(diào)用方式為fputc(ch,fp),ch是要輸出的字符,fp是指定要將該字符寫入的文件,該文件必須已經(jīng)以寫或讀寫方式打開了;fgetc函數(shù)的功能是從磁盤文件中讀入一個(gè)字符,調(diào)用方式為ch=fsetc(fp),ch是字符變量,fp是文件指針變量;fclose函數(shù)的功能是關(guān)閉一個(gè)文件,調(diào)用方式為fclose(文件指針)。
44.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動(dòng)了5個(gè)int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。
45.B解析:本題是使用帶參數(shù)的宏來求解一元二次方程的兩個(gè)根。表達(dá)式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。表達(dá)式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本身就是一個(gè)字符型指針變量,返回p也就是返回變量p中存放的地址值。
47.D
48.D
49.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。
50.B解析:本題中主函數(shù)里的x、y,fun函數(shù)里的a、b、k,這些都是指針,fun函數(shù)中只是將a、b這兩個(gè)指針交換了位置,而并沒有改變主函數(shù)中變量a、b的值。
51.A解析:C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號括起來,所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過了字符常量的表示范圍。
52.B解析:需求分析是軟件定義時(shí)期的最后一個(gè)階段??梢愿爬?個(gè)方面:①需求獲?。虎谛枨蠓治?;⑧編寫需求規(guī)格說明書;④需求評審。
53.A
54.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。
55.A解析:對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對應(yīng)關(guān)系,對象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對象的思想廣泛應(yīng)用于C++、Java等語言中,因此A)錯(cuò)誤。
56.D解析:字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的,大寫字母A到Z是從65到90,小寫字母a到z是97到122,所以只要變量c大于a并且小于z就能保證其為小寫字母。
57.B解析:本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符“!”的優(yōu)先級大于不等于運(yùn)算符“!=”的優(yōu)先級。注意:for語句和do…while語句的使用。
58.C解析:指針變量是用來存放地址的。&:取地址運(yùn)算符。*:指針運(yùn)算符。**c為指針變量*c所指向的存儲單元,*c為指針指針變量c所指向的存儲單元,而c=&b表示c為變量b的地址,b=&a表示b為變量a的地址。表邊式**c的值就是變量a中的值。
59.B解析:雙目運(yùn)算中兩邊運(yùn)算量類型轉(zhuǎn)換規(guī)律:
運(yùn)算數(shù)1運(yùn)算數(shù)2轉(zhuǎn)換結(jié)果類型
短整型長整型短整型->長整型
整型長整型整型->長整型
字符型整型字符型->整型
有符號整型無符號整型有符號整型->無符號整型
整型浮點(diǎn)型整型->浮點(diǎn)型
在a/b的時(shí)候,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ù),使得實(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ù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個(gè)如下的二維數(shù)組:
01200000
23400000
45600000
00000000
00000000
由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。從第二次的嵌套循環(huán)結(jié)束后j的值為3,所以
計(jì)算的是數(shù)組中所有第四列的元素的和,即0。
62.B
63.C
64.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿二叉樹的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。
65.D
\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點(diǎn),訪問左子樹,最后訪問右子樹,本題中序?yàn)镈YBEAFCZX,后序?yàn)閅DEBFZXCA。
\n
66.A解析:本題考查的是順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。鏈?zhǔn)酱鎯Y(jié)構(gòu)既可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu),所以選項(xiàng)B和C不正確;鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)每個(gè)元素多了一個(gè)或多個(gè)指針域,比順序存儲結(jié)構(gòu)要多耗費(fèi)一些存儲空間,所以選項(xiàng)D也不止確。所以,本題中只有選項(xiàng)A是正確的。
67.C
68.D
69.B
70.C本題主要考查逗號表達(dá)式。逗號是一個(gè)特殊的運(yùn)算符,它具有所有運(yùn)算符中最低的優(yōu)先級。在C語言中,用它可以將兩個(gè)表達(dá)式連接起來,逗號表達(dá)式的一般表現(xiàn)形式為:
表達(dá)式1,表達(dá)式2,…,表達(dá)式n
逗號表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,依次往后計(jì)算,整個(gè)逗號表達(dá)式的值是最后一個(gè)表達(dá)式的值,如“3+5,5+6”的值是11。
在本題中,逗號表達(dá)式為i=4,j=16,k=32,根據(jù)上面的分析,計(jì)算逗號表達(dá)式得到的結(jié)果為k=32,最后將逗號表達(dá)式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。
71.B解析:本題考查ifelse語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個(gè)if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。
72.A本題考查一維數(shù)組的引用。一維數(shù)組表示為數(shù)組名[下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式,題目中給出的四個(gè)選項(xiàng),在格式上都是正確的。A選項(xiàng)中,首先進(jìn)行++i運(yùn)算,運(yùn)算的結(jié)果為5,而該數(shù)組初始化后有效取值范圍為m[0]~m[4],m[5]不存在,引用錯(cuò)誤。B選項(xiàng)引用的是m[2]中的數(shù)值3。C選項(xiàng)先計(jì)算m[0]中的數(shù)據(jù),得到1,隨后計(jì)算m[1]中的數(shù)值,可得2。D選項(xiàng)先計(jì)算m[--i],得到m[3]中的數(shù)據(jù)4,隨后計(jì)算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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧蕪鐵路擴(kuò)能改造工程(220千伏牧板2588線、220千伏東板2589線塔桿線遷移項(xiàng)目)環(huán)境影響報(bào)告表
- 流程培訓(xùn)課件
- 流水線培訓(xùn)教學(xué)課件
- 活性炭培訓(xùn)教學(xué)課件
- 活動(dòng)執(zhí)行安全培訓(xùn)
- 2026年英文詞匯與語法高階運(yùn)用題集
- 2026年旅游規(guī)劃與實(shí)施實(shí)操測驗(yàn)
- 2026年法學(xué)考研法理學(xué)重點(diǎn)知識專項(xiàng)突破題集
- 2026年軟件工程師高級水平測試題集
- 2026年英語能力提升托福考試模擬題及答案解析
- 標(biāo)準(zhǔn)化在企業(yè)知識管理和學(xué)習(xí)中的應(yīng)用
- 高中思政課考試分析報(bào)告
- 發(fā)展?jié)h語中級閱讀教學(xué)設(shè)計(jì)
- 《異丙腎上腺素》課件
- 本質(zhì)安全設(shè)計(jì)及其實(shí)施
- 超聲引導(dǎo)下椎管內(nèi)麻醉
- 包裝秤說明書(8804C2)
- 中小學(xué)教師職業(yè)道德考核辦法
- 大門圍墻施工組織設(shè)計(jì)方案
- 濟(jì)青高速現(xiàn)澆箱梁施工質(zhì)量控制QC成果
- 管道對接施工方案正式版
評論
0/150
提交評論