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

下載本文檔

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

文檔簡介

2021-2022年浙江省舟山市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)的存儲結構是指______。

A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結構在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)

2.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的運行結果是()。

A.1B.41C.2D.331

3.設有定義:“inta=1,b=2,C=3;”,以下語句中執(zhí)行效果與其他三個不同的是()。

A.if(a>b)c=a,a=b,b=C;

B.if(a>b){c=a,a=b,b=C;}

C.if(a>b)c=a;a=b;b=C;

D.if(a>b){c=a;a=b.b=C;)

4.設散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個結點:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關鍵字為49的結點地址是_____。

A.8B.3C.5D.9

5.高度為h的滿二叉樹的結點數(shù)是________個。

A.log2h+1B.2h+1C.2h-1D.2h-1

6.以下敘述中錯誤的是()。

A.將函數(shù)內(nèi)的局部變量說明為static存儲類是為了限制其他編譯單位的引用

B.—個變量作用域的開始位置完全取決于變量定義語句的位置

C.全局變量可以在函數(shù)以外的任何部位進行定義

D.局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不能將局部變量的運算結果保存至下一次調(diào)用

7.插入和刪除只能在一端進行線性表,稱為()。

A.隊列B.循環(huán)隊列C.棧D.循環(huán)棧

8.假定a為一個整型數(shù)組名,則元素a[4]的字節(jié)地址為()。

A.a+4B.a+8C.a+16D.a+32

9.設有如下定義和語句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的數(shù)據(jù)為58192765190,其中第1個數(shù)據(jù)代表的是它后面數(shù)據(jù)的個數(shù)。若文件已正確打開,則以下程序段中能將文件的最后5個數(shù)據(jù)依次正確讀入數(shù)組data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

10.以下敘述中錯誤的是(

)。A.函數(shù)形參的值也可以傳回給對應的實參

B.函數(shù)調(diào)用可以作為一個獨立的語句存在

C.若函數(shù)有返回值,必須通過r;mm語句返回

D.C程序必須由一個或一個以上的函數(shù)組成

11.

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

A.宏替換不占用程序的運行時間

B.預處理命令行必須位于源文件的開頭

C.在源文件的一行上可以有多條預處理命令

D.宏名必須用大寫字母表示

13.以下程序執(zhí)行后sum的值是()。

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

14.以下說法正確的是()。

A.數(shù)據(jù)項是數(shù)據(jù)的基本單位

B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位

C.數(shù)據(jù)結構是帶結構的數(shù)據(jù)項的集合

D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結構

15.

16.以下敘述正確的是

A.continue語句的作用是結束整個循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能使用goto語句

17.將一棵有100個結點的完全二叉樹從上到下,從左到右依次對結點進行編號,根結點的編號為1,則編號為49的結點的左孩子的編號為______。

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

18.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉換為對應小寫字母的語句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

19.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項中錯誤的是

A.x++;B.y++;C.c++;D.D++;

20.以下選項中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

二、2.填空題(20題)21.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda,請?zhí)羁铡?/p>

#include<string.h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=();

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(t==0)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

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

}

22.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結構是______。

23.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

24.以下程序用于判斷a、b、c能否構成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。

請?zhí)羁铡?/p>

main()

{floata,b,c;

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

if(【】)printf("YES\n");/*a、b、c能構成三角形*/

elseprintf("NO\n");/*a、b、c不能構成三角形*/

}

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

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

26.若有以下程序

main()

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

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf("%d%d%dln",a,b,c);

}

執(zhí)行后輸出結果為______。

27.有以下程序

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

30.與十進制數(shù)101等值的二進制數(shù)為【】。

31.以下程序的運行結果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

32.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

33.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

34.下列程序的運行結果是______。

#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.測試用例包括輸入值集和【】值集。

36.數(shù)據(jù)庫三級模式體系結構的劃分,有利于保持數(shù)據(jù)庫的【】。

37.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

ptintf("%d\n",D);

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

38.軟件結構是以【】為基礎而組成的一種控制層次結構。

39.與結構化需求分析方法相對應的是【】方法。

40.下面程序的運行結果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

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

42.以下各組選項中,均能正確定義二維實型數(shù)組a的選項是()

A.floata[3][4];floata[][4];floata[3][]={{1},{0}};

B.floata(3,4);floata[3][4];floata[][]={{0},{0}};

C.floata[3][4]staticfloata[][4]={{0},{0}};

D.floata[3][4];floata[3][];

43.fwrite函數(shù)的一般調(diào)用形式是()

A.fwrite(buffer,count,fp,size);

