2021-2022年江蘇省揚州市全國計算機等級考試C語言程序設計真題二卷(含答案)_第1頁
2021-2022年江蘇省揚州市全國計算機等級考試C語言程序設計真題二卷(含答案)_第2頁
2021-2022年江蘇省揚州市全國計算機等級考試C語言程序設計真題二卷(含答案)_第3頁
2021-2022年江蘇省揚州市全國計算機等級考試C語言程序設計真題二卷(含答案)_第4頁
2021-2022年江蘇省揚州市全國計算機等級考試C語言程序設計真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江蘇省揚州市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執行后的輸出結果是______。

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

2.

3.在下列語句中,其含義為“q是一個函數指針,該指針指向整型數據”的定義語句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

4.

5.有以下函數:fun(char*p){returnp;}該函數的返回值是()。

A.無確切值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

6.軟件測試的目的是()。

A.評估軟件可靠性B.發現并改正程序中的錯誤C.改正程序中的錯誤D.發現程序中的錯誤

7.以下能正確定義一維數組的選項是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

8.深度為5的二叉樹至多有C個結點。

A.16B.32C.31D.10

9.

10.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運行后的輸出結果是()。A.30B.40C.10D.20

11.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法A.A.對象B.數據結構C.數據流D.目標

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

A.測試工作必須由程序編制者自己完成

B.測試用例和調試用例必須一致

C.一個程序經調試改正錯誤后,一般不必再進行測試

D.上述三種說法都不對

13.有下列程序:

main()

{inty=20;

do{y--;}while(--y);

phntf("%d\n",y--);

}

當執行程序時,輸出的結果是()。

A.-1B.1C.4D.0

14.有以下定義和語句

StructWorkers

{intnum;charname[20];charc;

struct

{intday;intmonth;intyear;}s;

};

StructWorkersW,*pe;

PW=&W;

能給W中yeaR成員賦1980的語句是A.*pW.yeaR=1980;

B.W.yeaR=1980;

C.pW->yeaR=1980;

D.W.s.yeaR=1980;

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

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

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

A.可以通過typedef增加新的類型

B.可以typedef將已存在的類型用一個新的名字來代表

C.用typedef定義新的類型名后,原有類型名仍有效

D.用typedef可以為各種類型起別名,但不能為變量起別名

17.兩個或兩個以上模塊之間關聯的緊密程度稱為()。

A.耦合度B.內聚度C.復雜度D.數據傳輸特性

18.在單鏈表指針為p的結點之后插入指針為s的結點,正確的操作是()。A.p->next=s;s->next=p->next;

B.s->next=p->next;p->next=s;

C.p->next=s;p->next=s->next;

D.p->next=s->next;p->next=s;

19.下面關于編譯預處理的命令行中,正確的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

20.以下選項中不合法的標識符是()。

A.&aB.FORC.printD._00

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

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

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

22.下面程序的輸出結果是【】。

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

23.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。

24.表示“整數x的絕對值大于5”時值為“真”的C語言表達式是【】。

25.設Y是int型變量,請寫出判斷Y為奇數的關系表達式【】。

