2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

2021年廣東省清遠(yuǎn)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下程序運行后的輸出結(jié)果是()。

A.1,2,3,1,5,9,

B.1,3,5,1,3,5,

C.1,3,5,0,d,8,

D.1,3,5,-1,3,7,

2.

若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。

#include<stdio.h>

#include<string.h>

main

{intn;

chars1[20],s2[20],*p1,*p2;

scanf("%s",s1);

scanf("%S",s2);

p1=s1;

p2=s2;

n=strcmp(p1,p2);

printf("Vood\n",n);

}

A.-1B.0C."abcdef"D."abdef"

3.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯誤的賦值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

4.有以下程序程序執(zhí)行后的輸出結(jié)果是()。

A.y=-IB.y=oC.y=lD.while構(gòu)成無限循環(huán).

5.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

6.若有下列定義(設(shè)int類型變量占2個字節(jié)):

inti=8;

則下列語句:

printf("i=%08d",i);

輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8

7.單鏈表中,增加一個頭結(jié)點的目的是為了()。

A.使單鏈表至少有一個結(jié)點B.標(biāo)識表結(jié)點中首結(jié)點的位置C.方面運算的實現(xiàn)D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?/p>

8.設(shè)n個待排序的記錄關(guān)鍵字,則在堆排序中需要()個輔助記錄單元。

A.1B.12C.60D.15

9.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運行后的輸出結(jié)果是()。

A.0101B.1000C.1100D.1010

10.

11.下列說法正確的是()。

A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù)定義元素個數(shù)可變的數(shù)組

B.在c語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機變動

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義一個數(shù)組后.就確定了它所容納的元素的個數(shù)

12.有以下程序

A.741B.963C.852D.87542l

13.

14.已知一個長度為32的有序表,若采用二分查找一個不存在的元素,則比較次數(shù)最多是()

A.4B.5C.6D.7

15.在循環(huán)隊列中,若front與rear分別表示對頭元素和隊尾元素的位置,則判斷循環(huán)隊列空的條件是()。

A.front==rear+1B.rear==front+1C.front==rearD.front==0

16.設(shè)有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯誤的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color

17.

18.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結(jié)果是()。

A.10011000B.10001100C.10101000D.10110000

19.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點i的出度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

20.下而程序的輸出結(jié)果是()。

A)32

B)26

C)24

D)4

二、2.填空題(20題)21.在具有n個單元、順序存儲的循環(huán)隊列中,隊滿時,共有【】個元素。

22.多媒體計算機所用的CD-ROM是【】。

23.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整型數(shù)據(jù),成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。

structnode

}intinfo;

【】link;

};

24.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。

word_num(str)

for(i=0;str[i]!=【】;i++)

if(【】='')word=0;

【】;

}

return(num);

}

25.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

26.如果一個工人可管理多個設(shè)施,而一個設(shè)施只被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在______聯(lián)系。

27.有以下程序:

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

printf("%d\n",t);

}

執(zhí)行后的輸出結(jié)果是【】。

28.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)

arr[i]=i;

for(i=1;i<4;i++)

k+=arr[i]+i;

printf("%d\n"k);}

29.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。

30.以下程序的輸出結(jié)果是【】。

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

31.已知head指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結(jié)點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

32.將經(jīng)過確認(rèn)測試的軟件與外設(shè)、網(wǎng)絡(luò)等連接在一次運行的測試叫【】

33.以下程序運行后的輸出結(jié)果是【】。

main()

{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

for(j=i+1;j<3;j++)a[j][i]=0;

for(i=0;i<3;i++)

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

34.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。

35.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

36.棧的基本運算有三種:入棧、退棧和【】。

37.已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

printf("%d%c\n",a,B);

}

38.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。

39.以下程序運行后的輸出結(jié)果是【】。

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

40.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護o

三、1.選擇題(20題)41.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

42.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動移至下一個字符位置

43.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

44.在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是()。

A.各模塊應(yīng)包括盡量多的功能

B.各模塊的規(guī)模應(yīng)盡量大

C.各模塊之間的聯(lián)系應(yīng)盡量緊密

D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度

45.以下能正確定義二維數(shù)組的是()。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1},{2},{3,4}}:

46.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"),*p=str[0];printf("%d\n",strlen(p+20));}程序運行后的輸出結(jié)果是()。

A.0B.5C.7D.20

47.當(dāng)a=1、b=3、c=5、d=4時,執(zhí)行下面一段程序:if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2;elsex=3;elesx=6;elsex=7;程序執(zhí)行后,x的值為()

A.1B.2C.3D.6

48.按條件f對關(guān)系R進行選擇,其關(guān)系代數(shù)表達式為

A.

B.

C.

D.

49.靜態(tài)測試是一種重要的測試方式,可以發(fā)現(xiàn)30%到70%的邏輯設(shè)計和編碼錯誤。下面()不屬于靜態(tài)測試?

