2021-2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁
2021-2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁
2021-2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁
2021-2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁
2021-2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若k是int類型變量,且有以下for語句:for(k=-1;k<O;k++)printf("****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、A.循環(huán)體執(zhí)行一次B.循環(huán)體執(zhí)行兩次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

2.下面程序輸出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,

3.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

4.線性表是具有n個(gè)()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.表元素

5.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進(jìn)行的關(guān)鍵字依次為()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

6.若執(zhí)行下列的程序時(shí),從鍵盤上輸入1和2,則輸出結(jié)果是()。

#include<stdio.h>

main()

{inta,b,s;

scanf("%d%d",&a,&B);

S=a;

if(a<B)s=b;

s=s*s;

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

}

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

7.程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21

8.有以下程序

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main()

{char*s1="abc",*s2="123";

swap(s1,s2);printf("%s,%s\n",s1,s2);

}

程序執(zhí)行后的輸出結(jié)果是A.123,abcB.abc,123C.1bc,a23D.321,cba

9.表達(dá)式9!=10的值為()。

A.非零值B.trueC.0D.1

10.設(shè)文件指針fp已定義,執(zhí)行語句“fP=foPen(“file”,“w”);”后,下列針對(duì)文本文件file操作敘述的選項(xiàng)中正確的是()。

A.只能寫,不能讀B.寫操作結(jié)束后可以從頭開始讀C.可以在原有內(nèi)容后追加寫D.可以隨意讀和寫

11.設(shè)有定義intn=0,*p=&n,**q=&p;,則下列選項(xiàng)中正確的賦值語句是

A.p=1;B.*q=2;C.q=p;D.*p=5;

12.若有定義“inta=0,b=1,c=1;”,關(guān)于邏輯表達(dá)式“a++||b++&&c++”中各個(gè)部分的執(zhí)行順序,以下說法正確的是()。

A.先執(zhí)行“b++”,再執(zhí)行“c++”,最后執(zhí)行“a++”

B.先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“c++”

C.先執(zhí)行“c++”,再執(zhí)行“b++”,最后執(zhí)行“a++”

D.先執(zhí)行“b++”,再執(zhí)行“a++”,最后執(zhí)行“c++”

13.以下敘述中錯(cuò)誤的是()。

A.通過指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

B.在程序的開頭包含頭文件stdio.h后,可以給指針變量賦NULL值

C.將一個(gè)指針變量中的值賦給另一個(gè)指針變量,則這兩個(gè)指針變量指向同一地址

D.C語言中函數(shù)返回值的類型可以是簡(jiǎn)單的數(shù)據(jù)類型,也可以是指針類型

14.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。

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

15.同一個(gè)關(guān)系模型的任意兩個(gè)元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對(duì)

16.算術(shù)運(yùn)算符和圓括號(hào)有不同的運(yùn)算優(yōu)先級(jí),對(duì)于表達(dá)式“a+b+c*(d+e)”,關(guān)于執(zhí)行順序,以下說法正確的是()。

A.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“a+b”得r1,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果

B.先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果

C.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“b+r3”得r4,最后執(zhí)行“a+r4”得表達(dá)式最后結(jié)果

D.先執(zhí)行“a+b”得r1,再執(zhí)行“r1+c”得r5,再執(zhí)行“(d+e)”得r2,最后執(zhí)行“r5*r2”得表達(dá)式最后結(jié)果

17.

18.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

19.

20.有以下程序:

執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0

二、2.填空題(20題)21.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計(jì)屬于______中的一個(gè)階段。

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

23.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】?jī)刹糠纸M成。

24.函數(shù)sub的功能是根據(jù)下面近似分式求π的值。

(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

現(xiàn)在請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π值的功能。

#include"math.h"

doublesub(longm)

{doublesum=0.0,t;longn;

for(n=1;n<=m;n++)sum+=【】;

t=sqrt(6*sum);

return(t);

}

25.若輸入2、2,則下列程序的運(yùn)行結(jié)果為【】。

main()

{inti,j,(*p)[4],

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

p=a;

scanf("%d%d",&i,&j);

printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));

}

26.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

27.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}

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

main()

{inta=177;

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

29.數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

30.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁铡?/p>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

printf("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

______=x;

}

}

31.以上程序運(yùn)行后的輸出結(jié)果是【】。

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

32.[]的任務(wù)是診斷和改正程序中的錯(cuò)誤。

33.fun1函數(shù)的功能是將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個(gè)變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個(gè)變量中的值。補(bǔ)足所缺語句。

