2022-2023年陜西省漢中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第1頁(yè)
2022-2023年陜西省漢中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第2頁(yè)
2022-2023年陜西省漢中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第3頁(yè)
2022-2023年陜西省漢中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第4頁(yè)
2022-2023年陜西省漢中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023年陜西省漢中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

2.算法的時(shí)間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

3.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}則程序運(yùn)行后的輸出結(jié)果是()

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

4.靜態(tài)鏈表中指針表示的是()。

A.內(nèi)存地址B.數(shù)組下標(biāo)C.下一元素地址D.左、右孩子地址

5.在C語(yǔ)言中,函數(shù)返回值的類(lèi)型最終取決于()。

A.函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類(lèi)型

B.return語(yǔ)句中表達(dá)式值的類(lèi)型

C.調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類(lèi)型

D.函數(shù)定義時(shí)形參的類(lèi)型

6.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。

A.58B.56C.45D.24

7.第

4

棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

8.設(shè)散列表中m個(gè)存儲(chǔ)單元,散列函數(shù)為H(key)=key%p,p是最好選擇()。

A.小于等于m的最大奇數(shù)B.小于等于m的最大素?cái)?shù)C.小于等于m的最大偶數(shù)D.小于等于m的最大合數(shù)

9.設(shè)”inta=15,b=26;”,則”printf(“%d,%d”,a,b);”的輸出結(jié)果是()。

A.15B.26,15C.15,26D.26

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

A.DoubleB.shortC.integerD.Char

11.

12.

13.排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進(jìn)行比較,將其放入已排序序列的正確位置上的方法,稱(chēng)為()。

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

14.已知a、b、c為整型變量,若從鍵盤(pán)輸入5<空格>6<空格>7<回車(chē)>,使a的值為5,b的值為6,c的值為7,則下列選項(xiàng)中正確的輸入語(yǔ)句是()。

A.scanf("%3d%3d%3d",a,b,C);

B.scanf("%d%d%d",a,b,C);

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

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

15.若有定義“chara,b;”,則執(zhí)行表達(dá)式“a=3^2”和“b=~(5|2|0xf0)”后,a和b的十進(jìn)制值分別是()。A.5和10B.9和14C.6和3D.1和8

16.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

17.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是()。

A.7B.8C.6D.2

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

A.C語(yǔ)言比其他語(yǔ)言高級(jí)

B.C語(yǔ)言可以不用編譯就被計(jì)算機(jī)識(shí)別并執(zhí)行

C.C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式

D.C語(yǔ)言出現(xiàn)最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)

19.一個(gè)算法的語(yǔ)句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時(shí)間復(fù)雜度為()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)

20.

二、2.填空題(20題)21.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。

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

main()

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

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

23.表示條件;10<x<100或x<0的C語(yǔ)言表達(dá)式是【】。

24.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。

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

26.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

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

#include<stdio.h>

voidmain()

{

charc1[20]="1234";

charc2[20]="5678";

char*p1,*p2;

p1=c1;

p2=c2;

while(*p1++)

while(*p1++=*p2++);

printf("%s,c1);

}

28.棧和隊(duì)列通常采用的存儲(chǔ)結(jié)構(gòu)是【】。

29.下面能正確進(jìn)行字符串賦值操作的是

30.當(dāng)運(yùn)行以下程序時(shí),輸入abed,程序的輸出結(jié)果是:【】。

insert(charstr[])

{inti

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",sB);insert(str);

}

31.Windows的空口分為兩類(lèi),一類(lèi)是應(yīng)用程序窗口,另一類(lèi)是【】窗口。

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

33.以下程序的輸出結(jié)果是12.00,請(qǐng)將空白處填寫(xiě)完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

34.在先左后右的原則下,根據(jù)訪(fǎng)問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

35.若有以下程序:

main()

{

inta[4][4]={{l,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);

}

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

36.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線(xiàn)性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

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

38.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱(chēng)程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{intI;

for(I=0;【】!='\n';I++);

return(I);}

40.在面向?qū)ο蠓椒ㄖ?,?lèi)的實(shí)例稱(chēng)為_(kāi)_____。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%1d\n",fun(3));}

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

