2021-2022年河南省信陽市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第1頁
2021-2022年河南省信陽市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第2頁
2021-2022年河南省信陽市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第3頁
2021-2022年河南省信陽市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第4頁
2021-2022年河南省信陽市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年河南省信陽市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.語句int(*ptr)的含義是()。A.A.ptr是一個返回值為int的函數(shù)

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)

D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針

2.如有inta=11;則表達(dá)式(a/1)的值是()。

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

3.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。

A.abcloB.abcC.helloabcD.abchello

4.若有定義“inta=5,b=7;”,則表達(dá)式a%-(b%2)運(yùn)算后,a的值為()。

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

5.下列程序的運(yùn)行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

6.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的運(yùn)行結(jié)果是()。

A.500B.401C.503D.1404

7.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2

B.操作數(shù)除以2

C.操作數(shù)除以4

D.操作數(shù)乘以4

8.有以下函數(shù)intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函數(shù)的功能是()。A.查找X和y所指字符串中是否有\(zhòng)o

B.統(tǒng)計x和Y所指字符串中最前面連續(xù)相同的字符個數(shù)

C.將Y所指字符串賦給X所指定存儲空間

D.統(tǒng)計X和Y所指字符串中相同的字符個數(shù)

9.在有序雙向鏈表中定位刪除一個元素的平均時間復(fù)雜度為()

A.O(1)B.O(N)C.O(logN)D.O(N*logN)

10.在一個無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的()倍。

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

11.以下程序的輸出結(jié)果是()。#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d\n",m(a+b.b+c,c+a));}A.19B.17C.15D.12

12.設(shè)x、y、t均為血型變量,則執(zhí)行語句x=y=3;t=++x||++y;后,y的值為______。

A.不定值B.4C.3D.1

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

B.1111110100011001

C.0000001011100010

D.1100000000101000

14.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運(yùn)行結(jié)果是()。

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

15.同一個關(guān)系模型的任意兩個元組值()。

A.可以全相同B.不能全相同C.必須全相同D.以上都不對

16.線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。

A.s->next=p;p->next=s;

B.s->next=p->next;p->next=s;

C.s->next=p->next;p=s;

D.p->next=s;s->next=p;

17.

18.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。

A.a==lB.++iC.a=a++=5D.a=int(i)

19.若棧采用順序存儲方式存儲,現(xiàn)兩棧共享空間V[1..m],top[i]代表第i個棧(i=1,2)棧頂,棧1的底在v[1],棧2的底在V[m],則棧滿的條件是()。

A.|top[2]-top[1]|=0

B.top[1]+1=top[2]

C.top[1]+top[2]=m

D.top[1]=top[2]

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

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

22.已知bead指向一個帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎?。以下函?shù)求出鏈表中所有連接點(diǎn)數(shù)據(jù)域的和值作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。

{intdata;structlink*next;}

main()

{structlink*head;

sam(______);

{stmctlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

23.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。

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

#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");

}

25.【】是數(shù)據(jù)庫設(shè)計的核心。

26.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。

27.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

28.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。

29.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

printf("%c\n",a);

}

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

30.以下程序的功能是:從鍵盤上輸入若干個學(xué)生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學(xué)生成績,用輸入負(fù)數(shù)結(jié)束輸入。

main()

