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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。

A.a++;B.b++;C.c++;D.d++;

2.if語句基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

3.

4.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無意義C.變量p的地址值D.3

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

voidfun(intn,doublex){……}

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

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

6.設有定義:“char*c;”,以下選項中能夠使字符型指針c正確指向一個字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

7.

8.在有序表(12,24,36,48,60,72,84)中二分查找關鍵字72時所需進行的關鍵字比較次數(shù)是()

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

9.在一個C語言源文件中定義的全局變量,其作用域為()。

A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

10.以下可以正確且安全地用作用戶標識符的一組選項是()。

A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter

11.將兩個各有n個元素的有序表歸并成一個有序表,最少的比較次數(shù)是()。

A.nB.2n-1C.2nD.n-1

12.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

13.下列程序的輸出結果是______。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

14.以下能正確定義一維數(shù)組的選項是()。

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";

15.用鄰接矩陣A表示有向圖G的存儲結構,則有向圖G中頂點i的出度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

16.甲乙兩個聰明人上街,撿到一張10塊錢的購物卡,兩人就想出一個辦法來分配這張卡。兩個分別將自己出的價格寫在紙上,然后看誰出的價高就給誰,并且那個出價高的人要把出的錢給對方?,F(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對方當前有多少錢并且都希望自己收益高于對方。問最后誰獲得的錢多()

A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況

17.下面哪個不是用來解決哈希表沖突的開放地址法()

A.線性探測法B.線性補償探測法C.拉鏈探測法D.隨機探測法

18.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

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

A.算術運算符中不包含“=”運算符

B.模運算符“%”是c語言基本的算術運算符

C.算術運算符中只有“*”、“/”優(yōu)先級高于關系運算符

D.自加和自減運算符只能用于變量,而不能用于常量或表達式

20.有以下程序:

#include<stdio.h>

voidfunc(intn)

{staticintnum=1);

num=num+n;printf("%d",num);

}

main()

{funo(3);func(4);printf("n");}

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

A.48B.34C.35D.45

二、2.填空題(20題)21.設有以下定義

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下圖所示鏈表結構:

請寫出刪除結點y的賦值語句______。

22.數(shù)據模型是數(shù)據庫系統(tǒng)中用于提供信息表示和操作手段的結構形式。實際數(shù)據庫系統(tǒng)中所支持的數(shù)據模型主要有層次模型、網狀模型和【】3種。

23.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。

24.對下列二叉樹進行中序遍歷的結果為【】。

25.函數(shù)fun的功能是使一個字符串按逆序存放。請?zhí)羁铡?/p>

voidfun(charstr[])

{charm;inti,j;

for(i=0,j=strlen(str);i<【】;i++,j--)

{m=str[i];

str[i]=【】;

str[j-1]=m;

}

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

}

26.已知字符'A'的ASCII碼值為65,以下語句的輸出結果是【】。

charch='B';

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

27.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。

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

29.有以下程序

main()

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

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

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

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

32.下面程序的運行結果是______。

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

33.以下函數(shù)的功能是計算s=1+1/21+1/3!+…+1/n!,請?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

34.該程序運行的結果是【】。

#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);

}

35.以下程序的功能是根據輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."。空白處需要填入的內容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

36.若a=10,b=20,則表達式!(a<b)的值是【】。

37.下面程序是計算100以內能被4整除且個位數(shù)為4的所有整數(shù),請?zhí)羁铡?/p>

main()

{intm,n;

for(m=0;【】;m++)

{n=m*10+4;

If(【】)continue;

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

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

main()

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

fot(i=0;i<10;i++)art[i]=i;

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

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

}

39.軟件工程研究的內容主要包括:軟件開發(fā)技術和【】。

40.數(shù)據結構分為線性結構和非線性結構,帶鏈的隊列屬于[]。

三、1.選擇題(20題)41.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

42.以下程序輸出的結果是_______。main(){inta=65535;printf("%d%u",a,A);}

A.-1-1B.6553565535C.-165535D.65535-1

43.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使I、j、k的值分別為2、3、4,

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

C.scanf("%d%d%d",&i,&j,&k);

D.seanf("i=%dj=%d,k=%d",&i,&j,&k);

44.程序段如下intk=-20;while(k=0)k=k+1;則以下說法中正確的是()

A.while循環(huán)執(zhí)行20次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

45.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.選擇排序C.快速排序D.歸并排序

46.以下敘述中正確的是_______。

A.預處理是指完成宏替換和文件包含中指定文件的調用

B.預處理也是C語句

C.C源程序中,凡是行首以#標識的控制行都是預處理指令

D.預處理就是完成C編譯程序對C源程序的第一遍掃描,為編譯的詞法分析和語法分析做準備

47.若已定義:inta=25,b=14,c=19;執(zhí)行以下三目運算符(?:)所構成的語句:a<=25&&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);輸出結果是()。

