版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.讀取二進制文件的函數(shù)調(diào)用形式為“fread(buffer,size,count,fp);”,其中buffer代表的是()。
A.—個內(nèi)存塊的字節(jié)數(shù)
B.—個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個文件指針,指向待讀取的文件
D.—個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址
2.對于循環(huán)隊列()。
A.無法判斷隊列是否為空B.無法判斷隊列是否為滿C.隊列不可能滿D.以上說法都不對
3.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序運行后的輸出結(jié)果是()。
A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,
4.
5.
6.以下選項中能表示合法常量的是()。
A.1,200B.1.5E2.0C.‘\’D.“\007”
7.在單鏈表指針為p的結(jié)點之后插入指針為s的結(jié)點,正確的操作是()。A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next;
D.p->next=s->next;p->next=s;
8.在有向圖G的拓撲序列中,若頂點Vi在頂點Vj之前,則下列情形不可能出現(xiàn)的是()。
A.G中有弧
B.G中有一條從Vi到Vj的路徑
C.G中沒有弧
D.G中有一條從Vj到Vi的路徑
9.以下對于C語言的描述中,正確的是:()
A.C語言調(diào)用函數(shù)時,值傳遞方式只能將實參的值傳給形參,形參的值不能傳遞給實參
B.C語言中函數(shù)既可以嵌套定義,也可以遞歸調(diào)用
C.函數(shù)必須有返回值
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一源程序文件中
10.有以下程序:#include<stdio.h>main{inta=1,b=2;while(a<6){b+=a;a4+=2;b%=10;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.5,11B.7,1C.7,11D.6,1
11.第
4
題
棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是
A.ABCEDB.DCBEAC.DBCEAD.CDABE
12.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是()。
A.DoubleB.shortC.integerD.Char
13.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
14.下面哪種排序算法是穩(wěn)定的()
A.快速排序B.堆排序C.歸并排序D.選擇排序
15.以下敘述中錯誤的是()。
A.非零的數(shù)值型常量有正值和負值的區(qū)分
B.常量是在程序運行過程中值不能被改變的量
C.定義符號常量必須用類型名來設(shè)定常量的類型
D.用符號名表示的常量叫符號常量
16.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
17.
18.
19.定義結(jié)構(gòu)體數(shù)組:structstu{intnum;charnameE20];}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結(jié)果為()。A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I
20.
二、2.填空題(20題)21.下面程序是指從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(*p++);}
22.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
23.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
24.下列程序執(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);
}
25.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
26.有以下程序:
voidswap1(intc[])
{intt;
t=c[0];c[0]=c[1];c[1]=t;
}
voidswap2(intc0,intc1)
{intt;
t=c0;c0=c1;c1=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swaplA);swap2(b[0],b[1]);
printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);
}
其輸出結(jié)果是【】。
27.若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:
fp=fopen(【】);。
28.符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、()和循環(huán)結(jié)構(gòu)。
29.問題處理方案的正確而完整的描述稱為______。
30.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
31.以下程序運行后的輸出結(jié)果是【】。
main()
{
intp=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
32.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
33.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
34.在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
35.軟磁盤最外邊的磁道數(shù)是【】號磁道。
36.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
37.以下程序運行后的輸出結(jié)果是【】。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
prind("\n");
}
38.設(shè)有以下結(jié)構(gòu)類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。
structstud
{charnum[6];
ints[4];
doubleave;
}a,*p;
39.下面程序的功能是兩個整數(shù)進行交換,請?zhí)羁铡?/p>
sub(int*x,int*y)
{【】
z=*x;*x=*y;*y=z;
return;}
main()
{intm,n,*t1,*t2;
scanf("%d,%d",&m,&n);
t1=&m;t2=&n;
【】
printf("%d,%d\n",m,n);}
40.在面向?qū)ο蠓椒ㄖ?,類的實例稱為______。
三、1.選擇題(20題)41.棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是
A.ABCEDB.DCBEAC.DBCEAD.CDABE
42.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
43.以下函數(shù)返回a所指數(shù)組中最小的值所在的下標(biāo)值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]);________;
return(p);}
在橫線處應(yīng)填入的是
A.i=pB.a[p]=a[i]C.p=jD.p=i
44.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
45.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
46.已有定義:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判斷c中的字符是否為大寫字母的表達式是()。
A.isupper(c)
B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
47.數(shù)據(jù)庫系統(tǒng)的核心是()A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.軟件工具D.數(shù)據(jù)庫
48.若有如下程序:sub(int*t,intn){int*p1,*p2;for(p1=t,p2=t;p1-t<n;p1++)if(*p1<*p2)p2=p1;return(*p2);}main(){inta[9]={9,36,19,39,26,5,6,33,15};printf("%d\n",sub(a,9));}則程序運行后的輸出結(jié)果是()
A.5B.9C.15D.39
49.有以下程序voidfun(char*c,intD){*c-*c+1;d=d+1;printf("%c,%c,",*c,D);}main(){chara='A',b='a';fun(&b,A);printf("%c,%c\n",a,B);}程序運行后的輸出結(jié)果是
A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b
50.若有下列定義,則對a數(shù)組元素地址的正確引用是()。
inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
51.已知字符′A′的ASCII碼值是65,字符變量cl的值是′A′,c2的值是′D′。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是
A.A,BB.A,68C.65,66D.65,68
52.在設(shè)計程序時,應(yīng)采納的原則之一是()。
A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解
53.實體是信息世界中廣泛使用的一個術(shù)語,它用于表示()。
A.有生命的事物B.無生命的事物C.實際存在的事物D.一切事物
54.若有以下程序
#include<stdio.h>
inta[]={2,4,6,8};
main()
{inti;
int*p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);}
上面程序的輸出結(jié)果是
A.6B.8C.4D.2
55.程序中頭文件typel.h的內(nèi)容是:#defineN5#defineM1N*3程序如下:#include"type1.h”#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序編譯運行后的輸出結(jié)果是()
A.10B.20C.25D.30
56.數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程
57.在下列敘述中,正確的一條是______。
A.對while循環(huán)、do-while循環(huán)和for循環(huán),可以用continue語句跳出循環(huán)
B.表達式1+2<<3和sizeof(3.8)的結(jié)果分別為24和8
C.函數(shù)fputc(c,stdout)與putchar(c)的結(jié)果相同
D.在有參函數(shù)中,定義函數(shù)中指定的形參變量在程序一開始執(zhí)行時便分配內(nèi)存單元
58.一個算法應(yīng)該具有“確定性”等五個特性,下面對另外四個特性的描述中錯誤的是()。
A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性
59.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
60.設(shè)char型變量x中的值為10100111,則表達式(2+x)(-3)的值是
A.10101001B.10101000C.11111101D.1010101
四、選擇題(20題)61.有以下程序:
程序的運行結(jié)果是()。
A.0B.9C.6D.8
62.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
63.
64.(11)算法的時間復(fù)雜度是指()
A.執(zhí)行算法程序所需要的時間
B.算法程序的長度
C.算法執(zhí)行過程中所需要的基本運算次數(shù)
D.算法程序中的指令條數(shù)
65.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護過程
66.有以下程序:
當(dāng)執(zhí)行程序時從鍵盤上輸入HelloBeijing<;回車>;,則程序運行后的輸出結(jié)果是()。
A.hellobajiIlg
B.HelloBeijing
C.HELLOBEIJING
D.hELLOBeijing
67.作為信息處理熱點技術(shù)之一的“多媒體技術(shù)”中的媒體,強調(diào)的是()。
A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
68.
69.
70.
71.(42)希爾排序法屬于哪一種類型的排序法()
A.交換類排序法
B.插入類排序法
C.選擇類排序法
D.建堆排序法
72.下列描述中,不符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是
A.使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.注重提高程序的執(zhí)行效率
C.自頂向下
D.限制使用goto語句
73.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A.循環(huán)隊列B.帶鏈隊列C.二叉樹D.帶鏈棧
74.
以下程序的輸出結(jié)果是()。
main
{inti,k,a[10],p[3];
k=5;
for(i=0:i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k、;
}
A.20B.21C.22D.23
75.
有以下程序:
voidf(intx,inty)
{intt;
if(x<y){t=x;x=Y;y=t;)
}
main
{inta=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
執(zhí)行后輸出結(jié)果是()。
A.3,4,5B.5,3,4C.5,4,3D.4,3,5
76.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
77.
78.(50)數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,以下各項中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
79.
80.輸出語句:prinff(”%d\n”,ll+011);的輸出結(jié)果是()。
A.20B.22C.022D.021
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:
參考答案
1.D函數(shù)原型“fread(void*buffer,sizetsize,sizetcount,FILE*stream)”的功能是從一個文件流中讀數(shù)據(jù),讀取count個元素,每個元素size字節(jié)。如果調(diào)用成功,返回count。buffer用于接收數(shù)據(jù)的內(nèi)存地址,大小至少是size*count字節(jié);size是單個元素的大小,單位是字節(jié);count是元素的個數(shù),每個元素是size字節(jié);stream是輸入流。故本題答案為D選項。
2.D
3.A程序首先以讀二進制文件的方式打開文件d.dat;然后使用fwrite函數(shù)將數(shù)組a中6個元素寫入d.dat中。并調(diào)用for循環(huán)將a[2]元素(值為3)6次寫入d.dat文件中;接著使用rewind函數(shù)將文件指針fp移動到文件頭;再使用fseek函數(shù)將fp從當(dāng)前位置向后移動2個整數(shù)位置;最后使用fread函數(shù)從fp指向的位置向后讀取6個整數(shù)。由此可知這6個整數(shù)分別是:3,4,5,6,3,3。故本題答案為A選項。
4.B本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時的結(jié)束標(biāo)志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。
5.B
6.DA選項中整型常量應(yīng)表示為1200,數(shù)字中不能包含逗號。B選項中E后面的指數(shù)必須為整數(shù)。C選項中轉(zhuǎn)義字符以“\\”開始,若要表示字符“\\”,應(yīng)寫為“\\\\”。故本題答案為D選項。
7.B
8.D若G中有一條從Vj到Vi的路徑,則圖的拓撲序列中頂點Vj在頂點Vi之前。設(shè)G(V,E)是一個具有n個頂點的有向圖,V中頂點的序列v1,v2,…,vn稱為一個拓撲序列,當(dāng)且僅當(dāng)該頂點滿足下列條件:若在有向圖G中,從頂點vi在vj有一條路徑,則在拓撲序列中頂點vi必須排在頂點vj之前。
9.A
10.B“b+=a;”等價于“b=b+a;”,“a+=2;”等價于“a=a±2;”,“bA=10;”等價于“b=b%=10;”。循環(huán)體執(zhí)行3次,最終結(jié)果為7,1。
11.B解析:棧操作原則上“后進先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。
12.Bdouble,char,int,第一個字母都是小寫。
13.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
14.C
15.C在C語言中,可以用一個標(biāo)識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。
16.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。
17.D
18.B
19.A本題主要考查結(jié)構(gòu)體數(shù)組的使用。x[i].num為結(jié)構(gòu)體x[i]中的hum成員,x[i].num[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[i].num,x[1].name[2]的值;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第3次循環(huán),i=3,輸出X[3].hum,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。
20.D
21.\0's\\0'\r\ns解析:本題選通過for循環(huán)從鍵盤讀入20個字符,然后在最后賦一定值'\\0'后為結(jié)束標(biāo)志,再使指針p指向字符串的首地址。最后通過while循環(huán)對字符串進行掃描并輸出。
22.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
23.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
24.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。
25.軟件開發(fā)
26.53355335解析:函數(shù)swap1的形參是數(shù)組,故形參的改變能夠影響實參,所以執(zhí)行完swap1(a)后,a[0]=5、a[1]=3;函數(shù)swap2的形參是簡單變量,故形參的改變不能夠影響實參,所以執(zhí)行完swap2(b)后,b[0]=3、b[1]=5;正確答案為5335。
27.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時,將打開這個文件并且在文件的末尾進行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時,創(chuàng)建新文件,并在文件末尾進行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。
28.選擇結(jié)構(gòu)選擇結(jié)構(gòu)解析:程序設(shè)計語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。遵循程序結(jié)構(gòu)化的設(shè)計原則,按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序易于理解、使用和維護;可以提高編程工作的效率,降低軟件的開發(fā)成本。
29.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
30.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
31.33解析:條件表達式的一般形式為;表達式1?表達式2:表達式3條件運算符的執(zhí)行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。
32.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。
33.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運算后得97,以字符形式輸出是a。
34.數(shù)據(jù)庫管理系統(tǒng)或DBMS數(shù)據(jù)庫管理系統(tǒng)或DBMS解析:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護數(shù)據(jù)庫,簡稱DBMS。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過DBMS進行數(shù)據(jù)庫的維護工作。它提供多種功能,可使多個應(yīng)用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數(shù)據(jù)庫。因此,數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫管理系統(tǒng)是實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件。本題的答案是數(shù)據(jù)庫管理系統(tǒng)或DBMS。
35.0
36.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
37.1011121210111212解析:需要注意的是,函數(shù)fun()中的變量c為靜態(tài)局部變量,在靜態(tài)存儲區(qū)內(nèi)分配了存儲單元,在程序整個運行期間不會釋放,所以調(diào)用函數(shù)時,只賦初值一次,以后再調(diào)用函數(shù)時,c中的值為上次調(diào)用函數(shù)時的值。執(zhí)行for循環(huán),當(dāng)i=0時,fun(5)=5+1+4=10,此時c=4;當(dāng)i=1時,fun(5)=5+1+5=11,此時c=5;當(dāng)i=2時,fun(5)=5+1+6=12;此時c=6:當(dāng)i=3時,退出for循環(huán),并輸出回車換行符。
38.22
39.intz;sub(t1t2);
40.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個具體對象稱為類的實例。
41.B解析:棧操作原則上“后進先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。
42.D[答案]D
[考點]軟件工程基礎(chǔ)
[評析]
面向?qū)ο?對象+類+繼承+通過消息的通信
對象:一組屬性及其上的操作的封裝體
類:一組有相同屬性和操作的對象的集合
繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復(fù)用
消息:對象間通信的手段
D是結(jié)構(gòu)化程序設(shè)計或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計語言兼容這種方式,但不是其特征,故最佳選項為D
43.D解析:該程序先判斷a[i]<a[p],如果條件為真,則a[i]比當(dāng)前設(shè)定的最小值小(p保留的當(dāng)前最小元素的下標(biāo)),那么將i賦給p,即將比較過的最小元素下標(biāo)保留在p中,作為下面判斷的標(biāo)準(zhǔn)。
44.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。
45.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達式。
46.B解析:大寫字母從'A'~'Z'的ASCII碼是連續(xù)的,所以如果當(dāng)—個字符大于等于'A'且小于等于'z'時,那這個字符就一定是一個大寫字母,故選項C正確。C語言中的庫函數(shù)isupper()的作用也正是判斷一個字符是否為大寫字母的,故選項A正確。在ASCII碼中,小寫字母的編碼也是連續(xù)的,對應(yīng)的小寫字符比大寫字符的ASCII碼值大32,所以選項D經(jīng)過小寫字符-32后,換算成了對應(yīng)的大寫字母'Z'和'A',所得到結(jié)果和選項C是一致的,故也是正確的。選項B中,C語言的邏輯表達式不能直接連寫,而應(yīng)該寫成選項C那樣,故是錯誤的,應(yīng)該選擇B。
47.B數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負責(zé)數(shù)據(jù)庫的建立、使用和維護的軟件。DBMS建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
48.A
49.D解析:本題考查用地址作為參數(shù)與值作為參數(shù)傳遞之間的不同。在c語言中,數(shù)據(jù)傳遞是單向傳遞的?!爸祩鬟f”就是實參把對應(yīng)的值傳給相應(yīng)的形參變量,然后形參和實參不再有任何聯(lián)系,在被調(diào)用函數(shù)中,對形參的修改并不影響對應(yīng)的實參?!暗刂穫鬟f”就是實參把相應(yīng)的地址傳給相應(yīng)的行參變量,在被調(diào)用函數(shù)中對行參的修改將修改對應(yīng)的實參地址對應(yīng)的值.程序中定義了兩個字符型變量'a'和'b',并分別賦初值為,At和'a',然后調(diào)用函數(shù)fun(),將b的地址和a值作為實參.在函數(shù)fun()中第一個參數(shù)是傳遞地址,故在調(diào)用函數(shù)fun()中對參數(shù)做的修改(即將b值加一)將影響字符型變量的值(變?yōu)閎),函數(shù)fun()第二個參數(shù)是傳值的,故在調(diào)用函數(shù)fun()對第二個參數(shù)做的修改不影響字符型變量a(即'a'的值仍為'A'),所以在fun()函數(shù)中輸出的是d為b,B,接著在主函數(shù)中,輸出a,b,然后退出fun()函數(shù),接著執(zhí)行后面的語句,輸出A,b.所以最后輸出為b,B,A,b。所以4個選項中D正確。
50.D解析:本題考查如何引用數(shù)組元素的地址。
選項A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用錯誤;選項B)中,*a+1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。
51.C解析:在C語言中,字符型數(shù)據(jù)在內(nèi)存中的存儲形式是ASCII碼值。當(dāng)需要以整型格式輸出字符時,輸出的也是ASCII碼值。字符'A'和'D'的ASCII碼值分別為65和68。
52.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應(yīng)減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。
53.C解析:實體是客觀存在且可以相互區(qū)別的事物。實體可以是具體的對象,如一個學(xué)生,也可以是一個抽象的事件,如一次出門旅游等。因此,實體既可以是有生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。
54.D解析:在C語言中,數(shù)組元素下標(biāo)是從0開始的;指針變量p指向數(shù)組的首地址。for循環(huán)語句中,指針變量p始終指向數(shù)組的首地址,因而執(zhí)行循環(huán)賦值語句后數(shù)組各元素的值均變?yōu)?。
55.C
56.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。
57.C解析:選項A錯誤,continue語句只能結(jié)束本次循環(huán),不能結(jié)束整個循環(huán)。要跳出循環(huán)可用break語句。選項B錯誤,表達式1+2<<3等價于(1+2)<<3,即0000000000000011向右移3位,移后變?yōu)?000000000000000,即0。選項C正確,函數(shù)fputc的操作對象是文件,而putchar是直接向標(biāo)準(zhǔn)輸出設(shè)備輸出字符。標(biāo)準(zhǔn)輸出設(shè)備是一個特殊文件,即設(shè)備文件,文件型指針指向標(biāo)準(zhǔn)輸出設(shè)備,因而功能相同。選項D錯誤,在定義函數(shù)中指定的形參變量,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。
58.B解析:算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。算法具有五個重要特性:
①有窮性:一個算法必須總是在執(zhí)行有限步之后結(jié)束,且每一步都可在有限時間內(nèi)完成。
②確定性:算法中每一步驟都必須有明確的定義,不允許有模棱兩可的解釋,也不允許有多義性,對于相同的輸入只能得出相同的輸出。
③可行性:算法中描述的操作可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次來實現(xiàn)。
④輸入:一個算法有零個或多個的輸入。
⑤輸出:一個算法有一個或多個輸出,這些輸出是同輸入有著某些特定關(guān)系的量。
59.B解析:在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專用設(shè)備的結(jié)構(gòu)強度分析考核試卷
- 2025-2030全球汽車引擎蓋和后備箱釋放電纜行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國受控環(huán)境室和房間行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國自主挖掘機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 自然美術(shù)課程設(shè)計
- 認識地圖課程設(shè)計
- 老路改造課程設(shè)計
- 粘土三明治課程設(shè)計
- 課程設(shè)計等高線的確定
- 領(lǐng)導(dǎo)能力提升課程設(shè)計
- 2024年醫(yī)師定期考核臨床業(yè)務(wù)知識考試題庫及答案(共三套)
- 2014新PEP小學(xué)英語六年級上冊-Unit5-What-does-he-do復(fù)習(xí)課件
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書
- 2024-2025學(xué)年人教版初中物理九年級全一冊《電與磁》單元測試卷(原卷版)
- 江蘇單招英語考綱詞匯
- 2024年事業(yè)單位財務(wù)工作計劃例文(6篇)
- 2024年工程咨詢服務(wù)承諾書
- 青桔單車保險合同條例
- 車輛使用不過戶免責(zé)協(xié)議書范文范本
- 2023-2024學(xué)年天津市部分區(qū)九年級(上)期末物理試卷
評論
0/150
提交評論