2021年河南省開封市全國計算機等級考試C語言程序設(shè)計_第1頁
2021年河南省開封市全國計算機等級考試C語言程序設(shè)計_第2頁
2021年河南省開封市全國計算機等級考試C語言程序設(shè)計_第3頁
2021年河南省開封市全國計算機等級考試C語言程序設(shè)計_第4頁
2021年河南省開封市全國計算機等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年河南省開封市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若變量c為char類型,能正確判斷出c為小寫字母的表達式是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′)

2.設(shè)S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復(fù)雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)

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

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

4.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);

A.aB.bC.cD.d

5.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態(tài)變化

6.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

7.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

8.為了使模塊盡可能獨立,要求()。

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

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

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

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

9.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)

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

C.switch(a+B)

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

10.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是()。

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

11.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.1,3B.0,2C.0,3D.1,2

12.函數(shù)filecopy的功能是,將fin所指文件中的內(nèi)容輸出到fout所指文件中,但函數(shù)不完整:voidfilecopy(FILE*fin,FILE*fout){charch;ch=getc(fin);while(_______){putc(ch,fout);ch=getc(fin);}}其中下劃線處應(yīng)填入的是()。A.!feof(fin)B.!feof(fout)C.feof(fin)==1D.feof(fout)==1

13.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

輸出結(jié)果是()。

A.28

B.27

C.42

D.41

14.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。

A.3B.13C.1D.0

15.

16.已知一算術(shù)表達式的中綴表達式為a-(b+c/d)*e,其后綴形式為()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

17.

18.設(shè)變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價于()。A.A.p="";

B.p="0";

C.p=0;

D.p="";

19.目前以比較為基礎(chǔ)的內(nèi)部排序方法中,其比較次數(shù)與待排序的記錄的初始排列狀態(tài)無關(guān)的是()

A.插入排序B.快速排序C.二分插入排序D.冒泡排序

20.設(shè)串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

二、2.填空題(20題)21.實體聯(lián)系模型是一種常用的高級概念數(shù)據(jù)模型,而______是實體聯(lián)系模型中的核心。

22.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。

23.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

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

24.在雙鏈表中每個結(jié)點有兩個指針域:一個指向【】,另一個指向【】。

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

26.以下函數(shù)用來在w數(shù)組中插入x。n所指向的存儲單元中存放w數(shù)組中字符個數(shù)。數(shù)組w中的字符已按從小到大的順序排列,插入后數(shù)組w中的字符仍有序。請?zhí)羁铡?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

while(x>w[p])p++;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;}

27.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

28.設(shè)有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結(jié)果是【】。

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

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

30.對一組記錄{54,38,96,23,15,72,60,45,83}進行直接插入排序時,當(dāng)插入第5個記錄到有序表時,尋找插入位置需比較【】次。

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

main()

{chars[]=“abcdef”;

s[3]='\0';

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

}

32.與十進制數(shù)101等值的二進制數(shù)為【】。

33.軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和()的集合。

34.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

35.設(shè)順序輸入數(shù)列為:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每個結(jié)點的查找概率相同,若用順序存儲方式組織該數(shù)列,則查找一個數(shù)成功的平均比較次數(shù)為【】;若按二叉排序樹結(jié)構(gòu)組織該數(shù)列,則查找一個數(shù)成功的平均比較次數(shù)為【】。

36.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細設(shè)計階段所采用的是【】方法。

37.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。

38.若給fun函數(shù)的形參s傳送字符串:"abc-6354abc",則函數(shù)的返回值是()。(字符串中包括空格)

longfun(charS[])

{longn;intsign;

for(;isspace(*s)||islower(*s);s++);

sign=(*s=='-')?-1:1;

if(*s=='+'||*s=='-')s++;

for(n=0;isdigit(*s);s++)

n=10*n+(*S-'0');

returnsign*n;

}

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

main()

