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

下載本文檔

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

文檔簡介

2021-2022年廣東省廣州市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下敘述中錯誤的是()。

A.形參可以是常量、變量或表達式

B.實參可以是常量、變量或表達式

C.實參的類型應與形參的類型賦值兼容

D.實參的個數應與形參的個數一致

2.算法的有窮性是指A.算法程序的運行時間是有限的

B.算法程序所處理的數據量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

3.已知一算術表達式的中綴形式為A+B*C–D/E,后綴形式為ABC*+DE/–,其前綴形式為()。

A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE

4.下列敘述中錯誤的是()。

A.用戶定義的函數中可以沒有return語句

B.用戶定義的函數中可以有多個return語句,以便調用一次返回多個函數值

C.用戶定義的函數中若沒有return語句,則應當定義函數為void類型

D.函數的return語句中可以沒有表達式

5.以下程序運行后,輸出結果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

6.數字字符“2”的ASCII碼為十進制數50,數字字符“5”的ASCII碼為十進制數()

A.52B.55C.54D.53

7.以下敘述中錯誤的是()。

A.由3種基本結構構成的程序只能解決簡單問題

B.結構化程序由順序、分支、循環3種基本結構組成

C.C語言是一種結構化程序設計語言

D.結構化程序設計提倡模塊化的設計方法

8.下列程序的輸出結果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}

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

9.線性結構是數據元素之間存在一種()。

A.一對多關系B.多對多關系C.多對一關系D.一對一關系

10.設已包含頭文件<string.h>,下列程序段的運行結果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

11.以下選項中,合法的一組C語言數值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

12.C語言規定,程序中各函數之間()

A.既允許直接遞歸調用也允許間接遞歸調用

B.不允許直接遞歸調用也不允許間接遞歸調用

C.允許直接遞歸調用不允許間接遞歸調用

D.不允許直接遞歸調用允許間接遞歸調用

13.在結構化方法中,軟件功能分解屬于下列軟件開發中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調試

14.用鏈接方式存儲的隊列,在進行刪除運算時()。

A.僅修改頭指針B.僅修改尾指針C.頭、尾指針都要修改D.頭、尾指針可能都要修改

15.

16.

17.廣義表(a,b,c,d)的表頭是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

18.可以用帶表頭結點的鏈表表示線性表,也可用不帶表頭結點的鏈表表示線性表,前者最主要的好處是()。

A.可以加快對表的遍歷B.使空表和非空表的處理統一C.節省存儲空間D.可以提高存取表元素的速度

19.下列能正確進行字符串賦值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

20.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結果是

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

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

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

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

二、2.填空題(20題)21.設在主函數中有以下定義和函數調用語句,且fun函數為void類型;請寫出fun函數的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

22.在運算過程中,能夠使空表與非空表的運算統一的結構是【】。

23.在數據庫理論中,數據物理結構的改變,如存儲設備的更換、物理存儲的更換、存取方式等都不影響數據庫的邏輯結構,從而不引起應用程序的變化,稱為【】。

24.下列循環的循環次數是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

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

charstr[]="ABCD",*p=str;

printf("%d\n",*(p+3));

26.【】(黑箱或白箱)測試方法完全不考慮程序的內部結構和內部特征。

27.數據庫設計分為以下六個設計階段:需求分析階段、【】、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。

28.下列程序段中循環體的執行次數是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

29.數據庫的邏輯模型設計階段的任務是將______轉換成關系模式。

30.有以下程序:

#include<stdio.h>

intsub(intn)

{return(n/10+n%10);}

main()

{intx,y;

seanf("%d",&x);y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結果是【】。

31.以下程序是求矩陣a,b的和,結果存入矩陣c中,并按矩陣形式輸出,請填空。

#include<stdio.h>

main()

{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

for(j=0;j<4;j++)

c[i][j]=【】;

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

{for(j=0;j<4;j++)

printf("%3d",c[i][j]);

printf("\n");}}

32.以下程序運行后的輸出結果是【】。

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

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

34.設有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內容,請將語句補充完整。

scanf("%d",【】);

printf("%d\n",【】);

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

printf(“%d\n”,s);

}

36.以下isprime函數的功能是判斷形參a是否為素數,是素數,函數返回1,否則返回0。請填空。

