2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計_第1頁
2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計_第2頁
2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計_第3頁
2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計_第4頁
2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護(hù)階段D.上述三個階段

2.設(shè)abcdef以所給的次序進(jìn)棧,若在進(jìn)棧操作時,允許退棧操作,則下面得不到的序列為()。

A.fedcbaB.bcafedC.dcefbaD.cabdef

3.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

4.有以下程序:#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={“Zhao”,‘m’,85.0,90.0},b={“Qian”,‘f’,95.0,92.0};b=a;printf(“%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的運(yùn)行結(jié)果是()。

A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

5.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0

6.有以下程序:

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

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

7.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

C.scanf("%3d%3d%*3d",&a,&b);

D.scanf("%3d%*2d%3d",&a,&b);

8.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試

9.將數(shù)組a[0,1,…,m-1]作為循環(huán)隊列SQ的存儲空間,f為隊頭指示,r為隊尾指示,則執(zhí)行出隊操作的語句為()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)

10.表示關(guān)系a≤b≤c的C語言表達(dá)式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

11.用樹形結(jié)構(gòu)表示實體之間聯(lián)系的模型的是

A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是

12.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.1.000000B.0.000000C.0.250000D.0.500000

13.下面程序的輸出是()。A.17B.18C.23D.24

14.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序運(yùn)行后的輸出結(jié)果是()。

A.DB.BC.CD.A

15.

16.在C語言程序中,main函數(shù)的位置()

A.必須作為第一個函數(shù)B.必須作為最后一個函數(shù)C.可以任意D.必須放在它所調(diào)用的函數(shù)之后

17.下面關(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ù)

18.已知一個無向圖(邊為正數(shù))中頂點A,B的一條最短路P,如果把各個邊的權(quán)重(即相鄰兩個頂點的距離)變?yōu)樵瓉淼?倍,那么在新圖中,P仍然是A,B之間的最短路,以上說法是()A.錯誤B.正確

19.算法的時間復(fù)雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

20.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

二、2.填空題(20題)21.設(shè)二進(jìn)制數(shù)A是00101101,若想通過異或運(yùn)算ab使A的高4位取反,低4位不變,則二進(jìn)制數(shù)B應(yīng)是【】。

22.有以下程序:

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

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

23.下列程序的運(yùn)行結(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]);

}

}

24.下列程序的運(yùn)行結(jié)果是______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]=(1,2,3,4,5),s;

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

}

26.在程序設(shè)計階段應(yīng)該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計語言寫成程序。

27.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

28.下列程序的運(yùn)行結(jié)果是______。

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

29.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運(yùn)行結(jié)果如下:

ABCDE

FGHI

JKL

MN

O

請?zhí)羁胀瓿稍摮绦颉?/p>

main()

{inti,j,n;charch='A';

scanf("%d",&n);

if(n<11)

{for(i=1;i<=n;i++)

{for(j=1;j<n-i+1;j++)

{printf("%2c",ch);

[10];

}

[11];

}

30.以下程序用以刪除字符串中所有的空格,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[100]={"OurteacherteachClanguage!"};inti,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!=''){()}

s[j]='\0';

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

}

31.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。

32.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

33.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

34.下列程序段的運(yùn)行結(jié)果是______。

charstr[]="ABCD",*p=str;

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

35.在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊列中共有【】個元素。

36.以下程序運(yùn)行后的輸出結(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);

}

37.下面程序的運(yùn)行結(jié)果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

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

#defineJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

39.排序是計算機(jī)程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

40.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。

