2021年湖南省益陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021年湖南省益陽市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年湖南省益陽市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設長度為n的鏈隊列用單循環(huán)鏈表表示,若只設頭指針,則入隊操作的時間復雜度為_______。

A.O(1)B.O(log2n)C.O(n)D.O(n2)

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

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

3.下列選項中,不能用作標識符的是A._1234_B._1_2C.int_2_D.2_int_

4.

5.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數調用語句是()。

A.strcat(strcat(s1,s2),s3);

B.strcat(s3,strcat(s1,s2);

C.strcat(s3,strcat(s2,s1);

D.strcat(strcat(s2,s1),s3);

6.有以下程序:

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

A.45B.50C.60D.55

7.以下對C語言函數的有關描述中,正確的是

A.在C語言中調用函數時,只能把實參的值傳給形參,形參的值不能傳送給實參

B.C函數既可以嵌套定義又可以遞歸調用

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

D.函數必須有返回值,返回值類型不定

8.

9.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結束條件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

10.

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

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

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

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

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

12.

有下列程序:

main

{charp[]={a,h,c},q[]="a";

printf("%d%d\n".sizeof(P),sizeof(q));

}

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

A.44B.33C.34D.43

13.若有如下形式的函數:intfun(inta[],int*p,intn){…}調用函數之前需要對函數進行聲明,則以下選項中錯誤的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

14.下述程序的運行結果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數B.負數C.零D.不確定的值

15.下面函數的功能是()intfunl(char*X){char*y=X;whar(*y++);return(y-x-1);}

A.求字符串的長度B.比較兩個字符串的大小C.將字符串x復制到字符串y中D.將字符串x連接到字符串y后面

16.在10000個int型變量中找出最大的100個,使用下列排序算法中哪一種用時最快()

A.冒泡排序B.快速排序C.歸并排序D.堆排序

17.以下關于結構化程序設計的敘述中正確的是()。

A.結構化程序使用goto語句會很便捷

B.在c語言中,程序的模塊化是利用函數實現的

C.一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成

D.由三種基本結構構成的程序只能解決小規(guī)模的問題

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

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

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

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

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

二、2.填空題(20題)21.按"先進后出"原則組織數據的數據結構是【】。

22.人員基本信息一般包括:身份證號、姓名、性別、年齡等。其中可以作為主關鍵字的是()。

23.在關系模型中,把數據看成一個二維表,每一個二維表稱為一個______。

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

main()

{

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

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

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

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

}

25.strcat函數的作用是【】。

26.在面向對象方法中,允許作用于某個對象上的操作稱為【】。

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

28.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

29.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。

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

voidswap(int*a,int*b)

{

int*tp;

t=a;a=b;b=t;

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

printf("%d%d\n",*p,*q);

}

31.下面程序的運行結果是()。

#include<stdio.h>

#defineSlZE12

main()

{chars[SIZE];inti;

for(i=0;i<SIZE;i++)s[i]='A'+i+32;

sub(s,5,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;

}

}

32.在關系數據庫中把數據表示成二維表,每一個二維表稱為【】。

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

34.若x和a均是int型變量,則計算完x=(a=4,6*2)后的x值為______。

35.下列程序的輸出結果是______。

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++)

printf("%d%d",X--,y);

}

36.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

37.在關系模型中,二維表的行稱為______。

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

39.數據的邏輯結構有線性結構和______兩大類。

40.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。

三、1.選擇題(20題)41.下面程序的輸出結果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

42.下列二維數組初始化語句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

43.下列關系運算的敘述中,正確的是()。A.A.投影、選擇、連接是從二維表行的方向進行的運算

B.并、交、差是從二維表的列的方向來進行運算

C.投影、選擇、連接是從二維表列的方向進行的運算

D.以上3種說法都不對

44.請選出以下程序的輸出結果______。#include<stdio.h>sub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

45.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

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

A.cedbaB.acbedC.decabD.deabc

47.單個用戶使用的數據視圖的描述稱為______。

A.外模式B.概念模式C.內模式D.存儲模式

48.設有定義語句:charc1=92,c2=92;,則以下表達式中值為零的是

A.c1c2

B.c1&c2C.c1~c2D.c1|c2

49.下列四個敘述中,錯誤的是_______。

A.C語言中的關鍵字必須小寫

B.C語言中的標識符必須全部由字母組成

C.C語言不提供輸入輸出語句

D.C語言中的注釋行可以出現在程序的任何位置

50.以下程序的運行結果是______。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}

