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

下載本文檔

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

文檔簡介

2022-2023年江西省鷹潭市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()

A.希爾排序B.堆排序C.冒泡排序D.快速排序

3.下列關于棧的描述中錯誤的是()。

A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

4.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

5.fgetc函數(shù)的作用是從指定文件讀入—個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

6.有3個關系R、S和T如下.

則由關系R和S得到關系T的操作是()。A.自然連接B.差C.交D.并

7.若有語句“typedefstructS{intg;charh;}T;”,則下列敘述中正確的是()。

A.可用S定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量

8.在一個有向圖中,所有頂點的入度之和等于所有頂點的出度之和的()倍。A.A.1/2B.1C.2D.4

9.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦值40000的正確語句是()

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

10.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

11.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)

12.結構化程序設計方法的3種基本控制結構中不包括

A.循環(huán)結構B.遞歸結構C.順序結構D.選擇結構

13.下面程序的輸出結果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

14.下列語句組中正確的是()。

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

B.char*s;s=“BOOK!”;

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

D.chars[];s=“BOOK!”;

15.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結果是()。A.503B.401C.500D.1404

16.已知各變量的類型說明如下則以下不符合C語言語法的表達式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

17.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

18.有以下程序#include<stdio.h>main(){charcl,c2;c1=A+8-4c2=A+8-5;printf("%C,%d\n",cl,c2);}已知字母A的ASCIl碼為65,程序運行后的輸出結果是()。A.E,69B.D,69C.E,DD.輸出無定值

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

A.C程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數(shù)的運算

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

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

二、2.填空題(20題)21.已知a=1,b=2,則表達式(a&B)&b||b的結果為()。

22.以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

23.若有語句:

inti=-19,j=i%4;

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

則輸出結果是【】。

24.下列程序的輸出結果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

for(y=0;y<3;y++)

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

25.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。

26.下面程序的輸出結果是【】。

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH”);

strcpy(&b[2],"GH");

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

}

27.關系表達式x<y<z,用C語言的表達式為【】。

28.設有下列的程序段:

charstr[]="Hello";

char*ptr;

ptr=-str;

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

29.問題處理方案的正確而完整的描述稱為______。

30.如果一個工人可管理多個設施,而一個設施只可被一個工人管理,則實體“工人”與實體“設備”之間存在【】聯(lián)系。

31.若a=1,b=2,c=3,d=4;則條件表達式a>b?a:c<d?c:d的結果為()。

32.執(zhí)行以下for語句后,變量i的值是【】。

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

33.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);[];}

while(n!=0);

printf("\n');

}

34.下面程序的功能是將一個字符串str的內容顛倒過來,請?zhí)羁铡?/p>

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

{k=str[i];str[i]=str[i];str[j]=k;}

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

35.關系模型的數(shù)據(jù)操縱即是建立在關系上的數(shù)據(jù)操縱,一般有______、增加、刪除和修改四種操作。

36.在數(shù)據(jù)的存儲結構中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

37.以下程序的輸出結果是【】。

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}

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

39.以下程序運行后的輸出結果是【】。

#include<stdio.h>

main()

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

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b+*;break;

}

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

}

40.以下程序運行后的輸出結果是______。

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

三、1.選擇題(20題)41.設有如下定義structss{charname[10];intage;charsex;}std[3],*p=std;下面各輸入語句中錯誤的是A.scanf("%d",&(*p).age);

B.scanf("%s",&);

C.scanf("%c",&std[0].sex);

D.scanf("%c",&(p->sex));

42.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

43.C語言中while和do-while循環(huán)的主要區(qū)別是

A.do-while的循環(huán)體至少無條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件更嚴格

C.do-while允許從外部轉到循環(huán)體內

D.do-while的循環(huán)體不能是復合語句

44.若有定義:“inta[2Ⅶ3];”則對a數(shù)組的第i行第j列元素的正確引用為()

A.**(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

45.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結果是

A.1267B.1256C.1278D.1245

46.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

47.下列程序的輸出結果是()。#include<stdio.h>main(){chara[]={'a','b','c','d','e','f,'\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d",i,j);}

A.7,7B.7,6C.6,6D.6,7

48.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}該程序的執(zhí)行結果是______。

A.6B.3C.死循環(huán)D.0

49.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)

50.以下選項中不屬于字符常量的是

