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

下載本文檔

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

文檔簡介

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

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

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結果是A.A.1267B.1256C.1278D.1245

2.在一個被調用函數中,關于return語句使用的描述,()是錯誤的。

A.被調用函數中可以不用return語句

B.被調用函數中可以使用多個return語句

C.被調用函數中,如果有返回值,就一定要有return語句

D.被調用函數中,一個return語句可以返回多個值給調用函數

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

A.C語言編譯系統對標識符的長度沒有規定

B.C語言標識符的規定長度因系統而異

C.C語言規定標識符長度最多允許16個字符,超長報錯

D.C語言規定以下劃線開頭的標識符長度必須大于1

4.下述程序的輸出結果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}

A.9B.10C.12D.2

5.

6.下列存儲器中,存取速度最快的是()。

A.軟盤B.硬盤C.光盤D.內存

7.若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數組元素不正確的引用是

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

8.

9.對n個元素的數組進行(),其平均時間復雜度和最壞情況下都為O(nlogn)。

A.希爾排序B.快速排序C.堆排序D.選擇排序

10.相對于數據庫系統,文件系統的主要缺陷有數據關聯差、數據不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

11.能在O(1)時間內訪問線性表的第i個元素的結構是()

A.順序表B.單鏈表C.單向循環鏈表D.雙向鏈表

12.輸入序列為ABC,輸出為CBA時,經過的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

13.串的長度是指()。

A.串中所含不同字母的個數B.串中所含字符的個數C.串中所含不同字符的個數D.串中所含非空格字符的個數

14.以下關于算法的敘述中錯誤的是()。

A.算法可以用偽代碼、流程圖等多種形式來描述

B.一個正確的算法必須有輸入

C.一個正確的算法必須有輸出

D.用流程圖描述的算法可以用任何一種計算機高級語言編寫成程序代碼

15.已知:intx,y;doublez;則以下語句中錯誤的函數調用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

16.

17.已知shortint類型變量占用兩個字節,若有定義:shortintx[10]={0,2,4};,則數組x在內存中所占字節數是()。

A.3B.6C.10D.20

18.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是()。

A.scanfB.getcharC.getsD.getc

19.有以下程序:

運行時,若輸入123450<;回車>;,則輸出結果是()。

A.66656B.6566456C.66666D.6666656

20.設有二維數組A7×8,每個數據元素占8個字節存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,按行優先存放時,元素A3,4的地址為()。

A.1224B.1208C.1200D.1216

二、2.填空題(20題)21.若變量n中的值為24,則prnt函數共輸出【】行。

voidprnt(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if!(i%5))printf("\n");

}

printf("\n");

}

22.執行以下程序的輸出結果是()。

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k=N*N*5;printf(”%d\n",k);

}

23.以下程序的輸出是【】。

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

pfinff("%s\n",p1);

}

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

#definePOW(r)(r)*?

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

25.冒泡排序算法在最好的情況下的元素交換次數為【】。

26.以下程序通過函數指針p調用函數fun,請在填空欄內寫出定義變量p的語句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

27.數據庫技術的主要特點為數據的集成性、數據的高【】和低冗余性、數據獨立性和數據統一管理與控制。

28.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。

29.軟件開發環境是全面支持軟件開發全過程的______的集合。

30.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

31.語句:x++;、++x;、x=x+1;、x=1+x;,執行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

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

main()

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

d=(a>b>c);

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

}

33.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

34.下列程序的輸出結果是【】。

main()

{inti;

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

{if(i>4)

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

break;}

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

35.下列語句能循環______次。

ints=12;

while(s);

--s;

36.在面向對象方法中,類之間共享屬性和操作的機制稱為______。

37.函數fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

38.下面程序的輸出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

39.以下程序的運行結果是______。

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

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

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

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

}

三、1.選擇題(20題)41.下列程序的輸出結果是()。#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

A.5B.3C.7D.1

42.開發軟件時對提高開發人員工作效率至關重要的是()

A.操作系統的資源管理功能B.先進的軟件開發工具和環境C.程序人員的數量D.計算機的并行處理能力

43.若有以下定義和語句:ints[4][5],(*ps)[5];ps=s;則對s數組元數的正確引用形式是

A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

44.如下程序的輸出結果是

#include<stdio.h>

main()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

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

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

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

A.69825B.63825C.6385D.693825

45.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL

46.以下程序運行后,輸出結果為______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

47.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<12;a++){b+=a*2;a+=3;}printf("%d,%d\n",b,A);}程序運行后的輸出結果是()。

A.32,13B.46,10C.72,13D.72,10

48.數據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

49.下面程序的輸出結果是______。main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

50.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.算法執行過程中所需要的存儲空間

