2021年黑龍江省佳木斯市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021年黑龍江省佳木斯市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021年黑龍江省佳木斯市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021年黑龍江省佳木斯市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021年黑龍江省佳木斯市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年黑龍江省佳木斯市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.若有定義:inta=7;floatx=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是()。

A.2.500000B.2.7500OOC.3.500000D.0.000000

2.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序運行后的輸出結(jié)果是()。A.ZhangB.ZhaoC.WangD.19

3.圖的深度優(yōu)先遍歷類似于二叉樹的_______。

A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷

4.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()

A.2和4B.1和5C.4和2D.5和1

5.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是______。main(){unsignedinta=32,b=66;printf("%c\n",b|b);}

A.66B.98C.bD.B

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

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

7.在數(shù)據(jù)庫系統(tǒng)中,用戶所見數(shù)據(jù)模式為______。A.概念模式B.外模式C.內(nèi)橫式D.物理模式

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

A.程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試

B.程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)

C.程序設(shè)計的任務(wù)就是確定所用算法

D.以上三種說法都不完整

9.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運行時輸入10.23.5并按<Enter>鍵,則輸出結(jié)果為()。

A.x=10.200000y=-3.200000

B.x=6.700000y=-13.700000

C.x=7.000000y=-3.500000

D.x=13.400000y=-7.000000

10.

11.第

27

有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零件;若分成7個零件一組,則多3個零件;若分成9個零件一組,則多5個零件。下面程序是求這堆零件總數(shù),請選擇填空。

#include<stdio.h>

main()

{inti;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!((i-3)%7))

if(_______)

printf("%d",i);

}

A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0

12.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是

A.一對一B.一對多C.多對一D.多對多

13.以下選項中,能用作用戶標識符的是()。

A._0_B.8_8C.voidD.unsigned

14.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是______。

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

15.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)

16.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

17.判定一個循環(huán)隊列qu(最多元素為MaxSize)為空的條件是()。

A.QU->rear-QU->front==MaxSize

B.QU->rear-QU->front-1==MaxSize

C.QU->front==QU->rear

D.QU->front==QU->rear+1

18.設(shè)有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時,若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

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

A.用戶定義的函數(shù)中可以沒有return語句

B.用戶定義的函數(shù)中可以有多個return語句,以便調(diào)用一次返回多個函數(shù)值

C.用戶定義的函數(shù)中若沒有return語句,則應(yīng)當定義函數(shù)為void類型

D.函數(shù)的return語句中可以沒有表達式

20.表達式“a+=a-=a=9”的值是()。

A.18B.-9C.0D.9

二、2.填空題(20題)21.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

22.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{

inta=5,b=2;c=3,d=3,t;

t+MAX(a+,b,c+D)*10;

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

}

24.下面程序的運行結(jié)果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

26.以下函數(shù)的功能是求x的y次方,請?zhí)羁铡?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

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

28.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?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);}

29.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。

30.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。

31.以下程序中,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;

}

}

32.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

33.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

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

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

36.若輸入thistestterminal,以下程序的輸出結(jié)果為:terminaltestthis。請?zhí)羁铡?/p>

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

for(j=i+1;j<3;j++)

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

38.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

39.以下程序的輸出結(jié)果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}

40.執(zhí)行以下for語句后,變量i的值是【】。

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

