2022-2023年江西省宜春市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2022-2023年江西省宜春市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2022-2023年江西省宜春市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2022-2023年江西省宜春市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2022-2023年江西省宜春市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年江西省宜春市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

2.若已知一個棧的進棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。

A.IB.n-iC.n-i+1D.不確定

3.若已知一個棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

A.nB.n-iC.n-i+1D.不確定

4.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為abcdefghi

B.s1的內(nèi)容更新為defghi\0

C.s1的內(nèi)容更新為defghiabc\0

D.s1的內(nèi)容更新為abcdefghi\0

5.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

6.以下說法中正確的是()。

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

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

C.C函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關系的所有函數(shù)必須放在同一個程序文件中

7.設有定義“intm=1,n=2;”,則以下if語句中,編譯時會產(chǎn)生錯誤信息的是()。

A.if(m>n)m--elsen--;

B.if(m=n){m++;n++;}

C.if(m<0&&n<0){}

D.if(m>0);elsem++;

8.有以下程序:#include<stdio.h>voidf1(char*a,charb){charc;c=*a;*a=b;b=c;}voidf2(chara,charb){charc;c=a;a=b;b=c;}voidf3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chart1,t2;t1=‘A’;t2=‘B’;f3(&t1,&t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f2(t1,t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f1(&t1,t2);putchar(t1);putchar(t2);printf(“\n”);}程序運行后的輸出結(jié)果是()。

A.ABBABBB.BAABBBC.BABABAD.BABAAB

9.若有定義“inta,b,c;”,想通過語句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

10.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

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

A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10

12.有以下程序:#include<stdio.h>main{inta=1,b=2;while(a<6){b+=a;a4+=2;b%=10;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.5,11B.7,1C.7,11D.6,1

13.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

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

14.棧和隊列的共同點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點

15.

16.在銀行業(yè)務中,實體客戶和實體銀行之間的聯(lián)系是()。

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

17.在KMP算法中,已知模式串為ADABCADADA,請寫出模式串的next數(shù)組值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

18.以下不構(gòu)成無限循環(huán)的語句或語句組的是()。

A.n=0;do{++n;}while(n<=0);

B.n=0;while(1){n++;}

C.n=10;while(n);{n--;}

D.for(n=0,i=1;i++)n+=i;

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

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

20.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

二、2.填空題(20題)21.數(shù)據(jù)庫恢復是將數(shù)據(jù)庫從______狀態(tài)恢復到某一已知的正確狀態(tài)。

22.在算法正確的前提下,評價一個算法好壞的2個因素是時間復雜度和【】復雜度。

23.與結(jié)構(gòu)化需求分析方法相對應的是【】方法。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

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

}

25.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。

26.數(shù)據(jù)流的類型有______和事務型。

27.以下程序的功能是建立—個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的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(struct

28.有以下程序段:

inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是【】。

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

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

30.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。

31.下面程序的運行結(jié)果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

32.一個項目具有一個項目經(jīng)理,一個項目經(jīng)理可管理多個項目,則實體“項目經(jīng)理”與實體“項目”的聯(lián)系屬于()的聯(lián)系。

33.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復。

34.以下程序的運行結(jié)果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno);

floatscore

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90}

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

36.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于【】。

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

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

x=11/3;y=5;

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

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

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

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

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

}

三、1.選擇題(20題)41.以下合法的賦值語句是______。

A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)

42.有以下程序structSTU{charnum[10];floatscore[3];};main(){stmctSTUs[3]={{“20021”,90,95,85},{“20022”,95,80,75},{“20023”,100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);}程序運行后的輸出結(jié)果是

A.260B.270C.280D.285

43.以下有4組用戶標識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

44.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建的是

A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

45.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,↓,則上面程序的輸出絡果是_______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

46.若有說明語句:inta,b,c,*d=&c:,則能正確從鍵盤讀入三個整數(shù)分別賦給變量a、b、c的語句是

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

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

C.scanf("%d%d%d",a,b,D)

D.scanf("%d%d%d",a,b,*D)

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

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

48.下列關于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

49.當執(zhí)行下面的語句后,表達式++x>b?x:b-->++x?++b:x的值為()intx=5,b=5;

A.5B.25C.6D.10

50.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運行后的輸出結(jié)果是

A.9,9B.8,9C.1,8D.9,8

51.閱讀下列程序,當運行函數(shù)時,輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;clrscr();printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s\n",str);}

A.asdafaaz67B.asdafaaz67C.asdD.z67

52.下列哪個是面向?qū)ο蟪绦蛟O計不同于其他語言的主要特點?

A.繼承性B.消息傳遞C.多態(tài)性D.靜態(tài)聯(lián)編