A.白盒測試B.代碼檢查C.代碼質(zhì)量度量D.靜態(tài)分析

50.有以下程序:#include<stdio,h>voidfun(iht*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);main()intx[]:{2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\n");

A.1268B.8621C.8162D.8612

51.若變量已正確定義并賦值,下面符合C語言的表達式是_____。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

52.以下敘述中錯誤的是

A.gets函數(shù)用于從終端讀入字符串

B.getehar函數(shù)用于從磁盤文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件

53.下列敘述中正確的是()。

A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫系統(tǒng)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上三種說法都不對

54.下列說法不正確的是()。

A.一個C語言源程序可以由一個函數(shù)組成也可以由多個函數(shù)組成

B.main()中的“()”是函數(shù)的參數(shù)部分,括號內(nèi)可為空,但括號不能省略

C.C語言程序是以函數(shù)為基本單位的

D.在C語言程序中,注釋行只能位于一條語句的后面

55.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}rintf("%d\n",m);}程序運行后的輸出結(jié)果是()。

A.1B.2C.3D.4

56.下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5),k;intx;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}

A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,

57.有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運行后的輸出結(jié)果是______。

A.64,28B.4,4C.4,3D.64,64

58.下列程序的輸出結(jié)果是

#include"stdio.h"

main()

{inti,a=0,b=0;

for(i=1;i<10;i++)

{if(i%2==0)

{a++;

continue;}

b++;}

printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

59.設(shè)x、y、t均為int型變量,執(zhí)行以下語句后,y的值為______。x=y=3;t=++x||++y;

A.不定值B.4C.3D.1

60.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[5][10]={"abc","aabdog","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[0]));}程序運行后的輸出結(jié)果是()。

A.2B.4C.6D.3

四、選擇題(20題)61.若有定義語句:doublex,y,*px,*PY;執(zhí)行了laX=&x;lay=&y;之后,正確的輸入語句是()。A.scanf(”%If%le”,px,lay);

B.seanf(”%f%f¨&x,y);

C.seanf(”%f%f",x,y);

D.Scanf(”%If%If"·,x,y):

62.

63.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。

A.2B.3C.4D.5

64.有以下程序:

程序運行后的輸出結(jié)果是()。

A.0B.1C.4D.8

65.為了避免嵌套的條件分支語句if—else的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關(guān)系。

A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if

66.

67.以下程序的輸出結(jié)果是()。

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

}

voidmain()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

printf("%d\n",x);

}A.A.10

B.18

C.8

D.15

68.有以下程序:

程序運行后的輸出結(jié)果是()。

A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,

69.對表達式for(表達式1;;表達式3)可理解為()。

A.for(表達式1;0;表達式3)

B.for(表達式1;1;表達式3)

C.for(表達式1;表達式1;表達式3)

D.for(表達式1;表達式3;表達式3)

70.以下程序運行后的輸出結(jié)果是()。

A.eelcomwB.weoclnleC.welcomeD.emoclew

71.

下列程序的輸出結(jié)果是()。

main

{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)

if(p[i]%2)j+=p[i];

printf("%d\n",j);

}

A.42B.45C.56D.60

72.有以下程序:

程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356

73.

74.

75.應(yīng)用數(shù)據(jù)庫的主要目的是A.A.解決數(shù)據(jù)保密問題

B.解決數(shù)據(jù)完整性問題

C.解決數(shù)據(jù)共享問題

D.解決數(shù)據(jù)量大的問題

76.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.sets(&s[0]);

B.scarf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

77.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運算符。

A.&B.^C.D.E.F.~

78.

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串的最前端加入m個*號,形成新串,并且覆蓋原串。例如,用戶輸入字符串a(chǎn)bcd(以Enter鍵結(jié)束),然后輸入m值為3,則結(jié)果為***abcd。注意:字符串的長度最長允許為79。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫一個函數(shù)voidproc(intm,intk,intxx[]),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個非素數(shù)存人所指的數(shù)組中。例如,若輸入:105(即M=10,k=5),則應(yīng)輸出:l214151618。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.Dmain函數(shù)中,fun(fun(t))嵌套調(diào)用fun函數(shù)。第一次調(diào)用為fun(1),調(diào)用后,a[3]={1,3,5},輸出1,3,5,返回a[1]=3。第二次調(diào)用為fun(3),調(diào)用后,a[3]={一1,3,7},輸出一l,3,7。

2.D

\n本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

\n

3.A數(shù)組名是一個存放一個數(shù)組首地址的值,是一個地址常量。而p=a不是合法的,因為p和a的基本類型不同。

4.A當(dāng)y為。時,表達式y(tǒng)一才為假,循環(huán)結(jié)束,最終y的值為一l,所以答案選擇A)。

