2021年廣東省中山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021年廣東省中山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021年廣東省中山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021年廣東省中山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021年廣東省中山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年廣東省中山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

2.

3.設一組初始記錄關鍵字序列(5,2,6,3,8),以第一個記錄關鍵字5為基準進行一趟快速排序的結果為()。

A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8

4.如有inta=11;則表達式(a++*1/3)的值是()。

A.0B.3C.4D.12

5.程序設計方法要求在程序設計過程中,()。

A.先編制出程序,經(jīng)調(diào)試使程序運行結果正確后再畫出程序的流程圖

B.先編制出程序,經(jīng)調(diào)試使程序運行結果正確后再在程序中的適當位置處加注釋

C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運行結果正確后再在程序中的適當位置處加注釋

D.以上3種說法都不對

6.在n個結點的線性表的數(shù)組實現(xiàn)中,算法的時間復雜度是O(1)的操作是()。

A.訪問第i(1<=i<=n)個結點和求第i個結點的直接前驅(1<i<=n)

B.在第i(1<=i<=n)個結點后插入一個新結點

C.刪除第i(1<=i<=n)個結點

D.以上都不對

7.以下敘述中正確的是()。

A.C語言編譯系統(tǒng)對標識符的長度沒有規(guī)定

B.C語言標識符的規(guī)定長度因系統(tǒng)而異

C.C語言規(guī)定標識符長度最多允許16個字符,超長報錯

D.C語言規(guī)定以下劃線開頭的標識符長度必須大于1

8.下列不屬于過程設計工具中圖形工具的是()。

A.N—SB.PADC.程序流程圖D.PDL

9.有以下程序:

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

A.10B.40C.32D.8

10.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

程序的運行結果是

A.A.331

B.41

C.2

D.1

11.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的運行結果是()。

A.0B.-12C.-20D.10

12.若函數(shù)調(diào)用時的實參為變量,下列關于函數(shù)形參和實參的敘述中正確的是()。

A.函數(shù)的形參和實參分別占用不同的存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數(shù)的實參和其對應的形參共占同一存儲單元

13.

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

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

15.以下選項中合法的C語言常量是()。

A.‘C-STR’B.2014.1C.”\1.0D.2EK

16.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運行后的輸出結果是()。A.1256B.5634C.5612D.3456

17.對于“if(表達式)語句”,以下敘述正確的是()。

A.“表達式”不能是變量

B.“表達式”的值只能是整數(shù)值

C.“表達式”可以是常量

D.“表達式”中不可以出現(xiàn)字符型變量的比較

18.下列程序的輸出結果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8

19.以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是()。

A.hellB.fwriteC.fputcD.fprintf

20.以下敘述中正確的是()。

A.在switch語句中,不一定使用break語句

B.break語句只能用于switch語句

C.break語句必須與switch語句中的case配對使用

D.在switch語句中必須使用default

二、2.填空題(20題)21.執(zhí)行以下程序后的輸出結果是【】。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

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

23.結構化設計主要分為系統(tǒng)設計和模塊設計,【】的任務是決定系統(tǒng)的模塊結構。

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

25.執(zhí)行以下程序,輸入-10的結果是【】,輸入5的結果是【】,輸入10的結果是

【】,輸入30的結果是【】。

#include<stdio.h>

main()

{

intx,c,m;

floaty;

scanf("%d",&x);

if(x<0)c=-1

elsec=x/10;

switch(c)

{

case-1;y=0;break;

case0;y=x;break;

case1;y=10;break

case2:

case3;y=-0.5*x+20;break;

default:y=-2;

}

if(y!=-2)printf("y=%f"\n",y);

elseprintf("error\n");

}

26.在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法。詳細設計階段所采用的是【】方法。

27.以下程序運行時若從鍵盤輸入:102030<回車>。輸出結果是()。

#include<stdio.h>

main()

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

scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);

}

28.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。

29.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。

30.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。

31.下面程序的輸出結果是【】。

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

32.設x和y均為int型變量,且x=1,y=2,則表達式double(1+x/y)的值為【】。

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

intx=0,y=0;

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

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

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

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

#include<stdio.h>

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

36.以下函數(shù)用來在w數(shù)組中插入x。n所指向的存儲單元中存放w數(shù)組中字符個數(shù)。數(shù)組w中的字符已按從小到大的順序排列,插入后數(shù)組w中的字符仍有序。請?zhí)羁铡?/p>

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

{inti,p;

p=0;

w[*n]=x;

while(x>w[p])p++;

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

w[p]=x;

++*n;}

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

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

structNODE