26.以下程序的功能是建立—個帶有頭結點的單向鏈表,鏈表結點中的數據通過鍵盤輸入,當輸入數據為-1時,表示輸入結束(鏈表頭結點的data域不放數據,表空的條件是ph->next==NULL),請填空。

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(struct

27.當運行以下程序時,輸入abcd,程序的輸出結果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

28.Jackson結構化程序設計方法是英國的M.Jackson提出的,它是一種面向______的設計方法。

29.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。

30.在結構化設計方法中,數據流圖表達了問題中的數據流與加工間的關系,并且每一個______實際上對應一個處理模塊。

31.在數據庫理論中,數據物理結構的改變,如存儲設備的更換、物理存儲的更換、存取方式等都不影響數據庫的邏輯結構,從而不引起應用程序的變化,稱為【】。

32.解題方案的準確而完整的描述稱為______。

33.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

34.設i,j,k均為int型變量,則執行完下面的for語句后,k的值為【】。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

35.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

36.若輸入5、9,以下程序的運行結果為【】。

main()

{inta,b,*pt1,*pt2;

printf("inputa,b:");

scanf("%d%d",&a,&b);

pt1=&a;

pt2=&b;

if(a<b)swap(pt1,pt2);

printf("\n%d,%d\n",*pt1,*pt2);

}

swap(p1,p2)

int*p1,*p2;

{int*p;

p=p1;

p1=p2;

p2=p;

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

38.一般來說,算法可以用順序、選擇和______三種基本控制結構組合而成。

39.()是指用戶的應用程序與數據庫的邏輯結構是相互獨立的,也就是說,數據的邏輯結構改變了,用戶程序也可以不變。

40.以下程序運行后的輸出結果是______。

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

三、1.選擇題(20題)41.若說明int*p,n;則通過語句scanf能夠正確讀入數據的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

42.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執行后輸出結果是()。

A.隨機值B.0C.5D.6

43.一個關系中屬性個數為1時,稱此關系為()。

A.對應關系B.單一關系C.一元關系D.二元關系

44.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

45.下列關于標識符的說法中錯誤的是

A.合法的標識符是由字母、數字和下劃線組成

B.C語言的標識符中,大寫字母和小寫字母被認為是兩個不同的字符

C.C語言的標識符可以分為三類,即關鍵字、預定義標識符和用戶標識符

D.用戶標識符與關鍵字不同時,程序在執行時將給出出錯信息

46.程序中若有如下說明和定義語句

Charfun(char*);

main()

{

char*s="one",a[5]={0}.(*f1)()=fun,ch;

}

以下選項中對函數fun的正確調用語句是

A.(*f1)(A);B.*fl(*s);C.fun(&A);D.ch=*fl(s);

47.以下不屬于對象的基本特點的是()

A.分類性B.多態性C.繼承性D.封裝性

48.若w、x、y、z、m均為int型變量,則執行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

49.以下程序運行后,輸出結果是______。main(){char*d[]={"ab","cde"};printf("%x",d[1]);}

A.cdeB.字符c的AScII碼值C.字符c的地址D.出錯

50.s1和s2已正確定義并分別指向兩個字符串,若要求:當s1所指串大于s2所指串時,執行語句S;則以下選項中正確的是

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S;

D.if(strcmp(s1,82)>0)S;

51.設x=011050,則x=x&01252的值是()。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

52.下面不屬于軟件設計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

53.在C語言中,函數的隱含存儲類別是______。

A.autoB.staticC.externD.無存儲類別

54.下述關于數據庫系統的敘述中,正確的是()。

A.數據庫系統減少了數據冗余

B.數據庫系統避免了一切冗余

C.數據庫系統中數據的一致性是指數據類型一致

D.數據庫系統比文件系統能管理更多的數據

55.下面四個選項中,均是不正確的8進制數或16進制數的選項是

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0a127ff-123

56.樹是結點的集合,它的根結點數目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

57.若有如下程序:voidsub(){inta,b;a=lO;b=20;printf("%d,%d\n",b,a);}main(){inta=1O,b=20;sub();printf("%d,%d\n"'a'b);}則程序運行后的輸出結果是()。

A.10,20B.20,1020,10C.20,10D.10,2010,2020,10

58.以下描述中正確的是()。

A.由于do-while循環中循環體語句只能是一條可執行語句,所以循環體內不能使用復合語句

B.do-while循環由do開始,用while結束,在while(表達式.后面不能寫分號

C.在do-while循環體中,是先執行一次循環,再進行判斷

D.do-while循環中,根據情況可以省略while

59.以下程序輸出的結果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

60.下列數據結構中,屬于非線性的是()。

A.線性表B.隊列C.樹D.棧

四、選擇題(20題)61.下列字符串是標識符的是()。

A.aaB.a-classC.intD.LINE1

62.有以下程序:

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

A.ABEFB.CDEFC.ABCDD.CDAB

63.(57)下列敘述中,不屬于軟件需求規格說明書的作用的是______。

A.便于用戶、開發人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據

C.作為確認測試和驗收的依據

D.便于開發人員進行需求分析

64.

65.

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

#includedstdi0.h>

#includedstring.h>

voidfun(intb[])

{staticinti=0;

do

{b[i]+=b[i+1];

}while(++i<2);

}

main

{intk,a[5]={1,3,5,4,9};

fun(a);

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

}

A.13579B.48579C.48549D.48999

66.讀取二進制文件的函數調用形式為:fread(buffer,size,count,fp);,其中buffer代表的是()。

A.一個內存塊的字節數

B.一個整型變量,代表待讀取的數據的字節數

C.一個文件指針,指向待讀取的文件

D.一個內存塊的首地址,代表讀人數據存放的地址

67.

68.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數.feof(fp)的返回值為()

69.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內聚性有利于提高模塊的獨立性

B.降低耦合性提高內聚性有利于提高模塊的獨立性

C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

70.

71.有以下函數函數的功能是()。

A.統計x和y所指字符串中最前面連續相同的字符個數

B.查找x和y所指字符串中是否有’\0’

C.將y所指字符串賦給x所指存儲空間

D.統計x和y所指字符串中相同的字符個數

72.

73.有以下程序:

voidmain()

{

inty=10;

while(y>>1){printf("y=%d\n",y);}

}

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

A.y=0

B.y=-1

C.y=1

D.while構成無限循環

74.有以下程序:

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

A.3B.4C.lD.9

75.

76.

77.用數組名作為函數調用的實參,則傳遞給形參的是()。

A.數組中所有元素的值B.數組的第一個數據C.數組的首地址D.數組元素的個數

78.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規定的賦值語句是()。A.i=a%ll;B.i=(a+k)《=(i+k);C.a=a++,i++;D.i=!a;

79.下面描述中錯誤的是()。

A.系統總體結構圖支持軟件系統的詳細設計

B.軟件設計是將軟件需求轉換為軟件表示的過程

C.數據結構與數據庫設計是軟件設計的任務之一

D.PAD圖是軟件詳細設計的表示工具

80.分析以下程序的輸出結果是()。

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c);}

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:用遞歸算法計算斐波拉契級數列中第n項的值。從第一項起,斐波拉契級數序列為1,1,2,3,5,8,13,21,…例如,若給n輸入8,該項的斐波拉契級數值為21。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數fun(),該函數的功能是將s所指字符串中ASCII值為偶數的字符刪除,字符串中剩余字符形成一個新字符串并將其存放在t所指的數組中。例如,若s所指字符串中的內容為“ABCDEFG123456”,其中字符B的ASCII值為偶數,字符2的ASCII值為偶數,都應當刪除,其他依此類推。最后t所指的字符串中的內容應是“ACEG135”。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>voidfun(char*s,chart[]){}voidmain(){ chars[100],t[100]; system(“CLS”); printf(“\nPleaseenterstrings:”); scanf(“%s”,s); fun(s,t); printf(“\nTheresultis:%s\n”,t);}

參考答案

1.A解析:本題中p[4]='cd',所以strlen(p[4])=2。

2.B

3.B本題考查指針函數。其定義的基本格式為:類型說明符(*函數名)。“類型說明符”表示返回的指針值指向的數據類型。

4.D

5.B解析:return中返回的是指針p的值,也就是形參p中存放的地址值。

6.D軟件測試是為了發現錯誤而執行程序的過程,測試要以查找錯誤為中心,而不是為了演示軟件的正確功能,也不是為了評估軟件或改正錯誤,因此本題答案為D)。

