2021-2022年江蘇省無錫市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁
2021-2022年江蘇省無錫市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁
2021-2022年江蘇省無錫市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁
2021-2022年江蘇省無錫市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁
2021-2022年江蘇省無錫市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年江蘇省無錫市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若有以下說明:chars1[]={"tree"},s2[]={"flower"};,則以下對(duì)數(shù)組元素或數(shù)組的輸出語句中,正確的是()。

A.printf("%s%s",s1[5],s2[7]);

B.printf("%c%c",s1,s2);

C.puts(s1);puts(s2);

D.puts(s1,s2);

2.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是

A.12B.123C.234D.345

3.表達(dá)式“(int)((double)9/2)-9%2”的值是()。

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

4.兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為()。

A.耦合度

B.內(nèi)聚度

C.復(fù)雜度

D.數(shù)據(jù)傳輸特性

5.若要用函數(shù)fopen打開一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。

A.wbB.wb+C.rb+D.rb

6.十六進(jìn)制數(shù)BB轉(zhuǎn)換成十進(jìn)制數(shù)是()

A.192B.256C.187D.121

7.

8.x>0||y==5的相反表達(dá)式為()。

A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5

9.有以下程序:#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

10.若有以下定義和語句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);則輸出結(jié)果()

A.2,MB.3,EC.2,ED.輸出項(xiàng)與對(duì)應(yīng)的格式控制不一致,輸出結(jié)果不確定

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

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

12.同一個(gè)關(guān)系模型的任意兩個(gè)元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對(duì)

13.在C++中,一個(gè)函數(shù)帶有參數(shù)說明時(shí),則參數(shù)的默認(rèn)值應(yīng)該在()中給出。A.函數(shù)定義B.函數(shù)聲明C.函數(shù)定義或聲明D.函數(shù)調(diào)用

14.

15.數(shù)據(jù)結(jié)構(gòu)通常研究數(shù)據(jù)的()及運(yùn)算。

A.物理結(jié)構(gòu)和邏輯結(jié)構(gòu)B.存儲(chǔ)和抽象C.理想和抽象D.理想與邏輯

16.

17.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序運(yùn)行時(shí)從鍵盤輸入9<回車>,則輸出結(jié)果是()。A.10B.11C.9D.8

18.將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹從上到下,從左到右依次對(duì)結(jié)點(diǎn)進(jìn)行編號(hào),根結(jié)點(diǎn)的編號(hào)為1,則編號(hào)為49的結(jié)點(diǎn)的左孩子的編號(hào)為______。

A.98B.99C.50D.48

19.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

20.有以下程序:#include<stdio.h>main(){charch=‘1’;while(ch<‘9’){printf(“%d”,ch-‘0’);ch++;}}程序運(yùn)行后的輸出結(jié)果是()。

A.12345678B.01234567C.0D.1

二、2.填空題(20題)21.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。

22.衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn),其中()是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對(duì)指標(biāo)。

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

24.下面程序的功能是:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j;

for(i=0【】;i++)

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

25.數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

26.關(guān)系模型的數(shù)據(jù)操作即是建立在關(guān)系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。

27.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。

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

29.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對(duì)象。

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

intx=0,y=0;

while(x<15)y++,x+=++y;

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

31.若運(yùn)行輸入:3<回車>,則以下程序的輸出結(jié)果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}

32.軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于【】階段。

33.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

34.在計(jì)算機(jī)軟件系統(tǒng)的體系結(jié)構(gòu)中,數(shù)據(jù)庫管理系統(tǒng)位于用戶和【】之間。

35.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)血型數(shù)據(jù)。

36.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,否則返回s和t的第一個(gè)不同字符的ASCII碼差值,即s>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。請(qǐng)?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

37.關(guān)系數(shù)據(jù)庫的關(guān)系演算語言是以【】為基礎(chǔ)的DML語言。

38.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

39.若有如下程序:

main()

