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

下載本文檔

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

文檔簡介

2021-2022年廣東省云浮市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)的存儲結構是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結構在計算機中的存放形式

C.數(shù)據(jù)在計算機中的順序存儲方式

D.存儲在計算機外存中的數(shù)據(jù)

2.A.A.75310246B.01234567C.76310462D.13570246

3.C語言提供的合法關鍵字是()

A.switchB.cherC.caseD.default

4.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是()。A.大寫字母B.下劃線C.數(shù)字字符D.連接符

5.有如下定義:inta[5],*p;p=a;則下列描述錯誤的是()。

A.表達式p=p+1合法的B.表達式a=a+1是合法的C.表達式p-a是合法的D.表達式a+2是合法的

6.以下程序輸出正確的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}

A.56B.25C.34D.程序錯誤

7.下列選項中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

8.廣義表((a))的表頭是(a),表尾是()。A.aB.()C.(a)D.((a))

9.

若變量均已正確賦初值,則以下語句中

錯誤的是()。

A.tl=t2;

B.t2.numl=tl.numl;

C.t2.mark=tl.Mark

D.t2.num2=tl.hum2;

10.若有定義“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。

A.1B.1.9C.2D.2.4

11.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

12.設x和y均為bool量,則x&&y為真的條件是()。

A.它們均為真B.其中一個為真C.它們均為假D.其中一個

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

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

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

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

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

14.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

15.

16.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構

17.數(shù)組A中,每個元素的長度為4個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放在存儲器內(nèi),該數(shù)組按行存放時,元素A[8][5]的起始地址為()。

A.SA+292B.SA+296C.SA+300D.304

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

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

19.有以下程序

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í)行后的輸出結果是A.123,abcB.abc,123C.1bc,a23D.321,cba

20.有以下程序:

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

A.10B.40C.32D.8

二、2.填空題(20題)21.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內(nèi)存空間中,形成一個新字符串s。請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

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

main()

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

sstrcpy(str1,str2);

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

}

22.在數(shù)據(jù)庫的概念結構設計中,常用的描述工具是【】。

23.下列程序的運行結果是______。

#definePOW(r)(r)*?

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

24.以下函數(shù)的功能是求x的y次方,請?zhí)羁?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

}

25.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4=0)printf("\n");

printf("%3d",b[i]);

}

}

26.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum,count);

}

27.下列程序的運行結果是______。

main()

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

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

28.下述函數(shù)用于統(tǒng)計—行字符中的單詞個數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{int,num=O,word=O;

for(i=0;str[i]!=【】;i++)

if(【】=")wprd=0

elseif(word=O)

{

word=1:

【】;

}

return(num);

}

29.以下程序的運行結果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

30.下面程序的運行結果是()。#include<stdio.h>#defineSIZE12main(){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--;}}

31.若想通過以下輸入語句使a中存放字符串1234,b中存放字符5,則輸入數(shù)據(jù)的形式應該是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

32.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標。請?zhí)羁铡?/p>

#defineN3

#defineM3

