2021-2022年江西省宜春市全國計算機等級考試C語言程序設計測試卷(含答案)_第1頁
2021-2022年江西省宜春市全國計算機等級考試C語言程序設計測試卷(含答案)_第2頁
2021-2022年江西省宜春市全國計算機等級考試C語言程序設計測試卷(含答案)_第3頁
2021-2022年江西省宜春市全國計算機等級考試C語言程序設計測試卷(含答案)_第4頁
2021-2022年江西省宜春市全國計算機等級考試C語言程序設計測試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江西省宜春市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.fscanf函數(shù)的正確調用形式是()

A.fscanf(fp,格式字符串,輸出表列);

B.fscanf(格式字符串,輸出表列,fp);

C.fscanf(格式字符串,文件指針,輸出表列),

D.fscanf(文件指針,格式字符串,輸入表列);

2.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

3.有以下程序: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");}其輸出結果是

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,

4.成功的測試是指A.A.運行測試實例后未發(fā)現(xiàn)錯誤

B.發(fā)現(xiàn)程序的錯誤

C.證明程序正確

D.軟件產(chǎn)生

5.變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中的數(shù)據(jù)用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運算是

A.a^bB.a|bC.a&bD.a<<4

6.

7.下列選項中,當X為大于1的奇數(shù)時,值為0的表達式是()。

A.x%2==0B.x/2C.x%2!=0D.x%2==1

8.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運行結果是()。

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

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

A.順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節(jié)省存儲空間

10.數(shù)據(jù)流圖用于抽象地描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

11.以下不合法的用尸標識符是()。A.A.804zhangB._hhC.yy614D.If

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

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

13.由3個結點可以構造出______種不同形態(tài)的二叉樹。

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

14.為了使模塊盡可能獨立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

15.若變量c為char類型,能正確判斷出c為小寫字母的表達式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

16.以下選項中能表示合法常量的是()。

A.1,200B.1.5E2.0C.‘\’D.“\007”

17.設有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結果是()。

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

18.二維數(shù)組A的每個元素是由6個字符組成的串,其行下標i=0,1,…,8,列下標j=1,2,…,10。若A按行先存儲,元素A[8][5]的起始地址與當A按列先存儲時的元素()的起始地址相同。設每個字符占一個字節(jié)。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

19.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

20.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序

二、2.填空題(20題)21.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

22.以下程序的輸出結果是【】。

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

23.以下程序的功能是將字符串s中的數(shù)字字符放人d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串a(chǎn)bc123edf456gh,執(zhí)行程序后輸出123456。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

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

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

d[j]='\0';

puts(D);

}

24.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

25.設順序輸入數(shù)列為:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每個結點的查找概率相同,若用順序存儲方式組織該數(shù)列,則查找一個數(shù)成功的平均比較次數(shù)為【】;若按二叉排序樹結構組織該數(shù)列,則查找一個數(shù)成功的平均比較次數(shù)為【】。

26.下面程序的輸出結果是()。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

27.下列程序的輸出結果是______。

#include<stdio.h>

sb(ints[].intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8);

inti,x=0;

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

{x=sb(s,x);

printf(:%d",x);

}

printf("\n");

}

28.Jackson方法是一種面向【】的結構化方法。

29.執(zhí)行以下程序后,輸出‘#’號的個數(shù)是______。

#include<stdio.h>

main()

{

inti,j;

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

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

putchar('#');

}

30.下列程序的輸出結果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

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

32.函數(shù)sstrcmp的功能是對兩個字符串進行比較。當s所指字符串和t所指字符串相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp)。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

33.若給fun函數(shù)的形參s傳送字符串“∪∪6354'abc"(其中∪表示空格字符),則函數(shù)的返回值是【】。

longfun(chars[])

{longn;intsign;

for(;isspace(*s);s++);

sign=(*s=='-')?-1:1;

if(*s=='+'||*s=='-')s++;

for(n=0;isdigit(*s);s++)

n=10*n+(*s-'0');

returnsign*n;

}

