2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

2.

3.直接選擇排序的時(shí)間復(fù)雜度為()。(n為元素個(gè)數(shù))

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

4.有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf(“%d\n”,s);}程序的運(yùn)行結(jié)果是()。

A.10B.30C.0D.64

5.在帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

6.當(dāng)輸入為"hello?"時(shí),下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello

7.若有定義“charc=“hello!”;”,則以下說法正確的是()。

A.c占用7字節(jié)內(nèi)存B.c是一個(gè)字符串變量C.定義中有語法錯(cuò)誤D.c的有效字符個(gè)數(shù)是6

8.設(shè)有以下函數(shù):

voidfun(intn,char*$s){……}

則下面對(duì)函數(shù)指針的定義和賦值均正確的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

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

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

9.下列對(duì)于線性鏈表的描述中正確的是()。

A.存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

10.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中,值為0的表達(dá)式是()

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

11.

12.函數(shù)原形中,下列()是不必要的。

A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型

13.快速排序在已經(jīng)有序的情況下效率最差,復(fù)雜度為()

A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)

14.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.1,0B.1,1C.1,4D.4,4

15.C程序的基本模塊為()。

A.表達(dá)式B.標(biāo)識(shí)符C.語句D.函數(shù)

16.有以下程序:

程序運(yùn)行后的輸出結(jié)果是().

A.1,3

B.2,3

C.1,4

D.1,2

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

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

18.則以下函數(shù)調(diào)用語句錯(cuò)誤的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);

19.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9

20.下列程序段的時(shí)間復(fù)雜度為()。A.O(n)B.O(n-1)C.O(n2)D.O(log2n)

二、2.填空題(20題)21.以下程序段的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

22.【】是從二維表列的方向進(jìn)行的運(yùn)算。

23.若有以下定義和語句:

intw[10]={23,54,10,33,47,98,72,80,61},*p;

p=w;

則通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

24.函數(shù)pi的功能是根據(jù)以下近似公式求π值:

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

#include<math.h>

doublepi(longn)

{doubles=0.0;

longi;

for(i=1;i<=n;i++)s=s+【】;

return(sqrt(6*s));

}

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

charstr[]="Hello";

char*ptr;

ptr=str;

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

26.數(shù)據(jù)的基本單位是______。

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

#include<stdio.h>

msin()

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

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

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

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

}

}

28.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長(zhǎng)時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。

請(qǐng)?zhí)羁铡?/p>

main()

{floata,b,c;

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

if(【】)printf("YES\n");/*a、b、c能構(gòu)成三角形*/

elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/

}

