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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.以下敘述中正確的是()A.當對文件的讀(寫操作完成之后,必須將它關閉,否則可能導致數(shù)據(jù)丟失

B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個程序中當對文件進行了寫操作后,必須先關閉該文件然后再打開,才能讀到第1個數(shù)據(jù)

D.語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

2.

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

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

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

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

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

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

5.在如下結構定義中,不正確的是()。A.

B.

C.

D.

6.以下敘述中不正確的是

A.預處理命令行都必須以#號開始

B.在程序中凡是以#號開始的語句行都是預處理命令行

C.宏替換不占用運行時間,只占編譯時間

D.在以下定義是正確的:#definePI3.1415926;

7.下列關于線性鏈表的敘述中,正確的是()A.各數(shù)據(jù)結點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致

B.各數(shù)據(jù)結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)

C.進行出入與刪除時,不需要移動表中的元素

D.以上三種說法都不催

8.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。

A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度

9.

10.算法的時間復雜度取決于()

A.問題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B

11.將發(fā)送端數(shù)字脈沖信號轉換成模擬信號的過程稱為

A.鏈路傳輸B.調制C.解調D.數(shù)字信道傳輸

12.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

13.假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:

則以下選項中司將q所指結點從鏈表中刪除并釋放該結點的語句組是______。A.(*p).next=(*q).next;free(p);

B.p=q->next;free(q);

C.p=q;free(q);

D.p->next=q->next;free(q);

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

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

15.若有定義intw[3][5];,則以下不能正確表示該數(shù)組元素的表達式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)

16.由兩個棧共享一個存儲空間的好處是______。

A.減少存取時間,降低下溢發(fā)生的幾率

B.節(jié)省存儲空間,降低上溢發(fā)生的幾率

C.減少存取時間,降低上溢發(fā)生的幾率

D.節(jié)省存儲空間,降低下溢發(fā)生的幾率

17.在一個有頭結點的鏈隊列中,假設f和r分別為隊首和隊尾指針,則插入s所指的結點的運算是()。

A.f->next=s;f=s;

B.r->next=s;r=s;

C.s->next=r;r=s;

D.s->next=f;f=s;

18.若一棵二叉樹具有10個出度為2的結點,則在該二叉樹中,出度為0的結點個數(shù)是()

A.9B.11C.12D.不確定

19.

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

A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

二、2.填空題(20題)21.若有如下程序:

main()

{intx=5,y,*t;t=&x;

y=++(*t);

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

則程序執(zhí)行后的x值為【】,y的值為【】。

22.對于長度為n的順序存儲的線性表,當隨機插入和刪除—個元素時,需平均移動元素的個數(shù)為【】。

23.下列程序執(zhí)行后輸出的結果是【】。

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

24.數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。

25.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

for(i=0;i<9;i++)printf("%d",a[i]);

printf("");

}

26.有如下圖所示的雙鏈表結構,請根據(jù)圖示完成結構體的定義:

structaa

{intdata;

【】}node;

27.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

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

請?zhí)羁?,使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

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

28.下面程序的輸出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

29.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。

#include<stdio.h>

main()

{inti;

inta[5]={1,3,5,7,9};

int*num[5];

int【】;

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

num[i]=【】;

p=num+0;

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

{printf("%d%d\n",【】);

p++;

}

}

30.語句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。

31.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

32.通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。

33.請在以下程序第一行的下劃線處填寫適當內容,使程序能正確運行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

34.有以下程序

voidf(inty,int*x)

{y=y+*x;*X=*X+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

執(zhí)行后輸出結果是______。

35.實體之間的聯(lián)系可以歸結為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學校有許多學生,而一個學生只歸屬于一個學校,則實體集學校與實體集學生之間的聯(lián)系屬于【】的聯(lián)系。

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

37.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getehar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運行時輸入:12<回車>,執(zhí)行后的輸出結果是【】。

38.已知a=1,b=2,則表達式(a&B)&b||b的結果為()。

39.以下程序中給指針p分配3個double型動態(tài)內存單元,請?zhí)羁铡?/p>

#include<stdllb.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

40.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使相同的數(shù)只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)fun返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內容應該是:2345678910。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

三、1.選擇題(20題)41.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內存空間

42.為了提高測試的效率,應該()。

A.隨機選取測試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)

C.在完成編碼以后制定軟件的測試計劃

D.集中對付那些錯誤群集的程序

43.以下符合C語言語法的實型常量是

A.1.2E0.5B.3.14159EC.5.00E-03D.E15

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

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