42.下面不屬于靜態(tài)測(cè)試方法的是()

A.代碼檢查B.白盒法C.靜態(tài)結(jié)構(gòu)分析D.代碼質(zhì)量度量

43.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復(fù)用

44.下列敘述中正確的是A.程序設(shè)計(jì)就是編制程序

B.程序的測(cè)試必須由程序員自己去完成

C.程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測(cè)試

D.程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測(cè)試

45.以下能正確定義二維數(shù)給的是

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

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

46.以下程序的輸出結(jié)果是_________。#include<stdio.h#defineFUDGE(y)2.84+y#definePR(A)printf("%d",(int)(A))#definePRINT1(A)PR(A);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*X);}

A.11B.12C.13D.15

47.若有“doublea;”,則正確的輸入語(yǔ)句是()。

A.scanf("%lf",A);

B.scanf("%f",&A);

C.scanf("%lf",&A)

D.scanf("%le",&A);

48.若要定義a為3×4的二維數(shù)組,正確的定義語(yǔ)句是()

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

49.有如下程序main(){inty=3,x=3,z=1;printf("%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是_____。

A.34B.42C.43D.33

50.當(dāng)k的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量m,n的是

A.m=k=n

B.(m=k)&&(n=k)

C.(m=k)||(n=k)

D.(k=m)&&(n=k)

51.在位運(yùn)算中,操作數(shù)每右移兩位,其結(jié)果相當(dāng)于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

52.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=5,a=1,b=2,c=5,d=0;if(a<B)if(b!=3)if(!C)x=1;elseif(D)x=1;elsex=-1;printf("%d",x);}

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

53.算法的時(shí)間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

54.下面程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,streat(p1,p2));printf("%s\n",str);}

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

55.設(shè)有關(guān)鍵碼序列(66,13,51,76,81,26,57,69,23),要按關(guān)鍵碼值遞增的次序排序,若采用快速排序法,并以第一個(gè)元素為劃分的基準(zhǔn),那么第一趟劃分后的結(jié)果為()。

A.23,13,51,57,66,26,81,69,76

B.13,23,26,51,57,66,81,76,69

C.23,13,51,57,26,66,81,69,76

D.23,13,51,57,81,26,66,69,76

56.微型計(jì)算機(jī)中運(yùn)算器主要的功能是進(jìn)行()

A.算術(shù)運(yùn)算B.邏輯運(yùn)算C.算術(shù)和邏輯運(yùn)算D.初等函數(shù)運(yùn)算

57.若變量c是char類(lèi)型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是()

A.'a'<=c<='2'

B.(c>='a')||(c<='z')

C.('a'<=c)and('z'>=c)

D.(c>='a')&&(c<='z')

58.有下列二叉樹(shù),對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()。

A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH

59.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

60.若有如下程序:main(){intx=1,n;for(n=0;n<5;n++){switch(n){case3:x+=3;case2:x+=2;case1:case0:default:x+=4;}}printf("%d\n",x);}則程序執(zhí)行后的輸出結(jié)果是()

A.10B.18C.28D.30

四、選擇題(20題)61.

62.

63.

64.設(shè)有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

65.下面程序的運(yùn)行結(jié)果是()。

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

printf("x=%d,y=%d",x,y);

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

66.為了提高軟件的獨(dú)立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

67.在結(jié)構(gòu)化方法中,軟件功能分別屬于下列軟件開(kāi)發(fā)中的(

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

68.有以下程序:

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

A.2.3B.1,3C.1,4D.1,2

69.對(duì)如下二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

70.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

71.以下敘述中錯(cuò)誤的是()。A.c程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行

B.c程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行

C.所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行

D.c程序中字符變量存放的是字符的ASCIl值

72.在HTML頁(yè)面中哪些部分能夠插入JavaScript?

A.<body>部分

B.<head>部分

C.<body>部分和<head>部分均可

D.<title>部分

73.

74.

75.有以下程序:

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

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

76.有以下程序執(zhí)行程序時(shí),給變量X輸入l0,程序的輸出結(jié)果是()。

A.55B.54C.65D.45

77.設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。

78.有以下程序:

#include<stdio.h>

voidfunc(intn)

{staticintnum=1);

num=num+n;printf("%d",num);

}