fun2(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

fun1(int*p1,int*p2,int*p3)

{if(*p3>*p2)fun2(*P2,*p3);

if(*p1<*p3)fun2(______);

if(*p1<*p2)fun2(______);

}

main()

{inta,b,c;

scanf("%d%d%d",&a,&b,&c);

fun1(&a,&b,&c);

printf("%d,%d,%d\n",a,b,c);

}

34.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。

35.函數(shù)fun的功能是計(jì)算xn。

doublefun(doublex,intn)

{inti;doubley=1;

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

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。

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

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

38.派生類對(duì)基類繼承控制訪問有三種。派生類可以定義其基類中不具備的【】。

39.以下程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

40.一個(gè)關(guān)系表的行稱為()。

三、1.選擇題(20題)41.以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()

A.棧B.線性表C.隊(duì)列D.二叉樹

42.下面不屬于軟件設(shè)計(jì)原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

43.在C語言中,下列關(guān)于文件操作的敘述正確的是()。

A.對(duì)文件操作必須先關(guān)閉文件B.對(duì)文件操作必須先打開文件C.對(duì)文件操作順序沒有統(tǒng)一規(guī)定D.以上全錯(cuò)

44.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是______。

A.23B.26C.33D.36

45.有以下程序main(){unsignedinta;intb=-l;a=b;printf("%u",a);}程序運(yùn)行后的輸出結(jié)果是

A.-1B.65535C.32767D.-32768

46.若變量已正確定義,要求程序段完成求5!的計(jì)算,不能完成此操作的程序段是()。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

47.下列關(guān)于棧的描述中錯(cuò)誤的是()

A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入與刪除操作中,不需要改變棧底指針

48.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再?gòu)?fù)制到字符串str3之后

C.將字符串str2復(fù)制到字符串str1后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串str1復(fù)制到字符串str3中

49.請(qǐng)讀程序:#include<stdio.h>f(char*s){cahr*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n”,f("ABCDEF"));}上面程序的輸出結(jié)果是()

A.3B.6C.8D.0

50.若有以下定義,則正確的swish語句是______。floatx;inta,b;

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch(x){case1,2:printf("*\n");case3:printf("**\n");}

C.switch(a+b){case1:printf("\n");case1+2:printf("**\n");}

D.switch(a+b);{case1:printf("*\n");case2:printf("**\n");}

51.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與實(shí)體間的聯(lián)系可以表示成()。

A.屬性B.關(guān)系C.鍵D.域

52.軟件文檔不僅是軟件開發(fā)各階段的重要依據(jù),而且也影響軟件的______。

A.可維護(hù)性B.可移植性C.可擴(kuò)展性D.可用性

53.以下選項(xiàng)中可作為C語言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

54.下列選項(xiàng)中合法的賦值語句是()。

A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);

55.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

56.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

57.設(shè)棧S的初始狀態(tài)為空。元素a、b、c、d、e、f依次通過棧S,若出棧的順序?yàn)閎、d、c、f、e、a,則棧S的容量至少應(yīng)該為()。

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

58.若已定義x和y為double類型,則表達(dá)式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5

59.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)

60.已知x=3、y=2則表達(dá)式x*=y(tǒng)+8的值為()

A.3B.2C.30D.10

四、選擇題(20題)61.以下敘述中錯(cuò)誤的是()。

A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

B.c程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件

C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個(gè)文本文件中

D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序

62.

63.

64.

65.

66.鏈表不具有的特點(diǎn)是A.A.不必事先估計(jì)存儲(chǔ)空間

B.可隨機(jī)訪問任一元素

C.插入和刪除不需要移動(dòng)元素

D.所需空間與線性表長(zhǎng)度成正比

67.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

68.“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。

A.一對(duì)一B.多對(duì)一C.一對(duì)多D.多對(duì)多

69.設(shè)變量n為float類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

70.

71.閱讀下面程序,則執(zhí)行后的結(jié)果是()。

A.tomeetme

B.tmem

C.oete

D.tome

72.輸出語句:prinff(”%d\n”,ll+011);的輸出結(jié)果是()。

A.20B.22C.022D.021

73.

74.

75.

76.有以下程序

#include"stdio.h"

main()

{structdate

{intyear,month,day;}today;

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

}

程序的運(yùn)行結(jié)果是

A.6B.8

C.12D.10

77.

78.CSS指的是下列()的縮寫。

A.ComputerStyle.Sheets

B.CascadingStyle.Sheets

