2021年河南省鶴壁市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021年河南省鶴壁市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021年河南省鶴壁市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021年河南省鶴壁市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021年河南省鶴壁市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年河南省鶴壁市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下面程序中算法的時間復(fù)雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)

2.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運行時輸入k并按<Enter>鍵,則輸出結(jié)果為()。

A.pmfkcB.pmfckC.kpmfcD.pmkfc

3.下列運算符中優(yōu)先級最低的算符是()。

A.||B.!=C.<;=D.十

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

A.654321

B.65432

C.65453452

D.654534521

5.

6.對稱數(shù)組A中,每個元素的長度為4個字節(jié),行下標i從1到8,列下標j從1到8。將其下三角中的元素連續(xù)存儲在從首地址SA開始的存儲器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

7.若有說明語句:charc='\72'則變量c()。

A.包含1個字符B.包含2個字符C.包含3個字符D.說明不合法,c的值不確定

8.在軟件設(shè)計中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖B.程序流程圖C.PAD圖D.數(shù)據(jù)流圖(DFD圖)

9.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯無輸出結(jié)果D.14.0

10.下列語句中,顯示沒有下畫線的超鏈接的語句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

11.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()

A.78,45,57,25,41,89

B.89,78,57,25,41,45

C.89,78,25,45,41,57

D.89,45,78,41,57,25

12.設(shè)有數(shù)組A[i][j],數(shù)組的每個元素長度為3字節(jié),i的值為8,j的值為10,數(shù)組從內(nèi)存首地址BA開始順序存放,下標從0開始,當以列為主序存放時,元素A[5][8]的存儲首地址為()。

A.BA+141B.BA+180C.BA+222D.BA+225

13.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)

14.有以下程序:

#include<stdio.h>

voidfunc(intn)

{staticintnum=1);

num=num+n;printf("%d",num);

}

main()

{funo(3);func(4);printf("n");}

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

A.48B.34C.35D.45

15.以下四個選項,不能看作一條語句的是()。

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

16.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運行后的輸出結(jié)果是()。

A.10B.13C.21D.程序進入列循環(huán)

17.

18.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

19.在目標串T[0,n-1]=”xwxxyxy”中,對模式串p[0,m-1]=”xy”進行子串定位操作的結(jié)果_______

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

20.算法的空間復(fù)雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

二、2.填空題(20題)21.常見的拓撲結(jié)構(gòu)有【】。

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

#include<stdioh>

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)primf("\n");

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

}

}

23.下面程序調(diào)用fun函數(shù)動態(tài)分配兩個整型存儲單元,并通過形參傳回這兩個整型存儲單元的地址給s1和s2,將程序補充完整。

main()

{

int*s1,*s2;

fun(【】);

}

intfun(【】);

{

*p=(int*)malloc(sizeof(int));

*q=(int*)malloc(sizeof(int));

}

24.順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置______的存儲單元中。

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

27.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

28.軟件測試分為白箱(盒)測試和黑箱(盒)測試?;韭窂綔y試方法屬于()測試。

29.下列程序的運行結(jié)果為【】。

main()

{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};

printf("maxvalueis%d\n",maxvalue(3,4,a));

}

maxvalue(m,n,array)

intm,n,array[][4];

{inti,j,max;

max=array[0][0];

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

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

if(max<array[i][j])max=array[i][j];

return(max);

}

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

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

32.自盒測試方法重視【】的度量。

33.設(shè)有以下定義:

structss

{intinfo;structss*link;}x,y,z;

且已建立如下圖所示鏈表結(jié)構(gòu),

請寫出刪除點y的賦值語句【】。

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

35.診斷和改正程序中錯誤的工作通常稱為【】。

36.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的【】。

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

pfintf("\n",);}

38.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*fl)int(*12)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

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

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

40.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。

