2022年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁(yè)
2022年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁(yè)
2022年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁(yè)
2022年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁(yè)
2022年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

2022年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________一、單選題(20題)1.用單鏈表方式存儲(chǔ)的線性表,存儲(chǔ)每個(gè)結(jié)點(diǎn)需要兩個(gè)域,一個(gè)數(shù)據(jù)域,另一個(gè)是()。

A.當(dāng)前結(jié)點(diǎn)的所在地址B.后繼結(jié)點(diǎn)的所在地址C.空指針域D.空閑域

2.

3.C語(yǔ)言提供的合法的數(shù)據(jù)類(lèi)型關(guān)鍵字是()。

A.DoubleB.shortC.integerD.Char

4.數(shù)字字符0的ASCII值為48,運(yùn)行下列程序的輸出結(jié)果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}

A.3,2B.50,2C.2,2D.2,50

5.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列哪一個(gè)操作______。A.s->link=p;p->link=s;

B.s->link=p->link;p->link=s;

C.s->link=p->link;p=s;

D.p->link=s;s->link=p;

6.程序流程圖中有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

7.以下關(guān)于C語(yǔ)言文件系統(tǒng)的敘述中正確的是()。

A.fprintf與fwrite函數(shù)功能相同

B.文件以“r”方式打開(kāi)后,可以存儲(chǔ)文本類(lèi)型的數(shù)據(jù)

C.fscanf與fread函數(shù)功能相同

D.以“w”或“wb”方式打開(kāi)的文件,不可以從中讀取數(shù)據(jù)

8.計(jì)算機(jī)高級(jí)語(yǔ)言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。

A.C語(yǔ)言程序僅可以編譯執(zhí)行B.C語(yǔ)言程序僅可以解釋執(zhí)行C.C語(yǔ)言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說(shuō)法都不對(duì)

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

A.局部變量說(shuō)明為static存儲(chǔ)類(lèi),其生存期將得到延長(zhǎng)

B.全局變量說(shuō)明為static存儲(chǔ)類(lèi),其作用域?qū)⒈粩U(kuò)大

C.任何存儲(chǔ)類(lèi)的變量在未賦初值時(shí),其值都是不確定的

D.形參可以使用的存儲(chǔ)類(lèi)說(shuō)明符與局部變量完全相同

10.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭

11.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是______。

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

12.

13.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

14.軟件生命周期中,花費(fèi)最多的階段是()。

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)

15.下列程序的輸出結(jié)果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

16.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運(yùn)行時(shí)在第1列開(kāi)始輸入ab@并按<Enter>鍵,則運(yùn)行結(jié)果是()。

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

17.以下是if語(yǔ)句的基本形式:

if(表達(dá)式.語(yǔ)句

其中“表達(dá)式”()。

A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式

18.

19.

20.

二、2.填空題(20題)21.診斷和改正程序中錯(cuò)誤的工作通常稱(chēng)為【】。

22.在一棵二叉樹(shù)上第6層的結(jié)點(diǎn)個(gè)數(shù)最多是【】。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

prind("\n");

}

24.在E-R圖中,矩形表示【】。

25.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對(duì)象有外部特征,而不知道也無(wú)需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱(chēng)為對(duì)象的______。

26.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車(chē)符):DEF<CR>BADEF<CR>QTHRG<CR>,則程

序的輸出結(jié)果是______。

27.設(shè)x、y、z均為int型變量,請(qǐng)寫(xiě)出描述“x或y中至少有一個(gè)小于z”的表達(dá)式______。

28.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

29.軟件測(cè)試方法中,黑盒測(cè)試法和白盒測(cè)試法是常用的方法,其中黑盒測(cè)試法主要是用于測(cè)試【】。

30.函數(shù)mycmp(char*s,char*t)的功能提比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,當(dāng)s>t返回正值,當(dāng)s<t時(shí)返回負(fù)值。請(qǐng)?zhí)羁铡?/p>

mycmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}

return(【】)

}

31.以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開(kāi)頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為'e',則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請(qǐng)?zhí)羁铡?/p>

char*fun(char*str,charc)

{intn=0;char*p=str;

if(p!=NULL)

while(P[n]!=c&&p[n]!='\0')n++;

if(p[n]=='\0')retumNULL;

return(【】);

}

32.以下程序的輸出結(jié)果是【】。

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

}

main()

{doublea=2.5,b=9.0;

printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));

}

33.在數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)中,常用的描述工具是【】。

34.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類(lèi)。

35.軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),人們提出了【】的原理來(lái)設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。

36.下面程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

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

printf("\n");

}

