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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.已知有結構體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。

A.struct是結構體類型的關鍵字

B.st是結構體類型名

C.x、y、z都是結構體成員名

D.structstr是結構體類型名

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

B.if(a<3)x=3;elseif(b<a)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;

3.有如下定義:inta[5],*p;p=a;則下列描述錯誤的是()。

A.表達式p=p+1合法的B.表達式a=a+1是合法的C.表達式p-a是合法的D.表達式a+2是合法的

4.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

5.

6.下面關于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

7.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達式的值為()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

8.

9.設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績.,則表SC的關鍵字(鍵或碼)為()

A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績

10.以下程序中函數(shù)reverse的功能是將a所指數(shù)組中的內容進行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是

A.22B.10C.34D.30

11.下列語句中存在語法錯誤的是()。

A.charss[6][20];ss[1]=“right?”;

B.charss[][20]={“right?”};

C.char*ss[6];ss[1]=“right?”;

D.char*ss={“right?”};

12.

13.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運行后的輸出結果是()。

A.10,One*Dream!

B.9,One*Dream!

C.9,One*World

D.10,One*World

14.若有"doublea;",則正確的輸入語句是()。

A.scanf("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

15.設有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求輸入字符串給結構體變量rec的title成員,錯誤的輸入語句是()。

A.scanf(“%s”,ptr.title);

B.scanf(“%s”,rec.title);

C.scanf(“%s”,(*ptr).title);

D.scanf(“%s”,ptr->title);

16.

17.在深度為5的滿二叉樹葉中,葉子結點的個數(shù)為()。

A.32B.31C.16D.15

18.在線索化樹中,每個結點必須設置一個標志來說明它的左、右鏈指向的是樹結構信息,還是線索化信息,若0標識樹結構信息,1標識線索,對應葉結點的左右鏈域,應標識為()。

A.00B.01C.10D.11

19.下面程序的運行結果是()#include<stdio.h>#include<string.h>main(){char*a="AbcdEf",*b="aBcD"a++;b++;printf("%d\n",strcmp(a,b));}

A.0B.負數(shù)C.正數(shù)D.無確定值

20.有以下程序:

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

A.1,3

B.2,3

C.1,4

D.1,2

二、2.填空題(20題)21.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

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

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

23.以下程序調用函數(shù)swap_p將指針s和t所指單元(a和b)中的內容交換,請?zhí)羁铡?/p>

main()

{inta=10,b=20,*s,*t;

s=&a;t=&b;

swap_p(【】);

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

swap_p(int**ss,int**tt)

{intterm;

term=**ss;

**ss=**tt;

**tt=term;}

24.對數(shù)據(jù)元素之間的邏輯關系的描述是()。

25.以下程序的輸出結果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

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

ints=12;

while(s);

--s;

27.以下程序可以把從鍵盤上輸入十進制數(shù)(10ng型)以二到十六進制數(shù)的形式輸出,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','

E','F'};

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

longn;

printf("Enteranumber:\n");scanf("%1d",&n);

printf("Enternewbase:\n");scanf("%1d",&base);

do

{c[i]=【】;

i++;

n=n/base;

}while(n!=0);

printf("Theresultis:\n");

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

{d=c[i];

printf("%c",b【】);

}

}

28.以下程序段用于構成一個簡單的單向鏈表。請?zhí)羁铡?/p>

struetSTRU

