版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.設(shè)有說(shuō)明:charw;intx;f1oaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類(lèi)型為()。
A.floatB.charC.intD.double
2.有以下程序:#include<stdio.h>typedefstruct{intnum;charname[10];intscore;}PER;voidfun(PERx[]){intt;if(x[0].score>x[1].score){t=x[0].score;x[0].score=x[1].score;x[1].score=t;}}main(){PERs[2]={{1001,“zhang”,621},{1002,“wang”,585}};inti;fun(s);for(i=0;i<2;i++)printf(“%d,%s,%d,”,s[i].num,s[i].name,s[i].score);}程序的運(yùn)行結(jié)果是()。A.1001,zhang,585,1002,wang,621,
B.1001,zhang,621,1002,wang,585,
C.1002,wang,585,1001,zhang,621,
D.1002,wang,621,1001,zhang,585,
3.下列合法的聲明語(yǔ)句是()。
A.int_abc=50;
B.doubleint=3+5e2.5;
C.longdo=1L:
D.float3_asd=3e-3;
4.下列關(guān)于信息系統(tǒng)的敘述中,錯(cuò)誤的是()。
A.廣播電視是一種雙向的、點(diǎn)到多點(diǎn)的信息交互系自
B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)
C.電話(huà)是一種雙向的、點(diǎn)對(duì)點(diǎn)的、以信息交互為主要的的系統(tǒng)
D.雷達(dá)是一種以感測(cè)和識(shí)別為主要目的的系統(tǒng)
5.棧這種數(shù)據(jù)結(jié)構(gòu)一般應(yīng)用在()。
A.遞歸調(diào)用B.子程序調(diào)用C.表達(dá)式求值D.A,B,C
6.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00
7.有如下定義:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能輸出字母M的是()
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0]);
8.以下()不是隊(duì)列的基本運(yùn)算
A.從隊(duì)尾插入一個(gè)新元素B.從隊(duì)列中刪除第i個(gè)元素C.判斷一個(gè)隊(duì)列是否為空D.讀取隊(duì)頭元素的值
9.一個(gè)無(wú)向連連通圖的生成樹(shù)是含有該連通圖的全部項(xiàng)點(diǎn)的_______。
A.極小連通子圖B.極小子圖C.極大連通子圖D.極大子圖
10.算法的時(shí)間復(fù)雜度取決于()
A.問(wèn)題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B
11.以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.輸出值不定
12.數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,()沒(méi)有專(zhuān)門(mén)的軟件對(duì)數(shù)據(jù)進(jìn)行管理。
I.人工管理階段
II.文件系統(tǒng)階段
Ⅲ.?dāng)?shù)據(jù)庫(kù)階段A.A.僅IB.僅ⅢC.I和IID.II和Ⅲ
13.若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
14.設(shè)x和y均為bool量,則x&&y為真的條件是()。
A.它們均為真B.其中一個(gè)為真C.它們均為假D.其中一個(gè)
15.以下不完整的程序擬實(shí)現(xiàn)調(diào)用getmax函數(shù),找出4個(gè)變量中最大的一個(gè):#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下選項(xiàng)若填入下劃線(xiàn)處,不能實(shí)現(xiàn)上述功能的是()。
A.getmax(getmax(getmax(a,b),c),d)
B.getmax(getmax(a,b),getmax(c,d))
C.getmax(a,getmax(b,getmax(c,d)))
D.mx=(getmax(a,b),getmax(c,d))
16.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
17.關(guān)于指針,以下說(shuō)法正確的是()。A.可以直接向指針中寫(xiě)入數(shù)據(jù)
B.若指針指向變量,則可以向指針?biāo)竷?nèi)存單元寫(xiě)入數(shù)據(jù)
C.指針可以指向內(nèi)存中任何位置,并寫(xiě)入數(shù)據(jù)
D.兩個(gè)指針可以通過(guò)加運(yùn)算求和,形成一個(gè)功能更強(qiáng)大的指針
18.對(duì)于長(zhǎng)度為n的線(xiàn)性表,在最壞情況下,下列各種排序法所對(duì)應(yīng)的比較次數(shù)中正確的是(
A.冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2
19.按照標(biāo)識(shí)符的要求,()符號(hào)不能組成標(biāo)識(shí)符。
A.連接符B下劃線(xiàn)B.大小寫(xiě)字母C.數(shù)字字符
20.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
22.以下程序的輸出結(jié)果是【】。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{
inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
23.將以下程序段寫(xiě)成三目運(yùn)算表達(dá)式:【】。
if(a>b)max=a;
elsemax=b;
24.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱(chēng)為一個(gè)______。
25.【】(黑箱或白箱)測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。
26.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
27.若有如下程序:
voidsub()
{staticintx=8;
x/=2;printf("%d",x);
}
main()
{intm;
for(m=0;m<2;m++)sub();}
則程序運(yùn)行后的輸出結(jié)果是【】.
28.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類(lèi)型,請(qǐng)寫(xiě)出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
29.長(zhǎng)度為n的順序存儲(chǔ)線(xiàn)性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。
30.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
31.軟件是程序、數(shù)據(jù)和【】的集合。
32.數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為_(kāi)_____模式、內(nèi)部級(jí)模式與外部級(jí)模式。
33.成本估算模型中,Putnam估算模型是一種【】模型。
34.下面程序運(yùn)行后的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
35.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。
36.下面的程序可對(duì)指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
37.用以下語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁铡t=(char*)【】;
38.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
39.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】?jī)刹糠纸M成。
40.一個(gè)項(xiàng)目有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于【】的聯(lián)系。
三、1.選擇題(20題)41.下列不屬于軟件工程的3個(gè)要素的是______。
A.工具B.過(guò)程C.方法D.環(huán)境
42.在計(jì)算機(jī)內(nèi)部,一切信息存取、處理和傳送的形式是()
A.ASCⅡ碼B.BCD碼C.二進(jìn)制D.十六進(jìn)制
43.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
44.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){chara[]={'a','b','c','d','e','f,'\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d",i,j);}
A.7,7B.7,6C.6,6D.6,7
45.下列字符數(shù)組初始化語(yǔ)句中,不正確的是()。
A.charc[]='goodmoming';
B.charc[20]="goodmorning";
C.charc[]={'a','b','c','d'};
D.charc[]={"goodmoming"};
46.以下選項(xiàng)中,與k==n++完全等價(jià)的表達(dá)式是()。
A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
47.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個(gè)數(shù)多于原來(lái)關(guān)系中屬性個(gè)數(shù)的是
A.選擇B.連接C.投影D.并
48.下列不合法的main函數(shù)命令行參數(shù)的表示形式是______。
A.main(inta,char*c[]);
B.main(ac,av)intarc;char**av;
C.main(c,v)intc;char*v[];
D.main(argc,argv)intargc;charargv[];
49.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開(kāi)發(fā)階段是()。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
50.下面不屬于軟件設(shè)計(jì)原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
51.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
52.設(shè)定義下列結(jié)構(gòu)體,結(jié)構(gòu)體變量p的出生年份賦值正確的語(yǔ)句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;
A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;
53.對(duì)于下列字符串,說(shuō)明表達(dá)式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};
A.10B.1C.6D.7
54.以下敘述中錯(cuò)誤的是______。A.用戶(hù)所定義的標(biāo)識(shí)符允許使用關(guān)鍵字
B.用戶(hù)所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名知意”
C.用戶(hù)所定義的標(biāo)識(shí)符必須以字母或下劃線(xiàn)開(kāi)頭
D.用戶(hù)定義的標(biāo)識(shí)符中,大、小寫(xiě)字母代表不同標(biāo)識(shí)
55.C語(yǔ)言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
56.以下各選項(xiàng)企圖說(shuō)明一種新的類(lèi)型名,其中正確的是______。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:int
57.以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#號(hào)時(shí)結(jié)束輸入和輸出操作,但程序有錯(cuò)。#include<stdio.h>main(){FILE*fout;charch;four=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}felose(fout);}出錯(cuò)的原因是
A.函數(shù)fopen調(diào)用形式錯(cuò)誤B.輸入文件沒(méi)有關(guān)閉C.函數(shù)fsetc調(diào)用形式錯(cuò)誤D.文件指針stdin沒(méi)有定義
58.下列程序的輸出結(jié)果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}
A.8,2,3,4,5,6,7,1
B.5,6,7,8,1,2,3,4
C.1,2,3,4,5,6,7,8
D.8,7,6,5,4,3,2,1
59.下列程序的輸出結(jié)果是()main(){charch[2][5]={"6934","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'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.69825C.63825D.693825
60.設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。
A.'a'&&'b'
B.a<=b
C.a||+c&&b-c
D.!((a<b)&&!c||1)
四、選擇題(20題)61.
62.整型變量X和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是()。
A.X‖YB.X|YC.X&YD.X^Y
63.
64.
65.下列說(shuō)法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()
A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢(xún)D.數(shù)據(jù)約束
66.
67.
68.
69.按照C語(yǔ)言規(guī)定的用戶(hù)標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。
A.大寫(xiě)字母B.連接符C.數(shù)字字符D.下劃線(xiàn)
70.
71.設(shè)有宏定義:
72.
73.以下結(jié)構(gòu)體類(lèi)型說(shuō)明和變量定義中正確的是()。
74.在C語(yǔ)言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()。
A)%B)/
C)<D)!
75.設(shè)有以下語(yǔ)句:typedefstructTY{charC;inta{41;}CIN;
則下面敘述中正確的是()。
A.CIN是structTr類(lèi)型的變量
B.TT是struct類(lèi)型的變量
C.可以用,lr定義結(jié)構(gòu)體變量
D.可以用CIN定義結(jié)構(gòu)體變量
76.C語(yǔ)言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
77.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.4B.3C.1D.9
78.若有以下語(yǔ)句
79.若有說(shuō)明語(yǔ)句:double*p,a;則通過(guò)scanf語(yǔ)句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。A.A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
80.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.OB.2C.3D.5
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}
六、程序設(shè)計(jì)題(1題)82.假定輸人的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)proc,它的功能是:將字符串中
的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。
例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則
應(yīng)當(dāng)是a*bc*def*g****。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編
寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidproc(char*str)
{
}
voidmain
{
charstr[81];
printf("Enterastring:kn");
gets(str);
proc(str);
printf("Thestringafterdeleted:kn");
puts(str);}
參考答案
1.D
2.A程序首先使用typedef定義一種新的類(lèi)型名PER,它包含3種數(shù)據(jù)成員:整數(shù)num,字符數(shù)組name,整數(shù)score。main函數(shù)使用PER定義結(jié)構(gòu)體數(shù)組s,s包含兩個(gè)PER類(lèi)型的元素。然后調(diào)用函數(shù)fun將數(shù)組s傳入。fun函數(shù)的功能是比較形參數(shù)組x的兩個(gè)元素的score值的大小。若第1個(gè)元素的score值大于第2個(gè)元素的score值,就使用臨時(shí)變量t將兩個(gè)元素的score值交換。由于621大于585且x等價(jià)于實(shí)參s的指針,因此實(shí)參s的兩個(gè)元素的score也會(huì)進(jìn)行交換,執(zhí)行完fun函數(shù)之后,for循環(huán)將兩個(gè)元素輸出。故本題答案為A選項(xiàng)。
3.A解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線(xiàn)組成,并且它的第一個(gè)字符必須是字母或者下劃線(xiàn)。另外C語(yǔ)言規(guī)定了一些專(zhuān)用的標(biāo)識(shí)符,它們有著固定的含義,不能更改。int就是表達(dá)變量類(lèi)型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名,所以選項(xiàng)B)不正確。do是C語(yǔ)言的一個(gè)關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項(xiàng)C)不正確。
4.A廣播/電視是一種單向的、點(diǎn)對(duì)多點(diǎn)(面)的以信息傳遞為主要目的的系統(tǒng)。
5.D
6.A結(jié)構(gòu)體和共用體;在“聯(lián)合”中,各成員共享一段內(nèi)存空間,一個(gè)聯(lián)合變量的長(zhǎng)度等于各成員中最長(zhǎng)的長(zhǎng)度。應(yīng)該說(shuō)明的是,這里所謂的共享不是指把多個(gè)成員同時(shí)裝入一個(gè)聯(lián)合變量?jī)?nèi),而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值
7.D
8.B
9.A
10.C
11.A解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。
12.A數(shù)據(jù)管理技術(shù)發(fā)展的蘭個(gè)階段中,只有人工管理階段,沒(méi)有操作系統(tǒng),沒(méi)有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專(zhuān)門(mén)數(shù)據(jù)管理軟件,一般稱(chēng)為文件系統(tǒng)。在數(shù)據(jù)庫(kù)系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專(zhuān)門(mén)軟件系統(tǒng),即數(shù)據(jù)庫(kù)管理系統(tǒng)。
13.D解析:運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識(shí)點(diǎn)是:x%=k,等價(jià)于x=x%k。注意:強(qiáng)制類(lèi)型轉(zhuǎn)換表達(dá)式。
14.A
15.Dgetmax函數(shù)接收兩個(gè)整型變量x、y,使用條件運(yùn)算符返回x和y中的較大值。main函數(shù)首先輸入a、b、c、d4個(gè)整數(shù)值,然后通過(guò)調(diào)用getmax函數(shù),輸出它們的最大值。假設(shè)x、y是整數(shù),選項(xiàng)A中,首先執(zhí)行“getmax(a,b)”,返回a、b中的較大值X,再執(zhí)行“getmax(x,c)”,返回x、c中的較大值y,最后執(zhí)行“getmax(y,d)”,返回y、d中的較大值,滿(mǎn)足題意,正確;選項(xiàng)B中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行“getmax(x,y)”,返回x、y中的較大值,正確;選項(xiàng)C中,首先執(zhí)行“getmax(c,d)”,返回c、d的較大值X,再執(zhí)行“getmax(b,x)”,返回b、x中的較大值y,最后執(zhí)行“getmax(a,y)”,返回a、y中的較大值,正確;選項(xiàng)D中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行逗號(hào)表達(dá)式“(x,y)”,返回值為7,不滿(mǎn)足題意。故本題答案為D選項(xiàng)。
16.C在計(jì)算(float)(a4-b)/2時(shí),由于通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類(lèi)型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類(lèi)型從高級(jí)類(lèi)型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類(lèi)型的級(jí)別由低到高的排序表示為:char→int→unsigned→log→float→double。
17.BC語(yǔ)言中指針就是變量的地址,它必須有確定的基類(lèi)型。當(dāng)指針指向某個(gè)變量時(shí),才能向其中寫(xiě)入數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時(shí)不能寫(xiě)入數(shù)據(jù),另外指針必須有基類(lèi)型,只能指向基類(lèi)型相同的變量,選項(xiàng)C錯(cuò)誤;指針只能與一個(gè)整數(shù)進(jìn)行運(yùn)算,即移動(dòng)指針,兩個(gè)指針不能運(yùn)算,選項(xiàng)D錯(cuò)誤。本題答案為B選項(xiàng)。
18.D在最壞情況下,冒泡排序和快速排序的比較次數(shù)都是n(n一1)/2。【知識(shí)拓展】所謂冒泡排序,就是將相鄰的兩個(gè)數(shù)據(jù)比較,如前面的數(shù)據(jù)大于后面的,則位置互換。這樣不停地比較、互換,其實(shí)就是把大的數(shù)往后排,小的數(shù)往前排(就像冒泡一樣冒出來(lái)了)。
19.A
20.D本題主要考查帶參數(shù)的宏定義,過(guò)程如下:由于定義為define(x)x*x沒(méi)有括號(hào)優(yōu)先級(jí),所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
21.aa解析:'z'的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后,得97,以字符形式輸出是a。
22.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。
23.max=(a>b)?a:bmax=(a>b)?a:b解析:本題考查三目運(yùn)算符的用法,條件表達(dá)式的一般形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
所以,本題可以寫(xiě)成(a>b)?a:b,它是一個(gè)條件表達(dá)式,執(zhí)行順序是:如果條件(a>b)為真,則條件表達(dá)式取值a,否則取值b。
24.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。
25.黑箱黑箱解析:本題考查了軟件測(cè)試中的黑箱測(cè)試。黑箱測(cè)試是根據(jù)程序規(guī)格說(shuō)明所規(guī)定的功能來(lái)設(shè)計(jì)測(cè)試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程。常用的黑箱測(cè)試技術(shù)分為等價(jià)類(lèi)劃分、邊界分析、錯(cuò)誤猜測(cè)以及因果圖等。
26.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í)滿(mǎn)足循環(huán)條件,也滿(mǎn)足if的條件,執(zhí)行語(yǔ)句得i=11,a=11,第2次循環(huán)不滿(mǎn)足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿(mǎn)足i<20,循環(huán)結(jié)束。
27.4242解析:主函數(shù)中的for循環(huán)循環(huán)兩次,即函數(shù)sub()被調(diào)用兩次。在sub()中x被定義為靜態(tài)整型變量,當(dāng)調(diào)用函數(shù)sub()完畢返回主函數(shù),x中的值仍然保留,下次調(diào)用函數(shù)sub()時(shí),x不再被賦初值。第1次調(diào)用x/=2相當(dāng)于x=x/2=8/2=4,第2次調(diào)用x=x/2=4/2=2,因此輸出42。
28.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無(wú)類(lèi)型”(或稱(chēng)“空類(lèi)型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當(dāng)二維數(shù)組作為形參時(shí),二維數(shù)組的第一維可以省略。
29.n/2性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
30.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
31.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
32.概念(或概念級(jí))概念(或概念級(jí))
33.動(dòng)態(tài)多變量動(dòng)態(tài)多變量
34.246
35.封裝封裝
36.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過(guò)程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下—個(gè)字符,則通過(guò)中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
37.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲(chǔ)區(qū),此題要分配11字節(jié)的單元,把11代入即可。
38.yesyes解析:程序if語(yǔ)句中是賦值表達(dá)式,而不是相等“==”運(yùn)算。因?yàn)閏=a+b中a+b的值為4,賦給c,c=4,表達(dá)式為真,輸出yes。
39.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。
40.一對(duì)多或1:N一對(duì)多或1:N解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有三種,即一對(duì)一(1:1)的聯(lián)系、一對(duì)多(1:N)或多對(duì)一(N:1)的聯(lián)系和多對(duì)多(N:N)的聯(lián)系。
41.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理和文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制和管理。
42.D
43.C解析:A、D選項(xiàng)是關(guān)系運(yùn)算表達(dá)式,在C語(yǔ)言中,只要關(guān)系運(yùn)算符兩邊是合法的表達(dá)式就可以了。C選項(xiàng)中,%只能對(duì)整型進(jìn)行運(yùn)算,其中對(duì)f進(jìn)行了強(qiáng)制類(lèi)型轉(zhuǎn)換,但是轉(zhuǎn)換的表達(dá)式錯(cuò)了,應(yīng)為:(int)(f)。
44.B解析:sizeof()函數(shù)的功能是返回字符串所占的字節(jié)數(shù),strlen()函數(shù)的功能是返回字符串的長(zhǎng)度,其中'\\0'是一個(gè)轉(zhuǎn)義字符,它占存儲(chǔ)空間,但不計(jì)入串的長(zhǎng)度。
45.A解析:本題考查兩個(gè)概念:①用單引號(hào)括起來(lái)的一個(gè)字符常量只能存放一個(gè)字符;②C語(yǔ)言中沒(méi)有字符串變量,只能用字符數(shù)組來(lái)存儲(chǔ)字符串。
選項(xiàng)A)中一個(gè)單引號(hào)內(nèi)放了若干個(gè)字符是錯(cuò)誤的:選項(xiàng)B)和選項(xiàng)D)選項(xiàng)中將一個(gè)字符串賦值給一個(gè)字符數(shù)組是允許的。
46.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然為n原來(lái)的值,即k的值變?yōu)閚加1之前的值。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒(méi)有變化,所以這個(gè)表達(dá)式和本題中表達(dá)式等價(jià);選項(xiàng)B中先n加1,然后將n加1后的值賦給k,所以這個(gè)表達(dá)式和本題中表達(dá)式不等價(jià):選項(xiàng)C中先計(jì)算表達(dá)式++n的值,執(zhí)行++n后,k變?yōu)閚加1后的值,所以這個(gè)表達(dá)式和題目中的表達(dá)式不等價(jià);選項(xiàng)D中表達(dá)式展開(kāi)為k=k=(n+1),k被累加,所以這個(gè)表達(dá)式和題目中的表達(dá)式不等價(jià)。所以4個(gè)選項(xiàng)中A正確。
47.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過(guò)選擇或投影運(yùn)算得到的新關(guān)系的屬性個(gè)數(shù)最多不會(huì)超過(guò)原關(guān)系中的屬性個(gè)數(shù)。經(jīng)過(guò)連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個(gè)數(shù)。故選項(xiàng)B正確。
48.D解析:main函數(shù)的參數(shù)通常有兩個(gè),前者為整型,后者為字符型指針數(shù)組。參數(shù)的名字可以是任意合法的標(biāo)識(shí)符。而且,形如**av與*av[]等價(jià),所以選項(xiàng)A、B、C均正確,選項(xiàng)D是錯(cuò)誤的。
49.B解析:軟件開(kāi)發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
50.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來(lái)而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語(yǔ)言中的過(guò)程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。
51.C解析:求余運(yùn)算符'%'兩邊的運(yùn)算對(duì)象必須是整型,而選項(xiàng)B)和D)中'%'兩邊的運(yùn)算對(duì)象有浮點(diǎn)整數(shù)據(jù),所以選項(xiàng)B)和D)是錯(cuò)誤的表達(dá)式。在選項(xiàng)A)中賦值表達(dá)式的兩邊出現(xiàn)相同的變量x,也是錯(cuò)誤的。選項(xiàng)C)是一個(gè)逗號(hào)表達(dá)式,所以正確答案為C)。
52.C解析:本題主要考查怎樣為嵌套定義的結(jié)構(gòu)中的成員賦值:由于worker中的birth是一個(gè)st型的結(jié)構(gòu),在給birth賦值時(shí),不能將birth作為一個(gè)整體,要用“.”運(yùn)算再深入一層訪問(wèn)到最基本的成員x、y、z。
53.C解析:strlen(s)返回s字符串中字符的個(gè)數(shù),若s是個(gè)數(shù)組,則返回?cái)?shù)組元素的個(gè)數(shù)。
54.A解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線(xiàn)三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線(xiàn)。大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符,用戶(hù)在定義標(biāo)識(shí)符時(shí)應(yīng)盡量做到“見(jiàn)名知意”,且不允許使用關(guān)鍵字作標(biāo)識(shí)符。
55.D解析:C語(yǔ)言中的文件是流式文件。流式文件是一種無(wú)結(jié)構(gòu)文件,即整個(gè)文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。
56.C解析:C語(yǔ)言中可以使用typedef來(lái)重新定義已有的數(shù)據(jù)類(lèi)型,相當(dāng)于為數(shù)據(jù)類(lèi)型取個(gè)別名。
57.A解析:stdin是標(biāo)準(zhǔn)輸入設(shè)備的文件指針,不需定義直接可以使用,它隨系統(tǒng)的啟動(dòng)而打開(kāi),隨系統(tǒng)的關(guān)閉而關(guān)閉,fgetc()函數(shù)的作用是從某個(gè)文件中讀取一個(gè)數(shù)據(jù),其參數(shù)為要讀取文件的文件指針。fopen()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是打開(kāi)的文件名,第二個(gè)參數(shù)是文件打開(kāi)模式,兩個(gè)參數(shù)都是字符串,本例中“four=fopen('abc.txt','w');”語(yǔ)句的fopen()函數(shù)參數(shù)是錯(cuò)誤的,應(yīng)該用雙引號(hào)“w”,正確的應(yīng)改為fout=fopen(“abc.tx”,“w”);。
58.D解析:函數(shù)f()的功能是對(duì)兩個(gè)數(shù)據(jù)互換。在主函數(shù)中指針變量p和q分別指向數(shù)組a[8)的首和尾,在while循環(huán)中實(shí)現(xiàn)從首尾開(kāi)始數(shù)組元素的互換操作。
59.A
60.D解析:選項(xiàng)A:'a'&&'b'是字符a與b的相與,不為0:選項(xiàng)B:a<=b,由題中變量賦值可知,結(jié)果為1。選項(xiàng)C:a||+c&&b-c,結(jié)果為1;選項(xiàng)D:!((a<B)&&!c||1),運(yùn)算結(jié)果為0。
61.D
62.DX||Y是將X和Y作邏輯或運(yùn)算,因?yàn)槎际欠?,所以結(jié)果為1,X|Y是做位或運(yùn)算,即相同位置的數(shù)字只要有一個(gè)為1,結(jié)果為1,其結(jié)果也為非0,X&Y是為與運(yùn)算,相同位置的數(shù)字都為1的時(shí)候才為1,其結(jié)果為非0,X^Y做位異或運(yùn)算,即同0異1,因?yàn)閄與Y的值相等,所以相同位置的數(shù)字一定相同。
63.D
64.B
65.C通俗地講,數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬和抽象。數(shù)據(jù)模型是把現(xiàn)實(shí)生活中的具體事務(wù)轉(zhuǎn)換成計(jì)算機(jī)能夠處理的數(shù)據(jù)工具。任何一種數(shù)據(jù)庫(kù)系統(tǒng)都必須建立在一定的數(shù)據(jù)模型之上。由于現(xiàn)實(shí)世界的復(fù)雜性,不可能直接從現(xiàn)實(shí)世界中建立數(shù)據(jù)模型,所以,人們通常采用如下的處理過(guò)程。
現(xiàn)實(shí)世界抽象至信息世界,再轉(zhuǎn)化為機(jī)器世界
把整個(gè)過(guò)程劃分成三個(gè)世界和兩個(gè)階段。首先要把現(xiàn)實(shí)世界抽象為信息世界,并建立信息世界中的數(shù)據(jù)模型,即概念模型,然后進(jìn)一步把概念模型轉(zhuǎn)化為可以在計(jì)算機(jī)中實(shí)現(xiàn)的且最終支持?jǐn)?shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)模型?,F(xiàn)實(shí)世界,簡(jiǎn)單地說(shuō),就是人們賴(lài)以生存的生活環(huán)境,它是具體事物和抽象概念的總和。信息世界也稱(chēng)為概念世界,現(xiàn)實(shí)世界在人們頭腦中的反映就是信息世界,信息世界不是現(xiàn)實(shí)世界的錄像,必須從具體事務(wù)出發(fā)抽象其概念。當(dāng)信息世界進(jìn)入計(jì)算機(jī)后,就成為了機(jī)器世界。
一般地講,任何一種數(shù)據(jù)模型都是嚴(yán)格定義的概念的集合。這些概念必須能夠精確地描
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 橋梁工程總承包合同協(xié)議
- 城市綠化帶廣告牌安裝施工合同
- 鹽城市設(shè)計(jì)創(chuàng)意中心租賃合同
- 購(gòu)物中心休息區(qū)地磚鋪裝協(xié)議
- 鄉(xiāng)村旅游魚(yú)塘施工合同范本
- 酒店租賃合同協(xié)議:電競(jìng)比賽專(zhuān)用
- 環(huán)境監(jiān)測(cè)系統(tǒng)施工合同
- 物流配送招投標(biāo)合同承諾書(shū)
- 城市商業(yè)街箱涵施工協(xié)議
- 建筑電氣工程皮卡租賃合同
- 專(zhuān)門(mén)學(xué)校情況報(bào)告
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)構(gòu)建
- 數(shù)學(xué)思想與方法-國(guó)家開(kāi)放大學(xué)電大機(jī)考網(wǎng)考題目答案
- 杭州奧泰生物技術(shù)股份有限公司IVD研發(fā)中心建設(shè)項(xiàng)目環(huán)境影響報(bào)告表
- 公共衛(wèi)生事業(yè)管理專(zhuān)業(yè)職業(yè)生涯規(guī)劃書(shū)
- GB/T 43232-2023緊固件軸向應(yīng)力超聲測(cè)量方法
- 低壓配電室的安全操作規(guī)程
- 新目標(biāo)漢語(yǔ)口語(yǔ)課本2課件-第2單元
- 二手車(chē)買(mǎi)賣(mài)合同(標(biāo)準(zhǔn)版范本)
- 國(guó)有企業(yè)合規(guī)制度培訓(xùn)
- 血液透析的醫(yī)療質(zhì)量管理與持續(xù)改進(jìn)
評(píng)論
0/150
提交評(píng)論