{intx=4,y=1;

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

sub(inti,intj)

{staticinta=0;

intb=2;

a+=i+b;

b+=j(luò)+a;}

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

40.程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

三、1.選擇題(20題)41.若已定義

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中則對(duì)a數(shù)組元素不正確的引用是

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

42.當(dāng)k的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量m,n的是

A.m=k=n

B.(m=k)&&(n=k)

C.(m=k)||(n=k)

D.(k=m)&&(n=k)

43.語句“printf("%d\n",12&012);”的輸出結(jié)果是______。

A.12B.8C.6D.12

44.下面程序段中c的二進(jìn)制值是______。chara=3,b=6,c;c=a^b<<1;

A.1011B.1111C.11110D.11100

45.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運(yùn)行后的輸出結(jié)果是()。

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

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

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

47.設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序段是______。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

48.若定義inta=10,則表達(dá)式a+=a-*=a的值是()。

A.0B.-180C.-100D.-90

49.以下程序段的執(zhí)行結(jié)果為#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}

A.SUM=9B.SUM=12C.SUM=18D.SUM=28

50.程序中若有如下說明和定義語句:charfun(chat*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;}以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語句是()。

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

51.設(shè)x=011050,則x=x&01252的值是()。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

52.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結(jié)果是______。

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

53.若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

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

p[i]=&a[i*4];

pp=p;

則對(duì)數(shù)組元素的錯(cuò)誤引用是

A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)

54.兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入3和2,則輸出結(jié)果是()。#include<stdio.h>main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf(“%d\n",x--);}

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

55.有以下程序;charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,B),fun(b,C)));}程序的執(zhí)行結(jié)果是

A.函數(shù)調(diào)用出錯(cuò)B.8C.9D.7

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

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

57.若有以下定義和語句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);則輸出結(jié)果()

A.2,MB.3,EC.2,ED.輸出項(xiàng)與對(duì)應(yīng)的格式控制不一致,輸出結(jié)果不確定

58.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止

D.以上三種描述都不對(duì)

59.下面程序的輸出結(jié)果是()main(){intx=10,y=3;printf("%d\n",y=x/y);}

A.0B.1C.3D.不確定的值

60.C語言提供的合法關(guān)鍵字是()

A.switchB.cherC.caseD.default

四、選擇題(20題)61.有以下程序段

#include"stdio.h"

main()

{intj,i,k=0;

for(j=50;j<=60;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))

break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

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

A.5359B.5953

C.3595D.9535

62.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下關(guān)于程序段執(zhí)行情況的敘述,正確的是

A)for循環(huán)語句固定執(zhí)行8次

B)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作

C)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作

D)當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行

63.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入PROGABCDEFGHIJKL,則輸出結(jié)果為______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

64.

65.

66.

有以下程序:

main

{inta=0,b=l0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

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

}

程序輸出()。

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯(cuò)

67.有以下程序:

#include<stdio.h>

#defineS(x)4*(x)*x+1

main()

{intk=5,j=2;

printf("%d\n",S(k+j));

}

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

A.197B.143C.33D.28

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

A.8,5,4,2,B.8,7,5,2C.9,7,6,4,D.7,4,2,

69.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。

A.(c>=2&&c<=6)&&(c%21=1)

B.(c==2)ll(e==4)II(C==6)

C.(C>=2&&c<=6)&&!(c%2)-

D.(c>=2&&c<=6)Il(c!=3)I|(C!=5)

70.

71.定義無符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。

A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}

72.

73.有以下程序

#include<stdio.h>

main

{intn,*p=NULL;

*p=&n;

printf("Inputn:");

scanf("%d",&p);

printf("outputn:");

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

}

該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是

A.intn,*p=NULL;B.*p=&n;

C.scanf("%d",&p)D.printf("%d\n",p);

74.以下程序中,函數(shù)sort的功能是對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序。

voidsort(inta[],intn)

{inti,j,t;

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

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

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[3],5);

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

printf("\n");

}