main()

{funo(3);func(4);printf("n");}

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

A.48B.34C.35D.45

79.

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

structabc

{

inta,b,c;

}

main()

{

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

intt;

t=s[0].a+s[1].b;

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

}

A.5B.6C.7D.8

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時(shí),函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫(xiě)函數(shù)fun(),其功能是根據(jù)以下公式求P的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正整數(shù)且要求m>n。例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B第一個(gè)for循環(huán)的作用是讓p指向每行的首地址,第二個(gè)for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。

2.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀(guān)地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫(xiě)算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉?xiě)的程序長(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫(xiě)出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。

3.A

4.C

5.A解析:在C語(yǔ)言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類(lèi)型。凡不加類(lèi)型說(shuō)明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時(shí)對(duì)函數(shù)值說(shuō)明的類(lèi)型一般應(yīng)該和return語(yǔ)句中的表達(dá)式類(lèi)型一致。如果函數(shù)值的類(lèi)型和return語(yǔ)句中的表達(dá)式類(lèi)型不一致,則以函數(shù)值的類(lèi)型為準(zhǔn),由系統(tǒng)自動(dòng)進(jìn)行轉(zhuǎn)換,即函數(shù)類(lèi)型決定返回值的類(lèi)型。

6.D解析:程序中while語(yǔ)句的循環(huán)條件為i<7&&p[i]%2。當(dāng)i=0時(shí),條件成立,k=k+p[0]=11;當(dāng)i=1時(shí),條件仍成立,k=k+p[1]=11+13=24;當(dāng)i=2時(shí),p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。

7.B解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。

8.B

9.C

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

11.B

12.C

13.C

14.C解析:通過(guò)scanf()函數(shù)從鍵盤(pán)讀入數(shù)據(jù)時(shí),接收參數(shù)的使用變量的地址值,所以選項(xiàng)A和B是錯(cuò)誤的。選項(xiàng)D要求輸入時(shí)以逗號(hào)間隔,故按題目要求的輸入方式不能正確讀取到3個(gè)數(shù),也是錯(cuò)誤的。所以正確答案是C。

15.D是按位異或運(yùn)算,其功能是參與運(yùn)算的兩個(gè)操作數(shù)中相對(duì)應(yīng)的二進(jìn)制位上,若數(shù)相同,則運(yùn)算結(jié)果為0,否則該位的結(jié)果為1;“|”是按位或運(yùn)算,其功能是參加運(yùn)算的兩個(gè)操作數(shù)中,只要兩個(gè)相應(yīng)的二進(jìn)制位中有一個(gè)為1,那么該位的運(yùn)算結(jié)果為1,只有當(dāng)兩個(gè)相應(yīng)位的數(shù)都為0時(shí),該位的運(yùn)算結(jié)果才為0;“~”是按位取反運(yùn)算,其功能是將操作數(shù)的二進(jìn)制位內(nèi)容按位取反。題干中3^2等價(jià)于00000011^00000010,結(jié)果為00000001,十進(jìn)制為1。5|2等價(jià)于00000101|00000010,結(jié)果為00000111,再與0xf0按位或運(yùn)算,等價(jià)于00000111|11110000,結(jié)果為11110111,再按位取反:00001000,結(jié)果為8。所以a=1,b=8。故本題答案為D選項(xiàng)。

16.C解析:解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長(zhǎng)度,而1個(gè)存儲(chǔ)單元長(zhǎng)度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類(lèi)型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié),如果基本類(lèi)型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。

17.B