37.對(duì)軟件是否能達(dá)到用戶所期望的要求的測(cè)試稱(chēng)為【】。

38.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

39.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。

40.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N(xiāo)′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

三、1.選擇題(20題)41.下列敘述中正確的是()。

A.黑箱(盒)測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征

B.黑箱(盒)測(cè)試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征

C.白箱(盒)測(cè)試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)

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

42.若待排序序列中元素非常多,而且它們的排列是完全無(wú)序的,那么最好選用下列排序方法中的______。

A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.快速排序

43.下面程序運(yùn)行后的輸出結(jié)果是______。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

44.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0

45.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}執(zhí)行后的輸出結(jié)果是

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

46.算法的空間復(fù)雜度是指()。

A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間

47.數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決()。

A.數(shù)據(jù)共享問(wèn)題B.數(shù)據(jù)安全問(wèn)題C.大量數(shù)據(jù)存儲(chǔ)問(wèn)題D.簡(jiǎn)化數(shù)據(jù)維護(hù)

48.以下程序輸出的結(jié)果是#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}

A.11,10B.9,10C.010,9D.10,9

49.設(shè)有下列二叉樹(shù):

對(duì)此二叉樹(shù)后序遍歷的結(jié)果為

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

50.______是構(gòu)成C語(yǔ)言程序的基本單位。

A.函數(shù)B.過(guò)程C.子程序D.子例程

51.X、Y、Z被定義為int型變量,若從鍵盤(pán)給X、Y、Z輸入數(shù)據(jù),正確的輸入語(yǔ)句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

52.下面各選項(xiàng)中,均是C語(yǔ)言合法標(biāo)識(shí)符的選項(xiàng)組是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

53.為了使模塊盡可能獨(dú)立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

54.下列程序的輸出結(jié)果是______。main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

55.請(qǐng)選出以下語(yǔ)句的輸出結(jié)果Printf("%d\n",strlen("\t\"\065\xff\n"));

A.5B.14C.8D.輸出項(xiàng)不合法,無(wú)正常輸出

56.

對(duì)兩個(gè)數(shù)組a和b進(jìn)行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長(zhǎng)度相同C.數(shù)組m比數(shù)組n長(zhǎng)1D.數(shù)組m與數(shù)組n中都存放字符串

57.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sun=0;do{if(i==(i/2)*2)continue;sum+i;}while(++i<A);printf("%d\n",sun);}

A.2500B.2050C.4D.0

58.若fp已正確定義并指向某個(gè)文件,當(dāng)未遇到該文件結(jié)束標(biāo)志時(shí)函數(shù)feof(fp)的值為()

A.0B.1C.-1D.一個(gè)非0值

59.若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運(yùn)算后,a的值為()。

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

60.在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

四、選擇題(20題)61.有以下程序該程序試圖通過(guò)指針p為變量rl讀人數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是()。

62.

63.語(yǔ)句“printf(”a\bhow\’are\’y\\\bou\n”);”的輸出結(jié)果是()。A.A.a\bhow\'are\'y\\bou

B.a\bhow\’are\’y\bou

C.how'are'you

D.ahow'are'y\bou

64.若有以下程序:inta=1,b=2:a=a^b:b=b^a:則執(zhí)行以上語(yǔ)句后a和b的值分別是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

65.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語(yǔ)句

if(a<b)

if(c==d)y=0;

Elsey=1;

該語(yǔ)句所表示的含義是()。

A.

B.

C.

D.

66.

67.

68.已知inta,b;doublec;,則以下語(yǔ)句中錯(cuò)誤的函數(shù)調(diào)用是

A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);

69.執(zhí)行以下程序時(shí)輸人1234567<CR>,則輸出結(jié)果是()。

#include<stdio.h>

main

{

inta=1,b;

scanf("%3d%2d",&a,&b);

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

}

A.12367B.12346C.12312D.12345

70.有以下程序:

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

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

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

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

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

71.

72.(67)數(shù)據(jù)處理的最小單位是()

A.數(shù)據(jù)

B.數(shù)據(jù)元素

C.數(shù)據(jù)項(xiàng)

D.數(shù)據(jù)結(jié)構(gòu)

73.

74.

75.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。

A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)

76.有以下程序:

#include<stdio.h>

main()

{intx=1,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

Drintf("%d\n"。v);

}

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

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

77.

