2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序運行后的輸出結(jié)果是()。A.b,bB.b,cC.a,bD.a,c

2.sizeof(float)是()。A.一個雙精度型表達(dá)式B.一個整型表達(dá)式C.一種函數(shù)調(diào)用D.一個不合法的表達(dá)式

3.軟件詳細(xì)設(shè)計的主要任務(wù)是確定每個模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

4.下列敘述中錯誤的是()。A.程序可以由多個程序文件組成

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

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

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

5.

6.

7.設(shè)有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

8.

9.在單鏈表中,增加頭結(jié)點的目的是______。

A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標(biāo)識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)

10.

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

A.可以給指針變量賦一個整數(shù)作為地址值

B.函數(shù)可以返回地址值

C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值

D.當(dāng)程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值

12.有以下程序

main()

{intk=5,n=0;

do

{switch(k)

{case1:case3:n+=1;k--;break;

default:n=0;k--;

case2:case4:n+=2;k--;break;

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

13.使用深度優(yōu)先算法遍歷下圖,遍歷的順序為()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG

14.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

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

16.在非線性結(jié)構(gòu)中,每個結(jié)點()。

A.無直接前趨

B.只有一個直接前趨和個數(shù)不受限制的直接后繼

C.只有一個直接前驅(qū)和后繼

D.有個數(shù)不受限制的直接前驅(qū)和后繼

17.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運行后的輸出結(jié)果是()。

A.10,One*Dream!

B.9,One*Dream!

C.9,One*World

D.10,One*World

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

A.654321

B.65432

C.65453452

D.654534521

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

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

20.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;

B.chara[]=”x+y=55.”;

C.chara[15];

D.chara[10]=’5’;

二、2.填空題(20題)21.有以下程序段,且變量已正確定義和賦值。

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k/1));

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

請?zhí)羁眨瓜旅娉绦蚨蔚墓δ芘c之完全相同。

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s-=%f\n\n",s);

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

main()

{chara[]="Language",b[]="Pragrame";

char*p1,*p2;intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))

printf("%c",*(p1+k));

}

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

24.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結(jié)果是______。

#include<stdio.h>main(){FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);}

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

27.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

28.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。

#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;【】)

if(【】)

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

puts(a);

printf("\n");

}

29.關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運算對象和運算結(jié)果均為()。

30.計算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

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

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

32.在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。

33.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

printf("%3d",b[i]);

}

}

34.下面程序把從終端讀入的10個整數(shù)以二進制的方式寫到一個名為bi.dat的新文件中。請?zhí)羁铡?/p>

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"));=NULL)exit(0);

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】);

}

fclose(fp);

}

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

36.實體之間的聯(lián)系可以歸結(jié)為一對一聯(lián)系、一對多(或多對多)的聯(lián)系與多對多聯(lián)系。如果一個學(xué)校有許多教師,而一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于______的聯(lián)系。

37.若有定義語句:inta=5;,則表達(dá)式:a++的值是【】。

38.若a的值為1,則表達(dá)式!a‖++a的值是______。

39.若有如下程序:

#include"stdio.h"

main()

{chars[30];

Strcpy(&S[0],"adc");

Strcpy(&S[1],"def");

strcpy(&S[2],"gh");;

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

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

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

#include<stdio.h>

main()

{charm;

m='B'+32;

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

}

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){eharstr[][10]={"China","Beijing"},*p=str[o];printf("%s\n",p+10);}程序運行后的輸出結(jié)果是()。

A.ChinaB.BeijingC.ngD.ing

42.下列關(guān)于軟件測試的目的和準(zhǔn)則的敘述中,正確的是()

A.軟件測試是證明軟件沒有錯誤

B.主要目的是發(fā)現(xiàn)程序中的錯誤

C.主要目的是確定程序中錯誤的位置

D.測試最好由程序員自己來檢查自己的程序

43.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

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

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不對

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

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

45.以下程序的輸出結(jié)果是______。fun(int**p,inta[2][3]){**p=a[1][2];}main(){inta[2][3]=}1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}

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

46.有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+:a++;}returnt+a++;main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);prinff("%d\n",s);}程序運行后的輸出結(jié)果是()。

A.26B.28C.29D.24

47.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是

A.c=(c-′A′)%26+′a′B.c=c+32C.c=c-′A′+′a′D.c=(′A′+c)%26-′a′

48.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運行維護

B.設(shè)計階段、編程階段、測試階段

C.總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計

49.以下對C語言中聯(lián)合類型數(shù)據(jù)的正確敘述是()。