程序運(yù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.1,2,3,8,7,6,5,4,9,10

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

75.

76.已知inti=10;表達(dá)式“20-0<=i<=9”的值是()。

A.0B.1C.19D.20

77.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入abcdefgzl0,則輸出為()。

A.abcB.zl0C.abcdefgzl0abcdefgzl0D.abcdefgzl0

78.對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

79.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為()。

A.4個(gè)字節(jié)

B.5個(gè)字節(jié)

C.6個(gè)字節(jié)

D.7個(gè)字節(jié)

A.EFGHIJABCD

B.bcdefghij

C.abdefCghij

D.不確定的值

80.(70)需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法

B.軟件開發(fā)工具

C.軟件開發(fā)費(fèi)用

D.軟件系統(tǒng)功能

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個(gè)邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。

例如,輸入3個(gè)邊長為3,4,5,實(shí)際輸入時(shí),數(shù)與數(shù)之間以Enter鍵分隔而不是逗號(hào)。

請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<stdio.h>

#include<math.h>

intproc(inta,intb,intc)

{

if(a+b>c&&b-c>a&&a+c>b)

{

if(a==b&&b==c)

//****found****

return1;

elseif(a==b||b==C||a==c)

return2;

//****found****

elsereturn3;

}

elsereturn0;

}

voidmain

{

inta,b,c,shape;

printf("\nInputa,b,c:");

scanf("%d%d%d",&a,&b,&c);

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

shape=proc(a,b.c):

printf("\n\nTheshape:%d\n",shape);

}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}

參考答案

1.C

2.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來看不是線性的,但是在C語言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個(gè)元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個(gè)指針p指向數(shù)組a的第1個(gè)元素a[0][0]。在第一個(gè)for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序?yàn)槠湓刭x從0~8九個(gè)值,然后用第二個(gè)for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個(gè)元素的值。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

3.B先將int型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成double型,然后除以2,得到的結(jié)果與double型保持一致,即4.5;然后將4.5強(qiáng)制轉(zhuǎn)換成int型數(shù)據(jù)4,再計(jì)算9%2的值為1;最后計(jì)算4-1的值為3。故本題答案為B選項(xiàng)。

4.A解析:本題考核模塊獨(dú)立性的評(píng)價(jià)。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè);一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度,也可以說是兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項(xiàng)A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。

5.B解析:本題考查文件使用方式標(biāo)識(shí)符。方式“wb”為輸出打開一個(gè)二進(jìn)制文件;方式“wb+”為讀寫建立一個(gè)新的二進(jìn)制文件;方式“rb+”為讀寫打開一個(gè)二進(jìn)制文件:方式“rb”為輸入打開一個(gè)二進(jìn)制文件。

6.C

7.C

8.B

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

10.B

11.A

12.B關(guān)系具有以下7個(gè)性質(zhì)。①元組個(gè)數(shù)有限性:二維表中元組的個(gè)數(shù)是有限的。②元組的唯一性:二維表中任意兩個(gè)元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項(xiàng)。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個(gè)性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項(xiàng)。

13.CC程序中函數(shù)可以在說明或定義時(shí)給一個(gè)或多個(gè)參數(shù)指定默認(rèn)值,但是不能在函數(shù)說明定義時(shí)同時(shí)指定默認(rèn)參數(shù),默認(rèn)參數(shù)值應(yīng)該在函數(shù)名第一次出現(xiàn)時(shí)指定。

14.A

15.A

16.D

17.A本題考查簡單的運(yùn)算符操作.當(dāng)輸入9時(shí),(a++<9)為假,所以執(zhí)行else語句中的printf("%d\n",a--),在執(zhí)行時(shí)此時(shí)a經(jīng)過a++操作a=10,所以答案為A。

18.A

19.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個(gè)字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個(gè)字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

20.A表達(dá)式“ch-‘0’’將數(shù)字字符轉(zhuǎn)為數(shù)字。輸出的格式為%d。while循環(huán)從‘1’~‘8’,因此輸出的結(jié)果是12345678。故本題答案為A選項(xiàng)。

