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

下載本文檔

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

文檔簡介

2022年黑龍江省雞西市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式

C.數(shù)據(jù)在計算機(jī)中的順序存儲方式

D.存儲在計算機(jī)外存中的數(shù)據(jù)

2.下列運(yùn)算符中,運(yùn)算對象必須是整型的是()。

A./B.%=C.=D.&

3.

4.設(shè)變量n為f1oat類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五人運(yùn)算的表達(dá)式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

5.已定義以下函數(shù)“intfun(int*p){return*p;}”,fun函數(shù)的返回值是()。

A.—個整數(shù)B.不確定的值C.形參p中存放的值D.形參p的地址值

6.數(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è)計

7.有以下程序:#include<stdio.h>voidmain(){doublex=3.14159;printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);}程序運(yùn)行后的輸出結(jié)果是()。

A.3.142000B.3.141000C.3.143000D.3.140000

8.

9.

10.

11.

12.向一個棧頂指針為H的鏈棧中插入一個s所指向的結(jié)點(diǎn)時,需執(zhí)行()。

A.H->link=s

B.s->link=H->link;H->link=s;

C.s->link=H;H=s;

D.s->link=H;H=H->link;

13.

14.對含有16個元素的有序表進(jìn)行二分查找,關(guān)鍵字比較次數(shù)最多是()

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

15.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計算每對頂點(diǎn)最短路徑的Floyd-Warshall算法

16.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

17.設(shè)x和y均為int型變量,且x=10,y=3,則以下語句的輸出結(jié)果是()printf("%d,%d\n",x--,--y);

A.10,3B.9,3C.9,2D.10,2

18.下列對于線性鏈表的描述中正確的是()

A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

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

A.順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間不一定是連續(xù)的

B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性結(jié)構(gòu)

C.順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表

D.鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間

20.有以下程序:#include<stdio.h>main(){chars[]="012xy\O8s34f4w2‘;inti;n=0;,for(i=0;s[i]!=0;i++)if(s[i]>=0s[i]<=9)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.3C.7D.8

二、2.填空題(20題)21.在程序設(shè)計階段應(yīng)該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計語言寫成程序。

22.在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。

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

24.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

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

26.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

27.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請?zhí)羁铡?/p>

#include<stdio,h>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i<3;i++)printf("%4d",b[i]);

prinff("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];'

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

【】=x;

}

}

28.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

29.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

30.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

31.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

32.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個。

33.以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請?zhí)羁铡?/p>

#inelude<stdio.h>

main()

{eharb[17]={"0123456789ABCDEF"};

intc[64],d,i=0,base=16;

longn;

printf("Enteranumber:\n");

seanf("%ld",&n);

do{c[i]=【】;i++;n=n/base;}

while(n!=0);

printf("Transmitenewbase:\n");

for(--i;i>=0;--i)

{d=c[i];printf("%c",b【】);}

printf("\n");

}

34.下面程序的運(yùn)行結(jié)果是:【】。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf(“%d%d\n”,i1,i2);

}

35.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(S);

for(i=j(luò)0;s[i]!'\0';i++)

if(s[i]!='c')______;

s[j]='\0;

puts(S);

}

36.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

37.下面程序的功能是輸出數(shù)組中最大的數(shù),由a指針指向該元素。請?zhí)羁铡?/p>

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11},*a,*b;

for(b=s,a=s;b-s<13;b++)

if(【】)a=b;

printf("%d",*a);}

38.下面程序的執(zhí)行結(jié)果是【】。

main()

{

inta=5,b=4,c=9;

printf("###%d",(a<C)?c*b:a*B);

}

39.執(zhí)行以下程序后,輸出‘#’號的個數(shù)是______。

#include<stdio.h>

main()

{

inti,j;

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

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

putchar('#');

}

40.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

三、1.選擇題(20題)41.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。

A.實(shí)現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫D.以上答案均正確

42.為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為______。

A.PAD圖B.N-S圖C.結(jié)構(gòu)圖D.數(shù)據(jù)流圖

43.下列敘述中,錯誤的一條是______。

A.已知i=3,執(zhí)行語句k=(++i)+(++i)+(++i)后,k的值為15

B.邏輯表達(dá)式!(5>3)&&(2<4)的值為0

C.表達(dá)式'c'&&'d'||!(3+4)的值為1

D.整型、實(shí)型、字符型數(shù)據(jù)可以混合運(yùn)算

44.以下程序運(yùn)行后,輸出結(jié)果是()#include<stdio.h>ss(char*s){char*p=s;while(*p)p++return(p-s);}main(){char*a=“abded”inti;i=ss(a);printf(“%d\n”,i);}A.8B.7C.6D.5

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

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語言中,預(yù)處理命令行都以“#”開頭

C.每個C程序必須在開頭包含預(yù)處理命令行:#include<stdio.h>

