2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計_第1頁
2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計_第2頁
2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計_第3頁
2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計_第4頁
2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩113頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是()。

A.循環(huán)隊列B.棧C.順序表D.循環(huán)鏈表

2.設(shè)無向圖的頂點數(shù)為n,則該圖最多有()條邊。

A.n-1B.n(n-1)/2C.n(n+1)/2D.0

3.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項中不能正確引用字符串的是()。

A.*p[3]B.p[3]C.str[2]D.*p

4.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是()。A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

5.if語句基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

6.設(shè)散列表中m個存儲單元,散列函數(shù)為H(key)=key%p,p是最好選擇()。

A.小于等于m的最大奇數(shù)B.小于等于m的最大素數(shù)C.小于等于m的最大偶數(shù)D.小于等于m的最大合數(shù)

7.

8.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

9.下面程序的時間復(fù)雜為()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)

10.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

11.

12.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

13.算法的時間復(fù)雜度是指______。

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

14.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為

A.21B.78C.23D.28

15.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運行后的輸出結(jié)果是______。

A.3B.5C.-1D.-216

16.設(shè)有100個元素,用折半查找法進行查找時,最大比較次數(shù)是_____。

A.25B.50C.10D.7

17.下列定義中,不正確的有______。

A.#definePI3.141592

B.#defineS345;

C.intmax(x,y);

D.staticcharc;intx,y;{...}

18.設(shè)有以下函數(shù):voidfun(intn,char*s){…}則下面對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

19.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

20.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結(jié)果是()。A.10,64B.10,10C.64,10D.64,64

二、2.填空題(20題)21.下列程序段的運行結(jié)果是______。

charstr口="ABCD",*p=str;

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

22.一棵二叉樹中共有80個葉子結(jié)點與10個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為【】。

23.以下函數(shù)用來求出2個整數(shù)之和,并通過形參將結(jié)果傳回。

voidfunc(intx,inty,【】z)

{*z=x+y;}

24.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

25.在面向?qū)ο蠓椒ㄖ校瑢傩耘c操作相似的一組對象稱為【】。

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

#include<stdio.h>

main()

{intx=3,y=2,z=1;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

27.已知a=1,b=2,則表達(dá)式(a&B)&b||b的結(jié)果為()。

28.在關(guān)系模型中,若屬性A是關(guān)系R的主碼,屬性A的取值不能為空,稱為約束。

29.以下程序的運行結(jié)果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

printf("\n");}

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

31.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

32.計算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

33.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

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

voidswap(intx,inty)

{intt;

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

}

main()

{inta=3,b=4;

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

}

35.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

37.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

38.以下程序運行后輸入:3,abcde<回車>,則輸出結(jié)果是______。

#include<string.h>

move(char*str,intn)

{charcemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1);

str[0]=temp;}

main()

{chars[50];intn,i,z;

scanf(“%d,%s”,&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

printf(“%s\n”,s);

}

39.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。

structnode

{intinfo;

【】link;};

40.當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是【】。

三、1.選擇題(20題)41.下列敘述中正確的是()。

A.break語句只能用于swish語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

42.有下列程序:

main()

{intt,a=1,b=5,C=-2;

while(a>b>C)

{t=a;a=b;b=t;c++;}

printf("%d,%d,%d",a,b,C);

}

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

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

43.有以下程序

#include<stdio.h>

voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/

{intt,i,j;

for(i=0;i<n-1;j++)

for(j=i+1;j<n;j++)

if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

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

printf("\n");

}

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

A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

44.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

45.關(guān)系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束

46.數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進行的運算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映象D.邏輯存儲

47.設(shè)q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

48.一個數(shù)據(jù)元素第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是()。

A.110B.108C.100D.120

49.下列對于軟件測試的描述中正確的是______。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

50.在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定

51.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

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

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

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

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考

52.閱讀下面程序,則程序段的功能是

#include"stdio.h"

main()

{intc[]={23,1,56,234,7,0,34},i,j,t;

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

{t=c[i];j=i-1;

while(j>=0&&t>c[j])

{c[j+1]=c[j];j--;}

c[j+1]=t;}

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

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

putchar(′\n′);}

A.對數(shù)組元素的升序排列B.對數(shù)組元素的降序排列C.對數(shù)組元素的倒序排列D.對數(shù)組元素的隨機排列

53.若有如下說明,則______的敘述是正確的。structst{inta;intb[2];}a;

A.結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義是非法的

B.程序只在執(zhí)行到該定義時才為結(jié)構(gòu)體st分配存儲單元

C.程序運行時為結(jié)構(gòu)體st分配6個字節(jié)存儲單元

D.類型名structst可以通過extern關(guān)鍵字提前引用(即引用在前,說明在后)

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

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

55.在C語言中,運算對象必須是整型數(shù)的運算符是()。

A.%B.\C.%和\D.**

56.以下選項中,不能作為合法常量的是

A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0

57.已經(jīng)定義ch為字符型變量,以下賦值表達(dá)式中錯誤的是______。

A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'

58.若有如下程序:floatsub(inta,intb){return(a*b);}main(){inti=1,j=2,k=3;printf("%4.0f\n",sub((int)sub(k+j,j),k+i));}則程序運行后的輸出結(jié)果是()。

A.40B.32C.16D.編譯出錯

59.設(shè)變量已正確定義,則以下能正確計算f=n!的程序段是______。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

60.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

四、選擇題(20題)61.有以下程序:

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

A.7

B.3

C.20)O

