2022年陜西省榆林市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2022年陜西省榆林市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2022年陜西省榆林市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2022年陜西省榆林市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2022年陜西省榆林市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年陜西省榆林市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系

2.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

3.

4.

5.以下敘述中不正確的是

A.預(yù)處理命令行都必須以#號開始

B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行

C.宏替換不占用運(yùn)行時間,只占編譯時間

D.在以下定義是正確的:#definePI3.1415926;

6.

7.下列關(guān)于線性表的敘述中,不正確的是()

A.線性表可以是空表

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個前件和后件

D.線性表是由n個元素組成的一個有限序列

8.有以下程序:#include<stdio.h>#defineS(x)x*x/xmain(){intk=6,j=3;printf(“%d,%d\n”,S(k+j+2),S(j+k+2);}程序運(yùn)行后的輸出結(jié)果是()。

A.11,11B.29,29C.26,29D.121,121

9.有以下程序

A.741B.963C.852D.87542l

10.

11.用不帶頭結(jié)點(diǎn)的單鏈表存儲隊列時,其隊頭指針指向隊頭結(jié)點(diǎn),其隊尾指針指向隊尾結(jié)點(diǎn),則在進(jìn)行刪除操作時()。

A.僅修改隊頭指針B.僅修改隊尾指針C.隊頭、隊尾指針都要修改D.隊頭,隊尾指針都可能要修改

12.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do…while語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

B.可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

C.可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

13.以下程序的輸出結(jié)果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

14.

A.A.2A3N4E5OB.1H213U4EC.1A2N3U4OD.1A2N3E4O15.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結(jié)果是()。A.n=5B.n=2C.n=3D.n=4

16.

17.有以下函數(shù)定義:voidfun(intn,doubx){……}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調(diào)用語句是()。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfum(n,x);

18.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

19.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.1256B.5634C.5612D.3456

20.以下程序是用來計算兩個非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運(yùn)算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

二、2.填空題(20題)21.在面向?qū)ο蟮脑O(shè)計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

22.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

23.【】是指一個數(shù)據(jù)對象中的各個數(shù)據(jù)元素之間存在的聯(lián)系。

24.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。

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

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

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

}

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

27.若采用直接插入法對字母序列(W,S,E,L,X,G,I)進(jìn)行排序,使字母按升序排列,那么第一次排序的結(jié)果為【】。

28.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運(yùn)算符(?:)所構(gòu)成的語句的執(zhí)行結(jié)果是【】。

a++<=2&&b--<=2&&c++?printf("***

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

29.算法的復(fù)雜度主要包括空間復(fù)雜度和______復(fù)雜度。

30.若有以下定義:

chara;intb;

floatc;doubled;

則表達(dá)式a*b+d-c值的類型為【】。

31.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的_______。

以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);}

32.若fp已正確定義為一個文件指針,d1.dat為二進(jìn)制文件,請?zhí)羁?,以便為“讀”而打開此文件:

fp=fopen(【】);。

33.有以下程序:

#definef(x)x*x

main()

{inti;

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

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

}

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

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

如:dp=x*-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

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

}

35.下列程序的輸出結(jié)果是【】。

main()

{inti;

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

{if(i>4)

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

break;}

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

36.在面向?qū)ο蟮某绦蛟O(shè)計中,類描述的是具有相似性質(zhì)的一組【】。

37.有以下程序:

main()

{inti,n=0;

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

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

}

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

}

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

38.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

39.該程序運(yùn)行的結(jié)果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("\n%d,%d",e.in.x,e.in.y);

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

}

40.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為三、1.選擇題(20題)41.以下敘述中錯誤的是A.gets函數(shù)用于從終端讀入字符串

B.getchar函數(shù)用于從磁盤文件讀入字符

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

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

42.以下能正確定義二維數(shù)組的是______。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1),{2},{3,4}};

43.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

44.有以下程序:#include<stdio.h>main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);程序運(yùn)行后的輸出結(jié)果是()。

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

45.以下程序的輸出結(jié)果是#include<stdio.h>#include<string,h>main(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pB);printf("%d\n",strlen(b2));}

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

46.下列程序段的輸出結(jié)果是______。int**pp,*p;inta=10,b=20;p=&a;pp=&p;p=&b;printf("%d,%d\n",*p,**pp);

