2021年吉林省白山市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第1頁
2021年吉林省白山市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第2頁
2021年吉林省白山市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第3頁
2021年吉林省白山市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第4頁
2021年吉林省白山市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年吉林省白山市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下面程序的運行結果是()。#include"stdio.h"main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elseprintf("#");}}

A.*#*#*B.#*#*#*C.*#*#D.#*#*

2.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

3.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的運行結果是()。

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

4.

5.已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應該采用的算法是()

A.直接選擇排序B.堆排序C.快速排序D.直接插入排序

6.是哈希查找的沖突處理方法()。

A.求余法B.平均取中法C.二分法D.開放地址法

7.下列各排序法中,最壞情況下的時間復雜度最低的是()

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

8.

9.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序

10.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現(xiàn)實世界中的算法而強調概念

11.具有20個結點的二叉樹,其深度最多為_______。

A.4B.5C.6D.20

12.下列不正確的轉義字符是()。

A.'\\'B.'\t'C.'\n\D.'088'

13.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是

A.INPUTx、v、z;

B.scanf("%d%d%d",&x,&y,&z);

C.scanf("%d%d%d",x,y,z);

D.read("%d%d%d",&x,&y,&z);

14.已知函數(shù)test定義為()。A.執(zhí)行函數(shù)test后,函數(shù)沒有返回值

B.執(zhí)行函數(shù)test后,函數(shù)不再返回

C.執(zhí)行函數(shù)test后,函數(shù)返回任意類型值

D.以上三個答案都是錯誤的

15.在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的()倍。

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

16.標準庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)組s中

B.從文件file中讀取長度不超過n-1個字符的字符串放到字符數(shù)組s中

C.從文件file中讀取n個字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個字符的字符串存入字符數(shù)組s中

17.以三級模式為框架形成的3種數(shù)據(jù)庫中,真實存在于計算機外存的數(shù)據(jù)庫是()。

A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫

18.有以下語句:intb;charc[10];,則正確的輸入語句是______。

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

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

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

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

19.若有定義:typedefint*INTEGER;INTEGERp,*q;則以下敘述正確的是()。

A.q是基類型為int的指針變量

B.p是int型變量

C.p是基類型為int的指針變量

D.程序中可用INTEGER代替類型名int

20.以下函數(shù)的時間復雜度和空間復雜度為()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

二、2.填空題(20題)21.下列程序段的輸出結果是【】。

main()

{charb[]="Hello,you";

b[5]=0;

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

}

22.數(shù)據(jù)的【】結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構或物理結構。

23.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(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");

}

24.下述函數(shù)統(tǒng)計一個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】=='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

25.在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

26.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')______;

s[j]='\O';

puts(s);

}

27.函數(shù)sstrcmp的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp)。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

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

29.最簡單的交換排序方法是______。

30.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

31.以下程序中,主函數(shù)調用了LineMax函數(shù),實現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值。

請?zhí)羁铡?/p>

#defineN3

#defineM4

voidLineMax(intx[N][M])

{inti,j,P;

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

{p=0;

for(j=1;j<M;j++)

if(x[i][p]<x[i][j])【】;

printf("Themaxvalueinline%dis%d\n",i,【】);

}

main()

{intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};

【】;

}

32.若輸入12、3、2、5、7,則以下程序的運行結果為【】。

intmax,min;

voidmax_min_value();

main()

{inti,number[5];

printf("輸入5個整數(shù);\n");

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

maxminvalue(number,5);

printf("max=%d,min=%d\n",max,min);

getch();

}

voidmax_min_value(array,n)

intarray[],n;

{int*p;

max=min=*array;

for(p=array+1;p<array+n;p++)

if(*p>max)max=*p;

elseif(*p<min)min=*p;

}

33.執(zhí)行以下程序段后,s的值為【】。

staticcharch[]="600";

inta,s=0;

for(a=0;ch[a]>='0'&&ch[a]<='9';a++)

s=10*s+ch[a]-'0';

34.以下程序的運行結果是【】。

#include<string.h>

typeaefstructstudent{

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(a.name,b.name)>0)d=b;

if(strcmp(C.name,)>0)d=C;

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

}

35.軟件測試方法中,黑盒測試法和白盒測試法是常用的方法,其中黑盒測試法主要是用于測試【】。

36.函數(shù)rewind的作用是

37.以下函數(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];}}

38.下面程序的運行結果是【】。

main()

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

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

39.如果一個工人可管理多個設備,而一個設備只被一個工人管理,則賣體“工人”與實體“設備”之間存在【】關系。

40.當線性表采用順序存儲結構實現(xiàn)存儲時,其主要特點是______。

三、1.選擇題(20題)41.已定義以下函數(shù)

fun(int*p)

{return*p;}

該函數(shù)的返回值是()

A.不確定的值

B.形參p中存放的值