62.已知inta=15,執(zhí)行語句a=a<<2以后,變量a的值是()。

A)20B)40

C)60D)80

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

A.C語言的可執(zhí)行程序是由一系列機器指令構(gòu)成的

B.用C語言編寫的源程序不能直接在計算機上運行

C.通過編譯得到的二進制目標(biāo)程序需要連接才可以運行

D.在沒有安裝C語言集成開發(fā)環(huán)境的機器上不能運行C源程序生成的.exe文件

64.程序調(diào)試的任務(wù)是()。

A.設(shè)計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

65.

66.

當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。

#include<stdio.h>

main

{charc;

c=getchar;

while(c!=?)

{putehar(e);break;

}

}

A.RvfsuB.hC.?D.hello

67.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。A.A.s1的內(nèi)容更新為abcdefghiB.s1的內(nèi)容更新為defghi\0

C.s1的內(nèi)容更新勾defghiabc\0

D.s1的內(nèi)容更新為abcdefghi\0

68.

69.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。

A.外模式B.內(nèi)模式C.概念模式D.邏輯模式

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

A.5B.3C.2D.0

71.

有以下程序

#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

72.

73.有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A.9B.編譯出錯

C.21D.9.0

74.以下語句中存在語法錯誤的是()。

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

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

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

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

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

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

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

77.有以下程序程序的運行結(jié)果是()。

78.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

for(j=i+1;j<5;j++)

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

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

A.550550B.580550

C.680680D.580680

79.將c語言的整數(shù)設(shè)為整數(shù)類1,則下面屬于類I實例的是()。

A.一103B.10E3C.10.3D.“0103”

80.為了使模塊盡可能獨立,要求()。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的偶合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已在主函數(shù)中賦予。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<strin9.h>#include<stdi0.h>#defineM80voidproc(char*arr){inti,j,n;charch;n=strlen(arr):for(i=1;i<n;i++)//****found****{c=arr[i];j=i-1;while((j>=o)&&(ch<arr[j])){arr[j+1]=arr[j];j--;}arr[j+1]=ch;}}voidmain{chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf("Theoriginalstring:%s\n",a);proc(a);printf("Thestringaftersortin9:%s\n\n",a);}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式求P的值,結(jié)果由函數(shù)值返回。m與n為兩個正整數(shù)且要求m>n。例如:m=12,n=8時,運行結(jié)果為495.000000。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B解析:循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),隊列是以先進先出為原則組織數(shù)據(jù)的一種特殊線性表,選項A錯誤;棧是以先進后出為原則組織數(shù)據(jù)的一種特殊線性表,選項B正確;順序表是線性表的順序存儲結(jié)構(gòu),選項C錯誤;循環(huán)鏈表是一般線性表的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),選項D錯誤。

2.B