18.C解析:計(jì)算機(jī)語(yǔ)言分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言,C語(yǔ)言屬于高級(jí)語(yǔ)言,但并非比其他語(yǔ)言高級(jí),選項(xiàng)A)錯(cuò)誤;除了機(jī)器語(yǔ)言外,其他各種語(yǔ)言都必須編譯成能被計(jì)算機(jī)識(shí)別的機(jī)器代碼才能執(zhí)行,選項(xiàng)B)錯(cuò)誤;C語(yǔ)言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語(yǔ)言,選項(xiàng)D)錯(cuò)誤。

19.A

20.D

21.0。0。解析:表達(dá)式中將實(shí)型常量2.5和算術(shù)表達(dá)式1.25*(3.7+2.3)的值強(qiáng)制轉(zhuǎn)換為整型后參與運(yùn)算。

22.11解析:本題是一個(gè)陷阱題。在if語(yǔ)句的判斷表達(dá)式中,使用的不是邏輯運(yùn)算符==而是賦值運(yùn)算符=,使該表達(dá)式返回的結(jié)果正好相反。如果是c==a,則結(jié)果為假。但是c=a則是將a賦給c,且表達(dá)式的結(jié)果是賦值之后的c的值,因此結(jié)果為1是真.故最后輸出c的值1。

23.(x>10&&x<100)||x<0

24.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。

25.非線(xiàn)性結(jié)構(gòu)非線(xiàn)性結(jié)構(gòu)

26.黑盒軟件測(cè)試的方法有三種:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。設(shè)計(jì)測(cè)試實(shí)例的方法一般有兩類(lèi):黑盒測(cè)試法和白盒測(cè)試法。在使用黑盒法設(shè)計(jì)測(cè)試實(shí)例時(shí),測(cè)試人員將程序看成一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說(shuō)明”,所以使用黑盒法設(shè)計(jì)的測(cè)試用例完全是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)的。

27.1567815678解析:本題使用了雙重while循環(huán),外循環(huán)的循環(huán)條件是*p1++,即每次循環(huán)時(shí)讓p1指向其后面的一個(gè)元素,而p1自增之前所指內(nèi)容為0時(shí)循環(huán)結(jié)束。內(nèi)循環(huán)的循環(huán)條件是*p1++=*p2++,即每次循環(huán)時(shí)讓p1和p2指向其后面的一個(gè)元素,而將p2自增之前所指的元素復(fù)制到p1自增之前所指的地址中去,直到p2自增之前所指內(nèi)容為0時(shí)循環(huán)結(jié)束。p1本來(lái)一開(kāi)始是指向c1[0],由于外循環(huán)判斷條件時(shí)讓p1自增了,所以進(jìn)入內(nèi)循環(huán)時(shí)p1指向c1[1],而內(nèi)循環(huán)將p2所指字符串復(fù)制到p1所指位置,所以?xún)?nèi)循環(huán)的結(jié)果是c1[1]、c1[2]、c1[3]、c1[4]、c1[5]分別被c2[0]、c2[1]、c2[2]、c2[3]、c2[4]改寫(xiě)成'5'、'6'、'7'、'8'、'\\0'。故程序輸出的結(jié)果為15678。

28.鏈?zhǔn)酱鎯?chǔ)和順序存儲(chǔ)鏈?zhǔn)酱鎯?chǔ)和順序存儲(chǔ)

29.C

