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

下載本文檔

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

文檔簡介

2021年山西省忻州市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun

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

2.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運行的結(jié)果是()。A.9B.61490C.61D.5

3.該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()#includeMain(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);print("outputn:");print("%d\n",p);A.intn,*p=NULL;

B.*p=&n;

C.scanf("%d",&p)

D.printf("%d\n",p);

4.數(shù)據(jù)在計算機存儲器內(nèi)表示時,如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。

A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈式存儲結(jié)構(gòu)

5.以下說法錯誤的是()。

A.C語言標識符中可以有多個字母、數(shù)字和下劃線字符

B.C語言標識符中下劃線字符可以出現(xiàn)在任意位置

C.C語言標識符不能全部由數(shù)字組成

D.C語言標識符必須以字母開頭

6.能正確表示x>=3或者x<1的關(guān)系表達式是()。

A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1

7.以下能正確定義一維數(shù)組的選項是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

8.以下說法中正確的是()。

A.C程序總是從第一個定義的函數(shù)開始執(zhí)行

B.C程序總是從main函數(shù)開始執(zhí)行

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

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個程序文件中

9.若以下選項中的變量全部為整型變量,且已正確定義并賦值,則語法正確的switch語句是()。

A.switch(a+9){casecl:y=a-b;casec2:y=a+b;}

B.switcha*b{casel0:x=a+b;default:y=a-b;}

C.switch(a+b){casel:case3:y=a+b;break;case0:case4:y=a-b;}

D.switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}

10.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運行結(jié)果是()。

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

11.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。

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

12.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“THIS\0”,*b=“OK\0\0”;printf(“%d,%d,%d,%d”,strlen(a),sizeof(a),strlen(b),sizeof(b));}程序運行后的輸出結(jié)果是()。

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

13.

14.下列排序算法中,其時間復(fù)雜度和記錄的初始排列無關(guān)的是()

A.插入排序B.堆排序C.快速排序D.冒泡排序

15.棧通常采用的兩種存儲結(jié)構(gòu)是A.A.線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)

B.散列方式和索引方式

C.鏈表存儲結(jié)構(gòu)和數(shù)組

D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

16.對長度為n的無序線性表進行順序查找,則查找成功、不成功時的平均數(shù)據(jù)比較次數(shù)分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

17.以下關(guān)于鏈式存儲結(jié)構(gòu)的敘述中,()是不正確的。

A.結(jié)點除自身信息外還包括指針域,因此存儲密度小于順序存儲結(jié)構(gòu)

B.邏輯上相鄰的結(jié)點物理上不必鄰接

C.可以通過計算直接確定第i個結(jié)點的存儲地址

D.插入、刪除運算操作方便,不必移動結(jié)點

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

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

19.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l

20.以下關(guān)于C語言文件系統(tǒng)的敘述中正確的是()。

A.fprintf與fwrite函數(shù)功能相同

B.文件以“r”方式打開后,可以存儲文本類型的數(shù)據(jù)

C.fscanf與fread函數(shù)功能相同

D.以“w”或“wb”方式打開的文件,不可以從中讀取數(shù)據(jù)

二、2.填空題(20題)21.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。

22.以下條件表達式可計算:1+|a|的值,請?zhí)羁?。a>=0?[6]:[7]

23.以下程序運行后的輸出結(jié)果是______。

#include<string.h>

main()

{charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

}

24.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進行循環(huán)的條件判定。

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

#include<stdio.h>

main()

{intx=27;

while(x>20&&x<30)

{x++;

if(x/3){x++;break;}

else

continue;

}

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

}

26.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

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

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

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

}

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

27.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

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

29.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

30.數(shù)據(jù)庫理論中,數(shù)據(jù)的獨立性一般可分為物理獨立性和______。

31.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

32.以下程序運行后的輸出結(jié)果是【】。

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

33.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

34.防止軟盤感染病毒的最有效的方法是【】。

35.以下程序運行后的輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

char*ss(char*s)

char*p,t;

p=s+1:t=*s:

whilet*p){*(,p-1)=*p;p++;}

*(p-1)=t;

returns:}

main()

{char*p,str[10]="abedefgh";

p=ss(str);printf("%s\n".p):}

36.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

37.以下程序運行后的輸出結(jié)果是______。

main()

