版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年內(nèi)蒙古自治區(qū)烏蘭察布市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面程序的輸出結(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
2.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
3.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易讀性和文檔性
4.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
5.二維數(shù)組A按行順序存儲,其中每個元素占1個存儲單元。若A[1][1]的存儲地址為420,A[3][3]的存儲地址為446,則A[5][5]的存儲地址為_______
A.470B.471C.472D.473
6.已知各變量的類型說明如下則以下不符合C語言語法的表達(dá)式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
7.若有函數(shù)voidfun(doublea[]。int*n){…}以下敘述中正確的是()。A.調(diào)用fun函數(shù)時只有數(shù)組執(zhí)行按值傳送,其他實參和形參之間執(zhí)行按地址傳送
B.形參a和n都是指針變量
C.形參a是一個數(shù)組名,n是指針變量
D.調(diào)用fun函數(shù)時將把double型參數(shù)組元素一一對應(yīng)地傳送給形參a數(shù)組
8.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲诙€字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
9.設(shè)棧S的初始狀態(tài)為空,6個元素入棧的順序為e1,e2,e3,e4,e5和e6。若出棧的順序是e2,e4,e3,e6,e5,el,則棧s的容量至少應(yīng)該是()。
A.6B.4C.3D.2
10.數(shù)據(jù)結(jié)構(gòu)若采用鏈?zhǔn)酱鎯Y(jié)構(gòu),要求內(nèi)存中可用存儲單元的地址()。
A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以
11.若有以下程序
則程序的輸出結(jié)果是
A.3B.7C.6D.10
12.以下敘述中錯誤的是()。
A.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機器指令
B.C程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII形式存放在一個文本文件中
D.C語言源程序經(jīng)編譯后生成擴展名為.obj的目標(biāo)文件
13.單鏈表的存儲密度()順序表的存儲密度。
A.大于B.等于C.小于D.不能確定
14.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運行結(jié)果是()。
A.輸出字符c的ASCII值B.程序出錯C.輸出字符cD.輸出字符a的ASCII值
15.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。
A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)
16.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}
A.6,2B.6,4C.8,4D.8,6
17.有以下程序:#include<stdio.h>main(){intx=072;printf(“>%d<\n”,x+1);}程序運行后的輸出結(jié)果是()。
A.>073<B.>73<C.>142<D.>59<
18.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序運行后的輸出結(jié)果是()。
A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3
19.下面程序的運行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
20.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8
二、2.填空題(20題)21.如果一個工人可管理多個設(shè)備,而一個設(shè)備只被一個工人管理,則賣體“工人”與實體“設(shè)備”之間存在【】關(guān)系。
22.注釋一般分為序言性注釋和______注釋。
23.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲空間是______的。
24.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且函數(shù)fun為void型,請寫出函數(shù)fun的首部【】。要求形參名為b。
main()
}doubles[10][22];
intn;
┆
fun(s);
┆
}
25.已定義charch=′$′;inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為【】。
26.深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
27.以下程序運行后的輸出結(jié)果是______。
main
{
inna=b=c=5:
if(c=a+b)
printf("yes\n);
else
printf("no\n);
}
28.單元測試又稱模塊測試,一般采用【】測試。
29.有以下程序:
#include<stdio.h>
intsub(intn)
{return(n/10+n%10);}
main()
{intx,y;
seanf("%d",&x);y=sub(sub(sub(x)));
printf("%d\n";,y);
}
若運行時輸入:1234<回車>,程序的輸出結(jié)果是【】。
30.下列程序的運行結(jié)果是_______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
primf("%d,",z<y?x++:y++);
primf("%d,%d",x,y);
}
31.函數(shù)fun的功能是計算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已經(jīng)正確定義變量m,a,b并賦值,要調(diào)用函數(shù)fun計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。
32.對于長度為n的線性表,若進(jìn)行順序查找,時間復(fù)雜性為【】;若進(jìn)行二分查找,則時間復(fù)雜性為【】。
33.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
34.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。
35.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
36.若有以下程序:
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%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
37.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#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",1);
}
38.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
39.在對文件進(jìn)行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。
40.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為______。
三、1.選擇題(20題)41.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結(jié)果是______。
A.0B.70C.35D.1
42.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()
A.定義、開發(fā)、運行維護
B.設(shè)計階段、編程階段、測試階段
C.總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試
D.需求分析、功能定義、系統(tǒng)設(shè)計
43.有以下程序
intfun(intn)
{if(n==1)return1;
else
return(n+fun(n-1));
}
main()
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x)
}
執(zhí)行程序時,給變量x輸入10,程序的輸出結(jié)果是
A.55B.54C.65D.45
44.下列敘述中正確的是()。
A.黑箱(盒)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征
B.黑箱(盒)測試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征
C.白箱(盒)測試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)
D.上述三種說法都不對
45.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
46.在16位C編譯系統(tǒng)中,若定義longa;則能給a賦值40000的正確語句是()。
A.a=2000p+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;
47.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是()
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch(int(x)){case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case1+2:printf("**\n");}
D.switch(a+B){case1:printf("*\n");casec:printf("**\n");}
48.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
49.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中
50.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
51.下列術(shù)語中,與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)的是______。
A.隊列B.棧C.二叉樹D.堆
52.下面對對象概念描述錯誤的是()
A.任何對象都必須有繼承性B.對象是屬性和方法的封裝體C.對象間的通訊靠消息傳遞D.操作是對象的動態(tài)屬性
53.設(shè)有以下說明語句:structex{intx;flocty;charz;}example;則下面的敘述中不正確的是()
A.struct是結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型
54.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
55.如下程序的輸出結(jié)果是______。main(){staticinta[4]={1,2,3,4};int**k,*j;j=a+1;k=&j;printf("%d\n",*(*k+2));}
A.運行錯誤B.4C.3D.2
56.以下程序的輸出結(jié)果是()main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;i<3;++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0,j<2;j++)n[i+1][j+1]+=[i][j];printf("%d\n",n[1][j]);}
A.14B.0C.6D.值不確定
57.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類說明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
58.在結(jié)構(gòu)化設(shè)計方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示______。A.A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
59.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。
A.x&&y
B.x<=y
C.x‖y+z&&y-z
D.!((x<y)&&!z‖1)
60.若有以下定義和語句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
A.10,20B.10,10C.20,10D.20,20
四、選擇題(20題)61.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代替
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性
62.以下對二維數(shù)組a進(jìn)行正確初始化的是()
A.inta[2][3]={{1,2},{3,4},{5,6}};
B.inta[][3]={1,2,3,4,5,6};
C.inta[2][]={1,2,3,4,5,6};
D.inta[2][]={{1,2},{3,4}};
63.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序的運行結(jié)果是
A.4B.3
C.2D.1
64.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2,3,1,6,8,7,5,4,10,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,4,3,9,12,12,11,11,18,9,
D.1,2,3,6,8,7,5,4,10,9,
65.軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
66.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序易讀性
67.
68.
有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是()。
structnode
{chardata;
structnode*next:
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
69.下列選項中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。
A.詳細(xì)設(shè)計B.運行維護C.可行性研究D.需求分析
70.針對簡單程序設(shè)計,以下敘述的實施步驟順序正確的是()。
A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔
B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔
C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試
D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔
71.設(shè)有如下說明
typedefstructST
{
longa;intb;charc[2];
}NEW;
則下列敘述中正確的是
A.以上的說明形式非法B.ST是一個結(jié)構(gòu)體類型
C.NEW是一個結(jié)構(gòu)體類型D.NEW是一個結(jié)構(gòu)體變量
72.
在下列給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。
A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)
73.以下程序的輸出結(jié)果是()。
charstr[15]=”hello!”;
printf(“%d\n”,strlen(str));
A.15B.14C.7D.6
74.
75.閱讀下面程序段,則執(zhí)行后的結(jié)果為()。
A.64B.8C.56D.0
76.
77.有以下程序段
structSTU
{charnum[10];floatscore[3];};
main()
{
structSTUs[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
inti;floatsum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序運行后的輸出結(jié)果是
A.260.00B.270.00
C.280.00D.285.00
78.設(shè)有如下函數(shù)定義若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是()。
A.3B.2C.4D.5
79.若有“doublea;”,則正確的輸入語句是()。A.A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a);
D.scanf("1e",&a);
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從3個紅球,5個白球,6個黑球中任意取出8個作為一組,進(jìn)行輸出。在每組中,可以沒有黑球,但必須要有紅球和白球。組合數(shù)作為函數(shù)值返回。正確的組合數(shù)應(yīng)該是l5。程序中i的值代表紅球數(shù),j的值代表白球數(shù),k的值代表黑球數(shù)。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g。***,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****a*bc*def*g。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符'*'的優(yōu)先級高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。
2.BA選項中不能將變量Y賦給表達(dá)式,c選項中錯誤與A選項一樣,D選項中強制類型轉(zhuǎn)換表達(dá)式應(yīng)寫成(doub1e)x/10。
3.C
4.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
5.C
6.A
7.B\n本題考查函數(shù)中數(shù)組和指針的傳值,數(shù)組a[]在參數(shù)傳遞時,是傳遞的數(shù)組a的首地址,所以形參a和n都是指針變量。。
\n
8.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
9.C
10.D
11.D第—個if語句a!=1條件為假,所以執(zhí)行dse后的語句r=1。第二個if語句b==2條件成立,執(zhí)行r+=2,r的值變?yōu)?,第三個if語句c!=3條件為假,所以不做任何操作。執(zhí)行下面的r+=3操作,r的值變?yōu)?。判斷第四個訌條件,d==4條件成立,執(zhí)行r+=4操作,結(jié)果為10。
12.AC語言中的非執(zhí)行語句不會被編譯,不會被轉(zhuǎn)換成二進(jìn)制的機器指令,所以A選項錯誤。由C語言構(gòu)成的指令序列稱為C語言源程序,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個擴展名為.obj的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此目標(biāo)文件與C語言提供的各種庫函數(shù)連接起來生成一個擴展名為.exe的可執(zhí)行文件。故本題答案為A選項。
13.C
14.B在C語言中,數(shù)組名類似于一個指向數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的“s+=2;”語句讓數(shù)組名S的內(nèi)容加2是錯誤的,編譯無法通過。故本題答案為B選項。
15.D此題考查的是基本的循環(huán),答案為D。
16.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。
17.D題干中x是一個整型變量,賦值為072。以0開頭的整數(shù)是八進(jìn)制的表示形式。printf函數(shù)中,格式字符%d表示以十進(jìn)制形式輸出“x+1”,所以需要將072轉(zhuǎn)換成十進(jìn)制數(shù),即7×8+2=58,輸出“x+1”為59。故本題答案為D選項。
18.Dmain函數(shù)中,首先定義兩個整型變量i和j,初值為3和7,并將i的地址賦給p,j的地址賦給q,傳給swap函數(shù)。swap函數(shù)接收兩個整型指針變量a、b,然后使用整型變量t交換a、b所指向的值并輸出。通過指針變量的交換改變了實參i、j的值,使得i=7,j=3。指針變量tp交換a和b的值,由于a、b的值是p、q值的復(fù)制,因此這次交換只改變了形參a、b的值,對實參p、q的值沒有改變,此時指針變量a指向j,指針變量b指向i。函數(shù)最后輸出*a和*b,所以輸出3,7。由于swap函數(shù)改變了p和q指向的值,因此main函數(shù)輸出i的值為7,j的值為3,*P的值為i,*q的值為j。最終程序輸出:3,7,7,3,7,3。故本題答案為D選項。
19.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標(biāo)來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時,就去掉這個字符,所以程序結(jié)束后,字符串item中就只剩下和兩個字符了。
20.A本題考查switch語句。當(dāng)i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當(dāng)i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
21.一對多一對多解析:實體之間的聯(lián)系有3類:一對一,一對多,多對多。設(shè)有兩個實體集E1和E2,如果E2中的每一個實體與E1中的任意個實體(包括零個)有聯(lián)系,而E1中的每一個實體最多與E2中的一個實體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設(shè)備之間是一對多關(guān)系。
22.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
23.連續(xù)連續(xù)解析:順序存儲結(jié)構(gòu)具有兩個特點:1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。
24.voidfun(double*b)或voidfun(doubleb[10][12])voidfun(double*b)或voidfun(doubleb[10][12])解析:本題考查數(shù)組名作函數(shù)參數(shù)。程序中被調(diào)用函數(shù)fun(s)的實參s是數(shù)組名,而s為double型數(shù)組名,所以函數(shù)fun的形參類型為double*。
25.11解析:在執(zhí)行邏輯表達(dá)式'j=!ch&&i++'時,首先判斷j=!ch的值,因為'ch=\'$\''不為0,所以'j=!ch=0',編譯系統(tǒng)便不再計算表達(dá)式'i++'的值,i的值不變,仍為1。
26.1616解析:滿二叉樹的葉子結(jié)點都在最后一層,即第4層,且第4層的結(jié)點達(dá)到最大數(shù),即25-1=16。
27.yesyes解析:if...else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu)。本題中,if后面括號里的表達(dá)式為c=a+b為真(即c=1+3=4為真);所以,執(zhí)行s1,即執(zhí)行prinff('yes\\'),最后輸出yes。
28.白盒法白盒法
29.1010解析:函數(shù)sub遞歸調(diào)用的返回值被作為再次調(diào)用sub函數(shù)的實參傳給函數(shù)sub的形參,共進(jìn)行3次遞歸調(diào)用。第1次調(diào)用sub(1234)的返回值為1234/10+1234%10=127;第2次調(diào)用sub(127)的返回值為127/10+127%10=19;第3次調(diào)用sub(19)的返回值為19/10+19%10=10。所以程序的輸出為10。
30.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。
“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計算表達(dá)式3的值,且為最終結(jié)果。
本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。
31.fun(a4)+fun(b4)-fun((a+b)3);fun(a,4)+fun(b,4)-fun((a+b),3);解析:函數(shù)fun的功能是計算x的n次方,a的4次方的調(diào)用函數(shù)為fun(a,4),b的4次方的調(diào)用函數(shù)為fun(b,4),(a+b)的3次方的調(diào)用函數(shù)為fun((a+b),3),計算m=a4+b4-(a+b)3的函數(shù)調(diào)用語句為:fun(a,4)+fun(b,4)-fun((a+b),3);
32.O(n)O(log2n)
33.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得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é)束。
34.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。
35.模塊模塊
36.503503解析:先判斷表達(dá)式a<b為假,不執(zhí)行t=a,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。再判斷表達(dá)式a<C,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
37.77解析:程序中經(jīng)過宏替換后,表達(dá)式t=MAX(a+b,c+d)*10變?yōu)閠=(a+b)>(c+d)?(a+b):(c+d)*10。因為(a+b)>(c+d)為真,所以t=(a+b),輸出結(jié)果為7。
38.fopenfopen解析:C語言中的文件分為:ASCII文件與二進(jìn)制j文件。文件在使用前打開,使用后要關(guān)閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式:);
關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。
39.rewind函數(shù)rewind函數(shù)解析:rewind函數(shù)的功能是使文件的位置指針回到文件的開頭。
40.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式!c的值為0,b=0&&1的結(jié)果顯然為0。
41.C解析:位與運算是將兩個運算分量看作兩個二進(jìn)制數(shù),然后對兩個二進(jìn)制數(shù)的相應(yīng)位進(jìn)行與運算,若同時為1則結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。因此,當(dāng)兩個運算分量相同時,它們的相應(yīng)位肯定也相同,即不同為1就同為0。所以得到的結(jié)果和運算分量也相同。所以,4個選項中選項C)符合題意。
42.A解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。
43.A本題主要考查函數(shù)的遞歸調(diào)用。在做遞歸調(diào)用函數(shù)類型的題目時,我們首先要找到函數(shù)的出口和遞歸結(jié)束的條件。
在本題中,程序首先定義了一個fun函數(shù),函數(shù)的形參是一個整型變量n,從后面的程序可以看出,該函數(shù)是一個遞歸函數(shù)。在函數(shù)體中,首先執(zhí)行條件判斷語句,如果條件結(jié)果為真,說明變量n為1,此時返回1,這是遞歸函數(shù)的出口;否則返回函數(shù)的遞歸調(diào)用。
在主函數(shù)中,定義一個變量x,并試圖通過鍵盤輸入的方式為變量x賦初值,然后調(diào)用fun函數(shù),并用x作為其形參,用x保存最后的運行結(jié)果輸出。
變量x的初值為10,從上面的分析我們知道,遞歸調(diào)用的出口是n=1,而每遞歸一次n的值減1,因此,函數(shù)fun遞歸調(diào)用了9次,其運算相當(dāng)于10+9+8+7+6+5+4+3+2+1=55。因此,程序最終的輸出結(jié)果是55。
44.A解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例,選項A是正確的,選項B錯誤。白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,選項C錯誤。正確答案為A。
45.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
46.D解析:40000已經(jīng)超過了C語言規(guī)定的短整型的范圍。要將這樣的數(shù)賦值給一個長整型變量,需要在整型常量后面加字母L。
47.C
48.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
49.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。
50.B解析:本題考查庫函數(shù)調(diào)用的知識點。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。
51.C
52.A解析:繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征。繼承是使用已有的類定義做為基礎(chǔ)建立新類的定義技術(shù)。已有的類可當(dāng)做基類來引用,則新類相應(yīng)地可當(dāng)做派生類來引用。但并不是所有的對象都必須有繼承性。因此,選項A中的說法是錯誤的,應(yīng)為所選。
53.B
54.AB選項中運算符“%”的運算對象為整數(shù)。C選項中不能將變量賦給表達(dá)式“x+n”。D選項中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項。
55.B解析:k為指向指針變量j的二級指針變量,輸出項*(*k+2)等價于*(j+2),i的值是元素a[1]的地址,j+2則是a[3]的地址,*(j+2)則是取a[3]的值。
56.C
57.B解析:extern、register、static、auto分別是定義外部變量、寄存器變量、靜態(tài)變量、自動變量,其中,自動變量和寄存器變量屬于動態(tài)存儲,調(diào)用時臨時分配單元而靜態(tài)變量和外部變量屬于靜態(tài)存儲,在整個程序運行時都存在。
58.A解析:讓考生對常用的軟件結(jié)構(gòu)設(shè)計工具要有較深入的了解。常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC-structureChart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。注意:根據(jù)結(jié)構(gòu)圖設(shè)計思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。
59.D解析:本題考查邏輯運算符的使用。當(dāng)“&&”的兩個運算對象都是邏輯1時,表達(dá)式才返回值是1;當(dāng)“‖”的兩個運算對象至少有一個是邏輯1時,表達(dá)式返回值是1。選項A)中,x和y都是邏輯1。所以返回值是1:選項B)中,x=4<=y=6為邏輯1,所以返回值是1;選項C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達(dá)式4‖14&&-2的值不為0;選項D)中,x<y為1,!z為0,1&&0為1,0‖1為1,因此,!1為0。
60.D
61.Atypedef并不是增加了新類型,面是用一個新名字替代已存在的類型,不能為變量說明一個新名,使用typedef可以增強程序的可移植性。所以A選項錯誤:
62.B
63.B題目給出的程序包括兩個部分:main函數(shù)和f函數(shù)。main函數(shù)的運行最后將變量j的值輸出,j的值為f(1)+f(2)。f函數(shù)只有一個實參n,當(dāng)n等于1時,f(1)的值為1,當(dāng)n大于1時,f的值為f(n-1)+1;若n=2,則f的值為f(1)+1=2,j的值為1+2=3。
64.C題目中定義了一個結(jié)構(gòu)體類型s,然后定義了一個結(jié)構(gòu)體變量s并初始化,執(zhí)行f函數(shù)后,將s中元素a的每個元素都加上i,這里需要注意最后一個元素沒有加i,所以最終答案為C選項。
65.B軟件設(shè)計包括軟件的結(jié)構(gòu)設(shè)計、數(shù)據(jù)接口設(shè)計和過程設(shè)計。其中軟件結(jié)構(gòu)設(shè)計主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計的任務(wù)是為每個子系統(tǒng)設(shè)計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
66.D結(jié)構(gòu)化程序設(shè)計由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年金融衍生品知識考試題庫及答案詳解
- 燃?xì)庠O(shè)備選型與配置方案
- 儲備糧倉庫可持續(xù)發(fā)展計劃方案
- 地下水位監(jiān)測與調(diào)控方案
- 2025至2030教育智能照明系統(tǒng)節(jié)能效果與健康影響研究報告
- 文庫發(fā)布:技術(shù)課制作
- 安全乘坐校車
- 2026年及未來5年市場數(shù)據(jù)中國汽車零部件再制造行業(yè)市場調(diào)查研究及發(fā)展趨勢預(yù)測報告
- 醫(yī)院中醫(yī)科醫(yī)生年度述職
- 水上安全知識競賽培訓(xùn)題及答案
- 員 工 調(diào) 動 申 請 表
- 工裝治具設(shè)計規(guī)范
- 手衛(wèi)生知識培訓(xùn)內(nèi)容(通用3篇)
- 無損檢測質(zhì)量記錄表格
- 膠配膠車間安全操作規(guī)程
- 美國AAMA檢驗標(biāo)準(zhǔn)
- 2023牛津譯林版本9Aunit1詞匯表(詞性漢語)
- 高速公路機電消防施工組織設(shè)計
- GB/T 24135-2022橡膠或塑料涂覆織物加速老化試驗
- CO2汽提尿素自控授課
- 初級社工師培訓(xùn)
評論
0/150
提交評論