2022-2023年安徽省亳州市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁
2022-2023年安徽省亳州市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁
2022-2023年安徽省亳州市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁
2022-2023年安徽省亳州市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁
2022-2023年安徽省亳州市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年安徽省亳州市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下描述中,不是線性表順序存儲結(jié)構(gòu)特征的是()。

A.可隨機訪問B.需要連續(xù)的存儲空間C.不便于插入和刪除D.邏輯相鄰的數(shù)據(jù)物理位置上不相鄰

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

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

3.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時,第一趟掃描結(jié)果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

4.設(shè)fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

5.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。

A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)

6.下面關(guān)于圖的存儲的敘述中,哪一個是正確的。________

A.用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān)

B.用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點個數(shù)無關(guān)

C.用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān)

D.用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點個數(shù)無關(guān)

7.設(shè)有如下定義和語句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的數(shù)據(jù)為58192765190,其中第1個數(shù)據(jù)代表的是它后面數(shù)據(jù)的個數(shù)。若文件已正確打開,則以下程序段中能將文件的最后5個數(shù)據(jù)依次正確讀入數(shù)組data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

8.給定下列代碼:已知n是一個整數(shù):foo()時間復(fù)雜度為O(1),上述代碼的時間復(fù)雜度是()A.O(logn)B.O(n)C.O(n*log(n))D.O(log(n)^2)

9.將線性表中的結(jié)點信息組織成平衡的二叉樹,其優(yōu)點之一是總能保證任意檢索長度均為log2n量級(n為線性表中的結(jié)點數(shù)目)()

A.對B.錯

10.排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進行比較,將其放入已排序序列的正確位置上的方法,稱為()。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

11.判斷一包含n個整數(shù)的數(shù)組a[]中是否存在i、j、k滿足a[i]+a[j]+a[k]=0的時間復(fù)雜度需要()

A.O(n^2)B.O(n^2logn)C.O(n^3)D.O(nlogn)

12.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

13.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

14.以下程序的輸出結(jié)果是()main(){union{chari[2];intk;}r;r.i[0]=2,r.i[1]=0;printf("%d\n",r,k);}

A.2B.1C.0D.不確定

15.

有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是()。

structnode

{chardata;

structnode*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

16.

17.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

18.設(shè)有定義“intx=2;”,以下表達式中,值不為6的是()。

A.2*x,x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1

19.

20.某二叉樹結(jié)點的中序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E,該二叉樹對應(yīng)的層次遍歷序列為()

A.E、G、F、A、C、D、B

B.E、A、C、B、D、G、F

C.E、A、G、C、F、B、D

D.E、G、A、C、D、F、B

二、2.填空題(20題)21.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

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

main()

{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{if(i==2||i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

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

}

23.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

24.已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

25.若想通過以下輸入語句使a中存放字符串1234,b中存放字符5,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

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

mazn()

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

d=(a>b>C);

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

}

27.關(guān)系操作的特點是______操作。

28.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

29.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2

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

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

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

}

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

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

main()

{

inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{

case0:m++;n++;break;

case10:n++;;break;

default:k++;n++;

}

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

}

31.若有定義:intk;,以下程序段的輸出結(jié)果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

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

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

}

33.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

34.軟件設(shè)計模塊化的目的是______。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

prind("\n");

}

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

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*p=m,*q=m+4;

inti=0;

while(p!=q)

{p->k=++i;p++

q->k=i++;q--;

}

q->k=i;

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

printf("%d",m[i].k);

ptintf("\n");

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

38.要使以下程序段輸出10個整數(shù),請?zhí)钊胍粋€整數(shù);

for(i=0;i<=【】;printf("%d\n",i+=2));

39.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')______;

s[j]='\O';

puts(s);

}

40.下列程序段的運行結(jié)果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

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

三、1.選擇題(20題)41.以下程序運行后的輸出結(jié)果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}

A.1000B.10010C.110D.10100

42.有以下程序intx=3;do{printf("%d",x-=2);}while(!(--x));程序運行后的輸出結(jié)果是()

A.1B.30C.1,-2D.死循環(huán)

43.以下程序輸出的結(jié)果是#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}

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

44.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

45.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}執(zhí)行后輸出結(jié)果是()。

A.產(chǎn)生語法錯誤B.隨機值C.AD.65

46.以下程序的輸出結(jié)果是______。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->y);printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);}

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

47.以下能正確定義整型變量a,b和c,并為其賦初值1的語句是______。

