2022-2023年湖南省岳陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第1頁
2022-2023年湖南省岳陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第2頁
2022-2023年湖南省岳陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第3頁
2022-2023年湖南省岳陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第4頁
2022-2023年湖南省岳陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年湖南省岳陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式是______。

A.p+1B.a+1C.a++D.++p

2.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。

A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試

3.以下程序的運(yùn)行結(jié)果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}

A.運(yùn)行后報(bào)錯B.66C.612D.55

4.衡量顯示器的主要技術(shù)指標(biāo)是()

A.波特率B.分辨率C.主頻D.顯示速度

5.設(shè)有以下語句charchl,ch2;scanf("%c%C",&chl,&ch2);若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。

A.A和B之間用逗號間隔B.A和B之間不能有任何間隔符C.A和B之間可以用回車間隔D.A和B之間用空格間隔

6.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()

A.堆排序B.插入排序C.冒泡排序D.快速排序

7.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯誤

8.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成

B.函數(shù)調(diào)用可以作為—個獨(dú)立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應(yīng)的實(shí)參

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

A.形參可以是常量、變量或表達(dá)式

B.實(shí)參可以是常量、變量或表達(dá)式

C.實(shí)參的類型應(yīng)與形參的類型賦值兼容

D.實(shí)參的個數(shù)應(yīng)與形參的個數(shù)一致

10.每次從無序表中挑選出一個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做()排序。

A.插入B.堆C.快速D.歸并排序

11.

12.在有序雙向鏈表中定位刪除一個元素的平均時間復(fù)雜度為()

A.O(1)B.O(N)C.O(logN)D.O(N*logN)

13.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

14.鏈表不具有的特點(diǎn)是()。

A.插入、刪除不需要移動元素B.可隨機(jī)訪問任一元素C.不必事先估計(jì)存儲空間D.所需空間與線性長度成正比

15.設(shè)有一個10階的對稱矩陣A,采用壓縮存儲方式,以行序?yàn)橹鞔鎯?,a11為第一元素,其存儲地址為1,每個元素占一個地址空間,則a85的地址為()。

A.13B.33C.18D.40

16.算法能正確地實(shí)現(xiàn)預(yù)定功能的特性稱為算法的()。

A.正確性B.易讀性C.健壯性D.高效率

17.以下選項(xiàng)中可作為C語言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe

18.以下程序是用來計(jì)算兩個非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運(yùn)算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

19.設(shè)散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個結(jié)點(diǎn):r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關(guān)鍵字為49的結(jié)點(diǎn)地址是_____。

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

20.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do…while語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

B.可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

C.可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

二、2.填空題(20題)21.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

22.十六進(jìn)制數(shù)100轉(zhuǎn)換成十進(jìn)制數(shù)為【】。

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

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

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

}

24.單元測試又稱模塊測試,一般采用【】測試。

25.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

27.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。

28.下列程序的運(yùn)行結(jié)果為【】。

main()

{inti;

chara[]="Ilovechina!",b[20],*p1,*p2;

p1=a;

p2=b;

while(*p1)

{*p2=*p1;

p1++;

p2++;

}

*p2='\0';

printf("stringbis:%s\n",b);

}

29.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

30.當(dāng)調(diào)用函數(shù)時,實(shí)參是一個數(shù)組名,則向函數(shù)傳遞的是【】。

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

intt(intx,inty,intcp,intdp)

{cp=x%y+y*y;

dp=x+x-y*y;

}

main()

{ima=4,b=3,c=9,d=8;

t(a,b,c,D);

printf("%d%d\n",c,D);

}

32.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0||x==1)

return3;

else

p=x-fun(x-2);

returnp;}

voidmain()

{printf("\n%d",fun(9));}

34.以下程序的功能是建立一個帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

35.數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理和控制。

36.已有定義:intx;,執(zhí)行以下語句后的輔出結(jié)果是【】。

x=11/3;y=5;

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

37.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

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

39.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longfl;

myf=【】("test.t","rb”);

fseek(myf,()SEEK_END);fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

40.類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的【】。

三、1.選擇題(20題)41.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。

A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ

42.定義如下變量和數(shù)組:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};則下面語句的輸出結(jié)果是()。for(k=0;k<3;k++)printf("%d",a[k][k]);

A.753B.951C.963D.741

43.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序的易讀性

44.若x和y都是血型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));,則輸出結(jié)果是______。

A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值

45.若有以下說明和語句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達(dá)式是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

