2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁
2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁
2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁
2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁
2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年陜西省渭南市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。

A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,

2.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

3.設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

4.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

5.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

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

A.向量屬于線性結(jié)構(gòu)B.二叉鏈表是二叉樹的存儲結(jié)構(gòu)C.棧和隊列是線性表D.循環(huán)鏈表是循環(huán)隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)

7.棧和隊列的共同點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同特點

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

A.測試工作必須由程序編制者自己完成

B.測試用例和調(diào)試用例必須一致

C.一個程序經(jīng)調(diào)試改正錯誤后,一般不必再進行測試

D.上述三種說法都不對

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

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

10.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點p的直接后繼,則應(yīng)執(zhí)行下列()操作。

A.p->next=p->next->next;

B.p=p->nextp->next=p->next->next;

C.p->next=p->next;

D.p=p->next->next;

11.若長度為n的線性表采用順序存儲結(jié)構(gòu),在其第i個位置插入一個新元素的算法的時間復(fù)雜度為()。

A.O(0)B.O(1)C.O(n)D.O(n2)

12.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

13.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖

14.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運行后的輸出結(jié)果是______。A.3B.6C.8D.12

15.以下能正確定義一維數(shù)組的選項是()。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

16.高度為h的滿二叉樹的結(jié)點數(shù)是________個。

A.log2h+1B.2h+1C.2h-1D.2h-1

17.

18.程序調(diào)試的任務(wù)是()。

A.設(shè)計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

19.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計算每對頂點最短路徑的Floyd-Warshall算法

20.設(shè)某文件內(nèi)排序后得到100個初始?xì)w并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數(shù)最少為()

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

二、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.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單詞鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。[*]

#include<stdio.h>

typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立鏈表*/

{…}

voiddisp(Node*h)

{Node*

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

#include<stdio.h>

#include<string.h>

char*ss(char*s)

char*p,t;

p=s+1:t=*s:

whilet*p){*(,p-1)=*p;p++;}

*(p-1)=t;

returns:}

main()

{char*p,str[10]="abedefgh";

p=ss(str);printf("%s\n".p):}

24.下面程序是把從終端讀入的20個字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti;chars[21],*p;

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

s[i]=getchar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

25.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

26.執(zhí)行下面程序后,輸出結(jié)果是【】。

main()

{chars[12]="verygood!";

printf("%d",strlen(s));

}

27.軟件是程序、數(shù)據(jù)和【】的集合。

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

29.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。

30.下面程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中,請?zhí)羁?。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)();}}

31.棧中允許進行插入和刪除的一端叫做______。

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

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

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

k=f(a++);

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

33.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=C;c=t;

if(a<c&&b<c)t=b;b=a;a=t

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

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

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

}

36.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。

37.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

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

#include<stdio.h>

main()

{ints[]={1,2,3,4},i;

intx=0;

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

{x=sb(s,x);

printf("%d",x);}

printf("\n");}

sb(s1,y)

int*s1,y;

{staticinti1=3;

y=s1[i1];

i1--;

return(y);}

39.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

40.軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和()的集合。

三、1.選擇題(20題)41.結(jié)構(gòu)化程序設(shè)計的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

42.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是()。

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10||!(y-x)>10

D.(x-y)*(x-y)<100

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

44.若有如下程序:main(){inta,b,C,m,n,k;m=n=k=0;a=-1;b=2;C=3;if(c>0)m=a+b;if(a<=0){if(b>0)if(c<=0)n=a=b;}elseif(c>0)n=a-b;elsek/=c;printf("%d,%d,%d,",m,n,k);}則程序運行后的輸出結(jié)果是()。

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

45.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

46.#define能作簡單的替代,用宏來替代計算多項式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)

47.在下列語句中,其含義為“q為一個指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q)();C.int*q;D.int*q();

48.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}

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

49.有以下程序:main(){intn=0;do{n++;printf("%d\n",n);}while(n<=3);}程序的輸出結(jié)果是()。

A.12B.123C.1234D.1

50.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序運行后的輸出結(jié)果是

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

51.下列不屬于軟件調(diào)試技術(shù)的是______。A.強行排錯法B.集成測試法C.回溯法D.原因排除法

52.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

53.設(shè)有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(3+2));

A.出錯B.34C.46D.54

54.有以下程序:structSTU{charnum[10];floatscore[3];);main(){structstus[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum);}程序運行后的輸出結(jié)果是()。

A.260B.270C.280D.285