intisprime(inta)

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

if(a%i==0)[8];

[9];

37.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發現錯誤的位置并改正錯誤。

38.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

39.數據庫系統的主要特點為數據集成性、數據的高______和低冗余性、數據獨立性和數據統一管理和控制。

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

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

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

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

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

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

42.若有以下定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達式是()

A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

43.在關系數據庫中,對一個關系做投影操作后,新關系的元組個數將()

A.等于原來關系中的元組個數B.大于原來關系中的元組個數C.小于原來關系中的元組個數D.不能確定元組個數

44.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數

45.下列程序的輸出結果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}

A.7B.8C.9D.10

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

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

C.函數的形參都屬于全局變量

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

47.有以下程序:#include<stdio.h>prt(int*m,intn)inti;for(i=0;i<n;i++)m[i]++;main()}inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運行后的輸出結果是()。

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

48.假定下列程序的可執行文件名為filel.exe,在該程序的子目錄下輸入命令行:file1ChinaBejing<回車>main(intargc,char*argv[]){while(argc-->1)printf("%s\n",*++argv);}則程序運行后的輸出結果是()。

A.filelChinaBejingB.ChinaBejingC.ChinaD.Bejing

49.有以下程序#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n")}從第一列開始輸入以

A.66877B.668966C.6677877D.6688766

50.若有定義int*p,n;則通過語句scanf能夠正確讀入數據的程序段是()。

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

51.一個算法應該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是()A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性

52.下列程序的輸出結果是()。main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}

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

53.以下程序的輸出結果是______。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*(1+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}

A.20B.21C.22D.23

54.結構化程序設計主要強調的是()。

A.程序的規模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

55.當a的值為0時,在下列選項中能正確將a的值賦給變量x、y的是()。

A.(x=a)&&(y=a)B.x=a=yC.(y=a)||(x=a)D.a=x=y

56.算法的時間復雜度是指______。

A.執行算法程序所需要的時間B.算法程序的長度C.算法執行過程中所需要的基本運算次數D.算法程序中的指令條數

57.有以下程序main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0case3:a+=2;case1;case2;a+=3;default,a+=5;}}printf("%d\n",a);}

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

58.在C語言中,函數調用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

59.下列選項中不會引起二義性的宏定義是()。

A.#defineS(x)x*x

B.#defineS(x)(x)*(x)

C.#defineS(x)(x*x)

D.#defineS(x)((x)*(x))

60.設x=011050,則x=x&01252的值是()。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

四、選擇題(20題)61.

62.下列關系表達式中,結果為“假”的是()。

A.(3+4)>6

B.(3!=4)>2

C.3<=4

D.

E.3

F.(3<4)=1

63.

64.有以下程序:

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

A.4,5,6,4,5,6,

B.1,2,3,4,5,6,

C.4,5,6,1,2,3,

D.6,5,4,3,2,1,

65.讀取二進制文件的函數調用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內存塊的首地址,代表讀入數據存放的地址

B.一個整型變量,代表待讀取的數據的字節數

C.一個文件指針,指向待讀取的文件

D.一個內存塊的字節數

66.以下關于C語言數據類型使用的敘述中錯誤的是()。

A.若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型

B.若要保存帶有多位小數的數據,可使用雙精度類型

C.若只處理“真”和“假”兩種邏輯值,應使用邏輯類型

D.整數類型表示的自然數是準確無誤差的

67.

68.

有以下函數:

charfun(char*p)

{returnP;}

該函數的返回值是()。

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

69.

70.軟件按其功能進行分類,可分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于系統軟件的是

A.文字編輯軟件B.網頁瀏覽器C.數據庫管理系統D.視頻播放軟件

71.若變量已正確定義并賦值,以下符合C語言語法的表達式是()。

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

72.有以下程序:

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

A.357B.753C.369D.751

73.

74.有三個關系R、S和T如下:

則由關系R和s得到關系T的操作是()。

A.自然連接B.差C.交D.并

75.下列關于二叉樹的敘述中,正確的是()。

A.葉子結點總是比度為2的結點少一個

B.葉子結點總是比度為2的結點多一個

C.葉子結點數是度為2的結點數的兩倍

D.度為2的結點數是度為1的結點數的兩倍