C.CreativeStyle.Sheets

D.ColorfulStyle.Sheets

79.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫的劃分原則是()。

A.記錄長(zhǎng)度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun()的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為13。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。

例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。

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

請(qǐng)勿改動(dòng)maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(chara)

{

voidmain

{

chars[81];

print{("Enterastring:\n");

gets(s):

fun(S);

printf("Thestringafterdeleted:\n");

puts(s);

}

參考答案

1.A本題考查簡(jiǎn)單的for語句,程序中當(dāng)k<0時(shí)循環(huán)才執(zhí)行,所以答案選擇A。

2.D本題考查雙重函數(shù)調(diào)用及for循環(huán)使用,fun函數(shù)中第一個(gè)for循環(huán)語句的作用是給數(shù)組a賦值。當(dāng)?shù)谝淮握{(diào)用fun函數(shù)時(shí),把實(shí)參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調(diào)用fun函數(shù)時(shí),由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。

3.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個(gè)運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010^00000011=00000001,即1。

4.B

5.A

6.B解析:本題考查if語句。scanf函數(shù)通過鍵盤讀入a、b的值,a=1,b=2。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。

7.D[解析]聲明data是結(jié)構(gòu)S數(shù)組。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函數(shù)中p=data[1];即p.a=data[1].a;p.b=data[1].b;執(zhí)行語句prit("%odn",++(pa);打印輸出時(shí)p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.

8.C解析:此題考核的知識(shí)點(diǎn)是指針變量值的交換。c語言中,字符串常量在內(nèi)存中是以字符數(shù)組的形式進(jìn)行存放的,因此字符指針x和y指向的是各字符串的首地址,也就是字符串第—個(gè)字符的地址,則*x與*y交換的是字符串的第—個(gè)字符,即字符“a”與“1”的交換,而字符串中其它字符保持不變,所以答案選C。

9.D

10.A以“w”方式打開文件時(shí)只能寫,不能讀。故本題答案為A選項(xiàng)。

11.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲(chǔ)單元中。注意:通過指針引用一個(gè)存儲(chǔ)單。

12.BC語言中運(yùn)算符有優(yōu)先級(jí)和結(jié)合性。自增、自減運(yùn)算符的優(yōu)先級(jí)高于邏輯運(yùn)算符,邏輯運(yùn)算符中邏輯與“&&”的優(yōu)先級(jí)比邏輯或“||”高,邏輯運(yùn)算符的結(jié)合性自左向右。所以題干中表達(dá)式等價(jià)于“(a++)||((b++)&&(c++))”。運(yùn)算順序?yàn)椋菏紫葓?zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“C++”。故本題答案為B選項(xiàng)。

13.A通過指針變量存取某個(gè)變量值的方式稱為“間接存取”方式,選項(xiàng)A錯(cuò)誤;頭文件stdio.h中定義了NULL,在程序的開頭包含stdio.h后,可以給指針變量賦NULL值,表示一個(gè)空指針,選項(xiàng)B正確;將一個(gè)指針變量中的值賦給另一個(gè)指針變量,這兩個(gè)指針變量指向同一地址,選項(xiàng)C正確;C語言中函數(shù)返回值的類型可以是簡(jiǎn)單的數(shù)據(jù)類型,也可以是指針類型,選項(xiàng)D正確。故本題答案為A選項(xiàng)。

14.A解析:在主函數(shù)main()中,語句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

15.B關(guān)系具有以下7個(gè)性質(zhì)。①元組個(gè)數(shù)有限性:二維表中元組的個(gè)數(shù)是有限的。②元組的唯一性:二維表中任意兩個(gè)元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項(xiàng)。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個(gè)性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項(xiàng)。

16.B題干表達(dá)式中,圓括號(hào)的優(yōu)先級(jí)最高,乘法運(yùn)算符次之,加法運(yùn)算符最低。同優(yōu)先級(jí)中,加法運(yùn)算符的結(jié)合性從左向右結(jié)合,所以題干中的表達(dá)式執(zhí)行順序是:先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果。故本題答案為B選項(xiàng)。

17.D

18.D解析:在C語言中,字符串常量是以雙引號(hào)括起來的字符序列。故選項(xiàng)B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項(xiàng)A中包含了三個(gè)“\\”,前兩個(gè)(\\\\)代表了一個(gè)“\\”字符,后面一個(gè)和“'”一起(\\”)被看作一個(gè)……,所以該字符串缺少一個(gè)結(jié)束的“'”,故不正確。選項(xiàng)D的兩個(gè)……之間沒有任何字符,代表的是一個(gè)空串,是合法的字符串常量,故應(yīng)該選擇D。

19.D

20.C調(diào)用函數(shù)fun(7)時(shí),由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);

調(diào)用函數(shù)fun(5)時(shí),由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);調(diào)用函數(shù)fun(3)時(shí),由于X的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);調(diào)用函數(shù)fun(1)時(shí),由于x的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。