{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{if(i==2||i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

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

}

38.在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【】。

39.在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當調(diào)用的函數(shù)是【】函數(shù)。

40.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。

三、1.選擇題(20題)41.設(shè)x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

42.在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為A.概念模式B.外模式C.內(nèi)模式D.物理模式

43.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

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

A.typedefvlint;

B.typedefv2=int

C.typedefintv3;

D.typedefv4:int

45.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

46.若有以下程序#include<stdio.h>voidf(intn);main()(voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}則以下敘述中不正確的是

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在土函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正碗調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:提示對f函數(shù)重復(fù)況明

D.函數(shù)f無返回值,所以可用void將其類型定義為無值型

47.以下選項中不合法的標識符是

A.printB.FORC.&aD._00

48.有定義語句:"inta=1,b=2,c=3,x;",則以下選項中各程序段執(zhí)行后,x的值不為3

A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;

B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;

D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;

49.下列程序的輸出結(jié)果是______。main(){inti=0x100,j=100,k=0100;printf("%d%d%d\n",i,j,k);}

A.100100100B.16100100C.25610064D.256100100

50.擁有PC機并以撥號方式接入網(wǎng)絡(luò)的用戶需要配置()

A.CD-ROMB.ModemC.電話機D.鼠標

51.當說明一個結(jié)構(gòu)體變量時系統(tǒng)分配給它的內(nèi)存是()。

A.各成員所需要內(nèi)存量的總和

B.結(jié)構(gòu)中第一個成員所需的內(nèi)存量

C.成員中占內(nèi)存最大者所需的容量

D.結(jié)構(gòu)中最后一個成員所需要的內(nèi)存量

52.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);

B.intfun(double,int);

C.intfun(double*x,intn);

D.intfun(double*,int*);

53.在下列敘述中,錯誤的一條是()

A.形式參數(shù)是局部變量

B.不同函數(shù)中,可以使用相同名字的變量

C.主函數(shù)main中定義的變量在整個文件或程序中有效

D.在―個函數(shù)內(nèi)部,可在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效

54.若有定義和語句()chars[10];s="abcd";printf("%s\n",s);則結(jié)果是(以下μ代表空格)

A.輸出abcdB.輸出aC.abcdμμμμμD.編譯不通過

55.下列程序的輸出結(jié)果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}

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

56.下列程序是用來判斷數(shù)組中特定元素的位置所在的。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

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

if(s[*k]<s[i])*k=i;

returns[*k];}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

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

如果輸入如下整數(shù):876675896101301401980431451777

則輸出結(jié)果為

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

57.在嵌套使用if語句時,C語言規(guī)定else總是()。

A.和之前與其具有相同縮進位置的if配對

B.和之前與其最近的if配對

C.和之前與其最近不帶else的if配對

D.和之前的第一個if配對

58.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

59.有以下程序:mam(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出的結(jié)果是()。

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

60.以下程序有語法錯誤,有關(guān)錯誤原因的正確說法是()。main(){intG=5,k;voidprt_char();┆k=prt_char(G);┆}

A.語句voidprt_char();有錯,它是函數(shù)調(diào)用語句,不能用void說明

B.變量名不能使用大寫字母

C.函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾

D.函數(shù)名不能使用下劃線

四、選擇題(20題)61.

62.

若有下列定義和語句:

intu=011,v=0x11,w=11;

printf("%o,%x,%d\n",u,v,w);

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

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

63.設(shè)變量X和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

64.軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護階段D.上述三個階段

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

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

66.下面程序段的運行結(jié)果是

charstr[]="ABC",*p=str;

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

A.67B.0C.字符’C’的地址D.字符’C’

67.下列能正確進行字符串賦值的是()。A.A.chars[5]={”ABCI)E”);

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";

D.char*s;printf("%S",s);

68.

69.下面各選項中,均是C語言中合法標識符的選項組是

A.forchinatoB.long_123short56_do

C.voidunion_342D.text_023_3ew

70.有以下程序,其輸出結(jié)果是()。

voidmain()

{

floarx=1;

inty;

x++;

y=x+1;

printf("x=%d,y=%f",x,y);

}

A.x=2,y=3

B.x=2,y=3.0

C.x=2.0,y=3

D.x=0,y=0.000000

71.

72.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的

D.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)

73.有以下程序

74.在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點的是A.一致性B.分類性C.多態(tài)性D.標識唯一性

75..C語言運算對象必須是整型的運算符是

A.%B./C.=D.<

76.

77.

78.

79.(41)在下列選項中,哪個不是一個算法一般應(yīng)該具有的基本特征()

A.確定性

B.可行性

C.無窮性

D.擁有足夠的情報

80.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。設(shè)例如,當k為20時,函數(shù)的值應(yīng)為1.551759。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)voidproc(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶數(shù)、不為1的各整數(shù),并按從大到小的順序放在PP所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。

例如,若x的值為30,則有3個數(shù)符合要求,它們是15,5,3。

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

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

試題程序:

參考答案

1.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

2.C在fun函數(shù)中,while循環(huán)的功能是逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個數(shù)保存到變量n中,并返回變量n的值。

3.A選項B)的正確寫法應(yīng)為p=&n;選項C)的正確寫法應(yīng)為scanf("%d",p);選項D)的正確寫法應(yīng)為print("%d\\n",*p)。

