2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下敘述中錯(cuò)誤的是A.gets函數(shù)用于從終端讀入字符串

B.getchar函數(shù)用于從磁盤(pán)文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

2.若有以下程序

則程序的輸出結(jié)果是

A.China!B.toChina!C.meyoutoChina!D.youtoChina!

3.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

4.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.34B.55C.10D.18

5.對(duì)于C語(yǔ)言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

6.若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是

A.a[p-A)B.*(&a[i])C.p[i]D.a[10]

7.有如下形式的函數(shù):intfun(inta[4][5],int*p[10],intn){…}調(diào)用函數(shù)之前需要對(duì)函數(shù)進(jìn)行說(shuō)明,即所謂的函數(shù)向前引用說(shuō)明,以下對(duì)fun函數(shù)說(shuō)明正確的是()。A.intfun(intb[][5],int*r[],intm);

B.intfun(inta[4][],int*p[10],intn);

C.intfun(inta[][],int*p[],intn);

D.intfun(inta[],int*p[],intn);

8.

9.在以下的敘述中,正確的是()。

A.線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈表存儲(chǔ)結(jié)構(gòu)

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進(jìn)先出

D.隊(duì)列的操作方式是先進(jìn)后出

10.帶有頭節(jié)點(diǎn)的單向鏈表head,其3個(gè)數(shù)據(jù)節(jié)點(diǎn)A、B、C的連接關(guān)系如下圖所示:節(jié)點(diǎn)類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點(diǎn),在不改變P指向的前提下,以下選項(xiàng)中不能訪問(wèn)C節(jié)點(diǎn)數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

11.

12.下列可用于C語(yǔ)言用戶標(biāo)識(shí)符的一組是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

13.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言是

A.匯編語(yǔ)言B.自然語(yǔ)言C.機(jī)器語(yǔ)言D.高級(jí)語(yǔ)言

14.廣義表(a,b,c,d)的表尾是()。

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

15.

16.

17.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

18.下列說(shuō)法不正確的是()。

A.圖的遍歷是從給定的源點(diǎn)出發(fā)每一個(gè)頂點(diǎn)僅被訪問(wèn)一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個(gè)遞歸過(guò)程

19.若某鏈表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)或刪除最后一個(gè)結(jié)點(diǎn)。則采用()存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。

A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表

20.

二、2.填空題(20題)21.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語(yǔ)句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

22.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。

23.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

24.設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【】個(gè)元素。

25.有以下程序

main()

{intn=0,m=l,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

26.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

27.測(cè)試用例包括輸入值集和【】值集。

28.設(shè)一棵二叉樹(shù)的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF,則后序遍歷結(jié)果為【】。

29.通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到不再使用的過(guò)程稱為【】。

30.下面程序的輸出走【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

31."print("%d\n",strlen("\t\"\023\xABC\n"));”語(yǔ)句的輸出結(jié)果是______。

32.語(yǔ)句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請(qǐng)寫(xiě)出一條同一功能的賦值語(yǔ)句______。

33.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。

34.若有如下程序:

#include"stdio.h"

main()

{chars[30];

strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");

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

則程序運(yùn)行后的輸出結(jié)果是【】。

35.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

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

36.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

37.解題方案的準(zhǔn)確而完整的描述稱為_(kāi)_____。

38.若按功能劃分,軟件測(cè)試的方法通常分為_(kāi)_____測(cè)試方法和黑盒測(cè)試方法。

39.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

40.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。

三、1.選擇題(20題)41.以下定義語(yǔ)句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

42.下面程序的輸出是______。chars[]="ABCD";main(){char*p;for(p=s;p<s+4;p++)printf("%s\n",p);}

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

43.若有定義floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是

A.swimh(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+

D.{case1:pfintf("*\n");case2+1:pfintf("**\n");}switch(a-I-{case1:pfintf("*\n");casec:printf("**\n");}

44.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,i;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr+++;}for(i=0;i<3;i++){foil(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}若運(yùn)行時(shí)輸入:123<回車(chē)>,則輸出結(jié)果為

A.產(chǎn)生錯(cuò)誤信息B.102000C.123000D.102030

45.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}

A.2B.8C.9D.5

46.以下選項(xiàng)中,值為1的表達(dá)式是()。

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

47.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);程序執(zhí)行后的輸出結(jié)果是()。

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

48.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}則程序段的輸出結(jié)果是

A.18B.19C.20D.21

49.當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是()。

A.(c==2)||(c==4)||(c==6)

B.(c>=2&&c<=6)||(c!=3)||(c!=5)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)&&(c%2!=1)

50.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。

A.breakB.charC.SwitchD.retum

51.軟件(結(jié)構(gòu))設(shè)計(jì)階段產(chǎn)生的文檔是______。

A.程序流程圖B.系統(tǒng)功能說(shuō)明書(shū)C.系統(tǒng)模型說(shuō)明書(shū)D.模塊結(jié)構(gòu)圖和模塊說(shuō)明書(shū)

