2021-2022年江西省上饒市全國計算機等級考試C語言程序設計真題二卷(含答案)_第1頁
2021-2022年江西省上饒市全國計算機等級考試C語言程序設計真題二卷(含答案)_第2頁
2021-2022年江西省上饒市全國計算機等級考試C語言程序設計真題二卷(含答案)_第3頁
2021-2022年江西省上饒市全國計算機等級考試C語言程序設計真題二卷(含答案)_第4頁
2021-2022年江西省上饒市全國計算機等級考試C語言程序設計真題二卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江西省上饒市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無意義C.變量p的地址值D.3

2.下面的哪一個保留字不能作為函數(shù)的返回類型()。

A.voidB.intC.newD.long

3.軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統(tǒng)結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程

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

A.60B.50C.45D.55

5.

6.在c語言中,變量的隱含存儲類別是()。

A.autoB.staticC.externD.無存儲類別

7.

8.

9.下述關于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

10.下列不正確的轉義字符是()。

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

11.

12.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

13.設有下列二叉樹:

對此二叉樹先序遍歷的結果為

A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA

14.若變量已正確定義,下列正確的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

15.下列敘述中正確的是A.為了建立一個關系,首先要構造數(shù)據(jù)的邏輯關系

B.表示關系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項

C.一個關系的屬性名表稱為關系模式

D.一個關系可以包括多個二維表

16.

有以下程序:

main

{intx,i;

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

{x=i:

if(x%2=0)

if(x%3=0)

if(X%7=0)

printf(”%d,i)”;

}

}

輸出結果是()。

A.28B.27C.42D.4l

17.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

輸出結果是()。

A.28

B.27

C.42

D.41

18.數(shù)據(jù)在計算機存儲器內表示時,物理地址與邏輯地址相同并且是連續(xù)的,稱為()。

A.存儲結構B.邏輯結構C.順序存儲結構D.鏈式存儲結構

19.將線性表中的結點信息組織成平衡的二叉樹,其優(yōu)點之一是總能保證任意檢索長度均為log2n量級(n為線性表中的結點數(shù)目)()

A.對B.錯

20.下列程序段的時間復雜度為()。A.O(n)B.O(n-1)C.O(n2)D.O(log2n)

二、2.填空題(20題)21.若a是int型變量,則下列表達式的值為______。

(a=2*3,a*2),a+4

22.以下程序運行后的輸出結果是______。

intf(inta[],intn)

{

if(n>=l)

returnf(a,n-1)+a[n-1];

else

return0;

}

main{)

{

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

s=f(aa,5);

printf{'%d\n",s);

}

23.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

24.下面程序的輸出結果是()。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

25.數(shù)據(jù)元素之間______的整體稱為邏輯結構。

26.對軟件是否能達到用戶所期望的要求的測試稱為【】。

27.數(shù)據(jù)的邏輯結構有線性結構和______兩大類。

28.在面向對象方法中,類的實例稱為______。

29.下列軟件系統(tǒng)結構圖的寬度為[]。

30.數(shù)據(jù)流圖的類型有【】和事務型。

31.軟件工程的出現(xiàn)是由于【】。

32.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。

33.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

34.有以下程序

main()

{intt=1,i=5;

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

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

}

執(zhí)行后輸出結果是______。

35.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

36.軟件危機出現(xiàn)于20時紀60年代末,為了解決軟件危機,人們提出了()的原理來設計軟件,這就是軟件工程誕生的基礎。

37.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

38.下面程序的功能是將一個字符串str的內容顛倒過來,請?zhí)羁铡?/p>

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);}

39.結構化程序設計的3種基本結構分別是順序、選擇和______。

40.在算法正確的前提下,評價一個算法的兩個標準是空間復雜度和()。

三、1.選擇題(20題)41.若以“a+”方式打開一個已存在的文件,則下列敘述正確的是()。

A.文件打開時,原有文件內容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作

B.文件打開時,原有文件內容不被刪除,只能進行讀操作

C.文件打開時,原有文件內容被刪除,只能進行寫操作

D.以上三種說法都不正確

42.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結果是()。

A.s1的內容更新為abcdefghi

B.s1的內容更新為defghi\0

C.s1的內容更新為defghiabc\0

D.s1的內容更新為abcdefghi\0

43.軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指()

A.模塊間的關系B.系統(tǒng)結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發(fā)過程

44.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

45.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N—SD.DFD

