2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁
2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁
2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁
2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁
2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列敘述中正確的足

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

2.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

3.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運行結(jié)果是()。

A.abcB.28cC.abc28D.因類型不一致而出錯

4.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。

A.1B..0C.6D.2

5.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標(biāo)識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

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

6.若有下列說明語句int(*p)();則標(biāo)識符p代表的是()

A.一個用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型

B.一個帶回值類型為整型的函數(shù)名

C.一個用于指向整型數(shù)據(jù)的指針變量

D.一個帶回值類型為指針類型的函數(shù)名

7.下列程序的輸出結(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

8.判定一個順序棧st(最多元素為MaxSize)為空的條件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

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

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

10.若有定義: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");)

11.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

12.采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

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

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

14.對于循環(huán)隊列,下列敘述中正確的是()。

A.隊頭指針是固定不變的

B.隊頭指針一定大于隊尾指針

C.隊頭指針一定小于隊尾指針

D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針

15.在一個被調(diào)用函數(shù)中,關(guān)于return語句使用的描述,()是錯誤的。

A.被調(diào)用函數(shù)中可以不用return語句

B.被調(diào)用函數(shù)中可以使用多個return語句

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語句

D.被調(diào)用函數(shù)中,一個return語句可以返回多個值給調(diào)用函數(shù)

16.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

17.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

18.下列關(guān)系模型中,能使經(jīng)運算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

19.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()。

A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

20.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}

A.1B.2C.7D.10

二、2.填空題(20題)21.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

22.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。

23.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。

24.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

25.一般來說,數(shù)據(jù)庫的設(shè)計過程要經(jīng)歷3個大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計階段、設(shè)計實施與系統(tǒng)運行階段。概念設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計屬于數(shù)據(jù)庫設(shè)計的【】階段。

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

27.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

#include<stdio.h>

main()

{charm;

m='B'+32;

printf("%c\n",m);

}

29.在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計中,常用的描述工具是【】。

30.若有以下函數(shù)定義,函數(shù)返回值的類型是【】。

fun(doubleA)

{returna*a*a;}

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

32.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

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

main()

{

inti,m=0,n=0,k=0;

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

switch(i/10)

{

case0:m++;n++;break;

case10:n++;;break;

default:k++;n++;

}

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

}

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

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

請在下面的函數(shù)中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

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

return(sqrt(6*s));

}

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

#inciude<stdio.h>

main()

{chars[]="ABCabc";

s[5]='\0';

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

}

36.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

}

puts(a);

printf("\n");

}

37.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。

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é)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計,【】的任務(wù)是決定系統(tǒng)的模塊結(jié)構(gòu)。

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

三、1.選擇題(20題)41.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。

A.1B.2C.4D.死循環(huán)

42.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運行后的輸出結(jié)果是()。

A.0B.4C.6D.7

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

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

44.下列SQL語句中,用于修改表結(jié)構(gòu)的是()。A.A.ALTERB.CREATEC.UPDATED.INSERT

45.若有以下的說明,對初值中整數(shù)2的正確引用方式是

staticstruct

{charch;

inti;

doublex;

}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};

A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i

46.以下敘述中,正確的是______。

A.輸入項可以是一個實型常量,例如:scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&d);

D.當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf("%f",&f);

47.下面可以作為C語言用戶標(biāo)識符的一組是

A.voiddefineWORD

B.a3_b3_123IF

C.for--abccase

D.2aD0sizeof

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

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

49.設(shè)有如下定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。

A.q=&data.m;

B.*q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

50.下面能正確進(jìn)行字符串賦值操作的語句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

C.char*s;s="ABCDEF";

D.char*s;scanf("%s",s):

51.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

52.以下能正確定義且賦初值的語句是______。

A.iht=n1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5

53.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若運行時輸入:123<回車>,則輸出結(jié)果是

A.產(chǎn)生錯誤信息B.102000C.123000D.102030

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

55.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}程序運行后的輸出結(jié)果是______。

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

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

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

57.字符串"\\"ABCDEF\"\\”的長度是()。

A.11B.10C.5D.3

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

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

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

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

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

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

main()

{inta,b,d=25;

a:d/10%9;

b=a&&(-1);

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

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

60.若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)

p[i]=&a[i*4];

pp=p;

