2021-2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021-2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

2021-2022年河南省許昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;casel: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

2.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

3.下列程序的輸出結果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

4.以下選項中,能用作數據常量的是______。A.o115B.0118C.1.5e1.5D.115L

5.十六進制數BB轉換成十進制數是()

A.192B.256C.187D.121

6.若用一個大小為6的數組來實現循環隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為多少()。

A.1和5B.2和4C.4和2D.5和1

7.棧和隊列的共同點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

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

A.在C語言中,函數中的自動變量可以賦初值,每調用一次賦一次初值

B.在C語言中,在調用函數時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數形參的存儲類型是自動(auto)類型的變量

9.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序運行后的輸出結果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0

10.程序中主函數的名字為()。

A.mainB.MAINC.MainD.任意標識符

11.若有定義語句“doublea,*p=&a;”,下列敘述中錯誤的是()。

A.定義語句中的“*”是一個間址運算符

B.定義語句中的“*”是一個說明符

C.定義語句中的“p”只能存放double類型變量的地址

D.定義語句中*p=&a”把變量a的地址作為初值賦給指針變量p

12.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調的是()。

A.存儲媒體B.表現媒體C.傳輸媒體D.感覺媒體

13.若有以下定義和語句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);則輸出結果()

A.2,MB.3,EC.2,ED.輸出項與對應的格式控制不一致,輸出結果不確定

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

A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;

15.有以下程序:#includeMain(){charc1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出結果是()。A.E,68.B.D.69C.E,DD.輸出無定值

16.設有下列二叉樹:

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

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

17.

18.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World

19.以下不正確的敘述是()。

A.在C程序中,逗號運算符的優先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在執行了賦值表達式a=b后b中的值將放人a中,而b中的值不變

D.當從鍵盤輸入數據時,對整型變量只能輸入整型數值,對實型變量只能輸入實型數值

20.以下選項中合法的實型常數是()。

A.5E2.0B.E-3C.2E0D.1.3E

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

22.下列程序的輸出結果是______。

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

printf("%d,%d,%d\n",a,b,C);

}

23.對存儲器按字節進行編址,若某存儲器芯片共有8根地址線,則該存儲器芯片的存儲容量為【】字節。

24.軟件開發環境是全面支持軟件開發全過程的【】集合。

25.一棵二叉樹中共有80個葉子結點與10個度為1的結點,則該二叉樹中的總結點數為【】。

26.設有宏定義:

#defineWIDTH80

#defineLENGTHWIDTH+40

則執行賦值語句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。

27.對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數為【】。

28.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執行b=!c&&a;后b的值為【】。

29.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。

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

31.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

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

inti=9;

prinff("%o\n",i);

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4);

inti:

for(i:0;i<4;i++)a[i]+=a[i];

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

printf("\n");

}

34.以下函數用來在w數組中插入x,w數組中的數已按由小到大的順序存放,n為數組中存放的數的個數。插入后數組中的個數仍然有序。請填空,使之完整。

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==O‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

36.對于長度為n的順序存儲的線性表,當隨機插入和刪除一個元素時,需平均移動元素的個數為【】。

37.若有以下程序:

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

inti,j,s=0;

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

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

{if(a[i][j]<0)

continue;

if(a[i][j]==0)

break;

s+=a[i][j];

}

}

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

}

執行后的輸出結果是【】。

38.下列程序的運行結果是【】。

main()

{inti;

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

f(i);}

f(j)

{intj;

staticinta=1000;

autointk=1;

++k;

printf("%d+%d+%d=%d\n",a,k,j,a+k+j);

a+=10;}

39.與結構化需求分析方法相對應的是【】方法。

40.如下圖所示的二叉樹后序遍歷序列是【】。

三、1.選擇題(20題)41.若有如下程序段:main(){intn=0;while(printf("*")){n++;if(n<3)break;}}則下列描述正確的是()

