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頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年四川省瀘州市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)有6個結(jié)點的無向圖,該圖至少應(yīng)有()條邊才能確保是一個連通圖。

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

2.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。

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

3.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

4.以下選項中合法的實型常數(shù)是()。

A.5E2.0B.E-3C.2E0D.1.3E

5.

6.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()

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

7.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

8.若有定義“doublex,y,*px,*py;”,執(zhí)行了“px=&x;py=&y;”之后,正確的輸入語句是()。

A.scanf(“%lf%le”,px,py);

B.scanf(“%f%f”,&x,&y);

C.scanf(“%f%f”,x,y);

D.scanf(“%lf%lf”,x,y);

9.算法分析的兩個主要方面是()。

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

10.在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是A.O(n)

B.O(n2)

C.O(log2n)

D.O(nlog2n)

11.有以下程序:#includeintfun(intx,inty){if(x!=y)return(x+y)/2);elsereturn(x);}Main(){Inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c));}A.6B.3C.8D.12

12.下列描述中正確的是______。A.軟件工程只是解決軟件項目的管理問題

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

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

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

13.

14.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()

A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;

15.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時所要表達(dá)的是()。

A.判斷m是否能被5和7整除

B.判斷m被5和7整除是否都余1

C.判斷m被5或者7整除是否余1

D.判斷m是否能被5或者7整除

16.設(shè)有以下函數(shù):

voidfun(intn,char*$s){……}

則下面對函數(shù)指針的定義和賦值均正確的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char);nf=&fun;

17.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易懂性和文檔性

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

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

19.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

20.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。A.30B.40C.10D.20

二、2.填空題(20題)21.下列程序執(zhí)行后輸出的結(jié)果是【】。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

22.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

23.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

______(double,double);

main()

{doublex,y;

scanf("%lf%lf",&x.&y);

printf("%lf\n…,max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a=B);}

24.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達(dá)式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

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

#include<stdio.h>

main()

{inta=1,b=2,c;

c=max(a,b);

printf("maxis%d\n",c);}

max(intx,inty)

{intz;

z=(x>y)?x:y;

return(z);}

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

main()

{charc=′z′;

printf("%c",c-25);}

27.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

28.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),二叉樹屬于______。

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

#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

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

main()

{intarr[10],i,k=0);

fot(i=0;i<10;i++)art[i]=i;

for(i=1:i<4;i++)k+=arr[i]+i;

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

}

31.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個數(shù)。累加的和值放入x所指的存儲單元中。補(bǔ)足所缺語句。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0;k<n;k++)r=【】;

【】=r;

}

32.在Windows環(huán)境下,可以將窗口最小化為【】。

33.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

34.以下程序的功能是:從鍵盤上輸入若干個學(xué)生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學(xué)生成績,用輸入負(fù)數(shù)結(jié)束輸入。

main()

{floatx[1000],sum=0,ave,a;

intn=0,i;

printf("Entermark:\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:\n");

printf('ave=%f\n",ave);

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

if(【】)printf("%t\n",x[i]);

}

35.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖中,使()解釋其中的圖形元素。

36.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

37.在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是【】。

38.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運(yùn)行和維護(hù)階段。

39.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。#includemain(){charb[30],*chp;strcpy(&b[0],"CH");strcpy(6b[1],"DEF");strcpy(6b[2],"ABC");printf("%s\n",b);}

A.CHDEFB.DEFABCC.CDABCD.CHABC

42.有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x>10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

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

A.0.000000B.0.250000C.0.500000D.1.000000

43.下面關(guān)于完全二叉樹的敘述中,錯誤的是______。A.A.除了最后一層外,每一層上的結(jié)點數(shù)均達(dá)到最大值

B.可能缺少若干個左右葉子結(jié)點

C.完全二叉樹一般不是滿二叉樹

D.具有結(jié)點的完全二叉樹的深度為[log2n]+1

44.下面程序段的運(yùn)行結(jié)果是()。chara[]="abcdefgh";char*p=a;p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

45.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));

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

46.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

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

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

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

47.在C語言中,形參的缺省存儲類是

A.autoB.registerC.staticD.extern

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

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

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

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

D.線性表可以是空表

49.下面程序段的輸出結(jié)果是()。#include<stdio.h>main(){floatx=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}

A.1.237000B.輸出格式說明與輸出項不匹配,輸出無定值C.1.236000D.1.24

50.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是

A.data的每個成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實參

