2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第1頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第2頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第3頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第4頁(yè)
2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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)介

2022年四川省眉山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下面關(guān)于串的的敘述中,哪一個(gè)是不正確的()。

A.串是字符的有限序列

B.空串是由空格構(gòu)成的串

C.模式匹配是串的一種重要運(yùn)算

D.串既可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)

2.

3.可用作C語(yǔ)言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof

4.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時(shí)編譯器提示錯(cuò)誤信息,你認(rèn)為出錯(cuò)的語(yǔ)句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;

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

B.*(&a[i])

C.p[i]

D.*(*(a+i))

6.在一個(gè)鏈?zhǔn)疥?duì)列中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則刪除結(jié)點(diǎn)的運(yùn)算是()。

A.r=f->nextB.r=r->nextC.f=f->nextD.f=r->next

7.

8.若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是()。

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

9.數(shù)組A中,每個(gè)元素的長(zhǎng)度為3個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開(kāi)始連續(xù)存放的存儲(chǔ)器內(nèi),該數(shù)組按行存放,元素A[5][8]的起始地址為()。

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

10.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A.11B.21C.6D.120

11.

12.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00

13.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

14.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運(yùn)行結(jié)果是()。

A.輸出字符c的ASCII值B.程序出錯(cuò)C.輸出字符cD.輸出字符a的ASCII值

15.設(shè)有定義語(yǔ)句:charc1=92,c2=92;則以下表達(dá)式中值為零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

16.下列關(guān)于效率的說(shuō)法不正確的是()

A.效率是一個(gè)性能要求,其目標(biāo)應(yīng)該在需求分析時(shí)給出

B.提高程序效率的根本途徑在于選擇良好的設(shè)計(jì)方法,數(shù)據(jù)結(jié)構(gòu)與算法

C.效率主要指處理機(jī)時(shí)間和存儲(chǔ)器容量?jī)蓚€(gè)方面

D.程序的效率與程序的簡(jiǎn)單性無(wú)關(guān)

17.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

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

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

19.若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是()。

A.2.500000B.2.7500OOC.3.500000D.0.000000

20.下列關(guān)于棧的描述中錯(cuò)誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入與刪除操作中,不需要改變棧底指針

二、2.填空題(20題)21.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

22.數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,【】給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)和物理存取方法。

23.已有定義:double*p;,請(qǐng)寫(xiě)出完整的語(yǔ)句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲(chǔ)單元______。

24.在面向?qū)ο蠓椒ㄖ?,?lèi)的實(shí)例稱為_(kāi)_____。

25.以下程序是用遞歸方法求數(shù)組中的最大值及其下標(biāo)值。請(qǐng)?zhí)羁铡?/p>

#defineM10

voidfindmax(int*a,intn,inti,int*pk)

{if(i<n)

{if(a[i]>a[*pk])【】;

findmax(a,n,i+1,&(*pk));}}

main()

{inta[M],j,n=0;

printf("\nEnter%ddata;\n",M);

for(i=0;i<M;i++)scanf("%d",a+i);

findmax(a,M,0,&n);

printf("Themaxinumis:%d\n",a[n]);

printf("It'sindexis;%d\n",n);}

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

27.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。

28.設(shè)有以下定義變量的語(yǔ)句,并且已賦確定的值,則表達(dá)式“W*X+Z-y”所求得的數(shù)據(jù)類(lèi)型為【】。

charw;intx;floaty;double2;

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

main()

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

i[(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);

}

30.軟件設(shè)計(jì)模塊化的目的是______。

31.下列語(yǔ)句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

32.調(diào)用C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)要求用【】命令。

33.以下程序的運(yùn)行結(jié)果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

34.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

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

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

35.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】=='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

36.以下程序的功能是:刪去一維數(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");

}

37.若有定義語(yǔ)句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)

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

d[j]=0;

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

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

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

intfun(int*x,int*y)

{staticintm=4;

m=*X+*y;*x-=m;*y+=m;

returnm;

}

main()

{inta=2,b=6,n;

n=fun(&a,&B);printf("%d,",n);

n=fun(&a,&B);printf("%d\n",n);

}

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

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

42.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請(qǐng)選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);::}

