




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年安徽省合肥市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
2.當(dāng)用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
3.使用深度優(yōu)先算法遍歷下圖,遍歷的順序為()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG
4.在下面棧的基本運算中,不是加工型運算的是______。
A.初始化B.進(jìn)棧C.退棧D.判棧空
5.下列敘述中正確的是()。
A.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
6.有以下程序:#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);}程序運行時輸入k并按<Enter>鍵,則輸出結(jié)果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
7.有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3:print[("%d\n",b);}程序運行后的輸出結(jié)果是()。A.0B.1C.2D.3
8.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07
9.設(shè)x和y均為int型變量,且x=10,y=3,則以下語句的輸出結(jié)果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
10.以下是正確的C語言實型常量的是()。
A..8e+8.B.e+8C.+8e.8D.+8.8e+8
11.下列敘述中正確的是A.為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系
B.表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項
C.一個關(guān)系的屬性名表稱為關(guān)系模式
D.一個關(guān)系可以包括多個二維表
12.設(shè)單鏈表中結(jié)點的結(jié)構(gòu)為已知指針p所指結(jié)點不是尾結(jié)點,若在*p之后插入結(jié)點*s,則應(yīng)執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
13.下列程序的運行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2
14.
15.
16.
17.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
18.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運行
D.賦值表達(dá)式末尾加分號就構(gòu)成賦值語句
19.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是()。
A.循環(huán)隊列B.棧C.順序表D.循環(huán)鏈表
20.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
二、2.填空題(20題)21.開發(fā)軟件所需要的高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象被人們稱之為【】。
22.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。
23.下列程序的運行結(jié)果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
24.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%dln",a,b,c);
}
執(zhí)行后輸出結(jié)果為______。
25.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
msin()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
26.下面程序的運行結(jié)果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}
27.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
28.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:
1
11
121
1331
14641
其構(gòu)成規(guī)律是:
①第0列元素和主對角線元素均為1;
②其余元素為其左上方和正上方元素之和;
③數(shù)據(jù)的個數(shù)每行遞增1。
請將程序補充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=x[i][i]=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
29.寫出下列程序的輸出結(jié)果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
30.設(shè)函數(shù)findbig已定義為求3個數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】;
seanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,2);
printf("big=%d\n",big);
}
31.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。
32.當(dāng)循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進(jìn)行入隊運算。這種情況稱為【】。
33.在宏定義#definePI3.14159中,用宏名PI代替一個______。
34.以下程序段的輸出結(jié)果是【】。
inti=9;
printf("%o\n",i);
35.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
36.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
37.______是數(shù)據(jù)庫應(yīng)用的核心。
38.下列程序的輸出結(jié)果是【】。
intt(intx,inty,intcp,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);
}
39.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu)、存取方式等)改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
40.下列語句使指針p指向一個double類型的動態(tài)存儲單元。
p=【】malloc(sizeof(double));
三、1.選擇題(20題)41.樹是結(jié)點的集合,它的根結(jié)點的數(shù)目是()。
A.有且只有1個B.1或多于1C.0或1D.至少有2個
42.在C語言中,下列關(guān)于文件操作的敘述正確的是()。
A.對文件操作必須先關(guān)閉文件B.對文件操作必須先打開文件C.對文件操作順序沒有統(tǒng)一規(guī)定D.以上全錯
43.執(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
44.以下4個程序中,完全正確的是
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.include<stdio.h>main(){/*programming*/printf("programming!\n");}
45.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計B.詳細(xì)設(shè)計C.可行性分析D.需求分析
46.設(shè)x和y均為int型變量,則以下語句:“x+=y;y=x-y;x-=y;”的功能是______。
A.把x和y按從大到小排列B.把x和y按從小到大排列C.無確定結(jié)果D.交換x和y中的值
47.閱讀下列程序段,則程序的輸出結(jié)果為
#include"stdio.h"
#defineM(X,Y)(X)*(Y)
#defineN(X,Y)(X)/(Y)
main()
{inta=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);
A.3B.5C.6D.8
48.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
49.有如下程序:#include<stdio.h>main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結(jié)果是
A.0B.1C.2D.3
50.在計算機內(nèi)部,一切信息存取、處理和傳送的形式是()
A.ASCⅡ碼B.BCD碼C.二進(jìn)制D.十六進(jìn)制
51.若執(zhí)行下面的程序時,從鍵盤輸入5和2,則輸出結(jié)果是
main()
{inta,b,k;
scanf("%d,%d",&a,&b);
k=a;
if(a<b)k=a%b;
elsek=b%a;
printf("%d\n",k);}
A.5B.3C.2D.0
52.若有如下程序段:structstudent{intnum;floatscore;}stu[3]={{10,85},{60,58},{32,23}};main(){structstudent*t;t=stu;}則下面表達(dá)式中值為58的是()。
A.(*t).numB.*(t++)->numC.(*++t)scoreD.(++t)->score
53.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段
54.對于n個結(jié)點的單向鏈表(無表頭結(jié)點),需要指針單元的個數(shù)至少為______。
A.n-1B.nC.n+1D.2n
55.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數(shù)的功能是()。
A.將P1所指字符串復(fù)制到p2所指內(nèi)存空間,
B.將p1所指字符串的地址賦給指針p2
C.對p1和p2兩個指針?biāo)缸址M(jìn)行比較
D.檢查p1和p2兩個指針?biāo)缸址惺欠裼?\0'
56.以下有4組用戶標(biāo)識符,其中合法的一組是______。
A.FOR
B.4d
C.f2G3
D.WORD-subDOIFvoidCaseSizeabcdefine
57.有以下程序main(){inta=15,b=21,m=0;switch(a%3){casc0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(“%d\n”,m);}程序運行后的輸出結(jié)果是
A.1B.2C.3D.4
58.某二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為()
A.n+1B.n-1C.2nD.n/2
59.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}
A.7B.8C.9D.10
60.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<=10||!(y-x)>10
D.(x-y)*(x-y)<100
四、選擇題(20題)61.下列敘述中正確的是()。
A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上3種說法都不對
62.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,0,7,0,B.1,2,3,4,C.1,4,5,9,D.3,4,8,10,
63.
有下列程序:
main
{intk=5,n=0;
while(k>0)
{switch(k)
{dcfault:break;
case1:n=n+k;
case2:
case3:n+=k;
}
k--;
}
printf("%d\n".n);
}
程序運行后的輸出結(jié)果足()。
A.0B.4C.6D.7
64.面向?qū)ο蠓椒ㄖ?,繼承是指()。
A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制
65.
66.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
67.有以下結(jié)構(gòu)體說明、變量定義和賦值語句
68.
69.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
70.軟件生命周期中的活動不包括()。
A.市場調(diào)研B.需求分析C.軟件測試D.軟件維護
71.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
72.下列對于線性鏈表的描述中正確的是()。
A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的
B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面
D.存儲空間必須連續(xù),且各元素的存儲順序是任意的
73.
74.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。
A.順序結(jié)構(gòu)B.選擇(分支)結(jié)構(gòu)C.GOT0跳轉(zhuǎn)D.重復(fù)(循環(huán))結(jié)構(gòu)
75.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的字符是
A.大寫字母B.連接符C.小寫字母D.下畫線
76.若有以下程序
#include<stdio.h>
voidf(intn);
main()
{
voidf(intn);
f(5);
}
voidf(intn)
{
printf("%d\n",n);
}
則以下敘述中不正確的是
A.若只在主函數(shù)中對函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f
B.若在主函數(shù)前對函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f
C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復(fù)說明
D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型
77.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
78.
79.(35)檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。
A.確認(rèn)測試
B.集成測試
C.驗證測試
D.驗收測試
80.在一個C程序中
A.main函數(shù)必須出現(xiàn)在所有的函數(shù)之前B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有的函數(shù)之后D.main函數(shù)必須出現(xiàn)在固定位置
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main)函數(shù),不得增行或刪行,也不得,t更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,其功能是:計算并輸出下列多項式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S=0.680803。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。
試題程序:
#includet:stdio.h>
doubleproc(intn)
{
}
voidmain
{
intn;
doubleslim;
printf("\nInputn:");
scanf("%d",&n);
sum=proc(n)。
printf("\ns=%f\n",sum);
}
參考答案
1.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。
2.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數(shù)可以輸入一整行作為一個字符串,其中也包括空格字符,故應(yīng)該選擇C。
3.C
4.D
5.B解析:如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個條件:(l)有且只有一個根結(jié)點;(2)每個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項錯誤。有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項錯誤。
6.Dmain函數(shù)定義一個字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結(jié)束標(biāo)識‘\\0’后的一個字符,如下圖所示。接著通過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的元素位置,此時str字符串如下。故本題答案為D選項。
7.D
8.C根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因為x的類型是int,則X的值為1;執(zhí)行語句y=(K+3.8)/5.0時,即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進(jìn)行除法運算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項。
9.D
10.DC語言中,實型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。其中指數(shù)形式的一般形式為:尾數(shù)E(或e)整型指數(shù)。C語言規(guī)定,字母E或e之前必須要有數(shù)字,且E或e后面的指數(shù)必須是整數(shù),所以選項A、B、C錯誤,選項D正確。故本題答案為D選項。
11.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對數(shù)據(jù)進(jìn)行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計算機,也就是建立關(guān)系。所以選項A錯誤。對于一個表示關(guān)系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關(guān)系的屬性名表稱為關(guān)系模式,也就是二維表的表框架,相當(dāng)于記錄型。因此,選項C說法正確。
12.B
13.D本題考查"drhile循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,X++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<X成立,執(zhí)行break語句,退出循環(huán)。結(jié)果為D。
14.D
15.A
16.B
17.A本題考查了雙重三目運算符的用法。例如:表達(dá)式a>b?c:d可以看成,當(dāng)a>b時取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當(dāng)b>c時為真,則k=a>b?1:0。當(dāng)bb?0:0。也就是說,當(dāng)a>b并且b>C時,k=1,否則k=0。所以A選項符合題意。
18.C解析:C語句必須以分號結(jié)束,選項A是正確的。復(fù)合語句在語法上被看作一條語句,選項B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當(dāng)作條件子句或者循環(huán)體來看待,所以選項c是錯誤的。賦值表達(dá)式末尾加分號就構(gòu)成賦值語句,選項D正確。故本題應(yīng)該選擇C。
19.B解析:循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),隊列是以先進(jìn)先出為原則組織數(shù)據(jù)的一種特殊線性表,選項A錯誤;棧是以先進(jìn)后出為原則組織數(shù)據(jù)的一種特殊線性表,選項B正確;順序表是線性表的順序存儲結(jié)構(gòu),選項C錯誤;循環(huán)鏈表是一般線性表的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),選項D錯誤。
20.D
\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。
\n
21.軟件危機軟件危機
22.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對象。
23.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1-24。
24.503503解析:此處需注意的是:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復(fù)合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復(fù)合語句。先判斷表達(dá)式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達(dá)式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
25.1371513715解析:程序中n是一個有5個元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時,n[1]=n[0]*2+1,此時n[1]=1;i=2時,n[2]=n[1]*2+1,此時n[2]=3;i=3時,n[3]=n[2]*2+1,此時n[3]=7;i=4時,n[4]=n[3]*2+1,此時n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。
26.s=30s=30解析:分析循環(huán)條件“m=1,m<=4”,所以循環(huán)4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。
27.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。
28.x[i-1][j-1]+x[i-1][j]x[i-1][j-1]+x[i-1][j]解析:在程序外層i循環(huán)中先將數(shù)組的第0列元素和主對角線元素置1,內(nèi)層j循環(huán)的功能是給其余元素賦值,根據(jù)題意,空格內(nèi)應(yīng)填入x[i-1][j-1)+x[i-1][j]。
29.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。
30.findbigfindbig解析:本題首先定義了一個指向函數(shù)的指針變量f,如果希望讓它指向某個函數(shù),只需把函數(shù)名賦給該指針變量即可。所以說本題的空格處應(yīng)該填入函數(shù)名findbig。
31.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法.
32.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當(dāng)循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進(jìn)行入隊運算,這種情況稱為“上溢”。
33.字符串字符串解析:本題考查字符替換格式:#define標(biāo)識符字符串。
34.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進(jìn)制輸出i的值,9的八進(jìn)制數(shù)的表示為11。
35.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。
36.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應(yīng)該是3+1+3+1+1=9。故本題應(yīng)該填9。
37.數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計
38.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
39.物理獨立性物理獨立性
40.(double*)
41.CC?!窘馕觥繕渚哂忻黠@的層次關(guān)系,即樹是一種層次結(jié)構(gòu)。在樹結(jié)構(gòu)中,根結(jié)點在第一層上。當(dāng)樹為非空時,樹中有且只有一個根結(jié)點,當(dāng)樹為空時,樹中根結(jié)點的數(shù)目為0。
42.B解析:本題考查對文件的操作。文件打開后才可以對文件進(jìn)行操作,使用結(jié)束后要關(guān)閉文件。對文件的操作都是順序讀寫,即從文件的第一個數(shù)據(jù)開始,依次進(jìn)行讀寫。
43.D解析:考查continue語句的使用。continue語句的作用是結(jié)束本次循環(huán),直接進(jìn)入下次循環(huán)。
44.B解析:選項A)main();的分號是錯誤的,不能有分號;選項C)的注釋語句多了兩個*號;選項D)include前面沒有#。
45.D通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
軟件生命周期的主要活動階段為:
①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。
②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。
③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。
④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進(jìn)行必要而且可能的擴充和刪改。
46.D解析:先將兩個數(shù)的和賦給變量x,即x=x+y;再執(zhí)行y=x-y,相當(dāng)于y=(x+y)-y=x,x的值已經(jīng)換給了y;最后執(zhí)行x=x-y,相當(dāng)于x=(x+y)-x=y,這樣不通過第3個變量就可以將兩個變量的值互換。
47.A解析:帶參數(shù)的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進(jìn)行M的宏替換,之后再進(jìn)行N的宏替換,替換后的表達(dá)式為(a)*(b)/(c)。
48.C答案C
解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。
49.C解析:if語句嵌套使用時,else總是與它上面最近的if配對。因此,本題中先判斷(a<b),因為表達(dá)式的值為0,故不執(zhí)行下面的if語句,直接跳到printf行,c值沒有改變。
50.D
51.C解析:本題考查簡單的if卐lse語句。先執(zhí)行條件if(a<b),顯然不成立,在執(zhí)行else語句。
52.D解析:本題是以結(jié)構(gòu)體指針的方式防問結(jié)構(gòu)體數(shù)組中的元素。main()函數(shù)之前聲明了一個結(jié)構(gòu)體,并在聲明同時定義了一個全局結(jié)構(gòu)體數(shù)組stu[3]。主函數(shù)中,第一行定義了一個該結(jié)構(gòu)體的指針t,然后讓t指向stu,即t指向的是數(shù)組stu的第一個元素。選項A提取的是數(shù)組第一個元素的num成員,值為10,不符合題意。選項B使用了一個后綴自增運算符,使t指向第二個元素,但t++表達(dá)式返回的還是第一個元素的指針,故結(jié)果與選項A相同,不符合題意,選項C語法錯誤編譯不會通過。故應(yīng)該選擇D。
53.B數(shù)據(jù)庫應(yīng)用系統(tǒng)的邏輯設(shè)計包括數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫事務(wù)概要設(shè)計和應(yīng)用程序概要設(shè)計三方面。數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的主要步驟為:將E—R圖轉(zhuǎn)換為初始關(guān)系模式,對初始關(guān)系模式進(jìn)行優(yōu)化,檢查關(guān)系表對數(shù)據(jù)庫事務(wù)的支持性,確定關(guān)系模式完整性約束,設(shè)計基于關(guān)系模式的用戶視圖。
54.C解析:在n個結(jié)點的單向鏈表(無表頭結(jié)點)中,每個結(jié)點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。
55.A解析:本題中的while((*p2=*p1)!='\\0')語句首先進(jìn)行賦值*p2=*p1,即把p1所指存儲單元的字符逐一復(fù)制到p2所指存儲單元中,然后判斷p1所指單元內(nèi)容是否為'\\0',若判斷條件成立,則指針p1和p2依次指向下一個字符,繼續(xù)執(zhí)行循環(huán)體語句,否則循環(huán)終止。
56.C解析:C語言的標(biāo)識符的定義為:以字母或下劃線開頭的由字母、數(shù)字字符、下戈峨組成的字符串。而且標(biāo)識符不能與關(guān)鍵字相同。
57.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達(dá)式a%3,即15%3為0;執(zhí)行case0;后面的語句m++;m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。
58.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結(jié)點(即葉子結(jié)點)數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為n+1。因此,本題的正確答案是選項A。
59.B
60.C解析:本題考核的知識點是關(guān)系運算和邏輯運算的混合應(yīng)用。選項A用了一個絕對值函數(shù)abs(),故選項A正確:選項B中用了一個“&&”邏輯與,故選項B正確:選項C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值,故選項C不正確;選項D為本題中數(shù)學(xué)關(guān)系式的一個等價命題,故選項D正確.所以,4個選項中選項C符合題意。
61.D程序(program)是為實現(xiàn)特定目標(biāo)或解決特定問題而用計算機語言編寫的命令序列的集合。設(shè)計算法時要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計,但是不僅僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計,還要考慮到其他的程序結(jié)構(gòu)的問題。設(shè)計算法時不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時間冗余度等方面。所以答案選擇D。
62.A該程序首先在定義變量時,對二維數(shù)組a[][N]進(jìn)行賦值操作;調(diào)用函數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0兒0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組元素l,0,7,0,輸出。
63.D
\n本題主要考查while循環(huán)語句和switchcase語句的使用方法。其執(zhí)行步驟為:k=5時,跳出switch語句,然后k自減1;當(dāng)k=4時,跳出switch語句,然后k自減1;當(dāng)k=3時,n=13+k=0+3=3,跳出switch語句,然后k自減1;當(dāng)k=2時n=n+k=3+2=5,跳出switch語句,然后k自減l;當(dāng)k=1時,case1:n=n+k一5+1=6,沒有break繼續(xù)執(zhí)行CaSe3;n=n+k=6+1=7,跳出switch語句,然后k自減1;當(dāng)k=0時,退出循環(huán),所以輸出結(jié)果為7。
\n
64.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機制。
65.B
66.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。
67.Aps一>age不是地址,不能用于scanf函數(shù)中。所以選擇A)。
68.C\r\n
69.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會導(dǎo)致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風(fēng)格的程序是不允許出現(xiàn)的。
70.A軟件的生命周期描述了軟件從產(chǎn)生到最終消亡的全過程,生命周期中的活動包括需求分析、軟件設(shè)計(分為概要設(shè)計和詳細(xì)設(shè)計)、軟件實現(xiàn)、軟件測試和軟件維
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)平臺運營合作協(xié)議
- 瀝青路面攤鋪施工合同
- 檢修承包合同
- 冀教版小學(xué)信息技術(shù)三年級上冊《二畫大熊貓》教學(xué)設(shè)計
- 房屋NFT數(shù)字產(chǎn)權(quán)綁定協(xié)議
- 福建加強型貝雷片施工方案
- 地下石油庫工程施工方案
- 14《小蝸牛》(教學(xué)設(shè)計)2024-2025學(xué)年一年級上冊語文統(tǒng)編版
- 第12課《橋》教學(xué)設(shè)計-2024-2025學(xué)年統(tǒng)編版語文(五四學(xué)制)六年級上冊
- 商品房預(yù)制樓板施工方案
- (兒科學(xué)課件)腎病綜合征
- 光纜線路工程段終版施工圖
- 礦井年度災(zāi)害預(yù)防和處理計劃
- 畢業(yè)論文-基于Java Web的模擬駕??荚囅到y(tǒng)設(shè)計與實現(xiàn)
- MDD指令附錄一 基本要求檢查表2013版
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計)
- 人美版高中美術(shù)選修:《繪畫》全冊課件【優(yōu)質(zhì)課件】
- 進(jìn)制轉(zhuǎn)換教學(xué)設(shè)計
- 垂直度和跳動形位公差間的關(guān)系及取代應(yīng)用下
- 單位數(shù)字證書業(yè)務(wù)申請表
- 大學(xué)物理答案北京郵電大學(xué)出版社
評論
0/150
提交評論