{

inthum;

structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0:

s[0].next=s+1;

s[1].next=s+2;

s[2].next=s:

p=s;

q=p->next;

r=q->next;

sum+=q->nexs->num;

sum+=r>next->next->num:

prlntf("%d\n",sum;

}

39.設有以下結構類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

40.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

三、1.選擇題(20題)41.有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結果是()。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

42.視圖設計一般有3種設計次序,下列不屬于視圖設計的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

43.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

44.以下敘述中正確的是_____。A.用C程序實現(xiàn)的算法必須要有輸入和輸出操作

B.用C程序實現(xiàn)的算法可以沒有輸出但必須要輸入

C.用C程序實現(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序實現(xiàn)的算法可以既沒有輸入也沒有輸出

45.有以下程序:#include<stdio.h>inta=1;intfun(intC){staticinta=2;c=c+1;return(a++)+c;}main(){inti,k=0;for(i=0;i<2;i++){inta=3;k+=f(A);}k+=a;printf("%d\n",k);}程序的運行結果是()。

A.14B.15C.16D.17

46.下列程序的輸出結果是______。main(){char*s="1221";intk=0,a=0,b=0;do{if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';}while(s[++k]);printf("k=%da=%db=%d\n",k,a,b);}

A.k=3a=4b=3B.k=3a=3b=3C.k=4a=3b=3D.k=4a=2b=3

47.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

48.在以下給出的表達式中,與while(E)中的(E)不等價的表達式是()。

A.(!E==0)B.(E>0‖E<O)C.(E==0)D.(E!=0)

49.有以下程序:mam(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出的結果是()。

A.9,2B.10,2C.9,1D.10,1

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

A.一個算法的空間復雜度大,則其時間復雜度也必定大

B.一個算法的空間復雜度大,則其時間復雜度必定小

C.一個算法的時間復雜度大,則其空間復雜度必定小

D.上述三種說法都不對

51.有以下程序

#include<stdio.h>

main()

{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)c[s[i]]++;

for(i=1;i<5;i++)printf("%d",c[i]);

printf("\n");

}

程序的運行結果是

A.1234B.2344C.4332D.1123

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

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

53.有定義:intx,y;若要通過scanf("%d,%d",&x,&y);使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是()。

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

54.有如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,(rec4,rec5));該函數(shù)調(diào)用語句中,含有的實參個數(shù)是______。

A.3B.4C.5D.有語法錯誤

55.以下不能正確計算代數(shù)式sm2()值的C語言表達式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

56.下面選項中不屬于面向對象程序設計特征的是______。A.繼承性B.多態(tài)性C.類比性D.封裝性

57.已有定義:inti,a[10],*p;則合法的賦值語句是()。

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

58.下面四個選項中,均是不合法的用戶標識符的選項是()。

A.AP_0doB.floatla0_AC.b-agotointD._123tempint

59.設有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是

A.p=&data.n;

B.*p=data.n;

C.p=(structsk*)&data.n;

D.p=(structsk*)data.n:

60.以下程序的輸出結果是()。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d%d%d\n"m,k,a,b);}

A.104B.103C.3D.4

四、選擇題(20題)61.

62.有以下程序(strcat函數(shù)用于連接兩個字符串):

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

A.U-KB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

63.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

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

fun(a,3,7);

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

printf("%d",a[i]);

}

程序的運行結果是A.A.45678

B.44567

C.45567

D.45677

64.有以下程序:

若運行時輸入:246<;回車>;,則輸出結果為()。

A.204B.200C.240D.246

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

A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉換成二進制的機器指令

B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件

C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中

D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標程序

66.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

67.算法分析最重要的目的是

A.找出數(shù)據(jù)結構的合理性B.找出算法中輸入和輸出之間的關系

C.分析算法的易懂性和可靠性D.分析算法的效率以求改進

68.

69.

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

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6}},(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]一1;

else

p[1][i]=1;)

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

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

70.

71.設有宏定義:

#defineIsDIV(k,n)((k%1"1==1)?1:O)且變量m已正確定義并賦值,則宏調(diào)用:

IsDIV(m,5)&&;IsDIV(m,7)為真時所要表達的是()。

A.判斷m是否能被5和7整除

B.判斷m被5和7整除是否都余l(xiāng)

C.判斷m被5或者7整除是否余1

D.判斷m是否能被5或者7整除

72.

73.以下敘述中正確的是()。

A)C程序中的#include和#define行均是C語句,只是語法不同

B)除賦值運算符外,逗號運算符的優(yōu)先級最低

C)C程序中,j++;是賦值語句

D)C程序中,+、-、*、/、%號是算數(shù)運算符,可用于整型和實型數(shù)的運算

74.