7.B解析:選項A)定義的是長度為5的數組元素,但初值有6個元素,所以錯誤;選項C)不符合數組定義形式,數組名后應加上“[];選項D)的類型說明符錯誤,應改為char;選項B)中的0,1,2,3,4,5分別表示對應字符的ASCII碼,所以正確。

8.C

9.C

10.AFor循環結束后,數組a的值并沒有變化,由于數組是由0開始,所以a[2]的值是30。

11.CC。【解析】結構化分析方法是面向數據流進行需求分析的方法,采用自頂向下、逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。

12.D解析:測試不是為了證明程序是正確的,而是在設想程序有錯誤的前提下進行的,其目的是設法暴露程序中的錯誤和缺陷,一般應當避免由開發者測試自己的程序,因此,選項A錯誤;測試是為了發現程序錯誤,不能證明程序的正確性,調試主要是推斷錯誤的原因,從而進一步改正錯誤,調試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發現錯誤后,可進行調試并改正錯誤:經過調試后的程序還需進行回歸測試,以檢查調試的效果,同時也可防止在調試過程中引進新的錯誤,選項C錯誤。

13.D解析:本題考查do…while循環。當--寸是0(即y是0)時結束循環,輸出y--是先輸出y的值再將y的值減1。

14.D解析:結構體structureworkers中的成員s是結構體類型,給w中成員year賦值的語句是w.s.year=1980,故選D。