B.fwrite(fp,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

44.下列程序的輸出結果是()。point(char*pt);main(){charb[4]={'a','c','s','f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}

A.sB.cC.fD.a

45.下列判斷正確的是()。

A.chara="ABCD";等價于char*a;*a="ABCD";

B.charstr[10]=ABCD"};等價于charstr[10];str[]={"ABCD"};

C.char*s="ABCD";等價于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD";等價于charc[5]=d[5]="ABCD";

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

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

47.以下不能定義為用戶標識符的是()。

A.scanfB.VoidC.3comD.int

48.有以下程序:voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序運行后的輸出結果是()。

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

49.以下合法的字符型常量是

A.'\x13'B.'\081'C.'65'D.\n

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

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

B.一個文件指針,指向要讀的文件

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

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

51.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)&&(c1<=z)

C.('a'>=c1||('z'<=c1)

D.(c1>='a')&&(c1<='z')

52.在下列敘述中,正確的一條是______。

A.對while循環(huán)、do-while循環(huán)和for循環(huán),可以用continue語句跳出循環(huán)

B.表達式1+2<<3和sizeof(3.8)的結果分別為24和8

C.函數(shù)fputc(c,stdout)與putchar(c)的結果相同

D.在有參函數(shù)中,定義函數(shù)中指定的形參變量在程序一開始執(zhí)行時便分配內(nèi)存單元

53.有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結糶是()。

A.741B.963C.852D.875421

54.下列說法正確的是()。

A.auto和register將聲明的對象說明為自動存儲類對象,這些對象可用在函數(shù)中或函數(shù)外

B.將變量其定義為static類型,則其初值默認為隨機值

C.typedef說明符并不會為對象預留存留空間

D.如果一個對象被聲明為register,則塒它應用一元運算符&,意征取得其存儲的地址

55.若有下列定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

56.軟盤處于寫保護狀態(tài)時,其中記錄的信息______。

A.不可能丟失

B.不能被擦除,但能追加新的信息

C.不能通過寫磁盤操作被更新

D.不能以常規(guī)方式擦除,但可以通過操作系統(tǒng)的格式化功能擦除

57.若各選項中所用變量已正確定義,fun()函數(shù)中通過return語句返回一個函數(shù)值,下列選項中錯誤的程序是()。

A.main()……x=fun(2,10);……}floatfun(inta,intb){……}

B.floatfun(inta,intb){……}main(){……x=fun(i,j);……}

C.floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}

D.main(){floatfun(intI,intj);……x=fun(i,j);……}floatfun(inta,intB){……}

58.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

{inta[5]={1,2,3,4,5},i;

f(a);

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

}

程序運行后的輸出結果是

A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,

59.數(shù)據(jù)庫設計的根本目標是要解決()。

A.數(shù)據(jù)共享問題B.數(shù)據(jù)安全問題C.大量數(shù)據(jù)存儲問題D.簡化數(shù)據(jù)維護

60.若有以下定義和語句;doubler=99,*p=7;*p=r;則以下正確的敘述是()

A.兩處的*p含義相同,都說明給指針變量P賦值3

B.在“doubler=99,*p=7;*p=r;”中,把r的地址賦給了p所指的存儲單元

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

D.語句“*p=r;”把變量r的值放回P中

四、選擇題(20題)61.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

62.有三個關系R、S和T如下:

則由關系R和s得到關系T的操作是()。

A.自然連接B.差C.交D.并

63.有以下程序:

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

A.16B.1C.32D.0

64.以下關于typedef的敘述錯誤的是()。

A.用typedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代替

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通常可以增加程序的可讀性

65.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下敘述中正確的是()。A.此while語句將無限循環(huán)

B.getchar()不可以出現(xiàn)在while語句的條件表達式中

C.當執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行

D.當執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行

66.若有定義語句:

67.

68.

69.結構化程序設計的主要特征是()。

A)封裝和數(shù)據(jù)隱藏B)集成和重用

C)數(shù)據(jù)和處理數(shù)據(jù)的過程分離D)把數(shù)據(jù)和處理數(shù)據(jù)的過程看成一個整體

70.

71.在深度為7的滿二叉樹中,葉子結點的個數(shù)為______。A.32B.31C.64D.63

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

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

73.

74.

75.設有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

76.若有“doublea;”,則正確的輸入語句是()。A.A.scanf("%1f",a);

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

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

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

77.以下選項中表示一個合法的常量是(說明:符號口表示空格)()。

A.9口9口9B.0XabC.123E0.2D.2.7e

78.

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。例如,輸入opdye,則應輸出deopy。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}

六、程序設計題(1題)82.某學生的記錄由學號、8門課程成績和平均分組成,學號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù)fun,其功能是:求出該學生的平均分,并放入記錄的ave成員中。

例如,學生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應為78.875。注意:部分源程序在文件PROGl.C中。

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

參考答案

1.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構,也稱數(shù)據(jù)的物理結構。