A.運行后報錯B.66C.612D.55

51.進行二分法查找,則線形表______。

A.必須以順序方式存儲

B.必須以鏈接方式存儲,且數據元素已按值排好序

C.必須以鏈接方式存儲

D.必須以順序方式存儲,且數據元素已按值排好序

52.在位運算中,操作數每右移一位,其結果相當于()

A.操作數乘以2B.操作數除以2C.操作數除以16D.操作數乘以16

53.以下選項中,與k==n++完全等價的表達式是()。

A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

54.假定所有變量均已正確說明,下列程序段運行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

55.若指針ps已正確定義,要使ps指向能夠存儲8個字符的動態(tài)存儲單元,以下不正確的語句是()

A.ps=(char*)malloc(8);

B.ps=(char*)malloc(sizeof(char)*8);

C.ps=(char*)calloc(8,sizeof(char))

D.ps=8*(char*)malloc(sizeof(char))

56.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

57.若有如下定義:structstu{charname[9];intage;floatscore;);structstuclass[10]={{"Li",17,67},{"Song",19,80},{"guo",18,79},{"Zhao",16,69}};根據上面的定義,若執(zhí)行“printf("%s:%d%f",class[3].name,class[3].age,class[3].score);"則輸出的正確結果是()。

A.Song:19,80.000000

B.Zhao:16,69.000000

C.Li:17,67Song;19,80

D.guo:18,79Zhao;16,69

58.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

59.有以下程序

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3},i,n;

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

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

fprintf(fp,"\n");

fclose(fp);

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

fscanf(fp,"%d",&n);

fclose(fp);

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

}

程序的運行結果是

A.12300B.123C.1D.321

60.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.daf","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);

A.12300B.123C.1D.321

四、選擇題(20題)61.

62.下列程序執(zhí)行后的輸出結果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}

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

63.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

程序的運行結果是

A.to

B.tomeet

C.toee

D.程序段不能通過編譯

64.在一個C源程序文件中所定義的全局變量,其作用域為()。

A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數的全部范圍D.所在文件的全部范圍

65.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當執(zhí)行程序時,輸出的結果是()。A.-1B.1C.4D.0

66.有以下程序:

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

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

67.

68.

69.執(zhí)行語句“for(i=1;i++<;4;);”后,變量i的值是()。

A.3B.4C.5D.不定

70.有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的輸出結果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx

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

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

B.算法程序的長度

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

D.算法程序中的指令條數

72.

73.

有以下程序段:

intx=3;

do

{printf("%d",x-=2);)

while(!(--x));

其輸出結果是()。

A.1B.30C.1-2D.死循環(huán)

74.某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是A.10B.8C.6D.4

75.數據流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅動C.模塊調用D.數據流

76.有以下程序

77.設有定義:

則以下賦值語句中錯誤的是()。

A.data2=(2,6);

B.data2=datal;

C.data;real=datal.real;

D.data2.real=datal.unreal;

78.有以下程序:

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

A.SunDan20042

B.SunDan20044

C.LiSiGuo20042

D.YangSan20041

A.提高耦合性、降低內聚性有利于提高模塊的獨立性

B.降低耦合性、提高內聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

79.有以下程序:

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

A.32B.12C.21D.22

80.

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:依次取出字符串中所有的數字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請修改函數proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編寫一個函數proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數放在數組a中,通過n返回這些數的個數。

例如,若傳給m的值為70,則程序輸出:

7111421222833354244495556636670

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidproc(intm,int*a,int*n)

{}

voidmain

