




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年廣東省肇慶市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.鏈表不具備的特點(diǎn)是()。
A.可隨機(jī)訪問任一結(jié)點(diǎn)B.插入刪除不需要移動(dòng)元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與其長度成正比
2.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
3.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
4.
5.有下列程序:
intfunl(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=funl(x);b=funl(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0),……}
程序執(zhí)行后變量w中的值是()。、
A.5.21B.5C.5.0D.0.0
6.在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。
A.補(bǔ)碼B.反碼C.原碼D.ASCII碼
7.樹的度為3,且有9個(gè)度為3的節(jié)點(diǎn),5個(gè)度為1的節(jié)點(diǎn),但沒有度為2的節(jié)點(diǎn)。則該樹中的葉子節(jié)點(diǎn)數(shù)為()。
A.18B.33C.19D.32
8.在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是()。
A.各模塊應(yīng)包括盡量多的功能
B.各模塊的規(guī)模應(yīng)盡量大
C.各模塊之間的聯(lián)系應(yīng)盡量緊密
D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
9.軟件需求規(guī)格說明書的作用不包括()。
A.軟件設(shè)計(jì)的依據(jù)B.軟件可行性研究的依據(jù)C.軟件驗(yàn)收的依據(jù)D.用戶與開發(fā)人員對(duì)軟件要做什么的共同理解
10.以下程序段運(yùn)行后x的值為()。inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2A.8B.14C.10D.12
11.
12.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”
13.考慮下圖中的程序段,①號(hào)語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'
14.下列程序段的輸出結(jié)果是()。chara=9,b=020;prihtf("%o\n",~a&b<<1);
A.100000B.8C.40D.77
15.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時(shí),花費(fèi)時(shí)間反而最多的是()
A.希爾排序B.堆排序C.冒泡排序D.快速排序
16.下列可用于C語言用戶標(biāo)識(shí)符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
17.
18.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲(chǔ)空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式
D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)
19.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。
A.*p+=1;B.(*p)++;C.++(*p);D.*++P
20.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時(shí)所要表達(dá)的是()。
A.判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余1
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對(duì)象。
22.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
23.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
24.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大值的和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];
*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
25.下面的程序可對(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(【】);
}
26.下面程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
27.已知字符'A'的ASCII碼為65,以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
28.下面程序的運(yùn)行結(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);
}
29.設(shè)順序輸入數(shù)列為:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每個(gè)結(jié)點(diǎn)的查找概率相同,若用順序存儲(chǔ)方式組織該數(shù)列,則查找一個(gè)數(shù)成功的平均比較次數(shù)為【】;若按二叉排序樹結(jié)構(gòu)組織該數(shù)列,則查找一個(gè)數(shù)成功的平均比較次數(shù)為【】。
30.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為______。
31.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
32.以下程序輸出的最后一個(gè)值是【】
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
33.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=fune(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
34.四條語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
35.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
36.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。
37.下列程序中的函數(shù)stropy2()實(shí)現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個(gè)新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
38.下列程序的輸出結(jié)果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
39.一棵二叉樹第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為______個(gè)。
40.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。
三、1.選擇題(20題)41.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考
42.完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是()
A.黑箱測試法B.白箱測試法C.錯(cuò)誤推測法D.安裝測試法
43.E-R圖是數(shù)據(jù)庫設(shè)計(jì)的工具之一,它一般適用于建立數(shù)據(jù)庫的________。
A.概念模型B.結(jié)構(gòu)模型C.物理模型D.邏輯模型
44.C語言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符
A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字和下劃線中任一字符
45.分析下面函數(shù)swap(int*p1,*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}則該程序功能為()
A.交換*p1和*p2的值
B.正確,但無法改變*p1和*p2的值
C.交換*p1和*p2的地址
D.可能造成系統(tǒng)故障,因?yàn)槭褂昧丝罩羔?/p>
46.x、y和z被定義為int型變量,若從鍵盤給x、y和z輸入數(shù)據(jù),正確的輸入語句是()
A.INPUTx、y,z;
B.scan{("%d%d%d",&x&y&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x&y&z);
47.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
48.下列4個(gè)關(guān)于C語言的結(jié)論中錯(cuò)誤的是()。
A.可以用do…while語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)
B.可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)
C.可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)
D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同
49.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個(gè)出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
50.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
51.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
52.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳遞給形參,再由形參傳遞給實(shí)參D.傳遞方式由用戶指定
53.以下程序的輸出結(jié)果是()#include<stdio.h>main(){inta,b;for(a=1,b=1,a<=50;a++){if(b>=10)break;if(b%2==1){b+=2;continue}b+=2;}printf("%d\n",a);}
A.4B.5C.6D.7
54.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是()。
A.概要設(shè)計(jì)B.需求分析C.詳細(xì)設(shè)計(jì)D.編程調(diào)試
55.有以下程序:main(){charstr[][10]={"China","Beijing"),*P=str;printf("%s\n",p+10);}程序運(yùn)行后的輸出結(jié)果是______。
A.ChinaB.BeijingC.ngD.ing
56.下列程序段的輸出結(jié)果是______。int**pp,*p;inta=10,b=20;p=&a;pp=&p;p=&b;printf("%d,%d\n",*p,**pp);
A.10,20B.10,10C.20,20D.20,10
57.有下列二叉樹,對(duì)此二叉樹前序遍歷的結(jié)果為()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
58.若有下面的說明和定義,則sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
59.設(shè)一棵滿二叉樹共有15個(gè)結(jié)點(diǎn),則在該滿二叉樹中的葉子結(jié)點(diǎn)數(shù)為()
A.7B.8C.9D.10
60.下列選項(xiàng)中,值為1的表達(dá)式是()。
A.1-'0'B.1-'\0'C.'1'-0D.'\0'-'0'
四、選擇題(20題)61.
62.定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()
A.159B.147C.357D.369
63.以下能正確定義一維數(shù)組的選項(xiàng)是()。
A.
B.
C.
D.
64.以下敘述中正確的是()。
A.用C語言編寫的程序只能放在一個(gè)程序文件中
B.C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句
C.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
D.C程序書寫格式自由,一個(gè)語句可以寫在多行上
65.下列關(guān)于線性鏈表的敘述中,正確的是()。
A.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致
B.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)
C.進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素
D.以上說法均不正確
66.
67.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
68.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
69.
70.在以下選項(xiàng)中,能IE確聲明數(shù)組并進(jìn)行初始化的語句是()。
A.str=newDimension(1,2,3);
B.str=newdimension(1,2,3);
C.str:newArray(1,2,3);
D.str=newarray(1,2,3);
71.有以下程序
72.
73.有以下函數(shù)intaaa(char*s){char*t=s;while(*t+t);t--:return(t-s);}以下關(guān)于aaa函數(shù)的功能敘述正確的是()。A.求字符串S的長度B.比較兩個(gè)串的大小C.將串S復(fù)制到串tD.求字符串S所占字節(jié)數(shù)
74.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)次序的是()。
A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上
75.設(shè)有定義語句
則以下敘述正確的是().
A.f是指向函數(shù)的指針變量,該函數(shù)具有_個(gè)int類型的形參
B.f是基類型為int的指針變量
C.f是指向int類型一維數(shù)組的指針變量
D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址
76.對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。A.A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序
77.
78.
79.
80.軟件的()設(shè)計(jì)又稱總體結(jié)構(gòu)設(shè)計(jì),其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
A.概要B.抽象C.邏輯D.規(guī)劃
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個(gè)比較P.q所指兩個(gè)字符串對(duì)應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個(gè)新的字符串。
例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:比較2個(gè)字符串的長度(不得調(diào)用C語言中求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若2個(gè)字符串長度相等,則返回第1個(gè)字符串。例如,若輸入jiangxi<;Enter>;beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:
參考答案
1.A
2.A解析:定義數(shù)組時(shí),沒有對(duì)s[1]進(jìn)行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。
3.B
\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
4.A
5.C子函數(shù)funl(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doubleX,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因?yàn)轭}中變量W的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w的值為5.0。
6.D解析:在C語言中,將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際并不是把該字符本身放到內(nèi)存單元中,而是將與該字符相對(duì)應(yīng)的ASCII碼放到存儲(chǔ)單元中。
7.C設(shè)葉子結(jié)點(diǎn)數(shù)為〃,則該樹的結(jié)點(diǎn)數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點(diǎn)數(shù)=樹中所有結(jié)點(diǎn)的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項(xiàng)。
8.D解析:本題考查軟件工程中軟件設(shè)計(jì)的概念和原理。人們?cè)陂_發(fā)計(jì)算機(jī)軟件的長期實(shí)踐中積累了豐富的經(jīng)驗(yàn),總結(jié)這些經(jīng)驗(yàn)得到如下的啟發(fā)式規(guī)則:
(1)改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性;通過模塊的分解或合并,力求降低耦合提高內(nèi)聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內(nèi)聚是提高一個(gè)模塊內(nèi)各元素彼此結(jié)合的緊密程度。
(2)模塊的規(guī)模應(yīng)適中。一個(gè)模塊的規(guī)模不應(yīng)過大,過大的模塊往往是由于分解不夠充分:過小的模塊開銷大于有益操作,而且模塊過多將使系統(tǒng)接口復(fù)雜。因此過小的模塊有時(shí)不值得單獨(dú)存在。
(3)模塊的功能應(yīng)該可以預(yù)測,但也要防止模塊功能過分局限。如果模塊包含的功能太多,則不能體現(xiàn)模塊化設(shè)計(jì)的特點(diǎn):如果模塊的功能過分的局限,使用范圍就過分狹窄。
經(jīng)過上述分析,本題的正確答案是選項(xiàng)D。
9.B《軟件可行性分析報(bào)告》是軟件可行性研究的依據(jù)。
10.D
11.D
12.D在C語言中,字符串常量是用雙引號(hào)標(biāo)注的字符序列,因此B選項(xiàng)和C選項(xiàng)不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符以“\\”開頭。A選項(xiàng)中包含3個(gè)前兩個(gè)(\\\\)代表一個(gè)“\\”字符,后面一個(gè)為“””。因?yàn)閈\”被看作一個(gè)“””,所以該字符串缺少一個(gè)結(jié)束的“””。因此A選項(xiàng)不正確。D選項(xiàng)的兩個(gè)“”之間沒有任何字符,代表的是一個(gè)空串,是合法的字符串常量,因此D選項(xiàng)正確。B選項(xiàng)的abc應(yīng)該使用雙引號(hào)標(biāo)注。故本題答案為D選項(xiàng)。
13.D
14.C解析:將變量a按位求反,再與b按位與,最后左移1位。9的二進(jìn)制表示為00001001,020的二進(jìn)制表示為00010000。a按位求反為11110110,再與b按位與結(jié)果為00010000,左移1位結(jié)果為00100000。按八進(jìn)制輸出為040。
15.D
16.B解析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下畫線3種字符組成,且第一個(gè)字符必須為字母或下畫線,排除選項(xiàng)C)和D);C語言中還規(guī)定標(biāo)識(shí)符不能為C語言的關(guān)鍵字,而選項(xiàng)A)中void為關(guān)鍵字,故排除選項(xiàng)A)。
17.D
18.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
19.D
20.B邏輯與運(yùn)算兩邊運(yùn)算對(duì)象的值都為真時(shí),結(jié)果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項(xiàng)。
21.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對(duì)象。
22.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(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è)。
23.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
24.i<na[i]i<n\r\na[i]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它所指向的變量時(shí)要對(duì)它進(jìn)行指針運(yùn)算,也即*號(hào)運(yùn)算。
25.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個(gè)字詞進(jìn)行比較,如果當(dāng)前字符小于下一個(gè)字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
26.100010100010解析:對(duì)于define宏定義語句,系統(tǒng)在編譯前進(jìn)行如下替換:
i1=1000/s(N)i1=1000/s(10)i1=1000/10*10
i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)
27.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式輸出\'C\'的ASCII碼為67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式輸出為\'G\'。
28.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
29.857/15
30.繼承繼承
31.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組st1l和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。
32.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):
①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。
②對(duì)靜態(tài)局部變量是在編譯時(shí)賦初值的,即只賦初值—次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。
③如在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來說,編譯時(shí)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。(注意:C語言中的非靜態(tài)變量在定義時(shí),系統(tǒng)并不會(huì)自動(dòng)給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個(gè)整數(shù)的階乘。
33.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時(shí),m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因?yàn)樵谟诤瘮?shù)中將m和i定義成了static類型,所以在于函數(shù)中對(duì)m和i進(jìn)行的改變?cè)谙乱淮握{(diào)用子函數(shù)時(shí)能進(jìn)行保存,所以第二次調(diào)用于函數(shù)時(shí),m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
34.x+=1;x+=1;解析:題面中的四條語句的作用是使x的值加1,在C中有多種方法可以對(duì)變量進(jìn)行加1操作,這里可以利用C的復(fù)合賦值運(yùn)算符+=實(shí)現(xiàn),本題答案為x+=1;。
35.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。
36.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。
37.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進(jìn)入第1個(gè)while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運(yùn)算符的優(yōu)先級(jí)相同,但他們的結(jié)合性為從右至左,而“=”運(yùn)算符優(yōu)先級(jí)比較低,所以原表達(dá)式等價(jià)于(*s++)=(*(t++)),即將t當(dāng)前所指內(nèi)容復(fù)制到s當(dāng)前所指地址中,然后讓s和t同時(shí)往后移動(dòng)一位,整個(gè)表達(dá)式返回的是復(fù)制給s的值。所以,當(dāng)t所指內(nèi)容是字符串結(jié)束符'\\0',時(shí),while循環(huán)結(jié)束,原先t所指的整個(gè)字符串也就復(fù)制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會(huì)讓s和t往后移動(dòng)一位,即此時(shí)s指向了字符串結(jié)束符'\\0'的后一位。所以第2次復(fù)制字符串之前,應(yīng)先將s指針往回移動(dòng)一位,故前一空應(yīng)該填入s-1或其他等價(jià)形式。接下來的while循環(huán)實(shí)現(xiàn)第二次復(fù)制,照抄第1次的while循環(huán)就行,故后一空應(yīng)填入*s++。
38.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時(shí),調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時(shí),調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時(shí),調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時(shí),調(diào)用PRINT(4),P(4)輸出4,theend。
39.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn)。
40.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。
41.C解析:面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同。它的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考。
42.A解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測試用例。注意:白箱測試是根據(jù)對(duì)程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,白箱測試也稱為邏輯覆蓋測試,故選項(xiàng)B)不正確;錯(cuò)誤推測法只是黑箱測試所使用的一種具體的方法,故選項(xiàng)C)不正確;安裝測試是測試層次中的一種,它屬于高級(jí)測試,故選項(xiàng)D)不正確。注意:常用的黑箱測試方法及其定義,白箱測試用例的準(zhǔn)則。
43.A解析:E-R模型是描述現(xiàn)實(shí)世界的概念模型,它將現(xiàn)實(shí)世界的信息結(jié)構(gòu)統(tǒng)一用實(shí)體、屬性、以及實(shí)體之間的聯(lián)系描述。E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法。
44.C解析:C語言中規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須是字母或下劃線,而且標(biāo)識(shí)符不能是C語言的關(guān)鍵字。
45.D
46.B
47.B[答案]B
[考點(diǎn)]軟件工程基礎(chǔ)
[評(píng)析]
分析員對(duì)用戶的要求作出分析,并畫出數(shù)據(jù)流程圖,該圖通俗易懂,不涉及到如何在計(jì)算機(jī)上實(shí)現(xiàn),這是需求分析階段。
軟件工程中的瀑布模型:
問題定義,可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測試,運(yùn)行和維護(hù)
相關(guān)鏈點(diǎn):
層次圖和HIPO圖是概要設(shè)計(jì)中的工具圖;程序流程圖、N-S圖、問題分析PAD圖、設(shè)計(jì)程序語言PDL是詳細(xì)設(shè)計(jì)中的工具圖
48.D解析:本題考查幾個(gè)循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。
49.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。
50.DD。【解析】面向?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。
51.B
52.B解析:C語言以定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實(shí)參傳紿形參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。調(diào)用結(jié)束后,實(shí)參單元仍保留并維持原值。
53.C
54.A解析:概要設(shè)計(jì)的任務(wù)是劃分出構(gòu)成系統(tǒng)的各物理元素以及設(shè)計(jì)出軟件的結(jié)構(gòu)(如確定模塊及模塊間的關(guān)系)。設(shè)計(jì)過程通常分為以下幾步:提出可選擇方案;選擇合理方案;推薦最佳方案;功能分解;設(shè)計(jì)軟件結(jié)構(gòu);制定測試計(jì)劃:最后提交概要設(shè)計(jì)文檔。軟件功能分解屬于概要設(shè)計(jì)階段。本題的正確答案為選項(xiàng)A。
55.B解析:本題中p+10表示字符串'Beijing'的地址,故正確答案為B。
56.C解析:指針變量p先是指向變量a,后指向變量b,但二級(jí)指針變量始終指向指針變量p。
57.B解析:對(duì)二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左,右子樹。
58.D解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個(gè)成員分別占有自己的內(nèi)存單元;共用伸變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)件變量aa中,成員r1占2個(gè)字節(jié),r2占8個(gè)字節(jié),r3占4個(gè)字節(jié),共用體ua占8個(gè)字節(jié),所以共占用2+8+4+8=22個(gè)字節(jié)。
59.BB)【解析】在具有11個(gè)結(jié)點(diǎn)的滿二叉樹,其非葉子結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去葉子結(jié)點(diǎn)數(shù)。本題n=15,故非葉子結(jié)點(diǎn)數(shù)等于int(15/2)=7,葉子結(jié)點(diǎn)數(shù)等于15-7=8。
60.B解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校外生物教育資源整合計(jì)劃
- 團(tuán)隊(duì)協(xié)作推動(dòng)變革的策略計(jì)劃
- 前臺(tái)服務(wù)中的問題處理與反饋計(jì)劃
- 跨境金融政策對(duì)投資融資的影響分析
- 跨境B2B電商平臺(tái)運(yùn)營策略探討
- 非公企業(yè)推動(dòng)非標(biāo)智能裝備發(fā)展的策略研究
- 科技公司如何應(yīng)對(duì)網(wǎng)絡(luò)安全法規(guī)挑戰(zhàn)
- 2025年大唐云南發(fā)電有限公司所屬企業(yè)高校畢業(yè)生招聘筆試參考題庫附帶答案詳解
- 跨國公司資本運(yùn)作的信息披露要求
- 小學(xué)數(shù)學(xué)教師心得苦干不如巧干-做一個(gè)會(huì)偷懶的教師讀后感
- 新版-GSP-:中藥材、中藥飲片知識(shí)培訓(xùn)試題及答案
- 裝修隱蔽工程驗(yàn)收記錄表范例
- 《實(shí)數(shù)》單元作業(yè)設(shè)計(jì)
- 攝影基礎(chǔ)知識(shí)教學(xué)課件-攝影師入門基礎(chǔ)知識(shí)
- 煙花爆竹基礎(chǔ)知識(shí)
- 路橋過渡段主要技術(shù)標(biāo)準(zhǔn)與結(jié)構(gòu)
- 互聯(lián)網(wǎng)公司勞動(dòng)合同
- 吉美版四年級(jí)綜合實(shí)踐活動(dòng)下冊(cè)全冊(cè)表格簡約式教案教學(xué)設(shè)計(jì)
- 通信工程監(jiān)理實(shí)施細(xì)則
- 電力變壓器監(jiān)造規(guī)范(完整版)資料
- 精品課程:運(yùn)動(dòng)訓(xùn)練學(xué)(北京體育大學(xué))
評(píng)論
0/150
提交評(píng)論