版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年吉林省通化市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.已知10個元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結(jié)點所需比較次數(shù)為()
A.4B.3C.2D.5
2.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運行階段D.物理設(shè)計
3.設(shè)R是一個2元關(guān)系,有3個元組,S是一個3元關(guān)系,有3個元組。如T=R×S,則T的元組的個數(shù)為()。A.6B.8C.9D.12
4.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D.當(dāng)程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
5.
6.以下編碼方法中,()屬于熵編碼。
A.哈夫曼編碼B.小波變換編碼C.線性預(yù)測編碼D.形成編碼
7.
8.在深度為5的滿二叉樹葉中,葉子結(jié)點的個數(shù)為()。
A.32B.31C.16D.15
9.有以下程序:#include<stdio.h>voidfun(doublex,double*y,double*z){*y=*y-1.0;*z=*z+x;}main(){doublea=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;fun(b-a,pa,pb);printf(“%f\n”,a);}程序運行后的輸出結(jié)果是()。
A.8.000000B.9.000000C.1.500000D.10.500000
10.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
11.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運行結(jié)果是()。
A.55B.50C.45D.60
12.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序運行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)
13.下列描述中正確的是()。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
14.以下程序的輸出結(jié)果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020
15.設(shè)有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時,若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
16.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
17.人們提出了用______的原理來設(shè)計軟件,這就是軟件工程學(xué)誕生的基礎(chǔ)。
A.計算機(jī)科學(xué)B.數(shù)學(xué)C.工程學(xué)D.運籌學(xué)
18.設(shè)循環(huán)隊列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過一系列入隊與退隊運算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為()。
A.20B.0或35C.15D.16
19.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合
20.廣義表((a),a)的表頭是()。
A.aB.(a)C.((a))D.()
二、2.填空題(20題)21.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
22.以下程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{intx=27;
while(x>20&&x<30)
{x++;
if(x/3){x++;break;}
else
continue;
}
printf("%d\n",x);
}
23.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
24.以下程序輸出的最后一個值是【】。
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<5;i++)printf("%d\n",ff(i));}
25.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
26.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
27.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
28.以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>
structst
{charname[20];doublescore;};
main()
{structstex;
pfintf("exsize:%d\n",sizeof(______));}
29.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達(dá)式______。
30.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
structNODE
{intnum;structNODE*next;
main()
{struetNODEs[3]={{.'\0'},{2,'\0'},{3,'\O'}},*p,*q,*r;
intsum=0;
s[0].next=s+1;s[1].next=s+2;s[2].next=s;
p=s;q=p->next;r=q->next:
sum+=q->next->num;sum+=r->next->next->num;
prinff("%d\n",sum);
}
31.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=【】;【】=a[N-1][i];}}
32.以下程序運行后的輸出結(jié)果是______。
main()
{
intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:a++;break;
case1:b++;break;
case2:a++;b++;break;
}
printf("%d%d\n",a,B);
}
33.在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為【】。
34.下列程序段的運行結(jié)果是______。
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+3));
35.若a的值為1,則表達(dá)式!a‖++a的值是______。
36.將代數(shù)式轉(zhuǎn)換成程序設(shè)計中的表達(dá)式為【】。
37.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
38.下列程序的輸出結(jié)果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
39.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
40.下面程序的運行結(jié)果是【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
mam()
{
intil,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",il,i2);
}
三、1.選擇題(20題)41.若變量已正確定義,要求程序段完成求5!的計算,不能完成此操作的程序段是()。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(1<=5)
42.有以下程序#include〈string.h〉main(){charp[]={'a','b,'c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是
A.在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3
B.由于p數(shù)組中沒有字符申結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3
C.由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定:但p數(shù)組中字符串長度為3
D.由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定
43.下列敘述中錯誤的是()。
A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)
B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)
C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)
D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機(jī)中所占的空間不一定是連續(xù)的
44.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
45.在關(guān)系代數(shù)運算中,有5種基本運算,它們是()。
A.并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)
B.并(∪)、差(-)、交(∩)、投影(π)和選擇(σ)
C.并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)
D.并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)
46.下列程序的功能:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。
main()
/*Beginning*/
{intr;floats;
scanf("%d",£r);
star*r*r;
printf("s=%f\n",s);
}
出錯的原因是()。
A.注釋語句書寫位置錯誤
B.存放圓半徑的變量r不應(yīng)定義為整型
C.輸出語句中格式描述符非法
D.計算圓面積的賦值語句使用非法變量
47.下列程序執(zhí)行后的輸出結(jié)果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.隨機(jī)數(shù)
48.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));
A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)
49.下面的程序輸出結(jié)果是______。#definer16#ifr==16voidp(inta){printf("%x",a);}#elsevoidp(inta){printf("%d",a);}#endifmain(){p(32);}
A.32B.20C.編譯時錯誤D.運行時錯誤
50.數(shù)據(jù)處理的最小單位是()。
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)
51.軟件開發(fā)的原型化方法是一種動態(tài)定義軟件需求的方法,下述條件中,______是實施原型化方法所必需的。
①成熟的原型化人員
②快速的成型工具
③需求了解的準(zhǔn)確性
A.①和③B.①和②C.②和③D.全部
52.判斷char型變量cl是否為大寫字母的正確表達(dá)式是
A.′A′<=cl<=′Z′
B.(cl>=A)&&(cl<=Z)
C.(′A′>=cl)||(′Z′<=cl)
D.(cl>=′A′)&&(cl<=′Z′)
53.若要“為讀/寫建立―個新的文本文件”,在fopen函數(shù)中應(yīng)使用的文件方式是()
A.wB.wbC.w+D.wb+
54.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是
A.defdefB.abcdelC.abcdD.dd
55.設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對函數(shù)fun的調(diào)用語句中,正確的是
A.fun("abc",3.0);
B.t=fun('D',16.5);
C.fun('65',2.8);
D.fun(32,32);
56.若輸入1.5、2.5,則以下程序的運行結(jié)果為______。main(){floata,b;intc;scanf("%f,%f,",&a,&b);c=max(a,b);printf("%d",c);}max(x,y)floatx,y;{floatz;z=x>y?x:y;return(z);}
A.1.5B.2.5C.2D.3
57.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,7,10},*p;p=a;printf("%d\n",*p+8);}
A.0B.1C.10D.9
58.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.*p=&a;sCanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
59.C語言可執(zhí)行程序的開始執(zhí)行點是()
A.程序中第一條可執(zhí)行語言B.程序中第一個函數(shù)C.程序中的main函數(shù)D.包含文件中的第一個函數(shù)
60.下列描述中正確的是()。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
四、選擇題(20題)61.若有定義inta[9],+P=a;,則P+5表示()。
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
62.
63.
下列程序的輸出結(jié)果是()。
main
{inta=6,b=3,C;
if(a<b)
{c=a*b;printf("%d%d,%d\n",b,a,c);)
else
{c=b/a;printf("%d,%d,%d\n",b,a,c);)
}
A.3,6,18B.3,6,2C.6,3,18D.6,3,2
64.在函數(shù)中默認(rèn)存儲類型說明符的變量應(yīng)該是________存儲類型。
A.內(nèi)部靜態(tài)B.外部C.自動D.寄存器
65.
設(shè)有下列程序段:
charstr[]="HelloWorld":
char*plr;
ptr=str:
執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.\0B.0C.不確定的值D.0的地址
66.軟件設(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ā)過程
67.有以下程序:
程序運行后的輸出結(jié)果是()。
A.321B.12300C.1D.123
68.
69.
70.有以下程序
71.
下列程序的輸出結(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
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.ABCDDEFEDBD
B.abcDDfefDbD
C.abcAAfefAbA
D.Abcddfefdbd
73.若有定義語句:
char}sl=‘’0K”,:Its2=”ok”;
以下選項中,能夠輸出“OK”的語句是()。
A.if(strcmp(sl,s2)!=0)puts(s2);
B.if(strcmp(sl,s2)!=0)puts(s1);
C.if(strcmp(sl,s2)==1)puts(s1);
D.if(strcmp(sl,s2)==0)puts(s1);
74.下列程序的運行結(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
75.計算機(jī)高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對
76.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
77.(27)程序流程圖(PFD)中的箭頭代表的是()
A.數(shù)據(jù)流
B.控制流
C.調(diào)用關(guān)系
D.組成關(guān)系
78.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流
79.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表=迭式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
80.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次逆向取出,構(gòu)成一個新數(shù)放在t中。高位在低位,低位在高位。例如,當(dāng)s中的數(shù)為12345678時,則t中的數(shù)為8642。
請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:比較2個字符串的長度(不得調(diào)用C語言中求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若2個字符串長度相等,則返回第1個字符串。例如,若輸入jiangxi<;Enter>;beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨立的若干階段,它們是:需要分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。
3.CC。R為n元關(guān)系,有P個元組S為m元關(guān)系,有q個元組。兩個關(guān)系笛卡兒積是一個n+m元的關(guān)系,元組個數(shù)是q×p。所以T的元組的個數(shù)為9個。
4.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。故本題答案為A選項。
5.D
6.A
7.B
8.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個結(jié)點的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點為最后一層的結(jié)點數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個結(jié)點。因此深度為5的滿二叉樹的葉子結(jié)點數(shù)為25-1=16個。
9.Cmain函數(shù)定義兩個double類型的變量a、b,分別賦初值為2.5、9.0。另外定義兩個double類型的指針變量pa、pb,其中pa指向a,pb指向b。然后將b-a、pa、pb傳給函數(shù)fun,此時x的值為6.5,y指向a,z指向b?!?y=*y-1.0;”是將變量a的值減去1.0賦給a,a的值為1.5;“*z=*z+x;”是將變量b的值加上6.5賦給b,b的值為15.5。fun函數(shù)執(zhí)行完畢后,輸出a的值為1.5。故本題答案為C選項。
10.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。
11.D靜態(tài)變量是始終存在的,當(dāng)函數(shù)變量退出后,靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項。
12.B執(zhí)行“y--”直到值為0。退出循環(huán)。由于“y--”是后綴自減運算,先使用再自減,因此退出循環(huán)時,y的值為-1。故本題答案為B選項。
13.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。
14.B從題目中可知,\O、\t、\\分別為一個字符,而sizeof是求字節(jié)個數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以\0結(jié)束,因此strlen的值為5,sizeof的值為20。
15.Ascanf函數(shù)中,在格式字符前加入一個整數(shù)可以指定輸入數(shù)據(jù)所占的寬度,所以賦值時會將87賦給變量a,把6.0賦給float型變量b。故本題答案為A選項。
16.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。
17.C
18.BQ(1:35)則隊列的存儲空間為35;對空條件:front=rear(初始化時:front=rear),隊滿時:(rear+1)%n==front,n為隊列長度(所用數(shù)組大小),因此當(dāng)執(zhí)行一系列的出隊與入隊操作,front=rear.則隊列要么為空,要么為滿。
19.D軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計語言描述的、適合計算機(jī)執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。因此本題的正確答案是D。
20.B
21.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。
22.2929解析:本題考查while循環(huán)和++運算,x=27符合循環(huán)條件,執(zhí)行循環(huán)體中x++后,x=28,if條件也成立,執(zhí)行x++后退出,x的值增1,結(jié)果x=29。
23.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
24.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦被值的,即只賦被值一次,在程序運行時它已有被值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦被值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
25.概要概要
26.220220解析:根據(jù)賦值運算符“自右至左”的結(jié)合順序,程序中賦值表達(dá)式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。
27.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
28.
29.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達(dá)式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關(guān)系。
30.55解析:程序通過語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點(s[2].next=s),整個鏈表形成一個環(huán),并通過語句p=s;q=p->next;r=q->next;將結(jié)構(gòu)體指針變量p,q,r指向了各結(jié)點,具體結(jié)構(gòu)如下圖:
故本題輸出的sum為3+2=5。
31.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:b[i][N-1]=a[0][i]實現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。
32.2121解析:本題考核的知識點是switch語句的嵌套應(yīng)用。外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case():開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
33.63或26-163或26-1解析:在滿二叉樹中,每層結(jié)點都是滿的,即每層結(jié)點都具有最大結(jié)點數(shù)。深度為k的滿二叉樹,一共有2k-1個結(jié)點,其中包括度為2的結(jié)點和葉子結(jié)點。因此,深度為7的滿二叉樹,一共有27-1個結(jié)點,即127個結(jié)點。根據(jù)二叉樹的另一條性質(zhì),對任意一棵二叉樹,若終端結(jié)點(即葉子結(jié)點)數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2,則n0=n2+1。設(shè)深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為x,則改樹中葉子結(jié)點的個數(shù)為x+1。則應(yīng)滿足x+(x+1)=127,解該方程得到,x的值為63。結(jié)果上述分析可知,在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為63。
34.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。
35.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
36.SQRT(x2+y2)/(a+b)
37.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
38.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。
39.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用??芍h(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。
40.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
41.B解析:選項B中for循環(huán)了5次,而每次循環(huán)的時候,都將p的值重新賦值為1后,再乘以當(dāng)前數(shù)字i,最后的結(jié)果為5,顯然不是5!的值,同樣的分析可知選項A、選項C和選項D計算的都是5!。所以,4個選項中選項B符合題意。
42.B解析:本題考查了對字符數(shù)組賦初值.使用初始化列表對字符數(shù)組賦初值,系統(tǒng)不會自動為其添加字符串結(jié)束符,使用字符串初始化時才會自動添加,所以選項A是錯的。數(shù)組長度在未指定的情況下由初始化列表項中數(shù)據(jù)的個數(shù)決定,若已指定且初始化項數(shù)不足時,多出部分會自動初始化為0,0等價于字符串結(jié)束符'\\0'。所以選項B是正確的,C和D都是錯誤的。本題應(yīng)該選B。
43.BB。【解析】數(shù)據(jù)的存儲結(jié)構(gòu)分為順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu),一個數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲空間是連續(xù)的,而鏈?zhǔn)酱鎯Y(jié)構(gòu)中,數(shù)據(jù)元素所占的存儲空間不一定是連續(xù)的。數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)。
44.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。
45.D解析:關(guān)系代數(shù)運算的基本運算符有4類:集合運算符、專門的關(guān)系運算符、算術(shù)運算符和邏輯運算符。并、差、笛卡兒積、投影、選擇是5種基本的運算,其他運算可以通過基本的運算導(dǎo)出。
46.D解析:在C語言程序中,可以用一個符號名宋代表一個常量,稱為符號常量。這個符號名必須在程序中進(jìn)行特別的“指定”,并符合標(biāo)識符的命令規(guī)則。在本題中圓周率冗是一個符號常量,但在程序中并沒有指定其值,所以編譯器找不到其值就會報錯。所以選項D)正確。
47.B解析:本題中,a[1][2]是二維數(shù)組中的第6個元素,對應(yīng)for循環(huán)中i的值為5,p[5]=5+1。
48.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。
49.B解析:“#definer16”的作用是指定用標(biāo)識符r來代替16,因此程序編譯時只編譯#if部分,故程序運行時,打印輸出十六進(jìn)制的32,即20。
50.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機(jī)識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。
51.B
52.D解析:本題考查字母大小寫的判斷。字符型數(shù)據(jù)在計算機(jī)內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。
53.D
54.A解析:本題考查的知識點是字符型指針變量、malloc()函數(shù)的使用。本題首先定義兩個字符型指針變量p和q,通過malloc()函數(shù)申請20個字符的存儲空間,并把它的首地址賦給p,在把p的值賦給q,p和q指向同一個存儲區(qū)。在scanf()語句中讀取字符串到p和q指向的字符串,先把“abc”讀取到p指向的存儲區(qū)中,第一個空格是結(jié)束標(biāo)記,第二個空格是分隔符,再把“def”存放到q指向的存儲區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲區(qū)中內(nèi)容是“def”,所以最后輸出的def,clef.所以4個選項中A正確。
55.D解析:題目中定義的函數(shù)fun()有兩個參數(shù),一個是字符型變量ch,另一個是浮點型變景x,函數(shù)類型是void即無返回值。選項A調(diào)用fun的第1個參數(shù)是字符串常量與字符變量不匹配,所以不正確。選項B是有返回值函數(shù)的調(diào)用形式,不正確。選項C的第1個參數(shù)是錯誤的字符常量,字符常量是用單引號括起來的—個字符(是轉(zhuǎn)義字符可能有多個字符),故也不正確。選項D使用兩個整型常量調(diào)用fun這在C語言中是允許的。因為整型到字符型可以自動轉(zhuǎn)換,整型到浮點型也可以自動轉(zhuǎn)換。故應(yīng)該選擇D。
56.C
57.D解析:“*”號的優(yōu)先級比“+”的優(yōu)先級高,所以先執(zhí)行“*P”:指針P指向的是數(shù)組的首地址,因此*p=1;再加8得9。
58.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項D)為正確答案。
59.C
60.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。
61.B本題考查了通過指針來引用一維數(shù)組元素的方法。題中*P=a;這一賦值語句是指針P指向了數(shù)組a的首地址,P+5是指針P向后移動了5個int類型的存儲單元,所以P+5指向了數(shù)組元素a[5]。
62.B
63.B
\n本題考查if…else語句。如果if條件成立,則執(zhí)行if下面的語句,不成立則執(zhí)行else,判斷條件,發(fā)現(xiàn)a<b不成立,則執(zhí)行else后面的語句,得c=b/a=2。
\n
64.A
65.A
\n本題主要考查字符數(shù)組和指針,在c語言中,字符型數(shù)組在存放字符串時會自動在末尾加上\0,所以數(shù)組str有11個元素;ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。
\n
66.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)的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)老院車庫租賃與養(yǎng)老服務(wù)合同4篇
- 2025年度出租車公司車輛安全檢查合同6篇
- 2024年船舶加油與貨物運輸合同
- 2025年度生態(tài)魚塘租賃及管理服務(wù)合同4篇
- 2025年度石油鉆井設(shè)備租賃與技術(shù)服務(wù)合同4篇
- 2024版洗碗工勞動合同違約金
- 2024科技公司與科研機(jī)構(gòu)之間的聯(lián)合研發(fā)合同
- 2024造價咨詢服務(wù)合作協(xié)議-裝配式建筑版3篇
- 2025年度智慧城市建設(shè)項目車位使用權(quán)租賃合同4篇
- 2025年度時尚餐廳裝修設(shè)計及設(shè)備采購合同3篇
- 勞務(wù)投標(biāo)技術(shù)標(biāo)
- 研發(fā)管理咨詢項目建議書
- 濕瘡的中醫(yī)護(hù)理常規(guī)課件
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護(hù)投標(biāo)方案
- 蘇教版六年級數(shù)學(xué)上冊集體備課記載表
- NUDD新獨難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 22S702 室外排水設(shè)施設(shè)計與施工-鋼筋混凝土化糞池
- 2013日產(chǎn)天籟全電路圖維修手冊45車身控制系統(tǒng)
評論
0/150
提交評論