51.有以下程序floatfl(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,Y2;p1=f1;p2=f2;y1=p2(p1(2.O));t=p1;p1=p2;p2=t;y2=p2(pl(2.0));printf("%3.0f,%3,Of\n",y1,y2);}程序運(yùn)行后的輸出結(jié)果是

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

52.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

53.對以下程序段的描述,正確的是()。x=-1;do{x=x*x;}while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行兩次C.循環(huán)執(zhí)行一次D.有語法錯誤

54.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

55.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]=(1,2,3,4,5,6,7,8,9,10),i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是______。

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

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

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

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

56.運(yùn)行下列程序時,若輸入的數(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;}if(b<c){t=b;b=c;c=t;)printf("%f\n%f\n%f\n",a,b,c);}

A.1

B.1.002.003.003.002.00

C.1

D.3.00000032.00000021.000000

57.下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是()。

A.使用順序、選擇和重復(fù)(循環(huán))3種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.模塊只有一個入口,可以有多個出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

58.有下列程序: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>O&&n<5);}程序運(yùn)行后的輸出結(jié)果是()。

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

59.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運(yùn)行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

60.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

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

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

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

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

四、選擇題(20題)61.

有以下程序:

viodfun(inta,intb,intc)

{a=456:b=567;c=678;}

main

{intx=10,y=20,z=30;

fun(x,y,z):

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

}

輸出的結(jié)果是()。

A.30,20,10B.10,20,30C.456,567,678D.678,567,456

62.有以下程序:

#include<stdio.h>

#defineN3

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

{inti,j;

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

{b[i]=a[i][0];

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

if(b[i]<a[i][j])b[i]=a[i][j];

}

}

main()

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

fun(x,y);

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

printf("\n");

}

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

A.2,4,8,

B.3,6,9,

C.3,5,7,

D.1,3,5,

63.下列關(guān)于線性鏈表的敘述中,正確的是()。

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

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

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

D.以上說法均不正確

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

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

65.

66.

67.