76.下列條件語句中,輸出結果與其他語句不同的是()

77.在軟件開發中,需求分析階段產生的主要文檔是()。

A.可行性分析報告B.軟件需求規格說明書C.概要設計說明書D.集成測試計劃

78.

79.以下敘述中錯誤的是()。

A.一個C程序中可以包含多個不同名的函數

B.一個C程序只能有一個主函數

C.C程序在書寫時,有嚴格的縮進要求,否則不能編譯通過

D.C程序的主函數必須用main作為函數名

80.

五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

請修改程序中的錯誤,使它能得到正確結果。

注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\n\nBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規定輸入的字符串中只包含字母和*號。編寫函數fun(),其功能是除了字符串前導和尾部的*號外,將字符串中其他的*號全部刪除。形參h指向字符串中第一個字母,形參p指向字符串中最后一個字母。在編寫函數時,不得使用C語言提供的字符串函數。例如,若字符串中的內容為“****A*BC*DEF*G********”,刪除后,字符串中的內容應當是“****ABCDEFG********”。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}

參考答案

1.A函數中,形參必須是變量,實參可以是常量、變量或表達式,選項A錯誤,選項B正確;實參的個數和類型要與形參一致,選項C、D正確。本題答案為A選項。

2.A算法的有窮性,是指算法必須能在有限的時間內做完,即算法必須能在執行有限個步驟之后終止。

3.D

4.B函數的值只能通過return語句返回主調函數。函數中允許有多個return語句,但每次只能調用一個return語句,因此只能返回一個函數值。不返回函數值的函數,可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項。

5.C

6.D

7.A由順序、選擇(分支)、循環3種基本結構構成的程序可以解決所有問題,而不只是解決簡單問題,所以A選項錯誤。故本題答案為A選項。

8.B解析:若有以下定義:inta[3][4],i,j;且當0<=i<3,0<=j<4,則可以有以下幾種方式來引用數組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

9.D

10.A解析:頭文件<string.h>是字符串處理函數對應的頭文件,要想調用C語言的庫函數時,都要在程序中嵌入該函數對應的頭文件,否則無法使用庫函數。

strcpy(s1,s2)把s2中的字符串復制到s1中,所以結果就為s2的長度。

11.BC語言中,八進制數其開頭必須是數字“0”,其數字包括0~7,因此選項A錯誤。浮點數據的指數形式表示中,字母e或E之后的指數必須為整數,所以選項C錯誤。選項D中,整型數據l0,000的表示形式是錯誤的。

12.A解析:C語言規定,程序中各函數之間既允許直接遞歸調用也允許間接遞歸調用。

13.C解析:軟件系統結構的總體設計包括:基于功能層次結構建立系統、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調用關系和模塊間的接口、評估模塊劃分的質量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節,并給予清晰的表達。需求分析是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發現需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發進度需求等。編程調試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發生在總體設計階段。

14.D

15.A

16.D

17.A

18.B

19.C選項A、B的空間不夠;字符串存儲要有結束符\0,且要占用一個空間,printf用來輸出字符,不能輸入字符串。

20.C解析:本題考核的知識點是程序中算法的基本分析。sort()函數作用是將數組aa中的下標為偶數的元素按大到小排序.主函數中首先定義了一個長度為10的數組并賦值,然后調用sort()函數,將數組aa中奇數個元素的值按大到小排序,因此執行完該函數后,數組中奇數個元素的值為9,7、5、3和1,故主函數中最后通過一個for循環輸出數組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個選項中選項C符合題意。

21.

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

23.物理獨立性物理獨立性解析:數據的物理結構改變,不影響數據庫的邏輯結構,從而不引起應用程序的變化,這種性質叫做物理獨立性。

24.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環。

25.6868解析:本題考查如何用指針引用數組元素。本題先定義了一個指向字符型數組str的指針p,指針p指向數組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應ASCII碼值68。

26.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據程序規格說明所規定的功能來設計測試用例,它不考慮程序的內部結構和處理過程。常用的黑箱測試技術分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。

27.概念設計階段概念設計階段解析:數據庫設計分為以下六個設計階段:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段、實施階段及數據庫運行和維護階段。

28.33解析:本題考查do…while語句形式:

do循環體