15.C輸入數據的格式必須與seanf()的格式控制串完全匹配,所以輸入時必須在3和5之間輸入“;”。

16.A關鍵字typedet的作用只是將C語言中的已有的數據類型作了置換,并不是增加新的類型,所以A)錯誤。

17.A解析:本題考核模塊獨立性的評價。評價模塊獨立性的主要標準有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度,也可以說是兩個或兩個以上模塊之間關聯的緊密程度(所以,本題的正確答案為選項A);二是模塊內部之間的關系是否緊密,稱為內聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內聚程度盡量地高。

18.B

19.D選項A中,int是關鍵字,不能作為用戶標識符;選項B中,兩個“#”錯誤;選項C中兩個“#”錯誤,另外DEFINE大寫也是錯誤的。故本題答案為D選項。

20.AC語言的標識符由字母、數字、下劃線組成,且第1個字符必須是字母或下劃線。另外,關鍵字不能作為標識符。因為C語言中區分大小寫,所以B選項中的“FOR”可以作為標識符來用。A選項中含有非法字符“&”,所以其不合法。故本題答案為A選項。

21.8168,16解析:float(*p1)(float)是定義p1為指向函數的float型的指針變量。因此p1=f1;p2=f2;表示p1指向函數f1,p2指向函數f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面將p1與p2互換,y2=f1(f2(2.0))=16。

22.AB

23.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數最多是26-1=32。注意區別“二叉樹的結點最多數”和“某一層的結點最多數”。前者的計算是深度為m的二叉樹最多有2m-1個結點。

24.x>5||x<-5或abs(x)>5x>5||x<-5或abs(x)>5解析:要使整數x的絕對值大于5,則x大于5或x小于-5,用C語言表示即為:x>5||x<-5或者abs(x)>5。

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

26.解析:本題考查的是鏈表這一數據結構對結構體變量中數據的引用。鏈表的特點是結構體變量中有兩個域,一個是數據,另一個是指向該結構體變量類型的指針,用以指明鏈表的下一個結點。

27.a*b*c*d*a*b*c*d*解析:字符處理函數strlen()測試字符串常量的長度,不包括‘\\0’在內。因此,函數insert()實現了將字符數組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結果是a*b*c*d*。

28.數據結構數據結構

29.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。

30.加工加工解析:數據流圖是從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。

31.物理獨立性物理獨立性解析:數據的物理結構改變,不影響數據庫的邏輯結構,從而不引起應用程序的變化,這種性質叫做物理獨立性。

32.算法算法解析:算法是指對解題方案的準確而完整的描述。