3.A“*P[3]”是一個字符,也就是str[3][0],不是字符串,選項A錯誤?!癙[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項。

4.D解析:在用基本輸出函數(shù)printf時,格式說明與輸出項的個數(shù)應(yīng)該相同。如果格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。

5.D考查if循環(huán)語句。if(表達(dá)式),其中表達(dá)式是一個條件,條件中可以是任意的合法的數(shù)值。

6.B

7.D

8.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項為所選。

9.B

10.A本題主要考查SQL中一些基本的命令。SQL常用的語句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL語言中使用率最高的是Select,這個命令的作用是從表中查找出滿足條件的記錄。

Insert命令的作用是對數(shù)據(jù)表進行插入操作。

Update命令的作用是對數(shù)據(jù)表進行更新操作。

Delete命令的作用是對數(shù)據(jù)表中的數(shù)據(jù)進行刪除操作。

Create命令的作用是創(chuàng)建數(shù)據(jù)表。

Alter命令的作用是修改表的結(jié)構(gòu)。

Drop命令的作用是用來刪除表,它與Delete的區(qū)別是進行Drop操作后,數(shù)據(jù)表不存在了,而進行Delete操作后,數(shù)據(jù)表還在,只是數(shù)據(jù)被刪除了。

11.C

12.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。

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

14.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。

15.D解析:本題主要考查++執(zhí)行的次序。執(zhí)行過x=-m++;后,x=-3,m=4;執(zhí)行x=x+8/++n;時8/++n=1;因此最后x=-216。

16.D

17.C

18.A函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時,直接將函數(shù)指針指向函數(shù)名就行了。所以選項A正確。

19.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

20.A本題考查帶參數(shù)的宏定義。第一次函數(shù)調(diào)用求S的值,x=a+1,所以X*X*X應(yīng)寫成a+1*a+1*a+1,沒有括號優(yōu)先級,結(jié)果為l0,第二次函數(shù)調(diào)用x*X*X可寫成(a+1)*(a+1)*(a+1),所以結(jié)果為43=64。

21.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d,格式輸出的,即輸出其相應(yīng)ASCII碼值68。

22.179179解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中的二叉樹有80個葉子結(jié)點,因此,該二叉樹有80-1=79個度為2的結(jié)點;又知本題中的二叉樹有10個度為1的結(jié)點。因此,本題中的二叉樹總結(jié)點數(shù)為:葉子結(jié)點數(shù)+度為1的結(jié)點數(shù)+度為2的結(jié)點數(shù)=80+10+79=179

23.int*

24.內(nèi)聚內(nèi)聚

25.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。

26.11解析:ifelse語句的功能是:若表達(dá)式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達(dá)式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執(zhí)行printf語句,在整個過程中變量z的值都沒發(fā)生變化。

27.1

28.實體完整性實體完整性

29.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

30.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

31.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

32.CIRCLE(RLSV)S=PI*R*Rr1sv

33.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

34.4334

35.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。

36.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

37.維護維護

38.cdeabcdeab解析:本題考核的知識點是基本算法的應(yīng)用和程序的綜合分析。從分析知道m(xù)ove()函數(shù)的作用,是將形參str所指的數(shù)組依次向后左移一位,即讓該數(shù)組第一個元素的值等于第二個元素的值,接著讓第二個元素的值等于第三個元素的值,直到該數(shù)組最后第二個元素的值等于最后一個元素的值,然后讓第一個元素等于最后一個元素的值。主函數(shù)中用了一個for循環(huán)調(diào)用move()函數(shù),共循環(huán)三次。當(dāng)i=1時,第一次調(diào)用move()函數(shù),使輸入到數(shù)組的s的字符串“abcde”變?yōu)椤癳abcd”,當(dāng)i=2時,第二次調(diào)用move()函數(shù),使字符串“eabcd”變?yōu)椤癲eabc”,當(dāng)i=3時,第三次調(diào)用move()函數(shù),使字符串“deabc”變?yōu)椤癱deab”,故最后輸出的值為“cdeab”,故該空格處應(yīng)該填“cdeab”。

39.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。

40.數(shù)組的首地址數(shù)組的首地址解析:在函數(shù)中,可以通過指針變量來引用調(diào)用函數(shù)中對應(yīng)的數(shù)組元素,此操作是通過傳遞數(shù)組的首地址來實現(xiàn)的。