while表達式

首先執行循環體語句,然后檢測循環控制條件表達式的值,若為真,則重復執行循環體語句,否則退出循環。第1次循環:b+=2,b=2,a-=2+b,a=11;第2次循環:b=4,a=5;第3次循環:b=6,a=-3,此時再判斷循環條件不滿足,退出循環。

29.E-R圖E-R圖解析:數據庫邏輯設計的任務是將概念模型進一步轉化成相應的數據模型。而E-R圖是主要的概念模型,因此數據庫的邏輯設計的主要工作是將E-R圖轉換成關系模式。

30.1010解析:函數sub遞歸調用的返回值被作為再次調用sub函數的實參傳給函數sub的形參,共進行3次遞歸調用。第1次調用sub(1234)的返回值為1234/10+1234%10=127;第2次調用sub(127)的返回值為127/10+127%10=19;第3次調用sub(19)的返回值為19/10+19%10=10。所以程序的輸出為10。

31.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環結構應用在了二維數組中。外層for循環用來控制二維數組的行,內層for循環控制二維數組的列。

32.yesyes解析:if語句的條件語句為c=a+b=1+3=4,即條件為真,執行語句printf('yes\\n');,輸出結果為yes。

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

34.k*kk\r\n*k解析:scanf()函數有兩個參數,第一個參數是格式控制部分(格式控制部分是字符串,主要由%號和格式字符組成)第二個參數是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空位于scanf()函數的第二個參數處,所以,第一個空應該填地址k。printf()函數有兩個參數,第一個參數是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數據的間隔,輸出時原樣輸出)第二個參數為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第二個空位于printf()函數的第二個參數處,所以應該填*k。

35.55解析:此程序中,for循環語句后面直接跟了一個“;”,表明循環體為空。輸出語句不在for循環體內,所以在循環執行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環條件,表達式“1<3”成立,執行“i++,s+=i”后,i和s的值分別為2和1,繼續判斷循環條件,表達式“2<3”成立,執行“i++,s+=i”后,i和s的值分別為3,再次判斷循環條件,表達式“3<3”不成立,循環結束。

36.如果a能被i整除,則a是素數,返回值為0。如果a不能被i整除,則a不是素數,返回值為1。

37.調試調試

38.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機制和區別。

39.共享性共享性解析:數據庫系統中的數據能被不同的應用程序使用,實現了數據的高度共享,從而降低了數據的冗余,這也是數據庫的主要目的。

40.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執行后面的語句,直接執行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。

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

42.A

43.A解析:投影是從關系中指定若干個屬性組成新的關系,是從列的角度進行的運算,相當于對關系進行垂直分解,與元組個數無關,產生的新關系元組個數與原來關系中的元組個數相等。

44.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

45.B

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

47.B解析:prt(a,5);用數組名a作函數實參,不是把a數組的值傳遞給形參m,而是將數組a的首地址傳遞給指針變量m,使指針變量m指向數組a的首地址,這樣他們就占用同一段內存單元。當改變了指針變量所指向的存儲單元中的內容,也就改變了數組a中的元素。函數pit的作用是將指針變量m所指向的存儲單元中的各元素值加1,也就是數組a中各元素的值加l,所以輸出結果為:2,3,4,5,6,

48.B解析:主函數的第一個參數argc為整形參數,記下從命令行輸入的參數的個數;第二個參數argv是一個字符型的指針數組,它的每一個指針指向命令行輸入的參數字符數。在本例中argc的值為3,argv[0]指向字符串.“filel”,argv[l]指向參數字符串“China”,argv[2]指向字符串“Bejing”。在main()函數中,while循環執行了2次。第1次循環,argc=3,3>1為真,argc-1=3-1=2,執行循環體輸出*++argv,argv為字符型的指針數組的數組名,代表數組的首地址,同時也是數組第1個元素的地址,++argv指向數組的第2個元素,第2個元素是一個指針,它指向字符串“China”。第2次循環,argc=2,2>1為真,argc-1=2-1=1,執行循環體輸出*++argv,這次循環畔++argv指向數組的第3個元素,第3個元素是一個指針,它指向字符串“Bejing”。argc=1時,1>1為假,退出循環。所以,4個選項中選項B符合題意。