{

intarr[N],n,k;

system("CLS");

proc(70,arr,&n);

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

if((k+1)%20==0)//每行輸出20個數

{printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}

參考答案

1.C

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

3.D解析:本題考核的知識點是用戶的標識符。在C語言中,合法的標識符由字母、數字和下劃線組成,并且第一個字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標識符號.而2asdf、_sd/=都不是合法的標識符.在C語言中大寫字母和小寫字母被認為是兩個不同的字符,如:ACD和acd是兩個不同的標識符號。選項D中用下劃線作為第一個字符,這是不合法的,故選項D不正確,所以,4個選項中選項D符合題意。

4.D

5.Bstrcat函數是字符串連接函數,調用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應該是第一參數,選項A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調用strcat函數,s1是第一參數。所以正確的函數調用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項。

6.C內部靜態(tài)變量是始終存在的,當函數被調用退出后,內部靜態(tài)變量會保存數據,再次調用該函數時,以前調用時的數值仍然保留著。Fun(a,5)的值是l5,再次調用后slim=15,所以Fun(b,4)=45,s=45+15=60。

7.A解析:C語言中的函數可以進行遞歸調用,但不能在函數中定義函數,即函數不能嵌套定義。函數可以沒有返回值,若有返回值,則返回值類型必須確定。

8.B

9.D解析:本題考查的知識點是do-while循環(huán)結構循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:

先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,

如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復合語句。

C語言中的do—while語句是在表達式“真”時重復執(zhí)行循環(huán)體。

在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環(huán)執(zhí)行的條件而不是循環(huán)結束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結束條件的子集,后一部分不是結束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結束條件的子集,所以選項D滿足題意。所以4個選項中D正確。

10.B

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

12.C

\n語句charp[]={a,b,c);定義了一個一維字符數組p[],并用3個字符a,b,c進行了初始化;而語句q[]='abe'表示定義了一個一維字符數組,并用一個字符串常量'abc'進行了初始化。在C語言中,系統(tǒng)在每個字符串常量的最后自動加入一個字符\0作為字符串的結束符。所以函數sizeof(q)=4,而sizeof(p)=3,因而選項C為正確答案。

\n

\n

\n

13.AC語言中,函數聲明的函數名、返回值類型和參數列表必須與函數定義相同。其中參數列表中可以省略參數名。題干中,fun函數返回整型,3個參數分別是:整型指針、整型指針、整型。選項A中,第1個參數應該是整型指針類型,第2個參數也應該是指針類型,錯誤;其他選項都正確。故本題答案為A選項。

14.A本題考查符符串比較函數和兩個字符串比較的原則這兩個知識點。

(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大(2)strcmp(s1,s2)的返回值,當str1<str2時,返回值為負數;當str1=str2時,返回0;當str1>str2,返回值為正數。

15.A

16.B

17.B濫用90t0語句將使程序的流程毫無規(guī)律,可讀性差,對于初學者來說盡量不要使用,所以A錯誤?!獋€結構化程序可以包含順序、分支、循環(huán)結構中的一種或多種,所以C錯誤。由三種基本結構構成的程序可以解決任何復雜的問題,所以D錯誤。

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

19.C解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”(或“先進后出”)的線性表;而隊列只允許在表的一端進行插入操作,在另一端:進行刪除操作,是一種“先進先出”(或“后進后出”)的線性表。因此棧和隊列的共同點是只允許在端點處插入和刪除元素。

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

21.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數據的數據結構是棧;按'先進先出'原則組織數據的數據結構是隊列。

22.身份證號身份證號解析:主關鍵字是表中區(qū)別不同記錄的標識,在該表中只有身份證號能具有這個作用,所以用其作為主關鍵字。

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

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.連接兩個字符數組中的字符連接兩個字符數組中的字符解析:strcat函數的作用是連接兩個字符數組中的字符串。

26.方法方法解析:在面向對象方法中,方法是指允許作用于某個對象上的各種操作。

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

28.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數據結構,從而大大減少了程序中的冗余,提高軟件的可重用性。

29.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。

30.3535解析:在主函數中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數調用“swap(p,q)”,把p和q中的地址值傳給了形參指針.變量a和b,a和b分別指向了實參x和y。在函數swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實參的值,所以函數調用返回后x和y依舊是原來的值。

31.abcdelkjihgfabcdelkjihgf解析:本題先給字符型數組s的12個元素賦值a到1共12個字母,函數sub(char*a,intt1,intt2)的功能是將數組a的從第t1+1個元素到t2+1個元素進行逆置,在主函數中調用sub(s,5,SIZE-1)函數,是將數組s的第6個元素到第12個元素進行逆置,其他元素位置不變。

32.關系或一個關系關系或一個關系解析:在關系數據庫中,把數據表示成二維表,而一個二維表就是一個關系。

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

34.1212解析:x=(表達式1,表達式2,…)的形式,結果為最后一個表達式的值:x=(a=4,6*2)=2*6=12。

35.101091101091解析:for(表達式1;表達式2;表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

36.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。

37.元組元組解析:在關系型數據庫中,用二維表來表示關系,二維表的表名即關系名,二維表的行稱為關系的元組,二維表的列,稱為關系的屬性。

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

39.非線性結構非線性結構

40.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結構分析,代碼質量度量等。靜態(tài)測試不實際運行軟件。

41.C解析:字符串少一個結束標志,所以輸出的結果不確定。

42.D解析:在對二維數組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數組元素個數。

在選項D)賦值表達式中,對每一維的元素賦初值應用{},而不是()。

43.C解析:在關系模型的數據語言中,一般除了運用常規(guī)的集合運算(并、交、差、笛卡爾積等),還定義了一些專門的關系運算,如投影、選擇、連接等。前者是將關系(即二維表)看成是元組的集合,這些運算主要是從二維表的行的方向來進行運算的。后者是從二維表的列的方向來進行運算的。

44.B解析:sub()函數的作用是將形參y和x的差賦給了z指向的那個內存地址,所以在sub(10,5,&A),10和5屆于值傳遞,a是屬于地址傳遞,也就是a與z指向了同一個存儲單元,在執(zhí)行函數后,a的值隨*z變化,所以此次函數被調用后,a的值為y-x=-5,同理可知,在sub(7,a,&B)后,b的值發(fā)生變化,其值為-5-7=-12,在sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

45.D關系R與s經交運算后所得到的關系是由那些既在R內又在S內的共有元組組成的,記為RnS。

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

47.A解析:選項A)正確,外模式是用戶的數據視圖,也就是用戶所見到的數據模式;選項B)不正確,全局數據視圖的描述稱為概念模式,即數據庫中全部數據的整體邏輯結構的描述;選項C)不正確,物理存儲數據視圖的描述稱為內模式,即數據庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內模式。