41.D解析:break為C語言關(guān)鍵字,又稱間斷語句。break語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default是關(guān)鍵字,起標(biāo)號的作用,代表所有case標(biāo)號之外的那些標(biāo)號。default標(biāo)號可以出現(xiàn)在語句體中任何標(biāo)號位置上。在switch語句體中也可以沒有default標(biāo)號.

42.A解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達(dá)式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。

43.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。

44.D解析:在C語言格式字符的輸出中,“%d”是以帶符號的十進制形式輸出整數(shù);“%60”是以8進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符o);“%x”是以16進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符Ox)。

45.C數(shù)據(jù)約束是用來確保數(shù)據(jù)的準(zhǔn)確性和一致性的。常見的四種數(shù)據(jù)約束如下:

(1)實體完整性約束:規(guī)定表的每一行在表中是唯一的實體。

(2)域完整性約束:是指表中的列必須滿足某種特定的數(shù)據(jù)類型約束,其中約束又包括取值范圍、精度等規(guī)定。

(3)參照完整性約束:是指兩個表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)一致,保證了表之間數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴散。

(4)用戶定義的完整性約束:不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用必須滿足的語義要求。

在上述四種數(shù)據(jù)約束中,不屬于關(guān)系模型定義的三種數(shù)據(jù)約束的是域完整性約束。

46.A解析:數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究和討論以下三個方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu);③對各種數(shù)據(jù)結(jié)構(gòu)進行的運算。

47.B解析:選項A)中是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算;選項C)中,是兩個指針變量之間的賦值;選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

48.B解析:數(shù)據(jù)元素的存儲位置均取決于第一個數(shù)據(jù)元素的存儲位置,即:

LOC(aj)=LOC(a)1+(i-1)C

↑↑

基地址一個數(shù)據(jù)元素所占的字節(jié)數(shù)

所以第5個元素的地址=100+2×(5-1)=108。

49.C解析:軟件測試的目的:盡可能地多發(fā)現(xiàn)程序中的錯誤,不能也不可能證明程序沒有錯誤,軟件測試是一個發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。

50.B解析:C語言以定,實參變量對形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實參傳紿形參。在內(nèi)存中,實參單元與形參單元是不同的單元。調(diào)用結(jié)束后,實參單元仍保留并維持原值。

51.C解析:面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同。它的基本原理是,使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,它鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考。

52.B解析:讀懂兩個循環(huán)的關(guān)系,是解這個題目的關(guān)鍵,本題的第一個for循環(huán)的作用是實現(xiàn)對數(shù)組元素的遍歷,第二個循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個語句是控制排序的關(guān)鍵語句,它即實現(xiàn)了比較兩個元素大小的作用,又實現(xiàn)了元素向后移動的作用,不斷地把大的數(shù)據(jù)向前移動,直到找到一個比它小的,或到數(shù)據(jù)的上界為止。

53.D解析:結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名是合法的定義,引用成員a的方法是a.a,變量a處于不同的“層次”上,系統(tǒng)完全能夠分情。st是—個結(jié)構(gòu)體名,不會為結(jié)構(gòu)體名分配存儲空間,應(yīng)該是在運行時為結(jié)構(gòu)體變量a分配6個字節(jié)的存儲單元,故選項B和選項C錯誤。

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

55.A解析:在C語言中,“%”運算符兩側(cè)的運算數(shù)必須是整型。

56.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。

57.A解析:反斜杠字符“\\”賦給字符,應(yīng)該寫成ch='\\\\',所以A是錯誤的。

58.A解析:因為函數(shù)sub()只是簡單地返回兩個參數(shù)的乘積,所以表達(dá)式sub((int)sub(k+j,j),k+i)展開后就是:(int)((k+j)*j)*(k+i)=((3+2)*2)*(3+1)=10*4=40。所以程序運行后的輸出結(jié)果是40,應(yīng)該選擇A。