則對數(shù)組元素的錯誤引用是

A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)

四、選擇題(20題)61.(31)算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成()

A.循環(huán)、分支、遞歸

B.順序、循環(huán)、嵌套

C.循環(huán)、遞歸、選擇

D.順序、選擇、循環(huán)

62.

63.有以下函數(shù)函數(shù)的功能是()。

A.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

B.查找x和y所指字符串中是否有’\0’

C.將y所指字符串賦給x所指存儲空間

D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)

64.

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

A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名識意”

C.用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識

D.用戶所定義的標(biāo)識符必須以字母或下劃線開頭

66.

67.

下面程序的功能是輸出以下形式的金字塔圖案:main

{inti,j;*

for(i=l;i<-4;i++)***

{for(j=1;j<=4-i;j++)printf("");

*****

for(j=1;j<=____;j++)printf("

*");*******

printf("\n");

}

}

在下劃線處應(yīng)填入的是()。

A.iB.2*i一1C.n=2*i+1D.i+2

68.

69.

70.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

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

A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

72.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。

A.外模式B.內(nèi)模式C.概念模式D.邏輯模式

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

A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化

D.以上說法都不正確

74.有以下程序:

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

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

75.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運行結(jié)果是()A.1B.0C.2D.3

76.常采用的兩種存儲結(jié)構(gòu)是()。

A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

77.當(dāng)用“#defineF37.5f”定義后,下列敘述正確的是()。

A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串

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

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

79.

運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。

main

{floata,b,c,t;

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

if(a<b)

{t=a;a=b.b=t;)

if(a<c)

{t=a;a=c;c=t;)

it(b<c)

{t=b;b=C;c—=;)

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

}

A.1.002.003.00

B.1.003.002.00

C.132

D.3.000002.000001.00000

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。

例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdio.h>

#include<math.h>

intproc(inta,intb,intc)

{

if(a+b>c&&b-c>a&&a+c>b)

{

if(a==b&&b==c)

//****found****

return1;

elseif(a==b||b==C||a==c)

return2;

//****found****

elsereturn3;

}

elsereturn0;

}

voidmain

{

inta,b,c,shape;

printf("\nInputa,b,c:");

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

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

shape=proc(a,b.c):

printf("\n\nTheshape:%d\n",shape);

}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),該函數(shù)的功能是使變量h的值保留兩位小數(shù),并對第3位進(jìn)行四舍五入(規(guī)定h的值為正數(shù))。若h的值為1234.567,則函數(shù)返回1234.570000;若h的值為1234.564,則函數(shù)返回1234.560000。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A解析:本題考核軟件維護(hù)的概念.維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段,在軟件交付使用后,還需要進(jìn)行維護(hù)。軟件維護(hù)通常有以下四類:為糾正使用中出現(xiàn)的錯誤而進(jìn)行的改正性維護(hù);為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。綜上所述,本題的正確答案是A,其余選項的說法錯誤。

2.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達(dá)到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。

3.Cfprintf函數(shù)將內(nèi)容寫入硬盤的文件,fputs函數(shù)將字符串寫入文件,最終文件的內(nèi)容為abc28。故本題答案為C選項。

4.C

5.D

6.A

7.D本題考夢自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”出現(xiàn)在變量之前,表示先使用變量的值加l,再使用變量的值進(jìn)行運算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行運算,再使用變量的值加l。當(dāng)邏輯與運算符“&&’’兩邊的運算對象都為真時,邏輯表達(dá)式的值才為真;當(dāng)邏輯或運算符“||”只要一個值為1,值就為1。根據(jù)運算符的優(yōu)先級,題中應(yīng)先計算內(nèi)層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達(dá)式++j=3成立,即表達(dá)式的值為1;1與任何數(shù)都為進(jìn)行或(||)運算,結(jié)果都為1,因此k=3的表達(dá)式i++是先運算后自加,因此運算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。

8.B

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

10.C

11.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個元素和第4個元素互換,第2個元素和第3個元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個元素和第10個元素互換,第6個和第9個元素互換,第7個元素和第8個元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個元素和第10個元素互換,第2個元素和第9個元素互換……依此類推。因此B選項正確。

12.D