D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

46.以下定義語句中正確的是

A.inta=b=0;

B.charA=65+1,b=′b′;

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

47.變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是()。

A.a^bB.a|bC.a&bD.a<<4

48.設(shè)int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。

A.0~65535B.-32769~32767C.1~65536D.0~32767

49.執(zhí)行以下程序后,a,b的值分別是()。#include<stdio.h>main(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

50.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。

A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移

51.下面程序的輸出是_______。typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

52.設(shè)有如下的函數(shù)______。f(x)floatx;{printf("\n%d",x*x);}則函數(shù)類型

A.與參數(shù)x類型相同B.是voidC.是intD.無法確定

53.有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}}main(){inta[]={1,2,3,4,5,6),i;fun(a,0,5)for(i=0;i<6;i++)printf("%d",a[i]);}執(zhí)行后的輸出結(jié)果是()。

A.654321B.432156C.456123D.123456

54.從工程管理角度,軟件設(shè)計一般分為兩步完成,它們是()。

A.概要設(shè)計與詳細(xì)設(shè)計B.數(shù)據(jù)設(shè)計與接口設(shè)計C.軟件結(jié)構(gòu)設(shè)計與數(shù)據(jù)設(shè)計D.過程設(shè)計與數(shù)據(jù)設(shè)計

55.下列標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.SwitchD.return

56.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

57.在16位編譯系統(tǒng)上,若有定義inta[]={10,20,30},*p=&a;,當(dāng)執(zhí)行p++后,下列說法錯誤的是()。

A.p向高地址移了一個字節(jié)B.p向高地址移了一個存儲單元C.p向高地址移了兩個字節(jié)D.p與a+1等價

58.以下對結(jié)構(gòu)體變量mix中成員x的正確引用是______。struct{intt;intx;}mix,*p;p=&mix;

A.(*p).mix.xB.(*p).xC.p->mix.xD.p.mix.x

59.以下程序調(diào)用findmax函數(shù)返回數(shù)組中的最大值findmax(inE*a,intn){int*p,*s;for(p=a,s=a;p-a<n;p++)if(______)s=p;return(*S);}main(){intx[5]={12,21,13,6,18);printf("%d\n",findmax(x'5));}在下劃線處應(yīng)填入的是

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

60.有以下程序:#include<stdio.h>voidfun(char**p){++P;printf("%s\n",*p);}main()char*a[]={"Morning","Afternoon","Evening","Night"};fun(A);}程序的運(yùn)行結(jié)果是()。

A.AfternoonB.fternoonC.MorningD.oring

四、選擇題(20題)61.以下選項中不能作為c語言合法常量的是()。

62.

63.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

64.下面的變量說明中__________是正確的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

65.

66.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

67.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

68.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.21B.11C.6D.120

69.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

70.讀出以下語句的輸出結(jié)果是()。

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

71.下列函數(shù)的功能是()

72.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

73.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已經(jīng)正確定義并賦值,錯誤的函數(shù)調(diào)用是()。A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);

74.以下程序的輸出結(jié)果是()。

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

75.設(shè)已有定義:floatx;,則以下對指針變量P進(jìn)行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float=1024;

76.以下函數(shù)返回a所指數(shù)組中最大值所在的下標(biāo)值

fun(int*a,intn)

{

inti,j=0,p;

p=j;

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

if(a[i]>a[p])_________;

return(p);

}

在下畫線處應(yīng)填入的內(nèi)容是

A.i=pB.a(chǎn)[p]=a[i]

C.p=iD.p=j

77.下列敘述中錯誤的是()。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)的支持

78.某循環(huán)隊列的存儲空間為Q(4:m),初始狀態(tài)為front=lea/"=m?,F(xiàn)經(jīng)過一系列的人隊操作和退隊操作后,front=m,r6ar=m一1,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.mC.1D.0

79.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.123456B.14C.1234D.12

80.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()

A.軟件結(jié)構(gòu)定義

B.模塊獨(dú)立性

C.模塊類型劃分

D.模擬耦合度

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次逆向取出,構(gòu)成一個新數(shù)放在t中。高位在低位,低位在高位。例如,當(dāng)s中的數(shù)為12345678時,則t中的數(shù)為8642。

請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc(),其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。注意:部分源程序給m如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

2.B

3.B

4.B

5.A函數(shù)返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。故本題答案為A選項。

6.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)特性)。

7.A根據(jù)算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性。表達(dá)式“int(x*1000+0.5)/(double)1000”,首先計算“x*1000”,由于x是double類型,1000是整型,所以“x*1000”的結(jié)果默認(rèn)是double類型,即3141.59,加0.5后再執(zhí)行int的強(qiáng)制轉(zhuǎn)換,結(jié)果為3142。分母“(double)1000”強(qiáng)制轉(zhuǎn)換為double類型,此時計算“3142/(double)1000”,3142需要轉(zhuǎn)換成double類型,然后除以1000,結(jié)果為3.142000,默認(rèn)保留小數(shù)點(diǎn)后6位。故本題答案為A選項。