A.定義了聯(lián)合變量后,即可引用該變量或該變量中的任意成員

B.一個聯(lián)合變量中可以同時存放其所有成員

C.聯(lián)合中的各個成員使用共同的存儲區(qū)域

D.在向聯(lián)合中的一個成員進行賦值時,聯(lián)合中其他成員的值不會改變

50.閱讀下面程序段,則執(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

51.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是

A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.c=('A'+c)%26-'a'

52.以下4個程序中,完全正確的是()。

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.#include<stdio.h>main(){/*programming*/printf("programming!\n");}

53.程序設(shè)計的任務(wù)包括()。

A.編寫程序代碼并上機調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項均正確

54.在下列選項中,沒有構(gòu)成死循環(huán)的是()。

A.inti=100;while(1){i=i%100+1;if(i>100)break;}

B.for(;;);

C.intk=10000;do{k++;}while(k>10000);

D.ints=36;while(s)--s;

55.有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i)printf("%d\n",s);}程序運行后的輸出結(jié)果是

A.26B.28C.29D.24

56.若有以下定義語句:doublea[5],*p=a;inti=0;對a數(shù)組元素錯誤的引用是()

A.a[i]B.a[5]C.p[4]D.p[i]

57.若有如下程序:main(){intx[]={14,32,65,69,78,59},*t;t=x+5;printf("%d\n",*-t);}則程序執(zhí)行后的輸出結(jié)果是()。

A.78B.65C.32D.14

58.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結(jié)果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

59.若有以下定義和語句()intu=010,v=Ox10,w=10;printf("%d,%d%d\n",u,v,w);則輸出結(jié)果是

A.8,16,10B.10,10,10C.8,8,10D.8,10,10