30.a*b*c*da*b*c*d,解析:在insert()函數(shù),因?yàn)轭}目要求輸入的字符串為abed,所以執(zhí)行完“i=strlen(str);”后,i中存放的是字符串a(chǎn)bcd的長(zhǎng)度值4。所以接F來(lái)的while循環(huán)會(huì)循環(huán)4次,每次讓i減1,故4次循環(huán)中i的值依次為4、3、2、1。每次循環(huán)會(huì)執(zhí)行兩條語(yǔ)句str[2*i]=str[i];str[2*i-1]='*',當(dāng)i=4時(shí)為:str[8]=str[4];str[7=='*';。執(zhí)行結(jié)果是將字符串a(chǎn)bed末尾的結(jié)束符'\\0'復(fù)制到其下標(biāo)值2倍的位置,并在其前1位插入—個(gè)'*'哼符。接下來(lái)i=3,執(zhí)行str[6]=str[3];str[5]='*'。執(zhí)行后會(huì)將字符串a(chǎn)bcd最后一個(gè)字符,d復(fù)制到其下標(biāo)值2倍的位置,并在其前1位插入一個(gè)'*'字符。依次類(lèi)推,直到i=1,執(zhí)行str[2]=str[1];str[1]='*',將字符tb,往后移動(dòng)了1位,并在原位置插入'*'字符。所以,循環(huán)結(jié)束后,字符串str會(huì)變?yōu)閍*b*c*d*。這就是程序的輸出結(jié)果。

31.文檔文檔

32.11解析:因?yàn)樵跅l件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡(jiǎn)后,為x/1.1=4,x=4.4。

34.中序中序解析:在先左后右的原則下,根據(jù)訪(fǎng)問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪(fǎng)問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪(fǎng)問(wèn)根結(jié)點(diǎn)、遍歷左了樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù):并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪(fǎng)問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷右子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然光遍歷右子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。

35.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個(gè)元素;若不是則判斷a[¨剛的值是否等于0,若等于0則退出內(nèi)層循環(huán)開(kāi)始處理下一行;其他情況下,把a(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。

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

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

38.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實(shí)心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

39.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過(guò)程中,可以用*(str+I)來(lái)訪(fǎng)問(wèn)字符串中的第I個(gè)元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。

40.對(duì)象對(duì)象解析:類(lèi)描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書(shū)是一個(gè)對(duì)象,而這些具體的書(shū)都有共同的性質(zhì),它們都屬于更一般的概念“書(shū)”這一類(lèi)對(duì)象。一個(gè)具體對(duì)象稱(chēng)為類(lèi)的實(shí)例。

41.A解析:本題兩次執(zhí)行fun函數(shù),第一次執(zhí)行得f(3)=s=n-f(n-1)=3-f(2):第二次執(zhí)行得s=2,通過(guò)傳遞返回值f(2)=2,所以s=3-2=1,即f(3)=1。

42.B解析:白盒測(cè)試按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條路徑能否按預(yù)定要求工作,白盒測(cè)試又稱(chēng)單元測(cè)試,它不屬于基于代碼分析的靜態(tài)測(cè)試。故正確選項(xiàng)為B項(xiàng)。

43.D解析:20世紀(jì)70年代以來(lái),提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對(duì)復(fù)雜的問(wèn)題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過(guò)渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開(kāi)始就過(guò)多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開(kāi)始設(shè)計(jì),逐步使問(wèn)題具體化;⑧模塊化:一個(gè)復(fù)雜問(wèn)題,肯定是由若干稍簡(jiǎn)單的問(wèn)題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱(chēng)為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。

44.C解析:軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒(méi)計(jì)是確定系統(tǒng)的物理模型。軟件測(cè)試即使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其日的在于檢驗(yàn)它是否滿(mǎn)足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤。

45.B解析:選項(xiàng)A中省略了第一維的長(zhǎng)度,在c語(yǔ)言中是不允許的,故選項(xiàng)A錯(cuò)誤;選項(xiàng)C也是省略第一維的長(zhǎng)度;選項(xiàng)D中定義了一個(gè)2行3列的數(shù)組,而在賦值的時(shí)候卻賦了一個(gè)3行的值給它,顯然不正確,故選項(xiàng)D錯(cuò)誤,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

46.B解析:在程序中如果有帶實(shí)參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語(yǔ)句中相應(yīng)的實(shí)參代替形參。將實(shí)參帶入已經(jīng)定義的宏中,可以得出答案為“12”。

47.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。

48.B

49.D解析:逗號(hào)表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

50.B解析:&&,‖在某種情況下會(huì)實(shí)行“短路規(guī)則”,即當(dāng)邏輯與前面一個(gè)表達(dá)式的值為假的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯表達(dá)式一定為假;當(dāng)邏輯或前面一個(gè)表達(dá)式為真的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯或表達(dá)式一定為真。選項(xiàng)A)是將n的值賦值給m和k。選項(xiàng)C)就是進(jìn)行了短路規(guī)則,當(dāng)m=k賦值后,m得到的新值不為0,即為真,邏輯或后面的表達(dá)式就不被計(jì)算,所以n沒(méi)有被賦值。D)答案沒(méi)有什么意義。