55.在16位C編譯系統(tǒng)中,若定義longa;則能給a賦值40000的正確語句是()。

A.a=2000p+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

56.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

57.有以下程序main(){intm=0256,n=256;printf("%o%o\n",m,n);}程序運行后的輸出結(jié)果是

A.02560400B.0256256C.256400D.400400

58.以下函數(shù)返回a所指數(shù)組中最小的值所在的下標(biāo)值

fun(int*a,intn)

{inti,j=0,p;

p=j;

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

if(a[i]<a[p]);________;

return(p);}

在橫線處應(yīng)填入的是

A.i=pB.a[p]=a[i]C.p=jD.p=i

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

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

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

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

D.不使用goto語句

60.下列判斷正確的是()。

A.chara="ABCD";等價于char*a;*a="ABCD";

B.charstr[10]=ABCD"};等價于charstr[10];str[]={"ABCD"};

C.char*s="ABCD";等價于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD";等價于charc[5]=d[5]="ABCD";

四、選擇題(20題)61.以下關(guān)于字符串的敘述中正確的是()。

62.有以下程序:

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

A.61B.70C.63D.71

63.有以下程序:

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

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

64.以下敘述中正確的是(

)。A.C語言中的全部數(shù)據(jù)類型都是基本類型B.C語言中的全部數(shù)據(jù)類型都是構(gòu)造類型C.C語言中的數(shù)據(jù)類型只有兩種,即基本類型和構(gòu)造類型D.以上都不對

65.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句

if(a<b)

if(c==d)y=0;

Elsey=1;

該語句所表示的含義是()。

A.

B.

C.

D.

66.

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

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

A.概念設(shè)計和邏輯設(shè)計

B.模式設(shè)計和內(nèi)模式設(shè)計

C.內(nèi)模式設(shè)計和物理設(shè)計

D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

69.以下與存儲類別有關(guān)的四組說明符中,全部屬于靜態(tài)類的一組是()。

A.extem和static

B.auto和static

C.register和static

D.register和ex[erll

70.有以下程序:

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

71.有以下程序:

若運行時輸入:246<;回車>;,則輸出結(jié)果為()。

A.204B.200C.240D.246

72.有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的運行結(jié)果是()。A.A.AfternoonB.fternoonC.MorningD.orning

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

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

74.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A.學(xué)生管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

75.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束

76.

77.

78.

79.設(shè)inti=2,j=1,k=3,則表達式i&&(i+j)&k|i+j的值是_______。

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

80.定義如下變量和數(shù)組:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};

則語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是()。

A.159B.147C.357D.369

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;’若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“123dabfl23dx”,t中內(nèi)容為“ab”時,輸出結(jié)果應(yīng)是“l(fā)23dx”。當(dāng)字符串中的內(nèi)容為“l(fā)23dabfl23dx”,t中內(nèi)容為“aim”時,則程序輸出未找到信息“Notfound!”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,其功能是:將str所指字符串中除下標(biāo)為偶數(shù)、同時ASCIl碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFGl2345,其中字符B的ASCIl碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCIl碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>voidproc(char*str,chart[]){}voidmain{charstr[100],t[100];system("CLS");printf("\nPleaseenterstringstr:");scanf("%S",str);proc(str,t);printf("\nTheresultiS:%s\n",t);

參考答案

1.A程序定義整型的全局變量a,初值為5,main函數(shù)定義整型局部變量a,初值為4。所以在main函數(shù)中,局部變量a屏蔽全局變量a。func函數(shù)中定義局部變量b,初值為5,定義靜態(tài)變量c,初值為5,并且在func函數(shù)中變量a引用的是全局變量a。綜上,我們使用a_a代表全局變量a,使用m_a代表main函數(shù)中局部變量a。main函數(shù)中,當(dāng)k=0時,a_a=5,m_a=4,調(diào)用函數(shù)func(4),函數(shù)func中d的值為4,b的值為5,c的值為5,執(zhí)行表達式“a_a--;b--;--c;--d;”后,a_a的值為4,b的值為4,c的值為4,d的值為3,a+b+c+d的值為15,程序輸出15。當(dāng)k=1時,a_a=4,m_a=3,調(diào)用函數(shù)func(3),函數(shù)func中d的值為3,b的值為5,c的值為4(靜態(tài)變量使用上一次調(diào)用結(jié)束時的值),執(zhí)行表達式“a_a--;b--;--c;--d;”后,a_a的值為3,b的值為4,c的值為3,d的值為2,a+b+c+d的值為12,程序輸出12。當(dāng)k=2時,a_a=3,m_a=2,調(diào)用函數(shù)func(2),函數(shù)func中cl的值為2,b的值為5,c的值為3,執(zhí)行表達式“a_a--;b--;--c;--d;”后,a_a的值為2,b的值為4,c的值為2,d的值為1,a+b+c+d的值為9,程序輸出9。本題答案為A選項。

2.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。

3.D解析:選項A:'a'&&'b'是字符a與b的相與,不為0:選項B:a<=b,由題中變量賦值可知,結(jié)果為1。選項C:a||+c&&b-c,結(jié)果為1;選項D:!((a<B)&&!c||1),運算結(jié)果為0。

4.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應(yīng)任意一棵非空樹,它具有以下幾點重要的性質(zhì)。

①有且僅有一個特定的稱為根的結(jié)點。

②當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

5.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟毩⒌膬刹?/p>

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼

續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實現(xiàn)過程及實現(xiàn)機制。

6.D循環(huán)鏈表是線性表的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)。因此D選項敘述錯誤。本題答案為D選項。