三、1.選擇題(20題)41.有以下程序main(){intx[8]={8,7,6,5,0,0},*9;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是

A.隨機(jī)值B.0C.5D.6

42.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。

A.對文件操作必須先關(guān)閉文件

B.對文件操作必須先打開文件

C.對文件操作順序無要求

D.對文件操作前必須先測文件是否存在,然后再打開文件

43.對兩個數(shù)組a和b進(jìn)行如下初始化:chara[]="ABCDEF";charb[]={'A','B','C','D','E','F',};則以下敘述正確的是

A.數(shù)組a與數(shù)組b完全相同B.數(shù)組a與數(shù)組b長度相同C.數(shù)組a與數(shù)組b中都存放字符串D.數(shù)組a比數(shù)組b長度長

44.下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.gaC.LanSuageD.有語法錯

45.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符o的表達(dá)式是_______。

A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

46.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

47.設(shè)有如下定義:structsk{inta;floatb;}data,*p;若有p=&data;,則對data中的a域的正確引用是()

A.(*p).dataB.(*p).a(chǎn)C.p->dataD.p.data.a(chǎn)

48.

有下列程序:

fun(intX,inty){return(x+y);}

main

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

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

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

49.設(shè)有以下語句:typedefstructS{intg;charh;}T;則下面敘述中正確的是()。

A.可以用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是stnictS類型的變量

50.在C語言中,函數(shù)調(diào)用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統(tǒng)自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

51.設(shè)有如下函數(shù)定義,則輸出結(jié)果為_______。char*fun(char*str){char*p=str;while(*p){if(*p>'d')continue;p++;}returnp;}main(){printf("%s\n",fun("welcome!"));}

A.welcomeB.come!C.wD.程序進(jìn)入死循環(huán)

52.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結(jié)果是

A.5353B.5335C.3535D.3553

53.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

54.在下列敘述中,不正確的一條是______。

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

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

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

D.在C語言中,函數(shù)形參可以說明為register變量

55.樹最適合用來表示()。

A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)

56.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

57.若m,y,z均為int型變量,則執(zhí)行下面語句后m值是______。m=1;x=2;y=3;z=4;m=(m<x)?m:x;m=(n<y)?m:y;m=(m<z)?m;z;

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

58.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'_',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進(jìn)制文件而不可讀

59.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

60.在最壞情況下,下列排序方法中時間復(fù)雜度最小的是()。

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

四、選擇題(20題)61.

62.

63.

64.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是()。

A.

B.

C.

D.

65.有以下程序

#include<stdio.h>

#defineN4

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

{inti;

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

b[i]=a[i][i];

}

main()

{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

程序的運(yùn)行結(jié)果是

A.l,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,

66.有兩個關(guān)系R、S如下:

由關(guān)系R通過運(yùn)算得到關(guān)系s,則所使用的運(yùn)算為()。

A.選擇B.投影C.插入D.連接

67.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個連續(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;

68.

69.有以下程序:

voidfun2(chara,charb){printf(”%c%c”,a,b);}

chara='A',b='B';

voidfunl(){a='C';b='D';}

main()

{funl();

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

fun2('E','F');

}

程序的運(yùn)行結(jié)果是()。A.A.CDEFB.ABEFC.ABCDD.CDAB

70.

71.瀏覽器中用于負(fù)責(zé)向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

72.

73.

74.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應(yīng)用軟件的是().

A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

75.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。

A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10

76.(73)已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)采用的算法是()

A.堆排序

B.直接插入排序

C.快速排序

D.直接選擇排序

77.在結(jié)構(gòu)化分析方法中,數(shù)據(jù)字典的作用是()。

A.存放所有需要處理的原始數(shù)據(jù)

B.存放所有處理的結(jié)果

C.存放所有程序文件

D.描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的有關(guān)信息

78.有以下程序段:

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

79.有以下程序:

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

A.11,12B.12,13C.13,14D.14,11

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下析prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。例如,當(dāng)n=10,x=0.3時,函數(shù)值為1.349859。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設(shè)計、詳細(xì)設(shè)計、編寫代碼、組裝測試和確認(rèn)測試。軟件維護(hù)時期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項B正確。

2.D

3.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

4.B在main函數(shù)中將結(jié)構(gòu)體變量a賦值給變量b。輸出結(jié)構(gòu)體變量b的值為:Zhao,m,85,90。故本題答案為8選項。

5.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);\r\n調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);\r\n調(diào)用函數(shù)fun(3)時,由于x的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);\r\n調(diào)用函數(shù)fun(1)時,由于X的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。\r\n因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。答案為C。

6.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選項正確。

7.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數(shù)字,選項A正確。本題答案為A選項。

8.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

9.B

10.A解析:本題考查邏輯與運(yùn)算符&&。在C語言中使用運(yùn)算符“&&”連接兩個表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

