




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年四川省廣安市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.若有定義“inta=5,b=7;”,則表達(dá)式a%-(b%2)運(yùn)算后,a的值為()。
A.0B.1C.11D.3
2.下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
3.關(guān)于指針,以下說(shuō)法正確的是()。A.可以直接向指針中寫入數(shù)據(jù)
B.若指針指向變量,則可以向指針?biāo)竷?nèi)存單元寫入數(shù)據(jù)
C.指針可以指向內(nèi)存中任何位置,并寫入數(shù)據(jù)
D.兩個(gè)指針可以通過(guò)加運(yùn)算求和,形成一個(gè)功能更強(qiáng)大的指針
4.數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是()。A.數(shù)據(jù)定義語(yǔ)言B.數(shù)據(jù)管理語(yǔ)言C.數(shù)據(jù)操縱語(yǔ)言D.數(shù)據(jù)控制語(yǔ)言
5.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1
6.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);執(zhí)行語(yǔ)句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結(jié)果為()。A.15,AB.16,HC.16,AD.17,H
7.堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關(guān)鍵碼序列()是一個(gè)堆。
A.94,31,53,23,16,72
B.94,53,31,72,16,23
C.16,53,23,94,31,72
D.16,31,23,94,53,72
8.設(shè)有以下語(yǔ)句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
9.在16位IBM-PC機(jī)上使用C語(yǔ)言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是
A.1B.2C.7D.11
10.下列敘述中不正確的是()。
A.在C語(yǔ)言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
11.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試
12.有下列程序:
fun(intx)
{intp;
if(x==0‖x==1)return(3);
p=x-fun(x-2);
returnp;
}
main()
{printf("%d\n",fun(7));}
執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
13.在非線性結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)()。
A.無(wú)直接前趨
B.只有一個(gè)直接前趨和個(gè)數(shù)不受限制的直接后繼
C.只有一個(gè)直接前驅(qū)和后繼
D.有個(gè)數(shù)不受限制的直接前驅(qū)和后繼
14.在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段
15.二叉樹的第三層最少有________個(gè)結(jié)點(diǎn)。
A.0B.1C.2D.3
16.以下符號(hào)中不能作為標(biāo)識(shí)符的是()。A.256B.voidC.vanfD.4Struct
17.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}執(zhí)行后輸出結(jié)果是()A.28B.22C.16D.4
18.
19.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語(yǔ)句是()
A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;
20.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言是
A.匯編語(yǔ)言B.自然語(yǔ)言C.機(jī)器語(yǔ)言D.高級(jí)語(yǔ)言
二、2.填空題(20題)21.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。
22.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。
23.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對(duì)象。
24.若輸入thistestterminal,以下程序的輸出結(jié)果為:terminaltestthis。請(qǐng)?zhí)羁铡?/p>
#defineMAXLINE20
【】
{inti;
char*pstr[3],str[3][MAXLINE];
for(i=0;i<3;++)pstr[i]=str[i];
for(i=0;i<3;i++)scanf("%s",pstr[1]);
sort(pstr);
for(i=0;i<3;i++)prntf("%s",pstr[i]);
}
sort(【】)
char*pstr[3];
{inti,j;
char*p;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
if(strcmp(*(pstr+i,*(pstr+j)>0
{p=*(pstr+i);
*(pstr+i=【】;
*(pstr+j)=p;
}
25.軟件是程序、數(shù)據(jù)和【】的集合。
26.在關(guān)系數(shù)據(jù)庫(kù)中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。
27.對(duì)二叉排序樹進(jìn)行查找的方法是:用待查的值與根結(jié)點(diǎn)的值相比,若比根小,則繼續(xù)在【】子樹中找。
28.下面程序的功能是:輸出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);}}
29.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。
30.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運(yùn)行后的輸出結(jié)果是()。
31.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ihtx=0210;printf("%x\n",x);
}
32.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
現(xiàn)在請(qǐng)你在下面的函數(shù)中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
33.下列程序段的運(yùn)行結(jié)果是______。
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+3));
34.關(guān)系模型的3類完整性指的是【】、參照完整性、用戶定義的完整性。
35.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
36.若x為int類型,請(qǐng)寫出與!x等價(jià)的C語(yǔ)言表達(dá)式______。
37.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
else
if(n>=2)|m:fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
38.一棵二叉樹第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為______個(gè)。
39.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
40.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
三、1.選擇題(20題)41.C語(yǔ)言允許函數(shù)類型缺省定義,此時(shí)函數(shù)值隱含的類型是()。
A.floatB.intC.longD.double
42.有以下程序:#include<stdio.h>intfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}return(n);}main(){chars[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));}程序的運(yùn)行結(jié)果是()。
A.9B.61490C.61D.5
43.軟件生命周期中所花費(fèi)用最多的階段是()。
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)
44.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
45.以下敘述中正確的是
A.局部變量說(shuō)明為static存儲(chǔ)類,其生存期將得到延長(zhǎng)
B.全局變量說(shuō)明為stoic存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類說(shuō)明符與局部變量完全相同
46.下列關(guān)于隊(duì)列的敘述中正確的是()。
A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列小只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表
47.在計(jì)算面中,算法是指______。
A.查詢方法B.加工方祛C.解題方案的準(zhǔn)確而完整的描述D.排序方法
48.已定義以下函數(shù)
fun(int*p)
{return*p;}
該函數(shù)的返回值是()
A.不確定的值
B.形參p中存放的值
C.形參p所指存儲(chǔ)單元中的值
D.形參p的地址值
49.當(dāng)執(zhí)行下面的程序時(shí),其輸出結(jié)果為______。unionst{inta;charb;}main(){unionsts;char*p=(char*)&s;s.a=0x3132;s.b=0x33;printf("%c",*p);}
A.1B.2C.3D.不確定
50.若有定義:inta[2][3];,以下選項(xiàng)中對(duì)a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
51.有以下程序:#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=0);elseif(x!=5)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。
A.不等于5的整數(shù)B.大于0且不等5的整數(shù)C.大于0或等于5的整數(shù)D.小于5的整數(shù)
52.下面程序輸出的結(jié)果是
main()
{inti;
inta[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
53.以下正確的數(shù)組定義語(yǔ)句是()
A.inty[1][4]={1,2,3,4,5,}
B.floatx[3][]={{1},{2},{3}}
C.longs[2][3]={{1},{1,2}{1,2,3,}}
D.doublet[][3]={0}
54.從一個(gè)長(zhǎng)度為n的順序表中刪除第i個(gè)元素(1≤i≤n)時(shí),需向前移動(dòng)______個(gè)元素。
A.n-iB.n-i+1C.n-i-1D.i
55.下列敘述中,正確的一條是()
A.語(yǔ)句"goto12;"是合法的
B.for(;;)語(yǔ)句相當(dāng)于while(1)語(yǔ)句
C.if(表達(dá)式)語(yǔ)句中,表達(dá)式的類型只限于邏輯表達(dá)式
D.break語(yǔ)句可用于程序的任何地方,以終止程序的執(zhí)行
56.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性的是()。
A.線性表B.隊(duì)列C.樹D.棧
57.在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過(guò)發(fā)送()。A.調(diào)用語(yǔ)句B.命令C.口令D.消息
58.C語(yǔ)言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
B.if、switch、break
C.for、while、do-while
D.if、for、continue
59.下面程序的輸出結(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
60.用樹形結(jié)構(gòu)來(lái)表示實(shí)體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.24B.28C.32D.36
62.有如下程序:
該程序的輸出結(jié)果是()。
A.0.000000B.0.250000C.0.500000D.1.000000
63.
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()o
A.24B.720C.120D.6
65.
66.
67.有以下程序
68.有以下程序
#include"stdio.h"
main()
{charstr[]="tomeetme",str1[]="toseeyou";
char*p=str,*p1=str1;
inti;
for(i=0;i<7;i++)
if(*(p+i)==*(p1+i))
putchar(*(p+i));
printf("\n");
}
程序的運(yùn)行結(jié)果是
A.to
B.tomeet
C.toee
D.程序段不能通過(guò)編譯
69.有定義如下:
structsk
{inta;
floatb;
}data,*p;
如果p=&data;則對(duì)于結(jié)構(gòu)變量data的成員a的正確引用時(shí)()
A)(*).data.aB)(*p).a
C)p->data.aD)p.data.a
70.
運(yùn)行下列程序時(shí),若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。
main
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a<b)
{t=a;a=b.b=t;)
if(a<c)
{t=a;a=c;c=t;)
it(b<c)
{t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.000002.000001.00000
71.以下敘述中正確的是()。
A.程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試
B.程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計(jì)的任務(wù)就是確定所用算法
D.以上三種說(shuō)法都不完整
72.
73.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語(yǔ)句是()。A.A.scanf("%3d,‰3d,%3d",&i,&j,%k);
B.scanf("%d,%d,%d",&i,8Lj,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
74.有以下程序:
當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無(wú)確定值
75.下列選項(xiàng)中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。
A.if(stremp(s2,s1)==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(sl,s2)==l)ST;
D.if(sl,s2==O)ST;
76.有以下程序:#include<stdio.h>main(){chars[]={"012xy"};inti,n=o;for(i=0;s[i]!='0';i++)if(s[i]>=as[i]<=z)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.2C.3D.5
77.第
42
題
下面說(shuō)明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
78.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運(yùn)行后的輸出結(jié)果是
A.12B.15C.16D.20
79.
80.以下程序運(yùn)行后的輸出結(jié)果是()。
f(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
A.789B.678C.567D.876
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun()的功能是:求出如下分?jǐn)?shù)序列的前n項(xiàng)之和,結(jié)果通過(guò)函數(shù)值返回。例如,若n=5,則應(yīng)輸出8.391667。請(qǐng)改正程序中的錯(cuò)誤,使其得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是實(shí)現(xiàn)B=A+AT,即將矩陣A加上A的轉(zhuǎn)置,結(jié)果存放在矩陣B中。計(jì)算結(jié)果在main()函數(shù)中輸出。舉例如下。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){}voidmain(){ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; inti,j; system(“CLS”); fun(a,t); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(“%7d”,t[i][j]); printf(“\n”); }}
參考答案
1.A本題考查“%”運(yùn)算符的使用。運(yùn)算符“%”是整數(shù)除法的余數(shù)。本題中表達(dá)式a%=(b%2)等價(jià)于a=a%(b%2)=5%(7%2)=5%1=0。
2.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。
3.BC語(yǔ)言中指針就是變量的地址,它必須有確定的基類型。當(dāng)指針指向某個(gè)變量時(shí),才能向其中寫入數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時(shí)不能寫入數(shù)據(jù),另外指針必須有基類型,只能指向基類型相同的變量,選項(xiàng)C錯(cuò)誤;指針只能與一個(gè)整數(shù)進(jìn)行運(yùn)算,即移動(dòng)指針,兩個(gè)指針不能運(yùn)算,選項(xiàng)D錯(cuò)誤。本題答案為B選項(xiàng)。
4.AA。數(shù)據(jù)定義語(yǔ)言(DDL)是集中負(fù)責(zé)數(shù)據(jù)庫(kù)模式定義與數(shù)據(jù)庫(kù)對(duì)象定義的語(yǔ)言。數(shù)據(jù)操縱語(yǔ)言(DML)是指用來(lái)查詢、添加、修改和刪除數(shù)據(jù)庫(kù)中數(shù)的語(yǔ)句。數(shù)據(jù)控制語(yǔ)言(DCL)是用來(lái)設(shè)置或者更改數(shù)據(jù)為用戶或角色權(quán)限的語(yǔ)句。據(jù)此,本題正確答案為選項(xiàng)A。
5.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。
6.C本題考查結(jié)構(gòu)體數(shù)組。a[2].a(chǎn)ge為結(jié)構(gòu)體aEZ]的age成員,即a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個(gè)元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個(gè)元素“A”,*(a[3].name+2)是取指針?biāo)赶虻刂返膬?nèi)容。
7.D
8.D本題考查兩個(gè)知識(shí)點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
9.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é),三者相加即可。
10.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。
11.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評(píng)估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。
12.C解析:因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或1時(shí),返回值3。否則p=x-fun(x-2)這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)時(shí),其過(guò)程為:“fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1))=7-(5-(3-3))=7-5=2”,所以最后的輸出結(jié)果為2。
13.D
14.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來(lái)的聯(lián)系反映到數(shù)據(jù)庫(kù)中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。
15.B
16.B
17.A解析:f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28。
18.D
19.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語(yǔ)句應(yīng)該是:p=&data.a。選項(xiàng)A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個(gè)成員,而不是一單獨(dú)的變量,故選項(xiàng)A不正確;選項(xiàng)B在p=data.a表達(dá)式中右邊為一個(gè)結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項(xiàng)B不正確;選項(xiàng)D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項(xiàng)D不正確:4個(gè)選項(xiàng)中只有C正確。
20.C
21.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語(yǔ)言表達(dá)式為:(x>-5)&&(x<5)。
22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊(duì)列也是線性表,也町以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
23.類類解析:在面向?qū)ο蟮姆椒ㄖ校丫哂邢嗤瑢傩院头椒ǖ膶?duì)象稱為類,類是對(duì)象的抽象,對(duì)象是類的實(shí)例。
24.main()pstr*(pstr+j)
25.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
26.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。
27.左左解析:對(duì)二叉排序樹進(jìn)行查找,若待查的值與根結(jié)點(diǎn)的值相比,若比根小,則繼續(xù)在左子樹中找;若比根大,則在右子樹中找。
28.i<10i<10解析:分析程序,當(dāng)(i=0,1,2,…)時(shí),“j=i*10+9”語(yǔ)句的運(yùn)行結(jié)果是(9,39,69,99)個(gè)位數(shù)為9的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%3!=0)continue;”語(yǔ)句的功能是當(dāng)條件不能被3整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時(shí)輸出該數(shù),即輸出的數(shù)滿足條件100以內(nèi)能被3整除且個(gè)位數(shù)為9。
29.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。
30.23
31.8888解析:程序中的0210表示八進(jìn)制數(shù),%x是以十六進(jìn)制形式輸出。本題可先將0210轉(zhuǎn)換為十進(jìn)制數(shù),再將其轉(zhuǎn)換為十六進(jìn)制數(shù)。
32.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達(dá)式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
對(duì)應(yīng)的C語(yǔ)言的表達(dá)式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。
33.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。
34.實(shí)體完整性實(shí)體完整性解析:關(guān)系模型中的完整性是指數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和一致性。為了維護(hù)數(shù)據(jù)庫(kù)中數(shù)據(jù)與現(xiàn)實(shí)世界的一致性,關(guān)系數(shù)據(jù)庫(kù)的插入、刪除、修改操作必須遵循3類完整性規(guī)則。關(guān)系模型的3類完整性指的是實(shí)體完整性、參照完整性和用戶定義的完整性。
35.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
36.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
37.1111解析:main函數(shù)調(diào)用fun函數(shù)時(shí),將10賦給n,形參數(shù)組t與實(shí)參數(shù)組a共用一段內(nèi)存空間。執(zhí)行if-else語(yǔ)句時(shí),n=10,所以執(zhí)行else子句。由于n>=2成立,執(zhí)行m=fun(t[0],9),遞歸調(diào)用fun函數(shù),m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),當(dāng)n=1時(shí)滿足if(n=1)的條件,執(zhí)行return語(yǔ)句,返回?cái)?shù)組首地址指向的值t[0],所以答案為11。
38.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn)。
39.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
40.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語(yǔ)句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語(yǔ)句,直到表達(dá)式的值為假時(shí),結(jié)束while語(yǔ)句的執(zhí)行,繼續(xù)執(zhí)行while語(yǔ)句后面的語(yǔ)句:i=0時(shí)滿足循環(huán)條件,也滿足if的條件,執(zhí)行語(yǔ)句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
41.B解析:在C語(yǔ)言中,對(duì)于自定義函數(shù)要遵循“先定義,后使用”的規(guī)則,如定義時(shí),不指定函數(shù)類型,C編譯系統(tǒng)都默認(rèn)函數(shù)的返回值是int型。
42.C解析:題目fun()函數(shù)中while循環(huán)的意思是:判斷s所指內(nèi)容是否為數(shù)字字符,如果是數(shù)字字符,則計(jì)算表達(dá)式n=10*n+*s-'0';。其中*s-'0'的作用是將相應(yīng)的數(shù)字字符轉(zhuǎn)換為數(shù)值,例如字符'8'減去字符'0'后,得到的結(jié)果就是數(shù)值8了。n=10*n+的作用是將累計(jì)變量n中原來(lái)內(nèi)容乘以10,然后再加上剛轉(zhuǎn)換的數(shù)字字符的數(shù)值,例如原來(lái)n的值為1,*s現(xiàn)在的內(nèi)容為'2',那么執(zhí)行了n=10*n+*s-'0';語(yǔ)句后,n的值變?yōu)?2,如果接下來(lái)再來(lái)一個(gè)'8'字符,執(zhí)行n=10*n+*s-'O';語(yǔ)句后,n的值就是128了。故不難看出fun()函數(shù)的作用是“將數(shù)字字符串轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)值,碰到非數(shù)字字符時(shí)結(jié)束”。從主函數(shù)中定義的字符數(shù)組s的初始化內(nèi)容可以看出,fun()函數(shù)返回值應(yīng)該是61。故應(yīng)該選擇C。
43.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測(cè)試都屬于軟什開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng),花費(fèi)代價(jià)最大的一個(gè)階段.軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。
44.B解析:關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實(shí)體集也可以轉(zhuǎn)換成關(guān)系。
45.A解析:靜態(tài)局部變量在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久性的存儲(chǔ)單元。由此可知靜態(tài)局部變量的生存期將一直延長(zhǎng)到程序運(yùn)行結(jié)束。故選項(xiàng)A正確;而全局變量的只有一種靜態(tài)存儲(chǔ)類別,故全局變量說(shuō)明為stattc存儲(chǔ)類,和沒有說(shuō)明為static存儲(chǔ)類其生存期都是一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確;未賦初值的auto型變量的初值是隨機(jī)的,未賦初值的static型變量的初值是0(故選項(xiàng)C和選項(xiàng)D不正確)。所以;4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
46.C解析:隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭,選項(xiàng)A和選項(xiàng)B錯(cuò)誤。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來(lái)先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯(cuò)誤。
47.C解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。
48.C解析:本題考核的知識(shí)點(diǎn)是函數(shù)的返回值.函數(shù)的返回值應(yīng)該為return后面的表達(dá)式的值,在本題中的表達(dá)式為*p,*p指的是形參p所指存儲(chǔ)單元中的值,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
49.C解析:共用體類型結(jié)構(gòu)的特點(diǎn)是使幾個(gè)不同的變量共占同一段內(nèi)存,但在每一瞬時(shí)只能存放其中一種,而不是同時(shí)存放幾種,共用體變量中起作用的成員是最后一次存放的成員,在存入一個(gè)新的成員后原有的成員就失去作用。因此本題起作用的是成員b的值,所以程序打印輸出3。
50.D解析:a是一個(gè)2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項(xiàng)A、B、C都是錯(cuò)誤的引用。計(jì)算選項(xiàng)D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。
51.B解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時(shí)將其打印出來(lái)。
52.B解析:本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為7的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則pfintf函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
53.D解析:選項(xiàng)A二維數(shù)組行下標(biāo)為1,即數(shù)組有一行元素,列下標(biāo)為4表示一行中包含4個(gè)元素,而初值列表中有5個(gè)元素,故A錯(cuò)。選項(xiàng)B省略了列下標(biāo)故錯(cuò)誤。選項(xiàng)C二維數(shù)組行下標(biāo)為2,數(shù)組有2行元素,而初值列表中有3行元素,故C錯(cuò)誤。故D為所選。
54.A
55.B
56.C解析:線性結(jié)構(gòu),是指數(shù)據(jù)元素只有一個(gè)直接前件元素和直接后件元素。線性表是線性結(jié)構(gòu)。棧和隊(duì)列是指對(duì)插入和刪除操作有特殊要求的線性表,樹是非線性結(jié)構(gòu)。
57.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^(guò)對(duì)象與對(duì)象間彼此的相互合作來(lái)推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
58.A解析:本題主要考查結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)有3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。
59.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。
60.B解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹結(jié)構(gòu)來(lái)表示的,其中實(shí)體集(記錄型)是樹中的結(jié)點(diǎn),而樹中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。所以,本題的正確答案是B。
61.A第一次循環(huán)返回l2,第二次循環(huán)返回l2,累加結(jié)果為24。
62.D本題考查if語(yǔ)句的嵌套。if語(yǔ)句中的一
種表達(dá)方式,即:if…elseif…。
該表達(dá)式的語(yǔ)句是:
if(表達(dá)式1)
語(yǔ)句l
elseif(表達(dá)式2)
語(yǔ)句2
elseif(表達(dá)式3)
語(yǔ)句3
else
語(yǔ)句4
本題執(zhí)行elsey=1.0,并且以”%f”輸出。
63.B
64.C函數(shù)hm()求數(shù)組指定返回的元素的積。函數(shù)fun(a,3)求的是數(shù)組a[0]~a[3]的積。因此結(jié)果為2t3女4十5=120,故答案為C選項(xiàng)。
65.D
66.C
67.Af函數(shù)返回的結(jié)構(gòu)體與涵數(shù)內(nèi)定義的b結(jié)構(gòu)體相同,所以答案選擇A)。
68.C本題屬于綜合性題目,考查的知識(shí)點(diǎn)有字符數(shù)組的指針表示,for循環(huán)與if語(yǔ)句的結(jié)合
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械與維護(hù)作業(yè)指導(dǎo)書
- 農(nóng)業(yè)產(chǎn)業(yè)鏈創(chuàng)新技術(shù)研發(fā)手冊(cè)
- 臨床路徑管理實(shí)施方案及實(shí)施細(xì)則
- 健康飲食與運(yùn)動(dòng)作業(yè)指導(dǎo)書
- 商鋪裝修糾紛起訴書模板
- 服裝店裝修免租期協(xié)議樣本
- 雨水收集回用系統(tǒng)的組成部分
- 變壓器項(xiàng)目可行性研究報(bào)告
- 三農(nóng)企業(yè)戰(zhàn)略規(guī)劃與實(shí)施方案
- 制藥行業(yè)新醫(yī)藥技術(shù)與臨床應(yīng)用方案
- 景觀照明燈具技術(shù)規(guī)格標(biāo)準(zhǔn)附詳圖參考
- 《簡(jiǎn)·愛》外國(guó)小說(shuō)閱讀,初中語(yǔ)文下冊(cè)名著閱讀精講課件(部編版)
- 滬教版高一英語(yǔ)上冊(cè)(牛津版)全冊(cè)課件【完整版】
- 疾控中心考試試題
- 2023門球競(jìng)賽規(guī)則電子版圖文并茂
- DB13T 2801-2018 水利工程質(zhì)量監(jiān)督規(guī)程
- Q∕SY 05262-2019 機(jī)械清管器技術(shù)條件
- 耳鼻咽喉頭頸外科學(xué)耳鼻咽喉應(yīng)用解剖
- DBJ51 014-2021 四川省建筑地基基礎(chǔ)檢測(cè)技術(shù)規(guī)程
- 科學(xué)研究方法與學(xué)術(shù)論文寫作
- 英語(yǔ)的起源與發(fā)展(課堂PPT)
評(píng)論
0/150
提交評(píng)論