2.Aelse總是與離它最近的if配對,所以當?shù)?個if語句的判斷條件不成立時,不再執(zhí)行第2個if語句以及與第2個if語句配對的else語句,而是直接執(zhí)行“x++”,輸出1。故本題答案為A選項。

3.C本題判斷結果。選項A中,如果(a>b),則執(zhí)行“c=a,a=b,b=c”這個語句(注意分號的位置,如果條件成立,將會執(zhí)行第一個分號前的語句),顯然if不成立,則a,b,C原樣輸出。選項B和選項D是同理,而選項C因為條件不成立,則不執(zhí)行第一條語句“c=a”,接著執(zhí)行“a=b”,將b的值賦給a,a的值為2;“b=C”,b的值為3,C的值原樣輸出,結果為2,3,3。

4.D

5.C

6.A將函數(shù)內(nèi)的局部變量說明為static存儲類,第1次調(diào)用該函數(shù)時才對其初始化,后續(xù)調(diào)用時使用上一次調(diào)用結束后的值;函數(shù)體內(nèi)的局部變量無論是否聲明為stat\x1fic,外部編譯單位都不能引用,選項A錯誤,其他選項正確。本題答案為A選項。

7.C

8.C

9.A由題意可知,文件abc.txt中存放了6個整數(shù)。其中第1個表示后續(xù)數(shù)據(jù)的個數(shù)。要將最后5個數(shù)據(jù)讀入數(shù)組data中,需要讀取數(shù)據(jù)的個數(shù)為5,所以首先調(diào)用fscanf函數(shù),將5讀入整型變量n中;接著通過for循環(huán),i分別取值0~n-1,調(diào)用fscanf函數(shù)將n個整數(shù)讀入data[0]~data[n-1]中。故本題答案為A選項。