11.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實體集(記錄型)是樹中的結(jié)點,而樹中各結(jié)點之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。

12.D程序定義double變量x、y,給x賦初值2.0。if語句判斷,當(dāng)x小于0.0時,給y賦值0.0。否則當(dāng)x小于10.0時,y的值為1.0/x;當(dāng)x大于等于10.0時,y的值為1.0。題干中x的值為2.0,所以y的值為1.0/x,即0.500000。本題答案為D選項。

13.B

14.D題干中,字符變量a、b、c、d都是大寫字母字符。C語言中,大寫字母的ASCII值是按照字母順序連續(xù)遞增的,所以a小于b,b小于c,c小于d。則表達(dá)式“x=(a<b)?a:b”等價于“x=a”;“x=(x>c)?c:x”等價于“x=(a>c)?c:a”,等價于“x=a”;“x=(d>x)?x:d”等價于“x=(d>a)?a:d”,等價于“x=a”;所以程序輸出x的值為A。故本題答案為D選項。

15.C

16.C

17.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應(yīng)保持相同的值。

\n

18.B

19.DD?!窘馕觥克惴ǖ臅r間復(fù)雜度是指算法需要消耗的時間資源。一般來說,計算機(jī)算法是問題規(guī)模。09函數(shù)fin),算法的時間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時間的增長率與f(n)的增長率正相關(guān),稱作漸進(jìn)時間復(fù)雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。

20.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內(nèi)存,而定義自動類auto與強(qiáng)制放入寄存器register類型變量時,只有當(dāng)使用時才分配內(nèi)存。

21.1111000011110000解析:按位異或運(yùn)算的一個重要應(yīng)用是讓某個整型變量的二進(jìn)制位取反,0變成1,而1變成0。這只要設(shè)計這樣一個位串信息,讓要變反的位為1,不要改變的位為0,用這個位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

22.zyzXyzzyzXyz解析:本題考查字符型指針變量的應(yīng)用。程序中字符指針變量ps指向字符串'xyz',while循環(huán)語句的作用使ps指向字符串結(jié)尾,for循環(huán)的執(zhí)行過程如下。

第一次循環(huán):ps指向字符串'z',輸出z。

第二次循環(huán):ps指向字符串'yz',輸出yz。

第三次循環(huán):ps指向字符串'xyz',輸出xyz。

23.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個的形式輸出。

24.22132,2,1,3解析:本題考查++,--運(yùn)算符和條件運(yùn)算符的使用。

“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計算表達(dá)式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

25.1515解析:s=f(aa,5)=f(aa,4)+a[4]=f(aa,3)+a[3]+a[4]=f(aa,2)+a[2]+a[3]+a[4]

=f(aa,1)+a[1]+a[2]+a[3]|a[4]=0+a[0]+a[1]+a[2]+a[3]+a[4]=15。

26.自頂向下自頂向下解析:在程序設(shè)計時,應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。

27.調(diào)試調(diào)試

28.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

29.C語言允許字符數(shù)據(jù)與整數(shù)進(jìn)行直接的算術(shù)運(yùn)算,故輸出大寫字母A開始的連續(xù)字符,可通過白加運(yùn)算ch++完成。三角形字符陣列第i行的字符個數(shù)為n-i+1,在每行結(jié)尾以回車字符‘\\n’換行。\r\n\r\n

30.s[j]=s[i];j++;s[j]=s[i];j++;解析:本題中相當(dāng)于字符串s中存儲著含有空格的字符,當(dāng)發(fā)現(xiàn)空格的時候就用這個空格字符后面的字符前移覆蓋這個空格字符,依次類推向后繼續(xù)。因此,應(yīng)填s[j]=s[i];j++;兩條語句。

31.軟件工具軟件工具

32.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

33.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結(jié)果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進(jìn)制整數(shù)輸出,“\\n”是轉(zhuǎn)義字符,用于輸出回車換行。

34.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

35.3

36.24

37.1111解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數(shù)值。

38.99解析:本題中首先將宏替換掉,則表達(dá)式為a=++k+1*k+1=4+1*4+1=9,故最后輸出a的值為9。

