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

下載本文檔

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

文檔簡介

2021-2022年廣東省揭陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.對如下二叉樹進行后序遍歷的結(jié)果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

2.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

3.下列關于線性表、棧和隊列的敘述,錯誤的是()。

A.線性表是給定的n(n必須大于零)個元素組成的序列

B.線性表允許在表的任何位置進行插入和刪除操作

C.棧只允許在一端進行插入和刪除操作

D.隊列允許在一端進行插入在另一端進行刪除

4.鏈表不具有的特點是A.A.不必事先估計存儲空間

B.可隨機訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

5.下述關于C語言文件的操作的結(jié)論中,正確的是______。

A.對文件操作必須先關閉文件

B.對文件操作必須先打開文件

C.對文件操作順序無要求

D.對文件操作前必須先測文件是否存在,然后再打開文件

6.下述哪一個是順序存儲結(jié)構(gòu)的優(yōu)點()。

A.存儲密度大B.插入運算方便C.刪除運算方便D.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示

7.

8.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關文檔的完整集合

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

A.54321

B.12345

C.12345

D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}

10.有以下程序:#includeintfun(intx,inty){if(x!=y)return(x+y)/2);elsereturn(x);}Main(){Inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c));}A.6B.3C.8D.12

11.若有定義語句“chars[10]=“1234567\0\0”;”,則Strlen(s)的值是()。

A.7B.8C.9D.10

12.以下敘述中錯誤的是______。A.C程序中的#include和#define行均不是C語句

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

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

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

13.以下不合法的數(shù)值常量是()。

A.8.0E0.5B.1e1C.011D.0xabcd

14.語句int(*ptr)()的含義是()。

A.ptr是一個返回值是int的函數(shù)

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)

D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向血型數(shù)據(jù)的指針

15.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的運行結(jié)果是()

A.zB.0C.元素ch[5]的地址D.字符y的地址

16.對線性表進行折半查找時,必須要求線性表()。

A.順序方式存儲B.鏈式方式存儲C.以順序方式存儲,且結(jié)點按關鍵字有序排列D.以鏈式方式存儲,且結(jié)點按關鍵字有序排列

17.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系

18.

19.下面說法正確的是()。A.A.一個C程序可以有多個主函數(shù)

B.一個C語言的函數(shù)中只允許有一對花括號

C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對C程序進行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤

20.

二、2.填空題(20題)21.數(shù)據(jù)庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。

22.下面程序的功能是【】。

doublesub(doublex,inty)

{intn;doublez;

for(n=1,z=x;n<y;n++)z=z*x;

returnz;}

main()

{doublea=2.0,b=4.0,c;

c=sub(a,b);printf("%f",c);}

23.若a的值為1,則表達式!a‖++a的值是______。

24.已定義charch='$';inti=1,j;,執(zhí)行j!=ch&&i++以后,i的值為______。

25.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。

26.有以下程序段:

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

b=p[5];

b中的值是【】。

27.在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

28.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

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

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

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

k=f(a++);

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

30.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。

31.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行人隊運算。這種情況稱為【】。

32.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

33.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

運行后,i,j,m,n的值分別是_______。

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

#include<stdio.h>

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk;

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

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptrl+k));}

35.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結(jié)果為______。

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

main()

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

for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;

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

}

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

main()

{unsignedshorta=65536;intb;

printf("%d\n",b=A);

}

38.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內(nèi)存空間中,形成一個新字符串s。

請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

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

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

三、1.選擇題(20題)41.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機值

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

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

43.下列敘述中錯誤的是()。

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

44.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n”,*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}

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

45.線性表的順序存儲結(jié)構(gòu)和線性表的鏈式存儲結(jié)構(gòu)分別是______。

A.順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)

B.隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)

C.隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)

D.任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)

46.以下正確的程序段是

A.charstr1[]="12345",str2[]="abcdef";

B.charstr[10],*st="abcde";strcat(str,st);

