2022-2023年湖北省荊州市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2022-2023年湖北省荊州市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2022-2023年湖北省荊州市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2022-2023年湖北省荊州市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2022-2023年湖北省荊州市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

2022-2023年湖北省荊州市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()。

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

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

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定是一一對應的

B.由于計算機存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)

C.程序設計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)

D.以上三種說法都不對

3.一個C語言程序總是從()開始執(zhí)行:

A.主程序B.子程序C.主函數(shù)D.第一個函數(shù)

4.以下涉及字符串數(shù)組、字符指針的程序段中,沒有編譯錯誤的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

5.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員,從職員到部門的聯(lián)系類型是()

A.多對多B.一對一C.多對一D.一對多

6.

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

A.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

C.在不同的函數(shù)中可以定義相同名字的變量

D.函數(shù)的形參是局部變量

8.假設以行序為主序存儲二維數(shù)組array[100][100],設每個數(shù)據(jù)元素占2個存儲單元,基地址為10,下標從0開始,則元素array[5][5]的地址為()。

A.808B.818C.1010D.1020

9.一個關系中屬性個數(shù)為1時,稱此關系為()。

A.對應關系B.單一關系C.一元關系D.二元關系

10.

11.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。

A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10

12.下列表達式中,可以正確表示的關系是()。

A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0

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

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

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

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

D.struct{intn;floatm;}tdl;

14.設有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,按行優(yōu)先存放時,元素A3,4的地址為()。

A.1224B.1208C.1200D.1216

15.在inta=3,int*p=&a;中,*p的值是()。

A.變量a的地址值B.無意義C.變量p的地址值D.3

16.需求分析的主要任務是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員

17.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][10]={“One”,“Three”,“Five”},*p=str[0];printf(“%s,”,p+10);printf(“%d\n”,strlen(p+=10));}程序運行后的輸出結(jié)果是()。

A.Three,4B.出錯C.Three,5D.Five,5

18.C程序的基本模塊為()。

A.表達式B.標識符C.語句D.函數(shù)

19.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

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

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

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

二、2.填空題(20題)21.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

22.執(zhí)行以下程序的輸出結(jié)果是()。

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k=N*N*5;printf(”%d\n",k);

}

23.語句printf("%f\n",13.0*(1/5));的輸出結(jié)果為【】。

24.需求分析的最終結(jié)果是產(chǎn)生【】。

25.以下程序的功能是:輸出x、y、z三個變量中的最大值,請?zhí)羁铡?/p>

main()

{intx,y,z,u;

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

if(【】)u=x;

elseu=y(tǒng);

if(【】)u=z;

printf("u=%d",u);

}

26.()是指用戶的應用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。

27.下面程序的運行結(jié)果是______。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]]='A'+i+321;

sub(s,7,SLZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,inttl,intt2)

{charCh;

while(t1<t2)

{ch=*(a+t

28.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。

#include<stdio.h>

main()

{inti,j;

for(i=1;i<5;i++)

for(j=2;j<=i;j++)putchar('#');

}

29.執(zhí)行下面程序段后,k的值是【】。

r=1;n=203;k=1

do}k*=n%10*r;n/=10;r++;}while(n);

30.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

31.設有以下程序,為使之正確運行,請在橫線中填入應包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

32.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A',例如:

123415913

5678261014

當A=9101112則A'=371115

13141516481216

請?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][NJ)

{

inti,j,t;

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

for(j=0;______;j++)

{

t=a[i][j];

______;

a[j][i]=t;

}

}

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

34.在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為【】。

35.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

36.以下程序輸出的最后個值是【】

intff(intn)

{staticintf=1;

f=f*n

returnf;

}

main()

{inti;

for(i=1;i<=5:i++)printf("%d、n",ff(i));}

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

38.若a是int型變量,則表達式(a=2*3,a*2),a+4的值為______。

39.設有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

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

40.樹中度為零的結(jié)點稱為______。

三、1.選擇題(20題)41.以下說法中正確的是_______。

A.C語言程序總是從第一個函數(shù)開始執(zhí)行

B.在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義

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

D.C語言程序中的main()函數(shù)必須放在程序的開始部分

42.下面不屬于軟件工程的3個要素的是______。

A.工具B.過程C.方法D.環(huán)境

43.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為()。

A.31B.32C.16D.15

44.若int類型數(shù)據(jù)占兩個字節(jié),則下列語句的輸出結(jié)果為()intx=-1;printf("%u\n",x);

A.-1B.32767C.65535D.65536

45.下面程序的執(zhí)行結(jié)果是______。#defineMAX10nta[MAX],i;main(){printf("\n");sub1();sub3(A);sub2();sub3(A);}sub1(){for(i=0;i<1MAX;i++)a[i]-i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<max;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf("%d",a[i]);printf("\n");}

