2021年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁(yè)
2021年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁(yè)
2021年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁(yè)
2021年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁(yè)
2021年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年湖北省孝感市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下敘述中錯(cuò)誤的是()。

A.C語(yǔ)句必須以分號(hào)結(jié)束

B.復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句

C.空語(yǔ)句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行

D.賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句

2.

3.在以下給出的表達(dá)式中,與“while(E)”中的“(E)”不等價(jià)的表達(dá)式是()。

A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)

4.下列二維數(shù)組初始化語(yǔ)句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

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

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

6.下列程序的輸出結(jié)果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}

A.4,5,12B.20C.5,4,20D.12

7.有以下程序voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d",r);}程序運(yùn)行后的輸出結(jié)果是A.2B.1C.3D.0

8.下面關(guān)于B樹(shù)和B+樹(shù)的敘述中,不正確的結(jié)論是()。

A.B樹(shù)和B+樹(shù)都能有效的支持順序查找

B.B樹(shù)和B+樹(shù)都能有效的支持隨機(jī)查找

C.B樹(shù)和B+樹(shù)都是平衡的多叉樹(shù)

D.B樹(shù)和B+樹(shù)都可用于文件索引結(jié)構(gòu)

9.以下程序段中,與語(yǔ)句“k—a>b?(b>c?1:O):0;”功能相同的是()。

A.if(a>b)(b>c)k=1;elsek=0;

B.if((a>b)‖(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b>c)k=1;

D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:

10.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的運(yùn)行結(jié)果是()。

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

11.有以下程序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

12.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程

C.軟件的開(kāi)發(fā)過(guò)程

D.軟件的運(yùn)行維護(hù)過(guò)程

13.設(shè)a,b,c,d,m和n均為int型變量,且a=5,b=6,c=7,d=m=2,n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為()

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

14.對(duì)于順序存儲(chǔ)的線性表,訪問(wèn)結(jié)點(diǎn)和增加、刪除結(jié)點(diǎn)的時(shí)間復(fù)雜度為()。

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

15.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

16.有以下程序:

A.CDEFB.ABEFC.ABCDD.CDAB

17.下列字符串是標(biāo)識(shí)符的是()。

A.aaB.a-classC.intD.LINE1

18.

19.排序方法中,將整個(gè)無(wú)序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱為_(kāi)_____。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

20.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。

A.&.B.^C.||D.~

二、2.填空題(20題)21.C語(yǔ)言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

22.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

執(zhí)行后輸出的結(jié)果是【】。

23.設(shè)Y是int型變量,請(qǐng)寫(xiě)出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

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

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

25.下列程序段的輸出結(jié)果是【】。

intn='c';

switch(n++)

{default:printf("error");break;

case'a':

case'A':

case'b':

case'B':printf("good");break;

case'c':case'C':printf(”pass");

case'd':case'D':printf(”warn");

}

26.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

27.當(dāng)線性表的操作無(wú)插入和刪除時(shí),采用【】結(jié)構(gòu)為好。

28.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

29.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

30.算法的執(zhí)行過(guò)程中,所需要的存儲(chǔ)空間稱為算法的【】。

31.數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。

32.軟件生命周期分為軟件定義期、軟件開(kāi)發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計(jì)屬于______中的一個(gè)階段。

33.在關(guān)系模型中,二維表的行稱為_(kāi)_____。

34.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}

35.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

36.一般來(lái)說(shuō),算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

37.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值,和值通過(guò)形參傳回主函數(shù)輸出。請(qǐng)?zhí)羁眨?/p>

#include<stdio.h>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

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

k=O;

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

if(a[k][i]>a[j][i])k=j;

s+:【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(【】);

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

}

38.以下程序由終端鍵盤(pán)輸入一個(gè)文件名,然后把從終端鍵盤(pán)輸入的字符依次放到該文

件中,用井作為結(jié)束輸入的標(biāo)志。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

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

40.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目經(jīng)理,一個(gè)項(xiàng)目經(jīng)理可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目經(jīng)理”與實(shí)體“項(xiàng)目”的聯(lián)系屬于()的聯(lián)系。

三、1.選擇題(20題)41.以下定義語(yǔ)句中正確的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

42.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運(yùn)行結(jié)果是

A.0B.9C.6D.8

43.以下C程序的運(yùn)行結(jié)果為_(kāi)_____。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}