C.charstr[10]=""。*st="abcde";strcat(str,st);

D.char*st1="12345",*st2="abcde";strcat(st1,st2);

47.設有以下說明,則不正確的敘述是()。unionun{inta;chatb:floatc;}arr;

A.arr所占的內(nèi)存長度等于成員c的長度

B.arr的地址和它的各成員的地址都是同一地址

C.arr可以作為函數(shù)參數(shù)

D.不能在定義art時對它初始化

48.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。

A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)

49.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

50.下面程序的運行結(jié)果是#include<stdio.h>main(){chara[]="morning",t;inti,j=0;for(i=1;i<7;i++)if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j];puts[a];}

A.mrgninrB.moC.moringD.morning

51.有下列程序:

main()

{inty=20;

do{y--;}while(--y);

phntf("%d\n",y--);

}

當執(zhí)行程序時,輸出的結(jié)果是()。

A.-1B.1C.4D.0

52.設有一共用體變量定義如下:uniondata{longw;floatx;inty;charz;};uniondatabeta;執(zhí)行下列語句后,正確的共用體變量beta的值是()。beta.w=123456;beta.y=888;beta.x=3.1416;beta.z='x';

A.123456B.888C.3.1416D.'X'

53.有以下程序:#include<stdio.h>stxucttt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的運行結(jié)果是()。

A.20,30,B.30,17C.15,30,D.20,15,

54.設變量a、b、c、d和y都已正確定義并賦值。若有下列if語句

if(a<B)

if(c==D)y=0;

elsey=1;

該語句所表示的含義是()。

A.

B.

C.

D.

55.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句

B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

56.以下程序段的輸出結(jié)果是chars[]=“\\141\141abc\t”;printf(“%d\n”,strlen(s));

A.9B.12C.13D.14

57.用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為()。

A.關系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型