49.A解析:本題主要考查了字符輸入輸出函數getchar和putchar的使用。getchar函數用來從標準輸入設備上讀入一個字符,putchar(c)函數是將字符變量c中的字符輸出到標準輸出設備上,并且字符可以看作整數參與運算。

50.D解析:通過定義int*p,p是一個整型指針,p=&n是使p指向變量n,而p是一個指針,輸入時不需再用地址運算符。

51.B解析:本題考核的知識點是算法的性質。算法是為解決某個特定問題而采取的確定的且有限的步驟,一個算法應當具有以下5個基本特性:1.有窮性,就是指一個算法應當包含有限個操作步驟。2.確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執行結果。3.有零個或多個輸入。4.可行性,就是說算法中指定的操作,都可以通過已經實現的基本運算執行有限次實現,5.有一個或多個輸出。由此可知選項B不正確,所以,4個選項中選項B符合題意。

52.B解析:算術運行符“/”、“%”的優先級處于同一級,并且兩者的結合性都是從左到右。所以算術表達式運算過程為:a=25/10%9=2%9=2:當邏輯運算符“&&”兩邊的值都是非零時,邏輯表達式的值才為真(即為1)。所以b=2&&(-1)=1。

53.B解析:按程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6;執行三次k+=p[i]*2,相當于k=5+0*2+2*2+6*2=21。

54.D解析:程序不僅是編寫完就結束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤程序,因此程序設計的風格應該強調簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

55.C解析:選項A先執行x=a,x的值為0,不再執行y=a,因此y未被賦值。選項B是將y的值賦給a和x,而未能實現將a的值賦給變量x、y。選項C先執行y=a,將a的值賦給y;再執行x=a,將a的值賦給x。選項D同B。所以選項C符合題意。

56.C解析:算法的時間復雜度實際上就是執行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據一個算法所編制出的程序之中,其指令條數往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數來度量算法的時間復雜度。所以,本題正確答案為C。

57.A

58.A解析:本題考查函數調用時的參數傳遞。函數的形參是函數定義時由用戶定義的形式上的變量,實參是函數調用時,主調函數為被調函數提供的原始數據。

在函數調用時,實參和其所對應的形參分別占用不同的存儲單元,彼此之間不影響。

59.D本題考查參數的宏替換。為避免二義性有些參數表達式必須加括號,否則在實參表達式替換時,會出現錯誤。例如x為(m+n)時替換A:m+n*m+n,所以選項D最符合條件。

60.A解析:本題主要考查按位與運算,x=011050的二進制形式為0001001000101000,01252的二進制形式為0000001010101010,兩者相與得00000010001010000。

61.D

62.B\n在一個表達式中,括號的優先級高,先計算3!=4,為真即是l,1>2為假。

\n

63.B

64.A首先利用fwrite函數將數組a中的數據寫到文件中,接著fseek函數的功能是讀文件的位置,指針從文件頭向后移動3個int型數據,這時文件位置指針指向的是文件中的第4個int數據”4”,然后fread函數將文件fp中的后3

個數據4,5,6讀到數組a中,這樣就覆蓋了數組中原來的前3項數據。最后數組中的數據就成了{4,5,6,4,5,6}。

65.Afread(void*buffer,sizet_size,sizet__count,FILE*stream);功能是從一個文件流中讀數據,讀取countl"元素,每個元素disize個字節,如果調用成功返回count。buffer:用于接收數據的內存地址,大小至少是size*count個字節;size:單個元素的大小,單位是字節;count:元素的個數,每個元素占size個字節;streaili:輸入流。故本題答案為A)。

66.CC語言中沒有邏輯類型,所以選項C錯誤。若要保存帶有多位小數的數據,可以用單精度類型,也可以用雙精度類型。處理包含不同類型的相關數據可以自定義結構體類型。整數類型可以無誤差地表示自然數。故本題答案為C選項。

67.B

68.B

69.B

70.C本題考查不同種類軟件的劃分。

應用軟件是用戶可以使用的各種程序設計語言,以及用各種程序設計語言編制的應用程序的集合,分為應用軟件和用戶程序。應用軟件包括辦公室軟件(文書處理器、檔案管理系統、文本編輯器)、互聯

溫馨提示

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

評論

0/150

提交評論