A.***a=25,b=13,c=19

B.***a=26,b=14,c=19

C.###a=25,b=13,c=19

D.###a=26,b=14,c=19

48.為了避免嵌套的if-else的二義性,C語言規(guī)定:else與______配對。

A.縮排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if

49.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序運行后的輸出結果是——。

A.10234B.12344C.12334D.12234

50.以下4個選項中,不能看成一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

51.有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序執(zhí)行后的輸出結果是()。

A.正整數(shù)1~9的累加和B.正整數(shù)1~10的累加和C.正整數(shù)1~9中奇數(shù)之和D.正整數(shù)1~10中偶數(shù)之和

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

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內存空間

53.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}程序執(zhí)行后輸出結果是()。

A.x=4B.x=8C.x=6D.x=12

54.在數(shù)據庫管理系統(tǒng)提供的數(shù)據語言中,負責數(shù)據的查詢及增、刪、改等操作的是

A.數(shù)據定義語言B.數(shù)據轉換語言C.數(shù)據操縱語言D.數(shù)據控制語言

55.下列數(shù)據結構中的______是線性結構。

A.隊列B.有向圖C.樹D.哈夫曼樹

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

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

57.有以下程序intf(intn){if(n==l)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf{"%d\n",j);}程序運行后的輸出結果是

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

58.已定義ch為字符型變量,以下賦值語句中錯誤的是

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

59.對建立良好的程序設計風格,下列描述正確的是()。

A.程序應該簡單、清晰、可讀性好B.符號名的命名只需要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

60.請讀程序:#include<stdio.h>main(){floax,y;scanf("%f",&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf("%f\n",y);}若運行時從鍵盤上輸入2.0<CR>(<CR>表示回車),則該程序的輸出結果是()

A.0B.0.25C.0.5D.1

四、選擇題(20題)61.

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

A.12.0Xa234.5e0

B.028.5e…30xf

C.1774el.50abe

D.0x8A10,0003.e5

63.

64.有下列程序

main()

