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ù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年浙江省湖州市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.在以下的敘述中,正確的是()。

A.線性表的順序存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu)

B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表

C.棧的操作方式是先進(jìn)先出

D.隊(duì)列的操作方式是先進(jìn)后出

2.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti,S=0;for(i=1;i<10;i++)if(!(i%2)&&!(i%3))s+=i;printf("%d\n",s);}A.4B.39C.45D.6

3.在供應(yīng)關(guān)系中,實(shí)體供應(yīng)商和實(shí)體零件之間的聯(lián)系是()。

A.多對多B.一對一C.多對一D.一對多

4.#define能作簡單的替代,用宏來替代計算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

5.

6.有以下程序

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

程序運(yùn)行后的輸出結(jié)果是A.運(yùn)行后報錯B.66C.611D.510

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

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

8.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)

9.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。

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

10.設(shè)有定義語句:charc1=92,c2=92;則以下表達(dá)式中值為零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

11.以下程序是用來計算兩個非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運(yùn)算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

12.軟盤上第()磁道最重要,一旦損壞,該盤就不能使用了。

A.0B.40C.1D.80

13.以下關(guān)于指針的說法錯誤的是()。

A.可以向指針中寫入任意數(shù)據(jù)

B.可以向指針?biāo)竷?nèi)存單元中寫入數(shù)據(jù)

C.指針可以指向與其基類型相同的普通變量

D.可以通過加法運(yùn)算,使指針指向下一個內(nèi)存單元

14.下列能正確進(jìn)行字符串賦值的是()。A.B.C.D.

15.有以下程序:Main(){{intx,y,z;x=y=1;z=x++,y++,++y;print(“%d,%d,%d”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2,3,3B.2.3.2C.2,3.1D.2.2.1

16.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilimum=1001<回車>后,name的值為()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

17.以下選項(xiàng)中合法的實(shí)型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

18.用C語言編寫的代碼程序

A.可立即執(zhí)行B.是一個源程序C.經(jīng)過編譯即可執(zhí)行D.經(jīng)過編譯解釋即可執(zhí)行

19.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

20.在n個結(jié)點(diǎn)的順序表中,算法的時間復(fù)雜度是O(1)的操作是()。

A.訪問第i個結(jié)點(diǎn)(1<=i<=n)和求第i個結(jié)點(diǎn)的直接前驅(qū)(2<=i<=n)

B.在第i個結(jié)點(diǎn)之后插入一個新結(jié)點(diǎn)(1<=i<=n)

C.刪除第i個結(jié)點(diǎn)(1<=i<=n)

D.將n個結(jié)點(diǎn)從小到大排序

二、2.填空題(20題)21.有以下程序:

#include<stdio.h>

main()

{

charc;

while((c=getchar())!='?')putchar(--c);

}

程序運(yùn)行時,如查從鍵盤輸入:Y?N?<回車>,則輸出的結(jié)果為______。

22.數(shù)據(jù)庫保護(hù)分為安全性、控制性、______、并發(fā)性控制和數(shù)據(jù)恢復(fù)。

23.面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個______。

24.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。

25.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計屬于______中的一個階段。

26.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

27.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運(yùn)行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。

28.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

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

main()

{intx==15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

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

#include<stdio.h>

main()

{inti,j;

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

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

}

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

#include<atdio.h>

main()

{inti,j;

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

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

}

32.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

33.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負(fù)值。請?zhí)羁铡?/p>

My_cmp(char*s,char*t)

{while(*s==*t)

{if(*s==′\0)return0;

++s;++t;

}return【】;

}

34.某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。

35.在面向?qū)ο蟮脑O(shè)計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

36.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。

37.理解下面的程序,填空完善程序。

main()

{inta,b,c;

scanf("%d%d",【】);

c=【】(a,b);

printf("a=%db=%dmax=%d\n",a,b,c);

}

intmax(x,y)

【】;

{intz;

if(x>y)z=x;

elsez=y(tǒng);

【】;

}

38.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。

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

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanquage",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");

}

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

三、1.選擇題(20題)41.下列字符串是合法的標(biāo)識符的是()。

A._HJB.9_studentC.longD.LINE1

42.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}