46.下列選項中,值為1的表達式是()。

A.1-'0'B.1-'\0'C.'1'-0D.'\0'-'0'

47.如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

48.下列程序的輸出結果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,e=5,d=2,e,f,g;e=f2(f1(a,b),f1(e,d));f=f1(f2(a,b),f2(e,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}

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

49.下列程序的輸出結果是()。#include<stdio.h>voidmain(){inta=0,b=1,C=2;if(++a>0||++b>0)++c;printf("%d,%d,%d",a,b,C);}

A.0,1,2B.1,2,3C.1,1,3D.1,2,2

50.設有如下變量定義:doublea=3.500000;floatb=2.5;intm=2,n=3;則表達式“(float)(m+n)/2+(int)a%(int)b”的值是()

A.2.5B.3.5C.4.5D.表達式不正確

51.有以下程序:voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(A);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運行后的輸出結果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,6,8,10,12,7,8,9,10,

C.1,2,3,4,10,12,14,16,9,10,

D.1,2,6,8,10,12,14,16,9,10,

52.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結果是()。

A.賦初值的字符串有錯B.6,7C.5,6D.6,6

53.若a是float型變量,b是unsigned型變量,以下輸入語句合法的是()

A.scanf("%6.2f%d",&a,&b);

B.scanf("%f%n",&a,&b);

C.scanf("%f%30",&a,&b);

D.scanf("%f%d",&a,&b);

54.有如下定義structperson{charname[9];intage;};structpersonclass[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};根據(jù)上述定義,能輸出字母M的語句是

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0));

55.有以下程序:#include<stdio.h>main(){intaa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][2];printf("%d",s);}程序運行后的輸出結果是()。

A.26B.19C.10D.20

56.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結構是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

57.C語言運算對象必須是整型的運算符是______。

A.%=B./C.=D.<=

58.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

59.下列程序是將一個十進制正整數(shù)轉化為一個八進制數(shù),在程序的空白處應填入的語句是_______。#include<stdio.h>main(){inti=9,a,b[10]={0};scanf("%d",&A);sub(a,B);for(;i>=0;i--)printf("%d",b[i]);}sub(intc,intd[]){inte,i=0;while(c!=0){e=c%8;d[i]=e;________.i++;}return;}

A.c=e/8B.c=c%8C.c=c/8D.c=e%8

60.對于長度為n的線性表,在最壞情況下,下列各排序法所對應的比較次數(shù)中正確的是()。

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

四、選擇題(20題)61.設變量已正確定義,則以下能正確計算f=n!的程序是()。

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

B.f=1;for(i=1;i<n;i++)f*=i;

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

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

62.有以下程序:

voidmain()

{intk=10,n=0;

for(;n<k;)

{//n++;

if(n++%3!=0)continue;

k--;}

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

}

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

A.7,7B.6,6C.3,3D.4,4

63.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達式是()。A.A.isupper(c)B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

64.下列程序執(zhí)行后輸出的結果是()。

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf("%d,",d);}

main()