intw[10]={23,54,10,33,47,98,72,80,61),*p=w;

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){chara[]={'a','b','c','d','e','f,'\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d",i,j);}

A.7,7B.7,6C.6,6D.6,7

42.有以下程序:#include<stdio.h>main()FILE*fp;inti,k=0,n=0;fp=fopen("d1.dat","w");for(i=l;i<4;i++)fprintf(fp,"%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,'%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);執(zhí)行后輸出結(jié)果是

A.12B.1230C.123D.00

43.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

44.下面的程序段運行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

45.計算機中,能夠用來與外存交換信息的是______。

A.鍵盤B.RAMC.顯示器D.ROM

46.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

47.屬于C語言中合法的常量是______。

A.1.52eB.±100C.'x'D.xt'y'

48.以下程序的運行結(jié)果是()#definePI3.141593#include<stdio.h>main(){printf("PI=%fn",PI);}

A.3.141593=3.141593B.PI=3.141593C.3.141593=PID.程序有誤,無結(jié)果

49.以下程序有錯,錯誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}

A.p和q的類型不一致,不能執(zhí)行*p=*q;語句

B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句

C.q沒有指向具體的存儲單元,所以*q沒有實際意義

D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結(jié)果

50.為了提高測試的效率,應(yīng)該()。

A.隨機選取測試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)

C.在完成編碼以后制定軟件的測試計劃

D.集中對付那些錯誤群集的程序

51.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結(jié)果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

52.己知一個有序線性表為(13,18,24,35,47,50,62,83,96,115,134),當用二分法查找值為90的元素時,查找成功的比較次數(shù)為()。

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

53.若已建立如下圖所示的單向鏈表結(jié)構(gòu):在該鏈表結(jié)構(gòu)中,指針p、s分別指向圖中所示結(jié)點,則不能將s所指的結(jié)點插入到鏈表末尾仍構(gòu)成單向鏈表的語句組是______。

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

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

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

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

54.下列語句中,在字符串s1和s2相等時顯示"theyareEqual"的是()。

A.if(*s1==*s2)puts("theyareEqual");

B.if(!strcmp(s1,s2))puts("theyareEqual");

C.if(s1==s2)Puts("theyareEqual");

D.if(strcmp(s1,s2))puts("theyareEqual");

55.有以下程序段

charch;intk;

ch=′a′;k=12;

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

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

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

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

C.a,97,12k=12

D.a,97,k=12

56.下列選項中不符合良好程序設(shè)計風格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計要保證高耦合、高內(nèi)聚

57.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()

A.每個元素都有一個直接前件和直接后件

B.線性表中至少要有一個元素

C.表中諸元素的排列順序必須是由小到大或由大到小

D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件

58.設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)

A.10□X□20□Y<回車>

B.10□X20□Y<回車>

C.10□X<回車>20□Y<回車>

D.10X<回車>20Y<回車>

59.若有說明:inta[][4]={0,0};則下面不正確的敘述是()。

A.數(shù)組a的每個元素都可得到初值0

B.二維數(shù)組a的第一維大小為1

C.當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大小

D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到確定的初值