A.{B.1C.2D.-12

43.運(yùn)行下列程序,若從鍵盤輸入字母“a”,則輸出結(jié)果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

44.若有說明:int*p1,*p2,n=8,m;下列均是正確賦值語句的選項(xiàng)是()。

A.p1:&n;p2=&pl;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

46.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。

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

47.有以下程序:#include<stdio.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入;abcdef<回車>,則輸出結(jié)果是______。

A.defdefB.abcdefC.abedD.dd

48.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp);其中buffer代表的是()。

A.存放讀入數(shù)據(jù)項(xiàng)的存儲區(qū)

B.一個指向所讀文件的文件指針

C.一個指針,是指向輸入數(shù)據(jù)存放在內(nèi)存中的起始地址

D.一個整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

49.有以下程序段

charch;intk;

ch=′a′;k=12;

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

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項(xiàng)與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

50.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}

A.252B.1C.0D.運(yùn)行時出錯,x無定值

51.設(shè)有下面的程序段:chars[]="china";char*p;p=s;則下列敘述正確的是

A.s和p完全相同

B.數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相同

C.s數(shù)組長度和p所指向的字符串長度相等

D.*p與s[0]相等

52.以下程序的運(yùn)行結(jié)果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

53.當(dāng)運(yùn)行以下程序時,從鍵盤輸入AhaMA(空格)Aha

#include

main()

{chars[80],c='a';

inti=0;

scanf("%s",s);

while(s[i]!='\n')

{if(s[i]==c)s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;}

puts(s);}

A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA

54.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素

A.可在程序的運(yùn)行階段得到初值0

B.可在程序的編譯階段得到初值0

C.不能得到確定的初值

D.可在程序的編譯或運(yùn)行階段得到初值0

55.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];

D.intn=10,a[n];

56.下列描述中正確的是______。

A.軟件工程只是解決軟件項(xiàng)目的管理問題

B.軟件工程主要解決軟件新產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題

57.在調(diào)用函數(shù)時,如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實(shí)參傳遞給形參,再由形參傳遞給實(shí)參D.傳遞方式由用戶指定

58.下列不正確的表達(dá)式是()

A.a>b>cB.c--,++b,a+=1C.a=c+b>n-m=kD.p++

59.如果需要打開一個已經(jīng)存在的非空文件"Demo"進(jìn)行修改,下面選項(xiàng)中正確的是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

60.若有以下類型說明語句:charw;intx;floaty,z;則表達(dá)式w*x+z-y的結(jié)果為______類型。

A.floatB.charC.intD.double

四、選擇題(20題)61.

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

A.a=4,b=4

B.a=4,b=5

C.a=5,b=4

D.a=5,b=5

63.

64.

65.

66.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結(jié)果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.

67.以下能正確定義二維數(shù)組的是()。

A.inta[][3];

B.inta[][3]={2*3);

C.inta[][3]={};

D.inta[2][3]一{{1),{2},{3,4}};

68.

69.

70.

71.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

72.

73.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{charstr[][20][{"One*World","One*Dream!"},*p=str[1];

prinft("%d,",strlen(p));printf("%s\n",p);

}

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

A.9,0ne*World

B.9,0ne*Dream!

C.10,One*Dream!

D.10,Ome*World

74.在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個階段相同

75.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

76.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

77.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

78.

79.下面結(jié)構(gòu)體的定義語句中,錯誤的是()。

A.structord{intx;intY;intZ;};struetorda;

B.structord{intx;inty;intZ;}structorda;

C.structord{intX;intY;intZ;}a;

D.struct{intX;inty;intZ;}a;

80.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項(xiàng)中所用變量都已經(jīng)正確定義并賦值,錯誤的函數(shù)調(diào)用是()。A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。

例如,當(dāng)n為100時,函數(shù)的值應(yīng)為1.566893。

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

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

試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中除了下標(biāo)為奇數(shù)、同時ASCⅡ值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為edB2A4Dsdg,其中字符A的ASCⅡ碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符B的ASCⅡ碼值為偶數(shù),但在數(shù)組中的下標(biāo)為偶數(shù),因此也應(yīng)當(dāng)刪除;而字符2的ASCⅡ碼值為偶數(shù),所在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是d24。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.Dif語句的條件是當(dāng)i既是3的倍數(shù)又是2的倍數(shù)時成立,所以此程序?qū)崿F(xiàn)的功能是將10以內(nèi)既是3的倍數(shù)又是2的倍數(shù)的數(shù)相加。