{floatx[1000],sum=0,ave,a;

intn=0,i;

printf("Entermark:\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:\n");

printf('ave=%f\n",ave);

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

if(【】)printf("%t\n",x[i]);

}

31.若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。

32.函數(shù)pi的功能是根據(jù)以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

請在下面的函數(shù)中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

33.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

34.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

35.在關(guān)系運(yùn)算中,查找滿足一定條件的元組的運(yùn)算稱之為【】。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

37.解題方案的準(zhǔn)確而完整的描述稱為______。

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

longfun5(intn)

{longs;

if((n==1)||(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);}

main()

{longx;

x=fun5(4);

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

39.數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

40.下列程序用來將從鍵盤上輸入的2個字符串進(jìn)行比較,然后輸出2個字符串中第1個不相同字符的ASCII碼之差。例如,輸入的2個字符串分別為abcdef和abceef,則輸出為-1。

#include

main()

{charstr[100],str2[100],c;

inti,s;

printf("\ninputstring1:\n");gest(str1);

printf("\ninputstring2:\n");gest(str2);

i=0;

while((strl[i]==str2[i]&&(strl[i]!=【】))

i++;

s=【】;

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

三、1.選擇題(20題)41.已知有結(jié)構(gòu)體:

structsk

{ihta;

floatb;

)data,*p;

若有p=&data,則對data的成員a的正確引用是()。

A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a

42.以下程序的輸出結(jié)果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

43.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是

A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

44.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

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

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定是一一對應(yīng)的

B.由于計算機(jī)存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)

C.程序設(shè)計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)

D.以上三種說法都不對

46.設(shè)x,y均是int類型變量,則以下不正確的函數(shù)調(diào)用為______。

A.getchar();

B.putchar('\108');

C.scanf("%d%*2d%d",&x,&y);

D.putchar('\'');

47.下列程序的輸出結(jié)果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

48.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

49.C語言結(jié)構(gòu)體類型變量在程序運(yùn)行期間

A.TC環(huán)境在內(nèi)存中僅僅開辟一個存放結(jié)構(gòu)體變量地址的單元

B.所有的成員一直駐留在內(nèi)存中

C.只有最開始的成員駐留在內(nèi)存中

D.部分成員駐留在內(nèi)存中

50.有以下程序floatfun(intx,inty){return{x+y);}main(){inta=2,b=5,c=8;printf("%3.of\n",fun((int)fun(a+c,B),a-C));}程序運(yùn)行后的輸出結(jié)果是

A.編譯出錯B.9C.21D.9

51.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=5,a=1,b=2,c=5,d=O;if(a<b)if(b!=3)if(!c)x=1;elseif(d)x=1;elsex=-1;printf("%d",x);}

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

52.運(yùn)行下列程序,若從鍵盤輸入字母“a”,則輸出結(jié)果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

53.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A.隊列B.棧C.雙向鏈表D.二叉樹

54.設(shè)有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是()。

A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

55.下列數(shù)據(jù)結(jié)構(gòu)中具有記憶功能的是()。

A.隊列B.循環(huán)隊列C.棧D.順序表

56.下述關(guān)于數(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ù)

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

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

B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)

C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)

D.(x>=1)‖x<=10)&&(x>=100)‖(x<=110)

58.有以下程序:#include<stdio.h>main(){FLLE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat""w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dar","r");fp=fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);)程序運(yùn)行后的輸出結(jié)果是()。

A.2030B.2050C.3050D.3020

59.調(diào)用gets和puts函數(shù)時,必須包含的頭文件是

A.stdio.hB.stdlib.hC.defineD.以上都不對

60.在函數(shù)調(diào)用過程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則()。

A.稱為函數(shù)的直接遞歸調(diào)用B.稱為函數(shù)的間接遞歸調(diào)用C.稱為函數(shù)的循環(huán)調(diào)用D.C語言中不允許這樣的遞歸調(diào)用

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

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

62.若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是

63.

設(shè)有以下定義和語句:

charstr[2O]="Program",*P:

p=str:

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

A.*p與stf[0]的值相等

B.str與P的類型完全相同

C.str數(shù)組長度和P所指向的字符串長度相等

D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同

64.

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

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存諸結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存諸結(jié)構(gòu)影響數(shù)據(jù)處理的效率

66.

67.有以下程序:

若運(yùn)行時輸入:123<回車>,則輸出結(jié)果是()。

A.編譯錯誤2000B.102000C.122030D.10

68.

69.有以下程序

main()

{

chara[]={′a′,′b′,′c′,′d′,′\0′,′f′,′g′,′h′,′\0′};inti,j;

i=sizeof(a);

j=strlen(a);

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

}

程序運(yùn)行后的輸出結(jié)果是

A.9,4B.8,4C.1,8D.9,8

70.

71.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

72.