{inta=3;

fun(a);

d+=a++;

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

A.8,4B.9,6C.9,4D.8,5

65.

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

67.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數(shù)據(jù)耦合

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

A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D.上述三種說法都不對

69.有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{

inti;

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

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

}

該程序中for循環(huán)執(zhí)行的次數(shù)是

A.5B.6

C.7D.8

70.

71.某二叉樹共有7個結點,其中葉子結點只有l(wèi)個,則該二叉樹的深度為(假設根結點在第1層)()。

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

72.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

73.

74.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

75.

76.數(shù)據(jù)庫系統(tǒng)的三級模式不包括()。

A.概念模式B.內模式C.外模式D.數(shù)據(jù)模式

77.有以下程序程序的運行結果是()。

A.123B.12300C.1D.321

78.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A.學生管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

79.

80.有以下定義:

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是。用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1、1、2、3、5、8、l3、21、……

例如,若給n輸入7,則該項的斐波拉契數(shù)值為l3。請改正程序中的錯誤,使它能得出正確的結果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結構。

六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是:求出1~1000中能被7或11整除,但不能同時被7和ll整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

2.C

3.B軟件設計包括軟件的結構設計、數(shù)據(jù)接口設計和過程設計。其中軟件結構設計主要包括系統(tǒng)由哪些子系統(tǒng)構成,以及這些子系統(tǒng)之間的關系是怎樣的,并將這些內容編寫成文檔;數(shù)據(jù)接口設計的任務是為每個子系統(tǒng)設計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設計是指系統(tǒng)結構部件轉換成軟件的過程描述。

4.A函數(shù)fun的功能是求數(shù)組的n個元素之和。fun(a,5)=15。由于s岫是靜態(tài)局部變量,所以保持l5不變,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。

5.A

6.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調用結束后靜態(tài)局部變量占據(jù)的內存存儲單元空間不釋放,局部變量保留原值,下次調用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變全局變量的作用域,實際上,關鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。

7.A

8.D

9.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應用服務,同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結構化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。

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

11.D

12.D【解析】算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結構所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。

13.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應該為:訪問根結點->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。

14.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個字符,當遇到換行時結束輸入。

15.C解析:在格式化模型中,要事先根據(jù)應用的需要,確定數(shù)據(jù)之間的邏輯關系,即先對數(shù)據(jù)進行結構化。在關系模型中,不需要事先構造數(shù)據(jù)的邏輯關系,只要將數(shù)據(jù)按照一定的關系存入計算機,也就是建立關系。所以選項A錯誤。對于一個表示關系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關系的屬性名表稱為關系模式,也就是二維表的表框架,相當于記錄型。因此,選項C說法正確。

16.C只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。

17.C\n只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。

\n

18.C

19.A

20.B

21.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

22.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1);,否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3]……直到f(aa,0)返回0.故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。

23.線性結構線性結構解析:數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系,分為線性結構和非線性結構。常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。

24.3232解析:while(表達式)的功能是:首先計算表達式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值.若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假,結束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結束。

25.邏輯關系邏輯關系

26.有效性測試有效性測試

27.非線性結構非線性結構

28.對象對象解析:類描述的是具有相似性質的一組對象。例如,每本具體的書是一個對象,而這些具體的書都有共同的性質,它們都屬于更一般的概念“書”這一類對象。一個具體對象稱為類的實例。

29.33解析:軟件系統(tǒng)結構圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

30.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務。

31.軟件危機的出現(xiàn)軟件危機的出現(xiàn)

32.輸出結果輸出結果解析:注意:測試的基本方法和步驟。

33.x+=1;

34.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

35.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括\'\\0\'在內。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe

36.軟件工程學軟件工程學解析:為了消除軟件危機,通過認真研究解決軟件危機的方法,認識到軟件工程是使計算機軟件走向工程科學的途徑。逐步形成了軟件工程的概念,開辟了工程學的新興領域——軟件工程學。

37.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。

38.k-1k,-1解析:顛倒一個字符串中的字符,就是首尾對應的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標是它的長度減1,所以在第二個空框處應填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應在程序的變量定義部分中一起定義,所以在第一個空框處應填入k。

39.重復(循環(huán))重復(循環(huán))解析:結構化程序設計包括3種基本的結構:順序結構、選擇結構和重復結構(循環(huán)結構),利用這3種結構就足以表達出各種其他形式結構的程序設計方法。其中利用循環(huán)結構,可以簡化大量的程序執(zhí)行。

40.時間復雜度時間復雜度解析:在算法正確的前提下,評價一個算法的兩個標準是空間復雜度和時間復雜度。算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間。

41.A解析:本題考查文件使用方式標識符,以“a+”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。

42.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。

43.B軟件設計包括軟件的結構設計、數(shù)據(jù)接口設計和過程設計。其中軟件結構設計主要包括系統(tǒng)由哪些子系統(tǒng)構成,以及這些子系統(tǒng)之間的關系是怎樣的,并將這些內容編寫成文檔;數(shù)據(jù)接口設計的任務是為每個子系統(tǒng)設計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設計是指系統(tǒng)結構部件轉換成軟件的過程描述。

44.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據(jù)前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。