46.下面被調(diào)用函數(shù)sub的函數(shù)值的類型是()sub(floatA){floatb;b=a*a+1;returnb;}

A.單精度型B.雙精度型C.空類型D.整型

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

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

48.有以下程序段:main{){inta=5,*b,**C;c=&b;b=&a;……}程序在執(zhí)行了“c=&b;b=&a;”語句后,表達(dá)式“**c”的值是

A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址

49.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運(yùn)行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

50.下列有關(guān)數(shù)據(jù)庫的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的存儲結(jié)構(gòu)不變

C.關(guān)系中的每一列稱為元組,一個元組就是一個字段

D.如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

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

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

52.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是()

A.typedefstructaa{intn;floatm;}AA;AAtdl;

B.#defineAAstructaaAA{intn;floatm;}tdl;

C.struct{intn;floatm;}aa;structaatdl;

D.struct{intn;floatm,}tdl;

53.若有語句:char*line[5];以下敘述中正確的是()。

A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量

B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C.定義line是一個指針數(shù)組,語句中的.號稱為求地址運(yùn)算符

D.定義line是一個指向字符型函數(shù)的指針

54.以下選項(xiàng)中不合法的標(biāo)識符是

A.ptintB.FORC.&aD._00

55.用十六進(jìn)制的地址碼給存儲器的字節(jié)編址,其地址編號從0000到FFFF,則該存儲器的容量為()

A.1MBB.256KBC.64KBD.640KB

56.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

57.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨(dú)立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

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

對此二叉樹中序遍歷的結(jié)果為

A.ABCDEFB.DAECFC.BDAECFD.DBEFCA

59.設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

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

60.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是

chars[]="anapple";

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

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

四、選擇題(20題)61.有以下程序:

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

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

62.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

63.

設(shè)有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.\0B.0C.不確定的值D.0的地址

64.對于一個正常運(yùn)行的C程序,以下敘述中正確的是()。

A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束.

C.程序的執(zhí)行總是從main函數(shù)開始、

D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

65.以下程序的輸出結(jié)果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1

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

A.用E—R圖能夠表示實(shí)體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系

B.用E—R圖只能表示實(shí)體集之間一對一的聯(lián)系

C.用E—R圖只能表示實(shí)體集之間一對多的聯(lián)系

D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

67.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。

A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序

68.

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

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10B.13C.21D.程序陷入死循環(huán)

69.對建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是

A.程序應(yīng)簡單、清晰、可讀性好B.符號名的命名只需符合語法

C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

70.語句“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

71.有以下程序:

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

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*l=22*2=43*1=33*2=63*3=9

72.若變量已確定義,則以下語句的輸出結(jié)果是()。

73.設(shè)有定義語句:

intx[-6]={2,4,6,8,5,7),*p=X,i;

要求依次輸出X數(shù)組6個元素中的值,不能完成此操作的語句是()。A.A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(pq-i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",*(p)++);

74.設(shè)有定義

75.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

76.以下選項(xiàng)中與“if(a==l)a=b;elsea++;”語句功能不同的switch語句是()。

A.switch(a){casel:a=b;break;default:a++;}

B.switch(a==l){case0:a=b;break;casel:a++;}

C.switch(a){default:a++;break;casel:a=b;}

D.switch(a==l){casel:a=b;break;case0:a++;}

77.

78.設(shè)有以下語句

charx=3,y=6,z;

z=x^y<<2;

則z的二進(jìn)制值是

A.00010100B.00011011C.00011100D.00011000

79.在下列選項(xiàng)中,哪個不是一個算法一般應(yīng)該具有的基本特征()。

A.無窮性B.可行性C.確定性D.有窮性

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤上輸入一個3行3列的矩陣的各個元素的值,然后輸出主對角線元素之和。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時停止迭代)。

程序運(yùn)行后,若輸入精度

0.0005,則程序應(yīng)輸出為3.14…

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

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

參考答案

1.C

2.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計(jì)劃,應(yīng)提交集成測試計(jì)劃、集成測試規(guī)格說明和集成測試分析報(bào)告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計(jì)時犯的錯誤。

(3)確認(rèn)測試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計(jì)測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計(jì)測試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計(jì)算機(jī)系統(tǒng)的元素與計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

3.A

4.B

5.Bscanf輸入函數(shù)中,格式控制J必須嚴(yán)格按照函數(shù)中的要求進(jìn)行輸入,在scanf("%c%c",&chl,&ch2)的格式控制語句中沒有任何字符進(jìn)行間隔,所以在輸入時也不能使用任何字符進(jìn)行間隔,所以答案選擇B。