A.10,20B.10,10C.20,20D.20,10

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

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

48.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);

B.intfun(double,int);

C.intfun(double*x,intn);

D.intfun(double*,int*);

49.在下列敘述中,正確的一條是()

A.語句“int*pt;中的*pt是指針變量名

B.語句“int*p=a;”等價于“int*p;p=&a[0];”

C.運(yùn)算符*和&都是取變量地址的運(yùn)算符

D.已知指針變量p指向變量a,則a和*p值相同,都是變量a的值

50.以下4組用戶定義標(biāo)識符中,全部合法的一組是

A.mainencludesin

B.If-maxturbo

C.txtREAL3COM

D.int12_001

51.下述程序的輸出結(jié)果是______。#include<stdio.h>main(){enumteam{Jack,Andy,Sam=10,Bob=Sam+2,Tom};printf("%d,%d",Andy,Tom);}

A.2,13B.1,0C.1,13D.1,12

52.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<b)if(b<O)c=0;elsec++;printf("%d\n",c);}

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

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

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

54.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

55.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

56.語句“printf("%d",(a=2)&&(b=-2);”的輸出結(jié)果是______。

A.無輸出B.結(jié)果不確定C.-1D.1

57.為了提高測試的效率,應(yīng)該()。

A.隨機(jī)選取測試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)

C.在完成編碼以后制定軟件的測試計劃

D.集中對付那些錯誤群集的程序

58.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()

A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

59.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

A.3,14,1B.3,14,2C.2,04,1D.2,14,1

60.設(shè)已包含頭文件<string.h>,下列程序段的運(yùn)行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

四、選擇題(20題)61.

62.有以下程序:

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

63.兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結(jié)果是()。

if(x++>5)printf("%d",x);

elseprintf("%d\n",x--);

A.7和5B.6和3C.7和4D.6和4

64.以下選項中,合法的一組c語言數(shù)值常量是()。

A.12.0Xtl234.5e0

B.028.5e-3-0xf

C.1774el.50abe

D.0x8A10,0003.e5

65.有以下程序:

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

A.0987654321

B.4321098765

C.5678901234

D.0987651234

66.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當(dāng)前讀寫位置B.初始化流式文件的位置指針C.移動流式文件的位置指針D.以上答案均正確

67.下面的程序段運(yùn)行后,輸出結(jié)果是()。

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

68.

69.若有以下說明和語句,請選出哪個是對C數(shù)組元素的正確引用()。

A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)

70.

71.

72.

73.以下能正確定義字符串的語句是()。

A.charstr=”\x43”;

B.charstr[]=”、0”;

C.charstr=”;

D.charstr[]={’\064’};

74.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,

B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

75.

76.在執(zhí)行完下列的c語句段之后,則B的值是()。chara=A;intb;B=((34&&56)&&(a<b));A.0B.1C.TRUED.FALSE

77.為了提高測試的效率,應(yīng)該()。

A.隨機(jī)選取測試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)

C.在完成編碼以后制定軟件的測試計劃

D.集中對付那些錯誤群集的程序

78.用鏈表表示線性表的優(yōu)點(diǎn)是()。

A.便于隨機(jī)存取B.花費(fèi)的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序與邏輯順序相同

79.有以下程序:

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

A.24B.720C.120D.6

80.在數(shù)據(jù)庫管理系統(tǒng)DBMS中,用來定義內(nèi)模式和外模式等一些數(shù)據(jù)庫管理系統(tǒng)中其他結(jié)構(gòu)的語言為

A.CB.BasicC.DDLD.DML

五、程序改錯題(1題)81.下列給定程序中proc()函數(shù)的功能是:將n個無序整數(shù)按從小到大排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。sum=1-x+x2/2!-x3/31+…+(-l*x)n/n!例如,當(dāng)n=23,x=0.3時,函數(shù)值為0.740818。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:

參考答案

1.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

2.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進(jìn)行下次循環(huán)。所以在程序中,只有當(dāng)a=10時,才退出循環(huán),故選擇D選項。

3.D

4.A

5.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。

6.B

7.CC)【解析】線性表是一種線性結(jié)構(gòu),由n(n≥O)個元素組成,所以線性表可以是空表。但是性表中,第一個結(jié)點(diǎn)沒有前件,最后一個結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個前件和后件,所以選項C)是錯誤的。