C.形參p所指存儲單元中的值

D.形參p的地址值

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

A.一個算法的空間復雜度大,則其時間復雜度必定大

B.一個算法的空間復雜度大,則其時間復雜度必定小

C.一個算法的時間復雜度大,則其空間復雜度必定小

D.上述三種說法都不對

43.下列敘述中正確的是()。A.用E-R圖能夠表示實體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系

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

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

D.用E-R圖表示的概念數(shù)據(jù)模型只能轉換為關系數(shù)據(jù)模型

44.下面函數(shù)調用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));

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

45.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。

A.便于用戶、開發(fā)人員相互理解和交流

B.反映用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

46.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

47.算法的時間復雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)

48.下列程序執(zhí)行的輸出結果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}

A.are&youB.youC.areD.&

49.有如下程序#include<stdio.h>main(){FILE*fp1;fp1;fopen("ftxt","w");fprintf(fpl,"abc")fclose(fpl);}若文本文件f1.txt中原有內容為:good,則運行以上:程序后文件f1.Mt中的內容為

A.goodabcB.abcdC.abcD.abcgood

50.在C語言程序中,下列說法正確的是()。

A.函數(shù)的定義和函數(shù)的調用均可以嵌套

B.函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套

C.函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套

D.函數(shù)的定義和函數(shù)的調用均不可以嵌套

51.設intx=7,則~x的值是()。

A.-8B.-7C.-1D.1

52.程序流程圖(PFD)中的箭頭代表的是

A.數(shù)據(jù)流B.控制流C.調用關系D.組成關系

53.下列程序的輸出結果是______。inti=010,j=10;printf("%d,%d\n",++i,j--);

A.11,10B.9,10C.010,9D.10,9

54.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運行后的輸出結果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

55.設有如下說明:typedefstruct{intn;charc;doublex;}STD;則以下選項:能正確定義結構體數(shù)組并賦初值的語句是()。

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,"A",62,2,"B",75};

C.struettt[2]={{1,'A'},{2,'B'}};

D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

56.以下敘述中正確的是()。

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條可執(zhí)行語句最終都將被轉換成二進制的機器指令

C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進行編譯

57.設計數(shù)據(jù)庫的存儲結構屬于()。

A.需求分析B.概念設計C.邏輯設計D.物理設計

58.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

59.對以下程序段的描述,正確的是()。x=-1;do{x=x*x;}while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行兩次C.循環(huán)執(zhí)行一次D.有語法錯誤

60.要求以下程序的功能是計算s=1+1/2+1/3+…+1/10main(){intn;floats;s=1.0;for(n=1O;n>1;n--)s=s+1/n;printf("%6.4f\n",s);}程序運行后輸出結果錯誤,導致錯誤結果的程序行是()。

A.s=1.0;

B.for(n=1O;n>l;n--)

C.s=s+1/n;

D.printf("%6.4f\n",s);

四、選擇題(20題)61.

若希望下列的程序運行后輸出25,程序空白處的正確選項是()。

main

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=l;i<4;++i

B.i=1;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

62.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

63.設有定義:,以下不能計算出一"/Pchar型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。

64.有以下程序段

main()

{inta=5,*b,**c;

c=&b;b=&a;

……

}

程序在執(zhí)行了c=&b;b=&a;語句后,表達式:**c的值是()

A.變量a的地址

B.變量b中的值

C.變量a中的值

D.變量b的地址

65.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.log2nB.n2C.nD.n+1

66.

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

char*point(char*pt):

main

{charb[4]={a,c,s,f),*pt=b;

pt=point(pt);

printf("%c\n",*pt);

}

point(char*p)

{p+=3;

returnp;

}

A.sB.cC.fD.a

67.

68.

有以下函數(shù):

charfun(char*p)

{returnP;}

該函數(shù)的返回值是()。

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

69.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