21.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。

22.內(nèi)聚性內(nèi)聚性解析:模塊的獨(dú)立程度是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。內(nèi)聚性是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對(duì)指標(biāo),耦合性則用來度量模塊之間的相互聯(lián)系程度。

23.交換排序交換排序解析:所謂排序是指將一個(gè)無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

24.i<=9或i<10或9>=i或10>ij%3!=0或j%3i<=9或i<10或9>=i或10>i\r\nj%3!=0或j%3

25.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

26.查詢查詢解析:關(guān)系模型的數(shù)據(jù)操作即是建立在關(guān)系上的數(shù)據(jù)操作,一般有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢是指用戶可以查詢關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個(gè)關(guān)系內(nèi)的查詢以及多個(gè)關(guān)系間的查詢。數(shù)據(jù)刪除的基本單位是一個(gè)關(guān)系內(nèi)的元組,它的功能是將指定關(guān)系內(nèi)的指定元組刪除。數(shù)據(jù)增加僅對(duì)一個(gè)關(guān)系而言,在指定關(guān)系中插入一個(gè)或多個(gè)元組。數(shù)據(jù)修改是在一個(gè)關(guān)系中修改指定的元組和屬性。

27.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。

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

29.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨茖傩耘c操作的一組對(duì)象。

30.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。

31.b=3b=3解析:條件表達(dá)式的基本格式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”;其功能是:表達(dá)式1的值若非0,則計(jì)算表達(dá)式2的值,且為最終結(jié)果;若表達(dá)式1的值為0,則計(jì)算表達(dá)式3的值,且為最終結(jié)果。因?yàn)閍=3,則a>=0成立,所以b=a=3。

32.開發(fā)開發(fā)解析:軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和測(cè)試、驗(yàn)收與運(yùn)行、維護(hù)升級(jí)到廢棄等階段,其中的編碼和測(cè)試屬于開發(fā)階段。

33.JD

34.操作系統(tǒng)或OS操作系統(tǒng)或OS解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)。位于用戶和操作系統(tǒng)之間。

35.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(葉旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。

36.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對(duì)應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時(shí),若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對(duì)字符。對(duì)應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時(shí),就以兩個(gè)當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。

37.謂詞演算謂詞演算

38.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

39.19

40.靜態(tài)分析靜態(tài)分析解析:程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

41.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[p-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。

42.B解析:&&,‖在某種情況下會(huì)實(shí)行“短路規(guī)則”,即當(dāng)邏輯與前面一個(gè)表達(dá)式的值為假的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯表達(dá)式一定為假;當(dāng)邏輯或前面一個(gè)表達(dá)式為真的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯或表達(dá)式一定為真。選項(xiàng)A)是將n的值賦值給m和k。選項(xiàng)C)就是進(jìn)行了短路規(guī)則,當(dāng)m=k賦值后,m得到的新值不為0,即為真,邏輯或后面的表達(dá)式就不被計(jì)算,所以n沒有被賦值。D)答案沒有什么意義。

43.B解析:012是八進(jìn)制數(shù),轉(zhuǎn)換成十進(jìn)制為10,12&10轉(zhuǎn)換成二進(jìn)制為00001100&00001010=00001000,00001000轉(zhuǎn)換成十進(jìn)制為8。

44.B解析:C語言提供六種位運(yùn)算符,按優(yōu)先級(jí)由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達(dá)式c=a^b<<1先運(yùn)算b<<1得二進(jìn)制值為00001100,再運(yùn)算a∧00001100,最后得二進(jìn)制值00001111。