45.以下對枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={one","two","three"};

D.enuma{"one","two","three"};

46.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結果是

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

47.下列敘述中,不符合良好程序設計風格要求的是

A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

48.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

49.以下關于C語言數(shù)據(jù)類型的敘述中正確的是()。

A.C基本數(shù)據(jù)類型包括:分為整型、實型、浮點型、字符型四種

B.實型常量的表達方式包括十進制形式、十六進制形式、二進制形式、八進制形式、指數(shù)形式

C.若要處理如“人員信息”等含有不同類型的相關數(shù)據(jù),應自定義結構體類型

D.若只處理“真”和“假”兩種邏輯值,應使用邏輯類型

50.下列程序執(zhí)行后的輸出結果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}

A.456B.258C.369D.789

51.設有以下程序段:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'),*p;p=&a[0];下面選項中,其值為6的表達式為______。

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

52.下列程序運行后,輸出結果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.1234567B.7654321C.1711717D.7177171

53.下列術語中,與數(shù)據(jù)的存儲結構有關的是______。

A.隊列B.棧C.二叉樹D.堆

54.下列說法不正確的是()。

A.C語言程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C語言程序的注釋行對程序的運行功能不起任何作用,所以注釋應該盡可能少寫

D.C語言程序的每個語句都以分號結束

55.運行下列程序,若從鍵盤輸入字母“a”,則輸出結果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

56.在數(shù)據(jù)庫的兩級映射中,從概念模式到內模式的映射一般由______實現(xiàn)。

A.數(shù)據(jù)庫系統(tǒng)B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫操作系統(tǒng)

57.若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

58.以下選項中屬于C語言的數(shù)據(jù)類型是_______。

A.復數(shù)型B.邏輯型C.雙精度型D.集合型

59.以下關于switch語句和break語句的描述中,正確的是______。

A.在switch語句中必須使用break語句

B.在switch語句中,可以根據(jù)需要使用或不使用break語句

C.break語句只能用于switch語句中

D.break語句是switch語句的一部分

60.以下數(shù)據(jù)結構中不屬于線性數(shù)據(jù)結構的是______。

A.隊列B.線性表C.二叉樹D.棧

四、選擇題(20題)61.以下關于typedef的敘述錯誤的是()。

A.用typedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代表

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性

62.右兩個關系R和S如下:

則由關系R得到關系S的操作是()。A.自然連接B.并C.選擇D.投影

63.有以下程序

#include"stdio.h"

main()

{structdate

{intnumber;

floatfenzhi;

charname;

}stu;

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

}程序的運行結果是

A.3B.5

C.7D.8

64.

65.對于一個正常運行的C程序,以下敘述中正確的是()。A.程序的執(zhí)行總是從main函數(shù)開始

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

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

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

66.有如下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intm;

m=(*a+*b)*(*a+*b);

m+=(*a-*b)*(*a-*b);

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

main()

{inta=5,b=6,*x=&a,*y=&b;

fun(x,y);}

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

A.120B.121

C.122D.123

67.有以下函數(shù):

該函數(shù)的功能是()。

A.tt-gs所指字符串的長度

B.比較兩個字符串的大小

C.計算s所指字符串占用內存字節(jié)的個數(shù)

D.將s所指字符串復制到字符串t中

68.

69.

70.

有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序()。

#include<string.h>

voidf(char*p[],intn)

{char*t;inti,j;

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

for(j=i+1;j<n;j++)

if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]

=t;}

}

main

{char*P[5]={"abe","aabdfg","abbd","dcd-

be","cd"};

f(p,5);

printf("%d\n",strlen(p[1]));

}

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

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

71.下列可用于C語言用戶標識符的一組是

A.void,define,WORDB.a3_b3,_123,Car

C.For,-abc,CaseD.2a,DO,sizeof

72.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

73.

74.已知字母A的ASCII碼為十進制的65,下面程序的輸出為()。

voidmain()

{charch1,ch2;

ch1=’A’+’5’-’3’;

ch2=’A’+6-3;

printf("%d,%c\n",ch1,ch2);

}

A.67,DB.B,CC.C,DD.不確定的值

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

A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存諸結構不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存諸結構影響數(shù)據(jù)處理的效率

76.有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",'');

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應填入的是()。A.A.i-1B.iC.i+1D.4一i

77.在結構化程序設計方法中,下面內聚性最弱的是()。

A.邏輯內聚B.時間內聚C.偶然內聚D.過程內聚

78.

79.

80.有以下程序段以下關于程序段執(zhí)行情況的敘述,正確的是()。

A.當產生的隨機數(shù)n為0時,結束程序運行

B.當產生的隨機數(shù)n為4時,結束循環(huán)操作

C.當產生的隨機數(shù)n為l和2時,不做任何操作

D.細循環(huán)語句固定執(zhí)行8次

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給定n個實數(shù),輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數(shù)個數(shù)。

例如,n=8時,輸入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值為94.566635,在平均值以上的實數(shù)個數(shù)應為4。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。

試題程序:

六、程序設計題(1題)82.編寫函數(shù)fun(),其功能是計算:

s作為函數(shù)值返回。

在C語言中可調用log(n)函數(shù)求1n(n)。log函數(shù)的引

用說明為:doublelog(doublex)。

例如,若m的值為20,則fun()函數(shù)值為6.506583。

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

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

試題程序:

參考答案

1.AB)選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C)選項中在一個程序中當對文件進行了寫操作后,不用先關閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D)選項中,C語言中的文件可以進行隨機讀寫。