60.下列選項中,不屬于數(shù)據(jù)管理員(DBA.職責(zé)的是()。

A.數(shù)據(jù)庫維護B.數(shù)據(jù)庫設(shè)計C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉(zhuǎn)換

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

62.已知字母A的ASCII碼為十進制的65,下面程序的輸出為()。

voidmain()

{charch1,ch2;

ch1=’A’+’5’-’3’;

ch2=’A’+6-3;

printf("%d,%c\n",ch1,ch2);

}

A.67,DB.B,CC.C,DD.不確定的值

63.

64.有以下程序

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

A.軟件測試應(yīng)該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測試

C.軟件維護只包括對程序代碼的維護

D.以上三種說法都不對

66.

有以下程序:

main

{chara=a,b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

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

A.b,bB.b,cC.a,bD.a,c

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

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

68.有以下程序:#include<stdio.h>main(){charcl=1,c2=2;cl=getchar();c2=getchar();putchar(c1);putcha:(c2);}當(dāng)程序運行時輸入a<回車>后,下列敘述中正確的是()。A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲?個字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

69.

70.有以下程序:

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

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

71.若有定義語句:doublex,y,*px,*PY;執(zhí)行了laX=&x;lay=&y;之后,正確的輸入語句是()。A.scanf(”%If%le”,px,lay);

B.seanf(”%f%f¨&x,y);

C.seanf(”%f%f",x,y);

D.Scanf(”%If%If"·,x,y):

72.

73.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序執(zhí)行后的輸出結(jié)果是()。

A.45B.20C.25D.36

74.若有以下程序

#include<stdio.h>

voidf(intn);

main()

{voidf(intn);

f(5);

}

voidf(intn)

{printf("%d\n",n);}

則以下敘述中不正確的是

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:對f函數(shù)重復(fù)說明

D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型

75.

76.若x是int型變量,且有下面的程序片段:

上面程序片段的輸出結(jié)果是()。

A.

B.

C.

D.

77.有如下程序

voidf(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

main()

{inta[6]={1,2,4,6,8,10},i,*p,*q;

p=a;q=&a[5];

while(p<q)

{f(p,q);p++;q--;}

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

printf("%d,",a[i]);

}

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

A.1,2,4,6,8,10B.10,8,4,6,2,1

C.10,8,6,4,2,1D.10,2,4,6,8,1

78.有以下程序

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

A.15B.12C.16D.20

79.軟件生命周期中花費時間最多的階段是

A.詳細(xì)設(shè)計B.軟件維護C.軟件編碼D.軟件測試

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>voidproc(int(*s)[103,int*b,int*n,intrain.intnn){ }voidmain{intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]):printf("\n\n");}

參考答案

1.A++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。

2.B該函數(shù)用于數(shù)據(jù)類型和變量。注意:sizeof操作符不能用于函數(shù)、不完全類型或位字段。不完全類型指具有未知存儲大小的數(shù)據(jù)類型,如未知存儲大小的數(shù)組類型、void類型等。

3.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設(shè)計語言編制程序以前,需要對所采用算法的邏輯關(guān)系進行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計的任務(wù)就是要決定各個模塊的實現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項A。

4.B在一個C語言程序中可以進行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B)錯誤。

5.D

6.A

7.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。

8.C

9.A\nA。【解析】頭結(jié)點不僅標(biāo)識了表中首結(jié)點的位置,而且根據(jù)單鏈表(包含頭結(jié)點)的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便于運算的實現(xiàn)。

\n

10.A

11.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。故本題答案為A選項。

12.A解析:因為變量的初始值分別為“k=5,n=0”,所以程序第一次進入循環(huán)時,執(zhí)行default語句,這時k=4,執(zhí)行'case4:”這個分支,結(jié)果是“n=2,k=3”,打印出2;然后程序進行第二次循環(huán),這時“n=2,k=3”,執(zhí)行'case3:”這個分支,結(jié)果是“n=3,k=2”,打印出3;程序進行第三次循環(huán),這時“n=3,k=2”,執(zhí)行“case2:case4:”這兩個分支,結(jié)果是“n=5,k=1”,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結(jié)束,故輸出結(jié)果為235。

13.C

14.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

15.D解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算工具以及程序員的水平無關(guān)。

選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤。因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。

選項C錯誤,因為根據(jù)一個算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。

所以,本題的正確答案為D。

16.D

17.A函數(shù)“strlen(char*s)”;計算字符串s的長度,不包括‘\\0’在內(nèi)。p指向數(shù)組的第2個元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項。

18.C程序首先定義整型變量a和b,a的初值為123456。接著通過while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個位數(shù)字(a%10)賦給b,a自身除以10。再通過switch語句判斷b的值執(zhí)行對應(yīng)分支語句。所以對應(yīng)a的每個個位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時,執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時,執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時,執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時,執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時,執(zhí)行case2輸出2,通過break退出switch;當(dāng)b取值為1時,執(zhí)行break,此時a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項。

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

20.D

21.k<=n或n>=kk++k<=n或n>=k\r\nk++解析:while語句和for語句的作用都是循環(huán)控制語句的執(zhí)行,兩者之間是可以互相轉(zhuǎn)換的。將while(EXP)轉(zhuǎn)換為for語句可以寫成for(;EXP;);將for(EXP1;EXP2;EXP3)轉(zhuǎn)換為while語句可以寫成:EXP1;while(EXP2){...EXP3;}。故本題的兩個空分別應(yīng)填寫for語句的第2和第3個表達(dá)式。即k<=n或n>=k和k++。當(dāng)然也可寫成與之等價的其他形式。

22.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。

23.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。

24.HellHell解析:該函數(shù)有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設(shè)為n),表示從文件中讀n-1個字符并在其后加一個'\\0',第一個參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中??梢姳绢}的輸出結(jié)果為:Hell。

25.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

26.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。

27.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組,所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中。

本題中,t[10]='CDEF'.第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG”,if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

28.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]

29.關(guān)系關(guān)系

30.CIRCLE(RLSV)S=PI*R*Rr1sv

31.2002Shangxian2002Shangxian解析:本題中首先定義一個結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義了一個結(jié)構(gòu)體指針p,并讓它指向變量do將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量do比較通過函數(shù)strcmp實現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d,第二個if語句strcmp(,)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian。

32.方法方法解析:在面向?qū)ο蠓椒ㄖ校椒ㄊ侵冈试S作用于某個對象上的各種操作。

33.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

34."bi.dat"fp

35.rewind或fseekrewind或fseek

36.一對多或1:N。一對多或1:N。

37.55解析:a++的含義是在使用a值以后,使a值加1,所以a++的值為5。

38.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

39.adghadgh解析:函數(shù)strcpy是字符串復(fù)制函數(shù)。第一次將'adc'復(fù)制到以&s[0]為起始地址的存儲空間中,第二次將'def'復(fù)制到以&s[1]為起始地址的存儲空間中,“dc”將被覆蓋,變?yōu)椤癮def”,第三次將“gh”復(fù)制到以&s[2]為起始地址的存儲空間中,“ef”將被覆蓋,變?yōu)椤癮dgh”。

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