{intx,y;

floatrate;

【】p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

29.設a、b、c為整數(shù),且a=2、b=3、c=4,則執(zhí)行完語句a*=18+(b++)-(++c);后,a的值是【】。

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

main()

{

intx=10,y=20,t=0

if(x==y)t=x;x=y;y=t;

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

}

31.以下程序段的輸出結果是【】。

inti=9;

printf("%o\n",i);

32.下面程序的輸出結果是______。

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk

for(k=0;k<7;k++)

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

33.若有如下程序:

main()

{intx=4,y=1;

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

sub(inti,intj)

{staticinta=0;

intb=2;

a+=i+b;

b+=j+a;}

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

34.注釋一般分為序言性注釋和______注釋。

35.在結構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。

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

f(inta)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

37.下面程序的輸出是【】。

main()

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

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

arr[i]=i;

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

k+=arr[i]+i;

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

38.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

39.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

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

40.設有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進制是【】。

三、1.選擇題(20題)41.閱讀下列程序,則運行結果為

#include"stdio.h"

fun()

{staticintx=5;

x++;

returnx;}

main()

{inti,x;

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

x=fun();

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

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

42.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

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

}

A.17B.37C.6D.13

43.以下敘述中正確的是A.A.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面

B.C程序書寫格式嚴格,要求一行內只能寫一個語句

C.C程序書寫格式自由,一個語句可以寫在多行上

D.用C語言編寫的程序只能放在一個程序文件中

44.若x是int型變量,且有下面的程序段:for(x=3;x<6;x++)printf((x%2)?("**%d"):("##%d\n"),x);此程序段的輸出結果是()。

A.**3##4**5B.##3**4##5C.##3**4##5D.**3##4**5

45.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

46.能將高級語言程序轉換成目標語言程序的是______。

A.調試程序B.解釋程序C.編譯程序D.編輯程序

47.以下程序的輸出結果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

A.0B.29C.31D.無定值

48.已知大寫字母F的ASCII碼為70,以下程序的運行結果為()#include<stdio.h>main(){charc1='F',c2='p';printf("%d,%d\n",c1,c2);}

A.70,80B.70,81C.70,82D.70,83

49.完整的計算機存儲器應包括______。

A.軟盤、硬盤B.磁盤、磁帶、光盤C.內存儲器、外存儲器D.RAM、ROM

50.若有以下的說明,對初值中整數(shù)2的正確引用方式是

staticstruct

{charch;

inti;

doublex;

}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};

A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i

51.有以下程序:main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf(“%d\n",D);}程序運行后的輸出結果是()。

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

52.以下程序的輸出結果是()。main(){intx=11,y=11;printf("%d,%d\n",X--,--y);}

A.11,11B.10,10C.10,11D.11,10

53.有以下程序段:intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;)while(t!=n);為使程序不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應該是______。

A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

54.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

55.以下語句或語句組中,能正確進行字符串賦值的是______。A.char*sp;*sp="right!";

B.chars[10];s="right!";

C.chars[10];*s="right!";

D.char*sp="right!";

56.下面程序的輸出結果是()main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));prinft("%d%d\n",k,a,b);}

A.003B.012C.103D.112

57.下列敘述中,正確的是

A.用E-R圖能夠表示實體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系

B.用E-R圖只能表示實體集之間一對一的聯(lián)系

C.用E-R圖只能表示實體集之間一對多的聯(lián)系

D.用E-R圖表示的概念數(shù)據(jù)模型只能轉換為關系數(shù)據(jù)模型

58.數(shù)據(jù)的獨立性是指______。

A.數(shù)據(jù)庫的數(shù)據(jù)相互獨立

B.DBMS和DB相互獨立

C.用戶應用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨立

D.用戶應用程序與DBMS相互獨立

59.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],[3][0]);}

A.650B.1470C.5430D.輸出值不定

60.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5

四、選擇題(20題)61.有以下程序:

main()

{

chara[7]="a0\OaO\0";inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d\n",i,j);

}

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

A)22B)76

C)75D)62

62.以下程序擬實現(xiàn)計算sum=1+1/2+1/3+…+1/50。

程序運行后,不能得到正確結果,出現(xiàn)問題的語句是()。

A.sum+=1/i;B.while(i<50);C.sum.=1.0;D.i++;

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

A.C語句必須在一行內寫完

B.C程序中的每一行只能寫一條語句

C.C語言程序中的注釋必須與語句寫在同一行

D.簡單C語句必須以分號結束

64.下列敘述中錯誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結構必須與邏輯結構一致,

B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫設計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎上建立數(shù)據(jù)庫

D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持

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

其中關系T由關系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

66.

