2021年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.利用E-R模型進行數(shù)據(jù)庫的概念設計,可以分成3步:首先設計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。

A.簡化B.結構化C.最小化D.優(yōu)化

2.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。

A.a++;B.b++;C.c++;D.d++;

3.根據(jù)二叉樹的定義可知道二叉樹共有種不同形態(tài)的二叉樹()。

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

4.算法分析的目的是()。

A.找出數(shù)據(jù)結構的合理性B.研究算法中的輸入和輸出的關系C.分析算法的效率以求改進D.分析算法的易懂性和文檔性

5.

6.設a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

7.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內(nèi)容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

8.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結果是()。

A.akbre\'hi\'y'\\\bou

B.a\bre\'hi\\y\bou

C.re'hi'you

D.abre'hi'y\bou

9.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

10.數(shù)據(jù)的不可分割的基本單位是()。

A.元素B.結點C.數(shù)據(jù)類型D.數(shù)據(jù)項

11.

12.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序運行后的輸出結果是()。

A.9,18B.8,11C.7,11D.10,14

13.若k是int類型變量,且有以下for語句:for(k=-1;k<O;k++)printf("****\n");下面關于語句執(zhí)行情況的敘述中正確的是()。、A.循環(huán)體執(zhí)行一次B.循環(huán)體執(zhí)行兩次C.循環(huán)體一次也不執(zhí)行D.構成無限循環(huán)

14.

15.下面不能正確表示a*b/(c*d)的表達式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

16.C語言規(guī)定,程序中各函數(shù)之間()

A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D.不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

17.在一個有向圖中,所有頂點的入度之和等于所有頂點的出度之和的()倍。A.A.1/2B.1C.2D.4

18.設有數(shù)組A[i][j],數(shù)組的每個元素長度為3字節(jié),i的值為8,j的值為10,數(shù)組從內(nèi)存首地址BA開始順序存放,下標從0開始,當以列為主序存放時,元素A[5][8]的存儲首地址為()。

A.BA+141B.BA+180C.BA+222D.BA+225

19.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

程序的運行結果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

20.下列不正確的轉(zhuǎn)義字符是()。

A.'\\'B.'\t'C.'\n'D.'088'

二、2.填空題(20題)21.下列程序的功能是輸入一個整數(shù),判斷其是否是素數(shù),若為素數(shù)則輸出1,否則輸出0。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,x,y=1;

scanf("%d",&x);

for(i=2;i<=x/2;i++)

if【】{y=0;break;}

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

}

22.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內(nèi)存空間中,形成一個新字符串s。請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

printf("%s\n",str1);

}

23.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum,count);

}

24.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。

25.以下程序的輸出結果是【】。

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

26.下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

printf("\n");

}

27.關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括選擇、連接和【】。

28.以下程序的運行結果是______。

structNode}

intx;

charch;

};

fun(structNode*sn)

}statick=1;

sn->x=20;

Sn->ch='a'+k++;

}

main()

{inti;

staticstructNodest=}10,'a'};

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

fun(&st);

printf("%d,%c\n",st.x,st.ch);

}

29.關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。

30.以下程序的輸出結果是【】。

main()

{inta=177;

printf(“%o\n”,A);

}

31.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結束本次循環(huán),然后進行循環(huán)的條件判定。

32.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請?zhí)羁铡?/p>

#include<stdio,h>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i<3;i++)printf("%4d",b[i]);

prinff("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];'

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

【】=x;

}

}

33.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結果是()。

34.模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。

35.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結構是【】。

36.下列程序段的運行結果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

37.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。

38.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

39.下列程序的輸出結果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

40.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。

三、1.選擇題(20題)41.以下程序的輸出結果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,A);}

A.31B.13C.10D.20

42.以下選項中合法的實型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

43.設char型變量x中的值為10100111,則表達式(2+x)(-3)的值是

A.10101001B.10101000C.11111101D.1010101

44.有以下程序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]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應填入的是