5.BC語言中,char型變量的值是其對應(yīng)字符的ASCII值,可以做比較運算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時,判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項。

6.B解析:本題考查printf函數(shù)的格式。“%08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時,在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。

7.C

8.A

9.D函數(shù)fun的作用是求一個十進制數(shù)的二進制數(shù)。通過輾轉(zhuǎn)相除法獲取這個整數(shù)的二進制數(shù)。因此(10)10=(1010)2。故本題答案為D選項。

10.D

11.D在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機變動,數(shù)組定義好后,它所能容納的元素的個數(shù)也就確定了,并且同一個數(shù)組中所有元素都是同一類型。

12.C在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達式“——y”的值。y先自減1,然后再輸出y的值。

13.C

14.C

15.C

16.C【答案】C

【知識點】結(jié)構(gòu)體成員變量的引用

【解析】結(jié)構(gòu)體變量包括一個或多個成員變量,引用其成員變量的語法格式如下:

結(jié)構(gòu)體變量.成員變量。通過結(jié)構(gòu)體指針變量獲得其結(jié)構(gòu)體變量的成員變量的一般形式為:(*結(jié)構(gòu)體指針變量).成員變量,也可以使用:結(jié)構(gòu)體指針變量->成員變量來引用成員變量。

17.D

18.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。

19.A

20.C本題考查的是聯(lián)合所占的存儲空間。sizeof(t)=sizeof(douhle)*3=8*3=24。聯(lián)合體所占的存儲空間取決于所占空間最大的成員所占的空間。

21.n-1

22.只讀光盤只讀光盤

23.struetnode*struetnode*解析:本題中的結(jié)構(gòu)類型名為struetnode,所以空白處應(yīng)填:structnode*,即定義一個指向自身的結(jié)構(gòu)體指針。

24.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個字符;

②str[i]代表字符串str中的第i+1個字符;

③整形變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應(yīng)填寫“\\0”;題中第二個空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。

25.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

26.一對多(或1:N)一對多(或1:N)

27.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。

28.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

29.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

30.SO

31.structlink*headstructlink*head解析:考查用指針引用結(jié)構(gòu)體變量成員數(shù)據(jù)的方法。因為本題中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點,逐個節(jié)點的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有指向結(jié)構(gòu)體變量的指針,依次指向各個節(jié)點,即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。

32.系統(tǒng)測試系統(tǒng)測試

33.123056009123\r\n056\r\n009解析:數(shù)組a中元素的初值為:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。

34.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。

35.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。

36.讀棧頂元素讀棧頂元素解析:棧的基本運算有三種:入棧、退棧和讀棧頂元素。

入棧運算是指在棧頂位置插入一個新元素。這個運算有兩個基本操作:首先將棧頂指針進一(即top加1),然后將新元素插入到棧頂指針指向的位置。

退棧運算是指取出棧頂元素并賦給一個指定的變量。這個運算有兩個基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個指定的變量,然后將棧頂指針退一(即top減1)。

讀棧頂元素是指將棧頂元素賦給一個指定的變量。這個運算不刪除棧頂元素,只是將它的值賦給一個變量。

37.67G67G解析:字符型變量中保存的是某個字符的ASCII碼值,是一個整數(shù),因此字符型變量的算術(shù)運算和整型變量并無區(qū)別。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分別按十進制整數(shù)和字符形式輸出a和b的值為:67G。

38.-55。

39.1515解析:程序通過遞歸調(diào)用實現(xiàn)求數(shù)組aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。

40.完善性完善性解析:軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、完善性維護和預(yù)防性維護。完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

41.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。

42.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:

intrewind(FILE*stream);并且無返值。

43.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

44.D解析:本題考查軟件工程中軟件設(shè)計的概念和原理。人們在開發(fā)計算機軟件的長期實踐中積累了豐富的經(jīng)驗,總結(jié)這些經(jīng)驗得到如下的啟發(fā)式規(guī)則:

(1)改進軟件結(jié)構(gòu),提高模塊獨立性;通過模塊的分解或合并,力求降低耦合提高內(nèi)聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內(nèi)聚是提高一個模塊內(nèi)各元素彼此結(jié)合的緊密程度。

(2)模塊的規(guī)模應(yīng)適中。一個模塊的規(guī)模不應(yīng)過大,過大的模塊往往是由于分解不夠充分:過小的模塊開銷大于有益操作,而且模塊過多將使系統(tǒng)接口復(fù)雜。因此過小的模塊有時不值得單獨存在。

(3)模塊的功能應(yīng)該可以預(yù)測,但也要防止模塊功能過分局限。如果模塊包含的功能太多,則不能體現(xiàn)模塊化設(shè)計的特點:如果模塊的功能過分的局限,使用范圍就過分狹窄。

經(jīng)過上述分析,本題的正確答案是選項D。