7.C解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的一端進行插入操作,而在另一端進行刪除操作。

8.D解析:測試不是為了證明程序是正確的,而是在設(shè)想程序有錯誤的前提下進行的,其目的是設(shè)法暴露程序中的錯誤和缺陷,一般應(yīng)當(dāng)避免由開發(fā)者測試自己的程序,因此,選項A錯誤;測試是為了發(fā)現(xiàn)程序錯誤,不能證明程序的正確性,調(diào)試主要是推斷錯誤的原因,從而進一步改正錯誤,調(diào)試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發(fā)現(xiàn)錯誤后,可進行調(diào)試并改正錯誤:經(jīng)過調(diào)試后的程序還需進行回歸測試,以檢查調(diào)試的效果,同時也可防止在調(diào)試過程中引進新的錯誤,選項C錯誤。

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

10.A

11.C

12.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。

【知識拓展】“隊列”和“棧”都是一種特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。

13.A【答案】:A

【知識點】:黑盒測試

【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。

14.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時8和5也不相等,所以返回值為6,因此,選項B是正確的。

15.B解析:選項A)定義的是長度為5的數(shù)組元素,但初值有6個元素,所以錯誤;選項C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項D)的類型說明符錯誤,應(yīng)改為char;選項B)中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以正確。

16.C

17.A

18.D程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。

19.D

20.A

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

22.

23.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個字符b,然后將首字符保存在字符變量t中;從字符串的第2個字符開始,通過語句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過語句*(P-1)=t;將保存在t中的字符放到移動后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。

24.\0's*p++\\0'\r\ns\r\n*p++解析:本題先通過for循環(huán)從鍵盤接收20個字符,然后在串尾賦一空值'\\0'作為串結(jié)束標(biāo)志。再使指針p指向串的首地址。最后通過while循環(huán)對字符串進行掃描并輸出。

25.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫成:

p(double*)malloc(sizeof(double));

26.1010解析:strlen(s)函數(shù)的返回值為字符串s包含的字符個數(shù)<不計最后的'\\0')。

27.文檔文檔解析:計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

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

29.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。

30.b[j][i]=a[i][j]

31.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

32.44解析:本題考查了靜態(tài)存儲類別的局部變量的特點。靜態(tài)存儲類別的局部變量在程序的整個生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當(dāng)i=0時執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因為賦值運算符的優(yōu)先級高于逗號運算符,所以a=3,c=4;當(dāng)i=1時執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因為c為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。

33.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。

34.4599

35.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

36.參照完整性參照完整性

37.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

38.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。

39.概要概要

40.相關(guān)文檔相關(guān)文檔解析:軟件指的是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔。程序足對計算機的處理對象和處理規(guī)則的描述,是軟件開發(fā)入員根據(jù)用戶需求開發(fā)的、用程序語言描述的、適合計算機執(zhí)行的指令序列。數(shù)拼是使程序能正常操作信息的數(shù)據(jù)結(jié)構(gòu)。文檔是為了便于了解程序所需的資源說明,是與程序的開發(fā)、維護和使用有關(guān)的資料。

41.A結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。

42.C解析:選項A用了一個絕對值函數(shù)abs(),故選項A正確;選項B中用了一個“&&”邏輯與,故選項B正確;選項C中,“||”左邊的式子如為真,將不再判斷其后的表達式的值,故選項C不正確;選項D為本題中數(shù)學(xué)關(guān)系式的一個等價命題,故選項D正確。所以,4個選項中選項C符合題意。