8.C

9.D

10.D\r\n

11.B

12.C

13.A

14.C

15.D

16.B棧是先進(jìn)后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。

17.D

18.A本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。\n在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。故本題答案為A。

19.A解析:順序存儲結(jié)構(gòu)就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈?zhǔn)酱鎯Y(jié)構(gòu)中各數(shù)據(jù)結(jié)點(diǎn)的存儲序號是不連續(xù)的,并且各結(jié)點(diǎn)在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結(jié)構(gòu),所以選項B、C不正確。順序結(jié)構(gòu)使用的是連續(xù)物理空間,鏈?zhǔn)浇Y(jié)構(gòu)可以使用零散的物理空間存儲,鏈?zhǔn)浇Y(jié)構(gòu)更靈活,不存在誰節(jié)約空間的說法,所以選項D不正確。

20.B考查簡單的C程序數(shù)組和循環(huán)。for循環(huán)是指i=0,如果s/[3]!=0,則i自動加1。if循環(huán)指的是s[i]中的元素大于等于0且小于等于9,則n加l,所以答案為B。

21.自頂向下自頂向下解析:在程序設(shè)計時,應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。

22.方法方法解析:在面向?qū)ο蠓椒ㄖ校椒ㄊ侵冈试S作用于某個對象上的各種操作。

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

24.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。

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

26.類類

27.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(shù)組a是一個3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當(dāng)外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則從一行的4個數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。

28.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關(guān)知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

29.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,使后一個數(shù)為前一個數(shù)的2倍加1。所以最后輸出為1、3、7、15。

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

31.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

32.3232解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點(diǎn)。由此,26-1=32.所以答案為32。

33.n%base[d]n%base[d]解析:程序中的字符數(shù)組b存儲了十六進(jìn)制16個數(shù)字的字符,整型數(shù)組c用于存儲轉(zhuǎn)換的十六進(jìn)制數(shù)的各位數(shù)值。將整數(shù)n轉(zhuǎn)換成它的各位十六進(jìn)制數(shù)值,需采用除以16取余的方法,即求n除以16的余,得到它的十六進(jìn)制的末位數(shù),接著將n除以16,在n不等于0的情況下循環(huán),順序求出n的十六進(jìn)制的倒數(shù)第一、第二、第三位數(shù)等。程序中變量base已預(yù)置16,所以在第一處填n%base。當(dāng)n的十六進(jìn)制數(shù)的倒數(shù)第一、第二、第三位等依次存放于數(shù)組c中后,就從最高位至最低位,參照數(shù)組c[i]的內(nèi)容d(以其內(nèi)容為下標(biāo)),取十六進(jìn)制數(shù)字符表中的字符b[d)輸出,所以在第二處填[d]。

34.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。

35.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過.j++將下標(biāo)加1,指向下一元素要存儲的位置。

36.軟件開發(fā)

37.*b>*a

38.###36

39.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當(dāng)i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當(dāng)i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#當(dāng)i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#,當(dāng)i=4時,內(nèi)層循環(huán)循環(huán)三次,輸出三#。當(dāng)i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。

40.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。

41.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫;③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫。

42.B解析:常見的過程設(shè)計工具有:程序流程圖、N-S圖、PAD圖和HIPO圖。其

中,為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流

程圖,通常也把這種圖稱為N-S圖。

注意:其他常用算法描述工具的概念。

43.A

44.D

45.B解析:選項B)正確,預(yù)處理命令行之前都有一個“#”符號。C語言提供三種預(yù)處理:宏替換,文件包含,條件編譯。

46.B解析:本題考查變量的定義方法。

47.A解析:1與1異或結(jié)果為0,0與1異或結(jié)果為1,可見要使某位數(shù)翻轉(zhuǎn),只要使其與1進(jìn)行異或運(yùn)算即可。0與0進(jìn)行異或運(yùn)算結(jié)果為0,1與0進(jìn)行異或運(yùn)算結(jié)果為1,可見要使某位的數(shù)不變,只要使其與0進(jìn)行異或運(yùn)算即可。

48.A解析:本題int型占2個字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(2(上標(biāo))16-1),即0~65535。

49.C解析:a=p1==&m;等價于a=(P1==&m);將p1是否等于m的地址的邏輯值(0)賦給變量a;在b=(*p1)/(*p2)+7;語句中,(*P1)/(*p2)=0,因此將表達(dá)式的值7賦給變量b。

50.BB。【解析】程序的三種基本控制結(jié)構(gòu)包括:順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)就足以表達(dá)出各種其他形式的結(jié)構(gòu)。