{intx,a=1,b=2,c=3,d=4;

{intx,a=1,b=2,c=3,d=4;

x=(a<B)?a:b;x=(a<C)?x:C;x=(d>x)?x:d;

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

}

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

三、1.選擇題(20題)41.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

42.以下不屬于對象的基本特點的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

43.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。

A.整型表達式B.整型常量C.整型常量或整型表達式D.任何類型的表達式

44.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

45.若有下面的說明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;

A.30B.29C.24D.22

46.關(guān)于結(jié)構(gòu)化程序設(shè)計原則和方法描述錯誤的是()。

A.選用的結(jié)構(gòu)只準許有一個入口和一個出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

47.若要“為讀/寫建立―個新的文本文件”,在fopen函數(shù)中應(yīng)使用的文件方式是()

A.wB.wbC.w+D.wb+

48.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

49.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運行階段D.物理設(shè)計

50.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。

A.隊列B.線性表C.二叉樹D.棧

51.在位運算中,操作數(shù)每右移兩位,其結(jié)果相當(dāng)于()。

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

52.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",*(*(p+i)+n));}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}則程序運行后的輸出結(jié)果是()

A.369B.248C.456D.789

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

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

54.有以下程序:#include<stdio.h>structs{intx,y;}data[2]={10,100,20,200};main(){structs*p=data;printf("%d\n",++(p->x));程序運行后的輸出結(jié)果是()。

A.10B.11C.20D.21

55.有以下程序:#include<stdio.h>main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q.a,b);程序運行后的輸出結(jié)果是()。

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

56.下列程序的輸出結(jié)果是______。main(){inti,x[3][3]=(1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}

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

57.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。

A.8B.16C.32D.15

58.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

59.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計是描述______。

A.數(shù)據(jù)存儲結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測試D.軟件控制過程

60.C語言中下列敘述正確的是_______。

A.不能使用do...while語句構(gòu)成的循環(huán)

B.do...while語句構(gòu)成的循環(huán),必須用break語句才能退出

C.do...while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為非零時結(jié)束循環(huán)

D.do...while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為零時結(jié)束循環(huán)

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

運行時,若輸入123450<回車>,則輸出結(jié)果是()。

A.6566456

B.66656

C.66666

D.6666656

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

A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

63.下面函數(shù)調(diào)用語句含有實參的個數(shù)為()。

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

64.有三個關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

65.

66.

67.Internet使用的網(wǎng)絡(luò)協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

68.對長度為n的線性表排序,在最壞情況下,比較次數(shù)是nlog2n的排序方法是()。

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

69.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是()。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)

70.有以下程序:

當(dāng)執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個字符]12<;CR>;34<;CR>;則輸出結(jié)果是()。

A.12B.123C.1234D.12343

71.

72.鏈表不具有的特點是()。

A.不必事先估計存儲空間B.可隨機訪問任意元素C.插入、刪除不需要移動元素D.所需空間與線性表長度成正比

73.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

74.

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

76.

77.C源程序中不能表示的數(shù)制是()。

A.十六進制B.八進制C.十進制D.二進制

78.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達式的值為()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

79.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

80.

五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun(),其功能是使字符串中尾部的*號不多于n個,若多于n個,則刪除多余的*號;若少于或等于n個,則不做任何操作,字符串中間和前面的*號不刪除。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”。n的值在主函數(shù)中輸入。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

參考答案

1.D

2.D

3.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。

4.A解析:C函數(shù)的參數(shù)傳遞方式采用按值傳遞,不能通過調(diào)用函數(shù)改變形參指針本身的值,只能改變指針所指變量的值。調(diào)用point函數(shù)時,將實參指針p的值(b數(shù)組的首地址)傳給了形參指針P,P+=3運算使形參指針指向字符d,但并不能改變main函數(shù)中p的值,所以本題正確答案應(yīng)該是選項A)。

5.A

6.B本題考查實參與形參調(diào)用,從實參傳遞到形參時,只是數(shù)值的傳遞,調(diào)用函數(shù)中值的改變不會影響主函數(shù)中的值,因此原樣輸出。

7.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構(gòu)成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項。

8.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

9.C

10.BB?!窘馕觥吭跅V?,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。

11.D輸出的結(jié)果是:-1,1\r\n0,2\r\n1,2

12.Afilecopy函數(shù)每次從fin文件指針調(diào)用getc函數(shù)讀取一個字符存放到ch中,再通過while循環(huán)調(diào)用putc函數(shù)將ch寫入fout,直到fin指向文件尾部為止。所以while的循環(huán)條件是判斷fin是否到文件尾部。這里使用feof函數(shù)判斷:feof返回值為真時,表示fin指向了文件尾部,否則表示fin未到文件尾部。所以while循環(huán)條件為!feof(fin)。故本題答案為A選項。