59.D解析:選項A中,f初值設(shè)為0。則執(zhí)行循環(huán)體后,所得的乘積值始終為0,不符合題意。選項B中,for循環(huán)條件是i<n,則當(dāng)i為n時即退出循環(huán),所以求得的乘積值是(n-1)!,也不符合題意。選項C中,i的初值為n,且i在每次執(zhí)行循環(huán)體后都增加1,則如果n為大于1的數(shù),程序會陷入死循環(huán)。只有選項D符合題意,求得f的值為n*(n-1)*(n-2)*…*2,即n!。

60.DD)【解析】數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

61.C

62.C對a進行右移兩位的操作,原來為1111,右移兩位后變成111100等于60.

63.Dc語言的可執(zhí)行程序是由一系列機器指令組成的。用C語言編寫的源程序必須經(jīng)過編譯生成二進制目標(biāo)代碼,再經(jīng)過連接才能運行,并且可以脫離c語言集成開發(fā)環(huán)境。故答案為D)。

64.D程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。

65.A

66.A

\n本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個輸出,當(dāng)用戶輸入“?”時停止輸出,且c是一個字符變量只占一個字節(jié)。

\n

67.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。

68.A

69.B數(shù)據(jù)庫有三層模式結(jié)構(gòu),邏輯模式是數(shù)據(jù)的全局邏輯結(jié)構(gòu)的描述,外模式也稱為子模式,是局部數(shù)據(jù)的邏輯結(jié)構(gòu)描述,而內(nèi)模式也稱為存儲模式,是數(shù)據(jù)庫物理存儲結(jié)構(gòu)和存取方法的描述。

70.C本題考查簡單的if…else語句。先執(zhí)行條件if(a<b),顯然不成立,然后執(zhí)行else語句。

71.C

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

\n

72.D

73.A本題主要考查函數(shù)的嵌套調(diào)用。在本題中,首先定義了函數(shù)fun,該函數(shù)的返回類型為浮點型,函數(shù)帶有兩個整型形參,函數(shù)的作用不難看出是返回兩個形參的和。

在主函數(shù)中,定義了三個整型變量a,b,c,并分別賦初值為2,5,8,然后嵌套調(diào)用fun函數(shù)。輸出語句fun((int)fun(a+c,b),a-c)首先調(diào)用嵌套的fun函數(shù),即(int)fun(a+c,b),按照前面對fun函數(shù)的介紹,它應(yīng)該返回的值為a+c+b=15,由于函數(shù)在前面加了強制數(shù)據(jù)類型轉(zhuǎn)換,將本來的返回結(jié)果浮點型轉(zhuǎn)換為了整型,并作為函數(shù)的參數(shù),與函數(shù)定義的參數(shù)類型匹配,程序編譯不報錯,然后執(zhí)行fun函數(shù),它返回的結(jié)果為15+a-c=9,此時的結(jié)果應(yīng)該是浮點型,即為9.0,但輸出語句的輸出格式是“%3.0f”,說明無須輸出小數(shù)部分,因此,最終的輸出結(jié)果是9。

74.A數(shù)組定義后,不能對數(shù)組整體賦值,ss是二維數(shù)組,因為ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用“strcpy(ss[1],"right”);”的形式,而選項A)中對二維數(shù)組中的第“l(fā)”維(相當(dāng)于一個一維數(shù)組)賦值,是不可以的。選項B)和D)是在定義時對數(shù)組同時進行初始化,這是可以的。選項c)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。故本題答案為A)。

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

76.D

77.A本題主要考查的是函數(shù)。在fun函數(shù)中,首先將形參nl和n2分別賦給局部變量i和j,然后使用]while循環(huán),交換s[i]和s[j]的內(nèi)容,并使i增1、j減1,直到i不小于j為止。所以該函數(shù)實現(xiàn)的功能是:對形參指針s所指的一系列元素,從第nl位到第n2位進行逆序。主函數(shù)中,連續(xù)調(diào)用T3次fun函數(shù)依次對數(shù)組a的第0-3位、第4~9位和第0~9位進行了逆序。對0~3位逆序后,數(shù)組。的內(nèi)容是{4,3,2,1,5,6,7,8,9,0};再對4~9位逆序后是I4,3,2,l,0,9,8.7,6,5};最后對0~9位逆序后是I5,6?!?,8,9,0,l,2。3,4}。