select{inta[N][M],int*n;

{inti,j,row=l,eolum=l;

for(i=0;i<N;i++

forj=0;j<M;j++)

if(a[i][j]>a[row][colum]){row=i;colum=j:}

*n=______;

return______;

}

main()

{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj

max=select(a,&n);

printf("max=%d,line=%d\n",max.n;

}

33.在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊列中共有【】個元素。

34.設有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是

35.下列程序的運行結果是【】。

main()

{inti;

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

f(i);}

f(j)

{intj;

staticinta=1000;

autointk=1;

++k;

printf("%d+%d+%d=%d\n",a,k,j,a+k+j);

a+=10;}

36.算法的復雜度主要包括空間復雜度和______復雜度。

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

38.當線性表的操作無插入和刪除時,采用【】結構為好。

39.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程

序的輸出結果是______。

40.軟件設計模塊化的目的是______。

三、1.選擇題(20題)41.以下程序的輸出結果是voidfun(int*s){staticintj=0;dos[j]+=s[j+1];while(++j<2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}

A.34756B.23345C.35745D.12345

42.若要顯示或打印漢字將用到漢字編碼中的()

A.輸入碼B.字型碼C.機內(nèi)碼D.交換碼

43.以下合法的賦值語句是()

A.x=y=100B.d--;C.x+y;D.c=int(a+b);

44.設有定義下列:inta=1,b=2,c=3,d=4,m=2,n=2;則表達式(m=a>b)&&(n=c>d)運算后,n的值是()。

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

45.軟件工程的理論和技術性研究的內(nèi)容主要包括軟件開發(fā)技術和()。

A.消除軟件危機B.軟件工程管理C.程序設計自動化D.實現(xiàn)軟件可重用

46.執(zhí)行以下程序后,y的值是()main(){inta[]={2,4,6,8,10);inty=1,x,*p;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);}

A.17B.18C.19D.20

47.以下程序輸出的結果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i+0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

48.若有程序:fun(inta,intB){staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,rr=fun((y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結果是_______。

A.23B.15C.19D.18

49.以下敘述中正確的是

A.用C程序實現(xiàn)的算法必須要有輸入和輸出操作

B.用C程序實現(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序實現(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序實現(xiàn)的算法可以既沒有輸入也沒有輸出

50.以下程序(程序左邊的數(shù)字為附加的行號)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯

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

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);

52.設有下列說明語句:StrcutStr{intx;floaty;charz;}st;則下列的敘述中不正確的是()。

A.struct是結構體類型的關鍵字

B.st是結構體類型名

C.x、y、z都是結構體成員名

D.structstr是結構體類型名

53.某二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為()

A.n+1B.n-1C.2nD.n/2

54.下列關于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

55.若變量c為char類型,能正確判斷出c為小寫字母的表達式是______。

A.'a'<=c<='z'

B.(c>='a')||(c<='z')

C.('a'<=c)and('z'>=c)

D.(c>='a')&&(c<='z')

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

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

57.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的()。

A.存儲問題B.共享問題C.安全問題D.保護問題

58.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。

A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if

59.下列變量聲明合法的是()。

A.shorta=1.4e-1;

B.doubleb=1+3e2.8;

C.longdo=0xfdaL;

D.float2_aaa=1e-3;

60.若有說明語句:inta,b,c,*d=&c;則能正確從鍵盤讀入主個整數(shù)分別賦給變量a、b、c的語句是

A.scanf(“%d%d%d”,&a,&b,d);

B.scanf(“%d%d%d”,&a,&b,&d);

C.scanf(“%d%d%d”,a,b,d);

D.scanf(“%d%d%d”,a,b,*d);

四、選擇題(20題)61.

有以下程序:

voidf(intx,inty)

{intt;

if(x<y){t=x;x=Y;y=t;)

}

main

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

f(a,b);f(a,c);f(b,c);

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

}

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

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

62.數(shù)據(jù)流圖中方框表示的是()。

A.數(shù)據(jù)流B.存儲文件C.控制流D.源,潭

63.數(shù)據(jù)庫的故障恢復一般是由

A.數(shù)據(jù)流圖完成的B.數(shù)據(jù)字典完成的C.DBA完成的D.PAD圖完成

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

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

65.有以下程序:

#include<stdio.h>

main()

{inti,j,m=1;

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

{for(j=3;j>0;j--)

{if(i*j>3)break;

m*=i+j;

}

}

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

}

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

A.m=6

B.m=2

C.m=4

D.m=3

66.有以下程序:

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

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

67.

有以下程序

#include<stdi0.h>

voidfun(intn,int*p)

(intf1,f2;

if(n==1||n==2)*p=1;

else

{fun(n-1,&f1);fun(n-2,&f2);

*p=f1+f2;

}

}

main

{ints;

fun(3,&s);printf("%d",s);

}

程序的運行結果是()。

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

68.表達式“~0x11”的值是()。

A.0xFFEEB.0x71C.0x0071D.0xFFF1

69.下列敘述中正確的是()。

A.數(shù)據(jù)的邏輯結構與存儲結構是一一對應的

B.算法的時間復雜度與空間復雜度一定相關

C.算法的效率只與問題的規(guī)模有關,而與數(shù)據(jù)的存儲結構無關

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

70.

71.

72.有以下程序:

若從鍵盤輸入:ijkxyz<回車>,則輸出結果是()。

A.ijkk

B.ijkxyz

C.xyzxyz

D.jj

73.

74.若函數(shù)調(diào)用時的實參為變量時,以下關于函數(shù)形參和實參的敘述中正確的是()。

A.函數(shù)的實參和其對應的形參共占同一存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數(shù)的形參和實參分別占用不同的存儲單元

75.

76.若有定義:則以下不能正確表示該數(shù)組元素的表達式是()。

77.結構化程序設計主要強調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

78.閱讀以下程序:

該程序在編譯時產(chǎn)生錯誤,原因是()。

A.定義語句出錯,Case是關鍵字,不能用作用戶自定義標識符

B.定義語句出錯,printF不能用作用戶自定義標識符

C.定義語句無錯,sCanf不能作為輸入函數(shù)使用

D.定義語句無錯,printf不能輸出Case的值

79.下列關于棧敘述正確的是()。A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠不能被刪除D.棧底元素最先能被胍除

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B解析:數(shù)據(jù)的存儲結構,又稱為數(shù)據(jù)的物理結構,是數(shù)據(jù)的邏輯結構在計算機中的存放形式,數(shù)據(jù)的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。

2.A本題的考點是C語言的數(shù)組及其排序。本題的程序中分為2個循環(huán)體,第一個循環(huán)體將數(shù)組中1,3,5,7,2,4,6,0的前4個元素從大到小排序,這個循環(huán)體結束后數(shù)組中的值為7,5,3,1,2,4,6,0。第二個循環(huán)體將數(shù)組中7,5,3,1,2,4,6,0從第5個開始的4個元素從小到大排序,這個循環(huán)體結束后數(shù)組中的值為7,5,3,1,0,2,4,6。所以正確答案是選項A。

3.C

4.D[解析]C語言中標識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)選項中的連接符不合法。

5.B

6.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲單元中,a的各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過mailoc()函數(shù)給指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實參p與形參p,實參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲空間。最后輸出p[2],p[5]為56。

7.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應的ASCII碼值。"\0"用雙引號故不正確。

8.B

9.C結構體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)組的地址賦給另一個變量t2的成員mark數(shù)組的地址。因為地址都是固定值,不能被賦值。結構體可以進行整體的賦值。

10.A在表達式“z=0.9+x/y”中,先計算“3.6-2”,結果為1;再計算“0.9+1”,結果為1.9。因為變量z為整型,所以z的值為1。故本題答案為A選項。

11.A字符常量是使用單引號標注的單個字符,選項A錯誤;選項B屬于浮點數(shù)常量,正確;選項C屬于轉義字符常量,正確;選項D屬于轉義字符,代表八進制數(shù)011的ASCII值的字符,正確。本題答案為A選項。

12.A

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

14.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當于乘以2的n次冪,右移n位相當于除以2的n次冪。

15.A

16.C

17.B

18.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。

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

20.D整型變量ch使用八進制數(shù)020初始化,二進制數(shù)為10000,右移一位結果為1000,使用%d輸出十進制數(shù)為8。本題答案為D選項。

21.*t++*t++解析:要使sstrcpy函數(shù)實現(xiàn)字符串復制,必須將t字符串中的每個字符逐個復制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。

22.E-R圖E-R圖解析:E-R圖是設計概念模型的有力工具。

23.解析:本題考查帶參數(shù)的宏的定義及相關運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

24.xx解析:函數(shù)的定義形式為:

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求捐變量的Y次方。

25.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[j+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

26.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20的整型數(shù)組,然后通過一個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應該填入數(shù)組元素,所以應該填a或*(a+i)。

27.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結果;若表達式1的值為0,則計算表達式3的值,且為最終結果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

28.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點:

①for循環(huán)的結束條件應當是:str[i]已是字符串的最后一個字符;

②str[i]代表字符串str中的第i+1個字符;

③整型變量num的值是要記錄的單詞的個數(shù)。

C語言中規(guī)定字和會串的最后一個字和會是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通地變量num的加1累加到字符串中的單詞個數(shù)。

29.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進行fun()函數(shù)后的運算,輸出結果為m=4,k=4。將k值輸出后自行增加1,k=5,此時全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結果為“i=5k=5”。

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

31.a=123b=5

32.rowa[row][colum]row\r\na[row][colum]解析:通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標,column的作用是用來記錄最大元素的列下標。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標,分別存放在變量row和colmnn中,根據(jù)題意,應該把行下標賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。

33.3

34.D

35.100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147100+2+1=103\r\n110+2+2=114\r\n120+2+3=125\r\n130+2+4=136\r\n140+2+5=147解析:靜態(tài)局部變量的生存期為整個程序的運行期間,而作用域為定義該變量的函數(shù)或局部范圍。自動變量的建立和撤銷都是由系統(tǒng)自動進行的,所以稱為自動變量。自動變量的作用域和生存期都為定義它的局部范圍內(nèi)。對同一函數(shù)的兩次調(diào)用之間,自動變量的值是不保留的。而靜態(tài)變量則保留。注意:局部變量和全局變量的定義及其作用范圍。

36.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。

37.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+funS(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

38.順序順序解析:當線性表的操作無插入和刪除時,在對線性表進行操作時,不能改變元素的位置,采用順序結構的效率高于鏈式結構。因為采用順序結構,對元素的查找可通過計算得到。

39.QTHRGQTHRG解析:函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中,然后輸出字符數(shù)組t。

40.降低復雜性降低復雜性

41.C解析:本題考查了通過數(shù)組首地址引用數(shù)組元素的方法。第一次執(zhí)行fun(a)后,a[0]=3,a[1]=5。第二次執(zhí)行fun(a)時,因為static變量j保存著上次執(zhí)行時的值為2,所以a[2]=7,最后數(shù)組a={3,5,7,4,5}。故正確答案為選項C)。

42.B

43.B解析:選項A的結尾沒用‘;’,所以不是一條語句:選項C中的表達式不會改變?nèi)魏巫兞康膬?nèi)容,也不是合法的賦值語句;選項D有語法錯誤,int應該加上括號。所以,4個選項中只有選項B符合題意,運行后d的內(nèi)容被減一。

44.C解析:在邏輯與&&運算中,如果第一個操作數(shù)為假,則結果是假,后面的操作數(shù)不參與運算,本題中因為第一個操作數(shù)(m=a>b)為假,所以第二個操作數(shù)(n=c>d)不參加運算,因此n的值不變。

45.B軟件工程的目標是,在給定的成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品?;谶@一目標,軟件工程的理論和技術性研究的內(nèi)容主要包括:軟件開發(fā)技術和軟件工程管理。

46.C

47.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。

48.A解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結束返回15。第二次調(diào)用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。

49.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序實現(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

50.B解析:字符串復制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯誤的。

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

52.B解析:本題主要考查結構類型的定義:struct是結構體類型的關鍵字;structstr是結構體類型名;x、y、z都是結構體成員名;st是結構變量名。

53.A解析:本題考查數(shù)據(jù)結構中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹中有n個度為2的結點,則該二叉樹中的葉子結點數(shù)為n+1。因此,本題的正確答案是選項A。

54.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。棧可以采用順序存儲,也可以采用鏈式存儲。

55.D解析:字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的,大寫字母A到Z是從65到90,小寫字母a到z是97到122,所以只要變量c大于a并且小于z就能保證其為小寫字母。

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

57.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機的應用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術,以便對數(shù)據(jù)庫進行管理。因此,數(shù)據(jù)庫技術的根本目標就是解決數(shù)據(jù)的共享問題。故選項B正確。

58.B解析:本題考查ifelse語句。C語言規(guī)定,else總是與它前面的最近的if配對。

59.A解析:解答本題需了解3個知識點:①標識符是由字母、數(shù)字或下畫線組成,并且它的第一個字符必須是字母或者下畫線;②do是C語言中的一個關鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定指數(shù)形式的實型常量e或E后面的指數(shù)必須是整數(shù)。

60.A解析:scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸入格式字符串,第二個參數(shù)是輸入變量地址列表。輸入格式字符串主要由“%”符號和格式字符組成。地址列表是由多個地址組成的。選項B中d已經(jīng)為地址,不應再加上求地址符號“&”;選項C中,a和b都為變量不是地址,應該在a和b之前加上求地址符號“&”;選項D中指針d所指向的存儲空間的位置為變量c的值,不為地址。

61.D

\na、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

\n

62.D數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,\n它從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的變化過程。數(shù)據(jù)流圖中的主要圖形元素有:圓形,表示加工;箭頭,表示數(shù)據(jù)流;雙杠,表示存儲文件;方框,表示源、潭。

63.C數(shù)據(jù)庫的故障恢復是數(shù)據(jù)庫數(shù)據(jù)保護機制中的一種完整性控制。所有的系統(tǒng)都免不了會發(fā)生故障,其原因有可能是硬件失靈,有可能是軟件系統(tǒng)崩潰,也有可能是其他外界的原因。在系統(tǒng)發(fā)生故障后,要求DBMS要有一套發(fā)生故障后的數(shù)據(jù)恢復機構來保證數(shù)據(jù)庫能夠恢復到一致的、正確的狀態(tài),這就是數(shù)據(jù)庫的故障恢復。

在本題給出的四個選項中,數(shù)據(jù)流圖用來描繪系統(tǒng)的邏輯模型,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,反映系統(tǒng)必須完成的邏輯功能。

數(shù)據(jù)字典是關于數(shù)據(jù)信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素定義的集合,是對數(shù)據(jù)流圖進行補充。

DBA即數(shù)據(jù)庫管理員,它的工作主要有數(shù)據(jù)庫安裝、數(shù)據(jù)庫配置和管理、權限設置和安全管理、監(jiān)控和性能調(diào)節(jié)、備份和恢復等。

PAD圖即問題分析圖,是一種程序結構可見性好、結構唯一、易于編制、易于檢查和易于修改的詳細設計表現(xiàn)方法。

根據(jù)上面的分析,我們可以知道數(shù)據(jù)庫的故障恢復是由數(shù)據(jù)庫管理員來完成的。因此,本題的正確答案是C。

64.A本題考查數(shù)據(jù)庫中的數(shù)據(jù)管理技術相關知識。

數(shù)據(jù)管理技術的發(fā)展大體可以歸為三個階段:人工管理、文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)。

人工管理階段:計算機主要用于科學計算。外部存儲器只有磁帶、卡片和紙帶等還沒有磁盤等直接存取存儲設備。軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式基本是批處理。這個階段有幾個特點:數(shù)據(jù)不保存;應用程序中包含自己要用到的全部數(shù)據(jù);數(shù)據(jù)不共享;數(shù)據(jù)不具有獨立性。

文件系統(tǒng)階段:計算機不僅用于科學計算,還用在信息管理方面。隨著數(shù)據(jù)量的增加,數(shù)據(jù)的存儲、檢索和維護問題成為緊迫的需要,數(shù)據(jù)結構和數(shù)據(jù)管理技術迅速發(fā)展起來。此時,外部存儲器已有磁盤、磁鼓等直接存取的存儲設備。軟件領域出現(xiàn)了操作系統(tǒng)和高級軟件。操作系統(tǒng)中的文件系統(tǒng)是專門管理外存的數(shù)據(jù)管理軟件,文件是操作系統(tǒng)管理的重要資源之一。數(shù)據(jù)處理方式有批處理,也有聯(lián)機實時處理。在文件系統(tǒng)支持下,數(shù)據(jù)開始從程序中逐步獨立出來,數(shù)據(jù)文件可以獨立、長期地存儲,數(shù)據(jù)的邏輯結構和物理結構有了一定的區(qū)別。數(shù)據(jù)的邏輯結構是指呈現(xiàn)在用戶面前的數(shù)據(jù)結構形式。數(shù)據(jù)的物理結構是指數(shù)據(jù)在計算機存儲設備上的實際存儲結構。文件系統(tǒng)對計算機數(shù)據(jù)管理能力的提高雖然起了很大的作用,但是仍然存在許多根本性問題。主要表現(xiàn)在:數(shù)據(jù)文件是為滿足特定業(yè)務領域某一部門的專門需要而設計,數(shù)據(jù)和程序相互依賴,數(shù)據(jù)缺乏足夠的獨立性;數(shù)據(jù)沒有集中管理的機制,其安全性和完整性無法保障,數(shù)據(jù)維護業(yè)務仍然由應用程序來承擔;數(shù)據(jù)冗余度大;對現(xiàn)有數(shù)據(jù)文件不易擴充,不易移植,難以通過增、刪數(shù)據(jù)項來適應新的應用要求;各數(shù)據(jù)文件之間缺乏聯(lián)系,互相獨立,不能反映現(xiàn)實世界中事物之間的聯(lián)系。文件系統(tǒng)管理數(shù)據(jù)有如下特點:數(shù)據(jù)可以長期保存;由文件系統(tǒng)管理數(shù)據(jù);數(shù)據(jù)共享性差,冗余度大;數(shù)據(jù)獨立性差。

數(shù)據(jù)庫管理系統(tǒng)階段:數(shù)據(jù)管理技術進入數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級、更有效的管理。這個階段的程序和數(shù)據(jù)的聯(lián)系通過數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)(DBMS)。數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)管理具有以下特點:

采用數(shù)據(jù)模型表示復雜的數(shù)據(jù)結構。數(shù)據(jù)模型不僅描述數(shù)據(jù)本身的特征,還要描述數(shù)據(jù)之間的聯(lián)系,這種聯(lián)系通過存取路徑實現(xiàn)。通過所有的存取路徑表示自然的數(shù)據(jù)聯(lián)系是數(shù)據(jù)庫與傳統(tǒng)文件的根本區(qū)別

溫馨提示

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

評論

0/150

提交評論