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

下載本文檔

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

文檔簡介

2021-2022年湖北省宜昌市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序

main()

{

intn[3],i,j;

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

n[i]=0;

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

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

n[j]=n[i]+1;

printf("%d\n",n[1]);

}

程序運行后的輸出結果是A.A.2

B.1

C.0

D.3

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

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

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

A.構成C程序的基本單位是函數(shù)

B.可以在一個函數(shù)中定義另一個函數(shù)

C.main函數(shù)必須放在其他函數(shù)之前

D.C函數(shù)定義的格式是K&R格式

4.在數(shù)據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數(shù)據庫系統(tǒng)階段。其中數(shù)據獨立性最高的階段是()。

A.數(shù)據庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據項管理

5.

6.以下選項中,值為1的表達式是()。

A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’

7.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

8.一個函數(shù)返回值的類型是由()決定的。

A.return語句中表達式的類型B.定義函數(shù)時指定的函數(shù)類型C.在調用函數(shù)時臨時指定D.調用函數(shù)的主調函數(shù)的類型

9.設a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()

A.'a'&&'b'

B.a<=b

C.a‖b+c&&b-c

D.!(a-b)&&(!c‖1)

10.棧通常采用的兩種存儲結構是A.A.線性存儲結構和鏈表存儲結構

B.散列方式和索引方式

C.鏈表存儲結構和數(shù)組

D.線性存儲結構和非線性存儲結構

11.就平均查找速度而言,下列查找速度從慢至快的關系是()

A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半

12.若有下列定義(設int類型變量占2個字節(jié)):

inti=8;

則下列語句:

printf("i=%08d",i);

輸出的結果是()。A.A.i=8B.i=00000008C.i=08D.8

13.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

14.有下列程序:程序執(zhí)行后的輸出結果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

15.若有"doublea;",則正確的輸入語句是()。

A.scanf("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

16.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結果是()。A.xyyxB.yyyyC.yyxxD.yxyx

17.在下面的二維數(shù)組定義中,正確的是()。

A.inta[5][];

B.inta[][5];

C.inta[][3]={{1,3,5},{2}};

D.inta[](10);

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

A.在switch語句中,不一定使用break語句

B.break語句只能用于switch語句

C.break語句必須與switch語句中的case配對使用

D.在switch語句中必須使用default

19.若某表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點,則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結點的雙循環(huán)鏈表

20.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結果是()。

A.8,6B.8,3C.6,4D.7,4

二、2.填空題(20題)21.有以下程序:

#definef(x)x*x

main()

{inti;

i=f(4+4)/f(2+2);

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

}

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

22.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

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

if(s[i]!='c')

s[j]='\0';

puts(s);

}

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

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

intn='c';

switch(n++)

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

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

case'c':printf("morning");

case'd':printf("class");

}

25.【】是數(shù)據庫設計的核心。

26.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

27.下列軟件系統(tǒng)結構圖的寬度為[]。

28.數(shù)據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

29.有以下程序:

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

ptintf("%d%d\n",x,y);

}

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

30.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

31.若有如下程序:

#include"stdio.h"

main()

{chars[30];

Strcpy(&S[0],"adc");

Strcpy(&S[1],"def");

strcpy(&S[2],"gh");;

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

則程序運行后的輸出結果是【】。

32.一名學生只能住一間宿舍,一間宿舍可住多名學生,則實體“宿舍”與實體“學生”的聯(lián)系屬于()的聯(lián)系。

33.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

34.算法的復雜度主要包括時間復雜度和______復雜度。

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

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

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

printf(“%d\n”,s);

}

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

39.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。

40.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

三、1.選擇題(20題)41.設a=5,bc6,c=7,d=8,m=2,n=2,執(zhí)行(m=a>b)&&(n=c>b)后n的值為______。

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

42.執(zhí)行以下程序段()x=-1;do{x=x*x;}while(!x);

A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