8.B#define命令是C語言中的一個宏定義命令,為了區(qū)分其他標(biāo)識符,標(biāo)識符一般使用大寫。將標(biāo)識符定義為一個字符串,該標(biāo)識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進(jìn)行其他操作,僅僅只是替換標(biāo)識符。題目中的S(k+j+2)=k+j+2*k+j+2/k+j+2”,經(jīng)計算可得29?!癝(j+k+2)=j+k+2*k+j+2/j+k+2”,經(jīng)計算可得29。因此輸出為29,29。故本題答案為B選項。

9.C在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達(dá)式“——y”的值。y先自減1,然后再輸出y的值。

10.B

11.D

12.D解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

13.D因為a是結(jié)構(gòu)體變量,最后一次輸入的值為結(jié)構(gòu)體中的值,即a中的任何一個值都為0。

14.A本題主要考查結(jié)構(gòu)體數(shù)組。x[i]num是結(jié)構(gòu)體x[i]中的num成員,x[1].name[2]是結(jié)構(gòu)體x[i1中1"lame成員的第3個元素。第一次循環(huán),i-1,輸出x[1].num,x[1].name[2]的值,即2A;第二次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第三次循環(huán),i=3,輸出x[3】.num,x[3].name[2]的值,即4E;第四次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即50。

15.Dcontinue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。

16.C

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

18.C解析:本題考核的知識點(diǎn)是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。

19.BFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是5634。

20.B

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

22.概念(或概念級)概念(或概念級)

23.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)

24.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用??芍?,循環(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。

25.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。

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

27.SWELXGI

28.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達(dá)式的—般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,三目運(yùn)算符的執(zhí)行順序,先求解表達(dá)式1,若非0則求解表達(dá)式2,此時表達(dá)式2的值就作為整個表達(dá)式的值,若表達(dá)式1的值為0,則求解表達(dá)式3,此時表達(dá)式3的值就作為整個表達(dá)式的值。C語言在做一系列表達(dá)式相與時,從左到右分別計算各表達(dá)式的值,一旦遇到一個表達(dá)式為false,則剩余的表達(dá)式都不再進(jìn)行運(yùn)算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運(yùn)算再運(yùn)算。

29.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。

30.double或雙精度型double或雙精度型解析:C語言中,如果運(yùn)算符兩邊的數(shù)據(jù)類型不同,將進(jìn)行類型轉(zhuǎn)換,根據(jù)轉(zhuǎn)換規(guī)則,短整型轉(zhuǎn)為長整型;整型轉(zhuǎn)換為實(shí)型。注意:數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。

31.B

32.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時,將打開這個文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時,創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。

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

34.7979解析:因為在調(diào)用子函數(shù)時進(jìn)行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

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

36.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。

37.n=4n=4解析:continue語句是結(jié)束本次循環(huán)。i=2時因i%3條件為真,故不執(zhí)行do-while語句中的n++,只執(zhí)行一次n++得n=1;i=3時,i%3條件為假,執(zhí)行兩次n++得n=3;i=4時,i%3條件為真,執(zhí)行一次n++得n=4。

38.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

39.4844

40.89218921

41.B其中B選項的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項。

42.B解析:(1)二維數(shù)組的定義

二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。

二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。

(2)二維數(shù)組元素的引用

二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式;其范圍為:0~(常量表達(dá)式-1)。

(3)二維數(shù)組的初始化

可以用以下方法對二維數(shù)組元素初始化。

①分行給二維數(shù)組賦初值,例如;

inta[2][2]=({1,2),{3,4));

這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。

②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。

③可以對部分元素賦初值,沒有初始化的元素值為0。

④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。

43.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。

44.D解析:&是按位“與”運(yùn)算符,若參加運(yùn)算的兩個運(yùn)算量的相應(yīng)位都為1,則該位的結(jié)果值為1,否則為0?!恰叭》础边\(yùn)算符,用來對一個二進(jìn)制數(shù)按位取反,即將0變1,1變0。對于x/y&~z,先計算x/y的值,結(jié)果為1,用十六進(jìn)制表示為0001;z用十六進(jìn)制表示為0001,則~z為FFFE;最后進(jìn)行&運(yùn)算,整個表達(dá)式的值為0。

45.D解析:本題考核的知識點(diǎn)是指針變量的運(yùn)算及字符函數(shù)strcpy()的應(yīng)用。strepy()函數(shù)的作用是把第二個參數(shù)代表的字符串,復(fù)制到第一個參數(shù)指向得數(shù)組中.首先定義了兩個字符數(shù)組b1和b2,并用一個字符串給b1賦初值,然后定義了一個字符型指針變量pb,通過賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次;第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pB);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b1”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pB);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>=b1”使Pb的值為“b1”,執(zhí)行“strcpy(b2,pB);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--Pb”,他使得指針pb自減1,即前移一位)所以,4個選項中D為所選。