3.A一家供應(yīng)商可提供多種零件,一種零件也可被多家供應(yīng)商提供。所以實(shí)體供應(yīng)商和實(shí)體零件之間的聯(lián)系是多對多。本題答案為A選項(xiàng)。

4.C解析:帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。

5.B

6.C解析:本題中第一行代碼對指針P進(jìn)行了初始化,其指向數(shù)組a的第6個元素,在其后的操作中p的值也沒有改變過,所以最后輸出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代碼中對q指向的值進(jìn)行賦值,等價于*q=a[10]=11,所以輸出結(jié)果*q為11。

7.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

8.C本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語句,此時--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達(dá)式為-2,而!(--x)為0,退出循環(huán)。

9.D

10.A解析:按位異或“^”運(yùn)算,是當(dāng)對應(yīng)位上的二進(jìn)制數(shù)值相同時結(jié)果為0,否則為1。因?yàn)閏1,c2的值相同,所以異或的結(jié)果為0,選項(xiàng)A)正確。按位與“&”運(yùn)算符只有當(dāng)所有對應(yīng)位上的數(shù)都不相同時結(jié)果才為0,所以c1&c2的值不可能為0,選項(xiàng)B)錯誤。“~”是按位取反,由于十進(jìn)制數(shù)92轉(zhuǎn)化成二進(jìn)制數(shù)并不是全為1,所以即使取反也不能得到全為。的答案,所以錯誤?!皘”是按位或運(yùn)算,由于十進(jìn)制數(shù)92轉(zhuǎn)化為二進(jìn)制數(shù)也不是全為0,所以按位或運(yùn)算后也不會全為0。

11.B

12.A

13.A指針變量必須區(qū)分基類型,可以向指針?biāo)竷?nèi)存單元寫入與基類型相同的數(shù)據(jù),而不能寫入任意數(shù)據(jù),選項(xiàng)A錯誤,選項(xiàng)B正確;指針可以指向與其基類型相同的普通變量,選項(xiàng)C正確;指針是一個內(nèi)存地址,它是一個整數(shù),可以通過加法運(yùn)算,使指針指向下一個內(nèi)存單元,選項(xiàng)D正確。故本題答案為A選項(xiàng)。

14.C選項(xiàng)A、B的空間不夠;選項(xiàng)D中字符串存儲要有結(jié)束符ˊ\0ˊ,且要占用一個空間,printf用來輸出字符,不能輸入字符串。

15.C整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達(dá)式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號表達(dá)式中的第二個表達(dá)式的值,為1。因此本題的答案為選項(xiàng)C。

16.A考查簡單的C程序。由題可知,程序中輸入name的值為Lili,所以輸出的必定是Lili,答案選擇A。

17.C解析:在C語言中,實(shí)數(shù)有兩種表示形式:十進(jìn)制數(shù)形式與指數(shù)形式。

1)一般形式的實(shí)數(shù):小數(shù)形式的實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成(必須要有小數(shù)點(diǎn))。

2)指數(shù)形式的小數(shù):指數(shù)形式的實(shí)數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項(xiàng)A中,5E2.0中E后面的2.0不是整數(shù);選項(xiàng)B中,E前面沒有數(shù)字;選項(xiàng)D中,E后面沒有數(shù)字。

18.B解析:C語言一種高級語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個后綴為。OBJ的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此。OBJ文件與C語言提供的各種庫函數(shù)連接在一起,生成一個后綴.EXE的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項(xiàng)A錯誤;根據(jù)以上定義,選項(xiàng)C和選項(xiàng)D錯誤,所以,4個選項(xiàng)中選項(xiàng)B符合題意。

19.A當(dāng)x為1時,執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒有break,接著執(zhí)行case2,此時a的值為2,b自加為1,故選擇A選項(xiàng)。

20.A

21.xx解析:本題考查的知識點(diǎn)是while循環(huán)的程序分析;主函數(shù)中首先定義了一個字符型變量C,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個字符Y并給賦給字符變量C,賦值表達(dá)式的值不為'?',執(zhí)行輸出語句,輸出字符x。接著判斷while中的循環(huán)條件,讀入一個字符'?',并賦值給c,賦值表達(dá)式的值為'?',循環(huán)條件不再滿足,退出循環(huán)。