A.sum=10B.sum=55C.sum=100D.sum=88

44.請(qǐng)讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

45.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

46.若有以下定義和語(yǔ)句:doubler=23,*p=&r;*p=r;則以下正確的敘述是______。

A.兩處的*p含義相同,都說(shuō)明給指針變量p賦值

B.在“doubler=23,*p=&r;”中,把r的地址賦值給了p所指的存儲(chǔ)單元

C.語(yǔ)句“*p=r;”把變量r的值賦給指針變量p

D.語(yǔ)句“*p=r;”取變量r的值放回r中

47.可在C程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是A.and2007

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

48.沒(méi)有以下語(yǔ)句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i<10)inta[10]={1,1,2,3,4,5,6,7,8,9,},*p=a;

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

49.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}

A.*p表示的是指針變量p的地址

B.*p表示的是變量a的值,而不是變量a的地址

C.*p表示的是指針變量p的值

D.*p只能用來(lái)說(shuō)明p是一個(gè)指針變量

50.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。

A.將變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)B.使變量x可以由系統(tǒng)自動(dòng)初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留

51.請(qǐng)讀程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的輸出結(jié)果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

52.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

53.以下程序(程序左邊的數(shù)字為附加的行號(hào))______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}

A.沒(méi)有錯(cuò)B.第1行有錯(cuò)C.第6行有錯(cuò)D.第7行有錯(cuò)

54.索引屬于()。

A.模式B.內(nèi)模式C.外模式D.概念模式

55.棧和隊(duì)列的共同特點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同點(diǎn)