53.設有以下語句,其中不是對a數(shù)組元素的正確引用的是:______(其中O≤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))

54.已知字母A的ASCⅡ代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是______。

A.kk>='A'&&kk<='Z'

B.!(kk>='A'‖kk<='Z')

C.(kk+32)>='a'&&(kk+32)<='z'

D.isalpha(kk)&&(kk<91)

55.下列隊列的描述中,正確的是()

A.隊列屬于非線性表B.隊列在隊尾刪除數(shù)據(jù)C.隊列按“先進后出”進行數(shù)據(jù)操作D.隊列按“先進先出”進行數(shù)據(jù)操作

56.具有3個結(jié)點的二叉樹有

A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)

57.若在某函數(shù)內(nèi)部有定義:inta[3][4];則數(shù)組a中各元素()。

A.可在程序的運行階段得到初值0

B.可在程序的編譯階段得到初值0

C.不能得到確定的初值

D.可在程序的編譯或運行階段得到初值0

58.以下合法的字符型常量是

A.'\x13'B.'\081'C.'65'D.\n

59.下列程序的輸出結(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

60.若有以下結(jié)構(gòu)體,則正確的定義或引用是()。structTest{intx;inty;}v1;

A.Test.x=10;

B.Testv2;v2.x=10;

C.structTestv2;v2.x=10;

D.structTest.v2=10;

四、選擇題(20題)61.下面屬于黑盒測試方法的是()。

A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋

62.

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

A.順序存儲的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表

64.

65.若有定義語句:

66.有以下程序:

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

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

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

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

68.有以下程序:

程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()。

A.不等于10的整數(shù)

B.大于3且不等于l0的整數(shù)

C.大于3或等于l0的整數(shù)

D.小于3的整數(shù)

69.若有以下定義和語句:

則輸出結(jié)果是()。

A.107B.105C.55D.58

70.

則下面對m數(shù)組元素的引用中錯誤的是()。

A.

B.

C.

D.

71.

72.

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

voidfun(int*X,inty)

{printf("%d%d",*x,*y);*x=3;*y=1;}

main

{intx=1,y=2;

fun(&y,&x);

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

}

A.2143B.1212C.1234D.2112

73.

74.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

75.有以下程序:

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

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

76.

77.若有以下語句:typedefstructS{int9;charh;}T;以下敘述中正確的是()。

A.可用s定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

78.有以下程序

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

}

若運行時給變量x輸入12,則以下程序的運行結(jié)果是

A.0B.22

C.12D.10

79.

80.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型參數(shù)m,計算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,則應輸出0.000162。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中除下標為偶數(shù)、同時ASCⅡ碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFG12345,其中字符8的ASCⅡ碼值為偶數(shù),所在元素的下標為奇數(shù),因此必須刪除;而字符A的ASCⅡ碼值為奇數(shù),所在數(shù)組中的下標為偶數(shù),因此不應當刪除。依次類推,最后t所指的數(shù)組中的內(nèi)容應是ACEG。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所寫的若干語句。試題程序:

參考答案

1.D

2.C

3.D

4.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。

5.B本題考查指針函數(shù)。其定義的基本格式為:類型說明符(*函數(shù)名)?!邦愋驼f明符”表示返回的指針值指向的數(shù)據(jù)類型。

6.B解析:C++程序總是從main函數(shù)開始執(zhí)行。

7.A選項A中,if語句的語句塊“m--”后面少了分號,不合法,編譯會出錯。其他選項都是正確的。故本題答案為A選項。

8.B函數(shù)f1(*a,b),*a為地址傳遞,b為值傳遞,將b值傳給*a,則f1(&t1,t2)調(diào)用后輸出t1、t2為BB。f2(a,b)為值傳遞,傳入的只是a、b的值,不實現(xiàn)交換,則f2(t1,t2)調(diào)用后輸出t1、t2為AB。f3(*a,*b)為地址傳遞,可以實現(xiàn)a、b值的交換,則f3(&t1,&t2)調(diào)用后輸出t1、t2為BA。因此結(jié)果為BAABBB。故本題答案為B選項。

9.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個%d與第2個%d之間有一個逗號。所以輸入的第1個整數(shù)和第2個整數(shù)之間必須要有一個逗號,選項C、D錯誤;輸入的第2個整數(shù)和第3個整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項。

10.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應二進制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進制為00000010,a=1的二進制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進制后為3,b=b^a=00000010^00000011=00000001,即1。

11.B不能將變量賦給表達式,故A、C選項錯誤。D選項中強制類型轉(zhuǎn)換表達式應寫成“(double)x/10”。故本題答案為B選項。