34.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

35.以下程序運行后的輸出結果是()。

#include<stdio.h>

main()

{intx=20;

printf("%d",0<x<20);

printf("%d\n",0<x&&x<20);

}

36.執(zhí)行下面程序段后,k的值是【】。

r=1;n=203;k=1

do}k*=n%10*r;n/=10;r++;}while(n);

37.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

38.以下程序運行后的輸出結果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

39.下列程序的輸出結果是______。

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

40.以下程序的輸出結果是______。

voidreverse(inta[],intn)

{inti,t;

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

{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

三、1.選擇題(20題)41.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

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

42.若變量均已正確定義并賦值,以下合法的C語言賦值語句是

A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5-4+1;

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

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.以下程序的輸出結果是()#include<string.h>main(){chars1[]="123",s2[]="abc",ss[20]="010";strcat(ss+1,strcpy(s2,s1));printf("%s\n",ss);}

A.10123B.0abcC.1123D.01abc

45.已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______.

A.cedbaB.acbedC.decabD.deabc

46.一棵二叉樹的前序遍歷結果是ABCEDF,中序遍歷結果是CBAEDF,則其后序遍歷的結果是()。A.DBACEFB.CBEFDAC.FDAEBCD.DFABEC

47.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

48.下列程序的輸出結果是______。#include<stdio.h>main(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}

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

49.下列程序段執(zhí)行后,c3中的值是______。intc1=1,c2=2,c3;c3=1.0/c2*c1;

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

50.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;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í)行后輸出結果是()。

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

51.已知inta=1,b=3則ab的值為

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

52.有如下程序

main()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

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

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

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

該程序的輸出結果是

A.69825B.63825C.6385D.693825

53.下列語句所定義字符串在內(nèi)存中占的字節(jié)數(shù)是______。char*s="\'Name\'\\\'Age\'\n";

A.定義中有語法錯誤B.20C.19D.14

54.以下程序的輸出結果是()。#include<stdio.h>intfan(int);main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d",k);}

A.54321B.012345C.12345D.543210

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

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

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

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

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

56.下面4個關于C語言的結論中錯誤的是()。

A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關鍵字“while”出現(xiàn)的位置不同

57.關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯(lián)、更新、排序D.顯示、打印、制表

58.下面是對宏定義的描述,不正確的是______。

A.宏不存在類型問題,宏名無類型,它的參數(shù)也無類型

B.宏替換不占用運行時間

C.宏替換時先求出實參表達式的值,然后代入形參運算求值

D.宏替換只不過是字符替代而已

59.閱讀下面程序段,則執(zhí)行后的結果為#inclide"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

60.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結構C.數(shù)據(jù)流D.目標

四、選擇題(20題)61.下面不屬于軟件工程三要素的是()。

A.方法B.環(huán)境C.工具D.過程

62.以下變量x、y、z均為double類型且已正確賦值,不能正確表示x/(y*z)的C語言表達式是()。

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

63.若k是int類型變量,且有以下for語句:

for(k=-1;k<O;k++)printf("****\n");

下面關于語句執(zhí)行情況的敘述中正確的是()。、

A.循環(huán)體執(zhí)行一次

B.循環(huán)體執(zhí)行兩次

C.循環(huán)體一次也不執(zhí)行

D.構成無限循環(huán)‘

64.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

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

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

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

65.

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

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

67.有以下程序

main()

{

intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

for(j=2;j>=i;j--)

if(x[j+1]>x[j])

{

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1])

{

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

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

printf("\n");

}

程序運行后的輸出結果是

A.75310246B.01234567

C.76310462D.13570246

68.

69.

70.

71.

72.

73.

74.下列程序的運行結果是()。#include<stdio.h>#defineADD(x)x+xmain{intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25

75.下列選項中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

76.以下程序運行后的輸出結果是()。

A.15,16B.16,15C.15,15D.16,16

77.以下程序運行后的輸出結果是()。

A.zB.0C.元素Ch[5]地址D.字符y的地址

78.有以下程序:

程序的運行結果是()。

A.*****a*bB.a*bC.a*b****D.ab

79.

80.

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

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將ss所指字符串中所有下標為奇數(shù)的字母轉換為大寫(若該位置上不是字母,則不轉換)。例如,若輸入“abc4EFg”,則應輸出“aBc4EFg”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}