13.A參數(shù)r的傳遞是地址傳遞,函數(shù)調(diào)用會改變其值。函數(shù)f的功能是:判斷n是否為3或5的倍數(shù),如果是,則將指針r所指的內(nèi)存空間賦值為n除以3或5的商;否則n遞減,直到它可以被3或5整除。初始時調(diào)用函數(shù)f(7,&r);n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3==0)r1=n/3;,此后執(zhí)行語句*r=rl;。所以r=6/3=2。

14.D循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進(jìn)行變化。因為是循環(huán)利用的隊列結(jié)構(gòu),所以隊頭指針有時可能大于隊尾指針,有時也可能小于隊尾指針。

15.D

16.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。

17.D本題考查C語言中變量類型的轉(zhuǎn)換。

C語言中若參與運算的變量的數(shù)據(jù)類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運算。轉(zhuǎn)換數(shù)據(jù)始終往長度增加的方向進(jìn)行,以確保精確度,如int和long運算,則將int轉(zhuǎn)換為long再運算,所有的浮點運算都是以雙精度(double)進(jìn)行的。

題目中x、y都為double型數(shù)據(jù),而表達(dá)式3/2為兩個整型變量之間的計算,計算結(jié)果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結(jié)果為1。后面變?yōu)橛嬎銀=x+1,這時都需要變?yōu)閐ouble型數(shù)據(jù),結(jié)果為3.000000。

18.B解析:本題主要考查關(guān)系模型中幾種運算的特征。經(jīng)過選擇或投影運算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項B正確。

19.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

20.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。

21.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

22.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計方法。結(jié)構(gòu)化設(shè)計就是采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。

23.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進(jìn)行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。

24.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

25.系統(tǒng)設(shè)計系統(tǒng)設(shè)計解析:系統(tǒng)設(shè)計階段是系統(tǒng)的具體設(shè)計過程,主要包括概念設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計3個步驟。這3個不同層次上的設(shè)計過程,是把實體以及相互之間的聯(lián)系轉(zhuǎn)換為“數(shù)據(jù)”并落實于計算機中。

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

27.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe

28.bb解析:本題實現(xiàn)的功能是把大寫字母轉(zhuǎn)換為小寫字母。小寫字母的ASCII碼值比相應(yīng)的大寫字母的ASCII碼值大32。

29.E-R圖E-R圖解析:E-R圖是設(shè)計概念模型的有力工具。

30.int類型int類型

31.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

32.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:b[i][N-1]=a[0][i]實現(xiàn)把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。

33.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數(shù)中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當(dāng)i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當(dāng)i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當(dāng)i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結(jié)束。故該空格處應(yīng)該填132。

34.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知;在第i項其值為1/(i*i),考慮到運算結(jié)果為浮點數(shù),故必須要將1轉(zhuǎn)化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。

35.ABCabABCab解析:本題中字符數(shù)組的初值是“ABCabc”,s[5]='c',然后通過s[5]='\\0'重新給s[5]賦值,在C語言中'\\0'是字符串結(jié)束標(biāo)志,執(zhí)行s[5]='\\0',其實是將s[5]的值去掉只保留前面的字符。

36.j+=2a[i]>a[j]j+=2\r\na[i]>a[j]解析:由于要對偶數(shù)位進(jìn)行排位,所以空格處應(yīng)填。j+2,空13處是一個排序算法中的判斷語句,經(jīng)過分析后應(yīng)該填a[i]>a[j]。

37.模塊模塊

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.系統(tǒng)設(shè)計系統(tǒng)設(shè)計解析:結(jié)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計。系統(tǒng)設(shè)計決定系統(tǒng)的模塊結(jié)構(gòu),模塊設(shè)計具體考慮每個模塊內(nèi)部的算法、模塊輸入、輸出及模塊功能。

40.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。

41.A解析:在程序語句中,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為1。

42.D解析:在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順序執(zhí)行case3:n+=k;得n=5;當(dāng)k=1時,執(zhí)行case1:n+=k;得n=6,然后順序執(zhí)行case2:和case3:n+=k;使得n=7。

43.A解析:維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護(hù)性,同時也要設(shè)法降低維護(hù)的代價。

軟件維護(hù)通常有以下四類;

①為糾正使用中出現(xiàn)的錯誤而進(jìn)行的改正性維護(hù);

②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);

③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);

④為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。

軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護(hù)。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。

