2021-2022年山西省太原市全國計算機等級考試C語言程序設計測試卷(含答案)_第1頁
2021-2022年山西省太原市全國計算機等級考試C語言程序設計測試卷(含答案)_第2頁
2021-2022年山西省太原市全國計算機等級考試C語言程序設計測試卷(含答案)_第3頁
2021-2022年山西省太原市全國計算機等級考試C語言程序設計測試卷(含答案)_第4頁
2021-2022年山西省太原市全國計算機等級考試C語言程序設計測試卷(含答案)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年山西省太原市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義“int*p[3];”,則以下敘述中正確的是()。A.定義了一個指針數(shù)組p,該數(shù)組含有3個元素,每個元素都是基類型為int的指針

B.定義了一個基類型為int的指針變量p,該變量具有3個指針

C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有3個int類型元素

D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應具有3個int類型元素

2.

有以下程序:

main

{intx=102,y=012;

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

}

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

A.10,01B.02,12C.102,10D.02,10

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

A.在賦值表達式中,賦值號的左邊既可以是變量,也可以是任意表達式

B.實型變量中允許存放整型數(shù)

C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變

D.在C程序中,求余算符“%”兩邊的類型相同時才能進行運算

4.下述程序的輸出結果是()。#include<stdio.h>voidmain{intb[6]={2,4,6,8,10,12);int*p=b,**q=&p;printf("%d,",*(p++));printf("%d,",**q);}A.4,4B.2,2C.4,5D.2,4

5.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序運行后的輸出結果是()。A.0B.1C.2D.3

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

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

7.下列排序算法中,其時間復雜度和記錄的初始排列無關的是()

A.插入排序B.堆排序C.快速排序D.冒泡排序

8.

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

A.C語言程序必須要有return語句

B.C語言程序中,要調用的函數(shù)必須在main()函數(shù)中定義

C.C語言程序中,只有int類型的函數(shù)可以未經(jīng)聲明而出現(xiàn)在調用之后

D.C語言程序中,main()函數(shù)必須放在程序開始的部分

10.有以下程序:#include<stdio.h>main(){charc;for(;(c=getchar())!=‘#’;){if(c>=‘a(chǎn)’&&c<=‘z’)c=c-‘a(chǎn)’+‘A’;putchar(++c);}}執(zhí)行時輸入aBcDefG##并按<Enter>鍵,則輸出結果是()。

A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bcdefgh

11.有下列程序:程序執(zhí)行后的輸出結果是()。A.Zhao,m,85,Zhao,m,85

B.Sun,f,90,Zhao,m,85

C.Zhao,m,85,Sun,f,90

D.Sun,f,90,Sun,f,90

12.有以下程序:#include<stdio.h>#include<string.h>main(){charv[4][10]={“efg”,“abcd”,“mnopq”,“hijkl”},*p[4],*t;inti,j;for(i=0;i<4;i++)p[i]=v[i];for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=p[j];p[j]=t}for(i=0;i<4;i++) printf(“%s”,p[i]);}程序運行后的輸出結果是()。

A.efgabcdhijklmnopq

B.abcdefghijklmnopq

C.mnopqhijklefgabcd

D.efgabcdmnopqhijkl

13.向一個棧頂指針為H的鏈棧中執(zhí)行出棧運算時,需執(zhí)行()。

A.p=H;H=H->link;free(p);

B.H=H->link;free(H);

C.p=H;H->link=H->link->link;free(p);

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

14.有以下程序:

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

A.abc+abc=defdef

B.abc+ABC=DEFdef

C.abcABCDEFdef

D.abcabcdefdef

15.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(“d.dat”,“w+b”);for(i=0;i<6;i++)fwrite(&a[i],sizeof(int),1,fp);rewind(fp);fread(&a[3],sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,a[i]);}程序運行后的輸出結果是()。

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

16.下列選項中與“if(a==1)a=b;elsea++;”語句功能不同的switch語句是()。

A.switch(a==1){ case0:a=b;break; case1:a++;}

B.switch(a){ case1:a=b;break; default:a++;}

C.switch(a){ default:a++;break; case1:a=b;}

D.switch(a==1){ case1:a=b;break; case0:a++;}