67.若有定義語句:“charS[3][10],(*k)[3],*p;”,則以下賦值語句正確的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

68.

69.在結構化方法中,軟件功能分別屬于下列軟件開發(fā)中的(

)階段。A.詳細設計B.需求分析C.總體設計D.編程調試

70.表達式:(im)((double)9/2)一9%2的值是()。

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

71.有以下說明和定義語句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下選項中引用結構體變量成員的表達式錯誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

72.閱讀以下程序該程序在編譯時產生錯誤,其出錯原因是()。

A.定義語句出錯,case是關鍵字,不能用作用戶自定義標識符

B.定義語句出錯,printF不能用作用戶自定義標識符

C.定義語句無錯,scanf不能作為輸入函數(shù)使用

D.定義語句無錯,scanf不能輸出case的值

73.下面不屬于軟件工程三要素的是()。

A.方法B.環(huán)境C.工具D.過程

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

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

75.有以下程序程序的運行結果是()。

A.6B.9C.0D.8

76.若有以下說明,則能打印出”An”的語句的是()。

A.

B.

C.

D.

77.(41)在下列選項中,哪個不是一個算法一般應該具有的基本特征()

A.確定性

B.可行性

C.無窮性

D.擁有足夠的情報

78.瀏覽器中用于負責向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

79.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

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

A.C程序可以由多個程序文件組成

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

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給定n個實數(shù),輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數(shù)個數(shù)。

例如,n=8時,輸入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值為94.566635,在平均值以上的實數(shù)個數(shù)應為4。

請修改程序中的錯誤,使它能得出正確的結果。

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

試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。

則函數(shù)值為59。

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

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

試題程序:

參考答案

1.B解析:本題主要考查結構類型的定義:struct是結構體類型的關鍵字;structstr是結構體類型名;x、y、z都是結構體成員名;st是結構變量名。

2.C解析:選項A),B)考查了多分支結構的用法,選項A)中的程序段執(zhí)行時,c<a,b<a條件均不成立,故執(zhí)行else后的語句,x值為3;選項B)中a<3條件成立,執(zhí)行x=3;而選項C),D)是單分支結構的用法,選項C)中程序段執(zhí)行時,a<3條件成立,x=3,但條件a<2也成立,此時執(zhí)行x=2,下一個條件不成立,不再執(zhí)行其后的語句。

3.B

4.A在本題中,程序首先定義一個返回類型為整型的函數(shù)fun,該函數(shù)帶有一個指針型的形參變量str,從主函數(shù)中對其調用時傳遞的參數(shù)我們可以知道,該指針指向的是一個數(shù)組,在該函數(shù)體中,首先定義兩個整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結束標識,即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結果為真,說明取到的當前字符不是空字符,這時執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結束后執(zhí)行str[j]=’\\0’;,即保存字符結束標識符,用來標識字符串結束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。

在主函數(shù)中,首先定義了一個大小為81的字符數(shù)組,然后調用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行gets(str);語句,該語句的作用是從鍵盤輸入一個字符串到str數(shù)組,碰到換行符結束。然后調用函數(shù)fun,其實參為str。通過上面對函數(shù)fun作用的分析我們可以知道,調用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。

程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結果是asdafaaz67,本題答案選A。

5.A

6.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應保持相同的值。

\n

7.C在計算(float)(a4-b)/2時,由于通過強制類型轉換將(a+b)轉換成了float型,所以應先將2轉換成float型,再進行計算,得4.500000。在計算(int)x%(int)y時,先將x和y通過強制類型轉換成int型,再進行求余運算,結果為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。類型轉換的一般規(guī)則是:低級類型從高級類型,并進行相應的轉換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→log→float→double。

8.D

9.C學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯(lián)系且能唯一定義的學號和課號,所以選擇C項。