A.i-1B.iC.i+1D.4-i

45.設有定義:intn1=0,n2,*P=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

46.下面的關鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

47.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

48.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

49.現(xiàn)有如下程序段

#include"stdio.h"

#include"string.h"

main()

{chara[]="acfijk";/*這里是有序的字符序列*/

charb[]="befijklqswz";/*這里是有序的字符序列*/

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!=′\0′&&b[j]!=′\0′)

{if(a[i]<b[j])c[k++]=a[i++];

elseif(a[i]>b[j])c[k++]=b[j++];

else{c[k++]=b[j++];

i++;}}

while(a[i]==′\0′&&b[j]!=′\0′)

c[k++]=b[j++];

while(a[i]!=′\0′&&b[j]==′\0′)

c[k++]=a[i++];

c[k]=′\0′;

puts(c);}

則輸出結果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

50.設有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是

A.struct結構體類型的關鍵字

B.example是結構體類型名

C.x,y,z都是結構體成員名

D.structex是結構體類型名

51.設有定義語句intx[6]=(2,4,6,8,5,7.),*p=x,i;要求依次輸出x數(shù)組6個元素中的值,不能完成此操作的語句是

A.for(i=0;i<6;i++)printf(“%2d”,*(p++));

B.for(i=0;i<6;i++)printf(“%2d”,*(p+i));

C.for(i=0;i<6;i++)printf(“%2d”,*p++);

D.for(i=0;i<6;i++)printf(“%2d”,*(p)++);

52.有以下程序

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);}

程序運行后的輸出結果是

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

53.在軟件測試設計中,軟件測試的主要目的是

A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤

54.C語言中用于結構化程序設計的三種基本結構是A.順序結構、選擇結構、循環(huán)結構

B.if、switch、break

C.for、while、do-while

D.if、for、continue

55.若x和y都是血型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));,則輸出結果是______。

A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值

56.數(shù)據(jù)管理技術隨著計算機技術的發(fā)展而發(fā)展。數(shù)據(jù)庫階段具有許多特點,但下面列出的特點中,______不是數(shù)據(jù)庫階段的特點。

A.數(shù)據(jù)結構化B.數(shù)據(jù)面向應用程序C.數(shù)據(jù)共享性高D.數(shù)據(jù)具有較高的獨立性

57.以理對枚舉類型名的定義中正確的是______。

A.enuma={one,two,three);

B.enuma{one=9,two=1three};

C.enuma={"one","two","three"};

D.enuma{"one","two"."three"};

58.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機值

59.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符o的表達式是_______。

A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

60.執(zhí)行下列語句后,a和b的值分別為______。inta,b;a=1+b=2+7%-4-'A';

A.-63,-64B.-59,-60C.1,-60D.79,78

四、選擇題(20題)61.設intx=7,則~x的值是()。

A.-8B.7C.-1D.1

62.

(19)關系表中的每一橫行稱為一個()

A.元組

B.字段

C.屬性

D.碼

63.對如下二叉樹進行后序遍歷的結果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

64.

設變量已正確定義,則以下能正確計算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

65.設變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

66.開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱為()。

A.軟件投機B.軟件危機C.軟件工程D.軟件產(chǎn)生

67.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的一般度量標準是

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機制和控制方法

68.

69.在滿足實體完整性約束的條件下()。

A.一個關系中應該有一個或多個候選關鍵字

B.一個關系中只能有一個候選關鍵字

C.一個關系中必須有多個候選關鍵字

D.一個關系中可以沒有候選關鍵字

70.

71.若變量已確定義,則以下語句的輸出結果是()。

72.

73.

74.

75.

76.

下述程序的輸出結果是()。

#include<stdio.h>

main