44.A解析:在SQL語句中,凡是創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,后面跟類型和名字,附加子句。

45.B解析:考查結(jié)構(gòu)體數(shù)組對結(jié)構(gòu)體成員的引用。結(jié)構(gòu)體數(shù)組中對結(jié)構(gòu)體成員的引用要先引用到數(shù)組元素,然后像對待普通的結(jié)構(gòu)體變量一樣來對待結(jié)構(gòu)體數(shù)組元素。

46.D

47.B解析:在C語言中,合法的標(biāo)識符可以由字母、數(shù)字和下劃線組成,其中關(guān)鍵字不能作為用戶的標(biāo)識符,且開頭的第一個字符必須為字母或下劃線。選項A中void為關(guān)鍵字;選項C中for和case為關(guān)鍵字;選項D中sizeof為關(guān)鍵字。

48.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。

49.C利用強制類型轉(zhuǎn)換(structsk*)把整數(shù)型地址&data.m轉(zhuǎn)換成結(jié)構(gòu)體變量指針賦給結(jié)構(gòu)體指針變量q。

50.C

51.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

52.A解析:B選項中32應(yīng)加單引號,C選項中f=f+1.1兩邊都是不定值,不正確;D中E后要用整型數(shù),且E后必須要有數(shù)字。

53.B解析:二維數(shù)組指針第一個for循環(huán)中,第一次循環(huán)ptr指向a[0][0]的首地址,所以經(jīng)過輸入語句,a[0][0]=1;第二次循環(huán)ptr指向a[1][0]的首地址,所以經(jīng)過輸入語句,a[1][0]=2。此時,除了這兩個元素,其他元素沒有改變,等于初值0。

54.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

55.D解析:C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實參傳給形參,而不能由形參傳回來給實參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。

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

57.B解析:本題涉及字符串的兩個最基本的概念。①字符串的長度是指字符串中字符的個數(shù),但不包含字符串結(jié)束符;②以反斜線“\\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。

58.D解析:在定義函數(shù)時函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)(可以是一個表達(dá)式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。故本題應(yīng)該選擇D。

59.B解析:算術(shù)運行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運算過程為:a=25/10%9=2%9=2;當(dāng)邏輯運算符“&&”兩邊的值都是非零時,邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。

60.C解析:考查指向數(shù)組的指針。本題綜合考查一維數(shù)組和多維數(shù)組指針變量的表示方法。在C語言中,引用數(shù)組元素的方法有兩種,即下標(biāo)法和指針法。下標(biāo)法如a[i]形式;指針法如*(a+i)或*(p+1)。其中,a是數(shù)組名,p是指向數(shù)組的指針變量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意語句中指針型數(shù)組的書寫格式,不能寫成'(*數(shù)組名)[長度]',因為這是定義指向含有'長度'個元素的一維數(shù)組的指針變量。例如有定義語句'inta,b,c,c,*p[3]={&a,&b,&c};',它定義了一個名為p的指針型數(shù)組,其3個元素p[0],p[1],p[2]分別指向f3個整型變量a,b,c。

61.D

62.B

63.A本題中由循環(huán)條件可知,當(dāng)遇到l\0”’或“x與y所指的字符的值不相等”中的一個條件時就結(jié)束循環(huán),因此本題函數(shù)的功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。

64.B

65.Ac語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除D);用戶定義標(biāo)識符中大小寫字母之間是有區(qū)別的并且應(yīng)盡量做到”見名識意”,排除選項B)和c);C語言中還規(guī)定標(biāo)識符不能為c語言的關(guān)鍵字,故選項A)敘述錯誤,正確答案是選項A)。

66.C

67.B

\n對于第i行,程序先輸出4-i個空格,然后輸出2×i-1個'*',所以答案是B。

\n

68.C

69.B

70.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當(dāng)前位置。

71.C\n\tC?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。

72.B數(shù)據(jù)庫有三層模式結(jié)構(gòu),邏輯模式是數(shù)據(jù)的全局邏輯結(jié)構(gòu)的描述,外模式也稱為子模式,是局部數(shù)據(jù)的邏輯結(jié)構(gòu)描述,而內(nèi)模式也稱為存儲模式,是數(shù)據(jù)庫物理存儲結(jié)構(gòu)和存取方法的描述。