A.′C′B.′′C′′C.′\xCC′D.′\072′

51.設有以下定義和語句,輸出的結果是(用small模式編譯,指針變量占2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

A.20B.16C.14D.12

52.下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

53.有以下程序main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0case3:a+=2;case1;case2;a+=3;default,a+=5;}}printf("%d\n",a);}

A.31B.13C.10D.20

54.已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______.

A.cedbaB.acbedC.decabD.deabc

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

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

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

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

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

A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲在其他元素的前面

C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面

D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的

58.C語言結構體類型變量在程序運行期間

A.TC環(huán)境在內存中僅僅開辟一個存放結構體變量地址的單元

B.所有的成員一直駐留在內存中

C.只有最開始的成員駐留在內存中

D.部分成員駐留在內存中

59.數(shù)據(jù)的存儲結構是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結構在計算機的存放形式

C.數(shù)據(jù)在計算機中的順序存儲方式

D.存儲在計算機外存中的數(shù)據(jù)

60.設有如下關系表:

則下列操作正確的是()。

A.T=R/SB.T=R×SC.T=R∩SD.T=R∪S

四、選擇題(20題)61.有以下程序程序運行后的輸出結果是()。

A.1,2,3.4,5,6,7,8,9,10,

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

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

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

62.

63.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

64.有以下程序:

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

65.

有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

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

}

程序執(zhí)行后的輸出結果是()。

A.123,abeB.abc.123C.1bc,a23D.321,cba

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

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內和switch語句體內

D.在循環(huán)體內使用break語句和continue語句的作用相同

67.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

則執(zhí)行后輸出的結果為A.A.heB.andC.youD.tomeetme

68.對線性表進行二分法檢索,其前提條件是()。A.A.線性表以順序方式存儲,并按關鍵碼值排好序B.線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關鍵碼值排好序

D.線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序

69.

若有定義和語句:

int**pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);

則輸出結果是()。

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

70.下面程序的輸出結果是()。

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

71.

72.c語言規(guī)定,在一個源程序中,main函數(shù)的位置()。

A.必須在最開始B.必須在系統(tǒng)調用的庫函數(shù)的后面C.可以任意D.必須在最后

73.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結構與物理存取方法的是()。

A.外模式B.內模式C.概念模式D.邏輯模式

74.

75.軟件設計中,有利于提高模塊獨立性的一個準則是______。A.低內聚低耦合B.低內聚高耦合C.高內聚低耦合D.高內聚高耦合

76.若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是

77.有以下程序段:

以下選項中表達式的值為11的是()。

A.++pt一>xB.pt一>xC.*pt一>yD.(pt++)一>x

78.

79.有以下程序:

#definef(x)(x*x)main

{

inti1,i2;

i1=f(8)/(4);i2=f(4+4)/f(2+2);

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

}

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

A.64,28B.4,4C.4,3D.64,64

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.下列程序定義了MM的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)proc(inta[][M]),該函數(shù)的功能是:使數(shù)組左下半三角元素中的值全部置成0。例如,a數(shù)組中的值為:

注意:部分源程序給出如下。

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

試題程序:

參考答案

1.B本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時的結束標志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。

2.D

3.B

\n棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,因此具有記憶作用,??梢圆捎庙樞虼鎯?,也可以采用鏈式存儲。

\n

4.A字符常量是使用單引號標注的單個字符,選項A錯誤;選項B屬于浮點數(shù)常量,正確;選項C屬于轉義字符常量,正確;選項D屬于轉義字符,代表八進制數(shù)011的ASCII值的字符,正確。本題答案為A選項。

5.D解析:fgetc函數(shù)是指從指定的文件讀入—個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調用形式為:ch=fgetc(fp);。

6.B關系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。

7.BT為結構體類型名,可以用來定義結構體變量。故本題答案為B選項。

8.B

9.D

10.A

11.A

12.B解析:本題考查了程序的基本結構。程序由一些基本結構組成。任何一個大型的程序都由3種基本結構組成,由這些基本結構順序的構成了一個結構化的程序。這3種基本結構為:順序結構、選擇結構和循環(huán)結構。

13.B解析:指針變量p指向數(shù)組a的第5個元素,p[3]在原指向基礎上移3個單位,指針變量p將指向第8個元素(下標為7的元素),值為7。