73.下列程序段的輸出結(jié)果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A.無輸出B.12,123.5,12345.5

C.1234,123.5,12345.5D.1234,123.4,12345.5

74.有以下程序

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

A.a=10b=50c=10

B.a=10b=50c=30

C.a=10b=30c=lO

D.a=50b=30c=50

76.

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

78.以下程序段中的變量已正確定義。

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

for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結(jié)果是()。

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

79.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值

80.設(shè)變量均已正確定義,若要通過;語句為變螢a1和a2賦數(shù)值l0和20,為變量cl和c2賦字符x和Yd以下所示的輸入形式中正確的是(注:口代表空格字符)

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進(jìn)行排序。

例如,排序前的數(shù)據(jù)為:1132-5214

則排序后的數(shù)據(jù)為:-52111432

請修改程序中的錯誤,使它能得到正確結(jié)果。

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

試題程序:

#include<stdio.h>

#defineM20

voidproc(inta[],intn)

{

inti,j,t,P;

//****found****

for(j=0;j<n-1;j++);

{

p=j;

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

if(a[[i]<a[p])

p=i;

t=a[p];

a[p]=aEj3;

//****found****

a[p]=t;

}

}

voidmain

{

intarr[M]={11,32,-5,2,14},i,m=5;

printf("排序前的數(shù)據(jù):");

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

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

printf("\n");

proc(arr,m);

printf("排序后的順序:");

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

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

printf("\n");

}

六、程序設(shè)計題(1題)82.編寫一個函數(shù),輸入n個字符串,串與串之間以Enter鍵分隔,找出最短字符串中第一個字符串,傳回該串地址(用一個新串“*”作為結(jié)束輸入的標(biāo)志)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標(biāo)識符(*指針變量名)()?!邦愋蜆?biāo)識符”為函數(shù)返回值的類型。

2.D

3.B執(zhí)行“fprintf(f,“abc”);”后,f文件原有內(nèi)容被“abc”覆蓋。故本題答案為B選項。

4.A本題考查“%”運(yùn)算符的使用。運(yùn)算符“%”是整數(shù)除法的余數(shù)。本題中表達(dá)式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。

5.D本題考查"drhile循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,X++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<X成立,執(zhí)行break語句,退出循環(huán)。結(jié)果為D。

6.Cfor循環(huán)中,函數(shù)f的返回值累加到變量a中。第1次循環(huán),a=0,i=0,返回值a=0*0+1=1;第2次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第3次循環(huán),a=102,i=20,返回值a=20*20+1+102=503;第4次循環(huán)a=503,i=30,不符合1<30,跳出循環(huán),最后結(jié)果輸出a=503。故本題答案為C選項。

7.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)的各二進(jìn)位向左移動4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。

8.B由題中while(*x==*y*x!=\\n)可知此函數(shù)是統(tǒng)計x和y所指向的字符串中最前面的聯(lián)系相同的字符的個數(shù)。

9.B

10.A

11.DM(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。

12.C解析:C語言中在做邏輯或運(yùn)算時,自左向右判斷各個參加或運(yùn)算的表達(dá)式,一旦運(yùn)算到某式的值為非零時,表明整個表達(dá)式一定為真,余下的語句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,則++y并沒有進(jìn)行運(yùn)算,所以y值不變。

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

14.C因?yàn)閮?nèi)層循環(huán)“for(k=1;k<3;k++)”后面直接跟了空語句“;”,所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行printf語句,輸出一個“*”。故本題答案為C選項。

15.B關(guān)系具有以下7個性質(zhì)。①元組個數(shù)有限性:二維表中元組的個數(shù)是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項。

16.B

17.B

18.B選項A為表達(dá)式,因此不正確,選項C中a++本身就是表達(dá)式,無需再賦值,選項D中,在強(qiáng)制類型轉(zhuǎn)換時,類型名應(yīng)用括號括起來,故選擇8選項。

19.B

20.D在三目運(yùn)算符中,優(yōu)先級相同,按從右到左的結(jié)合性計算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項

21.物理獨(dú)立性物理獨(dú)立性