51.設有一共用體變量定義如下:uniondata{longw;floatx;inty;charz;};uniondatabeta;執行下列語句后,正確的共用體變量beta的值是()。beta.w=123456;beta.y=888;beta.x=3.1416;beta.z='x';

A.123456B.888C.3.1416D.'X'

52.串的長度是()。

A.串中不同字符的個數B.串中不同字母的個數C.串中所含字符的個數且字符個數大于0D.串中所含字符的個數

53.為了使模塊盡可能獨立,要求()。

A.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強

54.以下程序的輸出結果是()。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d%d%d\n"m,k,a,b);}

A.104B.103C.3D.4

55.假定當前盤符下有兩個如下文本文件:

文件名a1.txta2.txt

內容123#321#

則下面程序段執行后的結果為

#include"stdio.h"

voidfc(FILE*p)

{charc;

while((c=fgetc(p))!=′#′)putchar(c);}

main()

{FILE*fp;

fp=fopen("a1.txt","r");

fc(fp);

fclose(fp);

fp=fopen("a2.txt","r");

fc(fp);

fclose(fp);

putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

56.下列程序段的運行結果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}

A.67B.0C.字符'C'的地址D.字符'C'

57.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)printf("%d,",*p);}程序運行后的輸出結果是()。

A.1,2,3,4,5,6,7,8,9,0,

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

C.0,1,2,3,4,5,6,7,8,9,

D.1,1,1,1,1,1,1,1,1,1,

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

inta[5],*p=a;

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

59.若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\h",i);其輸出結果是()。

A.0,0B.0,1C.1,1D.程序進入無限循環

60.以下程序中,while循環的循環次數是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環,不能確定次數

四、選擇題(20題)61.

62.

63.

64.已知字符‘A’的ASCII代碼值是65,字符變量cl的值是‘A’,c2的值是‘D’。則執行語句printf(”%d,%d”,cl,c2—2);的輸出結果是()。

A.65,68B.A,68C.A,BD.65,66

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

A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數中,最好使用全局變量

C.外部變量可以在函數之間傳遞數據

D.自動變量實質上是一個函數內部的局部變量

66.在黑盒測試方法中,設計測試用例的主要根據是()。

A.程序外部功能B.程序內部邏輯C.程序數據結構D.程序流程圖

67.下列不屬于C語言關鍵字的是()。A.A.default

B.register

C.enum

D.external

68.

69.下列對隊列的敘述正確的是()。

A.隊列按“先進后出”原則組織數據

B.隊列屬于非線性表

C.隊列在隊尾刪除數據

D.隊列按“先進先出”原則組織數據

70.有以下程序:

#include<stdio.h>

main()

{inta=2,b;

b=a<<2;printf("%d\n",b);

}

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

A.2

B.4

C.6

D.8

71.有以下程序程序的運行結果是()。

72.下面的程序段運行后,輸出結果是()。

A.9B.0C.不確定值D.18

73.

74.

75.有以下程序:

程序的運行結果是()。

A.*7

B.*3*5

C.*5

D.*2*6

76.下列不可用于C語言用戶標識符的是A.A.j2_KEY

B.char

C._g_

D.Double

77.

78.

79.

80.若有以下的說明和語句,則在執行for語句后,’(*(pt+1)+2)表示的數組元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];A.A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

五、程序改錯題(1題)81.下列給定程序中,proc()函數的功能是:根據形參m,計算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應輸出2.928968。請修改程序中的錯誤,使它能計算出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編寫一個函數intproc(int*s,intt,int*k),用來求出數組的最大元素在數組中的下標并存放在k所指的存儲單元中。例如,輸入如下整數:876675896101999401980431451777則輸出結果為4,999。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf(“%c%c\\n”,c5,c6)輸出45。

2.D

3.B對于標識符的長度(即一個標識符允許的字符個數),C語言編譯系統是有規定的,即標識符的前若干個字符有效,超過的字符將不被識別。不同的C語言編譯系統所規定的標識符有效長度是不同的。故本題答案為B選項。

4.A

5.B

6.D\nD【解析】存儲器中.存取速度最快的是內存。

\n

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

8.D

9.C

10.D解析:文件系統所管理的數據文件基本上是分散的、相互獨立的,因此相對于數據庫系統,以此為基礎的數據處理存在3個缺點,數據冗余大、數據的不一致性、程序與數據的相互依賴(簡稱為數據依賴)。注意:文件系統和數據庫系統各自的特點,人工管理階段及數據庫系統三代的特點。

11.A

12.B

13.B解析::串的長度定義為串中字符的數目。所以B)為正確答案。C)答案不正確,因為串中可以含有相同的字符;A)答案不正確,因為串中可能含有相同的字母,而且也可能含有數字等其他非字母字符;D)答案不正確,因為空格也是一種字符,在計算長度時理應將其計算在內。