52.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表

53.算法的有窮性是指A.算法程序的運(yùn)行時(shí)間是有限的

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長(zhǎng)度是有限的

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

54.執(zhí)行下列程序后,輸出的結(jié)果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

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

A.在模塊化程序設(shè)計(jì)中,一個(gè)模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細(xì)化的設(shè)計(jì)過(guò)程中,首先應(yīng)設(shè)計(jì)解決問(wèn)題的第一個(gè)細(xì)節(jié)

C.在模塊化程序設(shè)計(jì)中,一個(gè)模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則

D.在程序設(shè)計(jì)過(guò)程中,不能同時(shí)采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法

56.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()

A.'a'&&'b'

B.a<=b

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

D.!(a-b)&&(!c‖1)

57.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

58.相對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

59.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

60.下面程序段的運(yùn)行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

四、選擇題(20題)61.以下選項(xiàng)中不能作為C語(yǔ)言合法常量的是

A.’Fab’B.0.7e+9C."\b"D.’\01211’

62.程序段:intx=12;doubley=3.141593;printf(”%d%8.6f”,x,y.;的輸出結(jié)果是()。

A.123.141593

B.123.141593

C.12,3.141593

D.123.1415930

63.

64.

65.

66.

67.下列SQL語(yǔ)句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

68.

69.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

70.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

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

71.軟件(程序)調(diào)試的任務(wù)是()。

A.診斷和改正程序中的錯(cuò)誤B.盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C.發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D.確定程序中錯(cuò)誤的性質(zhì)

72.

73.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當(dāng)前讀寫(xiě)位置B.初始化流式文件的位置指針C.移動(dòng)流式文件的位置指針D.以上答案均正確

74.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

75.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

76.設(shè)有定義:

inta=1,b=2,C=3;

以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

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

A.軟件測(cè)試應(yīng)該由程序開(kāi)發(fā)者來(lái)完成

B.程序經(jīng)調(diào)試后一般不需要測(cè)試

C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)

D.以上三種說(shuō)法都不對(duì)

78.以下程序的輸出結(jié)果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

79.

執(zhí)行下列程序中的輸出語(yǔ)句后,a的值是()。

main

{inta;

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

}

A.17B.37C.6D.13

80.有以下程序:

#include<stdio.h>

main()

{char*s="[2]34";intk=0,a=0;

whil(s[k+1]!=\0)

{k++;

if(k%2=o){a=a+(s[k]-0+1);continue;}

a=a+(s[k]-0);

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

}

程序運(yùn)行后的輸出結(jié)果是()。

A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對(duì)字符串中的字符按從大到小的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前2個(gè)字符中,插人后前3個(gè)字符依然有序,再把第4個(gè)字符插入前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。例如,原始字符串為“goodluck”,則排序后的字符串為“uoolkgdc”。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績(jī)是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B其中B選項(xiàng)的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項(xiàng)。

2.D該程序首先定義*a和b[],并進(jìn)行初始化。主函數(shù)中通過(guò)外層for循環(huán)語(yǔ)句,遍歷字符數(shù)組b[],并且將符合if條件語(yǔ)句的字符賦給數(shù)組p;for內(nèi)層循環(huán)語(yǔ)句,遍歷字符數(shù)組a[]。再將符合if條件語(yǔ)句的結(jié)果輸出。因此D選項(xiàng)正確。

3.C函數(shù)fun(intx,inty)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號(hào)表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等于8。

4.D題干中,函數(shù)fun的功能是通過(guò)遞歸,將數(shù)組a中下標(biāo)為0~n-1位置的元素累加,作為函數(shù)返回值返回。main函數(shù)調(diào)用fun時(shí),傳入的a+2作為數(shù)組參數(shù),傳入n的值是4,所以函數(shù)返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序輸出18。本題答案為D選項(xiàng)。

5.A

6.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針?lè)?,?(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開(kāi)始的。

7.A題干中函數(shù)的定義指出了函數(shù)名為fun,返回值的數(shù)據(jù)類型為int。函數(shù)包含3個(gè)參數(shù),第1個(gè)參數(shù)是整型的二維數(shù)組,第2個(gè)參數(shù)是整型數(shù)組,第3個(gè)參數(shù)是整型變量。在定義二維數(shù)組時(shí),必須指定第二維的長(zhǎng)度,所以選項(xiàng)B、C、D錯(cuò)誤,選項(xiàng)A正確。本題答案為A選項(xiàng)。

8.C

9.B

10.Alink結(jié)構(gòu)體中的next是鏈表中下一個(gè)節(jié)點(diǎn)的地址。由于p當(dāng)前指向節(jié)點(diǎn)A,因此p->next是B的地址。p->next->next是C的地址,訪問(wèn)C的節(jié)點(diǎn)數(shù)據(jù)成員dt可以使用C的地址訪問(wèn),即p->next->next->dt,選項(xiàng)B正確?;蛘呤褂媒庖谩?”運(yùn)算符:(*p)表示節(jié)點(diǎn)A,(*p).next表示B的地址,*((*p).next)表示節(jié)點(diǎn)B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點(diǎn)C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因?yàn)椤?”運(yùn)算符優(yōu)先級(jí)高于“*”運(yùn)算符,所以也可以寫(xiě)為(*(*(*p).next).next).dt,選項(xiàng)C正確。同理,也可以既使用指針運(yùn)算符,又使用解引用運(yùn)算符來(lái)訪問(wèn)C的節(jié)點(diǎn)數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項(xiàng)D正確。選項(xiàng)A中,*p表示A節(jié)點(diǎn),(*p).next表示節(jié)點(diǎn)B的地址,由于“->”運(yùn)算符的優(yōu)先級(jí)高于“*”運(yùn)算符,因此先執(zhí)行“->”,即表達(dá)式(*p).next->next->dt引用了C節(jié)點(diǎn)的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運(yùn)算“*”,這是錯(cuò)誤的。故本題答案為A選項(xiàng)。