參考答案

1.D

2.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標)4)H=352H。

3.C解析:本題考核的知識點是程序中算法的基本分析。sort()函數(shù)作用是將數(shù)組aa中的下標為偶數(shù)的元素按大到小排序.主函數(shù)中首先定義了一個長度為10的數(shù)組并賦值,然后調用sort()函數(shù),將數(shù)組aa中奇數(shù)個元素的值按大到小排序,因此執(zhí)行完該函數(shù)后,數(shù)組中奇數(shù)個元素的值為9,7、5、3和1,故主函數(shù)中最后通過一個for循環(huán)輸出數(shù)組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個選項中選項C符合題意。

4.B軟件測試的目的主要有以下幾個方面。

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

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

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

另外,即使經(jīng)過了最嚴格的測試,可能仍然還有沒被發(fā)現(xiàn)的錯誤藏在程序中,測試只是找出程序中的錯誤,不能證明程序中沒有錯誤。

5.A解析:本題考查的是位運算的知識,對于任何二進制數(shù),和1進行異或運算會讓其取反,而和0進行異或運算不會產(chǎn)生任何變化。

6.A

\r\n

7.A算術運算符的優(yōu)先級高于關系運算符的優(yōu)先級。所以當x為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。C選項的值為真,即1。0選項的值為真,即1。故本題答案為A選項。

8.Belse總是和最近的if配對。進入第1個if語句進行條件判斷時,因為是選輯與操作,需要兩邊運算對象的值均為非零值才為真,所以需要逐個執(zhí)行判斷。結果為1,進入第2個if語句進行條件判斷。因為“b!=2”條件成立,所以整個條件表達式的值為真,不再執(zhí)行邏輯或的第2個運算對象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項。

9.A解析:順序存儲結構就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈式存儲結構中各數(shù)據(jù)結點的存儲序號是不連續(xù)的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結構,所以選項B、C不正確。順序結構使用的是連續(xù)物理空間,鏈式結構可以使用零散的物理空間存儲,鏈式結構更靈活,不存在誰節(jié)約空間的說法,所以選項D不正確。

10.A解析:數(shù)據(jù)流圖包括四個方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體),不包括選項中的控制流。

11.AC語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線。

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

13.C難易程度:易

14.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關聯(lián)的。在程序結構中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

15.D

16.DA選項中整型常量應表示為1200,數(shù)字中不能包含逗號。B選項中E后面的指數(shù)必須為整數(shù)。C選項中轉義字符以“\\”開始,若要表示字符“\\”,應寫為“\\\\”。故本題答案為D選項。

17.D

18.A

19.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

20.A解析:以下幾種算法的時間復雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據(jù)而已,所以其效率是最高的。

21.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

22.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。

23.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根據(jù)題意,if語句的條件應當是判斷數(shù)組元素s[i]是否為數(shù)字,故正確答案為:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII碼值,57是字符9的ASCII碼值。

24.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調用相關知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

25.857/15

26.3232解析:while(表達式)的功能是:首先計算表達式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值.若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假,結束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結束。

27.86518651解析:主程序中,第一次循環(huán)時,i=0,調用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序實際上是將數(shù)組s逆序輸出。

28.數(shù)據(jù)結構數(shù)據(jù)結構解析:Jackson方法是—‘種面向數(shù)據(jù)結構的結構化方法。

29.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#當i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#,當i=4時,內(nèi)層循環(huán)循環(huán)三次,輸出三#。當i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。

