版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年廣東省江門市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.在軟件生存周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設計B.詳細設計C.可行性分析D.需求分析
2.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba
3.若有定義“inta,b,c;”,想通過語句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。
A.1,2,3<Enter>
B.1,2<tab>3<Enter>
C.1<Enter><tab>2<tab>3
D.1<Enter>2<Enter>3
4.已知:intx,y;doublez;則以下語句中錯誤的函數(shù)調(diào)用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
5.變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中的數(shù)據(jù)用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運算是
A.a^bB.a|bC.a&bD.a<<4
6.能在O(1)時間內(nèi)訪問線性表的第i個元素的結(jié)構(gòu)是()
A.順序表B.單鏈表C.單向循環(huán)鏈表D.雙向鏈表
7.能正確表示x>=3或者x<1的關(guān)系表達式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
8.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
9.有以下程序:#include<stdio.h>main(){inta=2,b;b=a<<2;printf("%d\n",b);}程序運行后的輸出結(jié)果是()。A.2B.4C.6D.8
10.在一個C語言源程序文件中所定義的全局變量,其作用域為()。
A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說明來決定范圍
11.設有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
12.若有以下語句:typedefstructS{intg;charh;}T;以下敘述中正確的是()。A.可用S定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量
13.運行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
14.以下對于C語言的描述中,正確的是:()
A.C語言調(diào)用函數(shù)時,值傳遞方式只能將實參的值傳給形參,形參的值不能傳遞給實參
B.C語言中函數(shù)既可以嵌套定義,也可以遞歸調(diào)用
C.函數(shù)必須有返回值
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一源程序文件中
15.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
16.以下程序的輸出結(jié)果是()。main(){inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.輸出值不定
17.允許對隊列進行的操作有()。
A.對隊列中的元素排序B.取出最近進隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素
18.隊列的“先進先出”特性是指()。
A.最早插入隊列中的元素總是最后被刪除
B.當同時進行插入、刪除操作時,總是插入操作優(yōu)先
C.每當有刪除操作時,總是要先做一次插入操作
D.每次從隊列中刪除的總是最早插入的元素
19.
20.以下不能輸出字符A的語句是(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)()。
A.print[("%c\n",a-32);
B.print[("%d\n",A);
C.printf("%c\n",65);
D.printf("%c\n",B-1);
二、2.填空題(20題)21.下列程序段的運行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
22.以下程序的輸出結(jié)果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}
23.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。
24.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
25.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。
26.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
27.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算s,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于或等于0。請?zhí)羁铡?/p>
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
28.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。
29.設一棵二叉樹的中序遍歷結(jié)果為ABCDEFG,前序遍歷結(jié)果為DBACFEG,則后序遍歷結(jié)果為【】。
30.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
31.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
32.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
33.下面程序的功能是從鍵盤輸入一行字符,統(tǒng)計有多少個單詞,單詞間用空格分隔。補充所缺語句。
#include<stdio.h>
main()
{charss[80],c1,c2='';
inti=0,num=0;
gets(s);
while(s[i]!='\0')
{c1=s[i];
if(i==0)c2='';
elsec2=s[i-1];
if(【】)num++;
i++;
}
printf("Thereare%dwords,\n",num);
}
34.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及列數(shù)據(jù)的操作運算。
35.與結(jié)構(gòu)化需求分析方法相對應的是【】方法。
36.以下程序的輸出結(jié)果是【】。
main()
{inti=010,j=10;
printf("%d,%d\n",i,j);}
37.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
38.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標并存放在k所指的存儲單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
39.【】是數(shù)據(jù)庫設計的核心。
40.以下程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}
三、1.選擇題(20題)41.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是______。
A.EOFB.-1C.非零值D.NULL
42.下列4組選項中,均不是C語言關(guān)鍵字的選項是______。
A.definesumtype
B.getccharprintf
C.includescanfcase
D.whilegopow
43.以下循環(huán)體的執(zhí)行次數(shù)是______。main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i)}
A.3B.2C.1D.0
44.設有以下語句()structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0]則表達式()的值是6。
A.p++->nB.p->n++C.(*P).n++D.++p->n
45.下列可用于C語言用戶標識符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
46.以下程序(程序左邊的數(shù)字為附加的行號)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯
47.下列程序的運行結(jié)果為
#include<stdio.h>
voidabc(char*str)
{inta,b;
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
str[b]='\0';}
voidmain()
{charstr[]="abcdef";
abc(str);
printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
48.能正確表示C語言的字符常量的是______。
A.'\0x41'B.AC.'\0'D.\0
49.以下選項中合法的字符常量是()。
A.“B”B.‘\O1O’C.68D.D
50.設intx=1,y=1;表達式(!x||y--)的值是()。
A.0B.1C.2D.-1
51.定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結(jié)果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A.159B.147C.357D.369
52.有以下程序main(){chara[]="abcdefg",b[10]="abedefg";pfintf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是
A.77B.88C.810D.1010
53.下面程序輸出的結(jié)果是main(){intinta[3)[3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}
A.159B.753C.357D.591
54.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。
A.&m=8B.*p=8C.*p=1010D.p=&m
55.設只是一個二元關(guān)系,S是一個三元關(guān)系,則下列運算中正確的是()。
A.R-SB.RX×SC.R∩SD.R∪S
56.以下敘述中錯誤的是A.計算機不能直接執(zhí)行用C語言編寫的源程序
B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件
C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件
D.后綴為.obj和.exe的二進制文件都可以直接運行
57.在關(guān)系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()
A.連接碼B.關(guān)系碼C.外碼D.候選碼
58.如下程序的輸出結(jié)果是
#include<stdio.h>
main()
{charch[2][5]={"6937","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
A.69825B.63825C.6385D.693825
59.設計軟件結(jié)構(gòu)是在軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護期D.以上3個都不是
60.有以下程序:main(){intn=0;do{n++;printf("%d\n",n);}while(n<=3);}程序的輸出結(jié)果是()。
A.12B.123C.1234D.1
四、選擇題(20題)61.
62.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
63.
64.
65.
66.有以下程序:
#include<stdio.h>
voidexch(intt[])
{t[0]=t[s];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;
while(i<=4){exch(&x[i]);i++;}
for(i=0;i<5;i++)printf("%dl"x[i]);
printf("\n");
}
程序運行后輸出的結(jié)果是()。
A.246810
B.13579
C.12345
D.678910
67.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。
A.\bB.\tC.\vD.\f
68.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.32B.24C.5D.40
69.有以下程序:
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.A.235B.0235C.02356D.2356
70.若k是int類型變量,且有以下for語句:
for(k=-1;k<O;k++)printf("****\n");
下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、
A.循環(huán)體執(zhí)行一次
B.循環(huán)體執(zhí)行兩次
C.循環(huán)體一次也不執(zhí)行
D.構(gòu)成無限循環(huán)‘
71.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應的
B.算法的時間復雜度與空間復雜度一定相關(guān)
C.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
D.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
72.有以下程序:
#include<stdio.h>
main()
{inta=7;
while(a--);
print[("%d\n",a);
}
程序運行后的輸出結(jié)果是()。
A.-l
B.0
C.1
D.7
73.
74.設有定義:
75.有以下程序
#include<stdio.h>
main()
{chara[3O],b[30];
scanf("%S",a);
gets(b);
printf("%s\n%s\\n",a,b);
}
程序運行時若輸入:
howareyou?Iamfine<回車>
則輸出結(jié)果是()。
A.howareyou?Iamfine
B.howareyou?Iamfine
C.howareyou?Iamfine
D.howareyou?
76.當變量c的值不為2、4、6時,值為“真”的表達式是()。
77.有以下程序
78.下列函數(shù)的功能是()。
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進行比較
D.檢查a和b所指字符串中是否有’\0
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;’若未找到,則函數(shù)值為NULL。例如,當字符串中的內(nèi)容為“123dabfl23dx”,t中內(nèi)容為“ab”時,輸出結(jié)果應是“l(fā)23dx”。當字符串中的內(nèi)容為“l(fā)23dabfl23dx”,t中內(nèi)容為“aim”時,則程序輸出未找到信息“Notfound!”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。此程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(),該函數(shù)的功能是將數(shù)組下三角元素中的值全部置成0。如a數(shù)組中的值為注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5voidfun(inta[][N]){}voidmain(){ inta[N][N],i,j; system(“CLS”); printf(“****Thearray****\n”); for(i=0;i<n;i++)<p=""></n;i++)<>/*產(chǎn)生一個隨機的5×5矩陣*/ { for(j=0;j<=""p=""> { a[i][j]=rand()%10; printf(“%4d”,a[i][j]); } printf(“\n”); } fun(a); printf(“TheResult\n”); for(i=0;i<n;i++)<p=""></n;i++)<> { for(j=0;j<=""p=""> printf(“%4d”,a[i][j]); printf(“\n”); }}
參考答案
1.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標系統(tǒng)提出清晰、準確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。
2.C本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒有變。
3.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個%d與第2個%d之間有一個逗號。所以輸入的第1個整數(shù)和第2個整數(shù)之間必須要有一個逗號,選項C、D錯誤;輸入的第2個整數(shù)和第3個整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項。
4.BB項的格式應該為scanf("%1d*%d%1f",&x,&y,&z);
5.A解析:本題考查的是位運算的知識,對于任何二進制數(shù),和1進行異或運算會讓其取反,而和0進行異或運算不會產(chǎn)生任何變化。
6.A
7.C
8.BC語言中,char型變量的值是其對應字符的ASCII值,可以做比較運算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時,判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項。
9.D本題考查運算符“<<”,b=a<<2,是左移2位,a=2,即b=2*2*2=8。
10.D
\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。當全局變量定義在后,引用它的函數(shù)在前時,應該在引用它的函數(shù)中用extern對此全局變量進行說明,以便通知編譯程序該變量是一個已在外部定義了的全局變量,這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾。
\n
11.D本題考查兩個知識點,按位異或左移把b左移2位化成二進制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
12.B解析:語句typedefstructS{intg;charh;}T的作用是用T作為struetS{intg;charh;)的簡寫,所以選B。
13.C
\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語句:C=C+4,C得到的字符的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符。
14.A
15.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認測試和驗收的依據(jù)。
16.A當所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。
17.D
18.D
19.A
20.B在C語言中%d表示輸出整型數(shù)值,所以答案為B。
21.8208,20解析:本題考查while循環(huá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,此時y=8。
22.3691236912解析:本題考查最基本的for循環(huán)。for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3,即每次a的值增加3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。
23.3131解析:設隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
24.x=11x=11解析:在對無符號數(shù)的右移是高位補0。
25.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
26.132132解析:在程序中,i從9開始循環(huán),當i=9時,執(zhí)行case0后的語句m++;n++;此時m=1,n=1,然后執(zhí)行break,跳出循環(huán);當i=10時,執(zhí)行detault后的語句k++;n++;此時k=1,n=2;當i=11時,再執(zhí)行default后的語句,k=2,n=3。此時,m=1,n=3,k=2。輸出結(jié)果為132。
27.-1*sn-1*sn解析:根據(jù)公式可知,第一處應填-1;由于計算結(jié)果要通過形參指針sn傳回,所以第二處應填*sn。
28.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。
29.ACBEGFDACBEGFD解析:①確定根節(jié)點。在前序遍歷中,首先防問根結(jié)點,因此可以確定前序序列DBACFEG中的第一個結(jié)點D為二叉樹的根結(jié)點。
②劃分左子樹和右子樹。在中序遍歷中,訪問根結(jié)點的次序為居中,首先訪問訪問左子樹上的結(jié)點,最后訪問右子樹上的結(jié)點,可知,在中序序列ABCDEFG中,以根結(jié)點D為分界線,子序列ABC在左子樹中,子序列EFG在右子樹中。如下圖所示。
③確定左子樹的結(jié)構(gòu)。對于左子樹ABC,位于前序序列最前面的一個結(jié)點為了樹的根結(jié)點,根據(jù)前序遍歷結(jié)果,B為該了樹的根結(jié)點,中序序列中位于該根結(jié)點前面的結(jié)點構(gòu)成左子樹上的結(jié)點子序列,位于該根結(jié)點后面的結(jié)點構(gòu)成右子樹上的結(jié)點子序列,所以A為該左子樹的左結(jié)點,C為右結(jié)點?,F(xiàn)在可確定左子樹結(jié)構(gòu)如下:
④確定右子樹的結(jié)構(gòu)。同理,可知右子樹的結(jié)構(gòu)。
本二叉樹恢復的結(jié)果如圖所示。
根據(jù)后序遍歷的原則,該二叉樹后序遍歷的結(jié)果為ACBEGFD。
30.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。
31.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
32.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
33.c1!==''&&c2==''
34.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。
35.結(jié)構(gòu)化設計結(jié)構(gòu)化設計解析:與結(jié)構(gòu)化需求分析方法相對應的是結(jié)構(gòu)化設計方法。結(jié)構(gòu)化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。
36.8108,10解析:以0開頭的是八進制數(shù),輸出時將其轉(zhuǎn)換成十進制數(shù)。
37.數(shù)據(jù)存儲數(shù)據(jù)存儲
38.for(i=0;i<t;i++)0for(i=0;i<t;i++)\r\n0解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算,此外,一開始應使*k的值為數(shù)組中的某一下標值,即*k=0。
39.數(shù)據(jù)模型數(shù)據(jù)模型
40.1515解析:在函數(shù)fun(intx)中定義了局部靜態(tài)整形變量t,并初始化為0。這個函數(shù)的返回值為t+x。所以在主函數(shù)的for循環(huán)中,5次連續(xù)調(diào)用fun(i),實現(xiàn)了從1到5連續(xù)數(shù)字的相加運算。因而最后結(jié)果等于15。
41.C
42.A解析:本題各選項中的關(guān)鍵字只有三個:char,case,while。
43.C解析:第一次循環(huán)時1<=j+1=1+1=2值為真,執(zhí)行完循環(huán)后i=i+2=0+2-2,j=j-1=1-1=0,循環(huán)條件為假,循環(huán)結(jié)束,所以循環(huán)體僅執(zhí)行一次。
44.D
45.B解析:C語言規(guī)定標識符只能由字母、數(shù)字和下畫線3種字符組成,且第一個字符必須為字母或下畫線,排除選項C)和D);C語言中還規(guī)定標識符不能為C語言的關(guān)鍵字,而選項A)中void為關(guān)鍵字,故排除選項A)。
46.B解析:字符串復制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯誤的。
47.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。
48.C解析:單引號中,大寫或小寫字母(只限一個)代表不同的字符常量,不能用雙引號:單引號中,一個反斜線后跟一個指定的字符,表示一個特定的ASCⅡ字符,且反斜線后的八進制數(shù)可不用。開頭,其后的十六進制數(shù)只能以小寫的x開頭。
49.B解析:選項A中是字符串的表示方法,選項B是一個轉(zhuǎn)義字符,選項C是整型常量,選項D不是常量的表示方法。
50.B
51.C解析:題中通過二維數(shù)組的行、列下標來定位元素的位置從而實現(xiàn)元素的引用。注意:二維數(shù)組和數(shù)組元素的址。
52.C解析:本題小定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdefg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8。定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10。
53.B解析:本題用循環(huán)的方法考查對數(shù)組概念的掌握。首先,當i=0時,數(shù)組中的位置是a[2][0]=7,當然,如果用排除法的話,就不用考慮后面的循環(huán)了,因為在4個選項中,第1個數(shù)為了的選項只有B)。本題執(zhí)行第2次循環(huán)時,i的值為1,則printf函數(shù)中的數(shù)組指向為a[1][1]=5,依次循環(huán),可求出答案。
54.D解析:指針變量是通過指向變量地址來指定變量值的。這里只要取m的地址賦給p,即可實現(xiàn)使p為指向m的指針變量。
55.B解析:關(guān)系的交(∩)、并(∪)和差(-)運算要求兩個關(guān)系是同元的,顯然作為二元的R和三元S只能做笛卡爾積運算。
56.D解析:一個C語言的源程序(后綴名為.c)在經(jīng)過編譯器編譯后,先生成一個匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機器指令程序,即目標程序(后綴名為.obj),目標程序不可以直接運行,它要和庫函數(shù)或其它目標程序連接成可執(zhí)行文件(后綴名為.exe)后方可運行。故本題答案為D)。
57.DD)【解析】在關(guān)系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。
58.C解析:考查通過指針引用字符串數(shù)組中的元素。通過行指針p來實現(xiàn)數(shù)組元素的引用。用格式說明符%s進行整串輸入與輸出。
59.BB。【解析】設計軟件結(jié)構(gòu),是在軟件概要設計階段進行的,而概要設計屬于軟件開發(fā)期。
60.C解析:本題考查do…while循環(huán)。在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值。當執(zhí)行完第三次循環(huán)時,得到n=3,while循環(huán)表達式仍然成立,接著執(zhí)行直到n=4,表達式不成立,跳出循環(huán),結(jié)束程序。
61.A
62.A解析:本題考查的重點是typedef的理解運用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項A是錯誤的。
63.B
64.C
65.D
66.D本題中exch函數(shù)是用數(shù)組中的第6個元素對第1個元素進行賦值,所以數(shù)組的值應該為678910。
67.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案
轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數(shù)所代表的字符、\xhh1~2位十六進制數(shù)所代表的字符。
68.A本題考查了自增運算符。自增運算符“++”分為前綴和后綴兩種形式。兩種形式的作用效果是一樣的,都是使運算分量的值加1,但是它們的表達式的值不一樣,前綴形式表達式的值為運算分量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版酒店物業(yè)維護人員聘用合同范本1份3篇
- 2024店面廣告投放合作協(xié)議3篇
- 二零二五年度5G基站建設與運營合同
- 2024年石粉物料供貨協(xié)議模板版B版
- 2024年水電設備租賃及運營維護服務合同3篇
- 2024年租賃合同:高端辦公設備租賃
- 2024年版企業(yè)派遣員工服務協(xié)議版B版
- 課題申報書:大數(shù)據(jù)背景下新時代博士生成長困境透視與支持體系構(gòu)建研究
- 課題申報書:從“鄉(xiāng)村運動”到“政府農(nóng)政”:國民政府全國經(jīng)濟委員會鄉(xiāng)村建設研究
- 2024招標代理合同
- 掃描電子顯微鏡(SEM)-介紹-原理-結(jié)構(gòu)-應用
- 北京市海淀區(qū)2024-2025學年七年級上學期期中考試英語試卷(含答案)
- 中資企業(yè)出海報告:潮涌浪闊四海揚帆
- 老舊小區(qū)改造室外消火栓工程施工方案和技術(shù)措施
- 《地質(zhì)災害監(jiān)測技術(shù)規(guī)范》
- 2024-2030年中國云母制品制造市場發(fā)展狀況及投資前景規(guī)劃研究報告
- 2025年上半年內(nèi)蒙古鄂爾多斯伊金霍洛監(jiān)獄招聘17名(第三批)易考易錯模擬試題(共500題)試卷后附參考答案
- 24秋國家開放大學《農(nóng)產(chǎn)品質(zhì)量管理》形考任務1-2+形考實習1-3參考答案
- 2024-2025學年人教版八年級上冊地理期末測試卷(二)(含答案)
- 80、沈陽桃仙機場二平滑工程冬期施工方案
- 《STM32Cube嵌入式系統(tǒng)應用》HAL庫版本習題及答案
評論
0/150
提交評論