17.

18.計算機算法指的是()。

A.計算方法B.排序方法C.解決問題的有限運算序列D.調度方法

19.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='Z'

B.(c1>=A)‖c1<=z)

C.('a'=>c1‖("z"<=c1)

D.(c1>='a')&&(c1<='z')

20.任何一棵二叉樹的葉子結點在前序、中序和后序遍歷序列中的相對次序()。

A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對

二、2.填空題(20題)21.以下程序的輸出結果是【】。

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

22.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。

23.在結構化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為【】。

24.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

25.設某循環(huán)隊列的容量為50,頭指針front=5(指向隊頭元素的前一位置),尾指針rear=29(指向隊尾元素),則該循環(huán)隊列中共有【】個元素。

26.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

27.若有以下定義:

chara;intb;

floatc;doubled;

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

28.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:

1

11

121

1331

14641

其構成規(guī)律是:

①第0列元素和主對角線元素均為1。

②其余元素為其左上方和正上方元素之和。

③數(shù)據(jù)的個數(shù)每行遞增1。

請將程序補充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[O][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

)

29.以下程序的功能是從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

majn()

{FILE*fp;charch;

fp=fopen(______);

ch=fgetc(fp);

whle(!feof(fp)){putchar(ch);ch=f8etc(fp);}

putchar('\n');fclose(fp);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

31.有以下定義和語句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

32.棧的基本運算有三種:入棧、退棧和【】。

33.有以下程序:

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p<a+10;p++)printf("%d,",*p);

}

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

34.常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

35.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。

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

37.以下程序的運行結果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

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

38.若有定義:inta=4,b=5,c=6;然后順序執(zhí)行下列語句后,變量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);

39.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{intI;

for(I=0;【】!='\n';I++);

return(I);}

40.下列程序的運行結果是______。

#include<stdio.h>

main()

{inta=10,b=3;

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

printf("%d,",(a-b,a+b));

printf("%d\n",a-b?a-b:a+b);

}

三、1.選擇題(20題)41.以下程序中,能夠通過調用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;)

C.#includemain(){int*p;fun(&p);…}intfun(int**p)*p=(int*)malloc(2);}

D.#includemain(){iht*p;fun(p);…}ihtfun(iht*p){p=(int*)malloc(sizeof(int));}

42.下述函數(shù)功能是_______。intfun(char*x){char*y=x;while(*y++);returny-s-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

43.設有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是

A.p=&data.n;

B.*p=data.n;

C.p=(structsk*)&data.n;

D.p=(structsk*)data.n:

44.有以下程序:#include<stdio.h>voidWriteStr(char*fn,char*sir){FILE*fP;fP=fopen(fn,"w");fput6(str,fp);fclose(fp);}main(){WriteStr("t1.dar","start");WrlteStr("t1.dat","end");}程序運行后,文件t1.dat中的內容是()。

A.startB.endC.startendD.endrt

45.設a和b均為雙精度型變量,且a=5.5、b=2.5,則表達式(int)a+b/b的值是()。

A.6.5B.6C.5.5D.6

46.將E-R圖轉換到關系模式時,實體與聯(lián)系都可以表示成________。

A.屬性B.關系C.鍵D.域

47.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

48.設有定義:intA,*pA=&A;,以下scanf語句中能正確為變量A讀入的數(shù)據(jù)是______。

A.scanf("%d",pA);

B.scanf("%d",A);

C.scanf("%d",&pA);

D.scanf("%d",*pA);

49.對關系S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()

A.并運算B.交運算C.差運算D.積運算

50.設有如下三個關系表:

下列操作中正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

51.以下程序的輸出結果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

52.以下程序段的輸出結果為()。staticchara[]="programme";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);

A.programmeB.pormC.有語法錯誤D.prog

53.有定義:intx,y;若要通過scanf("%d,%d",&x,&y);使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是()。

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

54.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

55.下面程序的運行結果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}

A.10B.C2C.C51D.\0

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

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

57.關于結構化程序設計原則和方法描述錯誤的是()。

A.選用的結構只準許有一個入口和一個出口

B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬

58.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結構體變量名

B.PER是結構體類型名