{inti;

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

{if(i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i);

}

A.49B.36C.25D.64

77.樹是結點的集合,它的根結點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

78.有以下程序:

程序的運行結果是()。

A.*7

B.*3*5

C.*5

D.*2*6

79.有以下程序

main()

{inti;

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

switch(i)

{case1:printf("%d",i);

case2:printf("%d",i);

default:printf("%d",i);

}

}

程序執(zhí)行后的輸出結果是

A.011122B.012

C.012020D.120

80.設有以下語句:

其中0≤k<5。以下不是對字符串的正確引用的是()。

A.*strpB.strp[k]C.str[k]D.strp

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.使用VC++2010打開觸文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是移動字符串中的內(nèi)容,移動的規(guī)則是把第1~m個字符,移動到字符串的最后,把第m+1到最后的字符移動到于符串的前面。例如,字符串中原有的內(nèi)容為“ABCDEFGHIJK”,m的值為3,移動后,字符串中的內(nèi)容應該是“DEFGHUKABC”。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.D解析:在概念設計中按照模塊的劃分畫出每個模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應該對全局E-R圖進行優(yōu)化,看看是否有重復和不合理的地方。不能只是進行簡單的合并。

2.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。

3.B

4.C

5.C

6.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結果為1。選項C:a||+c&&b-c,結果為1;選項D:!((a<B)&&!c||1),運算結果為0。

7.B題目中先是將s2字符串寫入adc.dat中,然后執(zhí)行rewind函數(shù)將寫指針放置于文件開頭,寫入s1字符串。s1字符串將前5個字符覆蓋,所以最終結果為Chinang。故本題答案為B選項。

8.C先輸出a、b表示退一格,當執(zhí)行到:\b后,光標往后退,接著輸出re'hi'y\(反斜杠后又加一個反斜杠的意思是要輸出一個反斜杠),此時又執(zhí)行:\b后,\就被ou覆蓋。

9.B當n為9時,此時if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項。

10.D

11.D

12.D第1次循環(huán),a的值為1,滿足條件,執(zhí)行“b+=a;”與“a+=2;”,則b的值變?yōu)?,a的值變?yōu)?。執(zhí)行“a++”,a的值為4,滿足條件進入第2次循環(huán),執(zhí)行完循環(huán)體后,b的值為7,a的值為6。執(zhí)行“a++”,a的值為7,滿足條件進入第3次循環(huán),執(zhí)行完循環(huán)體后,b的值為14,a的值為9。執(zhí)行“a++”,a的值為10。條件不滿足,退出循環(huán)。故本題答案為D選項。

13.A本題考查簡單的for語句,程序中當k<0時循環(huán)才執(zhí)行,所以答案選擇A。

14.A

15.A

16.A解析:C語言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。

17.B

18.A

19.D解析:本題中fun函數(shù)實現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結束符'\\0')逐個復制到字符串ss的末尾處。

20.D解析:'\\\\'是反斜線轉(zhuǎn)義字符:'\\t'是水平跳格轉(zhuǎn)義字符:'\\n'是換行轉(zhuǎn)義字符;C語言中沒有規(guī)定'088'為轉(zhuǎn)義字符。

21.(x%i==0)(x%i==0)解析:為判數(shù)x是否是素數(shù),預置變量y的值為1(x可能是素數(shù)),然后用2至x/2的整數(shù)i測試對x的整除性,若x能被其中的某個整數(shù)整除,則x是合數(shù),置y的值為0(即x不是素數(shù)),結束循環(huán)測試;若循環(huán)中i都不能整除x,則x為素數(shù)。一般可用求余運算x%i是否等于0來判定i能否整除x,所以程序中的空格處可填(x%i==0)。

22.*t++*t++解析:要使sstrcpy函數(shù)實現(xiàn)字符串復制,必須將t字符串中的每個字符逐個復制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。

23.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20的整型數(shù)組,然后通過一個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應該填入數(shù)組元素,所以應該填a或*(a+i)。

24.19

25.99解析:本題的字符串中共有9個字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結果為9。

26.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]

27.投影專門關系運算包括對單個關系進行垂直分解(投影操作)或水平分解(選擇操作)和對多個關系的結合(連接操作)等。