12.B“b+=a;”等價于“b=b+a;”,“a+=2;”等價于“a=a±2;”,“bA=10;”等價于“b=b%=10;”。循環(huán)體執(zhí)行3次,最終結(jié)果為7,1。

13.C

14.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。

15.A

16.D一個客戶可以在多家銀行辦理業(yè)務,一家銀行也有多個客戶辦理業(yè)務,因此,實體客戶和實體銀行之間的聯(lián)系是多對多。本題選擇D選項。

17.A

18.AA選項中do后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B選項中條件while(1)永遠成立,所以是死循環(huán);C選項中n的值為10,而循環(huán)體為空語句,所以while(n)永遠為真,進入死循環(huán);D選項中for語句第2個表達式為空,所以沒有判斷條件,進入死循環(huán)。故本題答案為A選項。

19.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。

20.D調(diào)用缸函數(shù)后,實參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項正確。

21.錯誤。錯誤。解析:數(shù)據(jù)庫恢復是將數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)中恢復到某種邏輯一致的狀態(tài)。如果數(shù)據(jù)庫中包含成功事務提交的結(jié)果,則稱數(shù)據(jù)庫處于一致性狀態(tài)。

22.空間空間

23.結(jié)構(gòu)化設計結(jié)構(gòu)化設計解析:與結(jié)構(gòu)化需求分析方法相對應的是結(jié)構(gòu)化設計方法。結(jié)構(gòu)化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。

24.4040解析:本題中指針s1和s2都指向同一個內(nèi)存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。

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

\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;’僅AB,是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

26.變換型變換型

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

28.99解析:p是一個指針變量,指向數(shù)組a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。

29.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

30.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。

31.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達式,條件表達式和修正表達式都省略了,表示進行for循環(huán)和for循環(huán)的終止都沒有限制。

32.一對多一對多解析:實體之間的對應關系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應相關聯(lián):一對多聯(lián)系表現(xiàn)為某一實體與相關多個實體相關聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關多個實體相聯(lián)系。所以實體“項目經(jīng)理”與實體“項目”的聯(lián)系屬于一對多的聯(lián)系。

33.完整性控制完整性控制

34.2002shangxian2002shangxian解析:\'B\'的ASCII值是66。本題中指針變量p指向d,執(zhí)行第一個if語句時,條件成立,d=b;執(zhí)行第二個if語句時,條件不成立,故d=b,所以d.sno=2002,p->name'Shangxian'。

35.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。

36.一對多一對多解析:由于一個項目主管可以管理多個項目,而一個項目只能有一個項目主管,“項目主管”這個實體與“項目”這個實體的管理關系屬于一對多。

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

38.%d%3

39.概念(或概念級)概念(或概念級)

40.5555解析:宏替換不是函數(shù)調(diào)用,所以不能因為M被定義為5,而N被定義為M+M而武斷地認為N的值就是5+5=10。宏替換就是簡單的字符串替換,以本題為例:因為N被定義為M+M,所以k=N*N*5;語句展開后為k=M+M*M+M*5;。又因為M被定義為5,所以再展開后為k=5+5*5+5*5;?,F(xiàn)在不難計算出,這個表達式的結(jié)果為k=55。故最終輸出結(jié)果是55。

41.B解析:本題中的答案A與D都缺少“;”,而答案C中,表達式是不能獨立成為語句的,答案B使用了C語言的自減運算符它就相當于D=D-1,所以答案B為一賦值語句。

42.B解析:程序中首先定義了一個結(jié)構(gòu)體,其成員為一字符數(shù)組和一浮點型數(shù)組。在main()首先定義了一個結(jié)構(gòu)體數(shù)組并初始化。接下來在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組中的第一個元素中數(shù)組成員即{20021“,90,95,85”}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。

43.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。

44.A解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)定義語言負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。

45.C解析:scanf()把用戶從鍵盤錄入的數(shù)字第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.0000000。

46.A解析:本題考核的知識點是scanf()函數(shù)的使用。seanf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸入格式字符串,第二個參數(shù)是輸入變量地址列表.輸入格式字符串主要由“%”符號和格式字符組成。地址列表是由多個地址組成的。選項B中d已經(jīng)為地址,不應在加上求地址符號“&”,故選項B不正確;選項C中,a和b都為變量不是地址,應該在a和b之前加上求地址符號“&”,故選項C不正確;選項D中指針d所指向的存儲空間的位置為變量c的值,不為地址,故選項D不正確,所以,4個選項中A為所選。

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

48.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯Γ部梢圆捎面準酱鎯?。

49.B