39.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。

40.空間空間解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

41.B解析:指向一維數(shù)組的指針變量,通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的s[2]等價于*(s+2),即x[5]值為0。

42.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時,同時會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時,文件不存在,將會自動創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。

43.D數(shù)組a中最后一個元素是字符串結(jié)束標(biāo)識'\\0',所以a數(shù)組長度為7,而b數(shù)組長度為6,所以答案為D)。注意:通過賦初值的方式給一維字符數(shù)組賦字符串。

44.A

45.A解析:ps+2就是s[2]的地址,即存放字符o的地址,所以A是錯誤的。

46.D解析:本題中首先定義一個字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。

47.B

48.C解析:函數(shù)fun(intx,inty)的功能是返回兩個整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用子函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。

49.B解析:本題使用typedef關(guān)鍵字將整個結(jié)構(gòu)體的定義部分stmctS{intg;charh;}聲明為別名T。此時T是一個結(jié)構(gòu)體類型,可以直接使用T聲明該結(jié)構(gòu)體變量,而S只是一個結(jié)構(gòu)體名,必須結(jié)合struct關(guān)鍵字才能聲明變量。故本題的正確答案為B。

50.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。

在函數(shù)調(diào)用時,實參和其所對應(yīng)的形參分別占用不同的存儲單元,彼此之間不影響。

51.D解析:continue語句的作用是用于結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。由于'w'>'d',執(zhí)行continue語句,結(jié)束本次循環(huán)(即跳過p++;語句),還是繼續(xù)比較'w'>'d',程序進(jìn)入死循環(huán)。

52.B解析:本題中函數(shù)swapl()是傳遞的地址。所以對該形參c的改變將影響實參,分析可知該函數(shù)的作用,是使數(shù)組c的第一個元素和第二個元素的值互換。主函數(shù)中調(diào)用該函數(shù)將a作為實參傳遞給形參c,故執(zhí)行該函數(shù)后a的第一個元素和第二個元素的值將交換。分別為5和3。函數(shù)swap2()是值傳遞的,所以該函數(shù)執(zhí)行后對數(shù)組b將沒有任何改變,此時該數(shù)組的第一個和第二個元素依然為3和5,因此最后的輸出為5、3、3和5,所以,4個選項中選項B符合題意。

53.D解析:本題中是一個含有兩個結(jié)點的循環(huán)鏈表。

C語言中結(jié)構(gòu)體的定義為:

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

{

成員項表;

};

54.B

55.C樹最適合用來表示元素之間具有分支層次關(guān)系的數(shù)據(jù),故本題選C。

56.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達(dá)式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當(dāng)于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

57.A

58.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自動加分隔符,選項A錯誤:浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

59.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語句的條件是判斷指針p當(dāng)前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結(jié)果為選項B。

60.D解析:在最壞情況下:冒泡排序需要的比較次數(shù)為n(n-1)/2;快速排序需要的比較次數(shù)也為n(n-1)/2;插入排序需要的比較次數(shù)也為n(n-1)/2;堆排序需要比較的次數(shù)為O(nlog2n)??芍?,在最壞情況下,堆排序的時間復(fù)雜度最小,本題的正確答案為選項D。

61.B

62.D

63.C

64.D該題考查邏輯與”&&”和邏輯或”||”以及邏輯非”!¨符號的用法。選項A)即3&&4為真;選項B)即3<=4為真;選項C)是一個邏輯或與邏輯與的混合運(yùn)算,只要執(zhí)行了邏輯或左半部分,程序?qū)⒅苯油V箞?zhí)行邏輯或右半部

分程序,因為x的值為真;此時選項c)變?yōu)閘&&一1為真。選項D)不用計算,括號內(nèi)邏輯或右邊的值為l,因而括號內(nèi)的值為1,再進(jìn)行邏輯非運(yùn)算得0。