14.BA選項去掉花括號后,賦值正確;C選項和D選項應在定義時賦初值,因為數(shù)組名相當于常量,不能重新賦值。故本題答案為B選項。

15.A此題是一個簡單的函數(shù)調用,當i=0并且i<30,執(zhí)行i+=10,并且調用函數(shù)f,所以當i=0時,結果為1,當i=10時,結果為101,當i=20時,結果為401,所以a=1+101+401=503。

16.A

17.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結束。

18.A本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數(shù)字?!癆”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。

19.D解析:“%”是求余運算符,其兩側的數(shù)值只能為整型,不能用于實型數(shù)據(jù)的運算。

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

21.1

22.a[0][i]b[i][o]a[0][i]\r\nb[i][o]解析:b[i][N-1]=a[0][i]實現(xiàn)把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中。

23.-3-3解析:%運算符是求兩個數(shù)相除的余數(shù),其結果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”。

24.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結束。因此輸出z的結果為6。

25.結構結構解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結構進行測試。

26.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)組變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串,'GH',復制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為'GH';strcpy(&b[1],'GH'),是將字符串“GH'復制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為'GH'。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。

27.(x<y)&&(y<z)(x<y)&&(y<z)解析:x<y<z的意思是y大于x并且y小于z。在C語言中,表達“并且”用邏輯與運算符“&&”。

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

29.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

30.一對多或1:N實體之間的對應關系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關聯(lián)。兩個實體間的聯(lián)系可以歸結為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應相關聯(lián);一對多聯(lián)系表現(xiàn)為某一實體與相關多個實體相關聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關多個實體相關聯(lián)。

31.3

32.7

33.n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10解析:根據(jù)s=n%10可知:此操作可以將輸入的數(shù)據(jù)n的最后—位賦給s,根據(jù)題目的要求是要將輸入的數(shù)據(jù)逆序輸出,現(xiàn)在已經(jīng)將原數(shù)據(jù)的個位輸出,在其后如果執(zhí)行n/=10司將原數(shù)據(jù)的個位數(shù)去掉,滿足do....while的條件繼續(xù)s=n%10操作,此時可求出十位上的數(shù)進行輸出,繼續(xù)執(zhí)行n/=10操作,與上相同最后將百位上的數(shù)進行輸出,所以該題答案為:\u3000n/=10。

34.顛倒一個字符串中的字符,就是首尾對應的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標是它的長度減1,所以在第二個空框處應填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應在程序的變量定義部分中—起定義,所以在第—個空\r\n\r\n

35.查詢查詢

36.前后件關系前后件關系解析:在數(shù)據(jù)存儲結構中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關系,對于順序存儲的數(shù)據(jù)結構,前后件之間的關系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈式存儲來說,數(shù)據(jù)元素之間的前后件關系是通過指針來實現(xiàn)的。

37.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。

本題可按部就班地逐步運算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

38.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

39.2121解析:本題考查switch語句。首先x=1,執(zhí)行switch(y),因為y=0,所以執(zhí)行case0:a++;break;此時a=1執(zhí)行case2:a++;b++;這時a=2,b=1;最后輸出結果是21。

40.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉換為十進制的值為21,十六進制的0x25轉換為十進制的值為37,故最后的輸出結果為252137。

41.B解析:選項A中&(*p).age代表的是std[0].age的地址,是正確的,選項C也是正確的,選項D先用指針變量引用結構型的成員sex,然后取它的地址,也是正確的,選項B中的是錯誤的引用,因為std是數(shù)組名,代表的是數(shù)組的首地址,地址沒有成員name。所以B選項為所選。

42.C解析:本題考查函數(shù)調用時的參數(shù)傳遞。選項C)中第一個參數(shù)的表達式不正確,因此不能得到正確的結果。

43.A解析:while是先判斷條件再執(zhí)行語句;do-while則是先執(zhí)行依次語句再判斷條件從而決定是否繼續(xù)再執(zhí)行循環(huán)體中的語句,這正是二者主要區(qū)別。注意:3種循環(huán)結構的比較。