{

inta[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

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

}

運行該程序,其輸出結果是

A.4B.22

C.24D.46

65.

66.以下程序運行后的輸出結果是()。

A.EFGHIJABCD

B.bcdefghij

C.abdefCghij

D.不確定的值

67.以下程序段完全正確的是()。

68.下列敘述中錯誤的是()。

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

69.

70.

71.若有定義語句:doublex,y,*px,*PY;執(zhí)行了laX=&x;lay=&y;之后,正確的輸入語句是()。A.scanf(”%If%le”,px,lay);

B.seanf(”%f%f¨&x,y);

C.seanf(”%f%f",x,y);

D.Scanf(”%If%If"·,x,y):

72.設有如圖所示二叉樹,對此二叉樹后序遍歷的結果為()。

A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY

73.

74.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為l的結點數(shù)為()。

A.16B.10C.6D.4

75.下列C語言用戶標識符中,不屬于合法標識符的是

A.ad_intB.bb_7C._dd7D.int

76.

77.

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

voidfun(int*X,inty)

{printf("%d%d",*x,*y);*x=3;*y=1;}

main

{intx=1,y=2;

fun(&y,&x);

printf("%d%d",x,y);

}

A.2143B.1212C.1234D.2112

78.下列各數(shù)據類型不屬于構造類型的是()。

A.枚舉型B.共用型C.結構型D.數(shù)組型

79.

80.標準庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)s由

B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中

C.從文件file中讀到n個字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>voidproc(char*str){inti,j;//****found****for(i=j=0;str[i]一0;i++)if(str[i]!=F)//****found****str[i]=str[i];str[j]=\0;}voidmain{charstr[80];printf("\nEnterastring:");gets(str);printf("Theoriginalstring:");puts(str);proc(str);printf("Thestringafterdeleted:");puts(str);printf("\n\n");}

六、程序設計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:實現(xiàn)B=A+A',即把矩陣A加上A的轉置,存放在矩陣B中。計算結果在main()函數(shù)中輸出。

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

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

試題程序:

參考答案

1.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。

2.D考查if循環(huán)語句。if(表達式),其中表達式是一個條件,條件中可以是任意的合法的數(shù)值。

3.B

4.D

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

6.A選項B是從鍵盤上輸入字符串,選項C是接收字符,選項D不正確。

7.C

8.B

9.A全局變量的作用域是從聲明處到文件的結束。故本題答案為A選項。

10.AC語言中,合法的標識符由字母、數(shù)字和下劃線組成,并且第1個字符必須是字母或下劃線。選項D中的“3break”錯誤;用戶標識符不能是C語言中的關鍵字或函數(shù),選項B中的“unsigned”是關鍵字,不是合法的用戶標識符,“Switch”是合法的用戶標識符;選項C中的“getch”是庫函數(shù)名,不是合法的用戶標識符,而C語言區(qū)分字母大小寫,“Abc”是合法的用戶標識符;選項A中的兩個標識符都是合法的用戶標識符。故本題答案為A選項。

11.B

12.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

13.C

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

15.A

16.C

17.C

18.AB選項中運算符“%”的運算對象為整數(shù)。C選項中不能將變量賦給表達式“x+n”。D選項中不能將表達式“4+1”賦給常量5。故本題答案為A選項。

19.C

20.A\n第一調用func函數(shù)時輸出4,第二次調用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調用結果為8,所以輸出結果是48。

\n

21.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本題考核的知識點是鏈表中結點的刪除。要刪除結點y,只需要讓結點x的指針域指向y結點的指針域所指向的后續(xù)結點就可,因此只需把結點2的地址賦給x的指針域就可以了即讓結點x的指針域指向結點2。而結點z得地址保存在節(jié)點y的指針域中,因此只需把節(jié)點y的指針城賦值給節(jié)點x的指針域即可。

22.關系模型關系模型

23.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關系。

24.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結點。③技中序遍歷右子樹。根據遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結點B,然后訪問結點D,因為結點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結點F的左子樹。然后訪問根結點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結點E,然后訪問結點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結果為ACBDFEHGP。因此,劃線處應填入“ACBDFEHGP”。

25.strlen(str)/2str[j-1]

26.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結果為:B66。

27.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內部結構和內部特征,而只是根據程序功能導出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。

28.x+=1;

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

30.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

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

32.8080解析:本題考查的知識點是共用體數(shù)組變量所占內存的長度。數(shù)組a是共用體變量,共用體類型變量所占的內存長度為最大成員的長度,即單精度數(shù)組的長度,為4×4=16,因此,數(shù)組a所占的內存長度為5×16=80,所以最后輸出的s的值為80。

33.k=k*ik=k*i解析:本題中遺過for循環(huán)求s表達式中每一項的和,表達式“fac=fac/k;”求的是每—項的值,所以k的值應為n!,在求n!的時候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。

34.4844

35.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據輸入的字符調用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結構來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現(xiàn)的。

36.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。

37.m<10n%4!=0

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

39.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術和方法指導軟件的開發(fā)與維護:軟件工程學的主要研究對象包括軟件開發(fā)與維護的技術、方法、工具和管理等方面。即軟件工程研究的內容主要包括:軟件開發(fā)技術和軟件工程管理。

40.線性結構線性結構解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結構。

41.B解析:在長度為64的有序線性表中,其中的64個數(shù)據元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進行順序查找,最壞的情況就是查找的數(shù)據元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據和線性表的第一個數(shù)據元素進行比較,若相等,則查找成功,否則,繼續(xù)進行比較,即和線性表的第二個數(shù)據元素進行比較。同樣,若相等,則查找成功,否則,繼續(xù)進行比較。依次類推,直到性表中查找到該數(shù)據或查找到線性表的最后一個元素,算法才結束。因此,在長度為64的有序線性表十進行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項B。

42.C解析:printf函數(shù)中不同類型的數(shù)據用不同的格式字符,其中%d是按整型數(shù)據的實際長度輸出十進制整數(shù)。變量a=65535以%d格式輸出時溢出輸出值為該數(shù)的補碼值,即-1:%u用來輸出unsigned型數(shù)據,無符號整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。

43.B解析:scanf函數(shù)的調用形式是:scanf(格式字符串;輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應的位置原樣輸入這些字符,其中的逗號也必須輸入。

44.C

45.A解析:以下幾種算法的時間復雜度分別為:冒泡排序(n2);選擇排序(n2);快速排序(nlog2n);歸并排序(nlog2n)。當排序元素序列基本有序的情況下,冒泡排序的交換次數(shù)為0,只是順序掃描數(shù)據而已,所以其效率是最高的。

46.C解析:預處理功能主要有以下三種:宏定義、文件包含和條件編譯,所以A不正確。預處理不是C語句,所以B不正確。預處理命令是由ANSIC統(tǒng)—規(guī)定的,編譯程序不能識別它們,D也不正確。

47.C解析:此題綜合考查多種運算符的使用:首先計算表達式a<=25&&b--<=2&&c的值,很容易看出b--<=2的值為假,因此表達式為假;根據三目運算的特點,由于表達式為假,所以應該執(zhí)行printf('###a=%d,b=%d,c=%d\\n',a,b,c);這時a的值依然為25,b的值經過b--運算后變?yōu)?3,而c的值仍為19。

48.B解析:在if語句中又包含—個或多個if語句稱為if語句的嵌套。應當注意if與else的配對關系,在C語言中,從最內層開始,else總是與它上面最近的(未曾配對的)if配對。

49.C解析:由于用了宏定義a[10]~a[19]均為0。函數(shù)fun的功能是把從a[n]到a[m]中的元素依次賦給后面的一個元素。調用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。

50.D解析:選項D)為兩條語句。

51.D解析:通過for(i=1;i<10;i+=2)可知,i取值為1~10的奇數(shù),即1,3,5,7,9,i+1即為2,4,6,8,10。因此,程序的功能是計算并輸出1~10中的偶數(shù)之和,s+=i+1就是累加這些偶數(shù)。

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

53.B解析:外循環(huán)的循環(huán)變量i從0遞增到1會循環(huán)2次,內循環(huán)的循環(huán)變量j從0遞增到3會循環(huán)4次。但是內循環(huán)中有一條if語句,每當j%2為真,即j為奇數(shù)時會跳過下面的x++;語句,所以4次內循環(huán)只有2次執(zhí)行到x++;語句,再加上外循環(huán)中包含的2條x++語句,所以每次外循環(huán)會使x自增4次,2次外循環(huán)下來x的值為8。故應該選擇B。

54.C【解析】在數(shù)據庫管理系統(tǒng)提供的數(shù)據語言中,數(shù)據操縱語言負責數(shù)據的查詢及增、刪、改等操作。故答案為C。

55.A

56.B解析:a=b=c+2實際上相當于a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。注意:選項A)中包含一個不合法的運算符“:=”;選項C)應改為(int)18.5%3;選項D)可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C++語言規(guī)定賦值號的左邊只能是單個變量,不能是表達式或常量等。注意:C++語言賦值語句的運用,