65.B本題考查二維數(shù)組的相關(guān)操作。程序主要包括兩個部分:主函數(shù)部分和fun函數(shù)。主函數(shù)初始給出了一個4×4的二維矩陣,并對每一行賦初值,可以看出每一行都要有4個元素,而對于給出的初值個數(shù)不滿足4個的,要先從第一列開始將各個值賦給各列,不足的部分用0補(bǔ)齊。函數(shù)fun的作用是將二維矩陣a中行號與列號相同的數(shù)據(jù)賦值給一維矩陣y,y的下標(biāo)與該數(shù)據(jù)在a中的行號相同。題目所要求解的即通過printf函數(shù)將矩陣y中的元素按照順序輸出。本題中二維矩陣a初始化后為{{1,2,3,0},{4,0,0,0},{5,6,7,8},{9,10,0,0}}。將行號與列號相同的元素賦給y,則y矩陣的數(shù)據(jù)為{1,0,7,0},輸出即可得到結(jié)果。

66.B解析:專門的關(guān)系運(yùn)算包括:選擇、投影和連接。1、選擇:從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇是從行的角度進(jìn)行的運(yùn)算,即從水平方向抽取記錄。2、投影:從關(guān)系模式中指定若干個屬性組成新的關(guān)系。投影是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。3、連接:連接是關(guān)系的橫向結(jié)合。連接運(yùn)算將兩個關(guān)系模式拼接成一個更寬的關(guān)系模式,生成的新關(guān)系中包含滿足連接條件的元組。連接過程是通過連接條件來控制的,連接條件中將出現(xiàn)兩個表中的公共屬性名,或者具有相同語義、可比的屬性。選擇和投影運(yùn)算的操作對象只是一個表。相當(dāng)于對一個二維表進(jìn)行切割。連接運(yùn)算需要兩個表操作為操作對象。由圖可知關(guān)系R通過運(yùn)算得到關(guān)系S。關(guān)系S與關(guān)系R相比,記錄的條數(shù)沒有發(fā)生變化,屬性的個數(shù)發(fā)生了變化。因此所使用的運(yùn)算應(yīng)該是投影。選項C插入運(yùn)算會增加記錄的條數(shù)。所以選項B是正確的。

67.D解析:本題的考點是鏈表的指針操作。要想將q所指節(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),從圖上看,應(yīng)該將p->next=r,由于q->next、p->next->next都指向r,因此p->next=q->next、p->next=p->next->next同樣可以實現(xiàn)指定的操作。因此選項A、B、C都能完成指定操作。而選項D“p=q->next”只是將指針p指向了r,不能完成指定的操作。因此正確選項是D。

68.B

69.A在函數(shù)funl之前定義了全局字符變量a和b。這兩個變量的作用域是從其定義處開始到整個程序末結(jié)束。在函數(shù)funl之內(nèi)定義了兩個變量a和b,并且分別初始化為字符'C'和'D'。

70.Afun函數(shù)將字符串中的小寫字符轉(zhuǎn)換為大寫字母,所以答案選擇A)。

71.C

72.B

73.A

74.A軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件,因此B)、C)、D)都是系統(tǒng)軟件,只有A)是應(yīng)用軟件。

75.BA選項中不能將變量Y賦給表達(dá)式,c選項中錯誤與A選項一樣,D選項中強(qiáng)制類型轉(zhuǎn)換表達(dá)式應(yīng)寫成(doub1e)x/10。

76.B

77.D在c語言中.結(jié)構(gòu)化分析方法中的數(shù)據(jù)字典的作用是描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的有關(guān)信息。

78.B本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量J的格式控制為”%2d”,即只接收輸人數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量Y中,因為Y為浮點型數(shù)據(jù),所以輸出結(jié)果為選項B。

79.B本題中定義了一個結(jié)構(gòu)體數(shù)組dt[2],其中dt[0].x=11,dt[O].y=12,dt[1].x=13,dt[1].y=14。在main函數(shù)中指針P指向了結(jié)構(gòu)體數(shù)組的第一個元素,因此P一>x值為ll,P_>y值為l2,自加運(yùn)算的結(jié)果分別為12和13。

80.D

81.(1)錯誤:intproc(charstr[])正確:voidproc(charstr[])(2)錯誤:str[j]=str[i++];正確:str[j]=str[i];【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc沒有返回值。因此,“intproc(charstr[])”應(yīng)改為“voidproc(charstr[])”;由函數(shù)proc可知,if語句塊完成將字符串str中的第i個元素與第j個元素相交換。因此,“str[j]=str[i++];”應(yīng)改為“str[j]=str[i];”。