三、1.選擇題(20題)41.有以下程序int*f(znt*x,int*y){if(*x<*y)returnX;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d.%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

42.循環(huán)鏈表的主要優(yōu)點是()

A.不再需要頭指針了

B.從表中任一結(jié)點出發(fā)都能訪問到整個鏈表

C.在進行插入、刪除運算時,能更好的保證鏈表不斷開

D.已知某個結(jié)點的位置后,能夠容易的找到它的直接前件

43.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

44.棧和隊列的共同點是()。

A.都是先進后出B.都是先進先出C.只允許在端點處插入和刪除元素D.沒有共同點

45.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=O;if(a<B)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

46.以下程序的功能是:建立一個帶有頭結(jié)點的單向鏈表,并將存儲在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個結(jié)點中,請?zhí)羁铡?include<stdlib.h>stuctnode{chardata;struetnode*next;};stntctnode*CreatList(char*s){struetnode*h,*p,*q;h=(structnode*)malloc(sizeof(structnode));p=q=h;while(*s!='\0'){p=(structnode*)malloc(sizeof(structnode));p->data=()q->next=p;q=p;a++;p->next='\0';returnh;}main(){charstr[]="linklist";struetnode*head;head=CreatList(str);

A.*sB.sC.*s++D.(*s)++

47.下列屬于C語言語句的是______。

A.printf("%d\n",a)

B.#include<stdio.h>

C.a=b;b=c;c=a;

D./*thisisaprogram*/

48.以下不能對二維數(shù)組a進行正確初始化的語句是

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

C.inta[2)[3]={{1,2},{3,4},{5,6}};

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

49.計算機軟件是包括()的完整集合。

A.程序和數(shù)據(jù)B.數(shù)據(jù)C.程序、數(shù)據(jù)和文檔D.算法和數(shù)據(jù)

50.以下不能正確計算代數(shù)式sin2()值的C語言表達式是()。

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

51.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運行階段D.物理設(shè)計

52.有以下程序:main(){intn=0;do{n++;printf("%d\n",n);}while(n<=3);}程序的輸出結(jié)果是()。

A.12B.123C.1234D.1

53.若有以下程序#include<stdio.h>voidf(intn);main()(voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}則以下敘述中不正確的是

A.若只在主函數(shù)中對函數(shù)f進行說明,則只能在土函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對函數(shù)f進行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正碗調(diào)用函數(shù)f

C.對于以上程序,編譯時系統(tǒng)會提示出錯信息:提示對f函數(shù)重復(fù)況明

D.函數(shù)f無返回值,所以可用void將其類型定義為無值型

54.一棵二叉樹中共有70個葉子結(jié)點與80個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為()。

A.221B.219C.231D.229

55.若指針p已正確定義,要使p指向兩個連續(xù)的整型動態(tài)存儲單位,不正確的語句是

A.p=2*(int*)malloc(sizeof(int));

B.p=(int*)malloc(2*sizeof(int));

C.p=(int*)malloc(2*2);

D.p=(int*)malloc(2,sizeof(int));

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

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

57.對表進行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運算是()

A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接

58.有以下程序:#include<stdio.h>voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后的輸出結(jié)果是()。

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

59.若已知a=10,b=20,則表達式!a<b的值為______。

A.10B.1C.20D.30

60.在設(shè)計程序時,應(yīng)采納的原則之一是______。

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好

四、選擇題(20題)61.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

62.設(shè)有定義:floatx=123.4567;則執(zhí)行以下語句后的輸出結(jié)果是()。

A.123.460000B.123.456700C.123.450000D.123

63.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。

A.定義語句中的*號是一個間址運算符

B.定義語句中的*號只是一個說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中,*p=&n把變量a的地址作為初值賦給指針變量P

64.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上三種描述都不對

65.在Internet中,域名服務(wù)器的主要功能是實現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

66.

67.以下選項中可用做C程序合法實數(shù)的是()。

A..leOB.3.0e0.2C.E9D.9.12E

68.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

69.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。

A.順序結(jié)構(gòu)B.選擇(分支)結(jié)構(gòu)C.GOT0跳轉(zhuǎn)D.重復(fù)(循環(huán))結(jié)構(gòu)

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

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

71.

72.設(shè)有如下說明:

以下說法正確的是()。

A.NEW是一個結(jié)構(gòu)體變量

B.NEW是一個結(jié)構(gòu)體類型

C.ST是一個結(jié)構(gòu)體類型

D.以上說明形式非法

73.

74.以下不能正確定義二維數(shù)組的選項是A.inta[2][2]={{1},{2}};

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

C.inta[2][2]={{1},2,3};

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

75.

76.有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(“c,%d\n”,c1,c2);}已知字母A的ASCⅡ碼為65,程序運行后的輸出結(jié)果是()。A.E,68B.B,69C.E,DD.輸出無定值

77.

78.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進行排序。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,已知學生的記錄由學號和學習成績構(gòu)成,N名學生的記錄已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun(),該函數(shù)的功能是找出成績最高的學生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個最髙分)。已給出函數(shù)的首部,請完成該函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定義結(jié)構(gòu)體*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].num,a[i].s);fun(a,&m);printf(“****THERESULT****\n”);printf(“Thetop:%s,%d\n”,m.num,m.s);}