56.若有以下說(shuō)明,則對(duì)初值中字符a的引用方式為()。staticstruct{charch;doublex;chara();}c[2][3]={{{'a',3.5,"bc"},{'c',4.5,"de"},{'m',8.6,"abc"}},{{'d',8.5,"ic"},{'b',5.5,"dc"},{'n',8.6,"anc'}}};

A.c.chB.c[0][0].chC.c[1][1].chD.a[0]

57.C語(yǔ)占中,函數(shù)值類型的定義可以缺省,此時(shí)函數(shù)值的隱含類型是

A.voidB.intC.floatD.double

58.設(shè)有定義:intnl=0,n2,*p=&n2,*q=&n1;,下列賦值語(yǔ)句中與n2=n1;語(yǔ)句等價(jià)的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

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

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹(shù)

60.以下敘述中正確的是_____。A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸出但必須要輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒(méi)有輸入也沒(méi)有輸出

四、選擇題(20題)61.

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

A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序

63.以下敘述中錯(cuò)誤的是()。

A.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過(guò)程中進(jìn)行的

B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束

C.#defineMAX是合法的宏定義命令行

D.在程序中凡是以“#”開(kāi)始的語(yǔ)句行都是預(yù)處理命令行

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

structabc

{

inta,b,c;

}

main()

{

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

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

}

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

65.下列選項(xiàng)中,能正確定義數(shù)組的語(yǔ)句是()。

A.

B.

C.

D.

66.有如下程序段:

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

A.123.141593B.1,23.141593C.12,3.141593D.123.1415930

67.若變量已正確定義為int型,要通過(guò)語(yǔ)句給a賦值l、+給b賦值2、給c賦值

3,以下輸入形式中錯(cuò)誤的是()(注:口代表一個(gè)空格符)。

68.下面程序的輸出結(jié)果是()。

#inclde<stdio.h>

#defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

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

}

A.12B.15C.16D.20

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

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf("%d,",d);}

main()

{inta=3;

fun(a);

d+=a++;

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

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

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

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

71.若執(zhí)行下面的程序時(shí),從鍵盤(pán)輸入6和2,則輸出結(jié)果是()。

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

72.有以下程序:

#include<stdio.h>

main()

{inta=12,C;

c=(a<<2)<<1;

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

}

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

A.3B.50C.2D.96

73.在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠()。

A.對(duì)象的繼承B.對(duì)象的多態(tài)C.對(duì)象的封裝D.對(duì)象的分類

74.算法的時(shí)間復(fù)雜度是指()。

A.算法所處理的數(shù)據(jù)量B.算法的執(zhí)行時(shí)間C.算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的語(yǔ)句或指令條數(shù)

75.下列選擇中,不能用做標(biāo)識(shí)符的是()。

A.1234B._1_2C.int_2_D.2_int_

76.

77.下列字符數(shù)組初始化語(yǔ)句中,不正確的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

78.

79.

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

五、程序改錯(cuò)題(1題)81.給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值增加10倍。修改其中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編程計(jì)算下列表達(dá)式:s=n!(n從鍵盤(pán)上輸入)

參考答案

1.C解析:C語(yǔ)句必須以分號(hào)結(jié)束,選項(xiàng)A是正確的。復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句,選項(xiàng)B也是正確的。空語(yǔ)句也算是一條語(yǔ)句,因此如果空語(yǔ)句出現(xiàn)在條件或者循環(huán)語(yǔ)句中,一樣會(huì)被當(dāng)作條件子句或者循環(huán)體來(lái)看待,所以選項(xiàng)c是錯(cuò)誤的。賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句,選項(xiàng)D正確。故本題應(yīng)該選擇C。

2.C

3.Bwhile語(yǔ)句中條件表達(dá)式E的值不為0即真,認(rèn)為滿足條件。這與B選項(xiàng)中表達(dá)式的含義正好相反。故本題答案為B選項(xiàng)。

4.D解析:在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0;C語(yǔ)言規(guī)定,對(duì)于二維數(shù)組,只可以省略第1個(gè)方括號(hào)中的常量表達(dá)式,而不能省略第2個(gè)方括號(hào)中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個(gè)數(shù)。

在選項(xiàng)D)賦值表達(dá)式中,對(duì)每一維的元素賦初值應(yīng)用{},而不是()。

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

6.C解析:本題考查ifelse語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復(fù)合語(yǔ)句,得c=a*b=20,b、a的值不變。

7.A解析:本題考查了函數(shù)的遞歸調(diào)用。在f函數(shù)中,當(dāng)m=7時(shí),程序執(zhí)行“f(--n,&r1);”語(yǔ)句,遞歸調(diào)用f(6,&r1),程序執(zhí)行“r1=n/3;”語(yǔ)句,即r1=\u30006/3=2,然后執(zhí)行“*r=r1;”語(yǔ)句,所以輸出結(jié)果為2。

8.A

9.A本題考查了雙重三目運(yùn)算符的用法。例如:表達(dá)式a>b?c:d可以看成,當(dāng)a>b時(shí)取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當(dāng)b>c時(shí)為真,則k=a>b?1:0。當(dāng)bb?0:0。也就是說(shuō),當(dāng)a>b并且b>C時(shí),k=1,否則k=0。所以A選項(xiàng)符合題意。

10.D執(zhí)行語(yǔ)句“intm=1,n=2,*p=&m,*q=&n,*r;”,即指針變量p指向m,指針變量q指向n。執(zhí)行語(yǔ)句“r=p;p=q;q=r;”,即通過(guò)指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。故本題答案為D選項(xiàng)。

11.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來(lái)看不是線性的,但是在C語(yǔ)言中,這些數(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符合題意。

12.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

13.C

14.C

15.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識(shí)符(*指針變量名)()。其中,“類型標(biāo)識(shí)符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

16.A在函數(shù)funl()之前定義了全局字符變量a和b。這兩個(gè)變量的作用域是從其定義處開(kāi)始到整個(gè)程序末結(jié)束。在函數(shù)funl()之內(nèi)定義了兩個(gè)變量a和b,并且分別初始化為字符ˊCˊ和ˊDˊ。

17.A

\nC語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。int就是表達(dá)整型變量類型的標(biāo)識(shí)符,它不能用做變量名和函數(shù)名。

\n

18.B

19.A解析:希爾排序法的基本思想是:將整個(gè)無(wú)序序列分割成若干小的子序列分別進(jìn)行插入排序。

20.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。

21.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語(yǔ)句和switch語(yǔ)句)和循環(huán)結(jié)構(gòu)(包括for語(yǔ)句、while語(yǔ)句、do…while語(yǔ)句)。

22.-4-4解析:if-else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過(guò)程是:先對(duì)條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=O,可以判斷(!n)為真,執(zhí)行“x=x-1=2-1=1;m=1”,可以判斷(m)為真,執(zhí)行“x=x-2=1-2=-1;”進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4。

23.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

24.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時(shí),a=c++=8,所以k=8。

25.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語(yǔ)句后再加1,因此,在執(zhí)行case的時(shí)候,n的值依然為'c',執(zhí)行case'c'后面的語(yǔ)句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語(yǔ)句,又打印出warn。所以此題輸出結(jié)果是passwarn。

26.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開(kāi)始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注意本題中i、j的初值都要從1開(kāi)始,該算法只能用于數(shù)組已排序的題目中。

27.順序順序解析:當(dāng)線性表的操作無(wú)插入和刪除時(shí),在對(duì)線性表進(jìn)行操作時(shí),不能改變?cè)氐奈恢?,采用順序結(jié)構(gòu)的效率高于鏈?zhǔn)浇Y(jié)構(gòu)。因?yàn)椴捎庙樞蚪Y(jié)構(gòu),對(duì)元素的查找可通過(guò)計(jì)算得到。

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