33.00解析:二維數組可以看成是按矩陣形式排列的,題目中給二維數組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數組,其數組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。

34.1010解析:該for語句以i為0,j為10作為初始值,循環條件是i<=j,每次循環后i增1、j減1,循環體是將i與j的和賦給k,這樣變量k將保存的是最后一次賦給它的值。一次循環后i為1、j為9,二次循環后i為2、j為8,……,五次循環后i為5、j為5,第六次循環,將i與j的和10賦給k后,i為6、j為4,循環結束,k值為10。

35.存儲結構

36.59

37.3535解析:函數swap(int*a,int*b)的功能是實現*a和*b中兩個數據的交換,在主函數中調用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發生變化,所以輸出結果為35。

38.循環循環解析:算法一般由順序,選擇和循環三種基本控制結構組合而成。

39.邏輯獨立性邏輯獨立性解析:數據獨立性包括數據的物理獨立性和邏輯獨立性。物理獨立性是指用戶的應用程序與存儲在磁盤上的數據庫中數據是相互獨立的。數據在磁盤上的數據庫中怎樣存儲是由DBMS管理的,用戶程序不需要了解,應用程序要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變時。應用程序不用改變。邏輯獨立性是指用戶的應用程序與數據庫的邏輯結構是相互獨立的,也就是說,數據的邏輯結構改變了,用戶程序也可以不變。

40.24

41.D解析:函數scanf的地址列表應由變量的地址組成。選項A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲單元中只能存放地址值,不能存放整型數據。選項B中*p相當于變量n,所以不能正確讀入數據;選項C不正確,因為n為變量名;選項D中p為指針變量,并且值為變量n的地址,所以選項D能夠正確讀入數據。D為所選。

42.B解析:通過賦值語句“s=x+3”,使指針變量s指向數組元素x[3],輸出語句中的spl等價于*(s+2),即x[5]值為0。所以,B選項為所選。

43.C解析:在關系模型數據庫中,基本結構是二維表,這種二維表稱為關系。關系的列稱為屬性,一個具有N個屬性的關系稱為N元關系。注意:各種關系查詢語言與過程性語言和非過程性語言的關系,過程性語言的特點。

44.D解析:“&”是求址運算符,“*”是指變量說明符。選項A)、B)應改為scanf('%d',p);選項C)中指針變量p未指向一確定的內存單元,不能為其賦值,并且這樣做很危險,建議不使用。

45.D解析:用戶標識符與關鍵字相同時,程序在編譯過程中將給出出錯信息。注意:選項D)應該改為用戶標識符與關鍵字相同,程序在編譯時將給出出錯信息。注意:合法的標識符第一個字符必須為字母或下劃線。

46.A解析:在C語言中函數名代表該函數的入口地址,因此可以定義一種指向函數的指針來存放這種地址.其定義形式為:

函數類型(*函數指針名)(函數參數列表);

其中,函數參數列表可以省略。通過函數指針調用函數的形式為:

(*函數指針)(函數參數列表)

調用時函數的參數列表是不能省略的。所以本題的正確答案為選項A。

47.C解析:對象的基本特點包括;標識惟一性、分類性、多態性、封裝性和獨立性等。繼承性不屬于對象的基本特點。

48.A解析:條件表達式“a?b:c”的含義是:當a為真時,其值等于表達式b的值;當a為假時,其值等于表達式c的值。

表達式運算過程:第1個表達式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達式:w=2<y=4為真,所以返回m的值,即m=2。

49.C解析:指針數組中的每一個元素都相當于一個指針變量。一維指針數組的定義形式為:類型名*數組名[數組長度],在本題main函數中定義指針數組d,它有兩個元素,其初值分別是“ab”、“cde”的首地址。d[1]的值為“cde”的首地址。%x是指以十六進制數形式輸出整數。