14.B【答案】B

【知識點】算法描述

【解析】一個算法應該有0個或多個輸入,但是必須有一個或多個輸出。

15.BB項的格式應該為scanf("%1d*%d%1f",&x,&y,&z);

16.D

17.D

18.C解析:C語言提供了許多輸入函數,其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數可以輸入一整行作為一個字符串,其中也包括空格字符,故應該選擇C。

19.Bswitch語句的執行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個e·*后面的常量表達式的值相等,就執行此ca*后面的語句,執行后遇break語句就退出switch語句;若圓括號中表達式的值與所有ca$e后面的常量表達式都不等,則執行default后面前語句。然后退出。所以輸入l時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打印6。

20.A

21.55解析:本題的關鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時,則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數共輸出5行,最后一行有4個數。

22.5555解析:本題考查的重點是對宏定義的理解。#define指令定義一個標識符和一個串,編譯程序在對C源程序處理時.發現該標識符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。

23.HowdoessheHowdoesshe解析:strcpy(strl,sl):字符串拷貝函數,作用是將字符串sl拷貝到字符數組strl中去。strlen(str):測試字符串str的長度,函數的值為字符串中實際長度,不包括‘\\0’在內。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2'esshe')相當于strcpy(strl+6'esshe');,因此可得答案為Howdoesshe。

24.解析:本題考查帶參數的宏的定義及相關運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

25.0

26.void(*p)();void(*p)();解析:要定義p為指向函數的指針變量,需寫成void(*p)();,注意*p兩側的括弧不可以省略,表示P先與*結合,是指針變量,再與后面的()結合,表示此指針變量指向函數,這個函數無返回值(同fun()函數)。

27.共享性共享性解析:數據庫技術的主要特點有以下幾個方面:數據的集成性,數據的高共享性與低冗余性,數據的獨立性,數據統一管理與控制。

28.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

29.軟件工具軟件工具解析:軟件開發環境是各類軟件開發工具的集合體。

30.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機制和區別。

31.x+=1;

32.00解析:本題的關鍵在于對變量c的賦值運算:

d=(a>b>c)

d=(5>4>3)

先算5>4,為真,得1,即:d=(1>3),此時1>3,為假,得0。

33.黑盒軟件測試的方法有三種:動態測試、靜態測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內部是如何實現的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據程序的功能說明來設計的。

34.1351\r\n3\r\n5解析:本題考查了for循環語句的使用,break語句用在本題中是結束for循環直接跳出循環體外。當i=1時,因為if語句條件不滿足,所以直接執行printf('%d\\n',i++);輸出1,同時i自加1;執行第二次for循環時,i:3;同樣的if語句條件不滿足,所以直接執行printf('%d\\n',i++);輸出3,同時i自加1執行第三次for循環時,i=5,訌語句條件滿足,所以執行printf('%d\\n',i)輸出5,然后break語句跳出了for循環。

35.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執行后面的語句,只是執行空語句,所以s=12保持不變,因此,沒有條件限制的能循環無限次(即死循環)。

36.繼承繼承

37.字符串a和b的長度之和字符串a和b的長度之和解析:本題首先通過第一個while循環計算字符串a的長度,再通過第二個循環,將字符串a和b相連,最后返回連接后的總長度。

38.DDBBCCDDBBCC解析:C語言對枚舉的定義規定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數中,要打印的數組元素是aa[3]、aa[1]、aa[2],因此最后的打印結果應當為“DDBBCC”。

39.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數fread和fwrite的用法。fwrite函數將數組a的前5個元素輸出到文件fp中兩次,共10個字節,再調用fread函數從文件fp中讀取這10個字節的數據到數組a中,此時數組a的內容就變為{1,2,3,0,0,1,2,3,0,0},最后的輸出結果為“1,2,3,0,0,1,2,3,0,0”。

40.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

41.A解析:本題考查函數的遞歸調用。在函數遞歸調用時,fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,暈后的計算結果為5。

42.B解析:軟件工程鼓勵研制和采用各種先進的軟件開發方法、工具和環境。工具和環境的使用又進一步提高了軟件的開發效率、維護效率和軟件質量。

43.C解析:本題首先定義了一個4行5列的數組s,又定義了一個指向由5個元素組成的一維數組的指針變量ps,通過賦值讓ps指向了數組s的首地址。此時數組元素s[i)[j]的地址為“*(ps+i)+j”,數組元素s[i][j]可表示為*(*(pe+i)+j);選項B表示的是數組元素a[3][0]的地址;選項D表示的是數組元素s[1][3]的地址;選項A中“ps+1”為指向下一行(第二行)的地址;選項C中ps[0][2]無條件等價于“*(ps[0]+2)”又無條件等價于“*(*(pe+0)+2)”,即是數組元素s[0][2]。

