2021年四川省德陽市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2021年四川省德陽市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2021年四川省德陽市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2021年四川省德陽市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2021年四川省德陽市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年四川省德陽市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是()。A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

2.能在O(1)時間內(nèi)訪問線性表的第i個元素的結(jié)構(gòu)是()

A.順序表B.單鏈表C.單向循環(huán)鏈表D.雙向鏈表

3.

4.

5.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是

A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

6.有以下程序:

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

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

7.下列排序方法中,()方法的比較次數(shù)與記錄的初始排列狀態(tài)無關。

A.直接插入排序B.冒泡排序C.快速排序D.直接選擇排序

8.若在線性表中采用折半查找法查找元素,該線性表應該()。

A.元素按值有序B.采用順序存儲結(jié)構(gòu)C.元素按值有序,且采用鏈式存儲結(jié)構(gòu)D.元素按值有序,且采用順序存儲結(jié)構(gòu)

9.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}}程序的運行結(jié)果是()。

A.20,30,B.30,17,C.15,30,D.20,15,

10.有以下程序:#include<stdio.h>voidmain(){char*s=“\ta\018bc”;for(;*s!=‘\0’;s++)printf(“*”);printf(“\n”);}程序運行后的輸出結(jié)果是()。

A.******B.*********C.*****D.*******

11.對表進行水平方向和垂直方向的分割,分別對應的關系運算是()

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

12.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

A.-1B.1C.8D.0

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令

C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進行編譯

14.若有定義“inta=3;doubleb=0.1263;charch=‘a(chǎn)’;”,則以下選項中敘述有錯的是()。

A.逗號表達式的計算結(jié)果是最后一個表達式的運算結(jié)果

B.運算符“%”只能對整數(shù)類型的變量進行運算

C.語句“ch=(unsignedint)a+b;”是對a與b之和進行強制類型轉(zhuǎn)換,結(jié)果賦值給變量ch

D.復合運算“a*=b+ch”是將變量b、ch之和與a相乘,結(jié)果再賦值給a

15.以下函數(shù)的時間復雜度和空間復雜度為()A.T(n)=O(2^n),S(n)=O(n)

B.T(n)=O(1),S(n)=O(1)

C.T(n)=O(2^n),S(n)=O(1)

D.T(n)=O(n),S(n)=O(n)

16.設x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

17.下面程序的輸出結(jié)果是

#include<stdio.h>

main()

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

p=a;

printf("%d\n",*p+9);}

A.0B.1C.10D.9

18.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

19.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

20.若變量已經(jīng)定義且正確賦值,則針對程序段“temp=a;a=b;b=temp;”,以下敘述中正確的是()。

A.C語言的順序結(jié)構(gòu)不允許將多條語句寫在一行里

B.程序順序結(jié)構(gòu)對于此段程序是從左至右依次執(zhí)行的

C.此程序段的執(zhí)行順序是,先執(zhí)行“b=temp;”,再執(zhí)行“a=b;”,最后執(zhí)行“temp=a;”

D.將此段程序的前兩個分號改成逗號,后面一個不變,則不能實現(xiàn)a和b值的交換

二、2.填空題(20題)21.關系可以有3種類型,即基本關系(又稱基本表或基表)、查詢表和【】。

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

#inelude<stdio.h>

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);printf("%d\n",s);

}

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

#include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){*(P-1)=*P;P++;}

*(P-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

24.以下程序輸出的最后一個值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

25.下面程序的功能是輸出數(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);}

26.在樹形結(jié)構(gòu)中,沒有前件的結(jié)點是()。

27.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。

28.在宏定義#definePI3.14159中,用宏名PI代替一個______。

29.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

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

31.若有以下程序

main()

{intp,a=5;

if(p=a!=0)

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

else

pfintf("%d\n",p+2);

}

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

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

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k;N*N*5;printf("%d\n"k);

}

33.下面程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中,請?zhí)羁?。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)();}}

34.函數(shù)fun的功能是計算xn

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,而且調(diào)用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。

35.執(zhí)行以下程序后的輸出結(jié)果是()。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",A);

36.在長度為n的線性表中查找一個表中不存在的元素,需要的比較次數(shù)為【】。

37.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'()';n2=n1*10+(ch2-'()');

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

}

程序運行時輸入:12<回車>,執(zhí)行后輸出結(jié)果是【】。

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

voidfun()

{

staticinta=0;

a+=2;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<4,cc++)fun();

printf("\n");

}

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

40.關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括選擇、連接和【】。

三、1.選擇題(20題)41.在關系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

42.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

43.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系

44.已知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);

45.下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}

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

