




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年陜西省榆林市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b='b';
C.noata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
2.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個C程序必須在開頭包含預(yù)處理命令行:#include
D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
3.下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。
A.#defineintINT
B.##defineeps0.001
C.##DEFINETRUE
D.#defineE2.88
4.若函數(shù)調(diào)用時的實參為變量,下列關(guān)于函數(shù)形參和實參的敘述中正確的是()。
A.函數(shù)的形參和實參分別占用不同的存儲單元
B.形參只是形式上的存在,不占用具體存儲單元
C.同名的實參和形參占同一存儲單元
D.函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元
5.設(shè)q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
6.哈希表的平均查找長度與處理沖突的方法無關(guān)()
A.對B.錯
7.假設(shè)把整數(shù)關(guān)鍵碼K散列到有N個槽的散列表,以下哪些散列函數(shù)是好的散列函數(shù)()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一個0到N-1的整數(shù)
8.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結(jié)果是()。A.503B.401C.500D.1404
9.語句int(*ptr)的含義是()。
A.ptr是一個返回值為int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
10.以下是根據(jù)文件大小分配存儲空間的一個算法偽代碼,請問其空間復(fù)雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))
11.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的運行結(jié)果是()。
A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1
12.若有定義“intx=10;”,則表達式“x-=x+x”的值為()。
A.0B.-20C.-10D.10
13.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
14.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是______。A.輸出字符a的ASCⅡ碼B.輸出字符c的ASCⅡ碼C.輸出字符cD.程序出錯
15.設(shè)有兩個串p和q,求q在p中首次出現(xiàn)的位置的運算稱為()。
A.連接B.模式匹配C.求子串D.求串長
16.隊和棧的主要區(qū)別是________
A.邏輯結(jié)構(gòu)不同B.存儲結(jié)構(gòu)不同C.所包含的運算個數(shù)不同D.限定插入和刪除的位置不同
17.
18.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
19.用不帶頭結(jié)點的單鏈表存儲隊列時,其隊頭指針指向隊頭結(jié)點,其隊尾指針指向隊尾結(jié)點,則在進行刪除操作時()。
A.僅修改隊頭指針B.僅修改隊尾指針C.隊頭、隊尾指針都要修改D.隊頭,隊尾指針都可能要修改
20.
二、2.填空題(20題)21.函數(shù)rewind的作用是
22.對于長度為n的順序存儲的線性表,當隨機插入和刪除一個元素時,需平均移動元素的個數(shù)為【】。
23.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,【】給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)和物理存取方法。
24.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
25.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
26.深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
27.十進制數(shù)111用八位二進制數(shù)表示為【】。
28.以下程序的運行結(jié)果是【】。
#include<string.h>
typeaefstructstudent{
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(a.name,b.name)>0)d=b;
if(strcmp(C.name,)>0)d=C;
printf("%1d%s\n",d.sno,p->name);
}
29.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護。
30.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
31.軟件需求規(guī)格說明書應(yīng)具有完整性、無歧義性、正確性、可驗證性、可修改性等特性,其中最重要的是【】。
32.以下程序的運行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
33.設(shè)一棵完全二叉樹共有700個結(jié)點,則在該二叉樹中有【】個葉子結(jié)點。
34.下列程序段的運行結(jié)果是______。
charstr口="ABCD",*p=str;
printf("%d\n",*(p+3));
35.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);[];}
while(n!=0);
printf("\n');
}
36.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
37.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
38.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
39.請選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}
40.執(zhí)行以下程序的輸出結(jié)果是()。
#include<stdio.h>
#defineM5
#defineNM+M
main()
{intk;
k=N*N*5;printf(”%d\n",k);
}
三、1.選擇題(20題)41.有如下程序main(){charch[2][5]={"6937","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';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
42.完整的計算機存儲器應(yīng)包括______。
A.軟盤、硬盤B.磁盤、磁帶、光盤C.內(nèi)存儲器、外存儲器D.RAM、ROM
43.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}執(zhí)行后輸出結(jié)果是()。
A.產(chǎn)生語法錯誤B.隨機值C.AD.65
44.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
45.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i)}
A.266B.11C.265D.138
46.已有定義:chara[]="xyz",b[]:{'x','y','z'};以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對
47.為了提高測試的效率,應(yīng)該()。
A.隨機選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
48.數(shù)據(jù)處理的最小單位是()。
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)
49.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}
A.49B.36C.25D.64
50.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是
A.startB.endC.startendD.endrt
51.下列描述中正確的是()。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
52.下列語句中,在字符串s1和s2相等時顯示“theyareEqual”的是()。
A.if(*s1==*s2)
B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");
C.if(s1==s2)
D.if(strcmp(s1,s2))Puts("theyareEqual");pros("theyareEqual");
53.能正確表“當x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。
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)
54.有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i)printf("%d\n",s);}程序運行后的輸出結(jié)果是
A.26B.28C.29D.24
55.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運行結(jié)果是
A.987654321B.4321098765C.5678901234D.987651234
56.有以下程序:#inlucde<stdio.h>main()D)233{intn,*P=NULL;*p=&n;printf("inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}該程序試圖通過指針P為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。
A.intn,*P=NULL;
B.*P=&n;
C.scanf(“%d",&p)
D.printf("%d\n",p);
57.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是
A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>
58.以下程序的運行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
59.下列關(guān)于邏輯運算符兩側(cè)運算對象的敘述中正確的是()。
A.只能是整數(shù)0或1B.只能是整數(shù)0或非0整數(shù)C.可以是結(jié)構(gòu)體類型的數(shù)據(jù)D.可以是任意合法的表達式
60.C語言中最簡單的數(shù)據(jù)類型包括()。
A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.整型、實型、邏輯型、字符型
四、選擇題(20題)61.
62.下列敘述中正確的是()。
A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結(jié)構(gòu)D.以上三種說法都不對
63.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.y=一1B.Y=0C.y=1D.while構(gòu)成無限循環(huán)
64.一些重要的程序設(shè)計語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實現(xiàn)遞歸調(diào)用中的存儲分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
65.若有以下程序段:
程序運行后的輸出結(jié)果是()。
A.16B.8C.4D.2
66.有以下程序:
#include<stdio.h>
#include<strin9.h>
main()
{printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}
程序運行后的輸出結(jié)果是()。
A.3B.8C.4D.9
67.(46)面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考
68.若有定義語句:intX=10;,則表達式x-=x+x的值為()。
A.0B.-20C.-10D.10
69.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進
70.
71.
72.有以下程序:
fun(inta[],intm,intn)
{inti;
for(i=m;i<n;i++)
a[i+1]=a[i]+3;
returna[i+1];
}
voidmain()
{
inti,a[6]={2,4,6,8,10,12};
fun(a,2,5);
for(i=0;i<6;i++)
printf("%d",a[i]);
}
程序運行后輸出的結(jié)果是()。
A.24691315B.24691215C.249121518D.249121415
73.
74.
以下程序執(zhí)行后sum的值是()。
main
{inti,sum;
for(i=1;i<6;i++)sum+=i:
printf("1%d\n",sum):
}
A.15B.14C.不確定D.0
75.在下列結(jié)論中,只有一個是錯誤的,它是()。
A.C語言允許函數(shù)的遞歸調(diào)用
B.C語言中的continue語句,可以通過改變程序的結(jié)構(gòu)而省略
C.有些遞歸程序是不能用非遞歸算法實現(xiàn)的
D.C語言中不允許在函數(shù)中再定義函數(shù)
76.
77.下列程序的輸出結(jié)果是()。#includeintfun(inta){intb=0;staticintc=4;a=c++;b++;return(a);}main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1);printf("%d\n",c);}A.4B.7C.6D.5
78.設(shè)有如下說明
typedefstruct
{intn;
charc;
doublex;
}STD;
則以下選項中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是
A.STDtt[2]={{1,’A’,62},{2,’B’,75}};B.STDtt[2]={1,"A",62,2,"B",75};
C.structtt[2]={{1,’A’},{2,’B’}};D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
79.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0B.1C.4D.8
80.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.y=一1B.y=oC.y=1D.while構(gòu)成無限循環(huán)
五、程序改錯題(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.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個實根。
yn+1=cos(yn)
迭代步驟如下:
(1)取y1初值為0.0;
(2)y0=y1,把y1的值賦給y0;
(3)y1=cos(y0),求出一個新的y1;
(4)若y0=y1的絕對值小于0.000001,則執(zhí)行步驟
(5),否則執(zhí)行步驟(2);
(5)所求y1就是方程COS(y)-y=0的一個實根,作為函數(shù)值返回。
程序?qū)⑤敵鼋Y(jié)果Result=0.739085。
請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。
部分源程序給出如下。
試題程序:
參考答案
1.B解析:本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,故選項C)錯誤。
2.B本題是對基本知識點的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當需要時才用#include<stdio.h>頭文件,預(yù)處理的作用就是實現(xiàn)宏定義和條件編譯。
3.D選項A中,int是關(guān)鍵字,不能作為用戶標識符;選項B中,兩個“#”錯誤;選項C中兩個“#”錯誤,另外DEFINE大寫也是錯誤的。故本題答案為D選項。
4.A在定義函數(shù)時,函數(shù)名后面圓括號中的變量名稱為“形式參數(shù)”(簡稱形參)。在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面圓括號中的參數(shù)(可以是一個表達式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。故本題答案為A選項。
5.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。
6.B
7.A
8.A此題是一個簡單的函數(shù)調(diào)用,當i=0并且i<30,執(zhí)行i+=10,并且調(diào)用函數(shù)f,所以當i=0時,結(jié)果為1,當i=10時,結(jié)果為101,當i=20時,結(jié)果為401,所以a=1+101+401=503。
9.C本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標識符(*指針變量名)()。“類型標識符”為函數(shù)返回值的類型。
10.C
11.D執(zhí)行語句“intm=1,n=2,*p=&m,*q=&n,*r;”,即指針變量p指向m,指針變量q指向n。執(zhí)行語句“r=p;p=q;q=r;”,即通過指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。故本題答案為D選項。
12.C算術(shù)運算符“+”的優(yōu)先級高于,且“-=”的結(jié)合方向為自右向左。所以表達式“x-=x+x”可以表示成“x=x-(x+x)=10-(10+10)=-10”。故本題答案為C選項。
13.BC語言中,char型變量的值是其對應(yīng)字符的ASCII值,可以做比較運算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時,判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項。
14.D解析:此題中s是—個字符數(shù)組,而字符數(shù)紐是在編繹時為它分配內(nèi)存單元的,即此字符數(shù)組的地址在編譯時是確定的,所以對此地址變量并不能賦值,故語句“s+=2;”錯誤,故程序出錯。
15.B
16.D
17.B
18.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。
19.D
20.D
21.A
22.n/2n/2解析:刪除一個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數(shù)為n/2。
23.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
24.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對所用到的函數(shù)的特征進行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達式進行檢測,以保證調(diào)用表達式與函數(shù)之間的參數(shù)正確傳遞.函數(shù)聲明的一般格式為:類型標識符函數(shù)名(類型標識符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
25.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進行比較。如果s1<s2,則返回負數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
26.1616解析:滿二叉樹的葉子結(jié)點都在最后一層,即第4層,且第4層的結(jié)點達到最大數(shù),即25-1=16。
27.11011111101111解析:本題通過除2取余法即可求出十進制數(shù)111所對應(yīng)的二進制數(shù)1101111。
28.2002Shanxian2002Shanxian解析:本題中第一個if語句將結(jié)構(gòu)體變量a.name和結(jié)構(gòu)體變量b.name中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量c.name和結(jié)構(gòu)體變量d.name較大的那個賦給結(jié)構(gòu)體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。
29.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預(yù)防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
30.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設(shè)計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設(shè)計測試實例時,測試人員將程序看成一個“黑盒”,即不關(guān)心程序內(nèi)部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計的測試用例完全是根據(jù)程序的功能說明來設(shè)計的。
31.正確性正確性解析:本題考查軟件工程中需求規(guī)格說明書的評審。衡量需求規(guī)格說明書好壞的標準按重要性次序排列為:正確性、無歧義性、完全性、可驗證性、一致性、可理解性、可修改性和可追蹤性。因此,劃線處應(yīng)填入“正確性”。
32.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價于(i>j?i:j)+1。因為6>8為假,則關(guān)系表達式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
33.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點。因此,設(shè)一棵完全二叉樹具有n個結(jié)點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點以及n/2-1個度為2的結(jié)點,還有1個是度為1的結(jié)點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點以及[n/2]個度為2的結(jié)點,沒有度為1的結(jié)點。本題中,完全二叉樹共有700個結(jié)點,700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點以及349個度為2的結(jié)點,還有1個是度為1的結(jié)點。所以,本題的正確答案為350。
34.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d,格式輸出的,即輸出其相應(yīng)ASCII碼值68。
35.n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10解析:根據(jù)s=n%10可知:此操作可以將輸入的數(shù)據(jù)n的最后—位賦給s,根據(jù)題目的要求是要將輸入的數(shù)據(jù)逆序輸出,現(xiàn)在已經(jīng)將原數(shù)據(jù)的個位輸出,在其后如果執(zhí)行n/=10司將原數(shù)據(jù)的個位數(shù)去掉,滿足do....while的條件繼續(xù)s=n%10操作,此時可求出十位上的數(shù)進行輸出,繼續(xù)執(zhí)行n/=10操作,與上相同最后將百位上的數(shù)進行輸出,所以該題答案為:\u3000n/=10。
36.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
37.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
38.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標和列標互換,然后賦給數(shù)組b即可。
39.C
40.5555解析:本題考查的重點是對宏定義的理解。#define指令定義一個標識符和一個串,編譯程序在對C源程序處理時.發(fā)現(xiàn)該標識符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。
41.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385,所以,正確答案是C)。
42.C
43.C解析:本題在定義共用體的同時,定義了一個共用體型變量u1,共占兩個字節(jié),有兩個成員n和c,兩個成員的首地址是相同的。因此給u1.c賦一個A,其實就是給無符號整型成員u1.n的低字節(jié)賦一個A,輸出u1.n的時候是以字符型的形式輸出,只輸出它的低地址的一個字節(jié),因此為A。所以,C選項為所選。
44.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈式結(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
45.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
46.C解析:數(shù)組長度是指數(shù)組占內(nèi)存空間的大小,即字節(jié)數(shù),它與sfflen函數(shù)所求的長度不同。對于chara[]='xyz',系統(tǒng)自動為其增加一個串結(jié)束符,\'\\0\',所以a數(shù)組的長度為4;對于b[]={\'x\',\'y\',\'z\'},系統(tǒng)不會為其增加串結(jié)束符\'\\0\',因此數(shù)組長度為3,故a數(shù)組長度大于b數(shù)組長度。
47.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務(wù)需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
48.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。
49.C解析:本題考查if語句.當執(zhí)行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下列的printf語句。
50.B解析:本題主要考查的是打開文件函數(shù)fopen().題目開始定義了一個函數(shù),該函數(shù)有兩個字符指針型參數(shù),其作用分別用來傳入文件名和文件內(nèi)容。函數(shù)首先定義一個文件指針印,然后使用fopen()函數(shù)打開參數(shù)fn所指定的文件。本題的關(guān)鍵就在于fopen()函數(shù)的第2個參數(shù),這個參數(shù)指定了文件打開的方式。'w'表示為寫而打開一個文本文件,如果文件不存在,則新建一個文件,否則將清空原有文件。接下來函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫入文件,最后調(diào)用fclose()函數(shù)關(guān)閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫入的是同一個文件,故只有最后一次寫入有效。所以應(yīng)該選擇B。
51.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質(zhì)量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。
52.B解析:字符串比較不能用兩個等于號(==)來進行比較,應(yīng)使用函數(shù)strcmp(s1,s2)來比較。函數(shù)stremp(s1,s2)的功能是:當字符串s1和s2相等時,返回值為0。因此,當表達式!strcmp(s1,s2)=1時,條件成立,執(zhí)行后面的語句,輸出theyareEqual。
53.C解析:本題考查邏輯與(&&)和邏輯或(‖)運算符的使用。x>=1和x<=10是邏輯與的關(guān)系,因此C語言表達式應(yīng)寫成“(x>=1)&&(x<=10)”,x>=100和x<=110也是邏輯與的關(guān)系,因此C語言表達式應(yīng)寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是邏輯或的關(guān)系,因此只要將前兩個表達式用邏輯或運算符連接起來即可,所以最后的表達式:(x>=1)&&(X<=10)‖(x>=100)&&(x<=110)。
54.C解析:全局變量的生存期是整個程序的運行期間,作用域是從變量定義的位置開始,到整個源文件結(jié)束止。但是,若全局變量和某一函數(shù)或語句塊中的局部變量同名,則在該函數(shù)或語句塊中,此全局變量被屏蔽,即在該函數(shù)或語句塊內(nèi),訪問的是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。靜態(tài)局部變量的生存期與全局變量相同,作用域和局部變量一樣都是整個函數(shù)成語旬塊內(nèi)有效。程序第一行定義了一個全局變量a,在f()函數(shù)開頭也定義了一個靜態(tài)局部變量a,而且在后面if語句的兩個子句中都定義了靜態(tài)局部變量a。這4個變量a雖然名字一樣,但卻是4個獨立的變量,而且在整個程序運行期都存在。在主函數(shù)中,在定義變量s時將s初始化為全局變量a的值2,然后使用一個for循環(huán)分別調(diào)用了3次f(0)、f(1)、f(2),并將得到的值累加到變量s中。第1次調(diào)用n=0為偶數(shù),執(zhí)行else子句,此時t累加的是else子句中的變量a,所以執(zhí)行后else子句中的a變?yōu)?,t變?yōu)?,然后return語句中的a是函數(shù)f()開頭定義的a,執(zhí)行后函數(shù)開頭的a變?yōu)?,所以返回值是5+3=8。第2次調(diào)用n為1是奇數(shù),執(zhí)行if子句,所以t變?yōu)?,if子句中的a變?yōu)?,然后返回時函數(shù)開頭的a變?yōu)?,返回值是4+4=8。第3次調(diào)用n為2是偶數(shù),又執(zhí)行else子句,else子句中的a現(xiàn)在還是上次執(zhí)行后的值6,所以t=6,然后返回時加上函數(shù)開頭的a的當前值5,最后返回11。所以s最終的值是2+8+8+11=29。故應(yīng)該選擇C。
55.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進行首尾互相調(diào)換。所以在主函數(shù)中,當fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5.6,7,8,9,01;再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。
56.A
57.A解析:本題考核的知識點是scanf()函數(shù)的運用。seanf()函數(shù)有兩個參數(shù),第一個參數(shù)為輸入格式字符串,第二個參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時數(shù)據(jù)的間隔,輸入時必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時必須原樣輸入。所以4個選項中選項A符合題意。
58.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
59.D解析:邏輯運算符兩側(cè)的運算對象可以是任意合法的表達式。邏輯表達式的運算結(jié)果或者為1(“真”),或者為0(“假”)。
60.B
61.C
62.D【答案】:D
【知識點】:棧和隊列
【解析】:棧和隊列都是線性結(jié)構(gòu),所以選項C錯誤;棧是一種先進后出的線性表,故選項A錯誤;隊列是一種先進先出的線性表,
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度學(xué)生傷害賠償協(xié)議書(校園意外)
- 二零二五年度道路運輸企業(yè)司機薪酬管理合同
- 2025年度物業(yè)保潔項目管理勞動合同
- 二零二五年度業(yè)主委員會與物業(yè)服務(wù)社區(qū)停車管理合同
- 2025年度門面房出租與租賃合同爭議解決協(xié)議
- 典當與拍賣服務(wù)作業(yè)指導(dǎo)書
- 2025年IT服務(wù)管理培訓(xùn)課件
- 二手住房出售協(xié)議
- 網(wǎng)絡(luò)直播行業(yè)主播言論免責(zé)協(xié)議
- 客戶關(guān)系管理軟件開發(fā)外包合同書
- 團播主持人協(xié)議
- 電梯維保經(jīng)營計劃書
- 蘇教版二年級科學(xué)下冊第7課《栽小蔥》課件PPT
- 市政道路工程質(zhì)量保證措施
- 網(wǎng)店運營管理(第二版)課件全套 段文忠 第1-9章 網(wǎng)店運營基本原理- 戰(zhàn)略化運營 動態(tài)競爭
- ISO22000體系文件清單
- 失禁性皮炎的護理
- 檢傷分類課件
- 河道地形測繪服務(wù)投標方案
- 液化石油氣鋼瓶倒殘操作規(guī)程
- 蔚縣新源玄武巖礦業(yè)有限公司大岳家山建筑石料玄武巖礦礦山地質(zhì)環(huán)境保護與治理恢復(fù)方案
評論
0/150
提交評論