78.B本題實際上是按成員變量Score的值進行由小到大的排序,程序執(zhí)行后,數(shù)組p[5]中各元素分別為:

{{'Penghua',20045,537},

{'SunDan',20044,550},

{'LiSiGuo',20042,580},

{'WangYin',20043,680},

{'YangSan',20041,703}}

所以,p[1]->Score=550,s[1].Score=580。故本題答案為B。

79.A整數(shù)類實例包括:十進制常量用0—9表示,不能以0開頭;/k進制常量用0-7表示,必須用0開頭;十六進制常量用0—9和A—F(a—f)表示,必須以0x或OX開頭。本題中B選項是科學(xué)計數(shù)法表示的浮點數(shù)實例,c選項是浮點數(shù)實例,D選項是字符串實例。故選A選項。

80.B解析:系統(tǒng)設(shè)計的質(zhì)量主要反映在模塊的獨立性上。評價模塊獨立性的主要標(biāo)準(zhǔn)有兩個:一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度;二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內(nèi)聚程度盡量地高。綜上所述,選項B的答案正確。

81.錯誤:c=arr[i];正確:ch=arr[i];【解析】由函數(shù)定義可知,函故proc只定義了變量ch,沒有定義變量C。因此,“c=arr[i]:”應(yīng)改為“ch=arr[i];”。

82.1floatfun(intm,fintn){Floatp1=1,p2=1,p3=1;inti;for(i=1;i<=m;i++)pi*=i;for(i=l;i<=n;i++)p2*=i;for(i=l;i<=(m-n);i++)p3*=i;returnpi/(p2*p3);本題考查循環(huán)的使用。通過3個for循環(huán)分別計算階乘。其中p1=m!,p2=n!,p3=(m-n)!。2022-2023年四川省南充市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是()。

A.循環(huán)隊列B.棧C.順序表D.循環(huán)鏈表

2.設(shè)無向圖的頂點數(shù)為n,則該圖最多有()條邊。

A.n-1B.n(n-1)/2C.n(n+1)/2D.0

3.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項中不能正確引用字符串的是()。

A.*p[3]B.p[3]C.str[2]D.*p

4.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是()。A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

5.if語句基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

6.設(shè)散列表中m個存儲單元,散列函數(shù)為H(key)=key%p,p是最好選擇()。

A.小于等于m的最大奇數(shù)B.小于等于m的最大素數(shù)C.小于等于m的最大偶數(shù)D.小于等于m的最大合數(shù)

7.

8.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

9.下面程序的時間復(fù)雜為()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)

10.下列SQL語句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

11.

12.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

13.算法的時間復(fù)雜度是指______。

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

14.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為

A.21B.78C.23D.28

15.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運行后的輸出結(jié)果是______。

A.3B.5C.-1D.-216

16.設(shè)有100個元素,用折半查找法進行查找時,最大比較次數(shù)是_____。

A.25B.50C.10D.7

17.下列定義中,不正確的有______。

A.#definePI3.141592

B.#defineS345;

C.intmax(x,y);

D.staticcharc;intx,y;{...}

18.設(shè)有以下函數(shù):voidfun(intn,char*s){…}則下面對函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

19.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

20.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結(jié)果是()。A.10,64B.10,10C.64,10D.64,64

二、2.填空題(20題)21.下列程序段的運行結(jié)果是______。

charstr口="ABCD",*p=str;

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

22.一棵二叉樹中共有80個葉子結(jié)點與10個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為【】。

23.以下函數(shù)用來求出2個整數(shù)之和,并通過形參將結(jié)果傳回。

voidfunc(intx,inty,【】z)

{*z=x+y;}

24.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

25.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。

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

#include<stdio.h>

main()

{intx=3,y=2,z=1;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

27.已知a=1,b=2,則表達(dá)式(a&B)&b||b的結(jié)果為()。

28.在關(guān)系模型中,若屬性A是關(guān)系R的主碼,屬性A的取值不能為空,稱為約束。

29.以下程序的運行結(jié)果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

printf("\n");}

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

31.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

32.計算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

33.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

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

voidswap(intx,inty)

{intt;

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

}

main()

{inta=3,b=4;

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

}

35.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

37.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