10.A函數(shù)參數(shù)傳遞是個不可逆的過程,形參不會把值傳回實參,所以A)選項(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。

11.D

12.A宏替換是在編譯階段前的預處理階段,對程序中的宏完成文本替換,因此宏替換不占用運行時間,選項A正確;預處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項B錯誤;在源文件的一行上至多只能有一條預處理命令,選項C錯誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習慣,選項D錯誤。本題答案為A選項。

13.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時,變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個選項中選項C符合題意。

14.D

15.D

16.B解析:continue是結束本次循環(huán),直接進入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。

17.A

18.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應該是加上'a',選項A和C左側的表達式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。

19.D解析:C語言中++運算符的對象可以是整型、實型和字符型,但不可是常量,本題中D為常量。

20.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數(shù)點的數(shù)表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數(shù),因此選頂D是正確的。

21.str+strlen(str)-1str+strlen(str)-1解析:檢查一個字符串是否是回文,函數(shù)huiwen中定義了兩個字符指針,pl=str指向字符串頭,p2應該指向字符串尾,因此該處應該填入:str+strlen(str)-1或&str[strlen(str)-1]。

22.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設置了一個頭結點,因此在任何情況下,循環(huán)鏈表中至少有一個結點存在,從而使空表與非空表的運算統(tǒng)一。

23.維護維護

24.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達式中,如果要同時滿足幾個條件可以使用邏輯與運算符“&&”,故本題的答案應該為:a+b>c&&a+c>b&&b+c>a或其他等價形式。

25.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為\'a\',執(zhí)行一次循環(huán)后變?yōu)閈'c\',之后再變成\'e\',當其變?yōu)閈'g\'時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達式'i-\'a\'+\ue008\'A\'\ue009'即表示輸出i對應的大寫字母,結果為ACE。

26.503503解析:此處需注意的是:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復合語句。先判斷表達式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結果a的值為5,c的值為3,所以最后輸出的結果為5、0和3。

27.-4-4解析:if…else構造了一種二路分支選擇,是一種最基本的選擇結構,if(條件)S1(if分結構)elseS2(else分結構),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結構(S1);否則(不成立,值為0),就執(zhí)行else分結構(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。

28.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。

29.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。

30.1100101

31.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則為b+1的值為整個表達式的值,(應注意后面的加1)。

32.*(p+5)或p[5]*(p+5)或p[5]

33.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結構,從而大大減少了程序中的冗余,提高軟件的可重用性。

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

35.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應的預期輸出結果(輸出值集)兩部分組成。

36.數(shù)據(jù)獨立性數(shù)據(jù)獨立性解析:數(shù)據(jù)庫的三級模式體系結構把數(shù)據(jù)的組織管理工作進行了劃分,把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的具體表示方式與存儲方式,保證了數(shù)據(jù)的獨立性。

37.99解析:在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個參數(shù)為f(3,4)的返回值,函數(shù)f(9,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9;所以輸出9。

38.模塊模塊

39.結構化設計結構化設計解析:與結構化需求分析方法相對應的是結構化設計方法。結構化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術。

40.x=11x=11解析:在對無符號數(shù)的右移是高位補0。

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

42.C

43.D

44.C解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當執(zhí)行函數(shù)point時,剛開始指針p指向“a”,經(jīng)過+3操作后,指針p指向“f”,所以最后的輸出結果是f。

45.D解析:a='ABCD'書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。

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

47.D解析:標識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結構名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標號等用途的字符序列。標識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標識符不能與C關鍵字相同,并區(qū)分大小寫。選項D)錯誤,因為int是C語言中的關鍵字。

48.D解析:程序中定義了兩個字符型變量'a'和'b',并分別賦初值為'A'和'a',然后調(diào)用函數(shù)fun(),將b的地址和a值作為實參。在函數(shù)fun()中第一個參數(shù)是傳遞地址,故在調(diào)用函數(shù)fun()中對參數(shù)做的修改(即將b值加一)將影響字符型變量的值(變?yōu)閎),函數(shù)fun()第二個參數(shù)是傳值的,故在調(diào)用函數(shù)fun()對第二個參數(shù)做的修改不影響字符型變量a(即'a'的值仍為'A'),所以在fun()函數(shù)中輸出的d為b,B,接著在主函數(shù)中,輸出a,b,然后退出fun()函數(shù),接著執(zhí)行后面的語句,輸出A,b。所以最后輸出為b,B,A,b。4個選項中D正確。

49.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd'表示1到3位8進制數(shù)所代表的字符;形式“\\xhh'表示1到2位16進制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個字符常量;\'\\081\'用8進制數(shù)所代表的字符,但形式不正確,因為8進制數(shù)所代表的字符中不會出現(xiàn)數(shù)字“8”;\'5\'不是一個字符,而是一個十進制數(shù)字;\'\\n\'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。

50.C本題主要考查成塊讀函數(shù)fread。在C語言中,提供了一種成塊的讀寫方式來操作文件,使其數(shù)組或結構體等類型可以進行一次性讀寫。成塊讀文件函數(shù)的調(diào)用形式為:

intfread(void*buf,intsize,intcount,FILE*stream)

fread()函數(shù)的意思是從stream指向的流文件讀取count(字段數(shù))個字段,每個字段為size(字段長度)個字符長,并把它們放到buf(緩沖區(qū))指向的字符數(shù)組中,然后進行讀取操作。fread()函數(shù)返回實際已讀取的字段數(shù)。

從上面的分析我們可以知道,參數(shù)buf是一個無返回類型的指針,指向要讀入數(shù)據(jù)的存放地址,它其實是一個緩沖區(qū)。因此本題正確的答案選C。

51.D

52.C解析:選項A錯誤,continue語句只能結束本次循環(huán),不能結束整個循環(huán)。要跳出循環(huán)可用break語句。選項B錯誤,表達式1+2<<3等價于(1+2)<<3,即0000000000000011向右移3位,移后變?yōu)?000000000000000,即0。選項C正確,函數(shù)fputc的操作對象是文件,而putchar是直接向標準輸出設備輸出字符。標準輸出設備是一個特殊文件,即設備文件,文件型指針指向標準輸出設備,因而功能相同。選項D錯誤,在定義函數(shù)中指定的形參變量,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。

53.C解析:y的初值為9,所以在for循環(huán)中,當y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出語句,輸出表達式--y的值。因為自減符號在y的前面,所以首先y自減1,然后再輸出y的值,故輸出結果為852。

54.C解析:①這種聲明也具有定義的作用,并將預留存儲空間。register說明的聲明等價于auto說明的聲明,所不同的是,register暗示了聲明的對象將被頻繁地訪問,將盡可能存儲在寄存器中。如果一個對象被聲明為register,則將不能對它應用一元運算符&,聲明為register但實際按照auto類型處理的對象的地址進行計算是非法的。②static將聲明的對象說明為靜態(tài)存儲類。這種對象可以用在函數(shù)內(nèi)部或者函數(shù)外部。在函數(shù)內(nèi)部,該說明符將引起存儲空間的分配,具有定義的作用。在函數(shù)外部,該說明符將引起聲明對象為

55.D解析:本題考查如何引用數(shù)組元素的地址。

選項A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用錯誤;選項B)中,*a+1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

56.C

57.A解析:C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時除外)。在選項A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項B)、C)中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的:在選項D)中,在主調(diào)函數(shù)中先對于函數(shù)floatfun(inti,intj)進行了定義,然后進行調(diào)用。

58.B解析:調(diào)用函數(shù)f()時,將數(shù)組a的地址傳遞給了指針q,

溫馨提示

  • 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

提交評論