78.用數(shù)據(jù)流圖(DFD.作為描述工具的軟件開(kāi)發(fā)階段是()。

A.可行性分析B.需求分析C.概要設(shè)計(jì)D.詳細(xì)設(shè)計(jì)

79.

80.設(shè)以下變量均為int類(lèi)型,表達(dá)式的值不為7的是A.(x=y=6,x+y,x+1)

B.(x=6,x+1,y=6,x+y)

C.(x=y=6,x+y,y+1)

D.(y=6,y+1,x=y,x+1)

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidproc(char*s,char*t)

{

inti,s1;

s1=strlen(s);

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

//****found****

t[i]=s[s1];

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

t[s1+i]一s[i];

t[2*s1]=\O0;

}

voidmain

{

chars[100],t[100];

system("CLS");

print{("\nPleaseenterstrings:");

scanf("%s",s);

proc(s,t);

printf("Theresultis:%s\n",t);

}六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換成整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換成整數(shù)值-1234。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<string.h>longfun(char*p){}voidmain(){ chars[6]; longn; printf(“Enterastring:\n”); gets(s); n=fun(s); printf(“%ld\n”,n);}

參考答案

1.B

2.A

3.Bdouble,char,int,第一個(gè)字母都是小寫(xiě)。

4.C解析:自增運(yùn)算符“++”,出現(xiàn)在變量之前,表示先使變量的值加1,再使用變量的值進(jìn)行運(yùn)算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行運(yùn)算,冉使變量的值加1。例如題中的“b++”,題中第一條語(yǔ)句先輸出字符b的值,此時(shí)變量b='2',因此輸出值為2;再使b的值加1,b='3',因此第二條語(yǔ)句輸出:b-a='3'-'1'=2。

5.B

6.C解析:程序流程圖是軟件過(guò)程設(shè)計(jì)中常用的圖形描述工具之一。構(gòu)成程序流程圖的最基本符號(hào)有:→或↓,表示控制流;□表示加工步驟;

表示邏輯條件。

7.Dfprintf函數(shù)和fscanf函數(shù)都可以讀寫(xiě)文本文件,而fwrite和fread函數(shù)可以讀寫(xiě)二進(jìn)制文件,選項(xiàng)A、C錯(cuò)誤;文件以“r”方式打開(kāi)后,只可以讀取文本數(shù)據(jù),選項(xiàng)B錯(cuò)誤。故本題答案為D選項(xiàng)。

8.A解釋執(zhí)行是計(jì)算機(jī)語(yǔ)言的一種執(zhí)行方式。由解釋器現(xiàn)場(chǎng)解釋執(zhí)行,不生成目標(biāo)程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過(guò)編譯生成目標(biāo)文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。

9.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類(lèi)別,故全局變量說(shuō)明為static存儲(chǔ)類(lèi),和沒(méi)有說(shuō)明為static存儲(chǔ)類(lèi)其生存期都是一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類(lèi)說(shuō)明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

10.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。

11.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評(píng)估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開(kāi)發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。

12.B

13.D

14.D本題考查對(duì)軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段。其中定義階段包括可行性研究與計(jì)劃制訂和需求分析;開(kāi)發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、開(kāi)發(fā)和測(cè)試;維護(hù)階段是一個(gè)單獨(dú)階段,不包含在開(kāi)發(fā)階段內(nèi),它是所花費(fèi)用最多的一個(gè)階段。

15.C解析:函數(shù)slzeof(a)的功能是求出字符串a(chǎn)中的字符占用存儲(chǔ)空間的大小,由于字符數(shù)組a有長(zhǎng)度為7,所以i=7;函數(shù)strlen(a)的功能是:求出字符串a(chǎn)的長(zhǎng)度。而每個(gè)字符串都以'\\0'為字符串的結(jié)束標(biāo)記,所以j的值等于2。

16.Dfun函數(shù)接收兩個(gè)整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來(lái)決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對(duì)a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實(shí)參i的值為0,實(shí)參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項(xiàng)。

17.D解析:本題主要考查關(guān)于if語(yǔ)句的說(shuō)明,if后面圓括號(hào)中的表達(dá)式,可是任意合法的C語(yǔ)言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類(lèi)型的數(shù)據(jù)(如:整型、實(shí)型、字符型、指針型等。)

18.C

19.A

20.C

21.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,而調(diào)試主要在開(kāi)發(fā)階段。

22.3232解析:根據(jù)二叉樹(shù)的性質(zhì),在二叉樹(shù)的第k層上,最多有2的k-1次方個(gè)結(jié)點(diǎn)。所以,第6層的結(jié)點(diǎn)數(shù)最多為32。

23.1011121210111212解析:需要注意的是,函數(shù)fun()中的變量c為靜態(tài)局部變量,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配了存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間不會(huì)釋放,所以調(diào)用函數(shù)時(shí),只賦初值一次,以后再調(diào)用函數(shù)時(shí),c中的值為上次調(diào)用函數(shù)時(shí)的值。執(zhí)行for循環(huán),當(dāng)i=0時(shí),fun(5)=5+1+4=10,此時(shí)c=4;當(dāng)i=1時(shí),fun(5)=5+1+5=11,此時(shí)c=5;當(dāng)i=2時(shí),fun(5)=5+1+6=12;此時(shí)c=6:當(dāng)i=3時(shí),退出for循環(huán),并輸出回車(chē)換行符。

24.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。

25.對(duì)象具有5個(gè)基本特點(diǎn):①標(biāo)識(shí)唯一性;②分類(lèi)性;③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對(duì)象的外部特征,對(duì)象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見(jiàn)的,對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。\r\n\r\n

26.QTHRGQTHRG解析:函數(shù)strcmp(t,s)用來(lái)比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語(yǔ)句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語(yǔ)句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語(yǔ)句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲(chǔ)空間中,然后輸出字符數(shù)組t。

27.x<z‖y<zx<z‖y<z解析:本題考查邏輯運(yùn)算符和邏輯表達(dá)式。x或y中至少有一個(gè)小于z,即x<z或y<z,是“或”的關(guān)系。

28.a=2b=3a=2,b=3解析:分析程序,程序從x=1語(yǔ)句開(kāi)始執(zhí)行,之后執(zhí)行第一個(gè)switch語(yǔ)句,switch(x)=switch(1),所以執(zhí)行case1,case1語(yǔ)句中包含一個(gè)復(fù)合switch語(yǔ)句:這時(shí)執(zhí)行第二個(gè)switch語(yǔ)句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語(yǔ)句,退出第二個(gè)switch語(yǔ)句,則整個(gè)case1的復(fù)合語(yǔ)句執(zhí)行完畢,由于在這個(gè)case1的后面沒(méi)有break語(yǔ)句使其退出第一個(gè)switch語(yǔ)句,所以接著執(zhí)行下列的case2后面的語(yǔ)句,即將a,b各加1,得到a=2,b=3。

29.軟件外部功能軟件外部功能

30.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個(gè)形參是兩個(gè)字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串?dāng)?shù)組s和t的第一個(gè)字符,在while循環(huán)中,是通過(guò)s和t值的不斷變化來(lái)改變指針?biāo)赶虻淖址?,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。