A.inta=b=c=1;B.inta,b,c=1;C.a=b=c=1;D.inta=1,b=1,c=1;

48.以下有4組用戶標識符,其中合法的—組是______。

A.FOR-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

49.請選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

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

51.設(shè)有語句“chara='72';”則變量a()。

A.包含一個字符B.包含二個字符C.包含三個字符D.說明不合法

52.當運行以下程序時,從鍵盤輸入;AhaMA(空格)Aha<CR>,則下面程序的運行結(jié)果是#include<stdio.h>main(){chars[80],c='a';inti=0;scanf("%s",s);while(s[i]!='\n'){if(s[i]==c)s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;}puts(s);}

A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA

53.X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

54.C語言中各種基本數(shù)據(jù)類型的存儲空間長度排列為()。

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long~float≤double

D.float≤int≤long≤char≤double

55.有以下程序voidss(char*s,chart){while{*s)if(*s==t)*s-t-'a'+'A';S++;main(){charstrl[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運行后的輸出結(jié)果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

56.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編譯時將產(chǎn)生錯誤信息的是()。

A.if(x++);

B.if(x>y&&y!=0);

C.if(x>0)x--

D.if(y<0){;}elsey++;elsex++;

57.分析下列程序:#include<stdio.h>main(){int*p1,*p2,*p;inta=6,b=9;p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("%d,%d",*p1,*p2);printf("%d,%d",a,b);}程序的輸出結(jié)果為()。

A.9,66,9B.6,99,6C.6,96,9D.9,69,6

58.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

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

A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ

60.若有定義和語句:()int**pp,*p,a=10,b=20pp=&p;p=&a;p=&b;printf("%d,%d”n",*p,**pp);則輸出結(jié)果是

A.10,10B.10,20C.20,10D.20,20

四、選擇題(20題)61.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

62.在函數(shù)中默認存儲類型說明符的變量應(yīng)該是________存儲類型。

A.內(nèi)部靜態(tài)B.外部C.自動D.寄存器

63.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

64.在HTML頁面中哪些部分能夠插入JavaScript?

A.<body>部分

B.<head>部分

C.<body>部分和<head>部分均可

D.<title>部分

65.

66.以下有4組用戶標識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

67.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

68.在一個C源程序文件中所定義的全局變量,其作用域為()。

A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

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

A.線性表的鏈式存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的

B.線性表的鏈式存儲結(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)

C.線性表的鏈式存儲結(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)

D.線性表的鏈式存儲結(jié)構(gòu)所需要的存儲空間與順序存儲結(jié)構(gòu)沒有任何關(guān)系

70.有以下程序:

#include<<stdio.h>

structstu

{intnum;

charname[10]:

intage;}

voidfun(structstu*p)

{printf("%s\n",(*p).name);}

themain

{

structstustudents[3]={{9801,"Zhang".20},

{9802,"Wang",19},{9803,"Zhao",18}}

fun(students+2);

}

輸出的結(jié)果是()。

A.ZhangB.ZhaoC.WangD.18

71.

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

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

A.6,1B.2,1C.6,0D.2,0

73.

若變量e為char類型,能正確判斷出C為小寫字母的表達式是()。A.a<=c<=ZB.c>=a.(c<=Z)C.(a<=c)and(z>c)D.(c>=a)&&(c<=Z)

74.有以下程序段:

當執(zhí)行上述程序段,并從鍵盤輸入:nalne=LilinLim=1001<;回車>;后,name的值為()。

A.name:=Lilinum=1001B.nfll"ne=LiliC.Uli.h.um=D.Lili

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

A.順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的

B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)

C.順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表

D.鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間

76.若有函數(shù)voidfun(doublea[]。int*n){…}以下敘述中正確的是()。A.調(diào)用fun函數(shù)時只有數(shù)組執(zhí)行按值傳送,其他實參和形參之間執(zhí)行按地址傳送

B.形參a和n都是指針變量

C.形參a是一個數(shù)組名,n是指針變量

D.調(diào)用fun函數(shù)時將把double型參數(shù)組元素一一對應(yīng)地傳送給形參a數(shù)組

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

A.

B.

C.

D.

78.

79.

80.

有以下程序:

main

{inti,n=0:

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

{do

{if(i%3)continue:

n++:

}while(!i);

n++:

}

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

}

程序執(zhí)行后輸出結(jié)果是()。

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從m個學(xué)生的成績中統(tǒng)計出低于平均分的學(xué)生人數(shù),人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲單元中。例如,輸入8名學(xué)生的成績:6070809065758595則低于平均分的學(xué)生人數(shù)為4(平均分為77.5)。實際輸入時學(xué)生數(shù)以“Enter”鍵作為結(jié)束,成績與成績之間也與Enter鍵作為分隔。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中除了下標為奇數(shù)、同時ASCⅡ值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為edB2A4Dsdg,其中字符A的ASCⅡ碼值為奇數(shù),因此應(yīng)當刪除;其中字符B的ASCⅡ碼值為偶數(shù),但在數(shù)組中的下標為偶數(shù),因此也應(yīng)當刪除;而字符2的ASCⅡ碼值為偶數(shù),所在數(shù)組中的下標為奇數(shù),因此不應(yīng)當刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是d24。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.DD)【解析】線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。

2.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

3.A

4.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個形參為字符型,所以A不符合,第二個形參為精度型,所以D不符合,函數(shù)fun定義為void型(無論返回值型),故其沒有返回值,所以選項B錯誤。選項C的第一個實參的類型為字符型,第二個實參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項C為正確答案。

5.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。

6.A

7.A由題意可知,文件abc.txt中存放了6個整數(shù)。其中第1個表示后續(xù)數(shù)據(jù)的個數(shù)。要將最后5個數(shù)據(jù)讀入數(shù)組data中,需要讀取數(shù)據(jù)的個數(shù)為5,所以首先調(diào)用fscanf函數(shù),將5讀入整型變量n中;接著通過for循環(huán),i分別取值0~n-1,調(diào)用fscanf函數(shù)將n個整數(shù)讀入data[0]~data[n-1]中。故本題答案為A選項。

8.B

9.A

10.C

11.A

12.C結(jié)構(gòu)體不能通過結(jié)構(gòu)體名字整體賦值,通過結(jié)構(gòu)體名.成員名的方式賦值。所以C選項錯誤。

13.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進行下次循環(huán)。所以在程序中,只有當a=10時,才退出循環(huán),故選擇D選項。

14.A解析:根據(jù)共用體的定義可知:共用體r的成員k和成員i[2]是共用同—段內(nèi)存空間,所以,當程序給r.i[0]賦值后,實際上,共用體成員k的值也確定了,為2。所以打印輸出的結(jié)果應(yīng)當為2。

15.B

\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點b連接到結(jié)點;l的后面,必須把b的地址給a的next指針。故8正確。

\n

16.D

17.CA選項中,沒有對指針進行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進行取地址操作;B選項中,沒有對指針進行初始化,屬于無效指針;D選項中,語句“*p=&k;”書寫錯誤,應(yīng)為“P=&k;”。故本題答案為C選項。

18.AA選項中先計算逗號表達式的第1個表達式“2*x”,然后計算第2個表達式“x+=2”,即“x=x+2=4”,整個逗號表達式為第2個表達式的值4。所以A選項正確。B選項中首先計算逗號表達式的第1個表達式“x++”,此時x為3;再計算第2個表達式“2*x=2*3=6”,所以逗號表達式為第2個表達式的值6。C選項中的表達式可以表示為“x=x*(1+x)=2*(1+2)=6”。D選項中的表達式可以表示為“x=x*(x+1)=2*3=6”。故本題答案為A選項。

19.A

20.C

21.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。

22.92

23.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項是或的關(guān)系。

24.67G67G解析:字符型變量中保存的是某個字符的ASCII碼值,是一個整數(shù),因此字符型變量的算術(shù)運算和整型變量并無區(qū)別。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分別按十進制整數(shù)和字符形式輸出a和b的值為:67G。

25.a=123b=5

26.00解析:關(guān)系運算符“>”的結(jié)合方式是從左向右的,所以在本題中的表達式a>b>c;從左向右開始計算,a>b的結(jié)果為“1”,接著1和c比較假,該空格處應(yīng)該填0。

27.集合集合

28.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。

29.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。

30.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數(shù)中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結(jié)束。故該空格處應(yīng)該填132。

31.本題主要考查for循環(huán)語句。for循環(huán)的增量表達式為逗號表達式,相當于k+=2;,即每次循環(huán)后k增加2。第一次循環(huán)時,k=2,因此輸出##2;第二次循環(huán)時k=4,輸出##4。此后k=6,不滿足循環(huán)條件。\r\n\r\n

32.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]…b[9]的值相加,結(jié)果為22。

