2021-2022年河南省三門峽市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021-2022年河南省三門峽市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021-2022年河南省三門峽市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021-2022年河南省三門峽市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021-2022年河南省三門峽市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年河南省三門峽市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.如果只想得到1024個元素組成的序列中第5個最小元素之前的部分排序的序列,用()方法最快

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

2.下列關(guān)于線性鏈表的敘述中,正確的是()A.各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致

B.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)

C.進(jìn)行出入與刪除時,不需要移動表中的元素

D.以上三種說法都不催

3.設(shè)有定義:int?x=2,以下表達(dá)式中,值不為6的是()。

A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1

4.

5.

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

A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

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

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

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

7.當(dāng)用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

8.一個隊列的入隊序列是a,b,c,d,則出隊序列是()。

A.a,b,c,dB.a,c,b,dC.d,c,b,aD.a,c,b,d

9.執(zhí)行下列程序后,輸出的結(jié)果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

10.對包含N個元素的散列表進(jìn)行檢索,平均檢索長度________

A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是

11.有以下程序:#include<stdio.h>structS{inta,b;}data[2]=110,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(p.a));}程序的運行結(jié)果是()。

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

12.算法的效率的分析主要包括兩個方面()。

A.時間復(fù)雜度和空間復(fù)雜度B.正確性和簡單性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性

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

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

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

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

14.若有定義:typedefint*(*T[10])[10];Tb;則以下選項中所定義的a與上述定義中的b,其類型完全相同的是()。

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

B.int**a[10][10];

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

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

15.若變量已正確定義,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其輸出結(jié)果是()。A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7

16.判斷一個棧ST(最多元素為Maxsize)為滿的條件是()。

A.ST->top!==-1

B.ST->top==-1

C.ST->top!==Maxsize-1

D.ST->top==Maxsize-1

17.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機(jī)數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值

18.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成________。

A.屬性B.關(guān)系C.鍵D.域

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

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

20.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);)main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序運行后的輸出結(jié)果是()。A.1313B.2234C.3234D.1234

二、2.填空題(20題)21.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補充完整。

scanf("%d",【】);

printf("%d\n",【】);

22.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

23.軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和【】。

24.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結(jié)果是【】。

25.若輸入12、3、2、5、7,則以下程序的運行結(jié)果為【】。

intmax,min;

voidmax_min_value();

main()

{inti,number[5];

printf("輸入5個整數(shù);\n");

for(i=0;i<5;i++)scanf("%d",&number[i]);

maxminvalue(number,5);

printf("max=%d,min=%d\n",max,min);

getch();

}

voidmax_min_value(array,n)

intarray[],n;

{int*p;

max=min=*array;

for(p=array+1;p<array+n;p++)

if(*p>max)max=*p;

elseif(*p<min)min=*p;

}

26.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

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

main()

{

intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

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

main()

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

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

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

main()

{

inti,a[20],sum,count;

sum=count=【】;

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

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

{

if(a[i]>0)

{count++;

sum+=【】;

}

}

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

}

30.若已知a=10,b=20,則表達(dá)式!a<b的值為【】。

31.下面函數(shù)用來求兩個單精度數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>

Voidsub(floatx,noaty,【】z)

{【】=x+y;}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

33.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

34.若有如下結(jié)構(gòu)體說明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

35.隊列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。

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

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

wordnum(str)

charstr[];

{inti,num=0,word=0;

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

if(【】==)word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

38.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j<=k;j+=2;)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

printf("\n");

}

39.下列程序的運行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

40.下面程序用來輸出結(jié)構(gòu)體變量a所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

main()

{structstu

{charx[20];floaty;}a;

printf("asize:%d\n",sizeof(【】));

}

三、1.選擇題(20題)41.有以下程序main(){unsignedchara,b,c;a=0x3;b=a|0x8;c=b<<1;printf("~%d%d\n",b,C);}程序運行后的輸出結(jié)果是

A.-1112B.-19C.1224D.1122

42.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d\n",&k,

A.12B.14C.1234D.123456

43.進(jìn)行二分法查找,則線形表______。

A.必須以順序方式存儲

B.必須以鏈接方式存儲,且數(shù)據(jù)元素已按值排好序

C.必須以鏈接方式存儲

D.必須以順序方式存儲,且數(shù)據(jù)元素已按值排好序

44.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

45.有以下程序main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0case3:a+=2;case1;case2;a+=3;default,a+=5;}}printf("%d\n",a);}