43.有以下定義:inta[4][3]={1,2,3,4,5,6,7,8,9.10,11,12};int(*ptr)[3]=a,*p=a[0];則下列能夠正確表示數(shù)組元素a[1][2]的表達式是()。

A.*((*ptr+1}+2)B.*(*(p+5))C.(*ptr+1)+2D.*(*(a+1)+2)

44.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數(shù)據流C.控制流D.調用關系

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

A.C語言編譯時不檢查語法B.C語言的子程序有過程和函數(shù)兩種C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調用

46.以下程序的輸出結果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

A.0B.29C.31D.無定值

47.若有語句:char*line[5];,以下敘述中正確的是

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

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

C.定義line是一個指針數(shù)組,語句中的。號稱為間址運算符

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

48.對于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運行時依次輸入abcd、abba和abc三個字符串,則輸出結果為______。

A.abcdB.abbaC.abcD.abca

49.已有定義inta=3;和輸出語句printf("%8x",A);以下正確的敘述是()。

A.整型變量的輸出格式符只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類犁的數(shù)據

C.%x是格式符的一種,其變量的值按十六進制數(shù)輸出,但%08x是錯誤的

D.%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

50.若fp是指向某文件的指針,且已讀到此文件末尾,則庫函數(shù)feof(fp)的返回值是()

A.EOFB.0C.非零值D.NULL

51.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是

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

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

C.a,97,12k=12

D.a,97,k=12

52.有以下程序:structSTU{charname[10];intnum;intscore;};main(){structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550),{'Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[i]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}執(zhí)行后輸出結果是()。

A.550550B.680680C.580550D.580680

53.現(xiàn)有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向一個鏈表中連續(xù)的三個節(jié)點。structnode{chardata;structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指節(jié)點交換前后位置,同時要保持鏈表的連續(xù),以下不能完成此操作的語句是()。

A.q->next=r->next;p->next=r;r->next=q;

B.p->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;p->next=r;

D.r->next=q;p->next=r;q->next=r->next;

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

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

55.有以下函數(shù)定義:

voidfun(intn,doublex){……}

若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調用語句是A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

56.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運行后的輸出結果是______。

A.0B.70C.35D.1

57.下面程序的輸出結果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

58.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(ar+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。

A.xyzabcABCB.zabeABCC.yzabcABCD.xyabcABC

59.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在執(zhí)行了c=&b;b=&a;語句后,表達式**c的值是()。

A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址

60.下面程序段的輸出結果是______。char*s="abcde";s+=2;printf("%d",s);

A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結果

四、選擇題(20題)61.

62.有以下程序:

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

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

63.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch—getchar)!=N)printf("%c",ch);

B.while(oh=getchar!=N)printf("%c",ch);

C.while(ch=getchar==N)printf("%c",ch);

D.while((ch—getchar)==N)printf("%c",ch);

64.

65.

66.

67.C語言中,組成數(shù)據文件的成分是()。A.A.記錄

B.數(shù)據行

C.數(shù)據塊

D.字符(字節(jié))序列

68.下列定義數(shù)組的語句中,正確的是()。

69.以下語句中存在語法錯誤的是()。

70.下列程序的輸出結果是()。

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

71.

72.

73.

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

A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

75.沒有以下語句

則Z的二進制值是()。

A.00010100B.00011011C.00011100D.00011000

76.

77.

78.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據結構D.程序、數(shù)據與相關文檔的完整集合

79.

80.軟件設計中衡量模塊獨立性的度量標準是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內聚性和耦合性D.激活機制和控制方法

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:計算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,當x的值為1,y的值為2,z的值為3時,函數(shù)值為2.O0。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。

例如,字符串中的內容為“****A*BC*DEF*G****”,刪除后,字符串中的內容應當是“ABCDEFG”。

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

請勿改動maini)函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(chara)