51.C解析:在位運(yùn)算中,操作數(shù)每右移兩位,相當(dāng)于在操作數(shù)的左側(cè)添0,最右面的兩位被移出,即操作數(shù)除以4。

52.A解析:本題考查ifelse語(yǔ)句。第1個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語(yǔ)句;第2個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語(yǔ)句:第3個(gè)if語(yǔ)句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對(duì)的else語(yǔ)句:第4個(gè)if語(yǔ)句,先判斷條件,d=0,條件不成立,則x=-1,結(jié)束循環(huán)。

53.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀(guān)地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫(xiě)算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉?xiě)的程序長(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫(xiě)出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。

54.C解析:本題考查的重點(diǎn)是拷貝字符串——使用strcpy()函數(shù),該函數(shù)的調(diào)用方式是:strcpy(字符數(shù)組,字符串),其中“字符串”可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將“字符串”完整地復(fù)制到“字符數(shù)組”中,字符數(shù)組中原有的內(nèi)容被覆蓋。使用該函數(shù)時(shí)注意:①字符數(shù)組必須定義得足夠大,以便容納復(fù)制過(guò)來(lái)的字符串。復(fù)制時(shí),連同結(jié)束標(biāo)志“\\0”一起復(fù)制;②不能用賦值運(yùn)算符“=”將一個(gè)字符串直接賦值給一個(gè)字符數(shù)組,只能用strcpy()函數(shù)處理。另外,本題還考查連接字符串的strcat()函數(shù),其調(diào)用方式是:strcat(字符數(shù)組,字符串)。功能是把“字符串”連接到“字符數(shù)組”中的字符串尾端,并存儲(chǔ)于“字符數(shù)組”中?!白址麛?shù)組”中原來(lái)的結(jié)束標(biāo)志,被“字符串”的第一個(gè)字符覆蓋,而“字符串”在操作中未被修改。使用該函數(shù)時(shí)注意:①由于沒(méi)有邊界檢查,編程者要注意保證“字符數(shù)組”定義得足夠大,以便容納連接后的目標(biāo)字符串;否則,會(huì)因長(zhǎng)度不夠而產(chǎn)生問(wèn)題;②連接前兩個(gè)字符串都有結(jié)束標(biāo)志“\\0”,連接后“字符數(shù)組”中存儲(chǔ)的字符串的結(jié)束標(biāo)志“\\0”被舍棄,只在目標(biāo)串的最后保留一個(gè)“\\0”。

55.AA)【解析】快速排序是起泡排序的改進(jìn)。在快速排

序中,任取一個(gè)記錄,以它為基準(zhǔn)用交換的方法將所有的記錄分成兩部分,關(guān)鍵碼值比它小的在一部分,關(guān)鍵碼值比它火的在另一部分,再分別對(duì)兩個(gè)部分實(shí)施上述過(guò)程,一直重復(fù)到排序完成。

56.C

57.D

58.B解析:對(duì)二叉樹(shù)的前序遍歷是指:先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后訪(fǎng)問(wèn)左子樹(shù),最后訪(fǎng)問(wèn)右子樹(shù),并且,在訪(fǎng)問(wèn)左、右子樹(shù)時(shí),先訪(fǎng)問(wèn)根結(jié)點(diǎn),再依次訪(fǎng)問(wèn)其左,右子樹(shù)。

59.D解析:逗號(hào)表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

60.C

61.D

62.D

63.B

64.A根據(jù)題目中的定義可以知道sizeof(p),計(jì)算的是數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論