因此函數(shù)調(diào)用fun(7)等價(jià)于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。

21.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

22.可重用性可重用性解析:繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

23.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。

24.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果寫為1/(n*n),則會(huì)因?yàn)?和n都為整型,結(jié)果則為實(shí)型,將1變?yōu)?.0,結(jié)果則為實(shí)型。

25.a[22]=11

26.無限無限解析:分析程序“while(s)”語句后面有一個(gè)“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。

27.45794579解析:本題考查的是條件判斷語句。本題特別需要注意的是“;”的問題,不能把“t=a;a=c;c=t;”誤認(rèn)為是第一個(gè)if的語句,實(shí)際上,只有“t=a;”才是第一個(gè)if的語句。所以判斷第一個(gè)if語句的表達(dá)式不成立后,執(zhí)行的是“a=c;c=t;”,此時(shí)a=5,c=79。然后判斷第二個(gè)if語句的條件表達(dá)式,表達(dá)式成立,執(zhí)行后面的3條語句,讓a、b、c分別為4、5和79。

28.261261解析:在控制格式符中“O”代表的是將數(shù)據(jù)按八進(jìn)制輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261,所以該空格處應(yīng)該填寫261。

29.概念設(shè)計(jì)階段概念設(shè)計(jì)階段解析:數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫運(yùn)行和維護(hù)階段。

30.br[i]

31.5252解析:do...while語句的形式為:

do

{

語句;

}while(條件表達(dá)式)

當(dāng)條件表達(dá)式為非零時(shí),繼續(xù)執(zhí)行循環(huán)體,直到條件表達(dá)式為零時(shí)退出循環(huán)。

32.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開發(fā)階段。

33.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本題考查的知識(shí)點(diǎn)有3個(gè),①指針變量作為形參,②函數(shù)的嵌套調(diào)用,③排序的基本方法。

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

35.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

36.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。

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

38.數(shù)據(jù)和操作數(shù)據(jù)和操作

39.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

40.元組元組解析:一個(gè)關(guān)系表中的行稱為元組,列稱為屬性。

41.DD)【解析】二叉樹屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作;隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表。

42.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。

43.B解析:本題考查對(duì)文件的操作。文件打開后才可以對(duì)文件進(jìn)行操作,使用結(jié)束后要關(guān)閉文件。對(duì)文件的操作都是順序讀寫,即從文件的第一個(gè)數(shù)據(jù)開始,依次進(jìn)行讀寫。

44.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實(shí)際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時(shí),aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時(shí)p所指向的是aa[O][0],輸出2,而i=1時(shí)執(zhí)行了++p操作使指針向后移動(dòng)指向了aa[0][1],所以在輸出*p時(shí)應(yīng)為3。

45.B解析:本題考核的知識(shí)點(diǎn)是無符號(hào)整型數(shù)據(jù)的簡(jiǎn)單運(yùn)用。程序中定義了一個(gè)無符號(hào)整型變量a和一個(gè)整型變量b,并且給它賦初值為-1,整型在計(jì)算機(jī)中都以二進(jìn)制表示的,-1在二進(jìn)制表示為1000000000000001,所以當(dāng)表示為無符號(hào)整數(shù)時(shí)轉(zhuǎn)換為十進(jìn)制為32767,故最后輸出的無符號(hào)型a的值為32767。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意

46.B解析:選項(xiàng)B中for循環(huán)了5次,而每次循環(huán)的時(shí)候,都將p的值重新賦值為1后,再乘以當(dāng)前數(shù)字i,所以最后的結(jié)果為5,顯然不是5!的值,同樣的分析可知選項(xiàng)A、選項(xiàng)C和選項(xiàng)D計(jì)算的都是5!。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

47.B解析:在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照先進(jìn)后出(FILO,F(xiàn)irstInLastOut)或后進(jìn)先出(LIFO,LastInFirstOut)的原則組織數(shù)據(jù)的,因此,棧也被稱為先進(jìn)后出表或后進(jìn)先出表。由此可以看出,棧具有記憶作用。答案B錯(cuò)在帶鏈的棧的結(jié)點(diǎn)存儲(chǔ)順序與其邏輯順序是可以不一致的。

