




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年廣東省揭陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列敘述中錯(cuò)誤的是()。
A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別
D.在C語言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量
2.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
3.
4.用單鏈表方式存儲(chǔ)的線性表,存儲(chǔ)每個(gè)結(jié)點(diǎn)需要兩個(gè)域,一個(gè)數(shù)據(jù)域,另一個(gè)是()。
A.當(dāng)前結(jié)點(diǎn)的所在地址B.后繼結(jié)點(diǎn)的所在地址C.空指針域D.空閑域
5.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。
A.&.B.^C.||D.~
6.以下敘述中錯(cuò)誤的是()。
A.由3種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)3種基本結(jié)構(gòu)組成
C.C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
7.有以下程序:#include<stdio.h>structord{intX,y;)dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序運(yùn)行后的輸出結(jié)果是()。A.1,2B.4,1C.3,4D.2,3
8.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
9.若有以下程序段,w和k都是整型變量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇則不能與上面程序段等價(jià)的循環(huán)語句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
10.
11.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲(chǔ)形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
12.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運(yùn)行時(shí)輸入k并按<Enter>鍵,則輸出結(jié)果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
13.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
14.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
15.程序中主函數(shù)的名字為()。
A.mainB.MAINC.MainD.任意標(biāo)識符
16.以下是一個(gè)對數(shù)組A(含有n個(gè)數(shù)值元素)進(jìn)行排序的算法偽代碼,請問它的平均時(shí)間復(fù)雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
17.在有向圖G的拓?fù)湫蛄兄?,若頂點(diǎn)Vi在頂點(diǎn)Vj之前,則下列情形不可能出現(xiàn)的是()。
A.G中有弧
B.G中有一條從Vi到Vj的路徑
C.G中沒有弧
D.G中有一條從Vj到Vi的路徑
18.如果定義“班級”關(guān)系如下:班級(班級號,總?cè)霐?shù),所屬學(xué)院,班級學(xué)生)則使它不滿足第一范式的屬性是()。
A.班級號B.班級學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院
19.連通圖G中有n個(gè)頂點(diǎn),G的生成樹是()連通子圖。
A.包含G的所有頂點(diǎn)B.包含G的所有邊C.不包含G的所有頂點(diǎn)D.包含G的所有頂點(diǎn)和所有邊
20.在深度為5的滿二叉樹葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。
intt(intx,inty,ntcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
22.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
23.一個(gè)項(xiàng)目有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于【】的聯(lián)系。
24.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計(jì)來實(shí)現(xiàn)。
25.在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
26.函數(shù)mycmp(char*s,char*t)的功能提比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,當(dāng)s>t返回正值,當(dāng)s<t時(shí)返回負(fù)值。請?zhí)羁铡?/p>
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(【】)
}
27.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
28.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
29.對于長度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
30.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
31.若有程序:
main()
{inti,j;
scanq("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入【】。
32.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
33.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
34.下列程序的運(yùn)行結(jié)果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
35.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和方法的機(jī)制稱為______。
36.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
prinff("%d\n",j);
37.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
38.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(1=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
39.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
40.下面程序的運(yùn)行結(jié)果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
三、1.選擇題(20題)41.有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序執(zhí)行后的輸出結(jié)果是
A.x=4B.x=8C.x=6D.x=12
42.uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是()。
A.data的每個(gè)成員起始地址都相同
B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等
C.程序段:data.a=5;printf("%f\n",data.C);輸出結(jié)果為5.0
D.data可以作為函數(shù)的實(shí)參
43.C語言函數(shù)返回值的類型是由______決定的。
A.return語句中的表達(dá)式類型B.調(diào)用函數(shù)的主調(diào)函數(shù)類型C.調(diào)用函數(shù)時(shí)臨時(shí)D.定義函數(shù)時(shí)所指定的函數(shù)類型
44.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;intScore;};main(){structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550},{"Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[j]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}執(zhí)行后的輸出結(jié)果是()。
A.550550B.680680C.580550D.580680
45.設(shè)有下列二叉樹:
對此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
46.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗(yàn)收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
47.
對兩個(gè)數(shù)組a和b進(jìn)行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串
48.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A.32B.31C.16D.15
49.以下程序運(yùn)行后的輸出結(jié)果是()main(){chars[]="1234",*ps;for(ps=s;ps<s+3;ps++)printf("%c",ps);printf("\n");}
A.123B.112123C.1234D.亂碼
50.若x、y、z、m均為int型變量,則執(zhí)行下面語句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
51.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大
B.靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間
C.函數(shù)的形參都屬于全局變量
D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值
52.在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關(guān)鍵碼值11,所需的關(guān)鍵碼比較次數(shù)為______。
A.2B.3C.4D.5
53.下面語句的輸出結(jié)果是______。printf("/od\n",strlen("\t\"\065\xff\n"))
A.14B.8C.5D.輸出項(xiàng)不合法,無正常輸出
54.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是
A.集合B.線性表C.二叉樹D.圖
55.使用白盒測試法時(shí),確定測試數(shù)據(jù)應(yīng)該根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。
A.程序的內(nèi)部邏輯B.程序的復(fù)雜結(jié)構(gòu)C.使用說明書D.程序的功能
56.算法的空間復(fù)雜度是指
A.算法程序的長度B.算法程序中的指令條數(shù)C.執(zhí)行算法程序所占的存儲(chǔ)空間D.算法執(zhí)行過程中所需要的存儲(chǔ)空間
57.下列程序的輸出結(jié)果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}
A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000
58.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結(jié)果是()。
A.賦初值的字符串有錯(cuò)B.6,7C.5,6D.6,6
59.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()
A.(x>=1)&&(x<=l0)&&(x>=100)&&(x<=110)
B.(x>=0‖(x<=10)‖(x>=100)‖x<=110)
C.(x>)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=)‖x<=10)&&(x>=100)‖x<=110)
60.有以下程序#include<stdio.h>#include<string.h>voidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i];s[j];s[j]=t;}}main(){char*ss[]={"bcc
A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
四、選擇題(20題)61.下列選項(xiàng)中屬于面向?qū)ο笤O(shè)計(jì)方法主要特征的是()。A.繼承B.自頂向下C.模塊化D.逐步求精
62.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.9B.10C.8D.7
63.有以下程序程序的運(yùn)行結(jié)果是()。
A.4332B.2344C.1234D.1123
64.有以下程序:main{inta=1,b=3,C=5,*P;int*p1=&a,*p2=&b,*p3=&c;*p=*p1*(*p2);}執(zhí)行后的輸出結(jié)果是()。A.1B.2C.3D.4
65.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
66.有以下程序
67.有以下程序段
#include"stdio.h"
main()
{intj,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))
break;
if(i>=j-1)
{printf("%d",j);
k++;}
}
}
程序執(zhí)行后輸出的結(jié)果是
A.5359B.5953
C.3595D.9535
68.不能把字符串:Hello!賦給數(shù)組b的語句是()。
A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B.charb[10];b="Hello!";
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
69.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++
70.
71.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。
#defineN10
voidmain(int__________)
{inti=0;
while(i<N)
scanf("%d",x+(i++));
}
A.*xB.x[N]C.xD.&x
72.
73.
74.有以下程序
程序運(yùn)行后的輸出結(jié)果是()。
A.6,2,3,4,5,B.2,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
75.冒泡排序的時(shí)間復(fù)雜度為
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
76.
77.
78.有以下程序段:
當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:nalne=LilinLim=1001<;回車>;后,name的值為()。
A.name:=Lilinum=1001B.nfll"ne=LiliC.Uli.h.um=D.Lili
79.
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。
請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
voidproc(char*str)
{
inti,j;
//****found****
for(i=j=0;str[i]一0;i++)
if(str[i]!=F)
//****found****
str[i]=str[i];
str[j]=\0;
}
voidmain
{
charstr[80];
printf("\nEnterastring:");
gets(str);
printf("Theoriginalstring:");
puts(str);
proc(str);
printf("Thestringafterdeleted:");
puts(str);
printf("\n\n");}
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*號都不刪除。形參m給出了字符串的長度,形參h給出了字符串中前*號的個(gè)數(shù),形參e給出了字符串中最后*號的個(gè)數(shù)。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。
2.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。
3.C
4.B
5.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。
6.A由順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
7.Dp一>x的值為1,++(p->x)作用是取p->x的值加1作為表達(dá)式的值即值為2,同理++(p->y)的值為3。所以選D。
8.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
9.C當(dāng)循環(huán)結(jié)束時(shí),w的值應(yīng)為-1,而其他選項(xiàng)中w的值為0,故選擇c選項(xiàng)。
10.B
11.D解析:將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。
12.Dmain函數(shù)定義一個(gè)字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個(gè)字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結(jié)束標(biāo)識‘\\0’后的一個(gè)字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標(biāo)為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標(biāo)為4的元素位置,將‘f’(ASCII值為102)賦給下標(biāo)為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結(jié)束,將b(字符‘k’)賦給下標(biāo)為2的元素位置,此時(shí)str字符串如下。故本題答案為D選項(xiàng)。
13.D
14.D
15.A
16.B
17.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤c(diǎn)Vj在頂點(diǎn)Vi之前。設(shè)G(V,E)是一個(gè)具有n個(gè)頂點(diǎn)的有向圖,V中頂點(diǎn)的序列v1,v2,…,vn稱為一個(gè)拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點(diǎn)滿足下列條件:若在有向圖G中,從頂點(diǎn)vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤c(diǎn)vi必須排在頂點(diǎn)vj之前。
18.B對于關(guān)系模式,若其中的每個(gè)屬性都已不能再分為簡單項(xiàng),則它屬于第一范式模式。題目中“班級”關(guān)系的“班級學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。
19.A
20.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è)。
21.5656解析:本題中a,b,c,d是實(shí)參,x,y,cp,dp是形參。C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
22.33解析:本題考查do…while語句形式:
do循環(huán)體
while表達(dá)式
首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時(shí)再判斷循環(huán)條件不滿足,退出循環(huán)。
23.一對多或1:N一對多或1:N解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有三種,即一對一(1:1)的聯(lián)系、一對多(1:N)或多對一(N:1)的聯(lián)系和多對多(N:N)的聯(lián)系。
24.測試實(shí)例測試實(shí)例解析:進(jìn)行軟件測試時(shí),應(yīng)精心設(shè)計(jì)測試實(shí)例和選擇測試數(shù)據(jù),以對系統(tǒng)進(jìn)行全面測試。
25.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊通常不是獨(dú)立的程序,自己不能運(yùn)行,而需要其他模塊調(diào)用或驅(qū)動(dòng),同時(shí)被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動(dòng)模塊,后者稱為承接模塊。其中驅(qū)動(dòng)模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。
26.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個(gè)形參是兩個(gè)字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串?dāng)?shù)組s和t的第一個(gè)字符,在while循環(huán)中,是通過s和t值的不斷變化來改變指針?biāo)赶虻淖址?,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。
27.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計(jì)算逗號表達(dá)式時(shí),從左到右計(jì)算由逗號分隔各表達(dá)式的值,整個(gè)逗號表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。
28.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
29.n/2n/2解析:刪除—個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。
30.8181解析:本題的宏調(diào)用S(i+j)將被替換成表達(dá)式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。
31.i=0j=20i=0,j=20解析:該函數(shù)的第一個(gè)參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應(yīng)該填入i=0,j=20。
32.45994599解析:本題是一個(gè)陷阱題,以書寫格式來考查考生對if語句的理解.if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=a;,執(zhí)行a=c;c=t;后,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面三條語句都被執(zhí)行,這三條語句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。
33.20020,0解析:本題考查的知識點(diǎn)是if語句的基本概念。在主函數(shù)中首先定義了三個(gè)整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
34.33解析:分析程序運(yùn)行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。
35.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。
36.2424解析:本題關(guān)鍵是while循環(huán)。
當(dāng)i=0時(shí),滿足條件:i<7&&11%2==1,執(zhí)行j=0+11=11,i++,i為1;
當(dāng)i=1時(shí),滿足條件:i<7&&13%2=1,執(zhí)行j=11+13=24,i++,i為2;
當(dāng)i=2時(shí),不滿足條件:i<7&&14%2==1,循環(huán)結(jié)束。輸出j的值24。
37.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個(gè)t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因?yàn)閕在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。
38.bar[i]bar[i]解析:fun函數(shù)中的內(nèi)層for循環(huán),求出了每一行中的最大值x,內(nèi)循環(huán)結(jié)束后就需要把最大值放在存儲(chǔ)每行最大值的數(shù)組bar[i]中,因此應(yīng)填bar[i]。
39.77解析:在C語言中,宏定義是直接替換的,所以在劉表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。
40.3030解析:題目中for(;;)表示:for循環(huán)的初始化表達(dá)式,條件表達(dá)式和修正表達(dá)式都省略了,表示進(jìn)行for循環(huán)和for循環(huán)的終止都沒有限制。注意:while循環(huán)的執(zhí)行原理。
41.B解析:此程序考察了for循環(huán)和x++。對于大循環(huán),有兩個(gè)x++,其中循環(huán)3次,對于小循環(huán),循環(huán)三次,但是運(yùn)行了兩次x++,所以最后結(jié)果是6+2=8。
42.C
43.D解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時(shí)指定的。在定義函數(shù)時(shí)對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型—致,如果不—致,則以函數(shù)類型為準(zhǔn),即函數(shù)類型決定返回值的類型。
44.C解析:本題是按成員變量Score的值進(jìn)行由小到大的排序,程序執(zhí)行后p[5]中各元素分別為:{{'Penghua',20045,537},{'SunDan',20044,550},{'LiSiGuo',20042,580},{'WangYin',20043,680},{'YangSan',20041,703}},所以P[1]->Score=550,s[1].Score=580。
45.B解析:所謂中序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。
46.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個(gè)方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。
47.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個(gè)字符型數(shù)組并進(jìn)行了初始化,C語言規(guī)定,在字符串的末尾自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進(jìn)行初始化,系統(tǒng)不會(huì)自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組n的長度是7。
48.C2(n-1)
=2(5-1)=16
49.D
50.A解析:?:運(yùn)算符首先執(zhí)行?之前的表達(dá)式,如果表達(dá)式的值為真,則返回?和:之間的表達(dá)式的值,否則返回:之后的表達(dá)式的值。本題中m比x和y都要小,所以,3個(gè)表達(dá)式都沒有改變m的值,故應(yīng)該選擇A。
51.B解析:若在函數(shù)中定義與全局變量名字相同的局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大,故選項(xiàng)A不正確;靜態(tài)變量一旦定義,將在整個(gè)程序的運(yùn)行期間都存布,故選項(xiàng)B正確;函數(shù)的形參只在函數(shù)調(diào)用的時(shí)候分配存儲(chǔ)空間,在退出函數(shù)時(shí)收回存儲(chǔ)空間,因此是局部的,故選項(xiàng)C不正確;沒有賦值的auto型變量的初值是隨機(jī)的,沒有賦值的static型變量的初值是0,故選項(xiàng)D不正確。所以,B選項(xiàng)為所選。
52.C解析:二分法查找是一種線性查找方法,其基本方法是:首先要用要查找的關(guān)鍵碼與線性表中間位置結(jié)點(diǎn)的關(guān)鍵碼值進(jìn)行比較,這個(gè)中間結(jié)點(diǎn)把線性表分為兩個(gè)子表,比較相等則查找完畢,不等則根據(jù)查找結(jié)果確定下一步的查找應(yīng)該在哪一個(gè)子表中進(jìn)行,如此下去,直到找到滿足條件的結(jié)點(diǎn):或者確定表中沒有這樣的結(jié)點(diǎn)。用二分法查找關(guān)鍵碼值11的順序如下所示,其中[]內(nèi)為本次栓索的子表,()內(nèi)為該子表的中間結(jié)果。從圖中可以看出,經(jīng)四次查找后,確定表中沒有這樣的結(jié)點(diǎn)。因此本題正確答案為選項(xiàng)C(4)。
第一次:[3,6,8,10,12,(15),16,18,21,25,30]
第二次:[3,6,(8),10,12],15,16,18,21,25,30
第三次:[3,6,8,[(10),(12)],15,16,18,21,25,30]
第四次:[3,6,8,10,[(12)],(15),16,18,21,25,30]查找失敗。
53.C解析:在C語言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進(jìn)制數(shù)或在“\\”后跟字母x及1~2位十六進(jìn)制數(shù),以此來代表一個(gè)特定的字符。
54.B解析:所謂的線性結(jié)構(gòu):如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件,即
1)有且只有一個(gè)根結(jié)點(diǎn);
2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。同時(shí)滿足兩個(gè)條件的只有線性表,而其他三種數(shù)據(jù)結(jié)構(gòu)的結(jié)點(diǎn)可能存在多個(gè)前件或后件,所以不是線性結(jié)構(gòu)。
55.A白盒測試是把測試對象看作是一個(gè)打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及相關(guān)信息來設(shè)計(jì)或選擇測試用例,對程序所有的邏輯路徑進(jìn)行測試。所以,白盒測試的對象基本上是源程序,以程序的內(nèi)
【知識拓展】軟件測試按照功能劃分可以分成白盒(白箱)測試和黑盒(黑箱)測試。其中黑盒測試是對軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測試和驗(yàn)證。
56.D解析:算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行旱災(zāi)程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。
57.C
58.C解析:本題在定義字符數(shù)組時(shí)沒有定義數(shù)組長度,但用字符常量給數(shù)組賦了初值,這時(shí)初值的個(gè)數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\\0')。字符串的長度為有效字符的個(gè)數(shù)5。strlen(s)返回值為串中字符的個(gè)數(shù)(不計(jì)最后的'\\0'),則輸出值為5。sizeof(s)計(jì)算數(shù)組所占的字節(jié)數(shù),包含'\\0',則輸出值為6。因此,C選項(xiàng)正確。
59.C解析:本題考查邏輯與(&&)和邏輯或(‖)運(yùn)算符的使用。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)系,因此只要將前兩個(gè)表達(dá)式用邏輯或運(yùn)算符連接起來即可,所以最后的表達(dá)式:(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)。
60.A解析:函數(shù)fun(char*s[],intn)的功能是對字符串?dāng)?shù)組的元素按照字符串的長度從小到大排序。在主函數(shù)中執(zhí)行fun(ss,5)語句后,*ss[]={'xy','bcc','bbcc','aabcc','aaaacc'},ss[0],ss[4]的輸出結(jié)果為xy,aaaacc。
61.A面向?qū)ο笤O(shè)計(jì)方法的三個(gè)基本特性即封裝、多態(tài)、繼承。結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用goto語句。故答案為A)。
62.A調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,因此外層調(diào)用f(f(a,b),“a,c));,即調(diào)用f(3,6)函數(shù)返回9,故本題答案為A)。
63.As[i]元素作為c數(shù)組的下標(biāo),使C數(shù)組元素自增,執(zhí)行完畢后,c數(shù)組元素為04332。按題目要求輸出,4332,所以答案選擇A)。
64.C本題中指針p1、p2、p3指向a、b、c值所存放的地址空間,然后再將指針變量*p1、*p2中值的乘積賦給指針變量*P,即賦給變量c,輸出c的值3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四年級數(shù)學(xué)幾百幾十?dāng)?shù)乘以一位數(shù)過關(guān)測試題帶答案
- 案場管理的工作計(jì)劃
- 學(xué)生儀容儀表規(guī)范
- 工控自動(dòng)化培訓(xùn)
- 特種設(shè)備復(fù)習(xí)復(fù)習(xí)測試卷附答案
- 小學(xué)道法課程標(biāo)準(zhǔn)
- 膈肌疾病的健康宣教
- 護(hù)士低血糖處理規(guī)范率
- 早熟性兒童乳房肥大癥的健康宣教
- 2025年北京市房屋建筑工程施工勞務(wù)分包合同范本
- 突發(fā)性聾診療指南
- 《高等數(shù)學(xué)》全冊教案教學(xué)設(shè)計(jì)
- 安全文明施工費(fèi)記取中存在的問題以及原因案例分析
- 公安機(jī)關(guān)業(yè)務(wù)技術(shù)用房和辦公用房規(guī)劃設(shè)計(jì)規(guī)范
- (完整版)食品安全管理制度文本(完整版)
- DB14∕T 2163-2020 信息化項(xiàng)目軟件運(yùn)維費(fèi)用測算指南
- 信號與系統(tǒng)講義教案第5章連續(xù)時(shí)間信號與系統(tǒng)的復(fù)頻域分析
- 素雅古典花鳥中國風(fēng)PPT模板
- 大數(shù)據(jù)時(shí)代下的人力資源管理創(chuàng)新研究——以智聯(lián)招聘為例
- 國家開放大學(xué)《課程與教學(xué)論》形考任務(wù)1-4參考答案
- 放棄治療同意書
評論
0/150
提交評論