C.typedefstruct是結構體類型

D.struct是結構體類型名

59.以下程序的輸出結果是()。#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);prt(&a,&b,&C);}

A.11,42,3112,22,41

B.11,41,201,42,20

C.11,21,4011,21,21

D.11,41,2112,42,22

60.有以下程序:main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運行后的輸出結果是()。

A.44B.33C.34D.43

四、選擇題(20題)61.

62.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

63.

64.算法的有窮性是指()。

A.算法程序的運行時問是有限的。

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

65.

66.已知intx=(1,2,3,4);變量x的值是()。

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

67.以下符合c語言語法的實型常量是()。

A.8E一2B.3)14)159EC.E14D.2)2E0)5

68.有三個關系R,S和T如下:

其中關系T由關系R和s通過某種操作得到,該操作為()。

A.選擇B.交C.投影D.并

69.以下程序的輸出結果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,3,4,10,12,14,16,9,10,

C.1,2,6,8,10,12,7,8,9,10,

D.1,2,6,8,10,12,14,16,9,10,

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

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

71.

72.

73.

74.在數(shù)據(jù)庫管理系統(tǒng)的層次結構中,處于最上層的是()。

A.應用層B.語言翻譯處理層C.數(shù)據(jù)存取層D.數(shù)據(jù)存儲層

75.

76.下列與char*pa[3][5]={"a","bb","ccc"}等價的是()。

A.char(*pa)[][5]={"a","bb","ccc"}

B.char*pa[3][]={"a","bb","ccc"}

C.charpa[3][]={"a","bb","ccc"}

D.都不等價

77.

78.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||179.下列程序的輸出的結果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

80.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debu9

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當s中的字符串為WXYZ時,則t中的字符串應為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.下列程序判斷字符串s是否對稱,對稱則返回1,否則返回0;如f("abba")返回1,f("abab")返回0。

參考答案

1.Aint*p[3]含義是定義一個指針數(shù)組p,數(shù)組中包含3個元素,每個元素都是int*類型的指針。本題答案為A選項。

2.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進制整數(shù),每個整數(shù)域寬是2。而在C語言中規(guī)定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進制整數(shù)12,等于十進制的10)。所以,4個選項中選項C符合題意。

3.D選項A,在賦值表達式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達式,不能是任意表達式,右邊也不得出現(xiàn)表達式;選項8中,整型變量中只能存放整型數(shù),但實型變量中能存放實型數(shù),也能存放整型數(shù);選項C,表達式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項D,要求取余運算符"%"兩邊的類型均為整型。

4.D首先定義了一個指向一維數(shù)組b的指針P,一個指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個元素b[1];輸出**q是輸出指針P所指單元的內容。

5.A根據(jù)C語言運算符的優(yōu)先級與結合性,先計算a/b,結果為l,再將a/b的結果與C做按位與運算,即l與2做按位與運算,其結果為0。

6.A解析:本題考查的是位運算的知識,對于任何二進制數(shù),和1進行異或運算會讓其取反,而和0進行異或運算不會產(chǎn)生任何變化。

7.B

8.C

9.C

10.C題干中,循環(huán)的作用是將輸入的字符串轉化為大寫,getchar函數(shù)讀入一個字符,putchar函數(shù)輸出一個字符,當遇到‘#’字符結束?!皃utcha(++C);”,表示將字符變量c加1后輸出。當輸入“aBcDefG##”時,得到的結果是BCDEFGH。故本題答案為C選項。

11.D程序定義結構體類型STU,main函數(shù)定義結構體STU變量b,并將b的地址賦給指針變量a。調用函數(shù)f,傳入a。在函數(shù)f中,定義了STU變量c,并將c的地址賦給d,再用d指向的值賦給a指向的地址,接著輸出a指向的值,也就是c的值:Sun,f,90。由于函數(shù)f的調用通過指針參數(shù)a修改了變量b的值,因此a指向的值也就是b的值等價于c:Sun,f,90。本題答案為D選項。

