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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

2.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結(jié)果是()。A.20,10B.20,20C.10,20D.10,10

3.C語言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

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

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

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

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

6.下列敘述中正確的是A.程序設(shè)計就是編制程序

B.程序的測試必須由程序員自己去完成

C.程序經(jīng)調(diào)試改錯后還應(yīng)進(jìn)行再測試

D.程序經(jīng)調(diào)試改錯后不必進(jìn)行再測試

7.若i和k都是int類型變量,有以下for語句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。

A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無限循環(huán)

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

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

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

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

D.break語句只能用于switch語句

9.在有向圖G的拓?fù)湫蛄兄?,若頂點Vi在頂點Vj之前,則下列情形不可能出現(xiàn)的是()。

A.G中有弧

B.G中有一條從Vi到Vj的路徑

C.G中沒有弧

D.G中有一條從Vj到Vi的路徑

10.若有定義:Typedefint*T[10];T*a;則以下與上述定義中a類型完全相同的是()。

A.int*a[10];

B.int**a[10];

C.int*(*a)[10];

D.int*a[][10];

11.以下語句中,正確制作電子郵件鏈接的是()。12.以下各選項中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;

B.intx=5,y=0;if(x)y=1;

C.intx=10,y=0;if(x=y)y=1;

D.intx=5,y=10;if(x=y)y=1;

13.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

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

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

14.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護(hù)過程

15.

16.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

17.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。

A.*B.****C.**D.********

18.以下符號中不能作為標(biāo)識符的是()。

A._256B.r32C.intD.e231

19.對稱數(shù)組A中,每個元素的長度為4個字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲在從首地址SA開始的存儲器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

20.數(shù)據(jù)庫系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員

二、2.填空題(20題)21.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

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

main

{

inna=b=c=5:

if(c=a+b)

printf("yes\n);

else

printf("no\n);

}

23.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

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

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

25.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

26.函數(shù)fun的功能是計算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ù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。

27.設(shè)y為int型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。

28.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

elseprintf("%d,%d\n",b,a);}

29.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進(jìn)行測試。

30.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單詞鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。[*]

#include<stdio.h>

typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立鏈表*/

{…}

voiddisp(Node*h)

{Node*

31.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

32.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

33.有以下程序段:

inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是【】。

34.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

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

36.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

37.在對文件進(jìn)行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。

38.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。

39.問題處理方案的正確而完整的描述稱為______。

40.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

三、1.選擇題(20題)41.靜態(tài)測試是一種重要的測試方式,可以發(fā)現(xiàn)30%到70%的邏輯設(shè)計和編碼錯誤。下面()不屬于靜態(tài)測試?

A.白盒測試B.代碼檢查C.代碼質(zhì)量度量D.靜態(tài)分析

42.下列敘述錯誤的是()。

A.函數(shù)名是屬于用戶標(biāo)識符,需符合C語言對標(biāo)識符的規(guī)定

B.形參只能是變量

C.為保證程序的正常運行,函數(shù)中定義的變量不能與其他函數(shù)中的變量同名

D.函數(shù)中定義的變量可以與其他函數(shù)中的變量同名

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

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

44.有以下程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,"k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。

A.5,5B.5,11C.11,11D.11,5

45.在下列敘述中,正確的一條是______。

A.如果形參發(fā)生改變,不會改變主調(diào)函數(shù)的實參值

B.在C語言中,函數(shù)可以遞歸調(diào)用或遞歸定義

C.數(shù)組名作函數(shù)參數(shù)時,也采用“值傳送”方式

D.預(yù)處理時,宏名用字符串代替,并檢查語法正確與否

46.有以下程序

#include<stdio.h>

main()

{intc;

while((c=getchar())!=′\n)

{switch(c-′2′)

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

case4:putchar(c+3);break;}}

printf("\n")}

從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。

2743<CR>

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

A.66877B.668966C.6677877D.6688766

47.對計算機軟件正確的態(tài)度是()

A.計算機軟件不需要維護(hù)

B.計算機軟件只要能復(fù)制得到就不必購買

C.受法律保護(hù)的計算機軟件不能隨便復(fù)制

D.計算機軟件不必有備份

48.當(dāng)把以下4個表達(dá)式用作if語句的控制表達(dá)式時,有一個選項與其他3個選項含義不同,這個選項是

A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1

49.執(zhí)行下列程序的結(jié)果是()。#defineN5#defineH(x)((N+2)*x)main(){inta=2,b=3,C;c=H(a+b);printf("%d",c);}

A.15B.17C.23D.35

50.下列關(guān)于隊列的敘述中正確的是______。A.在隊列中只能插入數(shù)據(jù)B.在隊列中只能刪除數(shù)據(jù)C.隊列是先進(jìn)先出的線性表D.隊列是先進(jìn)后出的線性表

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

char*s="abcde";

s+=2;printf("%d",s);

A.cdeB.字符′c′C.字符′c′的地址D.無確定的輸出結(jié)果

52.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

53.設(shè)有如下函數(shù)定義,則輸出結(jié)果為_______。char*fun(char*str){char*p=str;while(*p){if(*p>'d')continue;p++;}returnp;}main(){printf("%s\n",fun("welcome!"));}

A.welcomeB.come!C.wD.程序進(jìn)入死循環(huán)

54.在設(shè)計程序時,應(yīng)采納的原則之一是______。

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好

55.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計算機系統(tǒng)的限制

C.軟件既是邏輯實體,又是物理實體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

56.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

57.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch):