33.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

34.降低復(fù)雜性降低復(fù)雜性

35.1011121210111212解析:需要注意的是,函數(shù)fun()中的變量c為靜態(tài)局部變量,在靜態(tài)存儲區(qū)內(nèi)分配了存儲單元,在程序整個運行期間不會釋放,所以調(diào)用函數(shù)時,只賦初值一次,以后再調(diào)用函數(shù)時,c中的值為上次調(diào)用函數(shù)時的值。執(zhí)行for循環(huán),當i=0時,fun(5)=5+1+4=10,此時c=4;當i=1時,fun(5)=5+1+5=11,此時c=5;當i=2時,fun(5)=5+1+6=12;此時c=6:當i=3時,退出for循環(huán),并輸出回車換行符。

36.1343113431解析:程序首先定義了一個結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個該結(jié)構(gòu)體的數(shù)組m[5]和兩個結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第—個元素):q指向m+4(指向數(shù)組的最后一個元素)。接下來定義并初始化一個整型變量i為0。然后用一個while循環(huán),在p和q不相等的時候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個結(jié)構(gòu)體。i從0開始交替調(diào)用++i和i++,兩個表達式的值依次分別為1和1、3和3……。所以當p==q循環(huán)結(jié)束時,實際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。

37.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實現(xiàn)的功能簡單來說就是將字符串s下標為p+2~k范圍的字符整體復(fù)制到字符串s下標為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。