參考答案

1.A

2.Bfun(x+2)表示的是結(jié)構(gòu)體數(shù)組中的第3個元素即{03,"Zhao",l8),而輸出的是name元素,所以答案為B。

3.A

4.A

5.C解析:位運算符“|”的作用是按位或,即兩個二進制數(shù)的相應(yīng)位中只要一個為1,該位的結(jié)果值為1。最后以字符型輸出,98對應(yīng)的字符“b”。

6.BC語言中,八進制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項A錯誤。浮點數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項C錯誤。選項D中,整型數(shù)據(jù)l0,000的表示形式是錯誤的。

7.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。夕模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的—部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取力式的描述。

8.D\n程序設(shè)計是指設(shè)計、編制、調(diào)試程序的方法和過程。內(nèi)容涉及有關(guān)的基本概念、工具、方法以及方法學等。程序設(shè)計通常分為問題建摸、算法設(shè)計、編寫代碼和編譯調(diào)試4個階段。

\n

9.Asub函數(shù)接收兩個參數(shù):double類型變量a,double指針變量pb。首先將a與pb指向的變量值相減,結(jié)果存放在a中;然后再將pb指向的變量值與a的新值相減,結(jié)果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會修改實參x的值,但會修改實參y的值。當輸入10.23.5時,實參x的值為10.2,y的值為3.5,執(zhí)行sub函數(shù)后,x的值不變,y的值變成-3.2。故本題答案為A選項。

10.C

11.D

12.D解析:兩個實體間的聯(lián)系可以歸納為3種類型:一對一聯(lián)系:一對一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。一對多聯(lián)系,一對多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為二個表中的多個記錄在相關(guān)表中同樣有多個記錄其匹配。本題中一個顧客可以購買多種商品,同一種商品可以有多個顧客購買,所以商品和顧客之間是多對多的聯(lián)系。

13.AC語言的標識符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或下劃線。另外,關(guān)鍵字不能作為標識符。B選項中以數(shù)字8開頭,所以錯誤。C選項與D選項中用的是關(guān)鍵字“void”與“unsigned”,所以錯誤。故本題答案為A選項。

14.C解析:棧是一種后進先出表,選項C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進淺,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。

15.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。

16.B

17.C

18.Ascanf函數(shù)中,在格式字符前加入一個整數(shù)可以指定輸入數(shù)據(jù)所占的寬度,所以賦值時會將87賦給變量a,把6.0賦給float型變量b。故本題答案為A選項。

19.B函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。函數(shù)中允許有多個return語句,但每次只能調(diào)用一個return語句,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項。

20.C首先計算表達式“a=9”;再計算表達式“a-=9”;即“a=a-9”,結(jié)果為0;最后計算表達式“a+=0”,即“a=a+0”,所以最終結(jié)果為0。故本題答案為C選項。

21.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

22.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。

23.77解析:宏替換后,表達式t=MAX(a+b,c+d)*10即變?yōu)椋簍=(a+b)>(c+d)?(a+b):(c+d)*10;由于(a+b)>(c+d)為真,所以t=(a+b),即為7。

24.x=11x=11解析:在對無符號數(shù)的右移是高位補0。

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

26.xx解析:函數(shù)的定義形式為;

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求得變量的Y次方。

27.物理獨立性物理獨立性

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

29.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。

30.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。

31.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ù),當外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則從一行的4個數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。

32.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

33.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下—個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。

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

35.軟件開發(fā)

36.main()pstr*(pstr+j)

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

38.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

39.3535解析:本題考查函數(shù)中形參和實參的傳遞。在C語言函數(shù)中實參和形參傳遞具有不可逆性,參數(shù)只能由實參傳向形參,而不能由形參傳向?qū)崊ⅲm然swap函數(shù)的功能是實現(xiàn)兩個數(shù)的交換,但由于沒有返回值,故最終的輸出結(jié)果為35。

40.7

41.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y)該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和小并讓它們指向了變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和,r的值是7,8和7。所以,B選項為所選。

42.B解析:循環(huán)鏈表就是將單向鏈表中最后一個結(jié)點的指針指向頭結(jié)點,使整個鏈表構(gòu)成一個環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點出發(fā)都能訪問到整個鏈表。

43.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。

44.C棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種“先進先出”的線性表:本題答案為C)。