60.若有下面的說明和定義:structtest{intm1;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;則sizeof(structtest)的值是()。

A.12B.16C.14D.9

四、選擇題(20題)61.

62.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

63.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

64.有以下程序:

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

A.500B.401C.503D.1404

65.有如下程序段

#include"stdio.h"

typedefstructaa

{inta;

structaa*next;

}M;

voidset(M*k,inti,int*b)

{intj,d=0;

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

{k[j-1].next=&k[j];

k[j-1].a=b[d++];

}

k[j].a=b[d];

}

main()

{Mk[5],*p;

intd[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

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

}

要輸出45,則在下畫線處應(yīng)填入的選項是

A.p->next->aB.++p->a

C.(*p).a(chǎn)++D.p++->a

66.有以下程序段:

以下敘述中正確的是()。

A.以上的說明形式非法

B.NODE是一個結(jié)構(gòu)體類型

C.OLD是一個結(jié)構(gòu)體類型

D.OLD是一個結(jié)構(gòu)體變量

67.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}

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

68.

69.以下選項中可用做c程序合法實數(shù)的是()。、、

A.3.0e0.2B..1e0C.E9D.9.12E

70.如圖所示,兩個關(guān)系R1和R2:

則由關(guān)系R1和R2得到關(guān)系R3的操作是()。

A.笛卡爾積B.連接C.交D.除

71.選出下列標識符中不是合法的標識符的是()。

A.hot_doB.cat1C._priD.2ab

72.

73.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(一1);

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

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

74.main()

{intn;(n=6*4,n+6),n*2;printf(“n=%d\n”,n);}

此程序的輸出結(jié)果是______________.

A.30B.24C.60D.48

75.

76.若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式(x—y)?(x++):(y++)中的條件表達式(x—Y)等價的是()。

A.(x—Y<01Ix—Y>O)B.(x—y<0)C.(x—Y>0)D.(x—Y==0)

77.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。

A.a==lB.++iC.a=a++=5D.a=int(i)

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

main()

{inta=4,b=5,c=0,d;

d=!a&&!b║!c;

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

}

A)1B)0

C)非0的數(shù)D)-1

79.

80.有以下程序:

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

A.*2*6B.}3*5一C.}5D.*7

五、程序改錯題(1題)81.已知一個數(shù)列,從0項開始的前3項為0、0、1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc()的功能是:計算并輸出該數(shù)列前n項的平方根之和sum。n的值通過形參傳入。例如,當n=11時,程序的輸出結(jié)果應(yīng)為32.197745。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:將s所指字符串中除了下標為奇數(shù),同時ASCH碼值也為奇數(shù)自q字符之外。其余所有字符全部刪除,串中剩余字符所形成的一個新串放在所指的數(shù)組中。例如,若s所指字符串的內(nèi)容為“ABCDEFGl2345”,其中字符A的ASCIl碼值為奇數(shù),但所在元素的下標為偶數(shù),因此需要刪除;而字符l的ASCIl碼值為奇數(shù),所在數(shù)組中的下標也為奇數(shù),因此不應(yīng)當刪除,其他依此類推。最后t所指數(shù)組中的內(nèi)容應(yīng)為“135”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C

2.Dmain函數(shù)定義一個字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結(jié)束標識‘\\0’后的一個字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標為4的元素位置,將‘f’(ASCII值為102)賦給下標為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結(jié)束,將b(字符‘k’)賦給下標為2的元素位置,此時str字符串如下。故本題答案為D選項。

3.AC語言中規(guī)定運算符的優(yōu)先順序:一元算術(shù)運算符一>二元算術(shù)運算符一>關(guān)系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關(guān)系運算符,D項為一元運算符。因此最低的是A項。

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

5.C

6.B

7.A解析:C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個“\\”開頭的字符。其中,“\\ddd”表示用ASCII碼(八進制數(shù))表示一個字符,本題中的charc='\\72'H口表示占一個字符的變量c的ASCII碼值。

8.D【答案】:D

【知識點】:軟件設(shè)計中使用的工具

【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細設(shè)計階段用到的。系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示,是在概要設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,故選D。

9.C宏定義不是C語句,末尾不需要有分號。所以語句Printf("%4.1f\\n",,S(a+b));展開后為printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序會出現(xiàn)語法錯誤。

10.A

11.B

12.A

13.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。

14.A\n第一調(diào)用func函數(shù)時輸出4,第二次調(diào)用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。

\n

15.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號將多條語句括起來。選項D)中沒有將兩條語句括起來,不能看成一條語句。

16.D解析:程序第1次執(zhí)行for循環(huán)時,i=0,兩條if語句中的表達式都不成立,執(zhí)行i++;s+=i;此時i為1,s為1第2次循環(huán),兩條if語句中的表達式也不成立,執(zhí)行i++,s+=i,此時i為2,s為3;……;當i=3時,執(zhí)行continue,結(jié)束本輪循環(huán),不執(zhí)行i++;繼續(xù)執(zhí)行下一輪循環(huán),這樣一來i值始終為3,繼續(xù)continue,無終止條件,進入死循環(huán)。