12.Bmain函數(shù)中定義一個二維數(shù)組v,另外還定義一個指針數(shù)組p。通過for循環(huán),將v的各個行(字符串的首地址)賦給P的對應下標的元素。然后通過嵌套的for循環(huán),為該二維數(shù)組中存放的各個字符串進行排序。strcmp函數(shù)返回值大于0時(p[i]>p[j])交換兩個字符串,所以每一輪內嵌的for循環(huán),都將下標為i的字符串放在最終的排序位置上,即排序規(guī)則是按字符串升序排列。字符串排序時,是將兩個字符串自左向右逐個字符比較(按字符的ASCII值大小),直到出現(xiàn)不同的字符或遇到‘\\0’為止。排序后,再將v中各個排序后的字符串輸出。所以程序輸出結果為:abcdefghijklmnopq。故本題答案為B選項。

13.A

14.A題干中,函數(shù)fun的功能是:判斷形參ch是否為大寫字母,若是大寫字母則改寫成小寫字母,其他字符不變。main函數(shù)中,通過while循環(huán),調用fun函數(shù),將字符數(shù)組s中的各個字符傳入,將s中的大寫字母改成小寫字母,程序輸出:abc+abc=defdef。本題答案為A選項。

15.D程序首先以讀和寫二進制文件的方式打開文件d.dat;然后通過for循環(huán),調用fwrite函數(shù)將數(shù)組a中的各個元素寫入d.dat中;接下來調用rewind函數(shù),將文件指針fp重定位到文件的開始位置;再調用fread函數(shù)將文件的前3個整數(shù)1,2,3讀入a[3]開始的位置,所以此時數(shù)組a中的元素值分別為:1,2,3,1,2,3。故本題答案為D選項。

16.A題干中,if語句的含義是:如果a的值為1,將b的值賦給a,否則將a的值自增1。選項A中,“switch(a==1)”中表達式“a==1”的結果如果為真,即1,則從case1開始執(zhí)行“a++”;如果“a==1”的結果為假,即為0,則從case0開始執(zhí)行“a=b”,所以與題干含義執(zhí)行操作相反的是選項A中的語句。故本題答案為A選項。

17.B

18.C

19.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.

20.A

21.3131解析:在函數(shù)調用時,形參值和改變,不會改變實參的值。

22.參照完整性參照完整性

23.數(shù)據(jù)字典數(shù)據(jù)字典解析:在結構化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為數(shù)據(jù)字典。

24.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

25.2424解析:在循環(huán)隊列中因為頭指針指向的是隊頭元素的前一個位置,所以是從第6個位置開始有數(shù)據(jù)元素,所以隊列中的數(shù)據(jù)元素的個數(shù)為29-5=24。

26.空間復雜度和時間復雜度算法的復雜性是指對一個在有限步驟內終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。

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

28.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個空中應該填入對角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應的上一行中同列和同列的前一列的元素相加,所以在第二個空中應該填入x[i-1][j-1]+x[i-1][j]。

29.

30.86518651解析:主程序中,第一次循環(huán)時,i=0,調用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序實際上是將數(shù)組s逆序輸出。

31.4

32.讀棧頂元素讀棧頂元素解析:棧的基本運算有三種:入棧、退棧和讀棧頂元素。

入棧運算是指在棧頂位置插入一個新元素。這個運算有兩個基本操作:首先將棧頂指針進一(即top加1),然后將新元素插入到棧頂指針指向的位置。

退棧運算是指取出棧頂元素并賦給一個指定的變量。這個運算有兩個基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個指定的變量,然后將棧頂指針退一(即top減1)。

讀棧頂元素是指將棧頂元素賦給一個指定的變量。這個運算不刪除棧頂元素,只是將它的值賦給一個變量。

33.12345678901,2,3,4,5,6,7,8,9,0,解析:p指向a的首地址。a+10表示的是a[10]的地址,嘲此此程序的功能就是輸出數(shù)組a。

34.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

35.軟件工具軟件工具