45.D解析:位與運(yùn)算符“&”,按二進(jìn)位進(jìn)行“與”運(yùn)算,如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為0;取反運(yùn)算符“~”,用來對(duì)一個(gè)二進(jìn)制按位取反,即將0變1,1變0。在prinf()函數(shù)的表達(dá)式中,“&”前面表達(dá)式的值為1(3/2=1)表示為二進(jìn)制為00000001,而按位取反運(yùn)算符“~”的優(yōu)先級(jí)高于按位與運(yùn)算符“&”,先計(jì)算“&”后面的取反運(yùn)算符“~”。z的二進(jìn)制表示為00000001,取反后為11111110,最后進(jìn)行“&”,即“00000001&11111110”可知結(jié)果為00000000,故最后的值為0。

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

47.D解析:選項(xiàng)A中,f初值設(shè)為0。則執(zhí)行循環(huán)體后,所得的乘積值始終為0,不符合題意。選項(xiàng)B中,for循環(huán)條件是i<n,則當(dāng)i為n時(shí)即退出循環(huán),所以求得的乘積值是(n-1)!,也不符合題意。選項(xiàng)C中,i的初值為n,且i在每次執(zhí)行循環(huán)體后都增加1,則如果n為大于1的數(shù),程序會(huì)陷入死循環(huán)。只有選項(xiàng)D符合題意,求得f的值為n*(n-1)*(n-2)*…*2,即n!。

48.B解析:算術(shù)運(yùn)算符的運(yùn)算規(guī)則是:從右到左的原則。所以表達(dá)式中先計(jì)算a=a-a*a的值是-90,再計(jì)算a=a+a的值是-180。

49.B解析:本題考查帶參數(shù)的宏定義及應(yīng)用方法,這種宏不只是進(jìn)行字符串的替換,還要進(jìn)行參數(shù)的替換。

格式為:#define宏名(參數(shù)表)字符串

我們先看一個(gè)簡單的帶參數(shù)的宏定義:#defineX(A,B)A*B*B并且在程序中有語句:y=X(4,3);經(jīng)過替換后變?yōu)閥=4*3*3;這就是帶參數(shù)的宏定義的使用方法。注意:宏是按原形替換,本題替換后為sun=1+2+3*2+3;。

50.A

51.A解析:本題主要考查按位與運(yùn)算,x=011050的二進(jìn)制形式為0001001000101000,01252的二進(jìn)制形式為0000001010101010,兩者相與得00000010001010000。

52.B解析:函數(shù)fib內(nèi)部有兩個(gè)遞歸調(diào)用,當(dāng)n=3時(shí),fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值為4。

53.C解析:考查指向數(shù)組的指針。本題綜合考查一維數(shù)組和多維數(shù)組指針變量的表示方法。在C語言中,引用數(shù)組元素的方法有兩種,即下標(biāo)法和指針法。下標(biāo)法如a[i]形式;指針法如*(a+i)或*(p+1)。其中,a是數(shù)組名,p是指向數(shù)組的指針變量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意語句中指針型數(shù)組的書寫格式,不能寫成'(*數(shù)組名)[長度]',因?yàn)檫@是定義指向含有'長度'個(gè)元素的一維數(shù)組的指針變量。例如有定義語句'inta,b,c,c,*p[3]={&a,&b,&c};',它定義了一個(gè)名為p的指針型數(shù)組,其3個(gè)元素p[0],p[1],p[2]分別指向f3個(gè)整型變量a,b,c。

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

55.D解析:本題考核的知識(shí)點(diǎn)是函數(shù)的返回值以及返回值作為函數(shù)的參數(shù)。經(jīng)過分析得出函數(shù)fun()的功能是比較形參x和形參y的大小,返回較小的一個(gè).函數(shù)fun()有兩個(gè)參數(shù).本題中,首先定義了三個(gè)整型變量a、b和c,分別賦初值為9、8和7.然后執(zhí)行函數(shù)fun(fun(a,b),fun(b,c))。在該函數(shù)中分別將fun(a,b)和fun(b,C)函數(shù)的返回值作為該函數(shù)的兩個(gè)實(shí)參。在函數(shù)fun(a,b)中,由于a>b,故返回較小值b即8,在函數(shù)fun(b,C)中,由于b<c,故返回較小值c即為7,因此調(diào)用函數(shù)fun(fun(a,b),fun(b,C))相當(dāng)于執(zhí)行函數(shù)fun(8,7),返回較小值即7。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

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

