版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年云南省麗江市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.在位運算中,操作數(shù)每右移一位,其結(jié)果相當(dāng)于()
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以16D.操作數(shù)乘以16
2.為非法的字符串常量()。A.“case”B.“”C.”056”D.‘123’
3.下列字符數(shù)組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d');
D.charc[]={"ffgoodmorning"};
4.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
5.下列關(guān)于c語言用戶標(biāo)識符的敘述中正確的是()。
A.用戶標(biāo)識符中可以出現(xiàn)下劃線和中劃線(減號)
B.用戶標(biāo)識符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線
C.用戶標(biāo)識符中可以出現(xiàn)下劃線,但不可以放在用戶標(biāo)識符的開頭
D.用戶標(biāo)識符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在用戶標(biāo)識符的開頭
6.
7.有以下程序
prt(int*m,intn)
{
inti;
for(i=0;i<n;i++)
m[i]++;
}
main()
{
inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序運行后的輸出結(jié)果是A.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
8.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
9.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達(dá)式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
10.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
11.字符串"alibaba"的二進(jìn)制哈夫曼編碼有多少位()
A.11B.12C.13D.14
12.已知各變量的類型說明如下則以下不符合C語言語法的表達(dá)式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
13.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。
A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理
14.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}
A.abe+ABC=DEFdef
B.abc+abe=defdef
C.abcaABCDEFdef
D.abcabcdefdef
15.以下屬于C語言實型常量的是()。
A.+6eB.e6+6C.6e+6D..e+6
16.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
17.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循環(huán),不能確定次數(shù)
18.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。
A.5B.6C.9D.8
19.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運行后的輸出結(jié)果是()。A.-1B.0C.1D.7
20.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9
二、2.填空題(20題)21.若x=3,y=2,z=1,表達(dá)式z-=x<y?x++:++y的值為______。
22.下列循環(huán)的循環(huán)次數(shù)是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
23.在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
24.樹中度為零的結(jié)點稱為______。
25.以下程序的輸出結(jié)果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
26.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號之間加上一個星號,它的作用是跳過對應(yīng)的輸入數(shù)據(jù);當(dāng)輸入以下數(shù)據(jù)時,100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
27.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)分別是順序、選擇和______。
28.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
29.函數(shù)fun的功能是使一個字符串按逆序存放。請?zhí)羁铡?/p>
voidfun(charstr[])
{charm;inti,j;
for(i=0,j=strlen(str);i<【】;i++,j--)
{m=str[i];
str[i]=【】;
str[j-1]=m;
}
printf("%s\n",str);
}
30.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
31.以下程序的運行結(jié)果是【】。
#include<stdio.h>
#include<string.h>
typcdefstructstudent
{charname[10];
longsno;
floatscore;
}STU;
main()
{STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
32.軟件是程序、數(shù)據(jù)和【】的集合。
33.以下函數(shù)sstrcat的功能是實現(xiàn)字符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:,所指字符串為abed,t所指字符串為efgh,調(diào)用函數(shù)sstrcat后s所指字符串為abcdefgh。請?zhí)羁铡?/p>
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
34.以下程序段的輸出結(jié)果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
35.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
36.下面fun函數(shù)的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位數(shù)放在數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為0的元素中,其他依此類推。請?zhí)羁铡?/p>
Fun(intx,intb[])
{intk=0,r;
do
{r=x%2;
()=r;
x/=2;
}while(x);
}
37.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。
38.軟件測試按功能劃分的方法劃分,通常分為【】測試方法和黑盒測試方法。
39.需求分析的最終結(jié)果是產(chǎn)生【】。
40.【】是從二維表列的方向進(jìn)行的運算。
三、1.選擇題(20題)41.數(shù)據(jù)字典是對數(shù)據(jù)定義信息的集合,它所定義的對象都包含于______。
A.程序框圖B.軟件結(jié)構(gòu)C.數(shù)據(jù)流圖D.方框圖
42.執(zhí)行下面的程序后,a的值為main(){inta,b;for(a=1,b=1;a<=10;a++){if(b%3==1){b+=3;continue;}b-=5;}}
A.7B.8C.9D.10
43.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式正確的是(注:□代表空格字符)()。
A.10□X□20□Y<回車>
B.10□X20□Y<回車>
C.10□X<回車>
D.10X<回車>20□Y<回車>20Y<回車>
44.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
45.在一介C源程序文件中,要定義一個只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使削的存儲類別是()。
A.autoB.registerC.externD.static
46.從工程管理角度,軟件設(shè)計一般分為兩步完成,它們是()。
A.概要設(shè)計與詳細(xì)設(shè)計B.數(shù)據(jù)設(shè)計與接口設(shè)計C.軟件結(jié)構(gòu)設(shè)計與數(shù)據(jù)設(shè)計D.過程設(shè)計與數(shù)據(jù)設(shè)計
47.下列程序的功能是給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。main()/*Beginning*/{intr;floats;seanf("%d",&r);s=*π*r*r;printf("s=%f\n",s);}出錯的原因是()。
A.注釋語句書寫位置錯誤
B.存放圓半徑的變量r不應(yīng)該定義為整型
C.輸出語句中格式描述符非法
D.計算圓面積的賦值語句中使用了非法變量
48.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
49.在16位IBM-PC機(jī)上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是
A.1B.2C.7D.11
50.能正確表“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
51.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}
A.SOB.SPC.SPOPKD.SHOB
52.下面程序段的運行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}
A.LANGUAGEB.languageC.LAND.langUAGE
53.下列敘述中,正確的一條是()
A.語句"goto12;"是合法的
B.for(;;)語句相當(dāng)于while(1)語句
C.if(表達(dá)式)語句中,表達(dá)式的類型只限于邏輯表達(dá)式
D.break語句可用于程序的任何地方,以終止程序的執(zhí)行
54.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);程序運行后的輸出結(jié)果是()。
A.運行后報錯覺B.66C.611D.510
55.在計算機(jī)系統(tǒng)中,可執(zhí)行程序是______。
A.源代碼B.匯編語言代碼C.機(jī)器語言代碼D.ASCⅡ碼
56.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系
57.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
58.數(shù)字字符0的ASCII值為48,若有以下程序main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}程序運行后的輸出結(jié)果是
A.3,2B.50,2C.2,2D.2,50
59.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
60.以下4個選項中,不能看作一條語句的是
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
四、選擇題(20題)61.第
42
題
下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
62.
有以下程序:
main
{inta=0,b=0;
a=10;/*給a賦值
b=20;給b賦值*/
printf("a+b=%d\n",a+b);//輸出計算機(jī)結(jié)果
}
程序運行后的輸出結(jié)果是()。
A.a+b=10B.a+b=30C.30D.出錯
63.如果intC=3,d=4,k=0,下列描述正確的是()。A.c>d!=k和c>(d!=k)的執(zhí)行順序是一樣的
B.c&&d>k的結(jié)果為假
C.c||(d=k)執(zhí)行后d的值為0
D.!c!=(d!=k)表達(dá)式的值為1
64.若想定義int型變量a,b,c,d并都賦值為1,以下寫法中錯誤的是()。
A.inta=b=c=d=1;
B.inta=1,b=1,c=1,d=1;
C.inta,b,c,d;a=b=c=d=1;
D.inta,b,c,d=1;a=b=c=d;
65.
66.面向?qū)ο蠓椒ㄖ校^承是指()。
A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制
67.
有以下程序:
voidf(intx,inty)
{intt;
if(x<y){t=x;x=Y;y=t;)
}
main
{inta=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
執(zhí)行后輸出結(jié)果是()。
A.3,4,5B.5,3,4C.5,4,3D.4,3,5
68.數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義和數(shù)據(jù)的物理存取構(gòu)建的語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
69.有以下程序:
程序運行后的輸出結(jié)果是()。
70.下列關(guān)于棧的敘述正確的是()。
A.棧按“先進(jìn)先出”組織數(shù)據(jù),B.棧按“先進(jìn)后出”組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)
71.
72.
對下述程序的判斷中,正確的是()。
#include<stdio.h>
main()
{char*p,s[256];
p=s;
while(strcmp(s,"theend"))
{printf("Inputthestrin9:");
gets(s);
while(*p)
putchar(*p++);
}}
A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止
B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串
73.若變量已正確定義為int型,要通過語句給a賦值l、+給b賦值2、給c賦值
3,以下輸入形式中錯誤的是()(注:口代表一個空格符)。
74.以下函數(shù)實現(xiàn)按每行8個輸出w所指數(shù)組中的數(shù)據(jù)
75.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運行后輸出的結(jié)果是
A.5B.6
C.7D.8
76.若intk=8;,則執(zhí)行下列程序后,變量k的正確結(jié)果是
main()
{intk=8;
switch(k)
{case8:k+=1;
case10:k+=1;
case11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
}
A.12B.11
C.10D.9
77.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
78.以下敘述不正確的是
A.分號是C語言的必要組成部分B.C程序的注釋可以寫在語句的后面
C.函數(shù)是C程序的基本組成單位D.程序中可以有一個或多個main函數(shù)
79.
80.若有條件表達(dá)式
則以下表達(dá)式中能完全等價于表達(dá)式(exp.的是()。
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從低到高的順序找出m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù).不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.某學(xué)生的記錄由學(xué)號、8門課成績和平均分組成,學(xué)號和8門課的成績已在主函數(shù)中給出。請編寫proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請自己定義正確的形參。例如,若學(xué)生的成績是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.D
3.A本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②℃語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。
4.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。
5.B解析:在C語言中,合法的標(biāo)識符由字母,數(shù)字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.
6.D
7.C用數(shù)組名作為函數(shù)實參時,不是把數(shù)組的值傳遞給形參,而是把實參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個數(shù)組就共同占用同一段內(nèi)存單元。本題通過“prt(a,5);”將數(shù)組a的首地址傳遞給了指針變量m,使指針變量m指向數(shù)組a的首地址,那么,對指針變量所指向的存儲單元的內(nèi)容的改變就是對數(shù)組a中的元素的改變。題中函數(shù)prt的作用是將指針變量m所指向的存儲單元中的元素值各加上1,故數(shù)組a中的值也隨之變化,所以。輸出的數(shù)組元素的值為2,3,4,5,6,。
8.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
9.C解析:要計算一個復(fù)雜的表達(dá)式時,首先要弄明白表達(dá)式中所有運算符的優(yōu)先級與結(jié)合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結(jié)合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結(jié)構(gòu)體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結(jié)構(gòu)體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達(dá)式的值為a[0],也就是1。選項B中表達(dá)式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結(jié)合性,選項C中的表達(dá)式等價于++(pt->x),由于是前綴++,所以整個表達(dá)式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應(yīng)該選擇C。
10.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
11.C
12.A
13.A在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復(fù)雜的數(shù)據(jù),有較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。
14.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語句的條件是判斷指針p當(dāng)前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結(jié)果為選項B。
15.CC語言的實型常量可以用小數(shù)形式、指數(shù)形式來表示。題中的選項都是指數(shù)形式,指數(shù)形式的一般形式為:尾數(shù)E(或e)整型指數(shù)。C語言規(guī)定,字母E或e之前必須要有數(shù)字,且E或e后面的指數(shù)必須為整數(shù),E或e的前后以及數(shù)字之間不得插入空格。故本題答案為C選項。
16.C棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
17.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語句體內(nèi)時,其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號內(nèi)表達(dá)式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進(jìn)行下去。所以,4個選項中D為所選。
18.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]則是數(shù)組a的第9個元素,而a[8]=9,所以b=9。
19.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。
20.C函數(shù)fun(intx,inty)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等于8。
21.-2。-2。解析:表達(dá)式z-=x<y?x++:++y相當(dāng)于先執(zhí)行++y,再執(zhí)行z-=x<y?x:y,最后執(zhí)行x++,其中z-=x<y?x:y等價于z=z-(x<y?x:y),由于x值為3,y值為3,x<y不成立,返回y的值,z-y的值為-2,賦給z。
22.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會使k為0,所以不能進(jìn)入循環(huán)。
23.驅(qū)動模塊驅(qū)動模塊解析:在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當(dāng)于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
24.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。
25.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。
26.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳過對應(yīng)的輸入數(shù)據(jù),所以第二個輸入數(shù)200被跳過去了,只有100,300,400三個數(shù)被從鍵盤輸入了進(jìn)來。
27.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
28.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
29.strlen(str)/2str[j-1]
30.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
31.2002Shangxian2002Shangxian解析:strcmp函數(shù)用于比較兩個字符串的大小,因為=Zhangsan,=Shangxian,所以strcmp(,)>0為真,執(zhí)行d=b;因為=Anhua,=Shangxian,所以strcmp(,)>0不成立,不執(zhí)行d=c;最后輸出d.sno和的值分別為2002,Shangxian。
32.文檔文檔解析:計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
33.*t*t解析:程序中,(a+n)代表字符串s最后一個字符后的,'\\0',根據(jù)題意,'\\0'所在位置應(yīng)該賦值為字符串t的第一個字符,字符中t的其他字符根據(jù)循環(huán),依次賦值到,所指字符串的尾部,所以[14]應(yīng)填:*t。
34.2828解析:a*=16+(b++)-(++c)等價于a=a*(16+(b++)-(++c)),b++的值為3;++c的值為5,請注意前綴++和后綴++的用法。
35.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。
36.b[k++]b[k++]解析:本題的考查點是do-while語句。形參x默認(rèn)為十進(jìn)制,要想將一個十進(jìn)制的數(shù)轉(zhuǎn)換成二進(jìn)制,可以使用整除求余法,題中的程序段也表明了將使用這種方法,將一個十進(jìn)制的數(shù)轉(zhuǎn)換成二進(jìn)制要用這個十進(jìn)制數(shù)不斷的整除2,將每次的余數(shù)記錄下來,直至無法再除,此時,整除得到的第一個元素即為二進(jìn)制數(shù)的最低位,其余依次類推,所以在程序段中的橫線處,應(yīng)當(dāng)填寫“b[k++]”。
37.封裝封裝
38.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法。
39.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。
40.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運算。
41.C解析:數(shù)據(jù)字典是對數(shù)據(jù)定義的信息的集合,是對數(shù)據(jù)流圖中包含的所有元素定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)流圖則數(shù)據(jù)字典難以發(fā)揮作用,沒有數(shù)據(jù)字典則數(shù)據(jù)流圖就不嚴(yán)格。
42.D
43.D解析:當(dāng)從鍵盤輸入字符,并且在格式說明中未制定寬度時,輸入字符(包括空格符、回車符、Tab符)將按順序賦予各輸入項。也就是說,輸入字符之間沒有間隔符,所以選項D是正確的。
44.CC?!窘馕觥繉€性表進(jìn)行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
45.D解析:“auto”類定義的自動變:鞋實質(zhì)上是一個函數(shù)內(nèi)部的局部變量,作用域是在所說明的函數(shù)中;“register”說明只能用于說明函數(shù)中的變量和參數(shù)中的形參,因此不允許將外部變量或靜態(tài)變量說明為register;“extern”是定義在所有函數(shù)之外的全局變量,它可以被所有的函數(shù)訪問,在所有函數(shù)體的內(nèi)部是有效的,所以函數(shù)之間可以通過外部變量直接傳遞數(shù)據(jù);“static”為允許本源文件中所有函數(shù)使用的全局變量。
46.A解析:從工程管理的角度看,軟件設(shè)計可分為概要設(shè)計和詳細(xì)設(shè)計兩大步驟。概要設(shè)計是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架;詳細(xì)設(shè)計是將其進(jìn)一步精化成軟件的算法或表示和數(shù)據(jù)結(jié)構(gòu)。而在技術(shù)上,概要設(shè)計和詳細(xì)設(shè)計又由若干活動組成,包括總體結(jié)構(gòu)設(shè)計/數(shù)據(jù)設(shè)計和過程設(shè)計。因此,本題的正確答案是A。
47.D解析:在C語言程序中,可以用一個符號名來代表一個常量,稱為符號常量。這個符號名必須在程序中進(jìn)行特別的“指定”,并符合標(biāo)識符的命令規(guī)則。在本題中圓周串n是一個符號常量,但在程序中并沒有指定其值,所以編譯器找不到其值就會報錯。所以選項D)正確。
48.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
49.D解析:結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。
50.C解析:本題考查邏輯與(&&)和邏輯或(‖)運算符的使用。x>=1和x<=10是邏輯與的關(guān)系,因此C語言表達(dá)式應(yīng)寫成“(x>=1)&&(x<=10)”,x>=100和x<=110也是邏輯與的關(guān)系,因此C語言表達(dá)式應(yīng)寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是邏輯或的關(guān)系,因此只要將前兩個表達(dá)式用邏輯或運算符連接起來即可,所以最后的表達(dá)式:(x>=1)&&(X<=10)‖(x>=100)&&(x<=110)。
51.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串中的第一個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
52.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時,數(shù)組的大小就應(yīng)該比它將要實際存放的最長字符多一個元素,以存放‘\\0’。
53.B
54.A解析:程序中將指針q賦予NULL,即指向了空地址,而對空地址所對應(yīng)的內(nèi)容賦值*q=*(p+5)雖然可以輸出結(jié)果611,但最后是會報錯的,即輸出提示Nullpointerassignment。
55.C
56.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
57.B解析:scanf函數(shù)的一般格式是:
scanf(格式控制,地址表列)
該格式中,地址表列中應(yīng)是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。
58.C解析:本題考查了字符型變量的運算及輸出。在C語言中,字符型變量可以看作整型變量來對待,與整型所不同的是字符型變量在內(nèi)存中只占1個字節(jié),而整型是2個字節(jié)。字符型變量中所存的數(shù)值是它所表示字符的ASCII碼值。ASCII碼中的一些相關(guān)字符是順序排列的,如\'0\'的ASCII碼值為48,\'1\'為49以此類推一直到\'9\';\'A\'的ASCII碼值為65,\'B\'為66以此類推一直到\'Z\'。本題程序一開始就定義了兩個字符型變量a和b,并初始化為字符\'1\'和\'2\',由于題目已經(jīng)告訴,0,的ASCII值為48,所以變量a、b中所存儲的數(shù)據(jù)分別為49和50。第一條輸出語句是按字符格式輸出表達(dá)式b++的值和字符\',\',后綴自加表達(dá)式b++的值就是b的值,不過執(zhí)行完該表達(dá)式之后,變量b中的值會增1。所以第一次輸出的字符串是'2,',執(zhí)行完后b中的數(shù)據(jù)為51.第二條輸出語句是按整型格式輸出表達(dá)式b-a的值和一個換行符\'\\n\',b-a的值是51-49=2,故最終的輸出應(yīng)該為'2,2\\n',\'\\n\'是非打印字符,即不會在屏幕上顯示什么,所以,4個選項中選項C符合題意。
59.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
60.D解析:C語言的語句都用“;”結(jié)束。如果只有一個分號,稱為“空語句”。用一對花括號把若干語句括起來構(gòu)成一個語句組,稱為“復(fù)合語句”,在語法上視為一條語句。因此選項A是一條語句。選項B是逗號表達(dá)式加分號構(gòu)成的語句。選項C是一條if語句,該語句的if子句是一條空語句。選項D中“if(b==0)m=1;n=2;”是兩個表達(dá)式語句。所以,4個選項中選項D符合題意。
61.DC語言中操作一個字符串常量的方法有:①把字符串常量存放在一個字符數(shù)組中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,它被轉(zhuǎn)換成字符指針。本題D項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。
62.A\n本題中/*……*/為多行注釋,所以可知b=20為注釋語句,在程序運行時不起作用,b仍為0,所以本題中A正確。
\n
63.DA)中>的優(yōu)先級大于!=,所以執(zhí)行順序不一樣;B)中c和d>k都為真,所以整個表達(dá)式為真;C)中不用執(zhí)行d=k,因為c就可以確定這個表達(dá)式的值。
64.AC語言中賦值運算符的結(jié)合方向是從右向左的,變量先定義后使用?!癷nta=b=c=d=1;”,本條語句首先執(zhí)行賦值運算“d=1”,由于變量d并未定義,故編譯不通過,提示沒有定義標(biāo)識符b、c、d,A選項錯誤。故本題答案為A選項。
65.A
66.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機(jī)制。
67.D
\na、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022教師考核表個人述職報告范文【7篇】
- 結(jié)算工作總結(jié)模板4篇
- 競聘演講稿(集合15篇)
- 元旦晚會有感心得5篇
- 春天周末經(jīng)典祝福語
- 見習(xí)護(hù)士自我鑒定集錦15篇
- 消化工作計劃合集6篇
- 煤礦崗位工作標(biāo)準(zhǔn)
- 廣東省汕頭市潮南井都中學(xué)2024-2025學(xué)年九年級上冊語篇填空與補(bǔ)全對話專項練習(xí)測試卷(含答案)
- 村屯開展環(huán)境整治工作總結(jié)(4篇)
- 商場用電安全培訓(xùn)
- 《中小學(xué)教育懲戒規(guī)則(試行)》宣講培訓(xùn)
- 結(jié)清貨款合同范例
- 掛靠裝修公司合同范例
- 2021年四川省涼山州九年級中考適應(yīng)性考試?yán)砜凭C合(試卷)
- 骨科疼痛的評估及護(hù)理
- 【MOOC】概率論與數(shù)理統(tǒng)計-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年度軟件開發(fā)分包合同技術(shù)要求與交底2篇
- 湖南省邵陽市2023-2024學(xué)年高一上學(xué)期拔尖創(chuàng)新人才早期培養(yǎng)競賽(初賽)數(shù)學(xué)試題 含解析
- 居家養(yǎng)老人員培訓(xùn)管理制度
- 2024年執(zhí)業(yè)藥師資格繼續(xù)教育定期考試題庫附含答案
評論
0/150
提交評論