44.C解析:考查通過指針引用字符串數組中的元素。通過行指針p來實現數組元素的引用。用格式說明符%s進行整串輸入與輸出。

45.B(27)B)解析:函數feof的功能是:測試fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則函數返回非0值,否則返回0,表示文件尚未結束。

46.C解析:s是—個含有兩個元素的指針數組,pp是—個指向指針變量的指針,s[0]是指向二維數組a行下標為0的元素的首地址,即a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[o]的地址。*pp=s[1][1])后,a[0][0]的值將被賦值為a[1][1]的值,執行p*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0])所指向的數據,即時a[0][0]。

47.A

48.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統,對數據的存儲結構和存取方法進行設計,從而實現從邏輯結構到物理結構的轉換。從系統開發的角度來看,結構特性設計和行為特性-設計是數據庫應用系統所具有的兩個特性。結構特性的設計,設計各級數據庫模式(靜態特性):行為特性的設計,改變實體及其特性,決定數據庫系統的功能(動態特性)。

49.A解析:p指向a[0],則p+9指向a[9],*(p+9)=a[9]=0。

50.D【解析】算法的空間復雜度是指執行這個算法所需要的內存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數據所占的存儲空間以及算法執行中所需要的額外空間。其中額外空間包括算法程序執行過程中的工作單元以及某種數據結構所需要的附加存儲空間。如果額外空間量相對于問題規模來說是常數,則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。

51.D解析:因為共用體的所有成員共同占據一段存儲空間,所以成員數據后賦的值會覆蓋掉先賦的值,最后共用體變量中保留的就是最后一次賦的值。注意:共用體變量所占存儲單元字節數的計算。

52.D解析:串的長度是指串中字符的個數,且其字符個數可以為0。

53.B解析:模塊獨立性是指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。耦合性與內聚性是模塊獨立性的兩個定性標準,耦合與內聚是相互關聯的。在程序結構中,各模塊的內聚性越強,則耦合性越弱。一般較優秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。本題答案為B。

54.D解析:&&的優先級高于=,先計算&&左側的表達式++a<0。先對a加1再與0比較大小,a=-1+1=0,++a<0為假即0,&&左側的表達式的值為0,不再計算&&右側的表達式的值,因此b的值不變仍然為4,整個邏輯表達式的值為0,則k被賦值為0。輸出的結果為004。

55.A解析:本題的功能是順序的讀兩個文本文件,依次輸出。當打開文件時出現錯誤,fopen函數將返回NULL。

56.B解析:先定義了一個指向字符型數組str的指針p,指針p旨向數組str的首地址,p+3將指針指向str[3],又因為字符型數組在存放字符串時會自動在末尾加上'\\0',所以*(p+3)=0。

57.A解析:C語言規定數組名代表數組的首地址,所以for循環中循環變量p的初值即&a[o),故輸出的*p的值為a[0]的值。執行p++后,指針變量P指向a[1],這時輸出*P即輸出a[1]的值,經過10次循環,將輸出a數組的全部數據:

1,2,3,4,5,6,7,8,9,0,

58.D解析:本題考查如何引用數組元素的地址。

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

59.B解析:do…while循環的執行過程如下:①執行do后面的循環體中的語句。②計算while后一對圓括號中表達式的值。當值為非0時,轉去執行步驟①;當值為0時,執行步驟③。③退出do…while循環。對于本題變量i的初始值等于“0”,接著執行do后面的循環體中的語句,輸出變量i的值0。再判斷while后面括號中表達式i++的值,其值為0,所以循環結束。此時變量i的值經過自加已經變為1,所以再次輸出i的值“1”。

60.D解析:break語句只能在循環體和switch語句體內使用,當break出現在switch語句體內時,其作用只是跳出該switch語句體。當break出現在循環體中,但不在switch語句體內時,則在執行break后,跳出本層循環體.而continue語句的作用是結束本次循環,即跳過本次循環中余下尚未執行的語句,接著再一次進行循環的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內表達式的值為真,執行循環體內的if語句,判斷if后面括號內表達式的值為真,執行“continue;”語句.因continue的作用是結束本次循環,即跳過本次循環體中余下尚未執行的語句,接著再一次進行循環的條件判斷,所以i的值未發生變化,循環條件仍然為真,if語句也仍然成立,因此循環將無止境地進行下去。所以,4個選項中D為所選。

61.B

62.C

63.C

64.D打印時以%d整型格式打印輸出,所以字符標量cl的值打印出來就是65,從c2—2的值打印出來就是68—2,即66。所以選擇D。

65.B解析:編譯時,編譯系統不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數被調用時

溫馨提示

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

評論

0/150

提交評論