57.B

58.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都有很緊密的關(guān)系。算法的空間復(fù)雜度是指執(zhí)行該算法需要的內(nèi)存空間,并非算法程序中指令的條數(shù)。算法一般應(yīng)該具有以下4個(gè)特征:可行性、確定性、有窮性和擁有足夠情報(bào)。其中,有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止,否則可能失去實(shí)際意義。

59.C

60.C

61.A在本題中,程序首先定義了三個(gè)整型變量,并將變量k賦值為0,然后開始循環(huán),循環(huán)開始時(shí)變量j的值為50,結(jié)束時(shí)變量j的值為60,每循環(huán)一次,變量j自加1,即循環(huán)10次。

當(dāng)j=50,k=0時(shí),“!(k%10)”為真,輸出換行,即循環(huán)開始時(shí),輸出從新的一行開始,執(zhí)行第二重循環(huán),此時(shí)的i=2,“!(j%i)”為真,運(yùn)行break語句,即跳出本層循環(huán)(從這里我們可以看出,j如果可以被i整除,則跳出本層循環(huán)),然后判斷i是否不小于j-1,如果是,則輸出此時(shí)j的值,否則k自加1。

從程序執(zhí)行的過程來看,這個(gè)題目確實(shí)非常復(fù)雜,循環(huán)的次數(shù)太多,但經(jīng)過對(duì)上面一次循環(huán)過程的分析,我們可以發(fā)現(xiàn),其實(shí)這個(gè)程序的作用是找出50~60之間除1和本身外,不能被其他小于本身的數(shù)據(jù)整除的數(shù),并從小到大輸出這樣的數(shù)。這樣就能很容易地得到答案是5359。因此本題的正確答案是A。

62.D

63.C解析:本題主函數(shù)帶有兩個(gè)參數(shù),一個(gè)int型變量argc,另一個(gè)是char型的一維一級(jí)指針數(shù)組argv。當(dāng)主函數(shù)被執(zhí)行時(shí),系統(tǒng)自動(dòng)將根據(jù)命令行的情況,分別給主函數(shù)的兩個(gè)參數(shù)賦值。Argc中存放命令行中命令字和參數(shù)的總和的個(gè)數(shù),argv用來存放命令行中命令字和所有參數(shù)的字符串的,并規(guī)定avgv[0]存放命令字字符串,argv[1]用來存放第一個(gè)參數(shù)的字符串,argv[2]用來存放第2個(gè)參數(shù)的字符串,依此類推。題中argc的值是2,執(zhí)行完--argc后為1,輸出argv[1],此數(shù)組存在第一個(gè)參數(shù)的字符串ABCDEFGHIJKL。

64.C

65.C

66.D

\n語法錯(cuò)誤。else與if之間不應(yīng)再用其他語句,如果滿足if條件,則繼續(xù)執(zhí)行if后面的語句;不滿足就執(zhí)行else語句。

\n

67.B\n此程序考查帶參數(shù)的宏定義,S(k+j)展開后即4*(k+j)*k+j+1,所以結(jié)果為l43,答案為B。

\n

68.A第一次x為8,輸出8,第二次x為6,輸出5,第三次x為4,輸出4,第四次x為2,輸出2,循環(huán)結(jié)束,所以答案選擇A)

69.D邏輯或運(yùn)算符中只要有一個(gè)運(yùn)算量為真結(jié)果就是真,當(dāng)c>=2&&C<=6條件不成立時(shí)c的值肯定不是2、3、4…56所以C!=3,與C!=5均成立。所以D選項(xiàng)的結(jié)果一定為真。

70.C

71.BB【解析】只有B選項(xiàng)369可以用無符號(hào)整

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論