A.其中循環控制表達式與0等價B.其中循環控制表達式與'0'等價C.其中循環控制表達式是不合法的D.以上說法都不對

42.C語言規定,簡單變量作實參時,它和對應形參之間的數據傳遞方式是______。

A.由實參傳給形參,再由形參傳回給實參B.地址傳遞C.單向值傳遞D.由用戶指定傳遞方式

43.有以下程序

#include<stdio.h>

intfun(chars[])

{intn=0;

while(*s<=′9′&&*s>=′0′){n=10*n+*s-′0′;s++;}

return(n);

}

main()

{chars[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′};

printf("%d\n",fun(s));

}

程序的運行結果是

A.9B.61490C.61D.5

44.結構化程序設計主要強調的是______。

A.程序的規模B.程序的易讀性C.程序的執行效率D.程序的可移植性

45.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

46.以下符合C語言語法的實型常量是()。

A.1.2E0.5B.3.14159EC.5E-3D.E15

47.下列程序段的輸出結果是______。staticinta[3]={1,2,3};int**ptr,*p;p=a;ptr=&p;(ptr[0]++)[1]+=3;printf("%d,%d,%d\n",**ptr,*p,a[0]);

A.5,5,10B.1,5,5C.5,5,1D.輸出結果不確定

48.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}執行后的輸出結果是()。

A.20412044B.20412043C.20422044D.20422043

49.在數據結構中,從邏輯上可以把數據結構分成()。

A.動態結構和靜態結構B.線性結構和非線性結構C.集合結構和非集合結構D.樹形結構和圖狀結構,

50.以下語句定義正確的是()。

A.inta[1][4]={1,2,3,4,5};

B.floata[3][1]={{1},{2},{3}};

C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};

D.doublea[][3]={0};

51.下列不屬于軟件工程的3個要素的是()。

A.32具B.過程C.方法D.環境

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

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

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

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

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

53.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

54.在int(*prt)[3];定義中,標識符prt()。

A.定義不合法

B.是一個指針數組名,每個元素都是一個指向整型變量的指針

C.是一個指針,它指向一個具有三個元素的一維數組

D.是一個指向整型變量的指針

55.當運行以下程序時,從鍵盤輸入AhaMA(空格)Aha<CR>,則下面程序的運行結果是

#include<stdio.h>

main()