11.D

12.B解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下畫(huà)線3種字符組成,且第一個(gè)字符必須為字母或下畫(huà)線,排除選項(xiàng)C)和D);C語(yǔ)言中還規(guī)定標(biāo)識(shí)符不能為C語(yǔ)言的關(guān)鍵字,而選項(xiàng)A)中void為關(guān)鍵字,故排除選項(xiàng)A)。

13.C

14.C

15.A

16.A

17.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。

18.C

19.D

20.B

21.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫(xiě)數(shù)據(jù),并且該文件是新文件,應(yīng)當(dāng)使用文件打開(kāi)方式'w',文件操作結(jié)束時(shí)要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。

22.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。

23.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

24.2424解析:在循環(huán)隊(duì)列中因?yàn)轭^指針指向的是隊(duì)頭元素的前一個(gè)位置,所以是從第6個(gè)位置開(kāi)始有數(shù)據(jù)元素,所以隊(duì)列中的數(shù)據(jù)元素的個(gè)數(shù)為29-5=24。

25.-4-4解析:本題考核的知識(shí)點(diǎn)是if...else結(jié)構(gòu)的應(yīng)用。if…else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過(guò)程是:先對(duì)條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-l-3=4。所以,最后輸出為叫

26.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

27.輸出輸出解析:測(cè)試用例曲測(cè)試輸入數(shù)據(jù)(輸入值集)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。

28.DEBFCA

29.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不再使用為止的整個(gè)時(shí)期都屬于軟件生命周期,一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等。

30.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒(méi)有明確指出某個(gè)枚舉元素的值,它的上一個(gè)元素存在并有明確值的情況下,這個(gè)枚舉元素的值為其上一個(gè)元素的值+1。在本題中,沒(méi)有明確說(shuō)明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

31.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。

\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符:\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符:\'\\n\'是轉(zhuǎn)義字符,代表回車(chē)換行?!?/p>

5個(gè)子符常量各代表一個(gè)字符,再加上字母C,所以返回的長(zhǎng)度是6。

32.x+=1x+=1解析:本題考查'++'、'--'運(yùn)算符。'++'、'--'只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來(lái)的值,使用完后再使其增1或減1。

33.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

34.adf

35.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進(jìn)行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。

36.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

37.算法算法解析:算法是指對(duì)解題方案的準(zhǔn)確而完整的描述。

38.白盒白盒解析:軟件測(cè)試的方法分為白盒測(cè)試方法和黑盒測(cè)試方法.

39.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

40.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語(yǔ)言表達(dá)式為:(x>-5)&&(x<5)。

41.B解析:本題考查變量的定義方法。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開(kāi),因此選項(xiàng)A)和D)錯(cuò)誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,故選項(xiàng)C)錯(cuò)誤。

42.A解析:在第一次執(zhí)行for循環(huán)時(shí),字符數(shù)組的首地址賦給了指針變量p,使得指針變量p指向了s的首地址,輸出p所指向的字符串;第二次執(zhí)行for循環(huán)時(shí),p值增加1,p指向了s的第二個(gè)元素輸出BCD;第三次輸出CD;第四次輸出D;直到P指向字符串的結(jié)束字符“\\0”,for循環(huán)終止抽行。

43.C解析:C語(yǔ)言中,switch語(yǔ)句專用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰且直觀。switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。