A.31B.13C.10D.20

46.軟件開發(fā)模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型

A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ

47.以下對枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={one","two","three"};

D.enuma{"one","two","three"};

48.以下選項中,正確的if-else語句是()

A.if(x!=0)printf("%d",x)elseprintf("%d",-x);

B.if(x!=0){x=x+y;printf("%d",x);}elseprintf("%d",-x);

C.if(x!=0)x=x+y;printf("%d",x);elseprintf("%d",-x);

D.if(x!=0){x=x+y;printf("%d",x)};elseprintf("%d",-x);

49.若變量已正確說明為float型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦予10,0,b賦予22.0,c賦予33.0,下列不正確的輸入形式是

A.10<回車>22<回車>33<回車>

B.10.0,22.0,33.0<回車>

C.10.0<回車>22.033.0<回車>

D.1022<回車>33<回車>

50.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

51.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

52.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為______。

A.真B.假C.0D.1

53.設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:______(其中0≤i≤0)inta[10]={O,12,3,4,5,6,7,8,9},*p=a;

A.a[p-a}B.*(&a[i])C.p[i]D.*(*(a+i)

54.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;

55.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,41

D.11,41,2112,42,22

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

A.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大

B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小

C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說法都不對

57.下列程序的輸出結(jié)果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}

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

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

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

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

58.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段

59.有以下計算公式:若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是()。

A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);

B.y=sqrt(x);if(x<0)y=sqrt(-x);

C.if(x>=0)y=sqrt(x);if(x<0)=sqdrt(-x);

D.y=sqrt(x>=0?x:-x);

60.有以下程序;main(){chars[]={"aaiou"},*ps;ps=s;printf("%c\n",*ps+4);}程序運行后的輸出結(jié)果是()。

A.aB.eC.uD.元素s[4]的地址

四、選擇題(20題)61.(57)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是______。

A.便于用戶、開發(fā)人員進(jìn)行理解和交流

B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認(rèn)測試和驗收的依據(jù)

D.便于開發(fā)人員進(jìn)行需求分析

62.下列不屬于過程設(shè)計工具中圖形工具的是()。

A.N—SB.PADC.程序流程圖D.PDL

63.

64.第

42

下面說明不正確的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*p;p=a="china"

65.以下能正確定義字符串的語句是()。

A.charstr=”\x43”;

B.charstr[]=”、0”;

C.charstr=”;

D.charstr[]={’\064’};

66.

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

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c);}

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

68.(56)下列不屬于軟件調(diào)試技術(shù)的是()

A.強行排錯法

B.集成測試法

C.回溯法

D.原因排除法

69.

若有定義和語句:

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

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

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

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

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

71.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的字符是

A.大寫字母B.連接符C.小寫字母D.下畫線

72.下列程序的輸出結(jié)果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}

A.123B.234C.223D.233

73.下列字符串不屬于標(biāo)識符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

74.有以下程序:

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

A.4B.10C.14D.6

75.有以下語句:Charb[B];intC;,則正確的輸入語句是()。

A.

B.

C.

D.

76.

有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個連續(xù)結(jié)點。

structnode

{intdata;structnode*next;)*p,*q,*r;

現(xiàn)要將q所指結(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。

A.p->next=q->next;

B.P-next=P->next->next;

C.p->next=r;

D.p=q->next;

77.有以下程序:

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

A.0B.1C.4D.8

78.

79.以下選項中可用做C程序合法實數(shù)的是()。

A..leOB.3.0e0.2C.E9D.9.12E

80.有以下程序:

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

A.0B.9C.6D.8

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進(jìn)行排序。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將s所指字符串中除了下標(biāo)為奇數(shù)同時ASCII值也為奇數(shù)的字符之外的其余所有字符全部刪除,字符串中剩余字符所形成的一個新字符串存放在t所指的數(shù)組中。例如,若s所指字符串的內(nèi)容為“ABCDEFG12345”,其中字符A的ASCII值為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此需要刪除;而字符1的ASCII值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指數(shù)組中的內(nèi)容應(yīng)為“135”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100]; printf(“\nPleaseenterstrings:”); scanf(“%s”,s); fun(s,t); printf(“\nTheresultis:%s\n”,t);}

參考答案

1.D解析:從平均時間性能而言,快速排序最佳,其所需時間最少,但快速排序在最壞情況下的時間性能不如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個數(shù)較少時,冒泡排序和簡單選擇排序為最佳排序方法,故本題答案應(yīng)該為選項D。