13.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。

\n

14.AC語言中的轉(zhuǎn)義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結(jié)束,因此計數(shù)為3。故本題答案為A選項。

15.C

16.D

17.D

18.C在C語言中null等價于數(shù)字0。

19.C

20.D

21.實體聯(lián)系圖或E-R圖實體聯(lián)系圖或E-R圖解析:實體聯(lián)系圖(B-R圖)是實體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲及其之間的關(guān)系,因此它是數(shù)據(jù)庫觀念設(shè)計的最常用的工具。

22.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。

23.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標準輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數(shù)格式是66。所以,輸出為B66。

24.前趨結(jié)點后繼結(jié)點前趨結(jié)點\r\n后繼結(jié)點

25.x=11x=11解析:在對無符號數(shù)的右移是高位補0。

26.w[i-1]w[i-1]解析:在用數(shù)組實現(xiàn)的有序序列中插入內(nèi)容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數(shù)。函數(shù)為了簡化尋找插入位置循環(huán)的循環(huán)條件,預(yù)先在序列的最后置入插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應(yīng)填入w[i-1]。

27.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

28.16

29.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉(zhuǎn)換為十進制的值為21,十六進制的0x25轉(zhuǎn)換為十進制的值為37,故最后的輸出結(jié)果為252137。

30.11解析:直接插入排序是在已排好序的序列中用順序查找法查找插入位置。第5個記錄是15,15和23比較,就知道15應(yīng)放在原23放的位置,23及其以后的記錄后移。

31.abcabc解析:字符串的結(jié)束標記'\\0',當(dāng)輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

32.1100101

33.相關(guān)文檔相關(guān)文檔解析:軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔。程序足對計算機的處理對象和處理規(guī)則的描述,是軟件開發(fā)入員根據(jù)用戶需求開發(fā)的、用程序語言描述的、適合計算機執(zhí)行的指令序列。數(shù)拼是使程序能正常操作信息的數(shù)據(jù)結(jié)構(gòu)。文檔是為了便于了解程序所需的資源說明,是與程序的開發(fā)、維護和使用有關(guān)的資料。

34.類類

35.857/15

36.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細設(shè)計階段所采用的是結(jié)構(gòu)化設(shè)計方法。

37.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

38.-6354-6354解析:本題的考查點是函數(shù)的返回值。這個函數(shù)的目的是提取出由函數(shù)的形參傳送來的字符串中的數(shù)字字符,并通過相應(yīng)字符位置計算出它們數(shù)值形式的冪,最后返回字符串中的數(shù)字字符的數(shù)值形式,所以函數(shù)的返回值應(yīng)當(dāng)是“-6354”。

39.11解析:條件運算表達式:“表達式1?表達式2:表達式3”,但表達式1的值為非0時,此時表達式2的值就是整個條件表達式的值,反之為表示式3的值。解析易知結(jié)果為1。

40.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

41.C解析:如果沒有指明函數(shù)值類型,則默認函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。

42.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。

43.C解析:在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型可以是整型常量,也可以是整型表達式。

44.C解析:for語句中的表達式可以部分或全部省略,但兩個“;”不能省略,若3個表達式均省略,會因為缺少條件判斷,導(dǎo)致循環(huán)無限執(zhí)行,而形成死循環(huán)。本題中當(dāng)i的值為5的時候,循環(huán)終止。

45.D解析:本題主要考查結(jié)構(gòu)體變量和共用體變量所占存儲空間大小的計算方法。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

46.C解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結(jié)構(gòu)化程序設(shè)計的原則。

47.D

48.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。

49.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。

50.C解析:線性表、棧和隊列所表達和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,它只能在固定的一端進行插入和刪除操作,又稱后進先出表(LastInFirstOut);隊列是插入在一端進行,刪除在另一端進行的線性表,又稱先進先出表(FirstInFirstOut)。

51.C解析:在位運算中,操作數(shù)每右移兩位,相當(dāng)于在操作數(shù)的左側(cè)添0,最右面的兩位被移出,即操作數(shù)除以4。

52.A

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

54.B解析:本題考查對外部存儲類型的結(jié)構(gòu)體變量進行初始化。初始化后,data[0]x的值為10,data[0]y的值為100。輸出++(p->x)時,++(p->x)就相當(dāng)于++data[0].x,這時data[0].x先自增,再使用,所以輸出11。