30.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調用PRINT(2),P(2)輸出2;第3次循環(huán),i=3時,調用PRINT(3),P(3)輸出3;第4次循環(huán),i=4時,調用PRINT(4),P(4)輸出4,theend。

31.參照完整性參照完整性

32.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為\\0,此時字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為\\0,且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填*s-*t或其等價形式。

33.63546354解析:函數(shù)fun的第一個for循環(huán)跳過字符串的前導空白符,接著判斷第一個非空白符是否是負號,若是,則置變量sign為-1;否則,置變量sign為1。接著的if語句在第一個非空白字符是負號或正號時,跳過該字符。以后的for循環(huán)將后面的數(shù)字符當作十進制數(shù)的各位數(shù)字轉換為一個長整數(shù)n,當遇字符a時,結束循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調用函數(shù)時提供的實參是“∪∪6354abc”,則函數(shù)的返回值是6354。

34.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。

35.1010解析:表達式0<x<20,首先計算0<x,其值為1,再計算1<20,其值為1,輸出1;表達式0<x&&x<20,0<x為1,x<20為0,再計算1&&0,其值為0,輸出0。所以輸出結果為10。

36.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。

37.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標,需先預設1個臨時最大元素的下標,并順序逐一考查數(shù)組的元素,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標。直至考查了數(shù)組的全部元素后,這臨時最大元素下標就是數(shù)組的最大元素下標。通常預設的最大元素下標是數(shù)組的首元素下標,考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標的變量是k,變量p控制順序考查的循環(huán)控制變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k)更大時,應該用p更新k。所以在空框處應填入代碼“k=p;”。

38.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。

39.本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。\r\n\r\n

40.在main函數(shù)中,調用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結構,將b[6],b[7]…b[9]的值相加,結果為盟。\r\n\r\n

41.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。

strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。

strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。

那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。

42.A

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

44.A

45.A解析:由二叉樹后序遍歷序列和中序遍歷序列可以唯一確定一棵二叉樹。二叉樹BT的后序遍歷序列為dabec,故BT的根結點為c(后序遍歷序列的最后一個結點為樹的根結點):而BT的中序遍歷序列是debac,即遍歷序列中最后一個結點為根結點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT左子樹的后序遍歷序列和中序遍歷序列分別為dabe和deba,因此BT左子樹的根結點是e。再由中序遍歷序列可知其左子樹為d,右子樹為ba。因此BT的前序遍歷序列為cedba。

46.BB)【解析】由于該二叉樹的前序遍歷結果是

ABCEDF,顯然A結點為根結點,所以后序遍歷時A結點是最后遍歷的,其后序遍歷的結果為CBEFDA。

47.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結束.對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j等于3結束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結果。

48.A

49.A

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

51.C解析:^是按位異式運算,如果對應位不同則結果為1,相同則為0。

52.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char*p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應關系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=s*10+p[i][j]-\'0\';的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當前p[i][j]中的字符量轉換為相應的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i]\ue009[j]>\'\\0\'是指p[i][j]中的字符只要不是字符串結束標志\'\\0\'就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是\'6\'和\'3\',然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是\'8\'和\'5\',同時經(jīng)過轉換和相加運算后,結果s中的值應該是6385。

53.D解析:轉義字符在內(nèi)存中占一個字節(jié),字符串結束標志也占一個字節(jié),實際存儲空間是14個字節(jié),但若用strlen函數(shù)求長度時,值為13,結束標志不算。

54.B解析:本題考查函數(shù)的遞歸調用。fun函數(shù)共被調用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函數(shù)調用的,其余是在fun函數(shù)中調用的。

55.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。

56.D解析:本題考查幾個循環(huán)語句的關系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次,再判斷循環(huán)條件,while語句是先判斷條件再執(zhí)行。

57.B解析:此題為數(shù)據(jù)庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個元組即為二維表中的一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論