45.A解析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過渡到第三個判斷……如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,辦-1,所以,無論前期如何變化,最后的x值依然為-1。

46.A本題要求建立一個stmctnode類型的數(shù)據(jù)鏈表,函數(shù)CreatList將字符串"linklist"的首地址傳給指針變量s,可以推斷建立的鏈表一定與"linklist",有關(guān),由CreatList(char*s)函數(shù)中所定義的變量及其他語句可知,h,p,q用于建立的鏈表,h表示頭指針,p用于記錄開辟的新結(jié)點,而q用作將新結(jié)點與已建立的鏈表相連的中間變量,所建立鏈表各個結(jié)點的data依次存放的是”linklist",中的各個字符,所以應(yīng)填空*s。

47.C解析:在C語言中,一個完整的C語句必須在語句末尾出現(xiàn)分號,分號是C語句的必要組成部分。本題答案為C。

48.C解析:關(guān)于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個數(shù)與數(shù)組元素的個數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時,系統(tǒng)將自動給后面各行的元素補初值0;③在給二維數(shù)組賦初值時可以不用行花括號對。選項C)應(yīng)該是inta[3][2]={{1,2},{3,4},{5,6,}};

49.C

50.A解析:A中sin(1/2)是0,因為1和2都是整數(shù),“/”在這里是整除。

51.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。

52.C解析:本題考查do…while循環(huán)。在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值。當執(zhí)行完第三次循環(huán)時,得到n=3,while循環(huán)表達式仍然成立,接著執(zhí)行直到n=4,表達式不成立,跳出循環(huán),結(jié)束程序。

53.C解析:本題考核的知識點是函數(shù)說明的方法。若一個函數(shù)定義在主調(diào)函數(shù)之后,其返回值不是int或char型,則必須對之進行函數(shù)說明。可在函數(shù)外說明也可以在函數(shù)內(nèi)說明,在函數(shù)外說明,在其后的所有函數(shù)均可調(diào)用該函數(shù),若在函數(shù)內(nèi)說明,則只能在本函數(shù)內(nèi)調(diào)用該函數(shù)。函數(shù)只能定義一次,但函數(shù)說明可以出現(xiàn)多次,因此選項C是錯誤的。所以,4個選項中C為所選。

54.B解析:二叉樹有一個性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個,由于本題中的二叉樹有70個葉子結(jié)點,因此有69個度為2的結(jié)點。

該二叉樹中總的結(jié)點數(shù)為

度為2的結(jié)點數(shù)+度為1的結(jié)點數(shù)+葉子結(jié)點數(shù)=69+80+70=219

55.A解析:malloc()函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元并把該存儲區(qū)的首地址作為返回值,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址。選項D多了一個參數(shù),不符合malloc()函數(shù)的調(diào)用格式;整型變量在有的計算機系統(tǒng)里占4個字節(jié),并不一定在所有的計算機系統(tǒng)里都是兩個字節(jié);選項A中是申請一個整型的存儲空間并把該存儲空間的首地址乘以2,這樣的做法是不正確的,其存儲空間為沒乘以2之前的存儲空間的2倍的連續(xù)存儲空間的地址。

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

57.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進行的運算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進行的運算,相當于對關(guān)系進行垂直分解。所以,本題選擇A。

58.A解析:f函數(shù)的功能是通過遞歸調(diào)用實現(xiàn)數(shù)組中左右部分相應(yīng)位置數(shù)據(jù)的交換,即數(shù)組中第一個元素與最后一個元素調(diào)換位置,第二個元素與倒數(shù)第二個元素調(diào)換位置,以此類推。

59.B解析:!的優(yōu)先級高于<,!a的值為0,0<b顯然成立,該表達式的值為1。

60.A解析:程序設(shè)計的風格主要強調(diào)程序的簡單、清晰和可理解性,以便讀者理解。因此選項A是正確答案。程序濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應(yīng)減少或取消;程序的長短要依照實際需要而定,并不是越短越好。因此選項B、C、D都是錯誤的。

61.Csum+=i等價于sun+i,在本題中sum沒有賦初值,而題中只輸出sum的值,因此整個結(jié)果為不確定值。

62.A(x*100+0.5)計算結(jié)果為12346.17。由于類型轉(zhuǎn)換運算符的優(yōu)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論