48.C解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制給s1字符串,要保證s1能容納下連接或復(fù)制后的字符串。

49.B

50.C解析:switch后必須是整型或字符型的表達(dá)式,因此選項(xiàng)A、B錯(cuò)誤;表達(dá)式的括號(hào)外沒有分號(hào),因此選項(xiàng)D錯(cuò)誤。

51.B解析:將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作。從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。

52.A

53.A解析:C語言的常量分為整型常量、實(shí)型常量和字符型常量。本題中包含整型常量和實(shí)型常量。選項(xiàng)B)以0打頭,應(yīng)該屬于八進(jìn)制整數(shù),而八進(jìn)制整數(shù)只能用數(shù)字0~7表示,所以選項(xiàng)B)不合法;選項(xiàng)C)和D)從形式上看屬于實(shí)型常量,但對(duì)于指數(shù)形式的實(shí)型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項(xiàng)C)和D)都不合法;選項(xiàng)A)屬于實(shí)型常量中正確的十進(jìn)制小數(shù)形式。

54.D解析:選項(xiàng)A)是一個(gè)合法的賦值表達(dá)式,但結(jié)尾沒加分號(hào),所以它不是一個(gè)賦值語句;選項(xiàng)B)是一個(gè)逗號(hào)表達(dá)式,也因?yàn)榻Y(jié)尾沒有加分號(hào)而不是合法的賦值語句,選項(xiàng)C)是一個(gè)算術(shù)表達(dá)式,雖然有分號(hào),但這個(gè)表達(dá)式?jīng)]有賦值操作,因此,也不是一條賦值語句。

55.A解析:函數(shù)定義時(shí)如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實(shí)際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

56.B解析:在程序中如果有帶實(shí)參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語句中相應(yīng)的實(shí)參代替形參。將實(shí)參帶入已經(jīng)定義的宏中,可以得出答案為“12”。

57.A解析:根據(jù)題中給定的條件,可以作如下的模擬操作:①元素a,b進(jìn)棧,棧中有2個(gè)元素,分別為a,b;②元素b出棧后,元素c,d進(jìn)棧,棧中有3個(gè)元素,分別為a,c,d;③元素d,c出棧后,元素e,f進(jìn)棧,棧中有3個(gè)元素,分別為a,e,f;④最后,元素f,e,a出棧,棧為空??梢钥闯觯M(jìn)棧的順序?yàn)閍,b,c,d,e,f,出棧的順序?yàn)閎,d,c,f,e,a,滿足題目要求。每次進(jìn)棧操作后,棧中最多有3個(gè)元素,所以,為了順利完成這些操作,棧的容量應(yīng)至少為3。本題的正確答案為A。

58.C解析:這是一個(gè)逗號(hào)表達(dá)式,它的值應(yīng)為表達(dá)式y(tǒng)=x+3/2的值,而前一個(gè)表達(dá)式已給x賦值1,在沒有進(jìn)行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。

59.B在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)8中表達(dá)式E>0||E<0是一個(gè)邏輯表達(dá)式。

60.C

61.Ac語言中的非執(zhí)行語句不會(huì)被編譯,不會(huì)生成二進(jìn)制的機(jī)器指令,因此A)選項(xiàng)錯(cuò)誤。由C語言構(gòu)成的指令序列稱為C源程序,c源程序經(jīng)過c語言編譯程序編譯之后生成一個(gè)后綴為obj的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.0bj文件與c語言提供的各種庫函數(shù)連接起來生成一個(gè)后綴為.exe的可執(zhí)行文件。根據(jù)上述分析可知,A)選項(xiàng)敘述錯(cuò)誤。

62.C

63.A

64.C

65.D

66.B鏈表是一種特殊的線性表,鏈表的存儲(chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)不同,它的存儲(chǔ)區(qū)域可以是任意的存儲(chǔ)單元,對(duì)存儲(chǔ)系統(tǒng)中零碎的存儲(chǔ)部分具有更好的應(yīng)用,在給其分配存儲(chǔ)單元時(shí),不必事先估計(jì)整個(gè)存儲(chǔ)單元的空間大小;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲(chǔ)數(shù)據(jù)時(shí),對(duì)其進(jìn)行插入和刪除操作時(shí),不需要移動(dòng)其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點(diǎn),并將該結(jié)點(diǎn)的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論