36.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結點。③技中序遍歷右子樹。根據(jù)遍歷規(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”。

37.k=5k=5解析:本題主要考查了函數(shù)的遞歸調用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。

38.11解析:本題考查的是基本賦值運算符和賦值表達式。a-=(b-5)等價于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1確定為1。

39.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結束標志,如果不是,I=I+1,繼續(xù)取下一個元素進行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標的方式引用字符,如*(str+I)相當于str[I]。

40.11371,13,7解析:本題考查3個知識點:①余數(shù)的計算,題中的a=10,b=3,a%b=1;②(表達式1,表達式2)形式的結果為最后一個表達式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結果為7。

41.C解析:本題考核的知識點是指針變量作為函數(shù)的參數(shù)以及變量的作用域。在選項A中,main()函數(shù)中定義了一個指針變量p,調用fun()函數(shù)時把p傳給形參p,在函數(shù)中讓p指向局部變量s,由于函數(shù)調用返回后,局部變量s將被釋放,因此無法實現(xiàn)讓實參p指向一個整型單元,故選項A錯誤.選項B中實現(xiàn)的也是讓實參p,指向一個在函數(shù)fun()定義的局部變量s,因此也是錯誤的;選項C在函數(shù)fun()中分配了兩個字節(jié)的內存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個字節(jié),因此,選項C是正確的;選項D在主函數(shù)中定義了一個指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)分配了一個整型單元并把首地址賦值給行參指針變量p,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對應實參指針變量的值,因此選項D也是錯誤的.所以,C選項為所選。

42.A解析:在函數(shù)體內定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

43.C解析:本題主要考查了結構體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結構體變量名.成員名或結構體指針->成員名的方法來引用結構體成員。

44.B解析:在main函數(shù)中,兩次調用WriteStr函數(shù),即兩次執(zhí)行fp=fopen(fn,'w');語句,以“寫入”方式打開fn所指向的同一文件,當?shù)诙未蜷_文件時,文件指針指向文件頭,寫入的數(shù)據(jù)將覆蓋文件中原有的數(shù)據(jù)。fputs(str,fp)函數(shù)的功能是將字符指針*str的值輸出到fp所指向的文件中,故本題中t1.dat的內容為end。

45.D解析:在這個表達式中,優(yōu)先級最高的是(int)a,也就是對5.5取整,結果是5,其次是b/b,即2.5/2.5,結果是1.000000,最后相加結果為6.000000(表達式的最終結果為實型),所以4個選項中D正確。

46.B解析:關系數(shù)據(jù)庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯(lián)系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。

47.A解析:條件表達式的形式如下:表達式1?表達式2:表達式3,所以本題條件表達式a<b?a:c<d?c:d應該理解為a<b?a:(c<d?c:d),首先求出條件表達式c<d?c:d的值等于2,再求條件表達式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達式的值等于1。

48.A解析:選項B中不是變量A的地址,錯誤;選項C是指針pA的地址,錯誤;選項D中*pA表示變量A的值,錯誤。

49.AA)【解析】關系的并運算是指由結構相同的兩個關系合并,形成一個新的關系,新關系中包含兩個關系中的所有元組。

50.C解析:本題考查數(shù)據(jù)庫的關系代數(shù)運算。R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n;S表中有兩個域名,分別是B和C,其所對應的記錄分別為1和3。注意觀察表T,它是由R的第一個記錄依次與S的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運算恰恰符合關系代數(shù)的笛卡兒積運算規(guī)則。關系代數(shù)中,笛卡兒積運算用“×”來表示。因此,上述運算可以表示為T=R×S。因此,本題的正確答案為C。

51.D解析:本題中是一個含有兩個結點的循環(huán)鏈表。

C語言中結構體的定義為:

struct結構題類型名

{

成員項表;

};

52.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址,第一次for循環(huán),p=a,p指向數(shù)組的第一個元素,*p是取指針p所指地址的內容,輸出p;第二次for循環(huán),p=p+2,則p指向數(shù)組的第三個元素,*p是取指針p所指地址的內容,輸出o;第三次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內容,輸出r;第四次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內容,輸出m;結束循環(huán)。

53.A解析:格式輸入函數(shù)的一般形式為:

scanf(格式控制,地址表列)

在“格式控制”字符串中,除格式說明以外的其他字符為按原樣輸入的字符,在輸入數(shù)據(jù)時應按原樣輸入這些字符。所以輸入時,兩個數(shù)字之間的逗號是不可少的。

54.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相

溫馨提示

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

評論

0/150

提交評論