75.以下敘述中錯誤的是()。A.C程序在運行過程中所有計算都以二進制方式進行

B.C程序在運行過程中所有計算都以十進制方式進行

C.所有C程序都需要編譯鏈接無誤后才能運行

D.C程序中整型變量只能存放整數(shù),實型變量只能存放浮點數(shù)

76.

77.下列字符數(shù)組初始化語句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

78.有以下程序:

程序運行時,輸入的值在哪個范圍才會有輸出結果()。

A.不等于10的整數(shù)

B.大于3且不等于l0的整數(shù)

C.大于3或等于l0的整數(shù)

D.小于3的整數(shù)

79.

80.

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的3個邊長(整型值),判斷能否構成三角形:若能構成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構成三角形則返回1;若不能,則返回0。例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#include<math.h>intproc(inta,intb,intc){if(a+b>c&&b+c>aa+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("\nlnputa,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.學生記錄由學號和成績組成,N名學生的數(shù)據(jù)已放入主函數(shù)中的結構體數(shù)組中,請編寫函數(shù)fun,其功能是:把分數(shù)最低的學生數(shù)據(jù)放入b所指的數(shù)組中,注意:分數(shù)最低的學生可能不止一個,函數(shù)返回分數(shù)最低的學生人數(shù):

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)flm的花括號中填入你編寫的若干語句。

參考答案

1.C程序定義一個二維字符數(shù)組a,使用5個字符串對其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當前下標為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標從len/2開始的子字符串。當下標i=0時輸出efg;當下標i=l時輸出acd;當下標i=2時輸出mopq;當下標i=3時輸出hjkl;當下標i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。

2.A

3.C

4.B

5.D解析:程序設計的過程應是先畫出流程圖,然后根據(jù)流程圖編制出程序,所以選項A錯誤。程序中的注釋是為了提高程序的可讀性,注釋必須在編制程序的同時加入,所以,選項B和選項C錯誤。綜上所述,本題的正確答案為選項D。

6.A

7.B對于標識符的長度(即一個標識符允許的字符個數(shù)),C語言編譯系統(tǒng)是有規(guī)定的,即標識符的前若干個字符有效,超過的字符將不被識別。不同的C語言編譯系統(tǒng)所規(guī)定的標識符有效長度是不同的。故本題答案為B選項。

8.D\n常用的過程設計工具有圖形工具(程序流程圖、N-S圖、PAD圖、HIPO)、表格工具(判定表)、語言工具(PDL)。

\n

9.D整型變量ch使用八進制數(shù)020初始化,二進制數(shù)為10000,右移一位結果為1000,使用%d輸出十進制數(shù)為8。本題答案為D選項。

10.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導條件為“真”時執(zhí)行的操作;由else引導條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進行x++操作。x的初始值為1,輸出結果為1。

11.C宏定義只是做簡單的替換,本題中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本題答案為C選項。