50.D解析:在C語言中字符串的比較用stremp()函數,該函數有兩個參數,分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若小于返回值小于0,相等返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符中,女B果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本題中要求當sl所指字符串大于s2所指串時,執行語句s,因此應該為stremp(s1,s2)>0或者strcmp(s2,s1)<0。

51.A解析:本題主要考查按位與運算,x=011050的二進制形式為0001001000101000,01252的二進制形式為0000001010101010,兩者相與得00000010001010000。

52.C解析:軟件設計遵循軟件工程的基本目標和原則,建立了適用于在軟件設計中應該遵循的基本原理和與軟件設計有關的概念。①抽象是一種思維工具,就是把事物本質的共同特性抽出來而不考慮其他細節。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數、子程序等。③信息隱蔽是指在一個模塊內包含的信息(過程或數據),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。因此,本題的正確答案是C。

53.C解析:C語言規定,只要在定義函數時不進行存儲類型的顯式說明,函數的存儲類型就隱含為外部類型,即extern型,外部類型允許其他文件中的函數調用。

54.A解析:數據庫是一個通用化的、綜合性的數據集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數據與程序的獨立性,而且能并發地為多個應用服務,同時具有安全性和完整性。即數據庫系統減少了數據冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數據庫管理階段中,數據是結構化的,面向系統,數據冗余度小,從而節省了數據的存儲空間,也減少了對數據的存取時間,提高了訪問效率,避免了數據的不一致性。數據的不一致性,是指對數據的存取方式,選項C錯誤。數據庫系統比文件系統能管理更多的數據,并非是數據庫系統的特點,選項D錯誤。本題正確答案是A。

55.D本題主要考查八進制數和十六進制數的正確表示。八進制數的特點是以0開頭,而且數據中的每個數都要小于8;而十六進制數的特點是以0X開頭,數據中的元素除了0~9這些數字外,還可以是A、B、C、D、E、F這些字符。

在選項A中,018的表示是錯誤的,因為八進制數中不應該出現8這個數字元素。另外兩個表示正確。

在選項B中,0ABC的表示不正確,八進制數中根本不應該出現ABC這些數字元素。另外兩個正確。

在選項C中,沒有不正確的表示方法。

在選項D中,0A12的表示不正確,而7FF和-123根本就不是八進制或十六進制數,因此本題正確答案選D。

56.A樹形結構是一類重要的非線性數據結構。樹是n(n≥0)個結點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質。

①有且僅有一個特定的稱為根的結點。

②當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

57.C解析:程序首先調用sub()子函數,在子函數中輸出子函數自己的變量b和a(20,10),然后主函數再輸出主函數中的變量a和b(10,20)。故應該選擇C。

58.C解析:do-while語句的一般形式為:do循環體語句while(表達式);,其中循環體語句可以是復合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結束,在do-while循環中,不可以省略while。

59.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當執行p=alpha后,p指向指針數組alpha的首地址。for循環中輸出了4個字符串。

60.C解析:線性結構,是指數據元素只有一個直接前件元素和直接后件元素。線性表是線性結構。棧和隊列是指對插入和刪除操作有特殊要求的線性表,樹是非線性結構。

61.A

\nC語言規定,標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達整型變量類型的標識符,它不能用做變量名和函數名。

\n

62.B本題考察的是變量的作甩范圍。如果在同一個源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內,外部變量被“屏蔽”,即不起作用:奉題中,在funl()和main()函數內訪問的是全局變量a和b,在fun2()函數中訪問的是形參變量a和b。所以,main()函數中的prinff()函數輸出的是在funl()函數中被改變的全局變量a和b的值C、D,而fun2()函數中輸出的是傳遞給它的實參值E、F。因此B選項正確。

63.D

64.A

65.C

\n本題考查do-while循環,在fun函數中,首先定義了靜態變量i=0,do-while循環要實現的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規則重新給b數組賦值。在主函數中,通過

溫馨提示

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

評論

0/150

提交評論