38.18或1918或19

39.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。

40.8208,20解析:本題考查while循環(huán)和++運算符的運用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時y=8。

41.B

42.C

43.B解析:本題考核的知識點是自增運算符和自減運算符的使用.程序中i的值用八進制表示(十進制為8),++i是在變量使用前自身先加1,而j--是在變量使用后自身減1。所以,4個選項中B符合題意。

44.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。

45.C解析:本題在定義共用體的同時,定義了一個共用體型變量u1,共占兩個字節(jié),有兩個成員n和c,兩個成員的首地址是相同的。因此給u1.c賦一個A,其實就是給無符號整型成員u1.n的低字節(jié)賦一個A,輸出u1.n的時候是以字符型的形式輸出,只輸出它的低地址的一個字節(jié),因此為A。所以,C選項為所選。

46.D解析:本題中是一個結(jié)點的循環(huán)鏈表。C語言中結(jié)構(gòu)體的定義為:struet結(jié)構(gòu)體類型名{成員項表;};

47.D解析:選項A中,變量b、c未定義;選項B中,a、b未賦值;選項C中a、b、c均未定義。

48.C解析:C語言的標識符的定義為:以字母或下劃線開頭的由字母、數(shù)字字符、下劃線組成的字符串。而且標識符不能與關(guān)鍵字相同。

49.B

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

51.D解析:字符變量的值為單個字符,并用單引號包含,而本題中的單引號中是兩個字符,不是合法說明。

52.A解析:本題主要考查的知識點是大寫字母比它對應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進行算術(shù)運算等操作。

53.B解析:scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址。選項A不是C語言中的輸入語句,故選項A不正確;選項C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址,故選項C不正確;選項D不是C語言中的輸入語句,故選項D不正確:所以,4個選項中選項B符合題意。

54.C解析:在TurboC2.0環(huán)境中,char占1個字節(jié)、int占2個字節(jié)、long占4個字節(jié)、float占4個字節(jié)、double占8個字節(jié)。所以本題的正確答案為C。

55.B解析:本題中的函數(shù)ss()有兩個參數(shù),一個是字符型指針變量s,另一個是字符型變量t在函數(shù)中通過一個while循環(huán),在循環(huán)中一次取出s指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“s=t-'a'+'A':”(若是小寫字母,則把它轉(zhuǎn)換成大寫字母)語句。在主函數(shù)中執(zhí)行函數(shù)調(diào)用ss(strl,c),很顯然是把str1數(shù)組中所有字符“d”變成大寫字母,其他字符不變。所以4個選項中B正確。

56.C解析:選項A)和選項B)在條件判斷語句的后面是空語句,什么都不做;在選項D)if后面是一個復(fù)合空語句;而在選項C)中,在x--后面少了一個分號,所以程序段在編譯時,會出現(xiàn)語法錯誤。

57.A解析:通過p1=&a,p2=&b分別將a、b的地址賦給指針p1、p2,接著執(zhí)行if語句,發(fā)現(xiàn)a<b成立,則通過交換p1、p2的值,即交換a、b所在存儲單元的地址,但是a、b的值并沒有發(fā)生變化。

58.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。

59.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根

溫馨提示

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

評論

0/150

提交評論