A.02468101214161801234

B.01234024681012141618

C.012345678901234

D.024681012141618024681012141618

46.若定義inta=10,則表達式a+=a-=a*=a的值是()。

A.0B.-180C.-100D.-90

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

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

48.使用白盒測試法時,確定測試數(shù)據(jù)應該根據(jù)()和指定的覆蓋標準。

A.程序的內(nèi)部邏輯B.程序的復雜結(jié)構(gòu)C.使用說明書D.程序的功能

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

A.p=&data.n;

B.*p=data.n;

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

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

50.若有程序fun(inta,intb){staticintc=0c+=a+b;retumc;}main(){intx=5,y=3,z=7,r;r=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結(jié)果______。

A.23B.15C.19D.18

51.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

52.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()

A.每個元素都有一個直接前件和直接后件

B.線性表中至少要有一個元素

C.表中諸元素的排列順序必須是由小到大或由大到小

D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件

53.以下程序的輸出結(jié)果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

54.定義int*swap()指的是______。

A.一個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函數(shù)swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

55.程序設計是以()和數(shù)據(jù)結(jié)構(gòu)為基礎的。

A.算法設計B.編程語言C.設計風格D.數(shù)據(jù)結(jié)構(gòu)

56.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是()。

A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

57.設有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

58.設有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。

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

59.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

60.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);}

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

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

四、選擇題(20題)61.定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()

A.159B.147C.357D.369

62.設x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

63.若有以下程序

#include<stdio.h>

voidf(intn);

main()

{

voidf(intn);

f(5);

}

voidf(intn)

{

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

}

則以下敘述中不正確的是

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復說明

D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型

64.以下不能輸出字符A的語句是()。(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)

65.

66.結(jié)構(gòu)化程序設計主要強調(diào)的是

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

67.

68.有以下程序:

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

A.B,C,D,E,B.A,B,C,D,C.C,D,E,F(xiàn),D.B,D,F(xiàn),H,

69.

70.以下選項中合法的表達式是()。

A.a(chǎn)=a+7=c+b

B.(3+x)++

C.3+x++

D.x+1=x+1

71.有以下程序:

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

A.321B.12300C.1D.123

72.

73.以下選項中正確的語句組是()。

A.char*s;s={f.BOOK!”};

B.char*s;s:”BOOK!”:

C.chars[10];s=”BOOK!”;

D.cbars[];s:”BOOK!n:

74.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

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

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

75.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

程序的運行結(jié)果是

A.to

B.tomeet

C.toee

D.程序段不能通過編譯

76.

有下列程序:

main

{intx=5;

do

{printf("%d",X-=4);)

while(!(--x));

}

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

A.1B.20C.1-4D.死循環(huán)

77.有三個關系R、S和T如下:

則由關系R和S得到關系T的操作是()。

A.自然連接B.交C.投影D.并

78.有以下程序:

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

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

79.

80.

五、程序改錯題(1題)81.下列給定程序是建立一個帶頭結(jié)點的單向鏈表,并用隨機函數(shù)為各結(jié)點數(shù)據(jù)域賦值。函數(shù)proc()的作用是求出單向鏈表結(jié)點(不包括頭結(jié)點)數(shù)據(jù)域中的最大值,并且作為函數(shù)值返回。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。 例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。 注意:部分源程序給出如下。 請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。 試題程序: #include<stdio.h=:{> #include<conio.h> woidproc(char*str) { } voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

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

2.D解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)不一定是一一對應的。選項A中的說法是錯誤的。雖然計算機的存儲空間是向量式的存儲結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),例如,線性鏈表是線性表的鏈式存儲結(jié)構(gòu)。一般來說,性表的鏈式存儲結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲序號是不連續(xù)的,并且各結(jié)點在存儲空間中的位置關系與邏輯關系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關系是由各結(jié)點的指針域來指示的。因此,數(shù)據(jù)的存儲結(jié)構(gòu)不一定是線性結(jié)構(gòu)。選項B中的說法也是錯誤的。雖然程序設計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性結(jié)構(gòu),但對于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進行順序存儲,即利用程序設計語言中的數(shù)組來存儲,這樣,不僅節(jié)省了存儲空間,又能方便地確定每一個結(jié)點的父結(jié)點與左右子結(jié)點的位置。對于一般的二叉樹來說,也可以將二叉樹中每一個結(jié)點的左指針、右指針以及數(shù)據(jù)域分別用三個數(shù)組中的對應元素來存儲,即實際上也是利用了程序設計語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。選項C中的說法也是錯誤的。綜上所述,選項A、B與C中的說法都是錯誤的。