12.A在定義函數(shù)時,函數(shù)名后面圓括號中的變量名稱為“形式參數(shù)”(簡稱形參)。在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面圓括號中的參數(shù)(可以是一個表達式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。故本題答案為A選項。

13.D

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

15.B所謂常量,是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,需要使用雙引號;選項C不是合法的常量形式;選項D為實型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項。

16.BFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結果是5634。

17.CC語言中沒有規(guī)定“if(表達式)語句”中的“表達式”的形式,其可以是任意合法的表達式。故本題答案為C選項。

18.A本題考查switch語句。當i=1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,a=a+2=2,a=a+3=5;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下運行,a=a+2=7,a=a+3=10;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

19.Aftell是返回文件當前指針。

20.Aswitch語句中不一定使用break語句,選項A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項B、C錯誤;switch語句不一定需要使用default語句,選項D錯誤。本題答案為A選項。

21.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結果是a=14。

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

23.系統(tǒng)設計系統(tǒng)設計解析:結構化設計主要分為系統(tǒng)設計和模塊設計。系統(tǒng)設計決定系統(tǒng)的模塊結構,模塊設計具體考慮每個模塊內(nèi)部的算法、模塊輸入、輸出及模塊功能。

24.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結果為“1,2,3,0,0,1,2,3,0,0”。

25.05105

26.結構化設計結構化設計解析:在軟件開發(fā)中,結構化方法包括結構化分析方法、結構化設計方法和結構化程序設計方法。詳細設計階段所采用的是結構化設計方法。

27.1030010300解析:本題的考點是C語言的scanf的“%*d”。“%*d”是在輸入流中跳過一個整數(shù),而讀入下一個整數(shù)。因此語句“scanf('%d%*d%d',&i,&j,&k);”在讀入10、20、30時,將10讀入到i中,將20跳過,將30讀入到j中,而k沒有讀入數(shù),仍是初值的0。

28.88解析:fabs函數(shù)功能是求x的絕對值,計算結果為double型。pow功能是計算x的y次方的值,計算結果同樣為double型。所以本題表達式相當于2.0的3.0次方,結果為8.000000。

29.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當while后面的表達式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值,因此無論表達式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

30.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*指針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。

31.eybdooG

32.11解析:本題考查兩個知識點:一是x/y的值為整型,即為0;二是數(shù)1是double類型。

33.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。

34.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

35.2424解析:本題關鍵是while循環(huán)。

當i=0時,滿足條件:i<7&&11%2==1,執(zhí)行j=0+11=11,i++,i為1;

當i=1時,滿足條件:i<7&&13%2=1,執(zhí)行j=11+13=24,i++,i為2;

當i=2時,不滿足條件:i<7&&14%2==1,循環(huán)結束。輸出j的值24。

36.w[i-1]w[i-1]解析:在用數(shù)組實現(xiàn)的有序序列中插入內(nèi)容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數(shù)。函數(shù)為了簡化尋找插入位置循環(huán)的循環(huán)條件,預先在序列的最后置入插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應填入w[i-1]。

37.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

38.55解析:主函數(shù)首先聲明了一個結點數(shù)組s[3],并分別初始化其成員num為1,2、3,而成員next全部被初始化為'\\0',也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結點指向其后面一個結點,而最后一個結點指向笫1個結點,構造出一條單向循環(huán)鏈表。接下來用結點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=-q->next即讓r指向s[2],然后讓一個累計變量sam累加q->next->hum和r->next->next->num,因為q指向s[1)所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故笫2次累加的是s[1].num=2。所以程序最終輸出結果為5。

39.2222解析:C語言里char類型占1個字節(jié),int類型占2個字節(jié),float類型占4個字節(jié),double類型占8個字節(jié),因此變量a在內(nèi)存中所占字節(jié)數(shù)=1*6+4*2+1*8=6+8+8=22。

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

41.B解析:當x=0,y=5,z=3時,z->0&&++x<5成立,執(zhí)行y=y-1;此時y=5-1=4,z=z-1=2,x=x+1=1;條件z-->0&&++x<5仍然成立,繼續(xù)執(zhí)行y=y-1,此時y=y-1=3,z=1,x=2;條件z-->0&&++x<5仍然成立,繼續(xù)執(zhí)行y=y-1,此時y=y-1=2,z=0,x=3;條件不再成立,執(zhí)行條件判斷后x=3,y=2,z=-1。

42.B解析:視圖設汁一般有3種設計次序,它們分別是自頂向下、自底向上和由內(nèi)

向外,它們又為視圖設計提供了具體的操作方法,設計者可根據(jù)實際情況靈活掌握,可以

單獨使用也可混合使用。

注意:數(shù)據(jù)庫概念設計的過程:首先選擇局部應用,再進行局部視圖設計,最后

對局部視圖進行集成得到概念模式。

43.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。

44.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。

45.A解析:本題考查的重點是對static變量以及全局變量的理解。static變量是函數(shù)或文件中的永久變量。本題中staticinta=2語句定義了一個static局部變量,編譯程序為其生成永久存儲單元,即調(diào)用函數(shù)fun時,其值一直都保存著,而不是使用函數(shù)外所賦的值(盡管開頭定義了一個同名的全局變量)。在主函數(shù)中,for循環(huán)進行兩次,第一次循環(huán)得f(3)=3+1+2=6,從而k+=f(3)=6,第二次循環(huán)由于static局部變量a變成了3,從而f(3)的值為7,故k+=f(3)=13,再執(zhí)行k+=a時,此時a的值為全局變量,其值為1,故k的值為14,選項A是正確的。

46.C解析:將數(shù)字字符串中下標值能被2整除的元素值(字符)轉換為數(shù)字累加到變量a中,將數(shù)字字符串中下標值不能被2整除的元素值(字符)轉換為數(shù)字累加到變量b中,循環(huán)結束時,a、b的值均為3,k是字符結束符的下標值,為4。

47.C解析:當switch后面括弧內(nèi)的表達式的值與某一個case后面的常量的表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句。

48.C解析:while(表達式)語句用來實現(xiàn)“當型”循環(huán)結構,當表達式為非0值時,執(zhí)行while循環(huán)體語句。選項A)若E非。即為1,選項B)與選項D)的結果也為1,只有選項C)為0。

49.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值:如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式“i--”的值為10,“++j”的值為2,所以最后輸出的值為10和2,所以,B選項為所選。