73.CC【解析】棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來操作,所以選擇C。

74.D首先對二維數(shù)組進(jìn)行賦值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值為l、4、…、6、1。通過for語句和if語句,對二維數(shù)組各列元素進(jìn)行由小到大的排序操作,程序最后通過for語句輸出二維數(shù)組對角線上的元素。因此D選項正確。

75.A雖為嵌套的for循環(huán),但“m=m%j”只執(zhí)行1次,即當(dāng)i=3時,內(nèi)層循環(huán)條件成立,m=55%3=1,故選A。

76.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。

\n

77.D解析:字符替換定義格式為:#define標(biāo)識符(形參表)形參表達(dá)式。題中F是代表形參表達(dá)式的標(biāo)識符(字符串)。

78.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

79.D

\n本題考查if語句。第1個if語句,如果a<b,則a與b交換;第2個if語句,如果a<c,則a與c交換;第3個if語句,如果b<2t,則b與c交換。3個if語句結(jié)合起來實現(xiàn)的功能就是將a、b、C按從大到小排序。

\n

80.C

81.\n\t(1)錯誤:return1;

\n正確:return3;

\n(2)錯誤:return3;

\n正確:return1;

\n【解析】三條邊都相等的三角形為等邊三角形,按題目中要求,等邊三角形返回3,若不是等邊三角形也不是等腰三角形則返回1,因此,“return1;”應(yīng)改為“return3;”;“return3;”應(yīng)改為“return1;”。\n

82.1floatfun(floath)2{3inttmp=(int)(h*1000+5)/10;/*單精度數(shù)h乘以1000后再加5,相當(dāng)于對h中的第3位小數(shù)進(jìn)行四舍五入,除以10后將其賦給一個長整型數(shù)時就把第3位小數(shù)后的數(shù)全部截去*/4return(float)tmp/I00.0;/*除以100,保留2位小數(shù)*/5}注意:本題要求對變量h中的第3位小數(shù)進(jìn)行四舍五入運算,而不是輸出,即不能用printf(“%7.2f”,h)輸出結(jié)果。四舍五入算法:如果要求精確到小數(shù)點后面的第n位,則需要對第n+1位進(jìn)行運算。方法是將該小數(shù)乘以10的n+1次方后加5,然后除以10并強制轉(zhuǎn)換變量類型為整型,再將該數(shù)除以10的n次方,同時強制轉(zhuǎn)換類型為浮點型。代碼實現(xiàn)如下:intt;/*定義整型變量t*/t=(int)(h*10n+1+5)/10;/*對h進(jìn)行操作,得到浮點型值,t取值時取整數(shù)部分。10n+1為要擴大的倍數(shù)*/h=(float)t/10n;/*將t縮小10n倍,并轉(zhuǎn)換成浮點型*/2022-2023年湖南省郴州市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列敘述中正確的足

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

2.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

3.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運行結(jié)果是()。

A.abcB.28cC.abc28D.因類型不一致而出錯

4.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。

A.1B..0C.6D.2

5.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標(biāo)識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

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

6.若有下列說明語句int(*p)();則標(biāo)識符p代表的是()

A.一個用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型

B.一個帶回值類型為整型的函數(shù)名

C.一個用于指向整型數(shù)據(jù)的指針變量

D.一個帶回值類型為指針類型的函數(shù)名

7.下列程序的輸出結(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

8.判定一個順序棧st(最多元素為MaxSize)為空的條件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

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

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

10.若有定義: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");)

11.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

12.采用鄰接表存儲的圖的廣度優(yōu)先遍歷算法類似于二叉樹的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

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

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

14.對于循環(huán)隊列,下列敘述中正確的是()。

A.隊頭指針是固定不變的

B.隊頭指針一定大于隊尾指針

C.隊頭指針一定小于隊尾指針

D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針

15.在一個被調(diào)用函數(shù)中,關(guān)于return語句使用的描述,()是錯誤的。

A.被調(diào)用函數(shù)中可以不用return語句

B.被調(diào)用函數(shù)中可以使用多個return語句

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語句

D.被調(diào)用函數(shù)中,一個return語句可以返回多個值給調(diào)用函數(shù)

16.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

17.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

18.下列關(guān)系模型中,能使經(jīng)運算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

19.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()。

A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

20.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}