22.

23.實(shí)體實(shí)體

24.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計算逗號表達(dá)式時,從左到右計算由逗號分隔各表達(dá)式的值,整個逗號表達(dá)式的值等于其中最后一個表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。

25.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼和測試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

26.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進(jìn)行交換,所以空白處應(yīng)該填入x[0]。

27.BB解析:因?yàn)閏是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。

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

29.1717解析:本題中首先定義了一個變量x并賦初值15,然后判斷循環(huán)條件“x>5&&x<50”,為真,執(zhí)行循環(huán)體。語句x++;執(zhí)行后,x的值變?yōu)?6,x/3的值為5為真,執(zhí)行其后的語句x++;,x的值變?yōu)?7,執(zhí)行語句break,退出循環(huán),輸出x的值為17。

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

31.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#;當(dāng)i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#;當(dāng)i=4時,內(nèi)層循環(huán)循環(huán)三次,輸出三個#;當(dāng)i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。

32.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。

33.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回,所以在空框處應(yīng)填入*s-*t,保證在s>t時,返回正值,當(dāng)s<t時,返回負(fù)值。

34.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個。

35.消息消息解析:在面向?qū)ο蠹夹g(shù)中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。

36.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內(nèi)完成,即算法必須在執(zhí)行有限個步驟之后終止。

37.&a&bmaxintxyreturn(z)

38.2525解析:#NAME?

39.a[j]<a[i]a[j]<a[i]解析:本題考查排序算法,題目中通過雙循環(huán)嵌套來實(shí)現(xiàn),外層循環(huán)跳出待排序的元素,內(nèi)層循環(huán)具體實(shí)現(xiàn)a[i]到a[k-2]之間偶數(shù)下標(biāo)元素的排序,每次將最小的放在a[i]中。所以空中填a[j]<a[i]。

40.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達(dá)式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。

41.A解析:標(biāo)識符是以字母、數(shù)字和下劃線組成的字符串,且只能是字符或下劃線開頭,且C語言的關(guān)鍵字不能用作用戶自定義的標(biāo)識符。注意:熟記C語言中常用的關(guān)鍵字。

42.D解析:賦值運(yùn)算符的結(jié)合方向是自右至左,所以表達(dá)式a+a-=a*a先運(yùn)算最右邊的a*a得9,再運(yùn)算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運(yùn)算a=a+(-6),即a-(-6)+(-6)=-12。

43.C解析:首先,getchar函數(shù)通過鍵盤讀入字符'a',即c='a',(其實(shí)c得到的是字符a的ASCII碼值),然后判斷if語句的控制條件,發(fā)現(xiàn)'a'>='a'&&'a'<='g'成立,則執(zhí)行下一步列的語句,c=c+4,c得到的是字符e的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符e。

44.D解析:本題考查指針變量的賦值。選項(xiàng)A)中,p1、p2本身都是地址變量,不能再將p1取地址賦給p2;選項(xiàng)B)中,不能將整型數(shù)據(jù)直接賦值給指針型數(shù)據(jù);選項(xiàng)C)中,*p2代表了一個整型變量,而*p2=p1這個語句試圖把一個地址值放入一個整型變量中是錯誤的;選項(xiàng)D)中指針間的賦值是正確的。

45.A解析:本題考查ifelse語句。在intf(a,B)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句:第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。

46.A解析:在C語言中所謂函數(shù)的遞歸是指在調(diào)用一個函數(shù)的過程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時,將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個長度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個選項(xiàng)中選項(xiàng)A符合題意。

47.A解析:本題考查%s控制符在scanf函數(shù)中的應(yīng)用。scanf函數(shù)中%s控制符的作用是將鍵盤輸入的字符串送到內(nèi)存,輸入的字符串從第一個非空格字符算起,遇到空格或回車就認(rèn)為是輸入結(jié)束。本題中執(zhí)行語句scanf('%s%s',p,q)時,從鍵盤輸入abcdef<回車>后,指針變量p指向字符串'abc\\0',q指向字符串'def\\0',但是由于p和q指向同一個存儲單元,所以存儲單元中存放的是'def\\0',printf函數(shù)的輸出結(jié)果為defdef。

48.C解析:數(shù)據(jù)塊讀取函數(shù)調(diào)用形式:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址?!皊ize”是要讀寫的字節(jié)數(shù):“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。