50.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。

51.C解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標,當退出循環(huán)時,數(shù)組c的4個元素的值分別為4、3、3、2。

52.D解析:存最壞情況下,快速排序退化為冒泡排序,冒泡排序法的基本過程參見本題的理論鏈接。冒泡排序的每個元素都要與它前面的元素相比較,因此比較次數(shù)為(n-1)+(n-2)+…+1=n(n-1)/2。

53.A解析:格式輸入函數(shù)的一般形式為:

scanf(格式控制,地址表列)

在“格式控制”字符串中,除格式說明以外的其他字符為按原樣輸入的字符,在輸入數(shù)據(jù)時應按原樣輸入這些字符。所以輸入時,兩個數(shù)字之間的逗號是不可少的。

54.A解析:(rec4,rec5)是逗號表達式,它的值是rec5的值。所以該函數(shù)調(diào)用語句含有的實參個數(shù)是3。

55.A解析:當運算符“/”的左右兩邊運算分量都是整數(shù)的時候,運算結果也是一個整數(shù),如果除不凈則舍去小數(shù)部分。若兩個運算分量有一個是實數(shù),才會返回真正除法上的實數(shù)結果。選項A中傳遞給sin()函數(shù)的參數(shù)表達式1/2計算出來的結果為整數(shù)0,所以不能正確計算出題目要求的值,而其余選項中,除號兩邊都至少有一個運算分量是實數(shù),故應該選擇A。

56.C解析:通常認為,面向對象方法具有封裝性、繼承性、多態(tài)性幾大特點。就是這幾大特點,為軟件開發(fā)提供了一種新的方法學。

封裝性:所謂封裝就是將相關的信息、操作與處理融合在一個內(nèi)含的部件中(對象中)。簡單地說,封裝就是隱藏信息。這是面向對象方法的中心,是面向對象程序設計的基礎。

繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對象也都具有該類的全部,這就是繼承性。繼承性自動在類與子類間共享功能與數(shù)據(jù),當某個類作了某項修改,其子類會自動改變,子類會繼承其父類所有特性與行為模式。繼承有利于提高軟件開發(fā)效率,容易達到一致性。

多態(tài)性:多態(tài)性就是多種形式。不同的對象在接收到相同的消息時,采用不同的動作。例如,一個應用程序包括許多對象,這些對象也許具有同一類型的工作,但是卻以不同的做法來實現(xiàn)。不必為每個對象的過程取一過程名,造成復雜化,可以使過程名復用。同一類型的工作有相同的過程名,這種技術稱為多態(tài)性。

經(jīng)過上述分析可知,選項C的說法是錯誤的。

57.D解析:本題考核的知識點是指針變量的賦值。本題中定義了一個整型數(shù)組a和一個整型指針變量P。選項A中將一個整型數(shù)賦值給一個指針變量,C語言規(guī)定,只能特地址賦給指針指針變量,故選項A不正確:選項B中a[5]為一數(shù)組元素,同樣不是一個地址,故選項B不正確;選項c中a[2]為一數(shù)組元素,同樣是一個整型數(shù)據(jù),不是個地址,故選項C不正確:選項D中數(shù)蛆名a代表數(shù)組首地址加2,代表第三個元素的地址,故選項D正確,所以,4個選項中選項D符合題意。

58.C解析:C語言規(guī)定的標識符只能由字母、數(shù)字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關鍵字作為標識符。選項C)中goto和int是關鍵字,b-a中'-'不是組成標識符的3種字符之一;選項D)中int是關鍵字,所以,均是不合法用戶標識符的選項是C)。

59.C解析:本題主要考查了結構體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結構體變量名.成員名或結構體指針->成員名的方法來引用結構體成員。

60.D解析:&&的優(yōu)先級高于=,先計算&&左側的表達式++a<0。先對a加1再與0比較大小,a=-1+1=0,++a<0為假即0,&&左側的表達式的值為0,不再計算&&右側的表達式的值,因此b的值不變?nèi)匀粸?,整個邏輯表達式的值為0,則k被賦值為0。輸出的結果為004。

61.D

62.C字符數(shù)組a中包含兩個‘、O’,遇到第一個‘O’時就表示字符串a(chǎn)結束。字符串處理函數(shù)由c吐(字符數(shù)組a,字符數(shù)組b),功能是連接兩個字符數(shù)組中的字符串,把字符串b連接到a的后面,結果放在字符數(shù)組a中。連接時將字符串a(chǎn)后的‘、0’取消,只在新串最后保留一個‘、0’。本題相當于將“ABCD”和“IJK”連接。因此C選項正確。

63

溫馨提示

  • 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

提交評論