31.str+n或p+nstr+n或p+n解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開(kāi)頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結(jié)果用str+n或p+n表示。

32.functionrunningresultis:9.0

33.E-R圖E-R圖解析:E-R圖是設(shè)計(jì)概念模型的有力工具。

34.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

35.軟件工程學(xué)軟件工程學(xué)

36.eybdooG

37.有效性測(cè)試有效性測(cè)試

38.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機(jī)種子,以便在使用rand函數(shù)時(shí)產(chǎn)生不同的數(shù)。通過(guò)循環(huán)用rand函數(shù)產(chǎn)生10個(gè)隨機(jī)數(shù)。在fun函數(shù)中,要在n個(gè)數(shù)中找最大值,所以第一處填寫(xiě)i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫(xiě)a[i]。

39.類(lèi)類(lèi)

40.getchargetchar解析:考查了字符可以作為整型變量來(lái)對(duì)待,參與操作。題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來(lái)判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來(lái)判斷一個(gè)字符是y(Y)還是n(N),主要用了一個(gè)switch多分支結(jié)構(gòu)來(lái)比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來(lái)實(shí)現(xiàn)的。

41.A解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例,選項(xiàng)A是正確的,選項(xiàng)B錯(cuò)誤。白箱測(cè)試是根據(jù)對(duì)程序內(nèi)部邏輯結(jié)構(gòu)的分析來(lái)選取測(cè)試用例,選項(xiàng)C錯(cuò)誤。正確答案為A。

42.D

43.C解析:本題a[2][3]定義為一個(gè)具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開(kāi)辟了一個(gè)長(zhǎng)度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對(duì)應(yīng)的元素值賦給**s,由于數(shù)組中第一行第一列對(duì)應(yīng)的元素為9,所以本題輸出值9。

44.B解析:本題考查的知識(shí)點(diǎn)是條件表達(dá)式.條件運(yùn)算符?:是C語(yǔ)言中唯一的三目運(yùn)算符,它的規(guī)則是先計(jì)算左邊運(yùn)算分量,如果為“真”(非0),則返回中間運(yùn)算分量的值,否則返回右邊運(yùn)算分量的值。本題中因?yàn)閍<b為“真”,所以第1個(gè)條件表達(dá)式的值為b的值2,所以k=2。然后又因?yàn)閗>c為“假’,所以第2個(gè)表達(dá)式的值為k的值2。所以本題應(yīng)該選擇B。