2.C

試題2分析

結(jié)點的存儲順序和邏輯順序不一定一致,存儲空間也不一定連續(xù)。插入和刪除元素的時候,不需要移動表中的元素。

試題2答案

C

3.A?A)選項中逗號表達(dá)式先計算第一表達(dá)式2*x,然后計算表達(dá)式x+=2的值,即x=x+2即4,整個逗號表達(dá)式為第二個表達(dá)式的值4,所以選A)。B)選項中首先計算逗號表達(dá)式中第一一個表達(dá)式x++,此時x為3,再執(zhí)行第二個表達(dá)式2*x=2*3=6,所以逗號表達(dá)式為第二個表達(dá)式的值6。C)選項的賦值表達(dá)式可以表示為x=x*(1+x)=2*(1+2)=6。D)選項中的表達(dá)式可以表示為x=x*(x+1)=2*3=6。

4.A

5.C

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

7.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數(shù)可以輸入一整行作為一個字符串,其中也包括空格字符,故應(yīng)該選擇C。

8.A

9.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

10.C

11.D聲明data是結(jié)構(gòu)體S的數(shù)組,初始化data[0].a=10,data[0].b=100,data[l].a=20,data[1].b=200。主函數(shù)中“p=data[1];”,即p.a=data[1].a,p.b=data[1].b,執(zhí)行語句“printf(“%d\\n”,++(p.a));”。輸出時,p.a先增1再輸出,p.a=data[1].a=20,先增1等于21。故本題答案為D選項。

12.D

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

14.D“typedefint*(*T[10])[10];”使用typedef定義一種新類型名T,T的類型是二維數(shù)組指針,指向10個元素的數(shù)組。其中數(shù)組元素類型為int*[10],即數(shù)組的每個元素又是包含10個元素的數(shù)組,數(shù)組的元素是整型指針類型。故本題答案為D選項。

15.B解析:本題考查的是程序結(jié)構(gòu)設(shè)計中if語句的應(yīng)用,當(dāng)if判斷條件成立時就執(zhí)行其后的相關(guān)語句,否則不執(zhí)行,本題中第一個if條件不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,此時第二個if條件也不成立,故不執(zhí)行其后語句,最終c的值為3。

16.D

17.B本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進(jìn)行賦值,則它的值是一個隨機(jī)值。

18.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實體集也可以轉(zhuǎn)換成關(guān)系。

19.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。

20.C本題考查了宏定義與局部變量的區(qū)別,宏定義的作用范圍為整個程序,而變量的作用范圍只在定義它的函數(shù)體的部分,因此,主函數(shù)中定義的i與fun中的i互不相干。

21.k*kk\r\n*k解析:scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個需要計算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*k。

22.252H252H解析:要解答本題,首先要明白在對指針進(jìn)行加,減運算時,數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應(yīng)該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

23.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù):軟件工程學(xué)的主要研究對象包括軟件開發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面。即軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

24.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

25.max=12min=2

26.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

27.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2==1)的值為真時,執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時,i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2==1)的值為真,所以整個表達(dá)式(i<7&&p[i]%2==1)的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。

28.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。

29.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本題要求從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們的和。程序中首先要對存放正數(shù)個數(shù)的變量count及存放和值的變量sum初始化為0,所以第一空應(yīng)填0。接著要求從終端讀入數(shù)據(jù)到數(shù)組中,可以通過scanf函數(shù)實現(xiàn),因此第二空應(yīng)填&a[i]。最后通過sum+=a[i];語句累加正數(shù)a[i]的值到sum中,因此第三空應(yīng)填a[i]。

30.11解析:計算表達(dá)式!a<b,先計算!a,因a的值為10,!a的值為0,而關(guān)系表達(dá)式0<20為真,所以表達(dá)式!a<b的值為1。

31.float*z

32.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符串,則不能使用scanf()函數(shù),所以本題中輸入空格就返回了'\\0',s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

33.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

34.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項表;

定義結(jié)構(gòu)休變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,....

其中變量包括:一般變量、指針變量、數(shù)組變量等。

35.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