4.C

5.DC語言的合法的標識符的命名規(guī)則是:標識符可以由字母、數(shù)字和下劃線組成,并且第1個字符必須是字母或下劃線。選項D錯誤。本題答案為D選項。

6.C

7.B解析:選項A)定義的是長度為5的數(shù)組元素,但初值有6個元素,所以錯誤;選項C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項D)的類型說明符錯誤,應(yīng)改為char;選項B)中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以正確。

8.B解析:C++程序總是從main函數(shù)開始執(zhí)行。

9.D選項A,當cl和c2相等時,不成立;選項B,a*b要用括號括起來;選項C,case與后面的數(shù)字用空格隔開。

10.D靜態(tài)變量是始終存在的,當函數(shù)變量退出后,靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項。

11.CChar類型數(shù)據(jù)占1個字節(jié)。

12.Astrlen函數(shù)求得參數(shù)中字符串的長度(不包括字符串結(jié)束標識“\\0”)sizeof函數(shù)求得特定類型參數(shù)所占存儲空間的長度。題干中a是數(shù)組名,由于定義時省略維數(shù)大小,因此數(shù)組大小是初始化的字符個數(shù),即a的數(shù)組大小為6。綜上,strlen(a)只計算字符“T”“H”“I”“S”,結(jié)果為4;sizeof(a)求得數(shù)組a的大小,結(jié)果為6;指針b指向一個字符串“OK\\0\\0”,所以strlen(b)只計算字符“O”“K”,結(jié)果為2;sizeof(b)求得指針占用存儲空間的大小,結(jié)果為4。故本題答案為A選項。

13.D

14.B

15.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。

16.C

17.C

18.D

19.C只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。

20.Dfprintf函數(shù)和fscanf函數(shù)都可以讀寫文本文件,而fwrite和fread函數(shù)可以讀寫二進制文件,選項A、C錯誤;文件以“r”方式打開后,只可以讀取文本數(shù)據(jù),選項B錯誤。故本題答案為D選項。

21.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。

22.

23.abcbcc

24.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進行條件判定。

25.2929解析:本題考查while循環(huán)和++運算,x=27符合循環(huán)條件,執(zhí)行循環(huán)體中x++后,x=28,if條件也成立,執(zhí)行x++后退出,x的值增1,結(jié)果x=29。

26.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

28.11解析:用“&&”連接兩個表達式時,若第1個表達式的值為“假”,則運算結(jié)果與第2個表達式無關(guān),此時第2個表達式將不再進行計算。本題中第1個表達式“j=!ch”值為0,所以第2個表達式i++將不再進行計算,i的值為1。

29.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

30.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)的獨立性一般可分為物理獨立性和邏輯獨立性。

31.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

32.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,使后一個數(shù)為前一個數(shù)的2倍加1。所以最后輸出為1、3、7、15。

33.概念(或概念級)概念(或概念級)

34.進行寫保護進行寫保護

35.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個字符b,然后將首字符保存在字符變量t中;從字符串的第2個字符開始,通過語句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過語句*(P-1)=t;將保存在t中的字符放到移動后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。

36.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當n=4時,判斷條件不滿足,退出循環(huán)。

37.92

38.關(guān)系關(guān)系解析:在數(shù)據(jù)庫中,一個表就是一個關(guān)系。一個關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。

39.rewind()或fseek()rewind()或fseek()

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

41.A解析:本題主要考查按位與運算,x=011050的二進制形式為000100100010t000,01252的二進制形式為0000001010101010,兩者相與得0000001000101000。

42.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式也稱子模式或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式也稱邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。內(nèi)模式也稱存儲模式或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方法的描述。根據(jù)上述介紹可知,數(shù)據(jù)庫系統(tǒng)中用戶所見到的數(shù)據(jù)模式為外模式。因此,本題的正確答案是B。

43.C解析:選項A和B兩個表達式都越界了;選項D中,*t[2]是目標變量,即—個整型值,而不是地址值。

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

45.C解析:C語言規(guī)定如果全局變量與局部變量同名,則在局部變量的作用域內(nèi)全局變量不起作用。程序開頭定義的變量x為全局變量,函數(shù)incre中定義的變量x是局部靜態(tài)變量,存放在靜態(tài)存儲區(qū),incre調(diào)用結(jié)束后不釋放x占據(jù)的存儲單元。main函數(shù)中使用的x是全局變量x=3,所以main函數(shù)中調(diào)用函數(shù)incre兩次。調(diào)用過程如下。第1次調(diào)用:x=x*(x+1)=1×(1+1)=2,printf函數(shù)輸出2;第2次調(diào)用:x=x*(x+1)=2×(2+1)=6,printf函數(shù)輸出6。