3.C

4.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項B、C、D錯誤,選項A正確。故本題答案為A選項。

5.C解析:該題考查的是實體間的聯(lián)系。多對多聯(lián)系(m:n):如果對于實體集A中的每個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每個實體,實體集A中有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體集B之間是多對多聯(lián)系,記作m:n。一對一聯(lián)系(1:1):如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之有聯(lián)系,反之亦然,則稱實體集A與實體集B之間是一對一聯(lián)系,記作1:1。一對多聯(lián)系(1:n):如果對于實體集A中每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B之間是一對多聯(lián)系,記作1:n。那么根據(jù)題意可知是多對一聯(lián)系。所以選項C是正確的。

6.B

7.A在一個函數(shù)內(nèi)的復合語句中定義的變量在本復合語句塊范圍內(nèi)有效,選項A錯誤,其他選項正確。本題答案為A選項。

8.C

9.C解析:在關系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關系。關系的列稱為屬性,一個具有N個屬性的關系稱為N元關系。注意:各種關系查詢語言與過程性語言和非過程性語言的關系,過程性語言的特點。

10.A

11.BA選項中不能將變量Y賦給表達式,c選項中錯誤與A選項一樣,D選項中強制類型轉(zhuǎn)換表達式應寫成(doub1e)x/10。

12.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關系,所以在寫成C語言表達式應是邏輯或的關系,邏輯或運算符是'‖'。

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

①定義結(jié)構(gòu)體類型的同時,定義結(jié)構(gòu)體類型的變量,如:

stractaa

{…}tdl;

選項B)中將宏名AA用宏體structaa替換后,與該定義形式一樣,因此是正確的。在這一定義形式中,結(jié)構(gòu)體類型名aa是可以省略的,因此,D)項也是正確的。

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

structaa

{…};

strnctaatdl;

這種定義形式也可演變?yōu)椋合扔妙愋投x語句typedef將該結(jié)構(gòu)體類型定義成一個類型名AA,然后直接用該類型名AA定義一個結(jié)構(gòu)體變量(這時不再需要使用關鍵字struct)。因此選項A)正確。

14.A

15.D

16.A需求分析是軟件開發(fā)之前必須要做的準備工作之一。需求是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。故需求分析的主要任務是確定軟件系統(tǒng)的功能。本題答案為A選項。

17.Cmain函數(shù)定義一個二維字符數(shù)組str,它包含3個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針變量P指向str[0],即第1個字符串“One”。由于“One”存放在長度為10的一維數(shù)組中,因此P+10指向下一個字符串“Three”,長度為5。故本題答案為C選項。

18.D

19.B解析:scanf函數(shù)中的“格式控制”后面應當是地址,而不是變量名。對于變量,通過地址運算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。

20.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。

21.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

22.5555解析:本題考查的重點是對宏定義的理解。#define指令定義一個標識符和一個串,編譯程序在對C源程序處理時.發(fā)現(xiàn)該標識符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。

23.00解析:/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點型相乘,要轉(zhuǎn)化為浮點型,所以結(jié)果為0.000000。注意:在一個運算符的兩邊如果一個是字符型,一個是整型,則把字符型轉(zhuǎn)換為整型之后再進行運算。

24.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。

25.x>yz>u

26.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和邏輯獨立性。物理獨立性是指用戶的應用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中怎樣存儲是由DBMS管理的,用戶程序不需要了解,應用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當數(shù)據(jù)的物理存儲改變時。應用程序不用改變。邏輯獨立性是指用戶的應用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。

27.本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。\r\n\r\n

28.66解析:本題中i循環(huán)執(zhí)行4次,當i=1時,j循環(huán)執(zhí)行0次;當i=2時,j循環(huán)執(zhí)行1次;當i=3時,j循環(huán)執(zhí)行2次;當i=4時,j循環(huán)執(zhí)行3次,所以輸出#號的個數(shù)是0+1+2+3=6。

29.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。

30.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

31.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進來。