50.D解析:本題考查了求數(shù)據(jù)類型長度的運算符sizeof和求字符串長度的函數(shù)strlen的區(qū)別。strlen計算的是一個字符串的實際字符個數(shù),如果字符串放在字符數(shù)組中,則函數(shù)strlen的值為'\\0'之前的全部字符個數(shù)。而sizeof求出的是數(shù)據(jù)占據(jù)存儲空間的字節(jié)數(shù),當然也要包括字符串的結(jié)束標志符'\\0'。

51.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個空格),則將其保存str[j]中。注意j的下標變化、初值及最后加串結(jié)束符'\\0'。

52.A解析:繼承是一個子類直接使用父類的所有屬性和方法。它可以減少相似的類的重復說明,從而體現(xiàn)出一般性與特殊性的原則,這使得面向?qū)ο蟪绦蛟O計語言有了良好的重用性,也是其不同于其他語言的主要特點。故答案為A。

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

54.B解析:本題主要考查邏輯運算。對于正確判斷kk為大寫字母的表達式,當表達式為真時kk為大寫字母。大寫字母的ASCII代碼值在65~90之間,對應的小寫字母的ASCII代碼值在97~122之間,因此選項A、C都是正確的表達式。選項D中isalpha(kk)用于判斷kk是否是字母,ASCII代碼值小于91的字母為大寫字母,因此選項D是正確的表達式。選項B中的表達式可以轉(zhuǎn)換為kk<‘A’&&.kk>‘Z’,無法判斷kk中的值是否為大寫字母。

55.DD)【解析】隊列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭,允許插入的一端叫做隊尾。隊列的操作數(shù)是依據(jù)先進先出的原則進行的。因此隊列亦稱作先進先出的線性表,或后進后出的線性表。

56.D解析:因為二叉樹有左、右子樹之分,所以有3個結(jié)點的二叉樹具有5種不同的形態(tài)。

57.C解析:在函數(shù)內(nèi)部定義的存儲類型為auto的變量或數(shù)組,如果沒有進行初始化,就不能得到確定值。

58.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd'表示1到3位8進制數(shù)所代表的字符;形式“\\xhh'表示1到2位16進制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個字符常量;\'\\081\'用8進制數(shù)所代表的字符,但形式不正確,因為8進制數(shù)所代表的字符中不會出現(xiàn)數(shù)字“8”;\'5\'不是一個字符,而是一個十進制數(shù)字;\'\\n\'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。

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

在函數(shù)遞歸調(diào)用時,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,最后的計算結(jié)果為2。

60.C解析:定義結(jié)構(gòu)體類型的變量的方式有:①緊跟在結(jié)構(gòu)體類型說明之后進行定義,如題目中給出的;②在說明對結(jié)構(gòu)成員的引用形式為

結(jié)構(gòu)體變量名.成員名

選項A對結(jié)構(gòu)成員的引用的形式是錯誤的,Test是結(jié)構(gòu)體名,不能用來引用結(jié)構(gòu)成員。選項B中定義結(jié)構(gòu)體類型的變量的形式是錯誤的,Test是結(jié)構(gòu)體名,不能用宋定義結(jié)構(gòu)體類型的變量。選項D中對結(jié)構(gòu)成員的引用的形式是錯誤的,對結(jié)構(gòu)成員的引用的形式為:結(jié)構(gòu)體變量名.成員名。4個選項中只有選項C是正確的定義或引用。

61.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗證。

62.B

63.A\r\n二分法又叫折半(對分)查找法,只適合于順序存儲的有序表(是指線性表中的元素按值非遞減排列)。二分法的基本思想是:設有序線性表的長度為n,被查元素為X,則二分查找的方法如下:

將X與線性表的中間項進行比較:若中間項的值等于x,則說明找到,查找結(jié)束;若x小于中間項的值,則在線性表的前半部分(即中間項以前的部分)以相同的方法進行查找;若X大于中間項的值,則在線性表的后半部分(即中間項以后的部分)以相同的方法進行查找、這個過程-直進行到查找成功或于表長度為0,(說明線性表中沒有這個元素為止)順序存儲的線性袁在計算機中-般用一個-維數(shù)組來表示,在數(shù)組中我們可以通過數(shù)組名和下標來對數(shù)組中的任意一個元素進行訪問,而在鏈表(不管是有序還是無序)中,要對元素進行訪問必須從表頭結(jié)點開始,順著鏈條一個一個結(jié)點進行搜索,因此選項A正確

64.D

65.Ab=4不能作為左值,所以本題答案為A)。

66.A本愿考查位運算符以及相關運算,‘為按位或,&為按位與,部么a"b為3,再與c按位與仍然為3,所以答案為A選項。

67.A每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時t=t+b[o][b[o][0]]=1+h[0][O]-1+0=1;第二次外循環(huán)時t=t“[l][b[1][1]]-1+b[1][l]-1+1=2

溫馨提示

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

評論

0/150

提交評論