58.下面程序的輸出是______。main(){intx=3,y=6,a=0;,while(x++!=(y=1)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n,x,y,a);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

59.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

60.若有下面的說明這定義:structtest{intm1;charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;則sizeof(structtest)的值是

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

四、選擇題(20題)61.以下選項中,值為1的表達式是()。

62.

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

main

{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;

for(k=1;k<3;k++)printf("%s\n",w[k]);A.A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

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

#include<stdio.h>

main()

{chara[2][4];,

strcpy(a。"are");strcpy(a[1],"you");

a[o][3]=&;

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

}

A.are&you

B.you

C.are

D.&

65.有以下程序:

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

A.有運行錯誤B.輸出ll.10C.輸出l2.10D.輸出21.10

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

67.

68.

69.

70.設有棧S和隊列Q,其狀態(tài)為空,元素a1,a2,a3,a4,a5,a6依次入棧,出棧的元素則進入隊列Q,若6個元素出隊列的順序是a2,a3,a4,a6,a5,a1,則棧的容量至少是

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

71.有以下程序

#include<stdio.h>

main()

{chara[3O],b[30];

scanf("%S",a);

gets(b);

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

}

程序運行時若輸入:

howareyou?Iamfine<回車>

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

A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

72.有以下程序:

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

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*l=22*2=43*1=33*2=63*3=9

73.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是()。

A.大寫字母B.連接符C.數(shù)字字符D.下劃線

74.

75.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理

76.

77.

78.有以下程序:

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

A.aegiB.dfhkC.abedD.abedefghijk

79.

80.有以下程序:

#include<stdio.h>

main()

{FILE*fp;inti,k=0,n=0;

fp=fopen("d1.dat","wb+");

for(i=1;i<4;i++)fprintf(fp,"%d",i);

fclose(fp);

fp=fopen("d1.dat","r");

fseek(fp,1L,SEEK_SET);

fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);

}

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

A.12B.1230C.123D.230

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.請編寫fun函數(shù),其功能是:計算并輸出3~m所有素數(shù)的平方根之和。

例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=68.665791。

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

注意:m的值要大于2但不大于100。部分源程序給出如下。

試題程序:

#include<math.h>

#include<stdio.h>

doublefun(intm)

{}

voidmain

{

intm;

doubles;

FILE*out:

printf("\n\nInputm:");

scanf("%d",&m);

s=fun(m);

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

ut=fopen("outfile.dat","w");

for(m=0;m<10;m++)

fprintf(out,"%f\n",fun(m+80));

felose(out);

}

參考答案

1.D解析:后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,道先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點。

2.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質(zhì)。

①有且僅有一個特定的稱為根的結(jié)點。

②當n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

3.A解析:線性表的插入和刪除允許在任何位置進行,所以B選項的說法是正確的;棧的操作只允許在棧頂進行,因此,棧稱為先進后出表(FILO,FirstInLastOut),或“后進先出”表(LIFO,LastInFirstOut),所以C選項說法也是正確的;隊列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭(front),允許插入的一端叫做隊尾(rear),因此隊列亦稱作先進先出(FIFO,FirstInFirstOut)的線性表,或后進后出(LILO,LastInLastOut)的線性表。所以D選項說法也是正確的。

4.B鏈表是一種特殊的線性表,鏈表的存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大?。挥捎阪湵淼脑厥峭ㄟ^指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點,并將該結(jié)點的指針域修改為指向其直接后繼結(jié)點即可。當然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈式存儲的鏈表結(jié)構(gòu)中,由于后一結(jié)點數(shù)據(jù)被存儲在哪里,只有通過前一結(jié)點的指針域才知道,因此,訪問時只能是逐個訪問,而不能實現(xiàn)隨機訪問。

5.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關閉文件。對文件以讀的方式進行打開操作時,同時會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時,文件不存在,將會自動創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。

6.A

7.B

8.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關的圖文資料。因此本題的正確答案是D。

9.B

10.A本題中第一次調(diào)用為fun(8,fun(5,6)),因為fun(5,6)返回值為5,所以第二次調(diào)用為fun(8,5)=6。所以選擇A)。

11.Astrlen函數(shù)計算字符串長度時,遇到結(jié)束標識為止,且長度不包括結(jié)束標識。本題中的字符串從第1個字符開始,遇到第1個結(jié)束標識‘\\0’為止,注意不占字符串長度,所以字符串長度為7。故本題答案為A選項。

12.D解析:“%”是求余運算符,其兩側(cè)的數(shù)值只能為整型,所以它不能用于實型的運算,故選項D錯誤。

13.AA選項中E后面的指數(shù)必須為整數(shù),所以不合法。C選項中的011表示的是八進制常量,D選項中的0xabcd表示的是十六進制常量。故本題答案為A選項。

14.C解析:本題考查的是指向函數(shù)的指針.函數(shù)指針定義的基本格式為:類型標識符(*指針變量名)()?!邦愋蜆俗R符”為函數(shù)返回值的類型。

15.A語句“pc=ch;”使得指針變量pc指向字符數(shù)組ch的首地址,即指向字符‘u’。而“pc+5”指向的是指針向后移動5位所指的字符,即指向字符‘z’,所以輸出的“*(pc+5)”的值為‘z’。故本題答案為A選項。

16.C

17.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

18.D

19.C解析:本題涉及C語言基本的3個知識點:①C語言規(guī)定一個程序只允許有一個主函數(shù),一個函數(shù)內(nèi)可以允許有多個花括號;②C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋中的錯誤。

20.D

21.概念設計階段(數(shù)據(jù)庫概念設計階段)概念設計階段(數(shù)據(jù)庫概念設計階段)

22.本程序的功能是求a的b次方本程序的功能是求a的b次方

23.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

24.11解析:在執(zhí)行邏輯表達式“j=!ch&&i++”時,首先判斷j=!ch的值,因為“ch='$'”不為0,所以“j=!ch=0”,編譯系統(tǒng)便不再計算表達式“i++”的值,i的值不變,仍為1。

25.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達式相當于2.0的3.0次方,結(jié)果為8.000000。

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

27.數(shù)據(jù)庫管理系統(tǒng)或DBMS數(shù)據(jù)庫管理系統(tǒng)或DBMS解析:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護數(shù)據(jù)庫,簡稱DBMS。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過DBMS進行數(shù)據(jù)庫的維護工作。它提供多種功能,可使多個應用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數(shù)據(jù)庫。因此,數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫管理系統(tǒng)是實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件。本題的答案是數(shù)據(jù)庫管理系統(tǒng)或DBMS。

28.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

29.44解析:本題考查了靜態(tài)存儲類別的局部變量的特點。靜態(tài)存儲類別的局部變量在程序的整個生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當i=0時執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因為賦值運算符的優(yōu)先級高于逗號運算符,所以a=3,c=4;當i=1時執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因為c為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。

30.類類解析:在面向?qū)ο蟮姆椒ㄖ校丫哂邢嗤瑢傩院头椒ǖ膶ο蠓Q為類,類是對象的抽象,對象是類的實例。