32.j<ia[i][j]=a[j][i]j<ia[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉(zhuǎn)置,即讓數(shù)組中行上的元素變成對應列上的元素。即把對角線兩邊的元素對換,所以本題的第一個空格處應該填寫1<i,第二個空格處填寫交換對角線兩邊的元素的語句a[i][j]=a[j][i]。

33.abcabc解析:字符串的結(jié)束標記'\\0',當輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

34.數(shù)據(jù)字典數(shù)據(jù)字典解析:在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為數(shù)據(jù)字典。

35.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

36.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

37.概念(或概念級)概念(或概念級)

38.此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以返回值a+4=6+4=10。

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

40.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。

41.C解析:C語言的程序是由主函數(shù)main()開始運行,由主函數(shù)來調(diào)用其他函數(shù),函數(shù)必須是并列的,定義后使用,不能在一個函數(shù)中定義其他函數(shù),main()函數(shù)不一定要放在程序的開始部分,故選C。

42.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。

43.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結(jié)點。對于滿二叉樹,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點在第5層上,即其結(jié)點數(shù)為2(k-1)=2(5-1)=16。

44.C

45.D解析:函數(shù)sub1給全局作用范圍內(nèi)數(shù)組a(長度為10)的每個元素賦值,函數(shù)sub2中數(shù)組a僅在本函數(shù)范圍內(nèi)有效,長度也是10,但僅給前5個元素賦值,main函數(shù)調(diào)用sub3時,傳遞數(shù)組地址均是全局作用范圍內(nèi)數(shù)組a的地址,因此兩次調(diào)用打印的結(jié)果相同。

46.B解析:算術運算符的運算規(guī)則是:從右到左的原則。所以表達式中先計算a=a-a*(上標)a的值是-90,再計算a=a+a的值是-180。

47.D

48.A白盒測試是把測試對象看作是一個打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及相關信息來設計或選擇測試用例,對程序所有的邏輯路徑進行測試。所以,白盒測試的對象基本上是源程序,以程序的內(nèi)

【知識拓展】軟件測試按照功能劃分可以分成白盒(白箱)測試和黑盒(黑箱)測試。其中黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進行測試和驗證。

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

50.A解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用static來聲明—個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第—個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結(jié)束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。

51.A解析:條件表達式的形式如下:表達式1?表達式2:表達式3,所以本題條件表達式a<b?a:c<d?c:d應該理解為a<b?a:(c<d?c:d),首先求出條件表達式c<d?c:d的值等于2,再求條件表達式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達式的值等于1。

52.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。

53.B解析:C語言中字符串是以'0'字符結(jié)束的,且strlen()函數(shù)計算的是'0'字符前的所有字符的個數(shù)。本題中strlen(st)應為5。數(shù)組定義以后系統(tǒng)就為其分配相應大小的內(nèi)存空間,而不論其中有投有內(nèi)容。sizeof()函數(shù)是計算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。

54.B解析:一個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數(shù)。

55.A

56.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。

\n

57.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。

58.A解析:本題涉及字符數(shù)組和指針兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上'\\0',所以題中數(shù)組str有11個元素;②ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。

59.B解析:在一維數(shù)組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

60.B解析:在main函數(shù)中,對f(1)和f(2)的值進行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值為1+2=3

61.C

62.A執(zhí)行x=x-=x-x語句可寫成x=x-(x-x),可看出結(jié)果為10,故八選項正確。

63.CC語言規(guī)定,一個函數(shù)中調(diào)用另一個函數(shù)(即被調(diào)用函數(shù))需要具備的條件有:

①被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù)(是庫函數(shù)或用戶自己定義的函數(shù))。

②如果使用庫函數(shù),一般還應該在本文件開頭用#include命令將函數(shù)調(diào)用有關庫函數(shù)時所需要的信息“包含”到本文件中。

③如果使用自定義函數(shù),而且該函數(shù)與調(diào)用它的函數(shù)在同一個文件中,一般還應該在主調(diào)函數(shù)中對被調(diào)用的函數(shù)做聲明,即向編譯系統(tǒng)聲明將要調(diào)用此函數(shù),并將有關信息通知編譯系統(tǒng)。

在本題中,選項C是不正確的,從程序中我們可以看出,首先在主函數(shù)前面聲明了函數(shù)f,按照函數(shù)調(diào)用的規(guī)則,主函數(shù)可以調(diào)用該函數(shù)了,但在主函數(shù)中又重復聲明了該函數(shù),其聲明的形式完全一樣,雖然重復了操作,但編譯時系統(tǒng)不會報錯,仍屬于合理操作。

64.BB選項輸出的格式為%d,即為整型格式,所以輸出字符A的ASCI1碼值65,而不是字符A。由于大寫字母比與其對應的小寫字母的ASCI1碼值小32,所以A正確。字符A的ASCI1碼值就是65,所以以%C格式輸出可以輸出字符A,所以c正確。由于字符A的ASCI1碼值比字符B的小1,所以D正確。

65.B

66.D結(jié)構(gòu)化程序設計由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設計為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,這樣使完成每一個模塊的工作變得單純而明確,為設計一些較大的軟件打下了良好的基礎。

由于模塊相互獨立,因此,在設計其中一個模塊時,不會受到其他模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。模塊的獨立性還為擴充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因為可以充分利用現(xiàn)有的模塊作為積木式的擴展。

溫馨提示

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

評論

0/150

提交評論