41.BC語言中二維數(shù)組是按行存放的,即在內(nèi)存中先順序存放第一行的元素,再存放第二行的元素。此題二維數(shù)組str[][10]第1行的前5個元素為'C','h','i','n','a',第6個元素為'\\0',后4個元素為空字符。緊接著內(nèi)存單元存放數(shù)組第2行的元素,即從str[1][0]到str[1][9]分別為'B','e','i','j','i','n','g',第8個元素為'\\0',后兩個元素為空字符。執(zhí)行*p=str[0]后,指針p就指向了二維數(shù)組str的首地址,p+10指向從首地址依次向后的第11個存儲單元即字符,B,的地址,所以輸出Beijing,故答案為B。

42.BB)【解析】軟件側(cè)試的目的:

\n①軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;

\n②一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤;

\n⑧一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤。

\n軟件側(cè)試的準(zhǔn)則:

\n①所有測試都應(yīng)追溯到需求;

\n②嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性;

\n③充分注意測試中的群集現(xiàn)象:

\n④程序員應(yīng)避免檢查自己的程序;

\n⑤窮舉測試不可能;

\n⑥妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。

43.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價于s=s*s。

44.B解析:本題中定義了一個結(jié)構(gòu)體數(shù)組data[2]并初始化,主函數(shù)中定義了一個結(jié)構(gòu)體類型指針變量并讓它指向data的首地址,由于p指向第一個元素的地址,所以p->x相當(dāng)于data[0].x即為10,所以++(p->x)后的值為11.所以,4個選項中選項B符合題意。

45.D解析:主函數(shù)中指針變量指向兩字節(jié)的存儲空間,這兩個字節(jié)可以存放int型數(shù)據(jù),函數(shù)fun是將實參數(shù)組a中的元素a[1][2]的值11賦給指針變量p所指的存儲空間,程序輸出該空間的值。本題函數(shù)fun中形參p是二級指針變量,它指向?qū)崊⒅羔樧兞縫。

46.C解析:在函數(shù)外面定義的變量a是全局變量,其作用范圍從定義該變量的位置開始到本文件的結(jié)束;在f函數(shù)中的if子句(復(fù)合語句)和else子句中定義的變量a是局部變量,其作用范圍只在其所在的復(fù)合語句內(nèi);在f函數(shù)中定義的第一個變量a是靜態(tài)局部變量,其作用范圍只限于函數(shù)f內(nèi)部,無論被調(diào)用多少次都只初始化一次,并且保留上次函數(shù)調(diào)用結(jié)束時的值,該變量不對復(fù)合語句產(chǎn)生作用,所以,f函數(shù)的返回值是這個a變量和t值相加的結(jié)果。

47.D解析:C語言中,字符數(shù)據(jù)參加運算時,實際上是其ASCII碼參與運算。大寫字母的ASCII碼比其對應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即可。所以選項B)、C)都符合條件,因為變量c中存儲的是大寫字母,所以'c-\'A\''的值一定小于26,故選項A)與選項C)的含義相同。

48.A解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。

49.C解析:聯(lián)合體的幾個特點:①聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間;②各個成員分量全部是從低地址方向開始使用內(nèi)存單元;③聯(lián)合體中的空間在某一時刻只能保存某一個成員的數(shù)據(jù);④聯(lián)合體和結(jié)構(gòu)體可以任意嵌套。

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

51.D解析:C語言中,字符數(shù)據(jù)參加運算時,實際上是其ASCII碼參與運算。大寫字母的ASCII碼比其對應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即可。所以選項B)、C)都符合條件,因為變量c中存儲的是大寫字母,所以“c-'A'”的值一定小于26,故選項A)與選項C)的含義相同。

52.B解析:選項A在定義main()函數(shù)時,函數(shù)頭后面多了一個分號,故選項A不正確;C語言中的注釋是不能嵌套的,故選項C不正確:選項D在使用預(yù)編譯指令#include時漏掉了#號,所以也是錯誤的。故應(yīng)該選擇B。

53.D程序設(shè)計是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計的任務(wù)包括選項A)、B)、c)等方面。

54.D解析:選項A)的循環(huán)表達(dá)式條件永久為1,由于小于100的數(shù)與100取余不超過99,所以在循環(huán)體內(nèi)表達(dá)式i%100+1的值永遠(yuǎn)不大于100,break語句永遠(yuǎn)不會被執(zhí)行,所以是死循環(huán);選項B)的括號內(nèi)沒有能使循環(huán)終止的條件,是死循環(huán);選項C)中先執(zhí)行k++,使k=10001,陷入死循環(huán);選項D)中的s從36開始,每循環(huán)一次就減小1,直到s為0,循環(huán)結(jié)束,不會構(gòu)成死循環(huán)。