44.D解析:本題主要考查的是scanf()函數(shù)的輸入原理。scanf()函數(shù)執(zhí)行時(shí),先從鍵盤(pán)緩沖區(qū)中讀取用戶輸入的數(shù)據(jù),若緩沖區(qū)為空或輸入數(shù)據(jù)少于所需數(shù)據(jù),則暫停程序等待用戶的輸入,直到用戶敲入回車(chē),scanf()將繼續(xù)到鍵盤(pán)緩沖區(qū)中讀取輸入,如此反復(fù)直到滿足scanf()函數(shù)所需數(shù)據(jù),程序才繼續(xù)執(zhí)行下面的語(yǔ)句,而scanf()沒(méi)有取完的數(shù)據(jù)仍然會(huì)保存在鍵盤(pán)緩沖區(qū)內(nèi),到程序結(jié)束時(shí)還沒(méi)取完就會(huì)被釋放掉,不會(huì)影響其他的程序運(yùn)行。另外,scanf()函數(shù)將取到的數(shù)據(jù)匹配給第2個(gè)及其后面的指針參數(shù)所指的內(nèi)存地址中去,而不檢查該參數(shù)的類型是否匹配。所以在本題中考生不要被指針ptr的定義所迷惑,它所做的只不過(guò)是臨時(shí)保存一下a+i的值,然后送到scanf()函數(shù)中去。題目首先定義了一個(gè)二維數(shù)組a[3][2]并用{0}初始化之,因?yàn)楫?dāng)所賦初值少于所定義數(shù)組的元素個(gè)數(shù)時(shí),將自動(dòng)給后面的元素樸以初值0,所以數(shù)組a[3][2]中所有的元素都被初始化為0了。在主程序的第一個(gè)for循環(huán)體中有三條語(yǔ)句,該循環(huán)體會(huì)被執(zhí)行兩次,每次執(zhí)行時(shí)i的值分別為0和1。第1條語(yǔ)句讓ptr的值分別為a+0(即元素a[0])[0])的地址)和a+1(即元素a[1][0]的地址);第2條語(yǔ)句是一條輸入語(yǔ)句,它每次接受一個(gè)十進(jìn)制整數(shù)存入到ptr所指的內(nèi)存地址中,題目要求輸入的數(shù)據(jù)為“123<回車(chē)>”,所以兩次scanf()函數(shù)的調(diào)用使a[0][0]和a[1][0]分別被賦為1和2。笫3條語(yǔ)句讓ptr自增1在這里沒(méi)有起到任何作用,因?yàn)槊看芜M(jìn)入循環(huán)體ptr都會(huì)被重新賦值。最后,程序用一個(gè)兩重循環(huán)按行列輸出二維數(shù)組a中的所有元素。所以,選項(xiàng)B符合題意。

45.A解析:本題考查函數(shù)的遞歸調(diào)用。

在函數(shù)遞歸調(diào)用時(shí),fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的計(jì)算結(jié)果為2。

46.B解析:在ASCII碼中,字符串結(jié)束符'\\0'的ASCII碼為0,字符'0'的ASCII碼的值為48,字符'1'的ASCII碼的值為49。由此可見(jiàn),選項(xiàng)A的值為-47;選項(xiàng)B的值為1;選項(xiàng)C的值為49;選項(xiàng)D的值為-48。故應(yīng)該選擇B。

47.C解析:靜態(tài)變量是在編譯時(shí)賦初值的,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值,以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。在main函數(shù)中調(diào)用fun(a,5),執(zhí)行for循環(huán)得到sum=0+a[0]+a[1]+a[2]+a[3]+a[4]=15;然后調(diào)用fun(b,4),因?yàn)閟um為靜態(tài)變量,再次調(diào)用時(shí)sum保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,所以sum:15+b[0]+b[1]+b[2]+b[3]=45;返回sum的值,main函數(shù)中輸出的s=15+45=60。

48.B解析:字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)用來(lái)把s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動(dòng)覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。

49.B解析:選項(xiàng)A表示當(dāng)變量C的值為2、4、6中的任意一個(gè)時(shí)表達(dá)式的值為真,不滿足條件;選項(xiàng)B表示,當(dāng)C的值不等3時(shí)為真,C的值不等于5時(shí)為真,2=<c<=6時(shí)為真,可見(jiàn)當(dāng)c的值為2、4、6時(shí)滿足條件,c為其他的值也可滿足條件,如c=8;選項(xiàng)C表示,2=<c<=6并且c要能被2整除時(shí)表達(dá)式的值為真,滿足條件的值只有2、4、6;選項(xiàng)D中的表達(dá)式可以轉(zhuǎn)換為選項(xiàng)C,同樣是不滿足條件的。

50.C解析:break,char、return、switch都是C語(yǔ)言中的關(guān)鍵字,Switch不是。因?yàn)镃語(yǔ)言區(qū)分字母的大小寫(xiě)。

51.D

52.C隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項(xiàng)A和選項(xiàng)B錯(cuò)誤。允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來(lái)先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯(cuò)誤。

53.A算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。

54.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運(yùn)算。本題中宏運(yùn)算過(guò)程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

55.CC?!窘馕觥吭谀K化程序設(shè)計(jì)中,模塊之間的聯(lián)系可以通過(guò)程序的控制結(jié)構(gòu)來(lái)實(shí)現(xiàn),在自頂向下、逐步細(xì)化的設(shè)計(jì)過(guò)程中,首先要考慮全局目標(biāo),而不是細(xì)節(jié)。在程序設(shè)計(jì)中模塊化和結(jié)構(gòu)化可以同時(shí)使用,一個(gè)模塊的內(nèi)部結(jié)構(gòu)也要符合結(jié)構(gòu)化設(shè)計(jì)原則。