45.B解析:(1)二維數(shù)組的定義

二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。

二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。

(2)二維數(shù)組元素的引用

二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達式其范圍為:0~(常量表達式-1)。

(3)二維數(shù)組的初始化

可以用以下方法對二維數(shù)組元素初始化:

①分行給二維數(shù)組賦初值

例如:inta[2][2]={{1,2},{3,4}};

這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。

②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。

③可以對部分元素賦初值,沒有初始化的元素值為0。

④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。

46.C解析:主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結(jié)果為str[0]='Hello'、str[1]='Beijng',然后定義一個字符指針變量p并讓它指向str[0],即指向數(shù)組的首地址,而在C語言中無論是一維還是多維數(shù)組,其元素在內(nèi)存中都是順序存放的,故p+20后指針指向str[1],所以strlen(p+20);返回的是str[1]中字符串的長度,即'Beijng'的長度7,故4個選項中選項C符合題意。

47.B

48.C解析:選擇運算是一個一元運算,關(guān)系R通過選擇運算(并由該運算給出所選擇的邏輯條件)后仍為一個關(guān)系。這個關(guān)系是由R中那些滿足邏輯條件的元組所組成。如果關(guān)系的邏輯條件為f,則R滿足f的選擇運算可以寫成;бf(R)。

49.A

50.C解析:語句fun(x,0、3);中將數(shù)組名x作為實參,即把數(shù)組x的首地址傳送給形參(指針a),使數(shù)組x與形參指針s共占同一段內(nèi)存單元,在調(diào)用函數(shù)期間,如果形參數(shù)組x的值發(fā)生了改變,實參指針a的值也就改變了。程序中fun函數(shù)是遞歸調(diào)用函數(shù),其運行過程是:第1次調(diào)用fun時,a=x,i=0,j=3,i<j成立,a[0]與a[3]交換,a數(shù)組中的數(shù)變?yōu)閧8,6,1,2},執(zhí)行i++;j--;繼續(xù)調(diào)用fun,此時i,j分別為1,2,i<j成立,a[1]與a[2]交換,a數(shù)組中的數(shù)變?yōu)閧8,1,6,2},執(zhí)行i++j--;繼續(xù)調(diào)用fun,此時i,j分別為2,1,i<j不成立,遞歸調(diào)用結(jié)束。當(dāng)返回主函數(shù)時,x數(shù)組中的數(shù)據(jù)就為{8,1,6,2}。

51.B解析:選項A和C一望而知其錯;對于表達式a=a+7=c+b(答案D),是先執(zhí)行賦值表達式a+7=c+b,再把這個表達式的值賦給a,顯然,表達式a+7=c+b非法,因為賦值表達式的左側(cè)不能為常量或表達式。

52.B

53.B解析:數(shù)據(jù)庫系統(tǒng)(DBS)是由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、硬件平臺(硬件)、軟件平臺(軟件)五個部分構(gòu)成的運行實體。數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。

54.D解析:本題涉及C語言基本的3個知識點:①C語言是以函數(shù)為基本單位的,每一個函數(shù)完成相對獨立的功能,一個程序可以包括多個函數(shù),但有且僅有一個主函數(shù);②主函數(shù)main()的圓括號內(nèi)是填寫參數(shù)的,可以沒有參數(shù),但括號不可以省略;③程序的注釋部分應(yīng)該在“/*…………*/”之間,它允許出現(xiàn)在程序的任何位置。

55.A解析:本題中首先計算switch后面括號里的表達式a%3,即15%3為0;執(zhí)行case0:后面的語句m++:m自加1,即m為1遇到break語句;然后跳出switch語句,所以最后輸出的m的值為1。所以選項A正確。

56.A解析:分析fun函數(shù)程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。

57.C解析:根據(jù)題意,il=f(8)/f(4)進行宏替換后.i1=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以輸出結(jié)果為4、3。

58.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當(dāng)能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進行i++,判斷循環(huán)條件。

59.C

60.C解析:題目中已告知函數(shù)f()的作用是將字符串從小到大排序,因此主函數(shù)中調(diào)用完f(p,5);后,二維數(shù)組p中的內(nèi)容為('aabdfg','abbd','abc','cd','dcdbc'}。輸出的結(jié)果是strlen(p[0]),即p中第1個字符串的長度,所以結(jié)果是6。故本題應(yīng)該選擇C。

61.A因為X,Y都是double型數(shù)據(jù),所以輸入時的格式字符應(yīng)為%If,所以B與C錯誤。D選項中scanf(”%lf%%’,x,Y);應(yīng)為sc“(”%If%If"’,,&)r);。

62.A

63.A解析:選擇排序的基本思想是掃描整個線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個位置,元素15則放在第二個位置。

64.Cm函數(shù)中的X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義相當(dā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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論