A.1B.2C.7D.10

二、2.填空題(20題)21.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

22.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。

23.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。

24.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

25.一般來說,數(shù)據(jù)庫的設(shè)計過程要經(jīng)歷3個大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計階段、設(shè)計實施與系統(tǒng)運行階段。概念設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計屬于數(shù)據(jù)庫設(shè)計的【】階段。

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

27.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

#include<stdio.h>

main()

{charm;

m='B'+32;

printf("%c\n",m);

}

29.在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計中,常用的描述工具是【】。

30.若有以下函數(shù)定義,函數(shù)返回值的類型是【】。

fun(doubleA)

{returna*a*a;}

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

32.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

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

main()

{

inti,m=0,n=0,k=0;

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

switch(i/10)

{

case0:m++;n++;break;

case10:n++;;break;

default:k++;n++;

}

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

}

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

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

請在下面的函數(shù)中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

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

return(sqrt(6*s));

}

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

#inciude<stdio.h>

main()

{chars[]="ABCabc";

s[5]='\0';

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

}

36.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

}

puts(a);

printf("\n");

}

37.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。

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é)構(gòu)化設(shè)計主要分為系統(tǒng)設(shè)計和模塊設(shè)計,【】的任務(wù)是決定系統(tǒng)的模塊結(jié)構(gòu)。

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

三、1.選擇題(20題)41.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。

A.1B.2C.4D.死循環(huán)

42.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運行后的輸出結(jié)果是()。

A.0B.4C.6D.7

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

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

44.下列SQL語句中,用于修改表結(jié)構(gòu)的是()。A.A.ALTERB.CREATEC.UPDATED.INSERT

45.若有以下的說明,對初值中整數(shù)2的正確引用方式是

staticstruct

{charch;

inti;

doublex;

}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};

A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i

46.以下敘述中,正確的是______。

A.輸入項可以是一個實型常量,例如:scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&d);

D.當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf("%f",&f);

47.下面可以作為C語言用戶標(biāo)識符的一組是

A.voiddefineWORD

B.a3_b3_123IF

C.for--abccase

D.2aD0sizeof

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

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

49.設(shè)有如下定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。

A.q=&data.m;

B.*q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

50.下面能正確進(jìn)行字符串賦值操作的語句是______。

A.chars[5]={"ABCDE"}:

B.chars[5]={'A'、'B'、'c'、'D'、'E'};

C.char*s;s="ABCDEF";

D.char*s;scanf("%s",s):

51.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

52.以下能正確定義且賦初值的語句是______。

A.iht=n1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5

53.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若運行時輸入:123<回車>,則輸出結(jié)果是

A.產(chǎn)生錯誤信息B.102000C.123000D.102030

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

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

55.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}程序運行后的輸出結(jié)果是______。

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

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

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

57.字符串"\\"ABCDEF\"\\”的長度是()。

A.11B.10C.5D.3

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

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

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

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

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

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

main()

{inta,b,d=25;

a:d/10%9;

b=a&&(-1);

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

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

60.若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)

p[i]=&a[i*4];

pp=p;

則對數(shù)組元素的錯誤引用是

A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)

四、選擇題(20題)61.(31)算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成()

A.循環(huán)、分支、遞歸

B.順序、循環(huán)、嵌套

C.循環(huán)、遞歸、選擇

D.順序、選擇、循環(huán)

62.

63.有以下函數(shù)函數(shù)的功能是()。

A.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

B.查找x和y所指字符串中是否有’\0’

C.將y所指字符串賦給x所指存儲空間

D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)

64.

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

A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名識意”

C.用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識

D.用戶所定義的標(biāo)識符必須以字母或下劃線開頭

66.

67.

下面程序的功能是輸出以下形式的金字塔圖案:main

{inti,j;*

for(i=l;i<-4;i++)***

{for(j=1;j<=4-i;j++)printf("");

*****

for(j=1;j<=____;j++)printf("

*");*******

printf("\n");

}

}

在下劃線處應(yīng)填入的是()。

A.iB.2*i一1C.n=2*i+1D.i+2

68.

69.

70.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

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

A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

72.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。

A.外模式B.內(nèi)模式C.概念模式D.邏輯模式

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

A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化

B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化

C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而

溫馨提示

  • 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

提交評論