31.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時,置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行人隊運算,這種情況稱為“上溢”。

32.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。

33.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。

34.gaga解析:用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b。然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。注意:用字符數(shù)組作為字符串和用指針指向的一個字符串之間的區(qū)別。

35.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。

36.66解析:本題變量z的值應為最后一次給它賦的值,且最后一次for循環(huán)使prt指向a[2]

37.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。

38.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組strl和str2,并且給str2賦初值“abc&fgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個元素。所以空格處應該填*t++或*(t++)。

39.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。

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

41.B解析:若在函數(shù)中定義與全局變量名字相同的局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大,故選項A不正確;靜態(tài)變量一旦定義,將在整個程序的運行期間都存布,故選項B正確;函數(shù)的形參只在函數(shù)調(diào)用的時候分配存儲空間,在退出函數(shù)時收回存儲空間,因此是局部的,故選項C不正確;沒有賦值的auto型變量的初值是隨機的,沒有賦值的static型變量的初值是0,故選項D不正確。所以,B選項為所選。

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

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

43.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。

44.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對p所指向的數(shù)據(jù)進行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應于實參a的元素5,所以輸出結(jié)果為5。

45.B【命題目的】考查有關線性表存儲結(jié)構(gòu)的基本知識。

【解題要點】順序存儲結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結(jié)構(gòu),要對某結(jié)點進行存取,都得從鏈的頭指針指向的結(jié)點開始,這是一種順序存取的存儲結(jié)構(gòu)。

【考點鏈接】順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)的定義和性質(zhì),兩種存儲結(jié)構(gòu)的操作方法。

46.C解析:本題考查了一維字符數(shù)組的定義和初始化。選項C中str[10]初始化為空,可以不必進行類似''的空賦值,字符數(shù)組若沒有進行初始化賦值,默認的字符為空,并且定義完str數(shù)組后,應該用“,”分隔而不是“?!保赃x項C錯誤。

47.C解析:本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,int占2個字節(jié),char占1個字節(jié),float占4個字節(jié),所以arr所占的內(nèi)存長度等于成員c的長度;arr的地址和它的各成員的地址都是同一地址;不能直接對arr賦值,即不能在定義arr時對它初始化;arr也不可以作為函數(shù)參數(shù)。

48.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。

49.A解析:C語言規(guī)定,賦值號的右邊可以是一個賦值表達式.因此選項C)、選項D)正確:在選項B)中,a++是一個自加1的表達式,a被重新賦值,因此它是一個合法的賦值表達式:選項A)中,a+d是一個算術(shù)表達式,雖然最后有一個分號,但這個表達式中沒有賦值操作,因此它不是一條賦值語句。

