版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:
main
{chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序運(yùn)行后的輸出結(jié)果是()。A.A.b,bB.b,cC.a,bD.a,c
2.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)
3.下述程序執(zhí)行的輸出結(jié)果是()。#includemain{chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}A.A.are&youB.youC.areD.&
4.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
5.A.A.75310246B.01234567C.76310462D.13570246
6.有以下程序:#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
7.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對(duì)初始序列精細(xì)第一堂排序的結(jié)果。
A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序
8.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
9.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運(yùn)行后的輸出結(jié)果是()。
A.10,One*Dream!
B.9,One*Dream!
C.9,One*World
D.10,One*World
10.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4B.34C.31D.32
11.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8
12.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.31B.32C.16D.15
13.以下敘述中錯(cuò)誤的是()。
A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分
B.常量是在程序運(yùn)行過程中值不能被改變的量
C.定義符號(hào)常量必須用類型名來設(shè)定常量的類型
D.用符號(hào)名表示的常量叫符號(hào)常量
14.有以下程序執(zhí)行后的輸出結(jié)果是()。A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
15.
16.定義根節(jié)點(diǎn)深度為1,有n個(gè)元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
17.若有語句“void*P=malloc(80);”,則以下敘述錯(cuò)誤的是()。
A.可以通過指針P直接訪問用malloc開辟的這塊內(nèi)存
B.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有20個(gè)int型元素的一維數(shù)組來使用
C.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有10個(gè)double型元素的一維數(shù)組來使用
D.P所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有80個(gè)char型元素的一維數(shù)組來使用
18.以下涉及字符串?dāng)?shù)組、字符指針的程序段中,沒有編譯錯(cuò)誤的是()。A.char*str,name[1];str=“Hello”;
B.char*str,name[1];name=“Hello”;
C.charstrl[10]=“ex1.c”,str2[6];str2=str1;
D.charhead_line[];head_line=“\\0”;
19.
20.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
二、2.填空題(20題)21.執(zhí)行以下程序后的輸出結(jié)果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
22.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為______。
23.軟件設(shè)計(jì)模塊化的目的是______。
24.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
25.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);
26.下面程序的功能是:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為9的所有整數(shù),清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}
27.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
28.以下程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
29.以下程序的輸出結(jié)果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
30.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。
31.下列程序段的運(yùn)行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
pfintf("%d,%d",y,x);
32.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請(qǐng)?zhí)羁?使下面程序段的功能與之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
33.下列程序的運(yùn)行結(jié)果為【】。
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
main()
{enumweekdayworkday,weekend;
inti,a[8];
workday=tue;
weekend=sun;
printf("\ntueday=%dsunday=%d;",workday,week_end);
workday=sun+tue;
week_end=(enumweekday)3;
printf("tueday=%dsunday=%d;",workday,weekend);
a[sun]=sun;
a[mon]=mon;
a[tue]=rue;
a[wed]=wed;
a[thu]=thu;
a[fri]=fri;
a[sat]=sat;
for(i=l;i<=7;i++)printf("%d",a[i]);
}
34.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁铡?/p>
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;i<y;i++)z=z*【】;
returnz;
}
35.執(zhí)行以下程序的輸出結(jié)果是()。
#include<stdio.h>
#defineM5
#defineNM+M
main()
{intk;
k=N*N*5;printf(”%d\n",k);
}
36.對(duì)下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。
37.軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和【】。
38.下列程序段的運(yùn)行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
39.以下程序運(yùn)行后的輸出結(jié)果是【】
#include<stdio,h>fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
inti,a=5;
for(i=0;i<3;i++)prinff("%d%d",i,fun(a));
printf("\n");
}
40.自動(dòng)批處理文件名必須是【】。
三、1.選擇題(20題)41.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
42.以下程序運(yùn)行后,輸出結(jié)果為______。main(){inta[2][3]={1,3,5,7,9,11},*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}
A.1B.7C.9D.11
43.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.2C.1D.0
44.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是
A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>
45.以下選項(xiàng)中可作為C語言合法常量的是______。
A.-80B.-80C.-8e1.0D.-80.0e
46.以下scanf函數(shù)調(diào)用語句中對(duì)結(jié)構(gòu)體變量成員的引用不正確的是
structpupil
{charname[20];
intage
intsex;
}pup[5],*p;
p=pup;
A.scanf("%s",pup[0].name);
B.scanf("%d",&pup[0].age);
C.scanf("%dT",&(p->sex));
D.scanf("%d",p->age);
47.以下程序運(yùn)行后的輸出結(jié)果是______。main(){intx=0210;printf("%x\n",x);}
A.88B.86C.77D.21
48.若有下列說明和語句,則對(duì)結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。
Stmctstu
{inti;
intname;
}st,*p;
p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
49.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
50.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');執(zhí)行該程序段后,x的值為()
A.1B.0C.FALSED.TRUE
51.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%dd",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
52.下列選項(xiàng)中可作為C語言合法常量的是()。
A.-80B.-80C.-80.0D.-80.0e
53.
執(zhí)行下列程序中的輸出語句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
54.能夠?qū)τ?jì)算機(jī)的硬件設(shè)備進(jìn)行管理,并使應(yīng)用軟件能夠方便、高效地使用這些設(shè)備的是()
A.數(shù)據(jù)庫(kù)存系統(tǒng)B.操作系統(tǒng)C.編輯軟件D.應(yīng)用軟件
55.下列程序的輸出結(jié)果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b:a);}
A.0B.1C.2D.3
56.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
57.下列可用于C語言用戶標(biāo)識(shí)符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
58.以下能正確定義一維數(shù)組的選項(xiàng)是______。
A.inta[5]={0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5);
C.chara={'A','B','C'};
D.inta[5]="0123";
59.有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序運(yùn)行后的輸出結(jié)果是()。
A.4,6B.2,5C.3,5D.2,6
60.下面程序的運(yùn)行結(jié)果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}
A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
四、選擇題(20題)61.
則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.
B.
C.
D.
62.讀出以下語句的輸出結(jié)果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
63.(42)希爾排序法屬于哪一種類型的排序法()
A.交換類排序法
B.插入類排序法
C.選擇類排序法
D.建堆排序法
64.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A.隊(duì)頭指針是固定不變的
B.隊(duì)頭指針—定大于隊(duì)尾指針
C.隊(duì)頭指針_定小于隊(duì)尾指針
D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
65.在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。
A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段
66.
67.以下程序有錯(cuò),錯(cuò)誤的原因是
main()
{int*p,i;char*q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;
......
}
A.p和q的類型不一致,不能執(zhí)行*p=*q;語句
B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句
C.q沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義
D.q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語句的執(zhí)行結(jié)果
68.
69.(17)軟件需求分析階段的工作,可以分為四個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()
A.階段性報(bào)告
B.需求評(píng)審
C.總結(jié)
D.都不正確
70.以下程序執(zhí)行后的輸出結(jié)果是()。
A.5,5
B.5,11
C.11,11
D.11,5
71.若有定義語句:intx=10;,則表沃式㈣的值為()。A.一10B.-20C.0D.10
72.
73.
74.相對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
75.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
voidp(int*x)
{printf("%d¨,++*x);
}
voidmain()
{inty=3;
p(&y);
}
A.3B.4C.2D.5
76.
以下程序的輸出結(jié)果是()。
main
{inti=0,S=0;
for(;;)
{
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i:
};
printf("%d\n",s);
}
A.10B.13C.21D.程序陷入死循環(huán)
77.
78.
79.以下敘述中正確的是()。A.在c語言中,預(yù)處理命令行都以‘‘#”開頭
B.預(yù)處理命令必須位于c源程序的起始位置
C.#include必須放在c程序的開頭
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫一個(gè)函數(shù)fun(),該函數(shù)的功能是使變量h的值保留兩位小數(shù),并對(duì)第3位進(jìn)行四舍五入(規(guī)定h的值為正數(shù))。若h的值為1234.567,則函數(shù)返回1234.570000;若h的值為1234.564,則函數(shù)返回1234.560000。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:
參考答案
1.A++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。
2.B通過—維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價(jià)的。這是一種運(yùn)算符之間的等價(jià)轉(zhuǎn)換,就好像a-(b-C)等價(jià)于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維數(shù)組上來。因?yàn)閇]運(yùn)算符的結(jié)合性是從左至右的,所以w[i][j]等價(jià)于(w[i][j],此時(shí)可以先將任意一個(gè)[]運(yùn)算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時(shí)轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價(jià)于w[i][j]。選項(xiàng)A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項(xiàng)B小,因?yàn)閇]運(yùn)算符的優(yōu)先級(jí)高于*運(yùn)算符,所以*(w+1)[4]等價(jià)于*((w+1)[4]等價(jià)于*(*((w+1)+4)),即*(*(w+5)+0),它等價(jià)于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項(xiàng)C等價(jià)于w[1][0],是下確的。選項(xiàng)D中,&w[0][0]是數(shù)組w第1個(gè)元素的地址,它等價(jià)于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個(gè)數(shù),然后再除以這個(gè)數(shù)一樣。所以,&w[0][0]等價(jià)于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價(jià)于w[0][1],這個(gè)也是合法的。綜上所述,本題應(yīng)該選擇B。
3.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,a[0][3]='&',且strcpy(a[1],"you")把you復(fù)制到a[1]中,故輸出a為“are&you”。
4.B解析:sizeof函數(shù)是取變量所占的存儲(chǔ)空間的字節(jié)數(shù),標(biāo)識(shí)a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個(gè)枚舉類型enumc,a1,a2為枚舉元素,在C編譯時(shí),對(duì)枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。
5.A本題的考點(diǎn)是C語言的數(shù)組及其排序。本題的程序中分為2個(gè)循環(huán)體,第一個(gè)循環(huán)體將數(shù)組中1,3,5,7,2,4,6,0的前4個(gè)元素從大到小排序,這個(gè)循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,2,4,6,0。第二個(gè)循環(huán)體將數(shù)組中7,5,3,1,2,4,6,0從第5個(gè)開始的4個(gè)元素從小到大排序,這個(gè)循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,0,2,4,6。所以正確答案是選項(xiàng)A。
6.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)正確。
7.C
8.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
9.A函數(shù)“strlen(char*s)”;計(jì)算字符串s的長(zhǎng)度,不包括‘\\0’在內(nèi)。p指向數(shù)組的第2個(gè)元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項(xiàng)。
10.C本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4.0,這樣對(duì)應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對(duì)s[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。
11.B本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行b=2+1=3,最終t=2+3=5。
12.C解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個(gè)結(jié)點(diǎn)。對(duì)于滿二叉樹,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn)。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。
13.C在C語言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:#define標(biāo)識(shí)符常量。
14.B
15.B
16.B
17.A題干中使用malloc函數(shù)分配了80個(gè)字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元。在C語言中,void*不能直接使用,必須利用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項(xiàng)A錯(cuò)誤。int類型的元素占4個(gè)字節(jié),所以可以將p指向的內(nèi)存強(qiáng)制類型轉(zhuǎn)換成具有20個(gè)int類型的一維數(shù)組來使用,同理,也可以強(qiáng)制類型轉(zhuǎn)換成10個(gè)double類型的一維數(shù)組來使用,或強(qiáng)制類型轉(zhuǎn)換成80個(gè)char類型的一維數(shù)組來使用,選項(xiàng)B、C、D正確。故本題答案為A選項(xiàng)。
18.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項(xiàng)B、C、D錯(cuò)誤,選項(xiàng)A正確。故本題答案為A選項(xiàng)。
19.B
20.D結(jié)構(gòu)workers中的成員s是一個(gè)嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時(shí),要用“.”運(yùn)算在深入一層訪問到最基本的成員year,只有D項(xiàng)反映出了這一點(diǎn)。
21.a=14a=14解析:逗號(hào)表達(dá)式的值是以逗號(hào)分隔的最后一個(gè)表達(dá)式的值。所以題目中的語句a=(3*5,a+4);就等價(jià)于a=a+4;。故本題輸出結(jié)果是a=14。
22.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fsets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動(dòng)在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。
23.降低復(fù)雜性降低復(fù)雜性
24.棧棧解析:考查考生對(duì)棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。
25.460000
26.i<10i<10解析:分析程序,當(dāng)(i=0,1,2,…)時(shí),“j=i*10+9”語句的運(yùn)行結(jié)果是(9,39,69,99)個(gè)位數(shù)為9的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%3!=0)continue;”語句的功能是當(dāng)條件不能被3整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時(shí)輸出該數(shù),即輸出的數(shù)滿足條件100以內(nèi)能被3整除且個(gè)位數(shù)為9。
27.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)
28.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個(gè)元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n
29.aa解析:'z'的ASCII碼值為122,經(jīng)過c-25運(yùn)算后,得97,以字符形式輸出是a。
30.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用??芍?,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。
31.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8=20,此時(shí)y=8。
32.k<=nk++k<=n,k++解析:本題要求將一個(gè)for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句'k++;'\ue009。
33.tueday=2sunday=7;tueday=9sunday=3;1234567
34.xx解析:函數(shù)的定義形式為;
函數(shù)類型函數(shù)名(形參表)
{
類型說明語句;
執(zhí)行語句;
}
本題中函數(shù)的功能是:累積變量以求得變量的Y次方。
35.5555解析:本題考查的重點(diǎn)是對(duì)宏定義的理解。#define指令定義一個(gè)標(biāo)識(shí)符和一個(gè)串,編譯程序在對(duì)C源程序處理時(shí).發(fā)現(xiàn)該標(biāo)識(shí)符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。
36.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個(gè)二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。
37.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù):軟件工程學(xué)的主要研究對(duì)象包括軟件開發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面。即軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。
38.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。
39.1011121210111212解析:用static關(guān)鍵字聲明的變量稱為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時(shí)賦一次初值,以后再次調(diào)用函數(shù)時(shí)不再重新賦初值,而是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。程序中的變量c為靜態(tài)變量,當(dāng)再次調(diào)用fun函數(shù)時(shí),變量c不再被賦初值,變量c的值為上次調(diào)用fun函數(shù)時(shí)所保留下來的值,具體在程序運(yùn)行過程中的體現(xiàn)如下:
當(dāng)i=0時(shí),第一次調(diào)用fun(5),這時(shí)a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當(dāng)i=1時(shí),第二次調(diào)用fun(5),這時(shí)a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當(dāng)i=2時(shí),第三次調(diào)用fun(5),這時(shí)a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當(dāng)i=3時(shí),循環(huán)結(jié)束,所以輸出結(jié)果為:010111212。
40.AUTOEXEC.BAT
41.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。
42.C解析:s是一個(gè)含有兩個(gè)元素的指針數(shù)組,pp是一個(gè)指向指針變量的指針,s[0]是指向二維數(shù)組a行下標(biāo)為0的元素的首地址,即時(shí)a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[0]的地址。**pp=s[1][1]后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p=*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0]所指向的數(shù)據(jù),即a[0][0]。
43.D解析:位與運(yùn)算符“&”,按二進(jìn)位進(jìn)行“與”運(yùn)算,如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為0;取反運(yùn)算符“~”,用來對(duì)一個(gè)二進(jìn)制按位取反,即將0變1,1變0。在prinf()函數(shù)的表達(dá)式中,“&”前面表達(dá)式的值為1(3/2=1)表示為二進(jìn)制為00000001,而按位取反運(yùn)算符“~”的優(yōu)先級(jí)高于按位與運(yùn)算符“&”,先計(jì)算“&”后面的取反運(yùn)算符“~”。z的二進(jìn)制表示為00000001,取反后為11111110,最后進(jìn)行“&”,即“00000001&11111110”可知結(jié)果為00000000,故最后的值為0。
44.A解析:本題考核的知識(shí)點(diǎn)是scanf()函數(shù)的運(yùn)用。seanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為輸入格式字符串,第二個(gè)參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時(shí)數(shù)據(jù)的間隔,輸入時(shí)必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時(shí)必須原樣輸入。所以4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
45.A解析:選項(xiàng)B中,以0開頭表示是一個(gè)八進(jìn)制數(shù),而八進(jìn)制數(shù)的取值范圍是0~7,所以-080是不合法的;選項(xiàng)C和D中,e后面的指數(shù)必須是整數(shù),所以也不合法。
46.D解析:考查結(jié)構(gòu)體成員變量的引用方法??捎媒Y(jié)構(gòu)體變量名.數(shù)據(jù)成員名或者結(jié)構(gòu)體指針->數(shù)據(jù)成員名兩種方法來引用。結(jié)構(gòu)體類型的變量、數(shù)組和指針變量的定義。
47.A解析:x以0開頭是以八進(jìn)制的形式賦值的,輸出時(shí)要輸出其對(duì)應(yīng)的十六進(jìn)制。0210對(duì)應(yīng)的十六進(jìn)制是88。
48.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價(jià)的指針形式即(*p).i和p->i。
49.C解析:帶參數(shù)的宏定義命令行形式如下:
#define宏名(形參表)替換文本
在編譯的時(shí)候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計(jì)算,將計(jì)算的結(jié)果賦給a。注意,宏替換是在編譯時(shí)由預(yù)處理程序完成的,宏替換不占用運(yùn)行的時(shí)間,而函數(shù)調(diào)用是在程序運(yùn)行時(shí)進(jìn)行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時(shí)間。
50.A解析:a=14,b=15,第一個(gè)&&兩側(cè)均為非零值。c='A',表達(dá)式c<'B'的值為真即1,第二個(gè)&&兩側(cè)也均為非零值。表達(dá)式(a&&b)&&(c<'B')的值為1,賦值給變量x。
51.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。
52.A
53.C解析:本題考查逗號(hào)表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。
54.B
55.A
56.C解析:如果沒有指明函數(shù)值類型,則默認(rèn)函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。
57.B解析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下畫線3種字符組成,且第一個(gè)字符必須為字母或下畫線,排除選項(xiàng)C)和D);C語言中還規(guī)定標(biāo)識(shí)符不能為C語言的關(guān)鍵字,而選項(xiàng)A)中void為關(guān)鍵字,故排除選項(xiàng)A)。
58.B解析:C語言一維數(shù)組的定義有兩種方式:一是指定數(shù)組長(zhǎng)度,如選項(xiàng)A“inta[5]={0,1,2,3,4,5};”,但此定義的賦初值個(gè)數(shù)為6,多于數(shù)組長(zhǎng)度,是錯(cuò)誤的。因?yàn)榻o數(shù)組賦初值,初值個(gè)數(shù)只能小于或等于數(shù)組長(zhǎng)度。二是不指定數(shù)組長(zhǎng)度,由賦初值的初值個(gè)數(shù)決定數(shù)組的長(zhǎng)度,如選項(xiàng)B的“chara[]={0,1,2,3,4,5};”,初值個(gè)數(shù)為6,因此數(shù)組長(zhǎng)度為6。所以能正確定義一維數(shù)組。選項(xiàng)C的定義中a是一個(gè)字符變量,不能正確定義一維數(shù)組。選項(xiàng)D“inta[5]=“0123”;”給int型數(shù)組賦字符串初值,顯然是錯(cuò)誤的。
59.B
60.B解析:本題考查了用指針處理字符串的方法。用指針處理字符串,首先要使指針指向該字符串。例如本題中的s1='AbDeG'就是使字符指針指向了字符串'AbDeG',而指針s1+=2則是指針向后移動(dòng)了兩個(gè)字符的位置,指向了字符‘D’。strcmp則是字符串比較函數(shù)。
61.C選項(xiàng)c)中int(f)不正確,因?yàn)閺?qiáng)制類型轉(zhuǎn)換表示為:(類型名)(表達(dá)式),正確表示為(int)f.
62.D
63.B
64.D循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以對(duì)頭指針有時(shí)可能大于隊(duì)尾指針有時(shí)也可能小于隊(duì)尾指針,故本題答案為D)。
65.CC)【解析】邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024月子中心產(chǎn)后康復(fù)與美容護(hù)膚服務(wù)合同范本3篇
- 2025年桉樹苗木綠色種植與可持續(xù)發(fā)展合同2篇
- 2024無人機(jī)買賣合同協(xié)議
- 專業(yè)委托經(jīng)營(yíng)協(xié)作合同(2024年版)版B版
- 2024外墻涂料施工質(zhì)量責(zé)任保險(xiǎn)合同范本3篇
- 專業(yè)勞務(wù)分包協(xié)議范本(2024)版B版
- 2025年金融科技參股合作合同書樣本2篇
- 2024年度新能源汽車充電設(shè)施投資建設(shè)合同3篇
- 2024年網(wǎng)絡(luò)游戲虛擬物品銷售合同
- 2024文藝巡回演出項(xiàng)目風(fēng)險(xiǎn)管理與服務(wù)保障合同3篇
- 2024中國(guó)工業(yè)品電商采購(gòu)白皮書
- 公安機(jī)關(guān)保密協(xié)議
- 蛇年金蛇賀歲
- 人教版九年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)同步練習(xí)
- 2024年中國(guó)社會(huì)科學(xué)院外國(guó)文學(xué)研究所專業(yè)技術(shù)人員招聘3人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 第8課《列夫-托爾斯泰》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 職業(yè)咖啡比賽方案策劃書
- 人教版2024-2025學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)計(jì)算題專項(xiàng)訓(xùn)專題09運(yùn)用運(yùn)算律簡(jiǎn)便運(yùn)算(計(jì)算題專項(xiàng)訓(xùn)練)(學(xué)生版+解析)
- 2023年二輪復(fù)習(xí)解答題專題十七:二次函數(shù)的應(yīng)用(銷售利潤(rùn)問題)(原卷版+解析)
- 《ISO56001-2024創(chuàng)新管理體系 - 要求》之26:“9績(jī)效評(píng)價(jià)-9.3管理評(píng)審”解讀和應(yīng)用指導(dǎo)材料(雷澤佳編制-2024)
- GB 26134-2024乘用車頂部抗壓強(qiáng)度
評(píng)論
0/150
提交評(píng)論