17.D

18.DD選項中將字符串常量…aa賦給字符變量a是錯誤的。

19.C

20.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。

21.星型、總線型和環(huán)型星型、總線型和環(huán)型

22.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ù)組。

23.&s1&s2

24.相鄰相鄰

25.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當n=4時,判斷條件不滿足,退出循環(huán)。

26.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。

27.str[i]或str+iistr[i]或str+i\r\ni

28.自盒自盒解析:自盒測試法即結(jié)構(gòu)測試,它與程序內(nèi)部結(jié)構(gòu)相關(guān),要利用程序結(jié)構(gòu)的實現(xiàn)細節(jié)設(shè)計測試實例。白盒測試法主要有邏輯覆蓋、基本路徑測試等。

29.maxvalueis34

30.30253025解析:本題考核的知識點是變量的存儲屬性和算術(shù)運算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運算中a+=b++相當于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。

31.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

32.測試覆蓋率測試覆蓋率解析:白盒測試又稱為結(jié)構(gòu)測試。白盒測試作為對結(jié)構(gòu)的測試,要求對被測程序的各種結(jié)構(gòu)特性進行測試,這種情況被稱為覆蓋,故白盒測試又稱為“基于覆蓋的測試”。白盒測試方法重視測試覆蓋率的度量,力求提高覆蓋率,從而找出被測程序的錯誤。

33.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要刪除結(jié)點y,只需讓結(jié)點x的指針域指向y結(jié)點的指針域所指向的后續(xù)結(jié)點就可,因此把結(jié)點z的地址賦給x的指針域就可以了,即讓結(jié)點x的指針域指向結(jié)點z。而結(jié)點z的地址保存在結(jié)點y的指針域中,因此只需把結(jié)點y的指針域賦值給結(jié)點x的指針域即可。

34.

35.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。

36.模式或邏輯模式或概念模式模式也稱邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名字、類型、取值范圍等。

37.本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

38.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參n與C分別是兩個指向函數(shù)的指針。在f中執(zhí)行nf2(x),實際上是執(zhí)行了fo(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為2^3-2^2=4。

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

40.p[5]或*(p+5)p[5]或*(p+5)解析:98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種寫法:p[5]、*(p+5)。

41.B解析:sizeof()函數(shù)的功能是返回字符串所占的字節(jié)數(shù),strlen()函數(shù)的功能是返回字符串的長度,其中'\\0'是一個轉(zhuǎn)義字符,它占存儲空間,但不計入串的長度。

42.B解析:函數(shù)fopen(coostchar*filename,constchar*mode)的功能,是以mode指定的模式打開filename指定的磁盤文件;fclose(FILE*fp)的功能是關(guān)閉文件指針印指向的文件;函數(shù)fscanf(FILE*fp,constchar*format[,address,--])的功能是根據(jù)format中的格式從fp指向的文件中讀取數(shù)據(jù),并存入到相應(yīng)的address指向的變量中。函數(shù)fprintf(FILE*fp,constchar*format[,argument,--])的功能是把argument列表中的表達式值寫到fP所指向的文件中;本題中首先定義了一個文件指針fp,然后通過函數(shù)fopen以“w”的方式打開文件“d1.dat”,直接通過一個for循環(huán),每循環(huán)一次調(diào)用函數(shù)fprintf將i的值寫進fp所指的文件中,該循環(huán)共循環(huán)3次,循環(huán)完后fp所指文件的內(nèi)容為123,然后通過fclose函數(shù)關(guān)閉fp所指文件。接著通過fscanf函數(shù)將fp所指文件的內(nèi)容讀出并賦值給變量k和變量n,由于fp所指文件中只有123沒有分隔符,故只給k賦值為123,變量n的值依然為以前的值,故最后輸出k和n的值為123,所以,4個選項中選項B符合題意。

43.A解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值。當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。

44.C解析:本題主要考查的是用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:[*]

由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

45.B解析:RAM中存儲著當前使用的程序、數(shù)據(jù)、中間結(jié)果和與外存交換的數(shù)據(jù),CPU根據(jù)需要可以直接讀/寫RAM中的內(nèi)容。

46.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會直接結(jié)束循環(huán)返回函數(shù)值。

47.C解析:實數(shù)的指數(shù)形式中,e后面必須有一個整數(shù),所以A錯;B項錯在無~13這種形式的數(shù);字符串常量是用雙引號括起來的字符序列,所以D項錯誤。

48.B

49.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時,q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。

50.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。

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

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

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

軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務(wù)需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。

51.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當于執(zhí)行c=c*(x=6.5),此時c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數(shù)點后面1位)分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。