82.1doublefun(doublex,intn)2{3inti;4doubles=1.0,sl=1.0;5for(i=1/i<=n;i++)6{si=si*i;/*各項中的階乘*/?s=s+pow(x,i)/si;/*按公式求出*/}Returns;10}程序定義了變量Sl和s,sl表示每項的分母(即各項的階乘),S存放累加和。循環(huán)語句控制累加的次數(shù),在循環(huán)體中進(jìn)行階乘和累加操作,將累加的結(jié)果存入S中。此處使用了求乘方函數(shù)pow(X,i),其含義是求X的i次方的值。2021年江蘇省連云港市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護(hù)階段D.上述三個階段

2.設(shè)abcdef以所給的次序進(jìn)棧,若在進(jìn)棧操作時,允許退棧操作,則下面得不到的序列為()。

A.fedcbaB.bcafedC.dcefbaD.cabdef

3.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

4.有以下程序:#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={“Zhao”,‘m’,85.0,90.0},b={“Qian”,‘f’,95.0,92.0};b=a;printf(“%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的運(yùn)行結(jié)果是()。

A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

5.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0

6.有以下程序:

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

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

7.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

C.scanf("%3d%3d%*3d",&a,&b);

D.scanf("%3d%*2d%3d",&a,&b);

8.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試

9.將數(shù)組a[0,1,…,m-1]作為循環(huán)隊列SQ的存儲空間,f為隊頭指示,r為隊尾指示,則執(zhí)行出隊操作的語句為()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)

10.表示關(guān)系a≤b≤c的C語言表達(dá)式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

11.用樹形結(jié)構(gòu)表示實體之間聯(lián)系的模型的是

A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是

12.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.1.000000B.0.000000C.0.250000D.0.500000

13.下面程序的輸出是()。A.17B.18C.23D.24

14.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序運(yùn)行后的輸出結(jié)果是()。

A.DB.BC.CD.A

15.

16.在C語言程序中,main函數(shù)的位置()

A.必須作為第一個函數(shù)B.必須作為最后一個函數(shù)C.可以任意D.必須放在它所調(diào)用的函數(shù)之后

17.下面關(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ù)

18.已知一個無向圖(邊為正數(shù))中頂點A,B的一條最短路P,如果把各個邊的權(quán)重(即相鄰兩個頂點的距離)變?yōu)樵瓉淼?倍,那么在新圖中,P仍然是A,B之間的最短路,以上說法是()A.錯誤B.正確

19.算法的時間復(fù)雜度是指A.算法的執(zhí)行時間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

20.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

二、2.填空題(20題)21.設(shè)二進(jìn)制數(shù)A是00101101,若想通過異或運(yùn)算ab使A的高4位取反,低4位不變,則二進(jìn)制數(shù)B應(yīng)是【】。

22.有以下程序:

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

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

23.下列程序的運(yùn)行結(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]);

}

}

24.下列程序的運(yùn)行結(jié)果是______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]=(1,2,3,4,5),s;

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

}

26.在程序設(shè)計階段應(yīng)該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計語言寫成程序。

27.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

28.下列程序的運(yùn)行結(jié)果是______。

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

29.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運(yùn)行結(jié)果如下:

ABCDE

FGHI

JKL

MN

O

請?zhí)羁胀瓿稍摮绦颉?/p>

main()

{inti,j,n;charch='A';

scanf("%d",&n);

if(n<11)

{for(i=1;i<=n;i++)

{for(j=1;j<n-i+1;j++)

{printf("%2c",ch);

[10];

}

[11];

}

30.以下程序用以刪除字符串中所有的空格,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[100]={"OurteacherteachClanguage!"};inti,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!=''){()}

s[j]='\0';

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

}

31.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。

32.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

33.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

34.下列程序段的運(yùn)行結(jié)果是______。

charstr[]="ABCD",*p=str;

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

35.在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊列中共有【】個元素。

36.以下程序運(yùn)行后的輸出結(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);

}

37.下面程序的運(yùn)行結(jié)果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

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

#defineJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

39.排序是計算機(jī)程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

40.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。

三、1.選擇題(20題)41.有以下程序main(){intx[8]={8,7,6,5,0,0},*9;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是

A.隨機(jī)值B.0C.5D.6

42.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。

A.對文件操作必須先關(guān)閉文件

B.對文件操作必須先打開文件

C.對文件操作順序無要求

D.對文件操作前必須先測文件是否存在,然后再打開文件

43.對兩個數(shù)組a和b進(jìn)行如下初始化:chara[]="ABCDEF";charb[]={'A','B','C','D','E','F',};則以下敘述正確的是

A.數(shù)組a與數(shù)組b完全相同B.數(shù)組a與數(shù)組b長度相同C.數(shù)組a與數(shù)組b中都存放字符串D.數(shù)組a比數(shù)組b長度長

44.下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.gaC.LanSuageD.有語法錯

45.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符o的表達(dá)式是_______。

A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

46.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

47.設(shè)有如下定義:structsk{inta;floatb;}data,*p;若有p=&data;,則對data中的a域的正確引用是()

A.(*p).dataB.(*p).a(chǎn)C.p->dataD.p.data.a(chǎn)

48.

有下列程序:

fun(intX,inty){return(x+y);}

main

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

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

}

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

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

49.設(shè)有以下語句:typedefstructS{intg;charh;}T;則下面敘述中正確的是()。

A.可以用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是stnictS類型的變量

50.在C語言中,函數(shù)調(diào)用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統(tǒng)自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

51.設(shè)有如下函數(shù)定義,則輸出結(jié)果為_______。char*fun(char*str){char*p=str;while(*p){if(*p>'d')continue;p++;}returnp;}main(){printf("%s\n",fun("welcome!"));}

A.welcomeB.come!C.wD.程序進(jìn)入死循環(huán)

52.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結(jié)果是

A.5353B.5335C.3535D.3553

53.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

54.在下列敘述中,不正確的一條是______。

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

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

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

D.在C語言中,函數(shù)形參可以說明為register變量

55.樹最適合用來表示()。

A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關(guān)系的數(shù)據(jù)D.元素之間無聯(lián)系的數(shù)據(jù)

56.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

57.若m,y,z均為int型變量,則執(zhí)行下面語句后m值是______。m=1;x=2;y=3;z=4;m=(m<x)?m:x;m=(n<y)?m:y;m=(m<z)?m;z;

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

58.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'_',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進(jìn)制文件而不可讀

59.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

60.在最壞情況下,下列排序方法中時間復(fù)雜度最小的是()。

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

四、選擇題(20題)61.

62.

63.

64.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是()。

A.

B.

C.

D.

65.有以下程序

#include<stdio.h>

#defineN4

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

{inti;

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

b[i]=a[i][i];

}

main()

{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

程序的運(yùn)行結(jié)果是

A.l,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,

66.有兩個關(guān)系R、S如下:

由關(guān)系R通過運(yùn)算得到關(guān)系s,則所使用的運(yùn)算為()。

A.選擇B.投影C.插入D.連接

67.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個連續(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;

68.

69.有以下程序:

voidfun2(chara,charb){printf(”%c%c”,a,b);}

chara='A',b='B';

voidfunl(){a='C';b='D';}

main()

{funl();

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

fun2('E','F');

}

程序的運(yùn)行結(jié)果是()。A.A.CDEFB.ABEFC.ABCDD.CDAB

70.

71.瀏覽器中用于負(fù)責(zé)向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

72.

73.

74.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應(yīng)用軟件的是().

A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

75.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。

A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10

76.(73)已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)采用的算法是()

A.堆排序

B.直接插入排序

C.快速排序

D.直接選擇排序

77.在結(jié)構(gòu)化分析方法中,數(shù)據(jù)字典的作用是()。

A.存放所有需要處理的原始數(shù)據(jù)

B.存放所有處理的結(jié)果

C.存放所有程序文件

D.描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的有關(guān)信息

78.有以下程序段:

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

79.有以下程序:

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

A.11,12B.12,13C.13,14D.14,11

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****

溫馨提示

  • 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

提交評論