46.C解析:本題考核的知識點是函數(shù)說明的方法。若一個函數(shù)定義在主調(diào)函數(shù)之后,其返回值不是int或char型,則必須對之進行函數(shù)說明??稍诤瘮?shù)外說明也可以在函數(shù)內(nèi)說明,在函數(shù)外說明,在其后的所有函數(shù)均可調(diào)用該函數(shù),若在函數(shù)內(nèi)說明,則只能在本函數(shù)內(nèi)調(diào)用該函數(shù)。函數(shù)只能定義一次,但函數(shù)說明可以出現(xiàn)多次,因此選項C是錯誤的。所以,4個選項中C為所選。

47.C解析:考查C語言標識符。C語言合法標識符的命名規(guī)則是:標識符只能由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線。因為選項C)中的標識符的第一個字符為'&',所以C)為本題的正確答案。

48.C解析:本題考核的知識點是if-else語句的程序分析。

選項A首先判斷if語句條件中表達式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項B中首先判斷if語句條件中表達式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項C中,首先選執(zhí)行第一條if,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條語句,由于“1<1”為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項D中,首先選執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3.所以,4個選項中選項c符合題意。

49.C解析:i,j初始化時分別賦予十六進制數(shù)和八進制數(shù),對應(yīng)的十進制數(shù)是256和64。

50.B

51.A解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立。

52.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。

53.C

54.D

55.D解析:本題主要考查自加(++)、自減(--)運算符的使用?!?+i,--i”在使用i之前,先使i的值加1或者減1,然后再使用i此時的值參與運算;“i++,i--”是在使用i參與表達式運算之后,再使i的值加1或者減1。本題中--a和++b是先執(zhí)行a減1和b加1操作,再輸出表達式的值。

56.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

57.C

58.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系。本題的正確答案是D。

59.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值:如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式“i--”的值為10,“++j”的值為2,所以最后輸出的值為10和2,所以,B選項為所選。

60.C解析:在C程序中,若把函數(shù)定義放在函數(shù)調(diào)用之后,應(yīng)該在函數(shù)調(diào)用之前對函數(shù)進行聲明,或稱為函數(shù)原型說明。函數(shù)聲明的類型必須與函數(shù)返回類型一致,函數(shù)聲明可以是一條獨立的語句,也可以與普通變量一起出現(xiàn)在同一條語句中。本題程序中聲明prt_char函數(shù)是void類型,與k=prt_char()的類型矛盾,所以本題的錯誤在于“函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾”。

61.D

62.C解析:在C語言中,“%d”表示輸出帶符號的十進制整型數(shù);“%x”表示以十六進制無符號型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0x或0X);“%o”表示以八進制無符號型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0)。

63.C本題考查的是if語句。if是c語言關(guān)鍵字,表達式兩側(cè)的圓括號不可少,最后是一條語句或是用花括號括起來的一組語句。選項A)和B)是在表達式后跟了一條空語句,選項D)是在表達式后跟了一組空語句,選項C)中x一一是表達式而不是語句,所以在編譯時會出現(xiàn)錯誤信息,在X一一后面加上”;”號就對了。

64.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項B正確。

65.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符合題意。

66.B在本題中,程序段首先定義了一個字符型數(shù)組str,并將其初始化為“ABC”,然后定義一個字符型的指針變量p,使其指向數(shù)組str的首地址。然后程序運行輸出語句,從輸出語句的輸出格式可以看出,要求輸出的是一個十進制數(shù)值,而輸出列表中的*(p+3)表示輸出的是數(shù)組str中的第四個元素,從數(shù)組的初始化我們可以看出,其中只有三個字符元素,而輸出語句則要求輸出第四個元素。

這里需要我們了解字符串在字符數(shù)組中的存儲方式,字符串在字符數(shù)組中存儲后,系統(tǒng)會自動給其添加一個結(jié)束標志’\\0’,即0值。因此,在用字符數(shù)組存儲字符串時,字符數(shù)組申請的空間應(yīng)該是字符串的字符個數(shù)加1。

根據(jù)上面的分析,我們可以知道輸出的第四個元素是’\\0’字符,它對應(yīng)的十進制值是0,因此本題的正確答案是B。

67.C選項A、B的空間不夠;字符串存儲要有結(jié)束符'\0',且要占用一個空間,printf用來輸出字符,不能輸入字符串。

68.D

69.D本題主要考查標識符的定義。對標識符的定義是歷次考試中??嫉膬?nèi)容之一。標識符主要由數(shù)字、下畫線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標識符時,不能將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論