45.C解析:在復(fù)合賦值語(yǔ)句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6。

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

47.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個(gè)應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享本身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲(chǔ)空間,更為重要的是可以避免數(shù)據(jù)的不一致性。因此,數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)共享問(wèn)題。

48.B解析:本題考核的知識(shí)點(diǎn)是自增運(yùn)算符和自減運(yùn)算符的使用.程序中i的值用八進(jìn)制表示(十進(jìn)制為8),++i是在變量使用前自身先加1,而j--是在變量使用后自身減1。所以,4個(gè)選項(xiàng)中B符合題意。

49.D解析:二叉樹(shù)的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應(yīng)該為:后序遍歷左子樹(shù)->,后序遍歷右子樹(shù)->,訪問(wèn)根結(jié)點(diǎn)。按照定義,后序遍歷序列是DEBFCA,故答案為D。

50.A解析:C程序是由函數(shù)構(gòu)成的?!獋€(gè)C源程序至少包含—個(gè)main函數(shù),也可以包含—個(gè)main函數(shù)和若干個(gè)其他函數(shù),因此,函數(shù)是C程序的基本單位。

51.B解析:scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址。選項(xiàng)A不是C語(yǔ)言中的輸入語(yǔ)句,故選項(xiàng)A不正確;選項(xiàng)C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址,故選項(xiàng)C不正確;選項(xiàng)D不是C語(yǔ)言中的輸入語(yǔ)句,故選項(xiàng)D不正確:所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

52.B解析:合法的標(biāo)識(shí)符是由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,用戶定義的標(biāo)識(shí)符不能與關(guān)鍵字相同。選項(xiàng)A),數(shù)字不能為第一個(gè)字母,auto為關(guān)鍵字;選項(xiàng)C)中,也是數(shù)字不能為第一個(gè)字母,else為關(guān)鍵字;選項(xiàng)D)中負(fù)號(hào)不合法。

53.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。

54.B

55.A解析:本題考查用strlen函數(shù)計(jì)算字符串長(zhǎng)度的方法。該字符串中包含的字符是:\'\\t\'(跳格符)、\'\\'\'(雙引號(hào))、\'\\065\'(ASCII值為八進(jìn)制065,也即+進(jìn)制為51的字符)、\'\\xff\'(ASCII值為+六進(jìn)制ff,也即+進(jìn)制為255的字符)、\'\\n\'(換行符)。

56.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語(yǔ)句“charm[]='1234567';”定義了一個(gè)字符型數(shù)組并進(jìn)行了初始化,C語(yǔ)言規(guī)定,在字符串的末尾自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組m的長(zhǎng)度是8;而數(shù)組n是按照字符方式對(duì)數(shù)組進(jìn)行初始化,系統(tǒng)不會(huì)自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組n的長(zhǎng)度是7。

57.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過(guò)這一次循環(huán),執(zhí)行下—次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。

58.A解析:文件尾測(cè)試函數(shù)feof()的應(yīng)用,讀取文件時(shí),當(dāng)文件中的數(shù)據(jù)全部讀完后,文件位置指針將位于文件的結(jié)尾。此時(shí)如果讀數(shù)據(jù),將會(huì)出現(xiàn)錯(cuò)誤。為了保證讀寫(xiě)數(shù)據(jù)的正確性,需要進(jìn)行文件尾測(cè)試,文件尾測(cè)試使用函數(shù)feof(),它的功能是測(cè)試fp指向的文件是否到達(dá)文件尾。若到達(dá)文件尾,返回值為非0,否則返回值為0。在本題中fP指向的某文件還沒(méi)有到了文件尾,因此返回0。

59.A解析:本題考查'%'運(yùn)算符的使用。運(yùn)算符'%'要求兩個(gè)運(yùn)算對(duì)象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式ao%=(b%2)等價(jià)于a=a%o(b%2)=5%(7%2)=5%1=0。

60.B解析:在長(zhǎng)度為64的有序線性表中,其中的64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類(lèi)推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長(zhǎng)度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項(xiàng)B。

61.A選項(xiàng)B)的正確寫(xiě)法應(yīng)為p=&n;,選項(xiàng)c)的正確寫(xiě)法應(yīng)為seanf(”%d”,p);,選項(xiàng)D)的正確寫(xiě)法應(yīng)為prinff(”%dXn”,*p);。故本題答案為A)。

62.A

63.C“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\\b”格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號(hào)字符;“\\\\”格式符表示輸出反斜線字符。

64.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個(gè)運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b=00000011

溫馨提示

  • 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)論