55.C解析:程序中P和q是指針變量,它們分別存放了變量a和L的地址,執(zhí)行P=&a;q=&b;語句后,*p和*q的值就分別為7和8,執(zhí)行r=P;P=q;q=r;實際上是進行指針變量p和q的交換,即將其存放的a和b的地址進行了交換,也就是P指向了b,q指向了a,此時a,b的值并沒有改變,所以輸出的*P,*q的值為8,7,而a,b的值仍為7,8。

56.C

57.B[答案]B

[考點]數(shù)據(jù)結(jié)構(gòu)與算法

[評析]依次從上到下,可得出:

第1層結(jié)點數(shù)為1;

第2層結(jié)點數(shù)為2*1=2;

第3層結(jié)點數(shù)為2*2=4;

第n層結(jié)點數(shù)為2的n-1次冪

58.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系。本題的正確答案是D。

59.B解析:從工程管理解度來看,軟件設(shè)計分兩步完成:概要設(shè)計和詳細設(shè)計。概要設(shè)計(又稱結(jié)構(gòu)設(shè)計)將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級接口、全局數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。

60.D解析:選項A是錯誤的,C語言支持do…while語句;選項B是錯誤的,do…while構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為零時結(jié)束循環(huán),而不是非零;選項C也是錯誤的。

61.Aswitch語句執(zhí)行完一個case后面的語句后,流程控制轉(zhuǎn)移到下一個case語句繼續(xù)執(zhí)行,遇到break會跳出本次循環(huán)。本題中輸入l時會輸出65,輸入2時會輸出6,輸入3時會輸出64,輸入4時會輸出5,輸入5時會輸出6,在輸入0時不滿足循環(huán)條件,程序執(zhí)行結(jié)束。

62.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。

63.B函數(shù)調(diào)用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調(diào)用形式為:函數(shù)名,當(dāng)所調(diào)用的函數(shù)用于求出某個值時,函數(shù)的調(diào)用可作為表達式出現(xiàn)在允許表達式出現(xiàn)的任何地方,本題中調(diào)用語句的參數(shù)個數(shù)為2個。

64.D

65.C

66.A

67.B

68.D在最壞情況下,快速排序、冒泡排序和直接插入排序需要的比較次數(shù)都是n(n一1)/2,堆排序需要比較的次數(shù)為nlog2n。

69.C當(dāng)有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較l092n次,而順序查找需要比較n次。

70.D按照從鍵盤輸入的數(shù)據(jù)可以_判斷字符l給了變量a,字符2給了變量b,字符<CR>即回車給了變量c,字符3給了變量d。所以打印輸出的結(jié)果為D選項。

71.D

72.B鏈表采用的是鏈式存儲結(jié)構(gòu),它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,插入、刪除不需要移動數(shù)據(jù)元素。但是鏈式存儲結(jié)構(gòu)也有不足之處:每個結(jié)點中的指針域需額外占用存儲空間,它是一種非隨機存儲結(jié)構(gòu)。

73.C\n在輸入時必須遵守scanf函數(shù)中的格式才能正確地賦值給相應(yīng)的變量,由于scanf函數(shù)為“%d;%d”,所以在輸入時要輸入3;5,答案為C。

\n

74.B