46.有以下程序main(){char*p[10]={"abc",aabdfg","dedbe","abbd","cd"};printf("%d\n",stxlen(p[4]));}執(zhí)行后輸出結(jié)果是

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

47.若有以下定義:inta[]={1,2,3,4,5,6,7};charc1='b',c2='1';則數(shù)值不為1的表達式是______。

A.a[0]B.'c'-c1C.a['1'-c2]D.c1-0

48.設有以下定義:typedefunion{longi;intk[5];charc;}DATE;srtuctdate{intcat;DATEcow;doubledog;}too;DATEmax;則下語句的執(zhí)行結(jié)果是()printf("%d,"sizeof(structdate))+sizeof(max));

A.25B.30C.18D.8

49.以下對枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=1,three};

C.enuma={"one","two","three"};

D.enuma{"one","two","three"};

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

#include<stdio.h>

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

main()

{p=(int*)malloc(sizeof(int));

f(p,a);

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

free(p);}

f(int*s,intp[][3])

{*s=p[1][1];}

A.1B.4C.7D.5

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

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

52.已有定義:inti,a[10],*p;則合法的賦值語句是()。

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

53.下面程序段的運行結(jié)果是

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A.67B.0C.字符′C′的地址D.字符′C′

54.有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長度B.比較兩個串的大小C.將串s復制到串tD.求字符串s所占字節(jié)數(shù)

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

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

56.計算機軟件一般包括應用軟件和____。

A.字處理軟件B.系統(tǒng)軟件C.服務性軟件D.操作系統(tǒng)

57.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的()。

A.存儲問題B.共享問題C.安全問題D.保護問題

58.以下錯誤的定義語句是A.intx[][3]={{0},{1},{1,2,3}};

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

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

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

59.設a、b、c、d、m.n均為血型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為______。

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

60.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是______。

A.if(a>b)&&(b>c))k=1;elsek=();

B.if((a>b)||(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=1;

D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;

四、選擇題(20題)61.

62.

63.有以下程序:

#include<stdio.h>

intfun(intX,inty)

{if(X!=y)return((x+y)/2);

elsereturn(x);

}

main()

{inta=4,b=5,c=6;

printf("%d/n",fun(2*a,fun(b,c)));

}

程序運行后的輸入結(jié)果是()。

A.3

B.6

C.8

D.12

64.

65.下面程序運行后的輸出結(jié)果是()。

structabc

{

inta,b,c;

}

main()

{

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

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

}

A.5B.6C.7D.8

66.在以下給出的表達式中,與while(E)中的(E)不等價的表達式是()。

67..C語言運算對象必須是整型的運算符是

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

68.

能正確表示“當x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)

B.(x>=1)

C.

D.(x<2=10)

E.

F.(x>=100)

G.

H.(x<=1l0)

I.(gt;=1)&&(x<=10)

J.

K.(gt;=100)&&(x<=110)

69.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

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

70.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執(zhí)行后的輸出結(jié)果是()。A.45B.50C.60D.55

71.有以下程序:

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

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

72.(61)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關的是數(shù)據(jù)的()

A.存儲結(jié)構(gòu)

B.物理結(jié)構(gòu)

C.邏輯結(jié)構(gòu)

D.物理和存儲結(jié)構(gòu)

73.在數(shù)據(jù)庫系統(tǒng)中,所謂數(shù)據(jù)獨立性是指()。

A.數(shù)據(jù)與程序獨立存放

B.不同的數(shù)據(jù)被存放在不同的文件中

C.不同的數(shù)據(jù)只能被對應的應用程序所使用

D.以上三種說法都不對

74.設a=l,b=2,c=3,d=4,則表達式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.4B.3C.2D.1

75.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.scanf("%d",a,b,c);

B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

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

A.1,2,3.4,5,6,7,8,9,10,

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

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

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

77.設有定義:intm=0;。以下選項的四個表達式中與其他三個表達式的值不相同的是()。

A.++mB.m+=1C.m++D.m+1

78.

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如,變量a中的值原為8,b中的值原為3,程序運行后,a中的值為3,b中的值為8。請改正程序中的錯誤,使它得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.從鍵盤上輸出10個整數(shù)存入一維數(shù)組中,按由大到小的順序輸出。

參考答案

1.AA。數(shù)據(jù)定義語言(DDL)是集中負責數(shù)據(jù)庫模式定義與數(shù)據(jù)庫對象定義的語言。數(shù)據(jù)操縱語言(DML)是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)的語句。數(shù)據(jù)控制語言(DCL)是用來設置或者更改數(shù)據(jù)為用戶或角色權(quán)限的語句。據(jù)此,本題正確答案為選項A。

2.A

3.A

4.D

5.C解析:選項A首先判斷if語句條件中表達式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項B中首先判斷if語句條件中表達式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項C中,首先執(zhí)行第一條if語句,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條if語句,由于“1<1為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項D中;首先執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3。