57.B解析:本題考查的知識點是遞歸函數(shù).通過分析不難寫出,f()函數(shù)的數(shù)學表達式為:

f(n)=1n=1;

f(n)=f(n-1)+1n不等于1;

在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調用f(i)。第一次:i為1,調用f(1)得到返回值1,并把它加到i中,i的值為1。第二次i為2,調用f(n),根據遞歸公式可知“f(2)=f(1)+1”,得到返回值2并把它加到i中,j的值為3。所以最后輸出的j的值為3,所以4個選項中B正確。

58.A解析:字符型變量用來存放字符常量,且只能存放一個字符。賦值反斜杠線“\\”,必須用轉義字符實現(xiàn),即ch='\\\\',所以選項A)錯誤;字符型變量可以賦0~255之間的ASCII碼值,整型數(shù)據和字符型數(shù)據有時可以通用,所以選項B)正確;可以將NULL賦給一個字符型變量,NULL代表一個空字符,相當于0,選項C)正確;'\\xaa'表示的是1~2位16進制數(shù)所代表的字符,所以選項D)正確。

59.A解析:“清晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。

60.C

61.C

62.AC語言中八進制整型常量的開頭是數(shù)字0,十六進制整型常量的數(shù)字開頭是Ox。C語言中的實型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實型常量必須要有小數(shù)點;指數(shù)形式,以“e”或“E",后跟一個整數(shù)來表示以l0為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中028錯誤,八透割中沒有數(shù)字8。c選項中4el.5中e后面的指數(shù)不是整數(shù):D選項中3.e5小數(shù)點后面缺少數(shù)字。

63.C

64.C在本題中,程序首先定義了一個一維數(shù)組a,賦其初值,并定義一個同類型的指針變量p和一個指向指針的指針變量k,然后讓指針變量p指向數(shù)組的首地址,接著將指針變量p的地址值賦給指向指針的指針變量k。

在第一條輸出語句中,首先我們需要弄清楚*(p++)的作用,它是先調用指針變量p的值,然后使其自加,輸出效果等價于*p,因此,最后輸出的結果是數(shù)組中的第一個元素。

在第二條輸出語句中,我們需要弄明白**k的作用,指向指針的指針變量類似于指針變量,如果用**k表示一個數(shù)值,可以確定這條輸出語句的輸出結果是一個數(shù)值,而非地址,從表達式k=&p可以看出,k的值是指針變量p的地址值,p的值改變后,k能實時得到改變,那么在第一條輸出語句對p的改變,在第二條輸出語句中得

溫馨提示

  • 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

提交評論