51.C解析:sizeof(x)是一個標(biāo)準(zhǔn)C函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù),題目中定義了一個共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度。

52.C解析:在函數(shù)名前沒有說明函數(shù)返回值類型時,隱含為int類型。

53.A解析:函數(shù)fun()中有3個參數(shù),參數(shù)a為一個指針變量,接收的實(shí)參可以是數(shù)組名,參數(shù)i和j分別表示數(shù)組元素的下標(biāo),當(dāng)下標(biāo)i小于下標(biāo)j時,a[i]和a[j]交換,然后對自身進(jìn)行調(diào)用,可見這是一個遞歸函數(shù)。其實(shí)現(xiàn)的功能是把數(shù)組a從下標(biāo)為i的元素到下標(biāo)為j的元素之間的所有元素反序存放。在主函數(shù)中調(diào)用fun()函數(shù),把a(bǔ)數(shù)組從a[0]到a[5]之間的所有元素反序存放,最后輸出從a[0]到a[5]的值,因此輸出的值為6、5、4、3、2、1,.所以,A選項為所選。

54.A解析:從工程管理的角度看,軟件設(shè)計可分為概要設(shè)計和詳細(xì)設(shè)計兩大步驟。概要設(shè)計是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架;詳細(xì)設(shè)計是將其進(jìn)一步精化成軟件的算法或表示和數(shù)據(jù)結(jié)構(gòu)。而在技術(shù)上,概要設(shè)計和詳細(xì)設(shè)計又由若干活動組成,包括總體結(jié)構(gòu)設(shè)計/數(shù)據(jù)設(shè)計和過程設(shè)計。因此,本題的正確答案是A。

55.C解析:break、char、return、switch都是C語言中的關(guān)鍵字,switch不是。因為C語言區(qū)分字母的大小寫。

56.D解析:a是一個2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。

57.A解析:*p=&a將數(shù)組a[]的首地址賦給指針p,通過對指針變量進(jìn)行加上或減去一個整數(shù)可以移動指針,移動的單位為存儲單元,int型變量在存儲器中占兩個字節(jié)。

58.B解析:結(jié)構(gòu)體變量中的成員有3種引用方式:①結(jié)構(gòu)體變量名.成員名;②指針變量名->成員名:③(*指針變量名).成員名。

59.B解析:在main()函數(shù)中定義了一個具有5個元素的x數(shù)組并賦初值,然后調(diào)用findmax()函數(shù)求數(shù)組中元素的最大值。調(diào)用時把數(shù)組元素x的首地址,傳給了形參指針變量a,把5傳給形參n。在函數(shù)findmax()中定義了兩種指針變量p和s,其中s用來記錄最大元素的地址,p作為循環(huán)控制變量,表示每個元素的地址.求最大值的算法是先將第一個元素(用s記下它的地址)做為最大值,然后用最大值(*s)與后面的每個元素比較(*p),若后面的元素大,則用s記下它的地址,所以下劃線應(yīng)填“*s<*p*或“*P>*s”。所以,4個選項中B為所選。

60.A

61.A本題考查的是c語言的常量。0.1e+6是實(shí)型常量的指數(shù)形式,代表0.1×10的6次方,所以選項B)是合法的;

“a”是合法的字符串常量,a9一個非打印的轉(zhuǎn)義字符表示響鈴,所以選項C)是合法的;011是一個字符常量,011是一個用3位八進(jìn)制表示的轉(zhuǎn)義字符,所以選項D)也是合法的。在C語言中,字符常量是用單引號括起來的一個字符,選項A)中的cd包含了2個字符,所以是不正確的。

62.D

63.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

64.B

65.B

66.B本題考查自加(++)、自減(--)運(yùn)算符的使用。“++x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時的表達(dá)式的值參與運(yùn)算;“x++,x--”,先把使用X的值參與運(yùn)算,在使用X之后,再使x的值加1或者減1。對于表達(dá)式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達(dá)式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個表達(dá)式c=y=5。故B正確。

67.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時“表達(dá)式2”的值就是整個條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時,求出“表達(dá)式3”的值,此時“表達(dá)式3”的值就是整個條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。

68.A循環(huán)調(diào)用fun函數(shù),依次返回值為23456,s原值為l,累加以上返回值,最終結(jié)果為21,所以答案選擇A)。

69.A選項A計算的是p口字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù)。選項8、C和D都能計算出一個字符型數(shù)據(jù)所占的字節(jié)數(shù)。

70.D

71.A將a數(shù)組里元素賦值給b數(shù)組,直到數(shù)組a的末尾,所以選擇A)。

72.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。

73.C本題考查函數(shù)在函數(shù)調(diào)用時參數(shù)

溫馨提示

  • 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

提交評論