58.在執(zhí)行以下程序時,如果從鍵盤上輸入ABCdef<回車>,則輸出為______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

59.下面能正確定義數(shù)組,并正確賦值的語句是_______。

A.intN=5,b[N][N]

B.inta[1][2]={{1},{3}}

C.intc[2][]={{1,2},{3,4}}

D.intd[3][2]={{1,2},{34}}

60.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后輸出結(jié)果是()。

A.賦初值的字符串有錯B.6,7C.5,6D.6,6

四、選擇題(20題)61.語句:“printf("%d",(a=)&&(b=-2));”的輸出結(jié)果是()。A.A.無輸出B.結(jié)果是不確定C.-1D.1

62.沒有以下語句

則Z的二進(jìn)制值是()。

A.00010100B.00011011C.00011100D.00011000

63.

64.有以下程序:

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

A.SunDan20042

B.SunDan20044

C.LiSiGuo20042

D.YangSan20041

A.提高耦合性、降低內(nèi)聚性有利于提高模塊的獨立性

B.降低耦合性、提高內(nèi)聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

65.

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

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

67.若有定義語句:intX=10;,則表達(dá)式x-=x+x的值為()。

A.0B.-20C.-10D.10

68.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下敘述中正確的是()。A.此while語句將無限循環(huán)

B.getchar()不可以出現(xiàn)在while語句的條件表達(dá)式中

C.當(dāng)執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行

D.當(dāng)執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行

69.

70.在下列語句中,其含義為“q是一個函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

71.已知:intx,y;doublez;則以下語句中錯誤的函數(shù)調(diào)用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

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

A.1B.7C.9D.13

73.

74.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。

A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

75.有以下程序:

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

A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,

76.設(shè)有宏定義:

77.以下選項中不合法的標(biāo)識符是()。

A.&aB.FORC.pfintD.00

78.

79.語句“printf(”a\bhow\’are\’y\\\bou\n”);”的輸出結(jié)果是()。A.A.a\bhow\'are\'y\\bou

B.a\bhow\’are\’y\bou

C.how'are'you

D.ahow'are'y\bou

80.下列選項中不符合良好程序設(shè)計風(fēng)格的是()。

A.數(shù)據(jù)說明的次序要規(guī)范化

B.程序中要有必要的注釋

C.對所有輸入的數(shù)據(jù)都要進(jìn)行檢查,確保數(shù)據(jù)的合法性

D.程序的效率第一,清晰第二

五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:求3個數(shù)的最小公倍數(shù),例如,給變量a、b、c、分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。請修改函數(shù)中的錯誤,得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符為l,則輸出3。

注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

2.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。

3.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。