50.B解析:本題考查了一維數(shù)組元素的引用方法。題中數(shù)組a為一字符串數(shù)組,通過數(shù)組首地址和下標可以引用數(shù)組中的每個元素。因為字符數(shù)組相當于字符串,所以可以用字符串輸出函數(shù)puts()來輸出字符數(shù)組中的各個字符。

51.D解析:本題考查do…while循環(huán)。當--寸是0(即y是0)時結(jié)束循環(huán),輸出y--是先輸出y的值再將y的值減1。

52.D解析:因為共用體的所有成員共同占據(jù)一段存儲空間,所以成員數(shù)據(jù)后賦的值會覆蓋掉先賦的值,最后共用體變量中保留的就是最后一次賦的值。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。

53.D解析:題目中定義了一個全局結(jié)構(gòu)體數(shù)組a,結(jié)構(gòu)體中包含兩個成員;一個int型變量x和一個自身類型指針y。所以,結(jié)構(gòu)體數(shù)組a的初始化列表中每兩個初始化一個結(jié)構(gòu)體元素。主函數(shù)通過一個for循環(huán),連續(xù)調(diào)用了兩次輸出函數(shù)printf(),每次輸出p所指元素的x成員值。p初始化時指向數(shù)組a的首地址,即a[0]的位置,所以第1次輸出的值為20。然后又將a[0]的成員y的值賦給p,y在初始化時是a+1,所以p在第2次輸出時指向的元素是a[1],故第2次輸出的值為15。所以本題最終輸出結(jié)果是“20,15,”,應該選擇D。

54.C解析:語句if(c==d)y=0;elsey=1;是if(a<b)語句的一個子句。所以整個C語句表達式的意思是:在a<b的情況下,如果c=d則y=0,否則y=1。所以,選項C)為正確答案。

55.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達式);,其中循環(huán)體語句可以是復合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。

56.A解析:字符數(shù)組中可以存放字符串,但字符數(shù)組的長度并不是字符串的長度,字符串的長度是指字符數(shù)組中存放的有效字符個數(shù),即\'\\0\',之前的字符數(shù)。字符數(shù)組s中依次存放的字符是:\'\\\\'1'4'1'\\141'a'b'c'\\t\',和最后一個字符串結(jié)束標記\'\\0\',故字符串的長度是9。

57.B解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模型和關系模型。在層次模型中,實體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實體集(記錄型)是樹中的結(jié)點,而樹中各結(jié)點之間的連線表示它們之間的關系。所以,本題的正確答案是B。

58.D解析:注意的是x++中x值的引用時,這里應當是先引用,后自加,具體抽打過程如下:

第一次while循環(huán):條件為真,執(zhí)行a=a+1=1此時,x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);

第二次while循環(huán):條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。

59.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

60.A解析:本題考核的知識點是結(jié)構(gòu)體變量的存儲空間。結(jié)構(gòu)體所占用的存儲空間是其所有成員占用的存儲空間之和,而共用體所占用的存儲空間是成員中占用存儲空間最大者的空間,共用體類型uu是結(jié)構(gòu)體的成員,它所占的內(nèi)存長度為最大成員的長度,即字符型數(shù)組u1的長度,即1×5=5。每個整型數(shù)據(jù)占用2個字節(jié),每個字符型數(shù)據(jù)占用一個字節(jié),單精度型數(shù)據(jù)占4個字節(jié),myaa為結(jié)構(gòu)體變量,它所占的存儲空間為各個成員所占存儲空間的之和,即2+1+4+5=12。所以,4個選項中A為所選。

61.A\0值為0,所以1一’\0’值為1。答案為A)。

62.C

63.D當k=1時,循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當k=2時,循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當k=3時,循環(huán)不成立,退出。

64.A\nstrcpy實現(xiàn)的功能是復制,該操作把are復制到a中,aE03E33一’&’,且strcpy(aEl],'you')把you復制到

溫馨提示

  • 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

提交評論