{

voidmain

{

chars[81];

print{("Enterastring:\n");

gets(s):

fun(S);

printf("Thestringafterdeleted:\n");

puts(s);

}

參考答案

1.D初始時定義一個大小為3個一維整型數(shù)組,第一個for語句是對數(shù)組賦初值,每個值都為0。后面是一個for語句的嵌套調用,外層的循環(huán)變量i的取值為[0,2],內層循環(huán)變量的取值范圍為[0,2]。最初外層的循環(huán)變量i=0,內層的循環(huán)變量j取值從0到2,計算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外層for語句的循環(huán)變量為1時,內層的循環(huán)變量j取值從0到2,計算n[j]=n[1]+1,得到n[0]=2,n[1]=2,n[2]=2。外層for語句的循環(huán)變量為2時,內層的循環(huán)變量j取值從0到2,計算n[j]=n[2]+1,得到n[0]=3,n[1]=3,n[2]=3。最后的輸出結果為3。

2.A解析:數(shù)據流圖從數(shù)據傳遞和加工的角度,來刻畫數(shù)據流從輸入到輸出的移動變換過程。數(shù)據流圖中的主要圖形元素有:加工(轉換)、數(shù)據流、存儲文件(數(shù)據源)、源和潭。

3.A解析:本題考查C語言的綜合基礎知識。構成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

4.A在數(shù)據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數(shù)據庫系統(tǒng)階段。其中數(shù)據獨立性最高的階段是數(shù)據庫系統(tǒng)這一階段。數(shù)據庫系統(tǒng)階段用數(shù)據模型來表示復雜的數(shù)據,有較高的數(shù)據獨立性。數(shù)據庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據庫,也可以用程序方式來操作。數(shù)據庫管理系統(tǒng)提供了數(shù)據控制功能。

5.A

6.B字符‘\\0’為空值,其ASCII值為0,所以B選項的值為1。字符‘0’的ASCII值為48,所以A、C、D選項的值均不為1。故本題答案為B選項。

7.D

8.B

9.D

10.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結構中的應用。

11.B

12.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”表示在指定數(shù)據輸出寬度的同時,在數(shù)據前面的多余空格處加“0”;“8”表示指定數(shù)據的輸出寬度為8位。

13.D

14.A程序定義結構體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對它初始化,調用函數(shù)f。將局部變量c的各個成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時a、b的各個成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項。

15.D解析:函數(shù)scanf()的調用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。

16.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結束循環(huán)。所以B正確。

17.C

18.Aswitch語句中不一定使用break語句,選項A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項B、C錯誤;switch語句不一定需要使用default語句,選項D錯誤。本題答案為A選項。

19.D

20.C解析:本題考查的知識點是運算符的優(yōu)先級.在復合賦值語句中,應該由右向左依次賦值,在表達式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。

21.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。

22.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。

23.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。

24.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結果為morningclass。

25.數(shù)據模型數(shù)據模型

26.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。

27.33解析:軟件系統(tǒng)結構圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

28.存儲結構

29.8484解析:“值傳遞”指實參將值傳遞給形參后,實參與形參再無聯(lián)系。也就是說對行參的改變將不影響實參;地址傳遞是指地址或數(shù)組名作為形參時的參數(shù)傳遞,這種情況下對形參的改變將對實參產生影響。函數(shù)f(y,*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調用該函數(shù)后,作為實參y的值將不改變,而實參x的值將改變,故最后輸出的y值為4,而x的值為8。

30.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內容,所以空白處應當填入'filea.dat','r'。

31.adghadgh解析:函數(shù)strcpy是字符串復制函數(shù)。第一次將'adc'復制到以&s[0]為起始地址的存儲空間中,第二次將'def'復制到以&s[1]為起始地址的存儲空間中,“dc”將被覆蓋,變?yōu)椤癮def”,第三次將“gh”復制到以&s[2]為起始地址的存儲空間中,“ef”將被覆蓋,變?yōu)椤癮dgh”。

32.一對多一對多解析:在現(xiàn)實世界中事物間的關聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實體集間的一定關系。兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有3種,分別是一對一,一對多和多對多,依據題意,一名學生只能住一間宿舍,一間宿舍可住多名學生,所以實體“宿舍”與實體“學生”的聯(lián)系屬于一對多的聯(lián)系。

33.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

34.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內存空間。

35.完整性控制完整性控制

36.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。

本題可按部就班地逐步運算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

37.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內,所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達式“3<3”不成立,循環(huán)結束。

38.abcabc解析:字符串的結束標記'\\0',當輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

39.2525解析:#NAME?

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

41.B解析:m=a>b的值為邏輯值0,n=c>b不被執(zhí)行,n的值仍為2。

42.A

43.C解析:本題定義了一個二維數(shù)組a,一個含有3個元素的指針數(shù)組ptr和一個指針變量p,并使指針數(shù)組和指針變量p指向數(shù)組a。

44.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據流程圖中表示數(shù)據流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調用關系。構成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

45.D解析:C語言相對其他高級語言來說,放寬了語法檢查,因此程序設計自由度大,但并不是不檢查語法,C語言的程序是由函數(shù)構成的。函數(shù)不能嵌套定義,但是可以嵌套調用。

46.C解析:函數(shù)fun的形參是簡單變量,main函數(shù)中調用fun時只是把實參的值傳遞給形參,形參的改變不影響實參,所以調用完函數(shù)fun后a的值不發(fā)生變化,即a=31。

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

48.B解析:本題自定義函數(shù)scmp()的作用是比較字符串s1和s2的大小,如果s1<s2,函數(shù)返回s1的值,否則返回s2的值。若運行時依次輸入abcd、abba和abc三個字符串,執(zhí)行strcpy(string,scmp(str[0],str[1]));后,string的值為abba,再執(zhí)行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷貝到字符串數(shù)組string中,所以本題輸出abba。

49.D解析:本題考查printf函數(shù)的格式。“%8x”表示以十六進制無符號形式輸出整掣數(shù)據。“8”表示指定輸出數(shù)據的寬度為8位。

50.C

51.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。

52.C解析:本題中首先定義了結構體類型STU,該結構體由一個長度為10的字符數(shù)組、兩個整型變量num和Score組成。在主函數(shù)中,定義了一個長度為5的結構體數(shù)組s并賦初值,一個指針數(shù)組p和一個指針變量t,接著將數(shù)組s中各元素的地址依次賦給指針數(shù)組p中的各成員。然后通過兩個for循環(huán)將數(shù)組p按Score的值從小到大的順序排列。因此最后輸出的p[1]->Score的值為550,而數(shù)組s[1].Score的值為580,所以,4個選項中選項C符合題意。

53.D解析:D中的操作將會丟失r后面的鏈表結構,不能保持鏈表的連續(xù)。

54.A解析:自增運算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。

55.C解析:選項A中應將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型一個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調用函數(shù)時,不應該再聲明其返回類型,故迭項D不正確.所以,4個選項中選項C符合題意。

56.C解析:位與運算是將兩個運算分量看作兩個二進制數(shù),然后對兩個二進制數(shù)的相應位進行與運算,若同時為1則結果相應位為1,否則結果相應位為0。因此,當兩個運算分量相同時,它們的相應位肯定也相同,即不同為1就同為0。所以得到的結果和運算分量也相同。所以,4個選項中選項C)符合題意。

57.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結果放在字符數(shù)組1中,函數(shù)調用后返回字符數(shù)組1的地址。本題定義了三個字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串數(shù)組p2接到字符串p1的后面,結果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。

58.D解析:strcat(p1,p2)將字符串abcABC防到了*p1所指向的存儲單元中:strcpy在本題將abcABC復制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

59.C解析:本題考查指向指針的指針。*c表示c間接指向的對象的地址,而**c是c間接指向的對象的值。在c*&b中,已經把b的地址存放在c里了,*c就指向了b的地

溫馨提示

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

評論

0/150

提交評論