56.D

57.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對(duì)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開(kāi)發(fā)的角度來(lái)看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級(jí)數(shù)據(jù)庫(kù)模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫(kù)系統(tǒng)的功能(動(dòng)態(tài)特性)。

58.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡(jiǎn)稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫(kù)系統(tǒng)三代的特點(diǎn)。

59.A解析:第一個(gè)判斷值為真,過(guò)渡到下一個(gè)判斷,第二個(gè)判斷為真,過(guò)渡到第三個(gè)判斷……,如此循環(huán),在打印輸出語(yǔ)句的前一行,程序給變量x賦了值,為-1,所以,無(wú)論前期如何變化,最后的x值依然為-1。

60.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫(xiě)字母。注意:如果一個(gè)字符數(shù)組用來(lái)作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長(zhǎng)字符多一個(gè)元素,以存放‘\\0’。

61.A本題考查C語(yǔ)言中常量的定義。常量是指程序在運(yùn)行過(guò)程中,其值不能被改變的量。C語(yǔ)言中常見(jiàn)的常量主要有整型常量、實(shí)型常量、字符型常量。整型常量包括十進(jìn)制整數(shù),如456;八進(jìn)制整數(shù),以0開(kāi)頭,如0456;十六進(jìn)制整數(shù),以0x開(kāi)頭,如0x456。實(shí)型變量包括十進(jìn)制小數(shù)形式,如.456;指數(shù)形式,如456e0,字母e前面必須有數(shù)字,e后面的數(shù)字必須為整數(shù),如456e-4。字符型常量是用單撇號(hào)括起來(lái)的一個(gè)字符。如,’a’,’A’等?!痑’不等于’A’。字符型常量還包括一種轉(zhuǎn)義字符,以’\\’開(kāi)頭,表示將’\\’后面的字符轉(zhuǎn)換成另外的意義。字符串也可以作為常量,用雙撇號(hào)括起來(lái),如'abc'。本題A選項(xiàng)中單撇號(hào)括起來(lái)的不是一個(gè)字符,而是三個(gè)字符,故不是合法常量。B選項(xiàng)是實(shí)型變量的指數(shù)表示形式。C選項(xiàng)是字符串常量,用雙撇號(hào)引起來(lái)。D選項(xiàng)是字符’\\0’,因?yàn)樵谂龅健痋\0’后,字符串結(jié)束,因此只讀取到’\\0’,所以D選項(xiàng)是合法常量。

62.A本題考查prinff函數(shù)的輸出格式控制符,%m.nf表示指定輸出的實(shí)型數(shù)據(jù)的寬度為m(包含小數(shù)點(diǎn)),并保留n位小數(shù)。當(dāng)輸出數(shù)據(jù)的小數(shù)位大于n時(shí),截去右邊多余的小數(shù),并對(duì)截去的部分的第一位做四舍五入的處理;當(dāng)輸出數(shù)據(jù)小數(shù)位小于n時(shí),在小數(shù)的最右邊補(bǔ)0,輸出數(shù)據(jù)的小數(shù)部分寬度為n。若給出的總寬度m小于ll加上整數(shù)位數(shù)和小數(shù)點(diǎn),則自動(dòng)突破m的限制;反之,數(shù)字右對(duì)齊,左邊補(bǔ)空格。本題中3.141593數(shù)值長(zhǎng)度為8,小數(shù)位數(shù)是6,因此左端沒(méi)有空格,故正確答案為A。

63.B

64.C

65.B

66.B

67.A本題主要考查SQL中一些基本的命令。SQL常用的語(yǔ)句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL語(yǔ)言中使用率最高的是Select,這個(gè)命令的作用是從表中查找出滿足條件的記錄。

Insert命令的作用是對(duì)數(shù)據(jù)表進(jìn)行插入操作。

Update命令的作用是對(duì)數(shù)據(jù)表進(jìn)行更新操作。

Delete命令的作用是對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行刪除操作。

Create命令的作用是創(chuàng)建數(shù)據(jù)表。

Alter命令的作用是修改表的結(jié)構(gòu)。

Drop命令的作用是用來(lái)刪除表,它與Delete的區(qū)別是進(jìn)行Drop操作后,數(shù)據(jù)表不存在了,而進(jìn)行Delete操作后,數(shù)據(jù)表還在,只是數(shù)據(jù)被刪除了。

68.A

69.B本題考查函數(shù)的輸出格式。在printf函數(shù),格式說(shuō)明符中有兩個(gè)“%”說(shuō)明;將第1個(gè)%后面的字符原樣輸出,并不輸出其對(duì)應(yīng)r的變量值。