70.以下程序的輸出結果是________。main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intB){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A.8,17B.8,16C.8,20D.8,8

71.當用“#defineF37.5f”定義后,下列敘述正確的是()。

A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串

72.第

13

設有程序段

intk=10;

while(k=0)k=k-1;

則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

73.利用fseek函數(shù)可實現(xiàn)的操作是()。

A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確

74.讀取二進制文件的函數(shù)調用形式為:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一個內存塊的首地址,代表讀入數(shù)據(jù)存放的地址

B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個文件指針,指向待讀取的文件

D.一個內存塊的字節(jié)數(shù)

75.

76.表達式a+=a-=a=9的值是()。

A.0B.-9C.18D.9

77.下列描述中正確的是()。

A.算法是指對解題方案的準確而完整的描述

B.算法的有窮性是指算法程序的長度是有限的

C.算法是否有效與擁有的情報無關

D.算法的基本特征有可行性、確定性和有窮性

78.(11)算法的時間復雜度是指()

A.執(zhí)行算法程序所需要的時間

B.算法程序的長度

C.算法執(zhí)行過程中所需要的基本運算次數(shù)

D.算法程序中的指令條數(shù)

79.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

80.有以下程序:

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

A.33B.197C.143D.28

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過某種方式實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如變量num1中的值原為2,num2中的值原為1,程序運行后,num1中的值為l,num2中的值為2。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放入結構體數(shù)組stu中,請編寫函數(shù)proc(),它的功能是:把分數(shù)最低的學生數(shù)據(jù)放在h所指的數(shù)組中。注意:分數(shù)低的學生可能不止一個。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A解析:分析程序呵知.程序循環(huán)5次,然后利用if語句決定每次循環(huán)時輸出的字符。當i為奇數(shù)時,i%2=1,if(i%2)為真,輸出“*”;當i為偶數(shù)時,i%2=0,if(i%2)為假,執(zhí)行else語句,輸出“#”,所以當i取1、3、5值時輸出“*”,當i取2、4值時輸出“#”。

2.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。

3.C該程序中“int*p1=&a,*p2=&b,*p=&c;”定義了3個指針變量,并賦值。指針變量p1指向a,p2指向b,p指向c。執(zhí)行“*p=*p1*(*p2);”語句,給p所指的存儲單元c賦值。p1所指的存儲單元的值,與p2所指的存儲單元b的值相乘,也就是c=a*b,等價于c=1*3=3。故本題答案為C選項。

4.C

5.D

6.D

7.C

8.B

9.A解析:以下幾種算法的時間復雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據(jù)而已,所以其效率是最高的。

10.C\n面向對象的設計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現(xiàn)實世界中的概念而不強調算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應用領域的概念角度去思考。

\n

11.D

12.D解析:'\\\\'是反斜線轉義字符;'\\t'是水平跳格轉義字符;'\\n'是換行轉義字符;C語言中沒有規(guī)定'088'為轉義字符。

13.B解析:scanf函數(shù)的一般格式是:

scanf(格式控制,地址表列)

該格式中,地址表列中應是變量地址,而不是變量名。注意:調用putchar和getchar函輸出和輸入字符。

14.A

15.C

16.B解析:字符串輸入函數(shù)fgets()的調用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會自動在字符串末尾加入“'\\0'”結束符,表示字符串結束。

17.B

\n①以內模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實存在于計算機外存中的數(shù)據(jù)庫。

\n

18.B解析:b是整型數(shù),在輸人語句中要加取地址符,而c是數(shù)組名,本身就是數(shù)組的首地址,因此不用加取地址符。

19.C題干中使用typedef定義新類型名INTEGER,它代表int*類型。使用INTEGER定義p,相當于int*p。使用INTEGER定義*q,相當于int**q。所以p是基類型為int的指針變量,q是基類型為int*的指針變量,選項A、B、D錯誤。故本題答案為C選項。

20.A

21.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結束標志。因此,只輸出前五個字符,即Hello。

22.邏輯邏輯解析:數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構或物理結構。

23.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注意本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

24.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結束。第18空應填*s++;如果某個字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是一個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第19空應flag==0或*(s-1)=='';最后一個空格需填寫的是返回的單詞的個數(shù),即num。

25.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。

26.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。

27.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為\\0,此時字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為\\0,且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填*s-*t或其等價形式。

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

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

30.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結束標志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標的方式引用字符,如*(str+i)相當于str[i]。

31.p=jx[i][p]LineMax(x)

32.max=12min=2

33.600600解析:程序中for循環(huán)的條件是當前字符大于或等于字符\'0\'且小于或等于字符\'9\'的ASCII碼值,則s=10*s+ch[a]-\'0\'。計算結果是將字符串'600'轉換為整型數(shù)600。

34.2002Shanxian2002Shanxian解析:本題中第一個if語句將結構體變量a.name和結構體變量b.name中較小的那個賦值給結構體變量d,第二個if語句將結構體變量c.name和結構體變量d.name較大的那個賦給結構體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。

35.軟件外部功能軟件外部功能

36.A

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

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

39.一對多一對多解析:實體之間的聯(lián)系有3類:一對一,一對多,多對多。設有兩個實體集E1和E2,如果E2中的每一個實體與E1中的任意個實體(包括零個)有聯(lián)系,而E1中的每一個實體最多與E2中的一個實體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設備之間是一對多關系。

40.邏輯結構中相鄰的結點在存儲結構中仍相鄰。邏輯結構中相鄰的結點在存儲結構中仍相鄰。解析:順序存儲結構的主要特點是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結構中各結點間的相鄰關系是一致的。

41.C解析:本題考核的知識點是函數(shù)的返回值.函數(shù)的返回值應該為return后面的表達式的值,在本題中的表達式為*p,*p指的是形參p所指存儲單元中的值,所以,4個選項中選項C符合題意。

42.DD?!窘馕觥克惴ǖ臅r間復雜度和算法的空間復雜度是從不同的角度來衡量算法的執(zhí)行情況的,它們之間沒有內在聯(lián)系。

43.A解析:用E-R圖可以簡單明了地描述實體及其相互之間的聯(lián)系,用E-R圖還可以方便地描述多個實體集之間的聯(lián)系和一個實體集內部實體之間的聯(lián)系。因此,選項A中的說法是正確的,而選項B與C中的說法都是錯誤的。

為了建立用戶所要求的數(shù)據(jù)庫.必須把概念結構(用E-R圖表示的概念數(shù)據(jù)模型)轉換為某個具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,這就是邏輯結構設計所要完成的任務。

在已給定數(shù)據(jù)庫管理系統(tǒng)的情況下,數(shù)據(jù)庫的邏輯設計可以分兩步來進行:

①將概念模型轉換成一般的數(shù)據(jù)模型;

②將一般的數(shù)據(jù)模型轉換為特定的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。

由此可知,用E-R圖表示的概念數(shù)據(jù)模型不僅能轉換為關系數(shù)據(jù)模型,還可以轉換為其他數(shù)據(jù)模型,如網(wǎng)狀模型和層次模型等。因此,選項D中的說法也是錯誤的。

44.B解析:函數(shù)調用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調用形式為:函數(shù)名(),當所調用的函數(shù)用于求出某個值時,函數(shù)的調用可作為表達式出現(xiàn)在允許表達式出現(xiàn)的任何地方,本題中調用語句的參數(shù)個數(shù)為2個。

45.D解析:軟件需求規(guī)格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用:

①便于用戶、開發(fā)人員相互理解和交流。

②反映用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)。