29.n/2n/2解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

30.空間復(fù)雜度空間復(fù)雜度解析:算法執(zhí)行時(shí)所需要的存儲(chǔ)空間,稱為算法的空間復(fù)雜度。

31.外模式外模式解析:外模式由概念模式推導(dǎo)而出,給出了每個(gè)用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。

32.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段:軟件定義期(問(wèn)題定義、可行性研究和需求分析)、軟件開(kāi)發(fā)期(系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

33.元組元組解析:在關(guān)系型數(shù)據(jù)庫(kù)中,用二維表來(lái)表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。

34.5555解析:分析程序執(zhí)行過(guò)程,第一次循環(huán)時(shí),j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。

35.存儲(chǔ)結(jié)構(gòu)

36.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。

37.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:程序段for(j=1;j<M;j++)if(a[k][i]>a[j][i]))k=j;是找出第i列的最小值,第一處應(yīng)該是每列最小值累加,所以填a[k][i];和值要通過(guò)形參傳回主函數(shù),第二處應(yīng)該填*sum;根據(jù)形參可以確定第三處應(yīng)該填x,&s。

38.fopen(fname:"w")

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

40.一對(duì)多一對(duì)多解析:實(shí)體之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實(shí)世界事物之間的相互關(guān)聯(lián)。兩個(gè)實(shí)體間的聯(lián)系可以歸結(jié)為三種類型:一對(duì)一聯(lián)系表現(xiàn)為某一實(shí)體與另一實(shí)體一一對(duì)應(yīng)相關(guān)聯(lián):一對(duì)多聯(lián)系表現(xiàn)為某一實(shí)體與相關(guān)多個(gè)實(shí)體相關(guān)聯(lián);多對(duì)多聯(lián)系表現(xiàn)為多個(gè)實(shí)體與相關(guān)多個(gè)實(shí)體相聯(lián)系。所以實(shí)體“項(xiàng)目經(jīng)理”與實(shí)體“項(xiàng)目”的聯(lián)系屬于一對(duì)多的聯(lián)系。

41.C解析:選項(xiàng)A中定義兩個(gè)變量a和b,并賦初值,C語(yǔ)言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開(kāi),顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語(yǔ)句,這在定義變量是不正確的,故選項(xiàng)B不正確,選項(xiàng)D定義一個(gè)指針,然后定義了一個(gè)變量并讓這個(gè)變量的初值為該指針變量,顯然這這時(shí)的指針變量還沒(méi)初始化就被賦值給變量,是不對(duì)的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

42.C解析:函數(shù)intf(intx)是一個(gè)遞歸函數(shù)調(diào)用,當(dāng)x的值等于0或1時(shí),函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語(yǔ)句z=f(3)時(shí),y=3*3-f(3-2)=9-f(1)=9-3=6。

43.B

44.A解析:本題考查字符串比較函數(shù)strcmp()的應(yīng)用。strcmp(s1,s2)是中比較函數(shù),當(dāng)s1>s2時(shí)返回值為正數(shù),當(dāng)s1<s2時(shí)返回值為負(fù)數(shù),當(dāng)s1=s2時(shí)返回值為零。本題中s1,s2分別表示兩個(gè)串中第一個(gè)字符的地址,s1++和s2++是將指針指向串的第二個(gè)字符,指針變量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指針變量s2指向的是字符'B'的地址。而在字符串比較中,寧符串大小的確定是各個(gè)字符串相應(yīng)位置字符的ASCII碼值的大小決定的,字符'B'的ASCII碼值為66,字符“b”的ASCII碼值為98,所以s1>s2,返回值為正數(shù)。