28.20c。20,c。解析:函數(shù)fun的功能是給結構體指針變量所指的結構體變量的各成員賦值,主函數(shù)兩次調(diào)用函數(shù)fun,第一次調(diào)用,實參st兩個成員的值是20和字符b,調(diào)用結束時,靜態(tài)局部變量k沒有釋放,值為2:第二次調(diào)用,實參st兩個成員的值是20和字符c,調(diào)用結束時,靜態(tài)局部變量k沒有釋放,值為3;因此,輸出結果是20和c。

29.查詢查詢解析:關系模型的數(shù)據(jù)操作即是建立在關系上的數(shù)據(jù)操作,一般有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢是指用戶可以查詢關系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個關系內(nèi)的查詢以及多個關系間的查詢。數(shù)據(jù)刪除的基本單位是一個關系內(nèi)的元組,它的功能是將指定關系內(nèi)的指定元組刪除。數(shù)據(jù)增加僅對一個關系而言,在指定關系中插入一個或多個元組。數(shù)據(jù)修改是在一個關系中修改指定的元組和屬性。

30.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進制數(shù)輸出,十進制數(shù)的177代表的八進制數(shù)是261。

31.continuecontinue解析:continue語句只是結束本次循環(huán),然后進行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進行條件判定。

32.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(shù)組a是一個3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則從一行的4個數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應填br[i]或*(br+i)。

33.98

34.在進行單元測試時,要用一些輔助模塊去模擬與被測模塊相聯(lián)系的其他模塊,即為被測模塊設計和搭建驅(qū)動模塊和樁模塊。其中,驅(qū)動模塊相當于被測模塊的主程序,它接收測試數(shù)據(jù),并傳給被測模塊,輸出實際測試結果;而樁模塊是模擬其他被調(diào)用模塊,不必將子模塊的所有功能帶入。\r\n\r\n

35.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結構把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結點,其數(shù)據(jù)域為任意或根據(jù)需要來設置,指針域指向線性表的第一個元素的結點。循環(huán)鏈表的頭指針指向表頭結點。②循環(huán)鏈表中最后一個結點的指針不是空,而是指向表頭結點。

36.8208,20解析:本題考查while循環(huán)和++運算符的運用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時y=8。

37.驅(qū)動模塊驅(qū)動模塊解析:在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。

38.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

39.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調(diào)用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結果是56。

40.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。

41.A解析:switch語句的執(zhí)行過程是:在switch后面的表達式的值和case后面常量表達式的值吻合時,就執(zhí)行該case分支的語句。如果在該語句的后面沒有break語句,則按順序繼續(xù)執(zhí)行下一個case分支,直到遇到break語句或switch多分支語句結束,在switch語句中,break語句的作用是使流程跳出switch結構,終止switch語句的執(zhí)行。在本題中,因為每個case語句后面都沒有break語句,所以,第一輪循環(huán)(i==1)執(zhí)行過后a的值為8,第2輪(i==2)執(zhí)行過后a的值為16,第3輪(i==3)執(zhí)行過后a的值為26,第4輪(i==4)執(zhí)行過后a的值為31,然后執(zhí)行“i++”語句,這時循環(huán)條件為假,循環(huán)結束。

42.C解析:在C語言中,實數(shù)有兩種表示形式:十進制數(shù)形式與指數(shù)形式。

1)一般形式的實數(shù):小數(shù)形式的實數(shù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成(必須要有小數(shù)點)。

2)指數(shù)形式的小數(shù):指數(shù)形式的實數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項A中,5E2.0中E后面的2.0不是整數(shù);選項B中,E前面沒有數(shù)字;選項D中,E后面沒有數(shù)字。

43.D解析:表達式(2+x)二進制表示為“10101001”,(-3)即把3按位取反得到二進制值為“11111100”,再把這兩個二進制按位加(異或),得到結果位“01010101”。

44.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個for循環(huán)控制空格的輸出,第二個for循環(huán)控制的輸出。而在第i行,輸出的第一個元素是num[i][i],所以下劃線處應填i。