68.(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()

A.可行性分析

B.需求分析

C.詳細(xì)設(shè)計

D.程序編碼

69.有以下定義:

70.

71.

72.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是()。

A.可封裝B.自頂向下C.模塊化D.逐步求精

73.有以下程序程序的運(yùn)行結(jié)果是()。

74.表示關(guān)系M<=N<=P的C語言表達(dá)式為()。

A.(M<=N.AND(N<=P.

B.(M<=N.&&(N<=P.

C.(M<=N<=P.

D.(M<=N.&(N<=P.

75.設(shè)有定義:

則a和b的值分別是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

76.

77.

有以下程序:

intfun(intn)

{if(n==l)returnl;

elsereturn(n+fun(n一1)):

}

main

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",

x):

}

執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。

A.55B.54C.65D.45

78.若有定義:intX=0,*P=&x;,則語句printf(”%d\n”,*P.的輸出結(jié)果是()。

A.隨機(jī)值B.0C.X的地址D.P的地址

79.有以下程序:

#include<stdio.h>

main()

{FILE*fp;charstr[10];

fp=fopen("myfile,dat","");

{puts("abe",ip);fclose(fp);

fp=fopen("myfile.dat","a*");

fprintf(fp,"%d",28);

rewind(fp);

fscanf(fp,"%S",str);puts(str);

fclose(fp);

}

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

A.abcB.28cC.abc28D.內(nèi)類型不一致而出錯

80.下列關(guān)于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。

注意:部分源程序在文件PROCl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。

參考答案

1.A:在一個無向圖G中,若從頂點Vi到頂點Vj有路徑相連,則稱Vi和Vj是連通的。連通圖是指任意兩個結(jié)點之間都有一個路徑相連。6個節(jié)點的無向圖,至少要5個邊才能確保是任意兩個節(jié)點之間都有路徑相連。下圖是一種可能的連接方式:故本題選A。

2.A“--k”是先自減再使用,所以第1次判斷條件即while(4),條件為真輸出k的值,k=4-3,結(jié)果為1;第2次判斷條件即while(0),條件為假,結(jié)束循環(huán),輸出回車換行符。故本題答案為A選項。

3.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。

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

一般形式的實數(shù):小數(shù)形式的實數(shù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成(必須要有小數(shù)點),

指數(shù)形式的小數(shù);指數(shù)形式的實數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。

選項A中,5E2.0中E后面的2.0不是整數(shù);選項B中,E前面沒有數(shù)字:選項D中,E后面沒有數(shù)字。最終可以判斷選項C正確。

5.B

6.A

7.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向為由右向左,即將:右側(cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運(yùn)算符%的運(yùn)算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

8.A因為x和y都是double型數(shù)據(jù),輸入時的格式字符應(yīng)為%lf,B、C選項錯誤。D選項中的“scanf(“%lf%lf”,x,y);”應(yīng)為“scanf(“%lf%lf”,&x,&y);”。故本題答案為A選項。

9.A

10.C解析:二分查找法也稱為折半查找法。它的基本思想是:將n個元素分成個數(shù)大致相同的兩半,取a[n/2]與欲查找的x作比較,如果x=a[n/2],則找到x,算法終止;如果x<a[n/2],則只要在數(shù)組a的左半部繼續(xù)搜索x(這里假設(shè)數(shù)組元素呈升序排列);如果x>a[n/2],則只要在數(shù)組a的右半部繼續(xù)搜索x。每次余下n/(2i)個元素待比較,當(dāng)最后剩下一個時,即n/(2i)=1。故n=2i;所以i=log2n。

11.A本題中第一次調(diào)用為fun(8,fun(5,6)),因為fun(5,6)返回值為5,所以第二次調(diào)用為fun(8,5)=6。所以選擇A)。

12.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。

13.C

14.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應(yīng)該是:p=&data.a。選項A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個成員,而不是一單獨的變量,故選項A不正確;選項B在p=data.a表達(dá)式中右邊為一個結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項B不正確;選項D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項D不正確:4個選項中只有C正確。

15.B邏輯與運(yùn)算兩邊運(yùn)算對象的值都為真時,結(jié)果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項。

16.A解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標(biāo)識符(*指針變量名)()。void(*pf)()定義了一個沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時,只把函數(shù)名fun賦給pf即可。所以正確答案為選項A)。

17.C

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

19.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因為是進(jìn)行邏輯或運(yùn)算,在已知其中一個運(yùn)算對象為真的情況下,不必判斷另外一個運(yùn)算符的真假,即不進(jìn)行++b操作,就可以直接得出整個表達(dá)式的值為邏輯1,執(zhí)行下列的++c。

20.AFor循環(huán)結(jié)束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。

21.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

22.空間復(fù)雜度和時間復(fù)雜度算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。

23.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達(dá)式進(jìn)行檢測,以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞.函數(shù)聲明的一般格式為:類型標(biāo)識符函數(shù)名(類型標(biāo)識符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

24.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。

25.maxis2maxis2解析:函數(shù)通過參數(shù)來傳遞數(shù)據(jù)是單向的,只能由實參傳給形參而不能由形參傳給實參,但是可以通過函數(shù)的返回值將函數(shù)中的數(shù)據(jù)帶回。注意:函數(shù)的兩種調(diào)用方式及函數(shù)調(diào)用的語法要求。

26.aa解析:'z'的ASCII碼值為122,經(jīng)過c-25運(yùn)算后,得97,以字符形式輸出是a。

27.

28.非線性結(jié)構(gòu)非線性結(jié)構(gòu)解析:對于一個非空的數(shù)據(jù)結(jié)構(gòu),如果同時滿足下列兩個條件,即1)有且只有一個根結(jié)點;2)每一個結(jié)點最多有一個前件,也最多有一個后件;即為線性結(jié)構(gòu),而二叉樹的結(jié)點可能存在兩個后件,所以是非線性結(jié)構(gòu)。

29.100010100010解析:對于define宏定義語句,系統(tǒng)在編譯前進(jìn)行如下替換:

i1=1000/s(N)i1=1000/s(10)i1=1000/10*10

i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)

30.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

31.r+b[k]或b[k]+r或r+*(b+k)或*(b+k)+r*xr+b[k]或b[k]+r或r+*(b+k)或*(b+k)+r\r\n*x

32.圖標(biāo)或按鈕圖標(biāo)或按鈕

33.D

34.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用來存放學(xué)生成績總和的,a是輸入的成績,ave存放平均成績,n既是循環(huán)變量,又表示學(xué)生人數(shù),x[n]保存第n個學(xué)生的成績。sum用來累加每個同學(xué)的成績,因此有sum+=a;把新輸入的學(xué)生成績保存在數(shù)組中,因此有x[n]=a;ave是所有同學(xué)的平均成績,因此有ave=sum/n;逐個把學(xué)生成績和平均成績比較,因此有if(x[i]<ave)。

35.數(shù)據(jù)字典數(shù)據(jù)字典解析:數(shù)據(jù)字典的作用是對數(shù)據(jù)流圖中出現(xiàn)的披命名的圖形元素進(jìn)行確切解釋。通常數(shù)據(jù)字典包含的信心有名稱、別名、何處使用/如何使用、內(nèi)容描述、補(bǔ)充信息等。

36.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

37.時間復(fù)雜度和空間復(fù)雜度時間復(fù)雜度和空間復(fù)雜度

38.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)

39.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

40.11解析:因為在條件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。

41.C

42.D解析:本題考查if語句中的一種表達(dá)方式,即:if卐lseif叀

該表達(dá)式的語句是:

if(表達(dá)式1)

語句1

elseif(表達(dá)式2)

語句2

elseif(表達(dá)式3)

語句3

else

語句4

本題執(zhí)行elsey=1.0,并且以'%f'輸出。

43.B解析:這里考察完全二叉樹與滿二叉樹的定義及二叉樹的性質(zhì)。滿二叉樹指除最后一層外每一層上所有結(jié)點都有兩個子結(jié)點的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二叉樹,而完全二叉樹一般不是滿二叉樹,因此選項C是正確的敘述。選項D即二叉樹性質(zhì)(5),也是正確的。

44.C解析:p被定義為指針型變量,指向字符數(shù)組a的首地址。執(zhí)行p+=3;指針后移3位,指向d。strcpy(p,'ABCD')將字符串'ABCD'(連同\'\\0\')復(fù)制到p所指向的地址單元中,strlen()函數(shù)計算p所指向的字符串的長度,返回字符串中字符的個數(shù)(不計\'\\0\'),返回值為字符串'ABCD'中字符的個數(shù)4。

45.B解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調(diào)用形式為:函數(shù)名(),當(dāng)所調(diào)用的函數(shù)用于求出某個值時,函數(shù)的調(diào)用可作為表達(dá)式出現(xiàn)在允許表達(dá)式出現(xiàn)的任何地方,本題中調(diào)用語句的參數(shù)個數(shù)為2個。

46.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。

47.A解析:本題考核的知識點是定義函數(shù)時形參的缺省存儲類。在C語言中,形參的缺省存儲類為auto。

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

49.A

50.D解析:選項A),共用體的每個成員的起始地址都相同;選項B),共用體變量所占的內(nèi)存長度等于最長的成員的長度;選項C)因為每個成員的起始地址相同,所以整型數(shù)5以浮點型輸出時為5.000000;選項D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。

51.A解析:題目一開始定義了兩個函數(shù),f1()實現(xiàn)的是返回參數(shù)的平方;f2()實現(xiàn)的是返回參數(shù)的2倍。接下來在主函數(shù)中定義了三個函數(shù)指針p1,p2,t。語句p1=f1;p2=f2;讓指針p1指向函數(shù)n(),指針p2指向函數(shù)9()。然后調(diào)用p2(p1(2.0)),即讓2先平方再乘以2,結(jié)果為8并賦給y1。然后語句序列t=p1;p1=p2;p2=t;交換了p1和p2的值,即p1指向f2(),p2指向f1()。再調(diào)用p2(p1(2.0)),讓2先乘以2再平方,結(jié)果為16賦給y2.最后輸出y1,y2的值為8和16,應(yīng)該選擇A。

52.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計的常用工具,不是需求分析的工具。

53.C解析:do-while語句的執(zhí)行過程是:首先執(zhí)行循環(huán)體語句,再判斷表達(dá)式值的真假。在本題中,表達(dá)式的值為假,因此循環(huán)體只執(zhí)行一次。

54.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈?zhǔn)酱鎯Α?/p>

55.C解析:函數(shù)sort的功能是將a[0]、a[2]、a[4]、a[6]和a[8]按照由大到小的次序排序,其他元素值不變。正確答案為C。

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

57.A解析:符合結(jié)構(gòu)化程序設(shè)計風(fēng)格中,應(yīng)該選擇只有一個入口和一個出口的模塊,故選項B錯誤;首先要保證程序正確,然后才要求提高效率,故選項C錯誤;嚴(yán)格控制使用goto語句,必要時可以使用,故選項D錯誤。

58.B解析:因為變量的初始值分別為k=5,n=0,所以程序第1次進(jìn)入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0,k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2,k=3,打印出2;這時n=2,k=-3,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3,k=2,打印出3;這時n=3,k=2,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5,k=1,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束。所以在屏幕上打印

59.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為

溫馨提示

  • 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

提交評論