49.D解析:考查printf函數(shù)的相關(guān)知識。如果要一次進(jìn)行多個變量的定義,則在它們之間要用逗號隔開,因此選項(xiàng)A)和C)錯誤。在選項(xiàng)C)中,變量c是一個浮點(diǎn)型指針,它只能指向一個浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。所以選項(xiàng)D)為正確答案。

50.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變量x接受的是一個關(guān)系運(yùn)算的結(jié)果,因?yàn)閮蓚€地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。

51.D解析:考查的是字符指針和字符數(shù)組的區(qū)別。選項(xiàng)A)中,s為數(shù)組名,是一個常量地址,而指針p為一個字符變量,不能說兩者完全相同,所以選項(xiàng)A)錯誤。選項(xiàng)B)和C)的說法都不嚴(yán)謹(jǐn),只有選項(xiàng)D)的說法正確。

52.A解析:在解答本題時應(yīng)該考慮兩個問題:結(jié)構(gòu)體變量的長度及sizeof()求字節(jié)數(shù)的運(yùn)算符。結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,本題中,structdate中包含year,month,day三個整型變量。一個整型變量所占的字節(jié)數(shù)為2。

53.A解析:本題主要考查的知識點(diǎn)是大寫字母比它對應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進(jìn)行算術(shù)運(yùn)算等操作。

54.C本題主要考查數(shù)組的定義及初始化。在對數(shù)組進(jìn)行定義和初始化時,需要注意以下事項(xiàng)。

(1)數(shù)組的內(nèi)存空間在編譯時確定,定義數(shù)組時的n值只能使用常量,不能使用變量。

(2)定義數(shù)組時可以不標(biāo)明數(shù)組元素的個數(shù),而是通過賦初值的方式確定,編譯系統(tǒng)將自動計算花括號內(nèi)的數(shù)據(jù)數(shù)量作為數(shù)組的元素個數(shù)。

(3)數(shù)組初始化時,當(dāng)初值的個數(shù)小于整型常量n時,編譯系統(tǒng)會自動補(bǔ)0。一旦給定初值數(shù)超過n,編譯系統(tǒng)將報錯。

(4)初始化數(shù)組的元素類型,必須與定義數(shù)組時的類型一致。

(5)數(shù)組名記錄了數(shù)組在內(nèi)存中的首地址,其值不能更改。

(6)除字符數(shù)組外,不能直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出。

本題中定義了一個3行4列的數(shù)組,但沒有對其進(jìn)行賦初值操作,可能我們會想在系統(tǒng)編譯時會自動補(bǔ)0,這只是在初值個數(shù)小于數(shù)組定義大小的情況下的操作,如果沒有進(jìn)行賦初值操作,數(shù)組中的元素值是不能被確定的。因此,本題答案選C。

55.D答案D

解析:在選項(xiàng)D中,n是一個整型的變量。C語言規(guī)定,在一維數(shù)組的定義中,其下標(biāo)只能是常量表達(dá)式,不能包含變量。

56.C解析:軟件工程是解決軟件項(xiàng)目的管理、軟件開發(fā)過程中的技術(shù)、軟件產(chǎn)品的生產(chǎn)率等問題,它的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則。

57.B解析:C語言以定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實(shí)參傳紿形參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。調(diào)用結(jié)束后,實(shí)參單元仍保留并維持原值。

58.C

59.D解析:此題考查文件打開方式對文件操作的影響。由于打開文件進(jìn)行修改,可見選項(xiàng)A)是錯誤的,因?yàn)榇朔N方式打開時,只能讀,不能寫,當(dāng)然無法修改;選項(xiàng)B)是以追加方式'ab+'打開文件讀寫,以這種方式打開時,新寫入的數(shù)據(jù)只能追加在文件原有內(nèi)容之后,但可以對以前的數(shù)據(jù)讀出。換言之,'ab+'或'a+'方式打文件后,對于寫操作,文件指針只能定位在文件的原有內(nèi)容之后,但對于讀操作,文件指針可以定位在全文件范圍內(nèi),可見,按此種方式打開文件不能實(shí)現(xiàn)文件內(nèi)容的修改;選項(xiàng)C)以'w+'方式打開文件,此時,原文件中已存在的內(nèi)容都

溫馨提示

  • 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

提交評論