4.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結(jié)果為1。選項C:a||+c&&b-c,結(jié)果為1;選項D:!((a<B)&&!c||1),運算結(jié)果為0。

5.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。

6.C解析:軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒計是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其日的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測試,防止引進(jìn)新的錯誤。

7.D此題考查的是基本的循環(huán),答案為D。

8.Adefault語句在switch語句中可以省略,所以B選項錯誤;switch語句中并非每個case后都需要使用break語句,所以C選項錯誤;break語句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D選項錯誤。故本題答案為A選項。

9.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤cVj在頂點Vi之前。設(shè)G(V,E)是一個具有n個頂點的有向圖,V中頂點的序列v1,v2,…,vn稱為一個拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點滿足下列條件:若在有向圖G中,從頂點vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤cvi必須排在頂點vj之前。

10.B由題意可知,T是一個數(shù)組指針,即int*[],所以使用T*a定義,可知a屬于int**[\n]類型。本題答案為B選項。

11.C

12.C選項A的if條件表達(dá)式的值是5,結(jié)果為真,執(zhí)行“y=1”,y的值為1;選項B的if條件表達(dá)式x的值為5,結(jié)果也是真,執(zhí)行“y=1”,y的值為1;選項C的if條件表達(dá)式“x=y”是賦值語句,將y的值0賦給x,表達(dá)式的值為0,if語句不執(zhí)行,y的值為0;選項D的if條件表達(dá)式“x=y”是賦值語句,將y的值10賦給x,表達(dá)式的值為10,執(zhí)行“y=1”,y的值為1。故本題答案為C選項。

13.D

14.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

15.C

16.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。

17.AC語言中,分號為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項。

18.C

19.B

20.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

21.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

22.yesyes解析:if...else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu)。本題中,if后面括號里的表達(dá)式為c=a+b為真(即c=1+3=4為真);所以,執(zhí)行s1,即執(zhí)行prinff('yes\\'),最后輸出yes。

23.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。

24.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達(dá)式的值,否則為b+1的值為整個表達(dá)式的值,(應(yīng)注意后面的加1)。

25.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

26.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)。

27.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。

28.101,0解析:與運算兩邊的語句必須同時為真時,結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時,a,b的值已經(jīng)發(fā)生了變化。

29.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進(jìn)行測試。

30.

31.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

32.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

33.99解析:p是一個指針變量,指向數(shù)組a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。

34.物理獨立性數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩級。

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

36.66解析:本題中i循環(huán)執(zhí)行4次,當(dāng)i=1時,j循環(huán)執(zhí)行0次;當(dāng)i=2時,j循環(huán)執(zhí)行1次;當(dāng)i=3時,j循環(huán)執(zhí)行2次;當(dāng)i=4時,j循環(huán)執(zhí)行3次,所以輸出#號的個數(shù)是0+1+2+3=6。

37.rewind函數(shù)rewind函數(shù)解析:rewind函數(shù)的功能是使文件的位置指針回到文件的開頭。

38.軟件工具軟件工具

39.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

40.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。

41.A

42.C解析:本題考查函數(shù)調(diào)用時參數(shù)的作用域。在函數(shù)調(diào)用時,函數(shù)體內(nèi)定義的變量的作用域連函數(shù)體內(nèi),因而在不同函數(shù)體內(nèi)定義的變量可以相同,不影響各個變量的使用。

43.B

44.B解析:本題的fun()函數(shù)中定義的變量m和i是靜態(tài)局部變量,第1次調(diào)用fun()函數(shù)時m=0、i=2,執(zhí)行i+=m+1后,i的值變?yōu)?,再執(zhí)行m=i+x+y后,m的值變?yōu)?,所以第1次輸出的整數(shù)是5。第2次調(diào)用fun()函數(shù)時m=5、i=3,執(zhí)行i+=m+1,i變?yōu)?,再執(zhí)行m=i+x+y,m變?yōu)?1,所以第2次輸出的整數(shù)是11。故本題應(yīng)該選擇B。

45.A

46.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運算。

47.C解析:A、B、D都不是對待軟件的正確態(tài)度。