③作為確認測試和驗收的依據(jù)。

46.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數(shù)初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項C定義的初始值表達式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。

47.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數(shù)來度量算法的時間復雜度。所以,本題正確答案為C。

48.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把are復制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復制到a[1]中,故輸出a為“are&you”。

49.C解析:本題考核的知識點是操作文件的幾個基本函數(shù)。主函數(shù)中定義了一個文件指針中1,然后通過fopen()函數(shù),以寫的方式打開文件“f1.txt’,并讓指針印1指向它,接著調用fptind()函數(shù)將“abc”寫到文件fp1所指的文件里,由于開始fp1指向文件的“f1.txt”的開始位置,因此“abc”將把文件“f1.txt”里原來的內容“good”覆蓋掉,故文件“f1.txt”里最后的內容為“abc”,所以,4個選項中選項C符合題意。

50.B解析:本題考查函數(shù)調用的基本概念。因為函數(shù)的結果是個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調用可以嵌套。

51.A解析:本題主要考查按位求反運算和C語言中正負數(shù)的表示,“0”代表正數(shù),“1”代表負數(shù);x=7的二進制為00111,第一個0代表正數(shù),~x為11000,第一個1代表負數(shù),值為8。

52.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應用廣泛的軟件過程設計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。

53.B

54.D解析:本題中首先定義一個字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。

55.A解析:本題定義了一個結構體類型并白定義類型名為STD,用戶自定義類型后,就可以利用它進行變量與數(shù)組的定義。定義的方法,與C語言中其它類型的定義完全一樣,定義結構型數(shù)組并賦初值時,每個元素用一對“{”和“廠括起來,字符型元素用…”括起來,選項A、B、C、D中只有選項A符合條件。所以,A選項為所選。

56.B解析:本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉換為二進制的目標代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行;連接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。

57.DD?!窘馕觥课锢碓O計階段主要解決選擇文件存儲結構和確定文件存取方法的問題。物理設計階段包括:選擇存儲結構、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

58.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯誤的。

59.C解析:do-while語句的執(zhí)行過程是:首先執(zhí)行循環(huán)體語句,再判斷表達式值的真假。在本題中,表達式的值為假,因此循環(huán)體只執(zhí)行一次。

60.C解析:程序中由于n為整型,所以1/n的結果始終為0,故程序最后輸出的結果為0,其結果錯誤,原因為在表達式1/n中1和n均為整型,所以應該將1改為1.0,這樣表達式1.0/n的值不為0,為該數(shù)學表達式的值,因此可以知道導致程序運行后輸出結果錯誤的行為“s=s+1/n;”,所以,4個選項中選項C符合題意。

61.D

\n要想使程序輸出是25,則在printf中,j-40=25,j=65,而j初值是50,“j+=a[i];”也可寫成i=j+a[i];,j=50+a[i]=65,當a[i]=15,條件滿足,數(shù)組下標由0開始,當i=2時,指向元素10,i=3時,10+5=15,退出循環(huán)體,所以選項D正確。

\n

62.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

63.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占字節(jié)數(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

提交評論