2.D

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

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

5.B

6.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。

7.C

試題2分析

結點的存儲順序和邏輯順序不一定一致,存儲空間也不一定連續(xù)。插入和刪除元素的時候,不需要移動表中的元素。

試題2答案

C

8.C解析:在C語言中,字符串以'\\0'作為結束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。

9.B

10.C

11.B

12.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。

13.D解析:本題題面要求刪除q所指結點并釋放該結點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結點,而釋放的是p結點,所以選項A錯誤;選項B是將q的下一結點的地址賦值給指針變量p,這意味著p原來的成員變量內容被q的下一結點的成員變量內容所代替,即原p結點也被刪除了,所以選項B錯誤;選項C相當于將q的所有成員變量內容代替了p的所有成員變量內容,即p結點被刪除,所以錯誤;選項D是將q的下—結點的地址賦值給p的成員next\u3000(成員next用于存放一結點的地址),使得p的next成員不再指向q,而是指向q的下一結點,相當于刪除了q這個結點,同叫用free函數(shù)正確釋放了q這一結點,所以選項D正確。

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

15.C在C語言中,二維數(shù)組的名字表示的是二維數(shù)組的地址,表達式*(W+1)表示的是二維數(shù)組的第一行的第二個元素。在其前面再加上*(*(w+1))就是錯誤的表達式。

16.B解析:常常一個程序中要用到多個棧,為了不發(fā)生上溢錯誤,就必須給每個棧分配一個足夠大的存儲空間。但實際中,很難準確地估計,若每個棧都分配過大的存儲空間,勢必造成系統(tǒng)空間緊張;若讓多個棧共用一個足夠大的連續(xù)存儲空間,則可利用棧的動態(tài)特性使他們的存儲空間互補。

17.B

18.B

19.B

20.C\n\tC?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。

21.66

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

23.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。

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

25.對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應填入x[i-1]。\r\n\r\n

26.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。

27.k<=nk++k<=n\r\nk++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句“k++;”。

28.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結果應當為“DDBBCC”。

29.**pa+I**p*p

30.x+=1x+=1解析:本題考查'++'、'--'運算符。'++'、'--'只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。

31.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后一個間的所有字符。刪除前,應判斷i<=length。由于已經進行了-i運算,故實際應填入i<length。

32.軟件生命周期軟件生命周期解析:軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用以及維護等活動。

33.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