43.A

44.A解析:本題首先聲明了6個int型變量,然后分別讓m、n、k為0,a為-1,b為2,c為3。接下來因為c>O為真,故執(zhí)行子句“m=a=b;”,結(jié)果使m的值變?yōu)?;然后判斷a是否<=0,結(jié)果也為真,進入大括號里面;由于b>O為真,再判斷c<=0,為假。所以子句“n=a=b;”沒有執(zhí)行,跳出大括號。而后面的elseif語句和else語句因為大括號的原因,使其對應(yīng)第二個if語句,而第二個if語句的條件已滿足(進入大括號之前),所以這兩條else語句的子句不被執(zhí)行,故最后輸出結(jié)果為1,0,0,所以應(yīng)該選擇A。

45.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。

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

47.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式為:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。

48.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對p所指向的數(shù)據(jù)進行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應(yīng)于實參a的元素5,所以輸出結(jié)果為5。

49.C解析:本題考查do…while循環(huán)。在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值。當(dāng)執(zhí)行完第三次循環(huán)時,得到n=3,while循環(huán)表達式仍然成立,接著執(zhí)行直到n=4,表達式不成立,跳出循環(huán),結(jié)束程序。

50.A解析:程序中的第一個輸出語句輸出表達式++a的值,該++a是在使用a之前,先使a的值加1,即為a加1為字符b,此時a的值為b,所以第一個輸出語句輸出的值為b,第二個輸出語句中輸出的b的值,這時b的值為表達式a++的值,a++是在使用a之后(此時a的值為b,所以賦給b的值為B),使a的值加一因此第二個輸出的值也為b.所以,4個選項中選項A符合題意。

51.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們在進行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。

52.A解析:條件表達式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達式b的值;當(dāng)a為假時,其值等于表達式c的值。

表達式運算過程:第1個表達式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達式:w=2<y=4為真,所以返回m的值,即m=2。

53.B解析:注意C語言中宏定義是先替換再參與運算,因此:z=2*(N+(N+1)*3+2)=2*(3+(3+1)*3+2)=34。

54.B解析:程序中首先定義了一個結(jié)構(gòu)體,其成員為一字符數(shù)組和一實型數(shù)組。在main()中首先定義了一個結(jié)構(gòu)體數(shù)組并初始化。接下來在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組的第一個元素中數(shù)組成員即{'20021',90,95,85'}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為%6.2f\\n要求保留兩位小數(shù),故最后輸出為270.00。所以4個選項中B正確。

55.D解析:40000已經(jīng)超過了C語言規(guī)定的短整型的范圍。要將這樣的數(shù)賦值給一個長整型變量,需要在整型常量后面加字母L。

56.C解析:帶參數(shù)的宏定義命令行形式如下:

#define宏名(形參表)替換文本

在編譯的時候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計算,將計算的結(jié)果賦給a。注意,宏替換是在編譯時由預(yù)處理程序完成的,宏替換不占用運行的時間,而函數(shù)調(diào)用是在程序運行時進行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。

57.C解析:程序中定義了兩個整型變量,一個用八進制表示,一個用十進制表示,輸出語向中要求m,n都為八進制輸出,顯然m原樣輸出為256,n的值轉(zhuǎn)換為八進制輸出(256的八進制為400),故輸出400.所以,4個選項中選項C符合題意。

58.D解析:該程序先判斷a[i]<a[p],如果條件為真,則a[i]比當(dāng)前設(shè)定的最小值小(p保留的當(dāng)前最小元素的下標(biāo)),那么將i賦給p,即將比較過的最小元素下標(biāo)保留在p中,作為下面判斷的標(biāo)準(zhǔn)。

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

60.D解析:a='ABCD'書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。

61.A空格是一種字符,所以空串肯定比空格打頭的字符串小。

62.Bsizeof是返回字符串在內(nèi)存中所占用的

63.D本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,會生成參數(shù)C的一個副本,而不會改變c的值,所以c值維持原值,選項D正確。

64.D在C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,構(gòu)造數(shù)據(jù)類型,指針類型,空類型四大類

65.Cif-else語句時if語句的嵌套,也就是if-else語句在if語句的條件下執(zhí)行,所以兩個條件相同的地方都是a<b.

66.C

67.C本題考查do-while循環(huán),在f

溫馨提示

  • 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

提交評論