45.A解析:根據(jù)題意,p和q為整型指針,分別指向整型變量n2和n1,選項B是將q賦給p,即p指向n1,選項C是將n1的地址賦給n2,選項D是將n2的值賦給p,均與n2=n1不等價。只有選項A中,*p即n2,*q即n1,*p=*q即等價于n2=n1。

46.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會直接結束循環(huán)返回函數(shù)值。

47.D解析:a是一個2行3列的二維數(shù)組,行下標和列下標都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標最大值為1,列下標最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標后得a[0][0],為正確的引用。

48.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

49.D解析:這個題目的功能是實現(xiàn)兩個有序字符串,合并成一個新的有序的字符串。

50.B解析:本題中,structex是結構體類型名,ex-ample是結構體變量名。

51.D解析:本題考核的知識點是通過指針引用數(shù)組的元素。本題中首先定義了一個一維數(shù)組并初始化,接著定義了一個指針變量p指向數(shù)組x。因此可以通過指針p的下移,即每次加1引用數(shù)組x中的元素,來指向數(shù)組中的每個元素,這樣循環(huán)6次即可引用數(shù)組的每個元素。選項A、B和選項C滿足要求,而在選項D中表達式為(*p)++,該表達式是先取*p的值然后將其值加1,而沒有將指針下移一位,故選項D不正確。所以,4個選項中選項D符合題意。

52.B解析:在main函數(shù)中,對f(1)和f(2)的值進行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值為1+2=3

53.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。

54.A解析:結構化程序由3種基本結構組成,即順序結構、循環(huán)結構(包括for語句、while語句及do…\u3000while語句)和選擇結構(包括if語句和switch語句)。

55.A

56.B解析:數(shù)據(jù)的結構化是數(shù)據(jù)庫階段的重要特征之一。在數(shù)據(jù)庫階段,數(shù)據(jù)不再面向應用,而是面向整個系統(tǒng),數(shù)據(jù)的共享性高、冗余小、易于擴展。由于數(shù)據(jù)庫三級模式間的兩級映像,所以數(shù)據(jù)具有較高的獨立性。

57.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);

說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。

58.B解析:若在函數(shù)中定義與全局變量名字相同的局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大,故選項A不正確;靜態(tài)變量一旦定義,將在整個程序的運行期間都存布,故選項B正確;函數(shù)的形參只在函數(shù)調(diào)用的時候分配存儲空間,在退出函數(shù)時收回存儲空間,因此是局部的,故選項C不正確;沒有賦值的auto型變量的初值是隨機的,沒有賦值的static型變量的初值是0,故選項D不正確。所以,B選項為所選。

59.A解析:ps+2就是s[2]的地址,即存放字符o的地址,所以A是錯誤的。

60.B

61.A本題主要考查按位求反運算和C語言正負數(shù)的表示,“O”代表正數(shù),“1”代表負數(shù);x=7的二進制為00111,第一個0代表正數(shù),~x為11000,第一個l代表負數(shù),值為8。

62.A

63.D解析:后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,道先遍歷左子樹,然后遍歷右子樹,最后訪問根結點:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點。

64.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n!一0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

65.C解析:根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結果最終也是double型。

66.B隨著計算機的應用范圍日益廣泛,傳統(tǒng)的軟件開發(fā)成本難以控制,進度不可預計;軟件系統(tǒng)的質(zhì)量和可靠性很差;軟件文檔相當缺乏,軟件系統(tǒng)不可維護;軟件開發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應求;軟件產(chǎn)品成本十分昂貴且質(zhì)量低下等特點日益顯現(xiàn),這些成為計算機應用的一個“瓶頸”,于是出現(xiàn)了所謂的“軟件危機”。

軟件工程是試圖用工程化的方法開發(fā)軟件,從而解決或緩解軟件危機而產(chǎn)生的一門學科。它是采用工程化的方法開發(fā)和維護軟件的工程學科。把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論