{chars[80],c=′a′;

inti=0;

scanf("%s",s);

while(s[i]!=′

{if(s[i]==c)s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;}

puts(s);}

A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA

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

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

57.在下列#include命令中,正確的一條是()

A.#include[string.h]

B.#include{math.h}

C.#include(stdio.h)

D.#include<stdio.h>

58.下列關系運算的敘述中,正確的是()。A.A.投影、選擇、連接是從二維表行的方向進行的運算

B.并、交、差是從二維表的列的方向來進行運算

C.投影、選擇、連接是從二維表列的方向進行的運算

D.以上3種說法都不對

59.在下列關于二叉樹的敘述中,正確的一項是

A.在二叉樹中,任何一個結點的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個結點的度是2

D.一棵二叉樹的度可以小于2

60.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結果是

A.987B.876C.8765D.9876

四、選擇題(20題)61.

62.

63.設有以下語句

64.成功的測試是指A.A.運行測試實例后未發現錯誤

B.發現程序的錯誤

C.證明程序正確

D.軟件產生

65.

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

A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO

67.有以下定義和語句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

68.在學生管理的關系數據庫中,存取一個學生信息的數據單位是()。

A.文件B.數據庫C.字段D.記錄

69.數據庫管理系統中負責數據模式定義和數據的物理存取構建的語言是()。

A.數據定義語言B.數據管理語言C.數據操縱語言D.數據控制語言

70.有以下程序:

若運行時輸入:123<回車>,則輸出結果是()。

A.編譯錯誤2000B.102000C.122030D.10

71.

下列程序的運行結果是()。

#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,5C.2,2,2,2D.5,5,5,5

72.

73.有下列函數定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數的類型是()。A.int類型B.float類型C.void類型D.函數無類型說明,定義有錯

74.

75.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達式的值為()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

76.(45)信息隱蔽的概念與下述哪一種概念直接相關()

A.軟件結構定義

B.模塊獨立性

C.模塊類型劃分

D.模擬耦合度

77.要求通過while循環不斷讀人字符,當讀入字母N時結束循環。若變量已正確定義,以下正確的程序段是

()。

78.

79.

有以下程序:

main

{union

{charch[2];

intd;

}s;

d=0x4321;

printf("%x,%x\n",S.ch[0],S.ch[l]);

}

在16位編譯系統上,程序執行后的輸出結果是()

A.21,43B.43,21C.43,00D.21,00

80.

五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:根據輸入的:個邊長(整型值),判斷能否構成三角形:若能構成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構成三角形則返回l;若不能,則返回0。

例如,輸入3個邊長為3,4,5,實際輸入時,數與數之間以Enter鍵分隔而不是逗號。

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

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

試題程序:

#include<stdio.h>

#include<math.h>

intproc(inta,intb,intc)

{

if(a+b>c&&b-c>a&&a+c>b)

{

if(a==b&&b==c)

//****found****

return1;

elseif(a==b||b==C||a==c)

return2;

//****found****

elsereturn3;

}

elsereturn0;

}

voidmain

{

inta,b,c,shape;

printf("\nInputa,b,c:");

scanf("%d%d%d",&a,&b,&c);

printf("\na=%d.b=%d,c=%d\n",a,b,c);

shape=proc(a,b.c):

printf("\n\nTheshape:%d\n",shape);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數fun(),該函數的功能是將M行N列的二維數組中的數據,按行的順序依次放到一維數組中,一維數組中數據的個數存放在形參n所指的存儲單元中。例如,若二維數組中的數據為333333334444444455555555則一維數組中的內容應該為333333334444444455555555。注意:部分源程序在文件prog1.c中。請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A當X為1時,執行case1,a自加等于1,因為case1后沒有break,接著執行case2,此時a的值為2,b自加為1,故選擇A選項。

2.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

3.C

4.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數值型常量?;菊统A恐荒苡脭底直硎?,不帶小數點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數點的數表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數,因此選頂D是正確的。

5.C

6.B

7.C解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”(或“先進后出”)的線性表;而隊列只允許在表的一端進行插入操作,在另一端:進行刪除操作,是一種“先進先出”(或“后進后出”)的線性表。因此棧和隊列的共同點是只允許在端點處插入和刪除元素。

8.C解析:外部變量在編譯時由系統分配永久的內存空間,所以外部變量的類型不是自動存儲類別。

9.A本題考查簡單的賦值運算,在程序中c=(a-=am5),先算括號中的a-=a-5=5,所以c=5,再計算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案選擇A。

10.A

11.A變量定義語句“doublea,*p=&a;”,“*”是一個指針運算符,而非間址運算符。故本題答案為A選項。

12.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現媒體五種,“多媒體技術”中的媒體強調的是感覺媒體。

13.B

14.C選項A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項中由于c的值不為0,在將c的值賦給變量a后,表達式a=c的值為1,不再對表達式b=c計算;對于c選項,表達式a=c的值為1,再求表達式b=c的值為1,然后進行邏輯與運算;D選項將b的值賦給c后再賦給e,故選擇C選項。

15.A本題目中字符變量c1是字符'A'的ASCII碼加上4,即69所對應的字符E'。字符變量c2是字符'A'的ASCII碼加上3,即68所對應的字符D'。但是打印輸出時,c1以%c的格式輸出,所以是E,c2以%d的格式輸出,所以是68。

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

17.D

18.C本題輸出兩個結果,第一個是求字符串的長度。第二個是輸出的字符串,數組的下標是從0開始的,所以當str取1的時候,應為“One*Dream!”。

19.D

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

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

指數形式的小數;指數形式的實數由尾數部分、e(E)和指數部分組成(字母e或E的前后必須要有數字,且其后面的指數必須為整數)。

選項A中,5E2.0中E后面的2.0不是整數;選項B中,E前面沒有數字:選項D中,E后面沒有數字。最終可以判斷選項C正確。

21.1212解析:本題考查逗號表達式的運算規則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執行最后一個表達式a+6=12,所以整個表達式最后的值為12。

22.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

23.256256解析:本題考查對存儲器按字節進行編址的規則及其尋址范圍(2n),其中n為存儲器芯片中地址線的條數。

24.軟件工具軟件工具

25.179179解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。本題中的二叉樹有80個葉子結點,因此,該二叉樹有80-1=79個度為2的結點;又知本題中的二叉樹有10個度為1的結點。因此,本題中的二叉樹總結點數為:葉子結點數+度為1的結點數+度為2的結點數=80+10+79=179

26.880

27.4545解析:假設線性表的長度為n,則在最壞情況下,冒泡排序需要經過遍的從前往后掃描和遍的從后往前掃描,需要比較次數為。

28.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結果顯然為0。

29.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節,逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。

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

31.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數的存儲分類的概念。如果沒有特別說明,函數的存儲范圍是從定義函數的位置到文件的結尾,如果其他文件想使用這個函數,需要用ginclude文件包含命令將定義函數的文件包含進來。

32.1111解析:格式字符。是以八進制無符號形式輸出整數(不輸出前導符0),因為整數9的八進制為11,所以輸出結果為11。

33.24682,4,6,8解析:子函數fun()的功能是將數組a中的元素都自加一遍,然后仍然將結果存在原數組中,其實就是將數組a的每個元素都變為原來的2倍,然后輸出。在主程序中首先通過intfun()定義了子函數fun(),然后再調用fun()。

34.++pw[i-1]

35.本題考查函數的循環調用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1=24。\r\n\r\n

36.n/2n/2解析:刪除一個元素,平均移動的元素個數為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數為n/2。

37.5858解析:for循環語句中continue語句的作用是當數組元素值小于0時,結束本次j循環,break語句的作用是當數組元素值等于0時,結束j循環,所以for循環語句的功能是計算數組元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。

38.100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147100+2+1=103\r\n110+2+2=114\r\n120+2+3=125\r\n130+2+4=136\r\n140+2+5=147解析:靜態局部變量的生存期為整個程序的運行期間,而作用域為定義該變量的函數或局部范圍。自動變量的建立和撤銷都是由系統自動進行的,所以稱為自動變量。自動變量的作用域和生存期都為定義它的局部范圍內。對同一函數的兩次調用之間,自動變量的值是不保留的。而靜態變量則保留。注意:局部變量和全局變量的定義及其作用范圍。

39.結構化設計結構化設計解析:與結構化需求分析方法相對應的是結構化設計方法。結構化設計就是采用最佳的可能方法設計系統的各個組成部分以及各個成分之間的內部聯系的技術。

40.GDBHIEFCAGDBHIEFCA解析:后序遍歷二叉樹的順序為:后序遍歷左子樹→后序遍歷右子樹→訪問根結點。按照定義,后序遍歷序列是GDBHIEFCA。

41.B

42.C解析:簡單變量做實參時,相應的形參變量也是簡單變量,它們之間的數據傳遞方式是單向值傳遞,即數據只能由實參傳到形參,形參值的改變不影響實參值的變化。

43.C解析:在fun函數中,while循環的功能是:逐個取字符數組s的字符判斷其是否是數字。若是則將其作為個位數字保存到變量n中,n的原數據的各個數位將相應左移一個10進制位。當指針s指向數組的第3位時,循環條件不成立,循環結束,返回n的值,輸出n的值為61。

44.B解析:采用結構化編程方法的好處主要在于:一是便于控制、降低程序的復雜性,因此便于編寫程序。二是程序清晰易讀,可理解性好。因此,結構化程序設計主要強調的是程序的易讀性,而不是程序的規模、程序的執行效率和程序的可移植性。

45.A解析:對未給出初始值的整數數組元素,被默認初始化為零。

46.C解析:實數在C語言中又稱浮點數,它有兩種表示形式:

①十進制數形式。它由數字和小數點組成(注意必須有小數點)。0.123,.123,123.0,123.,0.0都是十進制數形式。

②指數形式。如123e3或123E3都代表123*103。要注意字母e(或E)之前必須有數字,且e后面的指數必須為整數,如e3,2.1e3.5,.e3,e等都不是合法的指數形式。

47.C解析:ptr指向指針變量p,p指向數組a的首地址,(ptr[0]++)[1]+=3;的意思是將p指向數組元素a[1],并將它的值增3變為5,此時,ptr指向p,p指向a[1]。

48.A解析:f2函數傳遞的是變量的地址,可以實現數據的交換,而f1函數傳遞的是值,調用完f1函數后,c的值改變了,但main函數中的a值并未改變。

49.B解析:邏輯結構即數據元素之間的邏輯關系,是從邏輯關系上描述數據,與數據的存儲無關。因此根據數據元素與數據元素之間的關系,邏輯結構被分為兩大類:線性結構和非線性結構。而集合結構與非集合結構、樹形結構和圖狀結構指的都是特定的數據結構類型。

50.D

51.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段:工具支持軟件的開發、管理和文檔生成:過程支持軟件開發的各個環節的控制、管理。

52.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數不能直接賦給一個枚舉變量。

53.A解析:本題綜合考查字符數組的賦值和strcpy函數的用法。C語言不允許用賦值表達式對字符數組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數組strl中,除了逐個地輸入外,還能使用strcpy函數,該函數的功能是將一個字符串復制到一字符數組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。

strcpy函數的結構是:strcpy(字符數組1,字符串2)

其中,需要注意的是,字符數組1的長度不應小于字符串2的長度,“字符數組1”必須寫成數組名形式,如(strl),“字符串2”可以是字符數組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。

54.C解析:此題的關鍵是要分清指針數組與指向一維數組指針之間的不同,題中的說明語句定義了一個指針變量prt,它指向包含三個整數元素的一維數組。要注意:*prt兩側的圓括號不能缺少,如果寫成*ptr[3],則ptr與[3]先結合,是數組,然后再與前面的。號結合,則*ptr[3]將是一個指針數組。

55.A解析:本題主要考查的知識點是大寫字母比它對應的小寫字母ASCII碼值小32,并且字符可以看作整數進行算術運算等操作。

56.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據前序遍歷的結果可知,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。

57.D

58.C解析:在關系模型的數據語言中,一般除了運用常規的集合運算(并、交、差、笛卡爾積等),還定義了一些專門的關系運算,如投影、選擇、連接等。前者是將關系(即二維表)看成是元組的集合,這些運算主要是從二維表的行的方向來進行運算的。后者是從二維表的列的方向來進行運算的。

59.D解析:本題考查了二叉樹的基本概念。在二叉樹中,葉子節點的度是1;當該二叉樹為空樹時,根節點的度為零;為非空樹時,根節點的度為2。

60.B解析:該題目應該根據循環體第一次和最后一次執行時的輸出結果來決定哪一項是正確的。第一次進入循環時,n的值是9,循環體內,先經過n--運算,n的值變為8,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環條件n>6可以知道,最后一次循環開始時,n的值應該為7,所以最后一次執行循環時,輸出為6,由此可以排除選項C)。

61.D

62.C

63.ACIN使retypedef定義的類型名,可以用來定義結構體變量,所以選擇A)。

64.B軟件測試的目的主要有以下幾個方面。

(1)軟件測試是為了發現錯誤而執行程序的過程。

(2)一

溫馨提示

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

評論

0/150

提交評論