55.C解析:全局變量的生存期是整個程序的運行期間,作用域是從變量定義的位置開始,到整個源文件結(jié)束止。但是,若全局變量和某一函數(shù)或語句塊中的局部變量同名,則在該函數(shù)或語句塊中,此全局變量被屏蔽,即在該函數(shù)或語句塊內(nèi),訪問的是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。靜態(tài)局部變量的生存期與全局變量相同,作用域和局部變量一樣都是整個函數(shù)成語旬塊內(nèi)有效。程序第一行定義了一個全局變量a,在f()函數(shù)開頭也定義了一個靜態(tài)局部變量a,而且在后面if語句的兩個子句中都定義了靜態(tài)局部變量a。這4個變量a雖然名字一樣,但卻是4個獨立的變量,而且在整個程序運行期都存在。在主函數(shù)中,在定義變量s時將s初始化為全局變量a的值2,然后使用一個for循環(huán)分別調(diào)用了3次f(0)、f(1)、f(2),并將得到的值累加到變量s中。第1次調(diào)用n=0為偶數(shù),執(zhí)行else子句,此時t累加的是else子句中的變量a,所以執(zhí)行后else子句中的a變?yōu)?,t變?yōu)?,然后return語句中的a是函數(shù)f()開頭定義的a,執(zhí)行后函數(shù)開頭的a變?yōu)?,所以返回值是5+3=8。第2次調(diào)用n為1是奇數(shù),執(zhí)行if子句,所以t變?yōu)?,if子句中的a變?yōu)?,然后返回時函數(shù)開頭的a變?yōu)?,返回值是4+4=8。第3次調(diào)用n為2是偶數(shù),又執(zhí)行else子句,else子句中的a現(xiàn)在還是上次執(zhí)行后的值6,所以t=6,然后返回時加上函數(shù)開頭的a的當(dāng)前值5,最后返回11。所以s最終的值是2+8+8+11=29。故應(yīng)該選擇C。

56.B

57.A解析:執(zhí)行t=x+5:使指針指向數(shù)組元素59,運算符*和--的優(yōu)先級相同,結(jié)合性為自右向左,先計算--t,對t減1,使t指向數(shù)組元素78,再計算*t,取該地址單元的值78。

58.D解析:本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:

switch語句的語法格式為:

switch(表達(dá)式)

{

case常量表達(dá)式1:語句組1;

case常量表達(dá)式2:語句組2;

case常量表達(dá)式n:語句組n;

default:語句組n+1;

}

另外,以下幾點關(guān)于switch語句的重點:

①系統(tǒng)在執(zhí)行時計算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個case標(biāo)號表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標(biāo)號,若存在default標(biāo)號,則執(zhí)行該語句標(biāo)號后面的語句表n+1;當(dāng)不存在default標(biāo)號時,不執(zhí)行switch中的任何一個語句表。

一般而言,在多分支結(jié)構(gòu)中總會出現(xiàn)'意外'的情況,這時均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。

59.A

60.DD)【解析】數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計,具體地說是進行數(shù)據(jù)模式的設(shè)計;數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進行實施與維護;改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。

61.Aseanf中name得至lJLili,Rum得到l001,所以結(jié)果選擇A)。

62.A將字符進行運算時,進行運算的是ASCII值,所以ch1=65+2=67(‘5’與’3’的ASCII值差為2),ch2=65+6-3=68.

63.D

64.Af(2)展開后為,2*5+1,值為ll,f(1+1)展開后為,l+1*5+1值為7,所以答案選擇A):

65.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯誤的過程;軟件測試是由專門的測試人員完成,是發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;軟件維護是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個階段。

66.A

\n++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。

\n

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

68.A本題考查getchar函數(shù),從終端讀入一個字符作為函數(shù)值。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入回車鍵時,讀入才開始執(zhí)行。所以當(dāng)輸入a<回車>后,變量c1被賦予字符a,而變量c2被賦予回車符。

69.B

70.Cm函數(shù)中的X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義相當(dāng)于不存在,直接使用X的值。主函數(shù)中調(diào)用兩次fun函數(shù)t第一次調(diào)用:X=1,X=x}2=2,s=2;第二次調(diào)用:(直接用上次X的值)x=X·2=4,s=4。因此C選項正確。

71.A因為X,Y都是double型數(shù)據(jù),所以輸入時的格式字符應(yīng)為%If,所以B與C錯誤。D選項中scanf

溫馨提示

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

最新文檔

評論

0/150

提交評論