10.A解析:本題考查的知識點是數(shù)組名作為函數(shù)參數(shù)及函數(shù)調用。reverse()數(shù)的功能是將具有n個元素的數(shù)組a反序存放。在主函數(shù)中調用語句是“reverse(b,8);”,實現(xiàn)的功能是把b數(shù)組的前八個元素逆置,所以b數(shù)組中依次存放的值為“8,7,6,5,4,3,2,1,9,10”。for循環(huán)了4次,分別把b[6]、b[7]、b[8]和b[9]的值(分別是2、1、9、10)加到了s中,s的結果是22,所以最后輸出的s值為22。所以4個選項中A正確。

11.A數(shù)組定義后,不可以對數(shù)組整體賦值。ss是二維數(shù)組,因ss[1]是一維字符數(shù)組,相當于一維數(shù)組的數(shù)組名,是常量,不能重新賦值,A選項錯誤。B選項和D選項是定義時對數(shù)組初始化。在C選項中,將字符串在內存中的首地址賦給指針數(shù)組的一個元素。故本題答案為A選項。

12.A

13.A函數(shù)“strlen(char*s)”;計算字符串s的長度,不包括‘\\0’在內。p指向數(shù)組的第2個元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項。

14.D解析:函數(shù)scanf()的調用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。

15.A運算符“->”適用指針訪問成員變量,運算符“.”適用普通變量訪問成員變量。ptr是指針,只能用“->”,因此選項A錯誤。選項B中,rec.title代表數(shù)組title,選項B正確,同理選項C正確?!?ptr”是結構體變量rec,可以使用運算,因此選項D正確。故本題答案為A選項。

16.B

17.C根據(jù)二叉樹的性質及定義,一棵深度為k且有2k-1個結點的二叉樹為滿二叉樹。滿二叉樹的葉子結點為最后一層的結點數(shù),又根據(jù)滿二叉樹的性質,在滿二叉樹的第i層上至多有2i-1個結點。因此深度為5的滿二叉樹的葉子結點數(shù)為25-1=16個。

18.D

19.C

20.Af函數(shù)功能使第二個指針指向的元素增1,第一個指針指向的元素不變,所以答案選擇A)。

21.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務。

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

23.&s&t&s,&t解析:指針做函數(shù)參數(shù)時,形參和實參指向同一個數(shù)據(jù),所以函數(shù)中對形參所指向的數(shù)據(jù)的改變也能影響到實參。本題中函數(shù)swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過指針來引用一個存儲單元。

24.數(shù)據(jù)的邏輯結構數(shù)據(jù)的邏輯結構解析:數(shù)據(jù)的邏輯結構是對數(shù)據(jù)元素之間的邏輯關系的描述,它可以用一個數(shù)據(jù)元素的集合和定義在此集合中的若干關系來表示。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

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

27.n%base[d]

28.structSTRU*

29.3232解析:b++是先使用b的值參加運算,再對b加1。++c是先對c加1,再使用c的值參加運算。a*=18+(b++)-(++c)等價于a=a*(18+(b++)-(++c))則a=2*(18+3-5)=32。

30.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數(shù)中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內的條件表達式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。

31.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,9的八進制數(shù)的表示為11。

32.

33.19

34.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

35.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。

36.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。

37.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

38.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:

p(double*)malloc(sizeof(double));