38.以下程序運行后輸入:3,abcde<回車>,則輸出結(jié)果是______。

#include<string.h>

move(char*str,intn)

{charcemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1);

str[0]=temp;}

main()

{chars[50];intn,i,z;

scanf(“%d,%s”,&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

printf(“%s\n”,s);

}

39.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。

structnode

{intinfo;

【】link;};

40.當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是【】。

三、1.選擇題(20題)41.下列敘述中正確的是()。

A.break語句只能用于swish語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

42.有下列程序:

main()

{intt,a=1,b=5,C=-2;

while(a>b>C)

{t=a;a=b;b=t;c++;}

printf("%d,%d,%d",a,b,C);

}

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

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

43.有以下程序

#include<stdio.h>

voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/

{intt,i,j;

for(i=0;i<n-1;j++)

for(j=i+1;j<n;j++)

if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

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

printf("\n");

}

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

A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

44.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}

A.k=11,k=12,k=11

B.k=11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

45.關(guān)系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束

46.數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進行的運算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映象D.邏輯存儲

47.設(shè)q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

48.一個數(shù)據(jù)元素第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是()。

A.110B.108C.100D.120

49.下列對于軟件測試的描述中正確的是______。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

50.在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定

51.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

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

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

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

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考

52.閱讀下面程序,則程序段的功能是

#include"stdio.h"

main()

{intc[]={23,1,56,234,7,0,34},i,j,t;

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

{t=c[i];j=i-1;

while(j>=0&&t>c[j])

{c[j+1]=c[j];j--;}

c[j+1]=t;}

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

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

putchar(′\n′);}

A.對數(shù)組元素的升序排列B.對數(shù)組元素的降序排列C.對數(shù)組元素的倒序排列D.對數(shù)組元素的隨機排列

53.若有如下說明,則______的敘述是正確的。structst{inta;intb[2];}a;

A.結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義是非法的

B.程序只在執(zhí)行到該定義時才為結(jié)構(gòu)體st分配存儲單元

C.程序運行時為結(jié)構(gòu)體st分配6個字節(jié)存儲單元

D.類型名structst可以通過extern關(guān)鍵字提前引用(即引用在前,說明在后)

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

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

55.在C語言中,運算對象必須是整型數(shù)的運算符是()。

A.%B.\C.%和\D.**

56.以下選項中,不能作為合法常量的是

A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0

57.已經(jīng)定義ch為字符型變量,以下賦值表達(dá)式中錯誤的是______。

A.ch='\'B.ch=62+3C.ch=NULLD.ch='\xaa'

58.若有如下程序:floatsub(inta,intb){return(a*b);}main(){inti=1,j=2,k=3;printf("%4.0f\n",sub((int)sub(k+j,j),k+i));}則程序運行后的輸出結(jié)果是()。

A.40B.32C.16D.編譯出錯

59.設(shè)變量已正確定義,則以下能正確計算f=n!的程序段是______。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

60.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

四、選擇題(20題)61.有以下程序:

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

A.7

B.3

C.20)O

62.已知inta=15,執(zhí)行語句a=a<<2以后,變量a的值是()。

A)20B)40

C)60D)80

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

A.C語言的可執(zhí)行程序是由一系列機器指令構(gòu)成的

B.用C語言編寫的源程序不能直接在計算機上運行

C.通過編譯得到的二進制目標(biāo)程序需要連接才可以運行

D.在沒有安裝C語言集成開發(fā)環(huán)境的機器上不能運行C源程序生成的.exe文件

64.程序調(diào)試的任務(wù)是()。

A.設(shè)計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

65.

66.

當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。

#include<stdio.h>

main

{charc;

c=getchar;

while(c!=?)

{putehar(e);break;

}

}

A.RvfsuB.hC.?D.hello

67.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。A.A.s1的內(nèi)容更新為abcdefghiB.s1的內(nèi)容更新為defghi\0

C.s1的內(nèi)容更新勾defghiabc\0

D.s1的內(nèi)容更新為abcdefghi\0

68.

69.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。

A.外模式B.內(nèi)模式C.概念模式D.邏輯模式

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

A.5B.3C.2D.0

71.

有以下程序

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論