22.

23.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進(jìn)行條件判定。

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

25.數(shù)據(jù)模型數(shù)據(jù)模型

26.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨菩再|(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。

27.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。

28.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fsets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。

29.77解析:本題考查英文字母ASCII碼值的概念。字符參與運(yùn)算的值是其對應(yīng)的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。

30.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用來存放學(xué)生成績總和的,a是輸入的成績,ave存放平均成績,n既是循環(huán)變量,又表示學(xué)生人數(shù),x[n]保存第n個學(xué)生的成績。sum用來累加每個同學(xué)的成績,因此有sum+=a;把新輸入的學(xué)生成績保存在數(shù)組中,因此有x[n]=a;ave是所有同學(xué)的平均成績,因此有ave=sum/n;逐個把學(xué)生成績和平均成績比較,因此有if(x[i]<ave)。

31.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函數(shù)的一般格式為:“printf(格式控制,輸出表列)”。

32.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知;在第i項其值為1/(i*i),考慮到運(yùn)算結(jié)果為浮點(diǎn)數(shù),故必須要將1轉(zhuǎn)化為浮點(diǎn)數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。

33.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

34.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

35.選擇選擇解析:在關(guān)系數(shù)據(jù)庫中,選擇運(yùn)算也是一個元運(yùn)算,關(guān)系R通過選擇運(yùn)算(并由該運(yùn)算給出所選擇的邏輯條件)后仍為一個關(guān)系。這個關(guān)系是由R中的那些滿足邏輯條件的元組所組成。

36.14

37.算法算法解析:算法是指對解題方案的準(zhǔn)確而完整的描述。

38.9

39.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。

40.\0'strl[i]-str2[i]

41.B解析:本題主要考查結(jié)構(gòu)指針:p=&data,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即data.a,也可以用等價的指針形式:(*p).a和p->a來訪問結(jié)構(gòu)體變量中的成員。

42.B解析:本題函數(shù)的功能是計算并輸出一個二維數(shù)組對角線及對角線下面的元素之和。

43.D解析:C語言中數(shù)組下標(biāo)是從0開始的,所以二維數(shù)組a[2][3]的第一維下標(biāo)取值為0、1;第二維的下標(biāo)取值為0、1、2,因而選項A)、B)、C)都是錯誤的,選項D)表示數(shù)組元素a[0][0]。

44.D解析:考查printf函數(shù)的相關(guān)知識。如果要一次進(jìn)行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和C)錯誤。在選項C)中,變量c是一個浮點(diǎn)型指針,它只能指向一個浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。所以選項D)為正確答案。

45.D解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)不一定是一一對應(yīng)的。選項A中的說法是錯誤的。雖然計算機(jī)的存儲空間是向量式的存儲結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),例如,線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)。一般來說,性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲序號是不連續(xù)的,并且各結(jié)點(diǎn)在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的。因此,數(shù)據(jù)的存儲結(jié)構(gòu)不一定是線性結(jié)構(gòu)。選項B中的說法也是錯誤的。雖然程序設(shè)計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性結(jié)構(gòu),但對于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進(jìn)行順序存儲,即利用程序設(shè)計語言中的數(shù)組來存儲,這樣,不僅節(jié)省了存儲空間,又能方便地確定每一個結(jié)點(diǎn)的父結(jié)點(diǎn)與左右子結(jié)點(diǎn)的位置。對于一般的二叉樹來說,也可以將二叉樹中每一個結(jié)點(diǎn)的左指針、右指針以及數(shù)據(jù)域分別用三個數(shù)組中的對應(yīng)元素來存儲,即實(shí)際上也是利用了程序設(shè)計語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。選項C中的說法也是錯誤的。綜上所述,選項A、B與C中的說法都是錯誤的。

46.B解析:八進(jìn)制中的基本數(shù)為0~7,不可能出現(xiàn)8。

47.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。

48.C解析:解答本題,首先要明白在對指針進(jìn)行加、減運(yùn)算的時候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。

49.B解析:結(jié)構(gòu)體類型的變量在程序運(yùn)行期間要作為一個整體占用連續(xù)的內(nèi)存單元。