70.A在ifelse語(yǔ)句中else總是與離它最近的if酉己對(duì)。本題目中x為1,因此“!x”為0,所以執(zhí)行elseif語(yǔ)句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1,所以條件不成立,因此elseif內(nèi)部的if.一else語(yǔ)句不再執(zhí)行,所以y的值還是初始值0。

71.A解析:軟件調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤,本題正確答案為A)。其他二項(xiàng)描述不正確,選項(xiàng)B)描述不全面,選項(xiàng)C)描述太絕對(duì),選項(xiàng)D)描述不符合定義。

72.A

73.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。

ftell()函數(shù)的參數(shù)說(shuō)明:“fp”是指向文件的文件型指針。

ftell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫(xiě)位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯(cuò)。

74.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C與D錯(cuò)誤。故答案為B選項(xiàng)。

75.C根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換規(guī)則,先將double型的常量l.2轉(zhuǎn)換為int型,因?yàn)閤的類型是int,則X的值為1;執(zhí)行語(yǔ)句y=(K+3.8)/5.0時(shí),即先將整型變量X的值1轉(zhuǎn)換為double型1.0,然后3.8相加得4.8,進(jìn)行除法運(yùn)算4.8/5.0結(jié)果為0.即變量y的值為0,d*Y的值也為0,故選C選項(xiàng)。

76.C由于a小于b,所以所有選項(xiàng)中的條件都為假,c選項(xiàng)中實(shí)際執(zhí)行了a=b;b=c;兩個(gè)操作。而A、B、D選項(xiàng)由于條件不成立,所以什么也沒(méi)有做,所以選擇c選項(xiàng)。

77.D程序調(diào)試是由程序開(kāi)發(fā)者完成診斷和改正程序中的錯(cuò)誤的過(guò)程;軟件測(cè)試是由專門(mén)的測(cè)試人員完成,是發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程,是軟件生存周期中非常重要的一個(gè)階段。

78.C在“r=P;p=q;q=r;”三個(gè)語(yǔ)句是表示P與q交換,經(jīng)過(guò)交換后P指向b的地址,q指向a的地址,因此最后輸出為8,7,7,8,故選擇C選項(xiàng)。

79.C解析:本題考查逗號(hào)表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問(wèn)的是a的值,而不是程序的輸出值)。

80.C\n輸出結(jié)果:k=1a=2

\nk=2a=4

\nk=3a=7

\nk=4a=12

\n

81.

82.

【解析】要求該學(xué)生的平均成績(jī),首先要求出其各科成績(jī)之和,然后求出其平均成績(jī)并放在成員變量ave中。

2021年貴州省遵義市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下敘述中錯(cuò)誤的是A.gets函數(shù)用于從終端讀入字符串

B.getchar函數(shù)用于從磁盤(pán)文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

2.若有以下程序

則程序的輸出結(jié)果是

A.China!B.toChina!C.meyoutoChina!D.youtoChina!

3.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

4.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.34B.55C.10D.18

5.對(duì)于C語(yǔ)言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

6.若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是

A.a[p-A)B.*(&a[i])C.p[i]D.a[10]

7.有如下形式的函數(shù):intfun(inta[4][5],int*p[10],intn){…}調(diào)用函數(shù)之前需要對(duì)函數(shù)進(jìn)行說(shuō)明,即所謂的函數(shù)向前引用說(shuō)明,以下對(duì)fun函數(shù)說(shuō)明正確的是()。A.intfun(intb[][5],int*r[],intm);

B.intfun(inta[4][],int*p[10],intn);

C.intfun(inta[][],int*p[],intn);

D.intfun(inta[],int*p[],intn);

8.

9.在以下的敘述中,正確的是()。

A.線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈表存儲(chǔ)結(jié)構(gòu)

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進(jìn)先出

D.隊(duì)列的操作方式是先進(jìn)后出

10.帶有頭節(jié)點(diǎn)的單向鏈表head,其3個(gè)數(shù)據(jù)節(jié)點(diǎn)A、B、C的連接關(guān)系如下圖所示:節(jié)點(diǎn)類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點(diǎn),在不改變P指向的前提下,以下選項(xiàng)中不能訪問(wèn)C節(jié)點(diǎn)數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

11.

12.下列可用于C語(yǔ)言用戶標(biāo)識(shí)符的一組是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

13.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言是

A.匯編語(yǔ)言B.自然語(yǔ)言C.機(jī)器語(yǔ)言D.高級(jí)語(yǔ)言

14.廣義表(a,b,c,d)的表尾是()。

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

15.

16.

17.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

18.下列說(shuō)法不正確的是()。

A.圖的遍歷是從給定的源點(diǎn)出發(fā)每一個(gè)頂點(diǎn)僅被訪問(wèn)一次

B.圖的深度遍歷不適用于有向圖

C.遍歷的基本算法有兩種:深度遍歷和廣度遍歷

D.圖的深度遍歷是一個(gè)遞歸過(guò)程

19.若某鏈表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)或刪除最后一個(gè)結(jié)點(diǎn)。則采用()存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。