6.Astatic靜態(tài)變量只在聲明時初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五層init=24,val=5,因此結(jié)果為l,2,6,24,120。故答案為A選項。

7.D

8.D

9.D結(jié)構(gòu)體指針變量p指向a數(shù)組的第1個元素,所以“p->x”為20。執(zhí)行“p=p->y”后,p指向數(shù)組a的第2個元素,所以輸出15。故本題答案為D選項。

10.Amain函數(shù)中定義一個字符指針s,指向字符串“\\ta\\018bc”。for循環(huán)遍歷s指向的字符串中的字符,然后輸出根據(jù)題意可以理解為:s指向的字符串中有多少個字符,就輸出多少個s指向的字符串中字符分別是\\t(轉(zhuǎn)義字符)、a、\\01(轉(zhuǎn)義字符)、8、b、c,總共6個。其中因為8不屬于八進制中的數(shù)字,所以“\\018”不是一個轉(zhuǎn)義字符,而“\\01”是轉(zhuǎn)義字符。故本題答案為A選項。

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

12.D

13.B解析:本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進制的目標代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行;連接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。

14.C逗號表達式的計算結(jié)果是最后一個表達式的運算結(jié)果,選項A正確;運算符“%”是求余運算符,只能對整數(shù)類型的變量進行運算,選項B正確;在語句“ch=(unsignedint)a+b”中,圓括號優(yōu)先級最高,所以首先將a強制轉(zhuǎn)換成無符號整型,再與b相加,結(jié)果賦值給ch,選項C錯誤;復合運算“a*=b+ch”,先計算“b+ch”的值,再將a與b、ch之和相乘,結(jié)果再賦值給a,選項D正確。故本題答案為C選項。

15.A

16.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

17.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符'*'的優(yōu)先級高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

18.D執(zhí)行第一次for循環(huán)時,用表達式p[i][J]!=\o來判斷字符串數(shù)組指針P是否到達字符串的結(jié)尾,如果沒有到達,繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-\o)除2的余數(shù)不為0時,即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時,輸出為397,執(zhí)行第2次循環(huán)體。對字符串“2584”進行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。

19.D

\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。

\n

20.BC語言允許將多條語句寫在一行,選項A錯誤;題干中的語句是從左至右依次執(zhí)行的,選項B正確,選項C錯誤。題干中的程序前兩個分號改成逗號,就構(gòu)成了逗號表達式。逗號表達式會依次從左到右計算各個表達式,整個表達式的值是最后一個表達式的值,所以此例也可以實現(xiàn)a和b值的交換,選項D錯誤。故本題答案為B選項。

21.視圖表視圖表解析:關系數(shù)據(jù)庫中通常有3種關系,即基本關系(又稱基本表或基表)、查詢表和視圖表。基本表是在機器中實際存儲數(shù)據(jù)的表。查詢表是查詢的結(jié)果所對應的臨時表。視圖表是由基本表或其他視圖表導出的表,是不實際存儲數(shù)據(jù)的表。視圖表是一個虛表。

22.66解析:已知aa[3]={1,2,3},n=3,調(diào)用函數(shù)f,n>1成立,執(zhí)行a[0]+f(&a[1],n-1);即1+f(&a[1],2),遞歸調(diào)用函數(shù)f,將a[1]的地址作為參數(shù)傳給數(shù)組a,使數(shù)組a的首地址變?yōu)?a[1],數(shù)組中的元素只有2,3;2傳給n,這時n=2,n>1仍然成立,繼續(xù)調(diào)用a[0]+f(&a[1],n-1);即執(zhí)行1+2+f(&a[1],1),因為上次遞歸調(diào)用函數(shù)f后數(shù)組中的元素為2,3,所以此次的a[1]為3,調(diào)用后的a[0]為3。所以最后結(jié)果為1+2+3=6。

23.bcdefgha

24.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

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

26.根結(jié)點根結(jié)點

27.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進行測試。

28.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。

29.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

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

31.11解析:首先計算if語句后面的表達式,根據(jù)運算符的優(yōu)先級可知,先算“a!=o”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。

32.5555解析:宏替換不是函數(shù)調(diào)用,所以不能因為M被定義為5,而N被定義為M+M而武斷地認為N的值就是5+5=10。宏替換就是簡單的字符串替換,以本題為例:因為N被定義為M+M,所以k=N*N*5;語句展開后為k=M+M*M+M*5;。又因為M被定義為5,所以再展開后為k=5+5*5+5*5;?,F(xiàn)在不難計算出,這個表達式的結(jié)果為k=55。故最終輸出結(jié)果是55。