A.a+(i++)B.&5[i+1]C.a+iD.&a[++i]

43.已知有結(jié)構(gòu)體:

structsk

{ihta;

floatb;

)data,*p;

若有p=&data,則對(duì)data的成員a的正確引用是()。

A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a

44.下列選項(xiàng)中屬于C語(yǔ)言構(gòu)造類(lèi)型的是()

A.指針類(lèi)型B.空類(lèi)型C.枚舉類(lèi)型D.數(shù)組類(lèi)型

45.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+'a'+i*f的值的數(shù)據(jù)類(lèi)型為()。

A.intB.floatC.doubleD.不確定

46.以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是

A.k=n,n=n+1B.n=n+l,k=nC.k=++nD.k+=n+1

47.設(shè)有定義:longx=123456L;,則以下能夠正確輸出變量x值的語(yǔ)句是______。

A.printf("x=%d\n",x);

B.printf("x=%1d\n",x)

C.printf("x=%8dL\n",x);

D.printf("x=%LD\n",x);

48.下列語(yǔ)句中,在字符串s1和s2相等時(shí)顯示"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");

49.對(duì)以下說(shuō)明語(yǔ)句的正確理解是inta[10]={6,7,8,9,10};

A.將5個(gè)初值依次賦給a[1]至a[5]

B.將5個(gè)初值依次賦給a[0]至a[4]

C.將5個(gè)初值依次賦給a[6]至a[10]

D.因?yàn)閿?shù)組長(zhǎng)度與初值的個(gè)數(shù)不相同,所以此語(yǔ)句不正確

50.若有語(yǔ)句:char*line[5];,以下敘述中正確的是

A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類(lèi)型為char的指針變量

B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組

C.定義line是一個(gè)指針數(shù)組,語(yǔ)句中的。號(hào)稱為間址運(yùn)算符

D.定義line是一個(gè)指向字符型函數(shù)的指針

51.下列敘述中,不正確的是

A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)

B.算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間

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

D.算法的時(shí)間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的時(shí)間

52.下面程序的輸出是______。typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;mare(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

53.有以下程序

#include<stdio.h>

main()

{inti,j,m=55;

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

for(j=3;j<=i;j++)m=m%j;

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

}

程序的運(yùn)行結(jié)果是

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

54.下列對(duì)于線性鏈表的描述中正確的是()

A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

55.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語(yǔ)句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}

56.設(shè)有以下語(yǔ)句:charstr1[]="string",str2[8],*str3,*str4="string";則______不是對(duì)庫(kù)函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

57.執(zhí)行下列語(yǔ)句的結(jié)果為_(kāi)_____。i=3;printf("%d,",++i);printf("%d",i++);

A.3,3B.3,4C.4,3D.4,4

58.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

B.一個(gè)文件指針,指向要讀的文件

C.一個(gè)指針;指向要讀入數(shù)據(jù)的存放地址

D.一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)

59.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。

A.1B.2C.4D.死循環(huán)

60.下述語(yǔ)句中,_____中的if語(yǔ)句語(yǔ)法是錯(cuò)誤的。()

A.if(x>y);

B.if(x==y(tǒng))x+=y(tǒng);

C.if(x!=y(tǒng))seanf("%d",&x)elsescanf("%d",&y);

D.if(x<y){x++;y++;}

四、選擇題(20題)61.若有以下程序:inta=1,b=2:a=a^b:b=b^a:則執(zhí)行以上語(yǔ)句后a和b的值分別是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

62.

63.

64.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。

A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

65.

66.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。

A.12353514B.12353513C.12343514D.12343513

67.有以下程序:

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

A.357B.753C.369D.751

68.

對(duì)下述程序的判斷中,正確的是()。

#include<stdio.h>

main()

{char*p,s[256];

p=s;

while(strcmp(s,"theend"))

{printf("Inputthestrin9:");

gets(s);

while(*p)

putchar(*p++);

}}

A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止

B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串

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

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

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

A.getehar函數(shù)用于從磁盤(pán)文件讀入字符

B.gets匿數(shù)用于從終端讀入字符串

C.取ns函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

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

A.算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語(yǔ)句或指令條數(shù)

D.算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)

72.以下選項(xiàng)中,能表示邏輯值“假”的是()