29.以下程序的功能是:通過函數(shù)func輸入字符并統(tǒng)計(jì)輸入字符的個(gè)數(shù)。輸入時(shí)用字符作為輸入結(jié)束標(biāo)志。請(qǐng)?zhí)羁铡?include<stdio.h>long();/*函數(shù)說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

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

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

#include<string.h>

cbar*ss(char*s)

{char*p,t;

p=s+1;t=*s;

while(-p){*(p-1)=*p;p++;}

*(p-1)=t;

returns;

}

main()

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

p=ss(str);

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

}

33.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結(jié)果是______。

#include<stdio.h>main(){FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);}

34.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語言表達(dá)式是______。

35.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結(jié)果為______。

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

37.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。

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

39.在一個(gè)容量為25的循環(huán)隊(duì)列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

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

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

42.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10‖!(y-x)>10

D.(x-y)*(x-y)<100

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

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的聯(lián)系

B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小

D.上述三種說法都不對(duì)

44.線性表若采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),要求內(nèi)存中可用存儲(chǔ)單元的地址()

A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以

45.下列程序段的輸出結(jié)果是______。staticinta[3]={1,2,3};int**ptr,*p;p=a;ptr=&p;(ptr[0]++)[1]+=3;printf("%d,%d,%d\n",**ptr,*p,a[0]);

A.5,5,10B.1,5,5C.5,5,1D.輸出結(jié)果不確定

46.第

13

設(shè)有程序段

intk=10;

while(k=0)k=k-1;

則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

47.若有以下定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達(dá)式是()

A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

48.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。

A.PDL(過程設(shè)計(jì)語言)B.PAD圖C.N-S圖D.DFD圖

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

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

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

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

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

50.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。

A.無確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值

51.對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

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

52.算法的空間復(fù)雜度是指()。

A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間

53.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()

A.voidfun(double*s)

B.fun(double*s[4])

C.fun(double(*s)[3])

D.voidfun(double(*s)[4])

54.簡(jiǎn)單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

55.下面關(guān)于數(shù)據(jù)庫三級(jí)模式結(jié)構(gòu)的敘述中,正確的是()

A.內(nèi)模式可以有多個(gè),外模式和模式只有一個(gè)

B.外模式可以有多個(gè),內(nèi)模式和模式只有一個(gè)

C.內(nèi)模式只有一個(gè),模式和外模式可以有多個(gè)

D.模式只有一個(gè),外模式和內(nèi)模式可以有多個(gè)

56.有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序運(yùn)行后的輸出結(jié)果是()。

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

57.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

58.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是

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

59.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的—個(gè)出棧序列是______。

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

60.下列司用于C語言用戶標(biāo)識(shí)符的一組是______。

A.voiddefineWORD

B.a3_b3_123Car

C.For_abcIFCase

D.2aDOsizeof

四、選擇題(20題)61.

62.下列定義變量的語句中錯(cuò)誤的是()。

A.intjnt;B.doubleint_;C.charFor;D.floatUS$;

63.

64.

65.

66.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。

A.帶鏈隊(duì)列B.循環(huán)隊(duì)列C.帶鏈棧D.二叉樹

67.

68.下列關(guān)于二叉樹的敘述中,正確的是()。

A.葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)

B.葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)

C.葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍

D.度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍

69.對(duì)下列二叉樹

進(jìn)行中序遍歷的結(jié)果是()。

A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG

70.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。A.A.scanf("%3d,‰3d,%3d",&i,&j,%k);

B.scanf("%d,%d,%d",&i,8Lj,&k);

C.scanf("%d%d%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

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

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

72.

73.

74.有以下程序

75.

76.有以下程序:

若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。

A.編譯錯(cuò)誤2000B.102000C.122030D.10

77.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

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

fun(a,3,7);

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

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

}

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

B.44567

C.45567

D.45677

78.在數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)中,處于最上層的是()。

A.應(yīng)用層B.語言翻譯處理層C.數(shù)據(jù)存取層D.數(shù)據(jù)存儲(chǔ)層

79.(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()

A.排序、索引、統(tǒng)計(jì)

B.選擇、投影、連接

C.關(guān)聯(lián)、更新、排序

D.顯示、打印、制表

80.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A.A,BB.A,68C.65,66D.65,68

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如,變量a中的值原為8,b中的值原為3,程序運(yùn)行后,a中的值為3,b中的值為8。請(qǐng)改正程序中的錯(cuò)誤,使它得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫函數(shù)proc,其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語句。試題程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法來按從高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行輸出4個(gè)學(xué)生記錄printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}

參考答案

1.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個(gè)字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個(gè)字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

2.D

3.D

4.D本題中靜態(tài)局部變量X,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放。在main函數(shù)中,執(zhí)行for循環(huán),第1次循環(huán),變量s的值為2;第2次循環(huán),函數(shù)的返回值為4,所以變量s的值為8;第3次循環(huán),函數(shù)的返回值為8,所以s的值為64。故本題答案為D選項(xiàng)。

5.B

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

7.Cc是字符變量,“hello!”是字符串。字符串不能賦給字符變量,定義中有語法錯(cuò)誤。本題答案為C選項(xiàng)。

8.A解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標(biāo)識(shí)符(*指針變量名)()。void(*pf)()定義了一個(gè)沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時(shí),只把函數(shù)名fun賦給pf即可。所以正確答案為選項(xiàng)A)。

9.A解析:在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來確定的。由此可見,選項(xiàng)A的描述正確。因此,本題的正確答案為A。

10.D

11.D

12.A

13.D

14.A&&是邏輯與運(yùn)算符,x、y的取值為4、2,兩個(gè)都是非零值,所以x&&y的結(jié)果為真,值為1;&是位運(yùn)算符,x的二進(jìn)制為0100,y的二進(jìn)制為0010,0100&0010的結(jié)果為0。本題答案為A選項(xiàng)。

15.D

16.Af函數(shù)功能使第二個(gè)指針指向的元素增1,第一個(gè)指針指向的元素不變,所以答案選擇A)。

17.D

18.DD選項(xiàng)中*f(a,b)表示調(diào)用后返回一個(gè)指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量k。

19.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語句為p[5],由數(shù)組a可知輸出的為6。

20.B

21.x=2

22.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運(yùn)用常規(guī)的集合運(yùn)算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運(yùn)算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運(yùn)算。

23.*(p+5)

24.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本題考查數(shù)據(jù)類型的轉(zhuǎn)換。由題意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循環(huán)體為s=s+1/(i*i),由于s為double型數(shù)據(jù),所以要將1/(i*i)的值轉(zhuǎn)換為double類型。

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

26.數(shù)據(jù)元素。數(shù)據(jù)元素。

27.1371513715解析:程序中n是一個(gè)有5個(gè)元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時(shí),n[1]=n[0]*2+1,此時(shí)n[1]=1;i=2時(shí),n[2]=n[1]*2+1,此時(shí)n[2]=3;i=3時(shí),n[3]=n[2]*2+1,此時(shí)n[3]=7;i=4時(shí),n[4]=n[3]*2+1,此時(shí)n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。

28.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時(shí)滿足幾個(gè)條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價(jià)形式。

29.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數(shù)在主函數(shù)之后定義,就要對(duì)其進(jìn)行說明,說明的形式為:“函數(shù)類型名函數(shù)名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個(gè)數(shù),所以每輸入一個(gè)字符,變量m的值就加1。所以此處填寫m++。

30.55解析:此程序中,for循環(huán)語句后面直接跟了一個(gè)“;”,表明循環(huán)體為空.輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值.s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。

31.概念或概念級(jí)概念或概念級(jí)解析:數(shù)據(jù)庫系統(tǒng)在其內(nèi)部具有三級(jí)模式及二級(jí)映射,三級(jí)模式分別是概念級(jí)模式、內(nèi)部級(jí)模式和外部級(jí)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(應(yīng)用)公共數(shù)據(jù)視圖。

內(nèi)模式式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤及磁盤操作)。

外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,它由概念模式推導(dǎo)而出。

32.bcdefghabcdefgha解析:while循環(huán)的功能把字符從第二個(gè)元素開始左移一位,并將原第一個(gè)元素賦給最后一個(gè)元素。

33.HellHell解析:該函數(shù)有3個(gè)參數(shù),第三個(gè)參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個(gè)參數(shù)是一個(gè)整數(shù)(假設(shè)為n),表示從文件中讀n-1個(gè)字符并在其后加一個(gè)'\\0',第一個(gè)參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中。可見本題的輸出結(jié)果為:Hell。

34.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。

35.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長(zhǎng)度。本題實(shí)際上是要求s2字符串的長(zhǎng)度,即是4。

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

37.19

38.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)解析:數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。(1)人工管理階段。這一階段的計(jì)算機(jī)主要用于科技計(jì)算。外存只有磁帶、卡片和紙帶等,軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式是批處理。(2)文件系統(tǒng)階段。文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)發(fā)展的初級(jí)階段,它提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無法提供完整的、統(tǒng)一的管理和數(shù)據(jù)共享的能力。由于它的功能簡(jiǎn)單,因此它附屬于操作系統(tǒng)而不能成為獨(dú)立的軟件,目前一般將其看成僅是數(shù)據(jù)庫系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫系統(tǒng)。(3)數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫階段用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)模型,有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式(用COBOL、C一類高級(jí)語言和數(shù)據(jù)庫語言編制的程序)操作數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

39.1818解析:設(shè)循環(huán)隊(duì)列的容量為n。若rear>front,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為rear-front;若rear<front,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為n+(rear-front)。題中,front=16,rear=9,即rear<front,所以,循環(huán)隊(duì)列中的元素個(gè)數(shù)為m+(rear-front)=25+(9-16)=18。

40.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲(chǔ)單元的首地址。指針的定義:

類型說明符*指針變量名;

41.B解析:根據(jù)題中給定的條件,可做如下模擬操作:

①元素a、b、c進(jìn)棧,棧中有3個(gè)元素,分別為a、b、c;

②元素c出棧后,元素d、e、f進(jìn)棧,棧中有5個(gè)元素,分別為a、b、d、e、f;

③元素f、e、d、a、b出棧,棧為空??梢钥闯?,進(jìn)棧的順序?yàn)閍、b、c、d、e、f,出棧的順序?yàn)閏、f、e、d、b、a,滿足題中所提出的要求。

在每一次進(jìn)棧操作后,棧中最多有3個(gè)元素,因此,為了順利完成這些操作,棧的容量應(yīng)至少為5。本題答案為B。

42.C解析:選項(xiàng)A用了一個(gè)絕對(duì)值函數(shù)abs();選項(xiàng)B中用了一個(gè)“&&”邏輯與;選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題。

43.C解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對(duì)象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對(duì)象是以數(shù)據(jù)為中心的,操作圍繞對(duì)其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨(dú)立性考慮,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。由于完成對(duì)象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對(duì)象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對(duì)象之間的耦合通常比較松。所以,選項(xiàng)A與B錯(cuò)誤,選項(xiàng)C正確。

44.D解析:在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)接點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。

45.C解析:ptr指向指針變量p,p指向數(shù)組a的首地址,(ptr[0]++)[1]+=3;的意思是將p指向數(shù)組元素a[1],并將它的值增3變?yōu)?,此時(shí),ptr指向p,p指向a[1]。

46.C本題中,首先將0賦給k,表達(dá)式變?yōu)?,跳出循環(huán),沒有執(zhí)行循環(huán)體語句。解答本題的關(guān)鍵是掌握while語句。

47.A

48.D解析:PDL一種設(shè)計(jì)性語言,用于書寫軟件設(shè)計(jì)規(guī)約。它是軟件設(shè)計(jì)中廣泛使用的語言之一。N-S圖是無線的流程圖,是算法描述工具;PAD圖是問題分析圖,它用二維樹狀結(jié)構(gòu)的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。此3類均是過程設(shè)計(jì)工具,數(shù)據(jù)流圖(DataFunctionDiagram):又名數(shù)據(jù)功能圖表,簡(jiǎn)稱DFD,是采用圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。

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

50.B

51.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡(jiǎn)單插入排序n(n-1)/2、希爾排序0(n1.5)、簡(jiǎn)單選擇排序n(n-1)/2、堆排序O(nlog2n)

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

53.D

54.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡(jiǎn)單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。

55.BB)【解析】數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)

\n的外模式、模式和內(nèi)模式。一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式,但只有一個(gè)模式和一個(gè)內(nèi)模式。

56.B

57.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個(gè)說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。

58.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。

由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。

結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。

59.C解析:棧是—種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)棧,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。

60.B解析:C語言規(guī)

溫馨提示

  • 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)論