45.DD.【解析】需求分析常用的工具有數(shù)據(jù)流圖(DFD.、數(shù)據(jù)字典(DD.、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N—S(盒式圖)都是詳細設計的常用工具,不是需求分析的工具。

46.B解析:在C程序中,字符量可參與任何整數(shù)運算。字符參與運算時,首先要將字符轉換為對應的ASCII碼值再參與整數(shù)運算。字符'1'對應的ASCII碼值是49,字符'0'對應的ASCII碼值是48,字符'\\0'是字符串結束標識符NULL,其對應的ASCII碼值是0。

47.B解析:由?!昂筮M先出”的特點可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進?!鷈2進?!鷈2出棧→e3進?!鷈4進?!鷈4出?!鷈3出棧→e1出棧,所以只看出棧序列應為e2,e4,e3,e1。

48.A解析:根據(jù)函數(shù)intf1(intx,inty){returnx>y?x:y;)和intf2(intx,inty){returnx>y?y:x;}的定義可知,如果x>y成立,則函數(shù)f1返回x的值,函數(shù)f2返回y的值。所以f1(a,b)=4,f1(c,d)=5,f2(a,b)=3,f2(c,d)=2故e=f2(4,5)=4,f=f1(3,2)=3,g=4+3+5+2-4-3=7。

49.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a->0,此條件成立,又因為是進行邏輯或運算,在己知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下列的++c。

50.B解析:表達式m+n的值被強制轉換為實型,則(m=n)/2的值為2.5。變量a和b被強制轉換為整型,所以(int)a%(int)b的值為1,因此表達式的值為3.5,選項B正確。

51.B解析:本題在調用函數(shù)時,實參是數(shù)組名也是把數(shù)組a的首地址傳遞給形參,由條件i=2且i<6得出函數(shù)將列以a[2]開始的4個元素(3、4、5、6)進行乘2操作,結果分別是a[2]=6、a[3]=8、a[4]=10、a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值沒有發(fā)生變化。

52.C解析:本題在定義字符數(shù)組時沒有定義數(shù)組長度,但用字符常量給數(shù)組賦了初值,這時初值的個數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\\0')。字符串的長度為有效字符的個數(shù)5。strlen(s)返回值為串中字符的個數(shù)(不計最后的'\\0'),則輸出值為5。sizeof(s)計算數(shù)組所占的字節(jié)數(shù),包含'\\0',則輸出值為6。因此,C選項正確。

53.C

54.D解析:這是一個給結構體數(shù)組賦初值的問題。它的賦初值過程與上述二維數(shù)組賦初值很相似。只是這里的大括號中的初始值沒有按行給出(也即沒有用大括號分開來),在這種情況下,初始值將按數(shù)組的各個元素在內存中的存放次序逐個逐個地賦給各元素?,F(xiàn)在結構體數(shù)組的各個元素在內存中的存放次序是這樣的:class[0].name,class[0].a(chǎn)ge,class[1].name,class[1].a(chǎn)ge…,由此可以知道,包含字母‘M’的字符串'Mary'賦值給了元素class[2].name,則與字符‘M’先相對應的表達式是class[2].name[0]。

55.B解析:本題考查二維數(shù)組元素的引用。二維數(shù)組可以看成是一個矩陣,aa[i][2]其實就是第i行的第3個元素,for循環(huán)內的s+=aa[i][2]其實就是將矩陣第3列的數(shù)相加,即s=3+1+10+5=19。

56.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。

【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。

57.A解析:在C語言中,模運算(即取余運算%)的運算對象必須是整型數(shù)據(jù)(常量、變量或表達式)。

58.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。

59.C解析:本題主要考查了進制轉換的除余取整法。本算法中,是先對數(shù)c除8取余作為轉換后的8進制數(shù)的第1位,然后對c整除以8的商作同樣的操作,直到商為0為止,因此本題應選C。

60.DD?!窘馕觥勘绢}主要考查對排序算法的理解。冒泡排序法首先將第一個記錄的關鍵字與第二個記錄的關鍵字進行比較,若逆序則交換,然后比較第二個與第三個,以此類推,直至第n-1個與第n個記錄的關鍵字進行比較。第一趟冒泡排序使最大的關鍵字元素放到最后。以此類推,進行第2~n次冒泡排序。如果在排序過程中不存在逆序,則排序結束。在最壞情況下,冒泡排序中,若初始序列為“逆序”序列,則需要比較n(D-1)/2次。快速排序是對冒泡排序的一種改進。它的基本思想是:通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字比另一部分記錄的關鍵字小,然后分別對這兩部分記錄繼續(xù)進行排序,最終達到整個記錄有序。對于快速排序,當初始記錄序列按關鍵字有序或基本有序時,快速排序退化為冒泡排序,最壞情況下比較次數(shù)為n(n-1)/2。

61.D\n由n!的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以l,2,3,…,n,最后計算得到f=n!=0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以l,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為l,在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

溫馨提示

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

評論

0/150

提交評論