A.1B.0.000001C.0D.100.0

73.若有定義:inta,h;通過(guò)語(yǔ)句:scanf(”%d;%d”,&a,&B.;,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

74.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。

A.帶鏈隊(duì)列B.循環(huán)隊(duì)列C.帶鏈棧D.二叉樹(shù)

75.下列語(yǔ)句組中,正確的是()。

A.char*s;s=”O(jiān)lympic”;

B.chars[7];s=”O(jiān)lympic”;

C.char*s;s={¨Olympic”};

D.chars[7];s={"Olympic”};

76.

77.若有說(shuō)明:intn=2,*p=&n,*q=p;,則以下非法的賦值語(yǔ)句是()。

A.p=qB.*p=*qC.n=*qD.p=*n

78.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

79.有以下程序:

#include<stdio.h>

structord

{intX,y;)dt[2]={1,2,3,4};

main()

{

structord*p=dt;

printf("%d,",++(p->x));printf("%d\n",++(p->y));

}

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

A.1,2

B.4,1

C.3,4

D.2,3

80.由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是______。A.A.減少存取時(shí)間,降低下溢發(fā)生的概率

B.節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的概率

C.減少存取時(shí)間,降低上溢發(fā)生的概率

D.節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的概率

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,則應(yīng)輸出0.192582。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。

則函數(shù)值為59。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

試題程序:

參考答案

1.B

2.B

3.B

4.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類(lèi)推,在對(duì)指針進(jìn)行賦值時(shí)沒(méi)有錯(cuò)誤。a=/*p+m賦值,在c語(yǔ)言中"/*"表示的注釋?zhuān)源鸢高x擇A。

5.D

6.C

7.C

8.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

9.C

10.B本題考查靜態(tài)變量,C語(yǔ)言中靜態(tài)變量的生存期是從程序的開(kāi)始到結(jié)束。本題中靜態(tài)變量x,隨著每次進(jìn)入循環(huán)不斷增長(zhǎng)5次,返回的值分別為2、3、4、5、6。所以S=1+2+3+4+5+6=21,選B。

11.A

12.As是一個(gè)公用體,d的值分別與ch中的兩個(gè)元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此輸出的結(jié)果為21,43。

13.D解析:文件狀態(tài)檢測(cè)函數(shù)feof(fp)的功能是:測(cè)試所指的文件的位置指針是否已達(dá)到文件尾,如果已到達(dá)文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。

14.B在C語(yǔ)言中,數(shù)組名類(lèi)似于一個(gè)指向數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的“s+=2;”語(yǔ)句讓數(shù)組名S的內(nèi)容加2是錯(cuò)誤的,編譯無(wú)法通過(guò)。故本題答案為B選項(xiàng)。

15.A解析:按位異或“^”運(yùn)算,是當(dāng)對(duì)應(yīng)位上的二進(jìn)制數(shù)值相同時(shí)結(jié)果為0,否則為1。因?yàn)閏1,c2的值相同,所以異或的結(jié)果為0,選項(xiàng)A)正確。按位與“&”運(yùn)算符只有當(dāng)所有對(duì)應(yīng)位上的數(shù)都不相同時(shí)結(jié)果才為0,所以c1&c2的值不可能為0,選項(xiàng)B)錯(cuò)誤?!啊笔前次蝗》?,由于十進(jìn)制數(shù)92轉(zhuǎn)化成二進(jìn)制數(shù)并不是全為1,所以即使取反也不能得到全為。的答案,所以錯(cuò)誤?!皘”是按位或運(yùn)算,由于十進(jìn)制數(shù)92轉(zhuǎn)化為二進(jìn)制數(shù)也不是全為0,所以按位或運(yùn)算后也不會(huì)全為0。

16.D

17.Bscanf(\u3000)語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車(chē)符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來(lái)從終端鍵盤(pán)讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。

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

19.A

20.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點(diǎn)是先進(jìn)后出,因此具有記憶作用。棧可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

21.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

22.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法。

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

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

24.對(duì)象對(duì)象解析:類(lèi)描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書(shū)是一個(gè)對(duì)象,而這些具體的書(shū)都有共同的性質(zhì),它們都屬于更一般的概念“書(shū)”這一類(lèi)對(duì)象。一個(gè)具體對(duì)象稱為類(lèi)的實(shí)例。

25.*pk=a[i]*pk=a[i]解析:通過(guò)參數(shù)傳遞,findmax函數(shù)接收到4個(gè)參數(shù),分別是數(shù)組a(需要對(duì)其中的數(shù)據(jù)按照題目的要求進(jìn)行計(jì)算)、10(數(shù)組a中的元素個(gè)數(shù))、0(數(shù)組a的起始位置)、指針變量n(對(duì)數(shù)組a中的元素進(jìn)行遍歷)。我們了解了這些參數(shù)的作用后,再對(duì)遞歸調(diào)用的函數(shù)進(jìn)行分析,就不難得出結(jié)論了。注意:通過(guò)對(duì)本例中遞歸函數(shù)的分析掌握遞歸算法的執(zhí)行原理。

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

27.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡(jiǎn)化大量的程序執(zhí)行。

28.double或雙精度型double或雙精度型

29.45994599解析:本題是一個(gè)陷阱題,以書(shū)寫(xiě)格式來(lái)考查考生對(duì)if語(yǔ)句的理解.if語(yǔ)句只對(duì)緊跟其后的一條語(yǔ)句或語(yǔ)句塊產(chǎn)生作用。因此,題目中兩條if語(yǔ)句只有t=a;和t=b是if的子句。第1條if語(yǔ)句中b<a為假,所以跳過(guò)語(yǔ)句t=a;,執(zhí)行a=c;c=t;后,a=5、b=4、c=99。第2條if語(yǔ)句的判斷條件a<c&&b<c為真,所以后面三條語(yǔ)句都被執(zhí)行,這三條語(yǔ)句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。

30.降低復(fù)雜性降低復(fù)雜性

31.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。

32.includeinclude解析:include命令可調(diào)用標(biāo)準(zhǔn)的C語(yǔ)言庫(kù)函數(shù),可以用一對(duì)尖括號(hào)或一對(duì)雙引號(hào)將“.h”文件括起來(lái),在include前面要加“#”。

33.149161,4,9,16,解析:分析程序執(zhí)行過(guò)程,第1次循環(huán),k=1時(shí),此時(shí)s(1)=1*1=1,然后k的值加1;第2次循環(huán),k=2時(shí),s(2)=2*2=4,然后k的值加1;第3次循環(huán),k=3時(shí),s(3)=3*3=9,然后k的值加1;第4次循環(huán),k=4時(shí),s(4)=4*4=16,然后k的值加1;當(dāng)k=5時(shí),條件不滿足,退出循環(huán)。

34.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機(jī)種子,以便在使用rand函數(shù)時(shí)產(chǎn)生不同的數(shù)。通過(guò)循環(huán)用rand函數(shù)產(chǎn)生10個(gè)隨機(jī)數(shù)。在fun函數(shù)中,要在n個(gè)數(shù)中找最大值,所以第一處填寫(xiě)i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫(xiě)a[i]。

35.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說(shuō)明這個(gè)字符是一個(gè)單詞的開(kāi)始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫(xiě)的是返回的單詞的個(gè)數(shù),即num。

36.!=returnj!=,returnj解析:本題程序的流程是:讓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ù)組已排序的題目中。

37.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其有元素。本題應(yīng)使用i舶自增后置來(lái)實(shí)現(xiàn)。

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

39.77解析:在程序執(zhí)行時(shí),static變量?jī)H初始化一次,下次使用時(shí)將使用上次保存的值。

40.88。8,8。解析:本題考查靜態(tài)局部變量值的特點(diǎn),請(qǐng)參考第10章有關(guān)習(xí)題的解析。

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

42.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個(gè)元素的地址,所以在四個(gè)選項(xiàng)中,選項(xiàng)B和C只能輸入一個(gè)數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。

43.B解析:本題主要考查結(jié)構(gòu)指針:p=&data,訪問(wèn)結(jié)構(gòu)體的成員,可以通過(guò)結(jié)構(gòu)變量訪問(wèn),即data.a,也可以用等價(jià)的指針形式:(*p).a和p->a來(lái)訪問(wèn)結(jié)構(gòu)體變量中的成員。

44.D解析:構(gòu)造類(lèi)型數(shù)據(jù)是由基本類(lèi)型數(shù)據(jù)按一定規(guī)則組成的。C語(yǔ)言中的構(gòu)造類(lèi)型數(shù)據(jù)只有3種,它們是數(shù)組類(lèi)型、結(jié)構(gòu)體類(lèi)型和共用體類(lèi)型。故應(yīng)該選擇D。

45.C解析:int型、float型、double型的數(shù)據(jù)可以混合,要先轉(zhuǎn)換成同一類(lèi)型再運(yùn)算。10+‘a(chǎn)’運(yùn)算后值的類(lèi)型為int型,i*f運(yùn)算后值的類(lèi)型為double型,最后表達(dá)式值的類(lèi)型為double型。

46.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來(lái)的值,即k的值沒(méi)有改變。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒(méi)有變化,所以這個(gè)表達(dá)式和本題中表達(dá)式等價(jià);選項(xiàng)B中先n加1,然后將n加1后的值賦給k,k變化了比原來(lái)的值大1,所以這個(gè)表達(dá)式和本題中表達(dá)式不等價(jià);選項(xiàng)C中先計(jì)算表達(dá)式左邊的表達(dá)式++n的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個(gè)表達(dá)式和本題中的表達(dá)式不等價(jià);選項(xiàng)D中表達(dá)式展開(kāi)為k=k/(n+1),k的值發(fā)生了變化,所以這個(gè)表達(dá)式和本題中的表達(dá)式不等價(jià).所以4個(gè)選項(xiàng)中A正確。

47.B解析:x是長(zhǎng)整型變量,因此其輸出格式字符應(yīng)為“%1d”,所以正確答案為選項(xiàng)B。

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

49.B解析:本題中,表達(dá)式將5個(gè)初值分別賦給a[0]至a[4],系統(tǒng)自動(dòng)給后面的元素a[5]至a[9]賦0。

50.A解析:C語(yǔ)言中[]比*優(yōu)先級(jí)高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個(gè)元素,然后再與line前面的“*”結(jié)合,表示此數(shù)組是一個(gè)指針數(shù)組,每個(gè)數(shù)組元素都是一個(gè)基類(lèi)型為char的指針變量。

51.D解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。

52.C解析:sizeof(x)是一個(gè)標(biāo)準(zhǔn)C函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了一個(gè)共用體,共用體變量在內(nèi)存中所占的長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。

53.B解析:本題考查循環(huán)語(yǔ)句的嵌套以及條件的判斷問(wèn)題。在程序中,內(nèi)層循環(huán)判斷條件為'\ue008j<=i\ue009',而j的初值為3,故當(dāng)i的值為1和2時(shí),內(nèi)層循環(huán)體都不會(huì)被執(zhí)行。只有當(dāng)i和j都等于3時(shí)才會(huì)執(zhí)行一次。m的值為55對(duì)3取模,計(jì)算結(jié)果為1。

54.A本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。\n在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來(lái)確定的。故本題答案為A。

55.C解析:switch后的括號(hào)中只能是整型或字符型表達(dá)式,選項(xiàng)A中使用的是浮點(diǎn)型變量x,故不正確。選項(xiàng)B在switch的括號(hào)后面多了一個(gè)分號(hào),故也不正確。switch的case標(biāo)號(hào)后只能是常量或常量表達(dá)式,而不能是變量,所以選項(xiàng)D也不正確。故應(yīng)該選擇C。

56.C解析:C語(yǔ)言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒(méi)有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。

57.D

58.C解析:這是一道考查fread函數(shù)的題。buf是一個(gè)指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。

59.A解析:在程序語(yǔ)句中,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語(yǔ)句,輸出1,此時(shí)k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時(shí),k自減1變?yōu)?,為假,退出while循環(huán)語(yǔ)句。所以程序的最后結(jié)果為1。

60.C

61.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個(gè)運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b=00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010-00000011=00000001,即1。

62.A

63.A

64.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素問(wèn)彼此結(jié)合

的緊密程度,所以c與D錯(cuò)誤。

65.A

66.A解析:自增運(yùn)算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值

溫馨提示

  • 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)論