46.C解析:指針變量p先是指向變量a,后指向變量b,但二級指針變量始終指向指針變量p。

47.A解析:程序執(zhí)行printf('%d%d',m++,++n);后,輸出的是m和n+1的值1235,然后m+1=13,再執(zhí)行printf('%d%d\\n',n++,++m);輸出n和m+1的值3514,之后n+1=36。這里要注意的是m++和++m的區(qū)別:m++是先輸出m的值,再執(zhí)行m++;++m是先執(zhí)行++m,再輸出m的值。

48.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。

49.D

50.A解析:標(biāo)識符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列{例如,-max含非法字符-),并且用戶標(biāo)識符不能與C語言中的32個關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識符)。選項B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項B不正確;選項C中3COM不是由字母或下劃線開頭,故選項C不正確;選項D中int為C語言中的關(guān)鍵字,故選項D不正確;選項A中全部為合法的標(biāo)識符,所以,4個選項中選項A符合題意。

51.C解析:根據(jù)枚舉型變量的定義方法,Jack=0,Andy=1,Sam=10,Bob=12,Tom=13。

52.C解析:本題考查if語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b不成立,不再執(zhí)行下列的語句,直接執(zhí)行最后的printf輸出語句,然后結(jié)束程序,整個過程c的值沒有發(fā)生變化。

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

54.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向為由右向左,即將:右側(cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運(yùn)算符%的運(yùn)算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

55.D解析:在C語言的標(biāo)準(zhǔn)中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應(yīng)該選擇D。

56.D

57.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。

(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。

(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。

軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細(xì)的測試計劃,了解測試項目的業(yè)務(wù)需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機(jī)選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。

58.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計,從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

59.A解析:本題主要考查自加運(yùn)算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達(dá)式的值參與運(yùn)算;②后綴變量“i++、i--”,先使用此時的表達(dá)式的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。本題中計算表達(dá)式c=(a++)-1時先使用a的值進(jìn)行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達(dá)式c+=-a+++(++b)等價于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時a=4,b=3。

60.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。

strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。

61.D

62.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。

63.C

64.Ac語言中八進(jìn)制整型常量的開頭是數(shù)字0,十六進(jìn)制整型常量的開頭是數(shù)字c語言中的實(shí)型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實(shí)型常量必須要有小數(shù)點(diǎn);指數(shù)形式,以“e”或“E”后跟一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B)選項中028錯誤,八進(jìn)制中沒有數(shù)字8。C)選項中4el.5中e后面的指數(shù)不是整數(shù)。D)選項中e5小數(shù)點(diǎn)后面缺少數(shù)字。因此本題答案為A)。

65.C函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。所以正確答案為c)。

66.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。

ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指針。

ftell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯。

67.C本題主要考查的是用二維數(shù)組首地址和

下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:

012

234

456

簪由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

68.B

69.B本題的考查點(diǎn)是數(shù)組元素的引用。cp=c這個語句是將數(shù)組c的首行元素地址賦給了指針數(shù)組cp。選項A,cp+1是指將數(shù)組c的首行地址加l,即為第二行地址;選項B,*(cp+3)是地址,等于數(shù)組C的首地址加3的那個內(nèi)存單元的內(nèi)容,不是對數(shù)組元素的引用;選項C,*(cp+1)+3是地址,等于數(shù)組C的首地址加1的那個內(nèi)存單元中存放的值加3,不是對數(shù)組元素的引用。

70.D

71.C

72.B

73.BC語言中,字符串是用一對雙引號括起來的字符序列,并用字符型數(shù)組來存放,故c選項和D選項不屬于字符串,A選項定義的是一個字符變量s

溫馨提示

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

最新文檔

評論

0/150

提交評論