48.D解析:非常明顯,選項A)與選項C)含義相同,表示k除以2的余數(shù)非零,但要注意的是,任何整數(shù)除以2的余數(shù)只有兩個結(jié)果,0和1。選項A)與選項C)的含義表示k除以2的余數(shù)為1,也與選項B)的含義相同,所以答案為選項D)。

49.B解析:用a+b替代宏H(x)中的參數(shù)x,用5替代N,則((N+2)*x)=((5+2)*a=b)=((5+2)*2+3)=17。

50.C隊列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項A和選項B錯誤。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則,選項C正確,選項D錯誤。

51.C解析:對于字符串指針,其保留的是整個串的首地址,即第一個字符的起始地址;當(dāng)該指針做算術(shù)運算時,就是該指針根據(jù)其類型向后移動相應(yīng)的存儲空間。

52.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達(dá)式。

53.D解析:continue語句的作用是用于結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。由于'w'>'d',執(zhí)行continue語句,結(jié)束本次循環(huán)(即跳過p++;語句),還是繼續(xù)比較'w'>'d',程序進(jìn)入死循環(huán)。

54.A解析:程序設(shè)計的風(fēng)格主要強調(diào)程序的簡單、清晰和可理解性,以便讀者理解。因此選項A是正確答案。程序濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應(yīng)減少或取消;程序的長短要依照實際需要而定,并不是越短越好。因此選項B、C、D都是錯誤的。

55.D\r\n軟件是與計算機操作相關(guān)的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。

56.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達(dá)式。在選項A)中賦值表達(dá)式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達(dá)式,所以正確答案為C)。

57.A解析:因為while是以條件為假時結(jié)束循環(huán),因此選項C、D不正確?!?=”的優(yōu)先級比“=”高,因此“ch=getchar()!='N'”相當(dāng)于“ch=(getchar!='N')”,ch并不能得到輸入的字符,只能得到true或者false值。

58.B

59.D解析:可以用下面的方法對二維數(shù)組初始化:

1、分行給二維數(shù)組賦初值。如inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};。

2、將所有數(shù)據(jù)寫在一個花括弧內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值。如inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};。

3、對部分元素賦初值。如inta[3][4]={{1},{5},{9}};,它的作用是只對各行第一列的元素賦初值,其余元素值自動為0。

4、如果對全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時對第一錐的長度可以不指定,但第二錐的長度不能省。如inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};與下面的定義等價:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};。

60.C解析:本題在定義字符數(shù)組時沒有定義數(shù)組長度,但用字符常量給數(shù)組賦了初值,這時初值的個數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\\0')。字符串的長度為有效字符的個數(shù)5。strlen(s)返回值為串中字符的個數(shù)(不計最后的'\\0'),則輸出值為5。sizeof(s)計算數(shù)組所占的字節(jié)數(shù),包含'\\0',則輸出值為6。因此,C選項正確。

61.D因為在邏輯表達(dá)式中,兩邊的賦值表達(dá)式都成立,即值為1,故選擇D選項。

62.B本題考查兩個位運算符。按位異或運算

63.A

64.A本題考查的是結(jié)構(gòu)體。主函數(shù)中定義了結(jié)構(gòu)體類型的指針變量P,并使其指向了結(jié)構(gòu)體類型的數(shù)組s\r\n[1],并通過調(diào)用函數(shù)f改變了指針變量P所指向的結(jié)構(gòu)體\r\n成員變量name的值,但并未改變其num的值。這是因為函數(shù)f中的形參flame是一個字符型指針變量,它指向了主函數(shù)中\(zhòng)r\n指針變量P所指向的結(jié)構(gòu)體的成員變量name,所以對函數(shù)f中\(zhòng)r\n的形參*name的改變也就是對主函數(shù)中P->name的改變,\r\n而函數(shù)f中對形參num的改變并不會影響主函數(shù)中P一>num\r\n的值,因為此時傳遞給nnm的是一個值,而不是地址。

65.A

66.C解析:C語言規(guī)定如果全局變量與局部變量同名,則在局部變量的作

溫馨提示

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

評論

0/150

提交評論