6.A

7.D解析:C語言中有基本的算術(shù)運(yùn)算符(+、-、*、/)還包括自增自減運(yùn)算符(++、-),在C語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。

8.D解析:在調(diào)用函數(shù)時,給形參分配存儲單元,并將實(shí)參對應(yīng)的值傳遞紿形參,調(diào)用結(jié)束后,形參單元彼釋放,實(shí)參單元仍保留并維持原值。因此,在執(zhí)行—個被調(diào)用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調(diào)函數(shù)的實(shí)參的值,也就是說形參的值是不傳回紿對應(yīng)的實(shí)參的。

9.A函數(shù)中,形參必須是變量,實(shí)參可以是常量、變量或表達(dá)式,選項(xiàng)A錯誤,選項(xiàng)B正確;實(shí)參的個數(shù)和類型要與形參一致,選項(xiàng)C、D正確。本題答案為A選項(xiàng)。

10.B

11.B

12.B

13.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

14.BB選項(xiàng)的特點(diǎn)是順序存儲結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。

15.B

16.A

17.A解析:C語言的常量分為整型常量、實(shí)型常量和字符型常量。選項(xiàng)A屬于實(shí)型常量中的十進(jìn)制小數(shù)形式的表示法,是合法的。

18.B

19.D

20.D解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

21.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

22.256

23.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。

24.白盒法白盒法

25.44解析:本題考查宏定義。預(yù)編譯時,首先將M的宏定義帶入K,得到N+1+1*N+1/2;再將N的宏定義帶人,得到2+1+1*2+1/2=3+2+0=5,所以循環(huán)4次。

26.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲單元在程序運(yùn)行過程中始終不釋放,即當(dāng)下一次調(diào)用該函數(shù)時,該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。

27.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

28.stringbis:Ilovechina!

29.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。

30.數(shù)組的首地址數(shù)組的首地址解析:在函數(shù)中,可以通過指針變量來引用調(diào)用函數(shù)中對應(yīng)的數(shù)組元素,此操作是通過傳遞數(shù)組的首地址來實(shí)現(xiàn)的。

31.9898解析:本題的考查點(diǎn)是函數(shù)的調(diào)用。本題中a,b,c,d是實(shí)參,x,y,cp,dp是形參。C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是98。

32.概念(或概念級)概念(或概念級)

33.77解析:本題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計(jì)算出最終結(jié)果。

34.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點(diǎn)。

35.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實(shí)現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

36.%d%3

37.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

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

39.fopenfopen解析:C語言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開,使用后要關(guān)閉。

打開文件的函數(shù)為:fopen(),調(diào)用形式為:fP=fopen(”文件名”,”使用文件方式”);

關(guān)閉文件的函數(shù)為:folose(),調(diào)用形式為:foclose(fp);其中fp為文件指針。

40.實(shí)例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應(yīng)類的一個實(shí)例。

41.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點(diǎn)一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點(diǎn)D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點(diǎn)A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。

42.B解析:本題中的二維數(shù)組的每個元素就是一個由3個元素構(gòu)成的一維數(shù)組,根據(jù)條件for(k=0;k<3;++)和要求的a[k][k]可以得出本題的答案應(yīng)該是951。

43.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

44.A

45.D解析:根據(jù)結(jié)構(gòu)變量的存儲特點(diǎn),p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)體變量中成員n的值使之加1。因?yàn)閜指向數(shù)組a起始地址,p->n的值為5,再掏打自加1運(yùn)行,結(jié)果為6。

46.D

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

48.C解析:主函數(shù)中定義了一個整型變量a,一個整型指針變量b和一個二級指針變量c,并讓c指向指針變量b,讓指針b指向整形變量a,所以**c為變量a的值,所以,4個選項(xiàng)中選項(xiàng)C符合題意。

49.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

50.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A敘述錯誤。數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項(xiàng)B敘述錯誤。關(guān)系中的行稱為元組,對應(yīng)存儲文件中的記錄,關(guān)系中的列稱為屬性,對應(yīng)存儲文件中的字段,故選項(xiàng)C敘述錯誤。所以本題選D。

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

52.C解析:定義結(jié)構(gòu)體類型的變量有幾種的方法如下:

①定義結(jié)構(gòu)體類型的同時,定義結(jié)構(gòu)體類型的變量,如下面的定義中在定義結(jié)構(gòu)體類型aa的同時定義了該類型的變量tdl。上述B)項(xiàng)中將宏名AA用宏體structaa替換進(jìn)去后,與該定義形式一樣,因此是正確的。這一定義形式中,結(jié)構(gòu)體類型名明是可以省略的,因此,D)項(xiàng)也是正確的。

structaa

{...

}tdl;

②先定義結(jié)構(gòu)體類型,然后再定義結(jié)構(gòu)體類型的變量,形式如下:

structaa

{

};

structaatdl;

這種定義形式也可演變?yōu)?,先用類型定義語句typedef將該結(jié)構(gòu)體類型定義成一個類型名AA,然后直接用該類型名AA去定義一個變量(這時不再需要使用關(guān)鍵字struct了)。這就是A)項(xiàng)的形式。

53.A解析:由于運(yùn)算符[]優(yōu)先級比*高,所以line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量。

54.C

55.C

56.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個表達(dá)式:a+7=c+b和a=a+7,其中第一個是錯的,因?yàn)镃++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達(dá)式或常量等。注意:C++語言賦值語句的運(yùn)用,

57.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

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

59.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

60.B解析:考查了測字符串長度函數(shù)strlen。如果一個字符數(shù)組中存放一個字符串,則函數(shù)strlen的值為'\\0'之前的全部字符個數(shù),也包括空格在內(nèi)。

61.B結(jié)構(gòu)體tt是一個遞歸定義,類似于鏈表,

通過成員變量Y鏈接起來。P=s+1指向s[1]。P一>Y指向8[2],但現(xiàn)在P->Y=s,因此s[2]=s[O],此時8[]={1.0,2.0,1.0},而P在s[1]位置,因此P_>x為2,P=P_>Y,P指向s[2],因此P_>x=1,故打印結(jié)果為2,1。答案為B選項(xiàng)。

62.B當(dāng)n為9時,此時if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項(xiàng)。

63.A

\n本題主要考查字符數(shù)組和指針,在c語言中,字符型數(shù)組在存放字符串時會自動在末尾加上\0,所以數(shù)組str有11個元素;ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。

\n

64.C任何一個C語言程序的執(zhí)行都是從主函數(shù)main開始,至主函數(shù)main結(jié)束。故本題答案為C選項(xiàng)。

65.B函數(shù)調(diào)用時,prt函數(shù)的作用是為使m數(shù)組中的數(shù)自增1,因此數(shù)組下標(biāo)從0開始,每個元素都自加1。

66.A用E—R圖可以描述實(shí)體及其相互之間的聯(lián)系,還可以描述多個實(shí)體集之間的聯(lián)系和一個實(shí)體集內(nèi)部實(shí)體之間的聯(lián)系。用E—R圖表示的概念數(shù)據(jù)模型不僅能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,還可以轉(zhuǎn)換為其他數(shù)據(jù)模型,如網(wǎng)狀模型和層次模型等。所以A的說法正確。

67.C解析:軟件按功能可以分為:應(yīng)用軟件,系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開發(fā)的軟件。例如,事務(wù)處理軟件、工程與科學(xué)計(jì)算軟件,實(shí)時處理軟件,嵌入式軟件,人工智能軟件等應(yīng)用性質(zhì)不同的軟件。因此選項(xiàng)C教務(wù)管理系統(tǒng)屬于應(yīng)用軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)據(jù)庫管理系統(tǒng)等。因此選項(xiàng)A、B、D都屬于系統(tǒng)軟件。

68.D

\n當(dāng)i一0時,兩個if都不滿足,所以都不執(zhí)行,直接執(zhí)行i++語句,此時i為1,S為l,返回for循環(huán)中;當(dāng)i=1時,同樣不執(zhí)行兩個if語句,執(zhí)行i++后,i=2,s=3,返回for循環(huán)中;i=2時也不執(zhí)行if語句,執(zhí)行i++后,i=3,s=6,接著又執(zhí)行for循環(huán),此時符合第一個if語句,執(zhí)行到continue時不再執(zhí)行i++了,continue是跳出本次循環(huán),接著下次循環(huán)。永遠(yuǎn)這樣執(zhí)行下去,i的值永遠(yuǎn)為3,故選擇D選項(xiàng)。

\n

69.A具有良好的程序設(shè)計(jì)風(fēng)格是一個程序員必不可少的素質(zhì)。我們在編寫程序時要養(yǎng)成良好的程序設(shè)計(jì)習(xí)慣,對程序的要

溫馨提示

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

評論

0/150

提交評論