33.b[j][i]=a[i][j]

34.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求x的n次方,因此a的4次方應該調(diào)用函數(shù)fun(a,4),b的4次方應該調(diào)用函數(shù)fun(b,4),a+b的3次方應該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

35.a=14a=14解析:在“逗號表達式(表達式1,表達式2)”中,其運算方法是先求表達式1的值,然后求表達式2的值,整個逗號表達式的值是表達式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運算結(jié)果為14。

36.nn解析:在長度為n的線性表中查找一個表中不存在的元素,需要的比較次數(shù)為n。

37.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。

38.246246解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。

39.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語句,該語句的執(zhí)行過程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回退到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,再回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。

40.投影專門關系運算包括對單個關系進行垂直分解(投影操作)或水平分解(選擇操作)和對多個關系的結(jié)合(連接操作)等。

41.D解析:在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關系。即關系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系。本題的正確答案是D。

42.C答案C

解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。

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

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

45.C解析:本題考查for循環(huán)。第一次循環(huán)前先判斷循環(huán)條件,此時i=0,j=1,i<j+1成立,循環(huán)第一次;第二次循環(huán)前先判斷循環(huán)條件,此時i=1,j=0,(j--是先使用j的值再減1),i<j+1不成立,結(jié)束循環(huán)。

46.A解析:本題中首先定義了一個長度為10的指針數(shù)組,并賦初值,因此執(zhí)行strlen(p[4])后的返回值為字符串“cd”的長度為2。

47.D解析:字符在進行數(shù)學運算時取其ASCⅡ碼值,“b”的ASCⅡ碼為98,則D項中表達式的值不為1。

48.B

49.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);

說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。

50.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對p所指向的數(shù)據(jù)進行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應于實參a的元素5,所以輸出結(jié)果為5。

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

52.D解析:本題考核的知識點是指針變量的賦值。本題中定義了一個整型數(shù)組a和一個整型指針變量P。選項A中將一個整型數(shù)賦值給一個指針變量,C語言規(guī)定,只能特地址賦給指針指針變量,故選項A不正確:選項B中a[5]為一數(shù)組元素,同樣不是一個地址,故選項B不正確;選項c中a[2]為一數(shù)組元素,同樣是一個整型數(shù)據(jù),不是個地址,故選項C不正確:選項D中數(shù)蛆名a代表數(shù)組首地址加2,代表第三個元素的地址,故選項D正確,所以,4個選項中選項D符合題意。

53.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結(jié)束標志'\\0'的地址,因而*(p+3)的值為0。

54.A解析:aaa()函數(shù)中,首先定義了一個字符指針t指向形參s,然后通過一個while循環(huán)讓指針\u3000t不斷遞增,直到t指向字符串結(jié)束標志處。當t指向結(jié)束標志處時,由于后綴++運算符的原因,它還會被再遞增1,所以接卜來的t--;語句讓它回到結(jié)束標志處。最后返回t-s,因此s還是指向字符串第1個字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長度值。

55.A解析:scanf函數(shù)中非格式字符原樣輸入。本題中scanf函數(shù)的格式字符為'%d,%d',包含非格式字符“,”,所以應輸入“,”,故選項A錯誤。

56.B

57.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機的應用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術,以便對數(shù)據(jù)庫進行管理。因此,數(shù)據(jù)庫技術的根本目標就是解決數(shù)據(jù)的共享問題。故選項B正確。

58.C解析:本題考查的是二維數(shù)組的定義和初始化方法。C語言中,在定義并初始化二維數(shù)組時,可以省略數(shù)組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。

59.A解析:C語言中比較表達式的運算結(jié)果為0或1。0代表不成立,1表示成立。

60.A解析:“a>b?(b>c?1:0):0”的求解順序是:先判斷a>b是否為真,如果為真,則執(zhí)行b>c?1:0,如果b>c為真,則(b>c?1:0)的值為1,從而整個表達式返回1,否則整個表達式返回0;如果a<=b,則表達式返回0。因此功能等價的語句應為if((a>B)&&(b>C))k=1;elsek=0;。

61.B

62.D

63.B\n此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

\n

64.A

65.B結(jié)構(gòu)體成員的引用;s[0].a=1,s[1].b=5,所以結(jié)果為6

66.Bwhile語句中條件表達式E的值不為0即為真,認為滿足條件,所以與B選項中表達式的含義正好相反,選擇B選項。

67.A本題主要考查C語言中一些常見運算符的基本知識。在題目中,給出了四種不同的運算符,分別如下:

“/”是除法運算符。在C語言中,該運算符的作用是將兩操作數(shù)進行除法運算,在更改運算符時,兩操作數(shù)可以是同類型的數(shù)值類型,也可以是不同類型的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論