45.C解析:A、D選項(xiàng)是關(guān)系運(yùn)算表達(dá)式,在C語(yǔ)言中,只要關(guān)系運(yùn)算符兩邊是合法的表達(dá)式就可以了。C選項(xiàng)中,%只能對(duì)整型進(jìn)行運(yùn)算,其中對(duì)f進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,但是轉(zhuǎn)換的表達(dá)式錯(cuò)了,應(yīng)為:(int)(f)。

46.D解析:*p=&r使p指向變量r的地址,*p=r是再取變量r的值,并放回r中。

47.A解析:在C語(yǔ)言中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下畫(huà)線3種字符組成,且第一個(gè)字符必須為字母或下畫(huà)線。C語(yǔ)言的標(biāo)識(shí)符可以分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符。選項(xiàng)B)和C)中的橫線以及點(diǎn)都不合法,選項(xiàng)D)中的case為C語(yǔ)言關(guān)鍵字。

48.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。

49.B在本題中,題目告訴我們程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,要求我們找出其錯(cuò)誤的原因,這是一類錯(cuò)誤原因分析題。

在本題程序中,首先定義兩個(gè)整型指針變量p和q,然后定義兩個(gè)整型變量a和b,讓指針變量p執(zhí)行變量a,接著輸出提示語(yǔ)句“請(qǐng)輸入a”,執(zhí)行格式輸入語(yǔ)句scanf,由于輸入語(yǔ)句的輸入列表中給出的應(yīng)該是輸入的地址,即存放輸入數(shù)據(jù)的存儲(chǔ)地址,但在本題的輸入語(yǔ)句中給出的是*p,這表示一個(gè)數(shù)值,而非地址。因此,無(wú)法完成數(shù)據(jù)的輸入,若要完成輸入,可以將*p改為p。

根據(jù)上面的分析,我們可以知道本題程序出錯(cuò)的原因是*p表示的是變量a的值,而不是變量a的地址。因此本題正確答案選B。

50.C解析:事實(shí)上,無(wú)論有無(wú)static修飾,外部變量都具有A、B和C三種特性。作為一種修飾,static僅是限制此類型外部變量韻引用范圍:只能在定義它的文件范圍內(nèi)使用。

51.D解析:printf函數(shù)按格式控制符的個(gè)數(shù)輸出表列中對(duì)應(yīng)的數(shù)據(jù),若輸出表列的個(gè)數(shù)大于格式控制符個(gè)數(shù),則輸出與格式控制符對(duì)應(yīng)的輸出表列的數(shù)據(jù),輸出表列中多的則省略;若格式控制符個(gè)數(shù)大于輸出表列的個(gè)數(shù),則輸出與格式控制符對(duì)應(yīng)的輸出表列的數(shù)據(jù),格式控制符多的部分輸出的數(shù)據(jù)是隨機(jī)的。

52.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

53.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯(cuò)誤的。

54.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。

55.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級(jí),分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒(méi)有這種耦合方式。

56.B解析:二維數(shù)組c是結(jié)構(gòu)體類型的數(shù)組。字符a在第一個(gè)數(shù)組元素c[0][0]中,它是字符型數(shù)據(jù),只有選項(xiàng)B符合題意。

57.B解析:本題考查的知識(shí)點(diǎn)是函數(shù)值類型的缺省定義。C語(yǔ)言規(guī)定:在定義函數(shù)時(shí),若其返回值類型為int,則可以缺省。所以4個(gè)選項(xiàng)中B正確。

58.A解析:在定義指針變量p和q時(shí),分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內(nèi)容就分別是變量n2和n1的值,所以語(yǔ)句*p=*q與語(yǔ)句n2=n1等價(jià)。因此選項(xiàng)A正確。

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

【知識(shí)拓展】“隊(duì)列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊(duì)列”,其形式如“排隊(duì)”。要講究“先來(lái)后到”,先進(jìn)先出,后進(jìn)后出。

60.C解析:算法的特性中包括“有零個(gè)或多個(gè)輸入”及“有一個(gè)或多個(gè)輸出”這兩個(gè)特性。一個(gè)算法得到的結(jié)果就是算法的輸出,沒(méi)有輸出的算法是沒(méi)有意義的,所以一千算法必須至少有一個(gè)輸出。

61.B

62.C解析:軟件按功能可以分為:應(yīng)用軟件,系統(tǒng)軟件、支撐軟件(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論