44.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有5種:①a[i][j];②*(a[i]+j);⑧*(*(a+i)+j);④*(a[i][j];⑤*(&a[0][0]+3*i+j)。

45.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。

46.D解析:a是一個2行3列的二維數(shù)組,行下標和列下標都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標最大值為1,列下標最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標后得a[0][0],為正確的引用。

47.B解析:sizeof()函數(shù)的功能是返回字符串所占的字節(jié)數(shù),strlen()函數(shù)的功能是返回字符串的長度,其中'\\0'是一個轉義字符,它占存儲空間,但不計入串的長度。

48.C解析:在循環(huán)過程中,i的值一直沒有被改變,所以這是一個死循環(huán)。

49.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

50.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項A)、C)和D)為正確的字符常量,而選項B)是用雙引號括起來的字符,表示一個字符串常量。

51.D解析:sizeof函數(shù)計算已知類型所占的字節(jié)數(shù)。結構體變量所占內存長度是各成員占的內存長度之和。指針變量占2個字節(jié),所以cat和*next各占2個字節(jié);double型占8個字節(jié),故too共占12個字節(jié)。

52.D解析:C語言中操作一個字符串常量的方法有:①將字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當字符串常量在表達式中出現(xiàn)時,根據(jù)數(shù)組的類型轉換規(guī)則,將其轉換成字符指針。

本題D)項中錯誤的關鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

53.A

54.A解析:由二叉樹后序遍歷序列和中序遍歷序列可以唯一確定一棵二叉樹。二叉樹BT的后序遍歷序列為dabec,故BT的根結點為c(后序遍歷序列的最后一個結點為樹的根結點):而BT的中序遍歷序列是debac,即遍歷序列中最后一個結點為根結點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT左子樹的后序遍歷序列和中序遍歷序列分別為dabe和deba,因此BT左子樹的根結點是e。再由中序遍歷序列可知其左子樹為d,右子樹為ba。因此BT的前序遍歷序列為cedba。

55.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構耦合、控制耦合、公用耦合和內容耦合。選項C),沒有這種耦合方式。

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

57.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實現(xiàn)數(shù)據(jù)元素的前后件關系。

58.B解析:結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內存單元。

59.B解析:數(shù)據(jù)的存儲結構,又稱為數(shù)據(jù)的物理結構,是數(shù)據(jù)的邏輯結構在計算機中的存放形式,數(shù)據(jù)的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。

60.C解析:T就是關系R中有的,同時S中也有的有序組(1、2、3),即交運算(∩)。

61.A本題考查的是結構體成員的引用。在主函數(shù)main中定義了一個整型變量i和一個結構體變量s。f函數(shù)中,定義了一個結構體類型的指針P,外層循環(huán)變量i表示數(shù)組的第i個元素,內層循環(huán)變量j表示數(shù)組的第i+1個元素,調用f函數(shù),通過指針變量P來引用結構體成員。執(zhí)行if語句,當P一>a[i]>P一>a[j]時進行互換,其作用就是從小到大行排序,最后將排序后的元素輸出:l,2,3,4,5,6,7,8,9,10,。

62.C

63.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

64.A外循環(huán)第一次i的值為1,內循環(huán)第一次j的初值為l,打印1*1=1;內循環(huán)第二次j的值為2,打印1$2=2;內循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內循環(huán)。外循環(huán)第二次i的值為2,內循環(huán)第一次j的初值為2,打印2*2=4;內循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內循環(huán)。外循環(huán)第三次i的值為3,內循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內循環(huán)。

65.C

\n本題考查swap函數(shù),它的作用是把x、Y所指的內容互換,其他的不變,因此當執(zhí)行完調用函數(shù)后,僅僅a與1互換,其他的沒有變。

\n

66.C解析:只能在循環(huán)體內和switch語句體內使用break語句。當break出現(xiàn)在循環(huán)體的switch語句體內時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設置break語句,滿足某種條件,則跳出本層循環(huán)體。

67.B在本題中,首先定義了兩個宏N和M,大小都為10,然后定義了一個返回指針的函數(shù)find,該函數(shù)帶有兩個形參,第一個為字符型的指針數(shù)組,第二個為整型變量,在函數(shù)體中,首先定義了一個指針變量q,并將形參中指針數(shù)組的第一個元素賦值給q,然后執(zhí)行for循環(huán),在循環(huán)體中,首先執(zhí)行條件判斷語句,其條件為strcmp(a[i],q)<0(strcmp函數(shù)的作用是比較兩字符串的大小,如果相等,則返回0值,如果參數(shù)中的第一個字符串大,則返回正值,否

溫馨提示

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

評論

0/150

提交評論