36.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨菩再|(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。

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

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

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

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

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

38.a[i]>a[j]a[i]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求將下標(biāo)值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2。最后通過條件a[i]>a[j]對元素大小進(jìn)行判斷并交換。

39.33解析:分析程序運行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

40.dd解析:d被定義為一個結(jié)構(gòu)體類型變量,求結(jié)構(gòu)體變量a所占存儲單元的字節(jié)數(shù)即sizeof(d)。

41.D解析:本題考查的知識點是位的邏輯運算和位的移位運算。將a的值轉(zhuǎn)換為二進(jìn)制位:00000011,再與0×8的;進(jìn)制“00001000”位與,得到結(jié)果“00001011”賦值給b,b的值為11,再將b左移一位得到:00010110,賦值給c,c的值為22,所以最后輸出的b,c的值位11,22。所以4個選項中D正確。

42.D解析:本題首先以創(chuàng)建方式打開文件d2.dat,兩次調(diào)用fprintf()函數(shù)把a[0]、a[1]、a[2]、a[3]、a[4]、a[5]的值寫到文件d2.dat中,文件d2.dat內(nèi)容為“1,2,3<回車>4,5,6”。然后把該文件關(guān)閉再以只讀方式打開,文件位置指向文件頭,再通過fscanf()函數(shù)從小讀取兩個整數(shù)到k和n中。

43.D

44.DD。【解析】面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點。

45.A

46.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。

47.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。

48.B

49.B解析:在C語言中,當(dāng)一次輸入多個數(shù)據(jù)的時候,數(shù)據(jù)之間要用間隔符,合法的間隔符可以是空格、制表符和回車符。逗號不是合法的間隔符。

50.D解析:a是一個2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。

51.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

52.D解析:a&&b的值為true,c<'B'的值也為true,所以(a&&b)&&(c<'B')的值為true。但x是int型變量,所以(a&&b)&&(c<'B')的值最后要從bool型轉(zhuǎn)換為int型賦給x。這樣x的值應(yīng)為1。

53.D解析:觀察程序可知,a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

54.D解析:由于20000+20000、4000*10及30000+10000都是整型表達(dá)式,故運算的結(jié)果仍然是整型,表達(dá)式運算的結(jié)果超出了整型數(shù)據(jù)的范圍,不正確.而D是長整型運算,不會超出長整型的范圍。所以,4個選項中D為所選.

55.B解析:由于實參傳送的是變量的地址,所以對形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對實參內(nèi)容的改變。

56.D解析:時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量;空間復(fù)雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。

57.D解析:函數(shù)f()的功能是對兩個數(shù)據(jù)互換。在主函數(shù)中指針變量p和q分別指向數(shù)組a[8)的首和尾,在while循環(huán)中實現(xiàn)從首尾開始數(shù)組元素的互換操作。

58.B數(shù)據(jù)庫應(yīng)用系統(tǒng)的邏輯設(shè)計包括數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫事務(wù)概要設(shè)計和應(yīng)用程序概要設(shè)計三方面。數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的主要步驟為:將E—R圖轉(zhuǎn)換為初始關(guān)系模式,對初始關(guān)系模式進(jìn)行優(yōu)化,檢查關(guān)系表對數(shù)據(jù)庫事務(wù)的支持性,確定關(guān)系模式完整性約束,設(shè)計基于關(guān)系模式的用戶視圖。

59.B解析:選項B一開始就調(diào)用了sqrt(x)而沒有判斷x的正負(fù),所以是錯誤的。故應(yīng)該選B。

60.B解析:程序首先定義了一個字符數(shù)組s,然后讓字符指針ps指向該數(shù)組的首地址。最后按字符形式輸出*ps+4的值,即s[0]+4的值,'a'+4='e'。故應(yīng)該選擇B。

61.D

62.D\n常用的過程設(shè)計工具有圖形工具(程序流程圖、N-S圖、PAD圖、HIPO)、表格工具(判定表)、語言工具(PDL)。

\n

63.B

64.DC語言中操作一個字符串常量的方法有:①把字符串常量存放在一個字符數(shù)組中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,它被轉(zhuǎn)換成字符指針。本題D項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。

65.BC語言中,字符串是用一對雙引號括起來的字符序列,并用字符型數(shù)組來存放,故c選項和D選項不屬于字符串,A選項定義的是一個字符變量s拄,卻用來存放字符串,顯然也不正確,因此B選項正確。

66.B

67.A

68.B

69.D

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

\n

70.C本題考查的是逗號表達(dá)式。逗號表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個逗號表達(dá)式的值就是最后一個表達(dá)式N的值。表達(dá)式(x=3*y,x+6)中,x=15。表達(dá)式y(tǒng)=x—1=14。

71.B標(biāo)

溫馨提示

  • 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

提交評論