75.A數(shù)組定義后,不可以對數(shù)組整體賦值,s是二維數(shù)組,因SS[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy(SS[1],”right”);這樣的形式,而選項A中對二維數(shù)組中的第…l維(相當(dāng)于一個一維數(shù)組)賦值,是不可以的。選項8和D是定義時對數(shù)組初始化,這是可以的。選項c中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。

76.D

77.D在C語言中整型常量可以用十進制、八進制和十六進制等形式表示,但不包括二進制,所以選擇D。

78.C在計算(float)(a4-b)/2時,由于通過強制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進行計算,得4.500000。在計算(int)x%(int)y時,先將x和y通過強制類型轉(zhuǎn)換成int型,再進行求余運算,結(jié)果為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級類型從高級類型,并進行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→log→float→double。

79.A本題重點考察函數(shù)的調(diào)用,首先要了解字母對應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數(shù)形參和實參的問題,運行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因為指針c指向地址的值為b,此時b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。

80.C

81.

82.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a;/*將指針移動到字符串末尾*/ while(*t) t++; t--;/*從后往前如果是*則使k自增1,找到最后一個*所在的位置,并記錄*的個數(shù)*/ while(*t==‘*’)/*指針t指向前一個,同時標量k自增1*/ {k++;t--;}/*如果最后*的個數(shù)大于允許的個數(shù)*/ if(k>n)/*循環(huán)次數(shù)不大于前面的字符與最大允許*的個數(shù)之和*/ { while(*p&&p<t+n+1)<p=""></t+n+1)<>/*把字符保存到數(shù)組a中*/ {a[i]=*p; i++;p++; } a[i]=‘\0’; }}字符串中尾部*號不能多于n個,多余的要刪除。首先需要通過while循環(huán)統(tǒng)計字符串尾部*號,然后通過if條件語句完成尾部*號數(shù)和n的比較,若尾部*號數(shù)多于n個,則需要把n個*號和其余字符重新保存。2021年河南省開封市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若變量c為char類型,能正確判斷出c為小寫字母的表達式是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′)

2.設(shè)S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復(fù)雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)

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

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

4.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);

A.aB.bC.cD.d

5.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態(tài)變化

6.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

7.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

8.為了使模塊盡可能獨立,要求()。

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

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

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

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

9.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)

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

C.switch(a+B)

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

10.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是()。

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

11.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.1,3B.0,2C.0,3D.1,2

12.函數(shù)filecopy的功能是,將fin所指文件中的內(nèi)容輸出到fout所指文件中,但函數(shù)不完整:voidfilecopy(FILE*fin,FILE*fout){charch;ch=getc(fin);while(_______){putc(ch,fout);ch=getc(fin);}}其中下劃線處應(yīng)填入的是()。A.!feof(fin)B.!feof(fout)C.feof(fin)==1D.feof(fout)==1

13.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

輸出結(jié)果是()。

A.28

B.27

C.42

D.41

14.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。

A.3B.13C.1D.0

15.

16.已知一算術(shù)表達式的中綴表達式為a-(b+c/d)*e,其后綴形式為()

A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-

17.

18.設(shè)變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價于()。A.A.p="";

B.p="0";

C.p=0;

D.p="";

19.目前以比較為基礎(chǔ)的內(nèi)部排序方法中,其比較次數(shù)與待排序的記錄的初始排列狀態(tài)無關(guān)的是()

A.插入排序B.快速排序C.二分插入排序D.冒泡排序

20.設(shè)串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

二、2.填空題(20題)21.實體聯(lián)系模型是一種常用的高級概念數(shù)據(jù)模型,而______是實體聯(lián)系模型中的核心。

22.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。

23.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

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

24.在雙鏈表中每個結(jié)點有兩個指針域:一個指向【】,另一個指向【】。

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

26.以下函數(shù)用來在w數(shù)組中插入x。n所指向的存儲單元中存放w數(shù)組中字符個數(shù)。數(shù)組w中的字符已按從小到大的順序排列,插入后數(shù)組w中的字符仍有序。請?zhí)羁铡?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

while(x>w[p])p++;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;}

27.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

28.設(shè)有如下程序段:

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

上述程序段的輸出結(jié)果是【】。

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

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

30.對一組記錄{54,38,96,23,15,72,60,45,83}進行直接插入排序時,當(dāng)插入第5個記錄到有序表時,尋找插入位置需比較【】次。

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

main()

{chars[]=“abcdef”;

s[3]='\0';

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

}

32.與十進制數(shù)101等值的二進制數(shù)為【】。

33.軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和()的集合。

34.面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚠_____。

35.設(shè)順序輸入數(shù)列為:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每個結(jié)點的查找概率相同,若用順序存儲方式組織該數(shù)列,則查找一個數(shù)成功的平均比較次數(shù)為【】;若按二叉排序樹結(jié)構(gòu)組織該數(shù)列,則查找一個數(shù)成功的平均比較次數(shù)為【】。

36.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細設(shè)計階段所采用的是【】方法。

37.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。

38.若給fun函數(shù)的形參s傳送字符串:"abc-6354abc",則函數(shù)的返回值是()。(字符串中包括空格)

longfun(charS[])