52.B解析:根據(jù)二分法查找需要兩次:①首先將90與表中間的元素50進行比較,由于90大于50,所以性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,即90,這時兩者相等,即查找成功。

53.A解析:在答案A中:p=p->next;s->next=p;p->next=s;s的確已插到了鏈表的末尾,但它的next卻并沒有為NULL,而是指向了它的直接前趨p,這樣它就不是一個單向鏈表(單向鏈表最后一個結(jié)點的next指針一定是一個NULL)。

54.B解析:字符串比較不能用兩個等于號(==)來進行比較,應(yīng)使用函數(shù)strcmp(s1,s2)來比較。函數(shù)strcmp(s1,s2)的功能是:當字符串s1和s2相等時,返回值為0。因此,當表達式!strcmp(s1,s2)=1時,條件成立,執(zhí)行后面的語句,輸出theyareEqual。

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

56.D解析:編程風格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護性。更直接地說,風格就是意味著要按照規(guī)則進行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當?shù)臉俗R符、適當?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運行效率,但goto語句的使用會破壞程序的結(jié)構(gòu)特性。因此,除非確實需要,否則最好不使用goto語句。因此,本題的正確答案是D。

57.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。

58.D解析:本題中,scanf函數(shù)的格式控制沒有空格,所以,對于選項A)、B)、C),輸入的第一個空格會作為字符賦值給變量c1,而不會被解釋成分隔符。

59.D解析:本題考查二維數(shù)組的基本概念。對于二維數(shù)組,只可以省略第一個括號中的常量表達式,而不能省略第二個括號中的常量表達式。數(shù)組中未賦初值的元素系統(tǒng)會自動對它們賦初值0。

60.A解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員所占內(nèi)存長度之和,而共用體變量所占內(nèi)存長度等于最長成員的長度。本題中,structtest結(jié)構(gòu)體類型共有4個成員,其中int型變量占用2個字節(jié),char型變量占用1個字節(jié),float型變量占用4個字節(jié),共用體變量占用5個字節(jié),共用2+1+4+5=12個字節(jié)。

61.C

62.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標識符。本題中的類型為char*。

63.B本題考查自加(++)、自減(--)運算符的使用?!?+x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時的表達式的值參與運算;“x++,x--”,先把使用X的值參與運算,在使用X之后,再使x的值加1或者減1。對于表達式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個表達式c=y=5。故B正確。

64.C本題重點考察函數(shù)的定義和調(diào)用,第一次循環(huán),a=0,i=0,返回值a=0*0+1+0=1;第二次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第三次循環(huán),a=102,i-20,返回值a=20*20+1十102=503;第四次循環(huán),a=503,i=30;不符合i<30,跳出循環(huán),最后結(jié)果輸出a=503。

65.A在本題中,程序首先定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中有兩個成員變量,一個是整型,另一個是指向該結(jié)構(gòu)體的指針。然后程序定義了一無返回值的函數(shù)set,該函數(shù)帶有三個參數(shù),第一個是結(jié)構(gòu)體指針變量k,第二個是整型變量i,第三個是整型指針變量b。在函數(shù)體中,首先定義了兩個整

溫馨提示

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

評論

0/150

提交評論