48.A解析:選項A為異或運算符,如果參加運算的兩個位相同,結果為0,否則為1。顯然選項A中參加運算c1和c2相同,故其值位0;選項B為位與運算,如果參加運算的兩位都為1,則結果為1,否則結果為0,選項B中參加運算的c1和c2都為真,所以結果為1;選項C為取反運算,用來對一個二進制取反,顯然c2取反后不為0,選項D為異或運算,參加運算的兩位只要有一個為1,那么運算結果為1,顯然參加運算的c1和c2都不為0,故運算結果不為0。

49.B解析:C語言規(guī)定標識符只能由字母、數字和下劃線3種字符組成,且第—個字符必須為字母或下劃線。

50.A解析:用指針變量p+5對指針變量q進行賦值的正確方法為p=q+5。

51.D

52.B

53.A解析:在本題中k=n++,為后綴運算。根據其運算規(guī)則,首先n先加一,但n++表達式的值依然為n原來的值,即k的值變?yōu)閚加1之前的值。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價;選項B中先n加1,然后將n加1后的值賦給k,所以這個表達式和本題中表達式不等價:選項C中先計算表達式++n的值,執(zhí)行++n后,k變?yōu)閚加1后的值,所以這個表達式和題目中的表達式不等價;選項D中表達式展開為k=k=(n+1),k被累加,所以這個表達式和題目中的表達式不等價。所以4個選項中A正確。

54.B解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個if語句,判斷條件,發(fā)現c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

55.D

56.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

57.B解析:class[10]是結構體型的數組,class[3]為{'Zhao',16,69}。

58.B解析:在一維數組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

59.B解析:在函數中首先把整型數組a[10]中的每個元素寫入文件d1.dat中,然后再次打開這個文件,把文件d1.dat中的內容讀入到整型變量n中,最后輸出變量n的值。

60.B解析:在函數中首先把整型數組a[10]中的每個元素寫入文件d1.dat中,然后再次打開這個文件,把文件d1.dat中的內容讀入到整型變量n中,最后輸出變量n的值。

61.A

62.D解析:本題中的宏調用MA(1+a+b)展開后的結果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以輸出的結果是8,選項D正確。

63.C本題屬于綜合性題目,考查的知識點有字符數組的指針表示,for循環(huán)與if語句的結合,初始時定義兩個字符數組:str和str1,用兩個指針p、p1分別指向這兩個數組,每個數組中都是長度為8的字符串。定義變量i作為數組下標的增量,if語句表示如果有*(p+i)=*(p1+i),即str[i]=str1[i],則將相同的字符輸出。tomeetme中與toseeyou相同位置上具有的相同字符為toee。

64.A全局變量的作用域是從聲明處到文件的結束。所以選擇A)。

65.A本題考查do-while循環(huán)。當--y是0(即y是o)時結束循環(huán),輸出--y,先將y的值減1再輸出Y的值。

66.Dintm=1,n=2,*P=&m,。q=&Il,*r;即指針變量P指向m,指針變量q指向n,r=P;P=q;q=。;即通過指

溫馨提示

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

最新文檔

評論

0/150

提交評論