{longn;intsign;

for(;isspace(*s)||islower(*s);s++);

sign=(*s=='-')?-1:1;

if(*s=='+'||*s=='-')s++;

for(n=0;isdigit(*s);s++)

n=10*n+(*S-'0');

returnsign*n;

}

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

main()

{intx,a=1,b=2,c=3,d=4;

{intx,a=1,b=2,c=3,d=4;

x=(a<B)?a:b;x=(a<C)?x:C;x=(d>x)?x:d;

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

}

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

三、1.選擇題(20題)41.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

42.以下不屬于對象的基本特點的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

43.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。

A.整型表達式B.整型常量C.整型常量或整型表達式D.任何類型的表達式

44.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

45.若有下面的說明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;

A.30B.29C.24D.22

46.關(guān)于結(jié)構(gòu)化程序設(shè)計原則和方法描述錯誤的是()。

A.選用的結(jié)構(gòu)只準許有一個入口和一個出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

47.若要“為讀/寫建立―個新的文本文件”,在fopen函數(shù)中應(yīng)使用的文件方式是()

A.wB.wbC.w+D.wb+

48.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

49.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運行階段D.物理設(shè)計

50.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。

A.隊列B.線性表C.二叉樹D.棧

51.在位運算中,操作數(shù)每右移兩位,其結(jié)果相當(dāng)于()。

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

52.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",*(*(p+i)+n));}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}則程序運行后的輸出結(jié)果是()

A.369B.248C.456D.789

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

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

54.有以下程序:#include<stdio.h>structs{intx,y;}data[2]={10,100,20,200};main(){structs*p=data;printf("%d\n",++(p->x));程序運行后的輸出結(jié)果是()。

A.10B.11C.20D.21

55.有以下程序:#include<stdio.h>main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q.a,b);程序運行后的輸出結(jié)果是()。

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

56.下列程序的輸出結(jié)果是______。main(){inti,x[3][3]=(1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}

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

57.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。

A.8B.16C.32D.15

58.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

59.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計是描述______。

A.數(shù)據(jù)存儲結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測試D.軟件控制過程

60.C語言中下列敘述正確的是_______。

A.不能使用do...while語句構(gòu)成的循環(huán)

B.do...while語句構(gòu)成的循環(huán),必須用break語句才能退出

C.do...while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為非零時結(jié)束循環(huán)

D.do...while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為零時結(jié)束循環(huán)

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

運行時,若輸入123450<回車>,則輸出結(jié)果是()。

A.6566456

B.66656

C.66666

D.6666656

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

A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

63.下面函數(shù)調(diào)用語句含有實參的個數(shù)為()。

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

64.有三個關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

65.

66.

67.Internet使用的網(wǎng)絡(luò)協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

68.對長度為n的線性表排序,在最壞情況下,比較次數(shù)是nlog2n的排序方法是()。

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

69.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是()。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)

70.有以下程序:

當(dāng)執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個字符]12<;CR>;34<;CR>;則輸出結(jié)果是()。

A.12B.123C.1234D.12343

71.

72.鏈表不具有的特點是()。

A.不必事先估計存儲空間B.可隨機訪問任意元素C.插入、刪除不需要移動元素D.所需空間與線性表長度成正比

73.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

74.

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

76.

77.C源程序中不能表示的數(shù)制是()。

A.十六進制B.八進制C.十進制D.二進制

78.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達式的值為()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

79.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

80.

五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun(),其功能是使字符串中尾部的*號不多于n個,若多于n個,則刪除多余的*號;若少于或等于n個,則不做任何操作,字符串中間和前面的*號不刪除。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”。n的值在主函數(shù)中輸入。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

參考答案

1.D

2.D

3.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。

4.A解析:C函數(shù)的參數(shù)傳遞方式采用按值傳遞,不能通過調(diào)用函數(shù)改變形參指針本身的值,只能改變指針所指變量的值。調(diào)用point函數(shù)時,將實參指針p的值(b數(shù)組的首地址)傳給了形參指針P,P+=3運算使形參指針指向字符d,但并不能改變main函數(shù)中p的值,所以本題正確答案應(yīng)該是選項A)。

5.A

6.B本題考查實參與形參調(diào)用,從實參傳遞到形參時,只是數(shù)值的傳遞,調(diào)用函數(shù)中值的改變不會影響主函數(shù)中的值,因此原樣輸出。

7.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構(gòu)成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項。

8.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

9.C