34.8484解析:本題考核的知識點是函數(shù)的調用、值傳遞和地址傳遞的區(qū)別?!爸祩鬟f”指實參將值傳遞給形參后,實參與形參再無聯(lián)系。也就是說對行參的改變將不影響實參;地址傳遞是指地址或數(shù)組名作為形參時的參數(shù)傳遞,這種情況下對形參的改變將對實參產生影響.函數(shù)f(Y*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調用該函數(shù)后,作為實參的y的值將不改變,而實參x的值將改變,故最后輸出的y的值為4,而x的值為8。

35.—對多—對多解析:實體之間的聯(lián)系可以歸結為一對一、一對多與多對多。如果一個學校有許多學生,而一個教師只歸屬于一個學生,則實體集學校與實體集學生之間的聯(lián)系屬于一對多的聯(lián)系。

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

37.1212解析:程序中的ch1與ch2為字符型變量,輸入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'將字符1,轉換為數(shù)值1,同理,n2為1*10+2=12。程序執(zhí)行后輸出十進制整數(shù)12。

38.1

39.3*sizeof(double)3*sizeof(double)解析:malloc(size)函數(shù)用于申請動態(tài)存儲空間,故應填3個double型變量在內存中所占的字節(jié)數(shù)。while循環(huán)的功能把字符從第二個元素開始左移一位,并將原第一個元素賦給最后一個元素。

40.!=returnj!=returnj解析:函數(shù)fun中,變量j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以訂語句中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,a[i]要添加到新數(shù)組中。該算法只能用于數(shù)組已排序的題目中。

41.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內存空間。

42.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。

(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。

(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。

軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。

43.C解析:在C語言中,可以用指數(shù)形式將實型常量表示為數(shù)值和指數(shù)兩部分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項A中1.2和0.5都不是整數(shù),故選項A不正確;選項B中3.14159也不是整數(shù),故選項B不正確;選項D中數(shù)值部分不能為空,故選項D也不正確。所以,4介選項中選項C符合題意。

44.C解析:不論main函數(shù)在整個過程中的位置如何,一個C程序總是從main函數(shù)開始執(zhí)行的。

45.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。

46.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達式中第二個表達式的值,為1。

47.A解析:當今主導的程序設計風格是“清晰第一,效率第二”的觀點。結構化程序設計思想提出之前,在程序設計中曾強調程序的效率,而在實際應用中,人們更注重程序的可理解性。

48.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當于為數(shù)據(jù)類型取個別名。

49.C解析:C基本數(shù)據(jù)類型包括:分為整型、實型、枚舉型、字符型四種,實型就是浮點型,實型數(shù)據(jù)只有十進制,沒有2,8,16進制表達,在C語言中沒有定義邏輯類型,而是一般用0代表假,用非零代表真。

50.C解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。

51.D

52.C

53.C

54.C解析:本題涉及C語言的3個基本知識點:①C語言的源程序是由函數(shù)構成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;⑧注釋行雖然對程序的運行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。

55.C解析:首先,getchar函數(shù)通過鍵盤讀入字符'a',即c='a',(其實c得到的是字符a的ASCII碼值),然后判斷if語句的控制條件,發(fā)現(xiàn)'a'>='a'&&'a'<='g'成立,則執(zhí)行下一步列的語句,c=c+4,c得到的是字符e的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符e。

56.B解析:從概念模式到內模式的映射一般由數(shù)據(jù)庫管理系統(tǒng)(DBMS)實現(xiàn)。

57.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。孩诋敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

58.C解析:C語言的數(shù)據(jù)類型分為基本類型、構造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種類型。

59.B解析:break語句可以根據(jù)需要,使用在循環(huán)體和switch語句體內,因此B是可選項。

60.C解析:線性表、棧和隊列所表達和處理的數(shù)據(jù)以線性結構為組織形式。棧是一種特殊的線性表,它只能在固定的一端進行插入和刪除操作,又稱后進先出表(LastInFirstOut);隊列是插入在一端進行,刪除在另一端進行的線性表,又稱先進先出表(FirstInFirstOut)。

61.A解析:本題考查的重點是typedef的理解運用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項A是錯誤的。

62.C選擇:是在數(shù)據(jù)表中給予一定的條件進行篩選數(shù)據(jù)。投影:是把表中的某幾個屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學中的并是一樣的。兩張表進行并操作,要求它們的屬性個數(shù)相同并且需要相容。

63.C本題主要考查結構體所占存儲單元的計算。在C語言中,函數(shù)sizeof的作用是用以計算變量所處存儲單元的大小,即占的字節(jié)數(shù)。

在本題中,程序首先定義了一個結構體,該結構體包含三個成員變量,分別為整型、浮點型和字符型。在C語言中,這三種類型的變量所占的字節(jié)數(shù)分別為2、4、1,然后定義一個該結構體的結構體變量,并輸出該結構體變量所占的字節(jié)數(shù)。那么結果應為2+4+1=7,因此本題正確的答案為C。

64.B

65.A程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)中結束,其他函數(shù)通過main函數(shù)調用執(zhí)行,所以A)正確。

66.C在本題程序中,首先定義了一個fun函數(shù),函數(shù)帶有兩個指針變量的形參,在程序體中,定義一個整型變量m用來保存計算的結果,然后執(zhí)行第一條運算語句,并將運算結果保存至變量m,然后執(zhí)行第二條運算語句,最后輸出程序m的值。

在主函數(shù)中,首先定義兩個整型變量a和b,并分別賦值為5和6,定義兩個指針變量x和y,分別指向變量a和b。然后調用函數(shù)fun,調用函數(shù)傳遞的參數(shù)為x和y,因此,執(zhí)行m=(*a+*b)*(*a+*b)=(5+6)*(5+6)=121,然后執(zhí)行m+=(*a-*b)*(*a-*b)等價于m=m+(-1)*(-1)=121+1=122。因此,本題程序的輸出結果為122,答案選C。

67.A首先charss接受一個字符型數(shù)組的首地址并將這個首地址賦給另一個字符型指針char+

溫馨提示

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

評論

0/150

提交評論