50.B解析:本題考查的知識點(diǎn)是函數(shù)的參數(shù)類型、函數(shù)值類型及函數(shù)調(diào)用.fun()函數(shù)是將傳進(jìn)來的兩個整型參數(shù)相加,把和作為函數(shù)值返回,.注意返回值為float型.在主函數(shù)調(diào)用了兩次fun()函數(shù),第一次調(diào)用時把表達(dá)式“a+c”和變量“b”的值求和,得到15轉(zhuǎn)換為15.0作為函數(shù)的返回值。第二次調(diào)用把第一次調(diào)用的返回值通過強(qiáng)制類型轉(zhuǎn)換成int型15,再和表達(dá)式“a-c”相加,得到結(jié)果9,轉(zhuǎn)換成float型作為函數(shù)值返回。由于輸出格式符為“%3.0f”輸出時沒有小數(shù)位,故輸出為9.所以4個選項中B正確。

51.A解析:本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第2個if語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語句:第3個if語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對的else語句;第4個if語句,先判斷條件,d=0,條件不成立,則x=-1,結(jié)束循環(huán)。

52.C解析:首先,getchar函數(shù)通過鍵盤讀入字符'a',即c='a',(其實(shí)c得到的是字符a的ASCII碼值),然后判斷if語句的控制條件,發(fā)現(xiàn)'a'>='a'&&'a'<='g'成立,則執(zhí)行下一步列的語句,c=c+4,c得到的是字符e的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符e。

53.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。

【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進(jìn)先出,后進(jìn)后出。

54.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個值。故選項D不正確,答案應(yīng)該選擇D。

55.C解析:由棧的定義可知,棧是先進(jìn)后出(或后進(jìn)先出)的線性表,因此,棧具有記憶功能。

56.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨(dú)立性,而且能并發(fā)地為多個應(yīng)用服務(wù),同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點(diǎn),選項D錯誤。本題正確答案是A。

57.C解析:本題考查邏輯與(&&)和邏輯或(‖)運(yùn)算符的使用。x>=1和x<=10是邏輯與的關(guān)系,因此C語言表達(dá)式應(yīng)寫成“(x>=1)&&(x<=10)”,x>=100和x<=110也是邏輯與的關(guān)系,因此C語言表達(dá)式應(yīng)寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是邏輯或的關(guān)系,因此只要將前兩個表達(dá)式用邏輯或運(yùn)算符連接起來即可,所以最后的表達(dá)式:(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)。

58.A解析:本題首先以創(chuàng)建方式打開文件d1.dat,兩次調(diào)用fpnntf()把i和j的值寫到文件d1.dat中,文件d1.dat的內(nèi)容為20<回車>30<回車>后把該文件關(guān)閉再以讀的方式打開,文件位置指針指向文件頭,再通過fscanf()函數(shù)從中讀取兩個整數(shù)到k和n中,由于格式符無間隔,因此輸入數(shù)據(jù)可以用回車隔開,故輸入的k值為20,n值為30。所以4個選項中A正確。

59.A解析:gets函數(shù)和puts函數(shù)是庫函數(shù),必須包含的頭文件是stdio.h。

60.B解析:在C語言中所謂函數(shù)的遞歸是指在調(diào)用一個函數(shù)的過程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。顯然題目中所說得函數(shù)調(diào)用為函數(shù)的間接遞歸調(diào)用。所以,4個選項中選項B符合題意。

61.C答案C的意思是*P指向數(shù)組的第一個值。

62.A在函數(shù)調(diào)用前,需要定義或聲明,A)選項錯誤。

63.A

\n本題中的str為一個字符型數(shù)組,P為字符型指針變量,其指向str的首地址,*P的值為strE03中的字符,其類型、長度不同,但字符第一個相同,故答案選擇A。

\n

64.A

65.D數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

66.C

67.B首先二維數(shù)組a中的元素都初始化為0,其次定義了指向數(shù)組的指針ptr,并

溫馨提示

  • 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

提交評論