10.BB。【解析】在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。

11.D輸出的結(jié)果是:-1,1\r\n0,2\r\n1,2

12.Afilecopy函數(shù)每次從fin文件指針調(diào)用getc函數(shù)讀取一個字符存放到ch中,再通過while循環(huán)調(diào)用putc函數(shù)將ch寫入fout,直到fin指向文件尾部為止。所以while的循環(huán)條件是判斷fin是否到文件尾部。這里使用feof函數(shù)判斷:feof返回值為真時,表示fin指向了文件尾部,否則表示fin未到文件尾部。所以while循環(huán)條件為!feof(fin)。故本題答案為A選項。

13.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。

\n

14.AC語言中的轉(zhuǎn)義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結(jié)束,因此計數(shù)為3。故本題答案為A選項。

15.C

16.D

17.D

18.C在C語言中null等價于數(shù)字0。

19.C

20.D

21.實體聯(lián)系圖或E-R圖實體聯(lián)系圖或E-R圖解析:實體聯(lián)系圖(B-R圖)是實體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲及其之間的關(guān)系,因此它是數(shù)據(jù)庫觀念設(shè)計的最常用的工具。

22.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。

23.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標準輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數(shù)格式是66。所以,輸出為B66。

24.前趨結(jié)點后繼結(jié)點前趨結(jié)點\r\n后繼結(jié)點

25.x=11x=11解析:在對無符號數(shù)的右移是高位補0。

26.w[i-1]w[i-1]解析:在用數(shù)組實現(xiàn)的有序序列中插入內(nèi)容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數(shù)。函數(shù)為了簡化尋找插入位置循環(huán)的循環(huán)條件,預(yù)先在序列的最后置入插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應(yīng)填入w[i-1]。

27.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

28.16

29.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉(zhuǎn)換為十進制的值為21,十六進制的0x25轉(zhuǎn)換為十進制的值為37,故最后的輸出結(jié)果為252137。

30.11解析:直接插入排序是在已排好序的序列中用順序查找法查找插入位置。第5個記錄是15,15和23比較,就知道15應(yīng)放在原23放的位置,23及其以后的記錄后移。

31.abcabc解析:字符串的結(jié)束標記'\\0',當(dāng)輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

32.1100101

33.相關(guān)文檔相關(guān)文檔解析:軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔。程序足對計算機的處理對象和處理規(guī)則的描述,是軟件開發(fā)入員根據(jù)用戶需求開發(fā)的、用程序語言描述的、適合計算機執(zhí)行的指令序列。數(shù)拼是使程序能正常操作信息的數(shù)據(jù)結(jié)構(gòu)。文檔是為了便于了解程序所需的資源說明,是與程序的開發(fā)、維護和使用有關(guān)的資料。

34.類類

35.857/15

36.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化程序設(shè)計方法。詳細設(shè)計階段所采用的是結(jié)構(gòu)化設(shè)計方法。

37.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

38.-6354-6354解析:本題的考查點是函數(shù)的返回值。這個函數(shù)的目的是提取出由函數(shù)的形參傳送來的字符串中的數(shù)字字符,并通過相應(yīng)字符位置計算出它們數(shù)值形式的冪,最后返回字符串中的數(shù)字字符的數(shù)值形式,所以函數(shù)的返回值應(yīng)當(dāng)是“-6354”。

39.11解析:條件運算表達式:“表達式1?表達式2:表達式3”,但表達式1的值為非0時,此時表達式2的值就是整個條件表達式的值,反之為表示式3的值。解析易知結(jié)果為1。

40.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

41.C解析:如果沒有指明函數(shù)值類型,則默認函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。

42.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。

43.C解析:在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型可以是整型常量,也可以是整型表達式。

44.C解析:for語句中的表達式可以部分或全部省略,但兩個“;”不能省略,若3個表達式均省略,會因為缺少條件判斷,導(dǎo)致循環(huán)無限執(zhí)行,而形成死循環(huán)。本題中當(dāng)i的值為5的時候,循環(huán)終止。

45.D解析:本題主要考查結(jié)構(gòu)體變量和共用體變量所占存儲空間大小的計算方法。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

46.C解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結(jié)構(gòu)化程序設(shè)計的原則。

47.D

48.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。

49.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分

溫馨提示

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

最新文檔

評論

0/150

提交評論