39.99解析:函數(shù)的嵌套調用是在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個參數(shù)為f(3,4)的返回值,函數(shù)f(3,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。

40.1000001010000010解析:運算“&”的規(guī)則是只有當兩個相應的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。

41.D解析:在整個程序運行期間,靜態(tài)局部變量在內存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,即使退出函數(shù)以后,下次再進入該函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元,靜態(tài)局部變量的初值是在編譯的時候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調用函數(shù)fun(),三次對靜態(tài)變量x進行操作,x的值應依次為6,7,8。

42.C解析:本題考查逗號表達式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

43.C

44.D解析:本題考查條件運算符。如果x%2非0,輸出**和循環(huán)變量的值;如果x%2為0,輸出##和循環(huán)變量的值。當循環(huán)變量為3和5時,分別輸出**3和**5,當循環(huán)變量為4時,輸出##4后換行。

45.D解析:C語言中的文件是流式文件。流式文件是一種無結構文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。

46.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。

47.C解析:函數(shù)fun的形參是簡單變量,main函數(shù)中調用fun時只是把實參的值傳遞給形參,形參的改變不影響實參,所以調用完函數(shù)fun后a的值不發(fā)生變化,即a=31。

48.A

49.C

50.B解析:考查結構體數(shù)組對結構體成員的引用。結構體數(shù)組中對結構體成員的引用要先引用到數(shù)組元素,然后像對待普通的結構體變量一樣來對待結構體數(shù)組元素。

51.B解析:本題中主要進行位邏輯計算。將a的值轉換為二進制000000010,b轉換為二進制00000100,將a和b進行按位或運算,因此d的二進制數(shù)為00000110,c的二進制為00000101;接下來把d和c進行按位與運算,并轉化為十進制輸出。

52.D解析:X--是先使用x的值再對x減1,即輸出11;--y是先對y減1再使用y的值,輸出10。格式控制中的普通字符“,”原樣輸出。所以選項D符合題意。

53.D解析:do-while循環(huán)是先執(zhí)行循環(huán)體再進行條件判斷,當執(zhí)行了一次循環(huán)以后,t變成了-1,每次循環(huán)后t都減2,t將永遠為負奇數(shù),又循環(huán)結束的條件是n=t,因此只有當n為負奇數(shù)時才不會陷入死循環(huán)。

54.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達式。

55.D解析:本題考查了考生對字符串常量的理解。字符串常量是一段以雙引號括起來的字符序列,它既可以出現(xiàn)在對字符數(shù)組的初始化中,也可以出現(xiàn)在表達式中。當它用于對字符數(shù)組的初始化時,應注意系統(tǒng)自動為其添加的結束標志'\\0'。而當它出現(xiàn)在表達式中時,應該將其看作一個constchar*類型的指針常量。在選項A中,首先定義了一個字符指針sp,然后將一個字符串賦給甲所指的地址,這是錯誤的。因為sp是一個未經(jīng)初始化的野指針,不知其指向哪兒,往一個不確定的地址中寫數(shù)據(jù)很容易讓程序出錯。選項B首先定義了一個字符數(shù)組,然后將一個字符串賦給數(shù)組名,這是錯誤的。因為數(shù)組名是一個指針常量,不可以被改變。選項C首先定義了一個字符數(shù)組,然后將一個字符串賦給數(shù)組的第一個元素,這也是錯誤的。因為字符串在表達式中相當于一個常字符指針,將一個指針值賦給一個字符型變量是行不通的。選項D是定義一個字符指針sp,同時使其指向一個字符串常量,即將一個常字符型指針賦給sp。這是可行的。所以,4個選項中選項D符合題意。

56.C

57.A解析:兩個實體之間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關系模型、網(wǎng)狀模型和層次模型等各種模型轉換。

58.C解析:修改數(shù)據(jù)庫的物理結構或邏輯結構時,通過兩級映像,可以使得應用程序不必修改,保證數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括物理獨立性和邏輯獨立性。

59.A解析:對未給出初始值的整數(shù)數(shù)組元素,被默認初始化為零。

60.C解析:這是一個逗號表達式,它的值應為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉換的情況下,3/2的值為1,所以x+3/2的值應為2.0。

61.C數(shù)組a中有5個元素a,0,0,a,0占7個字節(jié)的內容。最后一個\\0為結束符。

62.A選項A中,8111111+=1/i;i為整型,因此l/i是整型類型,當1/i有小數(shù)時,小數(shù)部分會被截斷。因此l/i結果始終為0,導致結果出錯,應改為8111m+=1.0/i。因此答案為A選項。

63.DC語句可以跨行來寫,但是必須以分號結束,所以A選項錯誤。c程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行也可以不放在一行,所以C選項錯誤。

64.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。數(shù)據(jù)的邏輯結構,是數(shù)據(jù)間關系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關系,而不管其在計算機中的存儲方式。數(shù)據(jù)的存儲結構,又叫物理結構,是邏輯結構在計算機存儲器里的實現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項A

溫馨提示

  • 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

提交評論