A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表

20.

二、2.填空題(20題)21.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語(yǔ)句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

22.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。

23.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

24.設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【】個(gè)元素。

25.有以下程序

main()

{intn=0,m=l,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

26.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

27.測(cè)試用例包括輸入值集和【】值集。

28.設(shè)一棵二叉樹(shù)的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF,則后序遍歷結(jié)果為【】。

29.通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到不再使用的過(guò)程稱為【】。

30.下面程序的輸出走【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

31."print("%d\n",strlen("\t\"\023\xABC\n"));”語(yǔ)句的輸出結(jié)果是______。

32.語(yǔ)句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請(qǐng)寫(xiě)出一條同一功能的賦值語(yǔ)句______。

33.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。

34.若有如下程序:

#include"stdio.h"

main()

{chars[30];

strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");

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

則程序運(yùn)行后的輸出結(jié)果是【】。

35.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

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

36.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

37.解題方案的準(zhǔn)確而完整的描述稱為_(kāi)_____。

38.若按功能劃分,軟件測(cè)試的方法通常分為_(kāi)_____測(cè)試方法和黑盒測(cè)試方法。

39.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

40.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。

三、1.選擇題(20題)41.以下定義語(yǔ)句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

42.下面程序的輸出是______。chars[]="ABCD";main(){char*p;for(p=s;p<s+4;p++)printf("%s\n",p);}

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

43.若有定義floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是

A.swimh(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+

D.{case1:pfintf("*\n");case2+1:pfintf("**\n");}switch(a-I-{case1:pfintf("*\n");casec:printf("**\n");}

44.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,i;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr+++;}for(i=0;i<3;i++){foil(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}若運(yùn)行時(shí)輸入:123<回車(chē)>,則輸出結(jié)果為

A.產(chǎn)生錯(cuò)誤信息B.102000C.123000D.102030

45.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}

A.2B.8C.9D.5

46.以下選項(xiàng)中,值為1的表達(dá)式是()。

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

47.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);程序執(zhí)行后的輸出結(jié)果是()。

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

48.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}則程序段的輸出結(jié)果是

A.18B.19C.20D.21

49.當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是()。

A.(c==2)||(c==4)||(c==6)

B.(c>=2&&c<=6)||(c!=3)||(c!=5)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)&&(c%2!=1)

50.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。

A.breakB.charC.SwitchD.retum

51.軟件(結(jié)構(gòu))設(shè)計(jì)階段產(chǎn)生的文檔是______。

A.程序流程圖B.系統(tǒng)功能說(shuō)明書(shū)C.系統(tǒng)模型說(shuō)明書(shū)D.模塊結(jié)構(gòu)圖和模塊說(shuō)明書(shū)

52.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表

53.算法的有窮性是指A.算法程序的運(yùn)行時(shí)間是有限的

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長(zhǎng)度是有限的

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

54.執(zhí)行下列程序后,輸出的結(jié)果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

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

A.在模塊化程序設(shè)計(jì)中,一個(gè)模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細(xì)化的設(shè)計(jì)過(guò)程中,首先應(yīng)設(shè)計(jì)解決問(wèn)題的第一個(gè)細(xì)節(jié)

C.在模塊化程序設(shè)計(jì)中,一個(gè)模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則

D.在程序設(shè)計(jì)過(guò)程中,不能同時(shí)采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法

56.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()

A.'a'&&'b'

B.a<=b

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

D.!(a-b)&&(!c‖1)

57.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

58.相對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

59.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

60.下面程序段的運(yùn)行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

四、選擇題(20題)61.以下選項(xiàng)中不能作為C語(yǔ)言合法常量的是

A.’Fab’B.0.7e+9C."\b"D.’\01211’

62.程序段:intx=12;doubley=3.141593;printf(”%d%8.6f”,x,y.;的輸出結(jié)果是()。

A.123.141593

B.123.141593

C.12,3.141593

D.123.1415930

63.

64.

65.

66.

67.下列SQL語(yǔ)句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

68.

69.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

70.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

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

71.軟件(程序)調(diào)試的任務(wù)是()。

A.診斷和改正程序中的錯(cuò)誤B.盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C.發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D.確定程序中錯(cuò)誤的性質(zhì)

72.

73.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當(dāng)前讀寫(xiě)位置B.初始化流式文件的位置指針C.移動(dòng)流式文件的位置指針D.以上答案均正確

74.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

75.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

76.設(shè)有定義:

inta=1,b=2,C=3;

以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

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

A.軟件測(cè)試應(yīng)該由程序開(kāi)發(fā)者來(lái)完成

B.程序經(jīng)調(diào)試后一般不需要測(cè)試

C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)

D.以上三種說(shuō)法都不對(duì)

78.以下程序的輸出結(jié)果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

79.

執(zhí)行下列程序中的輸出語(yǔ)句后,a的值是()。

main

{inta;

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

}

A.17B.37C.6D.13

80.有以下程序:

#include<stdio.h>

main()

{char*s="[2]34";intk=0,a=0;

whil(s[k+1]!=\0)

{k++;

if(k%2=o){a=a+(s[k]-0+1);continue;}

a=a+(s[k]-0);

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

}

程序運(yùn)行后的輸出結(jié)果是()。

A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對(duì)字符串中的字符按從大到小的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前2個(gè)字符中,插人后前3個(gè)字符依然有序,再把第4個(gè)字符插入前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。例如,原始字符串為“goodluck”,則排序后的字符串為“uoolkgdc”。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績(jī)是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B其中B選項(xiàng)的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項(xiàng)。

2.D該程序首先定義*a和b[],并進(jìn)行初始化。主函數(shù)中通過(guò)外層for循環(huán)語(yǔ)句,遍歷字符數(shù)組b[],并且將符合if條件語(yǔ)句的字符賦給數(shù)組p;for內(nèi)層循環(huán)語(yǔ)句,遍歷字符數(shù)組a[]。再將符合if條件語(yǔ)句的結(jié)果輸出。因此D選項(xiàng)正確。

3.C函數(shù)fun(intx,inty)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號(hào)表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等于8。

4.D題干中,函數(shù)fun的功能是通過(guò)遞歸,將數(shù)組a中下標(biāo)為0~n-1位置的元素累加,作為函數(shù)返回值返回。main函數(shù)調(diào)用fun時(shí),傳入的a+2作為數(shù)組參數(shù),傳入n的值是4,所以函數(shù)返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序輸出18。本題答案為D選項(xiàng)。

5.A

6.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針?lè)?,?(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開(kāi)始的。

7.A題干中函數(shù)的定義指出了函數(shù)名為fun,返回值的數(shù)據(jù)類型為int。函數(shù)包含3個(gè)參數(shù),第1個(gè)參數(shù)是整型的二維數(shù)組,第2個(gè)參數(shù)是整型數(shù)組,第3個(gè)參數(shù)是整型變量。在定義二維數(shù)組時(shí),必須指定第二維的長(zhǎng)度,所以選項(xiàng)B、C、D錯(cuò)誤,選項(xiàng)A正確。本題答案為A選項(xiàng)。

8.C

9.B

10.Alink結(jié)構(gòu)體中的next是鏈表中下一個(gè)節(jié)點(diǎn)的地址。由于p當(dāng)前指向節(jié)點(diǎn)A,因此p->next是B的地址。p->next->next是C的地址,訪問(wèn)C的節(jié)點(diǎn)數(shù)據(jù)成員dt可以使用C的地址訪問(wèn),即p->next->next->dt,選項(xiàng)B正確?;蛘呤褂媒庖谩?”運(yùn)算符:(*p)表示節(jié)點(diǎn)A,(*p).next表示B的地址,*((*p).next)表示節(jié)點(diǎn)B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點(diǎn)C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因?yàn)椤?”運(yùn)算符優(yōu)先級(jí)高于“*”運(yùn)算符,所以也可以寫(xiě)為(*(*(*p).next).next).dt,選項(xiàng)C正確。同理,也可以既使用指針運(yùn)算符,又使用解引用運(yùn)算符來(lái)訪問(wèn)C的節(jié)點(diǎn)數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項(xiàng)D正確。選項(xiàng)A中,*p表示A節(jié)點(diǎn),(*p).next表示節(jié)點(diǎn)B的地址,由于“->”運(yùn)算符的優(yōu)先級(jí)高于“*”運(yùn)算符,因此先執(zhí)行“->”,即表達(dá)式(*p).next->next->dt引用了C節(jié)點(diǎn)的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運(yùn)算“*”,這是錯(cuò)誤的。故本題答案為A選項(xiàng)。

11.D

12.B解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下畫(huà)線3種字符組成,且第一個(gè)字符必須為字母或下畫(huà)線,排除選項(xiàng)C)和D);C語(yǔ)言中還規(guī)定標(biāo)識(shí)符不能為C語(yǔ)言的關(guān)鍵字,而選項(xiàng)A)中void為關(guān)鍵字,故排除選項(xiàng)A)。

13.C

14.C

15.A

16.A

17.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。

18.C

19.D

20.B

21.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫(xiě)數(shù)據(jù),并且該文件是新文件,應(yīng)當(dāng)使用文件打開(kāi)方式'w',文件操作結(jié)束時(shí)要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。

22.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。

23.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

24.2424解析:在循環(huán)隊(duì)列中因?yàn)轭^指針指向的是隊(duì)頭元素的前一個(gè)位置,所以是從第6個(gè)位置開(kāi)始有數(shù)據(jù)元素,所以隊(duì)列中的數(shù)據(jù)元素的個(gè)數(shù)為29-5=24。

25.-4-4解析:本題考核的知識(shí)點(diǎn)是if...else結(jié)構(gòu)的應(yīng)用。if…else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過(guò)程是:先對(duì)條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論