2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)_第1頁
2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)_第2頁
2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)_第3頁
2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)_第4頁
2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)有下列二叉樹:

對此二叉樹先序遍歷的結(jié)果為

A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA

2.對于循環(huán)隊(duì)列,下列敘述中正確的是()。

A.隊(duì)頭指針是固定不變的

B.隊(duì)頭指針一定大于隊(duì)尾指針

C.隊(duì)頭指針一定小于隊(duì)尾指針

D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

3.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲(chǔ)到一維數(shù)組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應(yīng)T[k]的下標(biāo)k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

4.

5.程序中對fun函數(shù)有如下說明

void*fun();

此說明的含義是:A.fun了數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個(gè)函數(shù),該函數(shù)無返回值

6.有以下函數(shù):intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函數(shù)的功能是()。

A.將y所指字符串賦給x所指存儲(chǔ)空間

B.查找和y所指字符串中是否有"\0'

C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)

D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)

7.以下正確的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

8.用二進(jìn)制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要()長的二進(jìn)制字符串

A.12B.14C.18D.24

9.有下列程序:main{intk=5,n=0;while(k>0){switch(k){dcfault:break;case1:n=n+k;case2:case3:n+=k;}k--;}printf("%d\n".n);}程序運(yùn)行后的輸出結(jié)果足()。A.0B.4C.6D.7

10.下列語句組中正確的是()。

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

11.函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項(xiàng)是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

12.

13.下面程序的運(yùn)行結(jié)果是()。

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

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

{if(a[i]>='0'&&a[i]<='9')

{s[j]=a[i];

j++;

}

s[j]='\0';

}

}

main

{char*s="aa89gggh";

del(s):

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

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

14.要解決散列引起的沖突問題,最常用的方法是()

A.數(shù)字分析法、除留余數(shù)法、平方取中法

B.除留余數(shù)法、線性探測法、平方取中法

C.線性探測法、二次探測法、鏈地址法

D.除留余數(shù)法、線性探測法、二次探測法

15.以下關(guān)于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義

C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

16.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析

17.

18.有以下程序

main()

{

intn[3],i,j;

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

n[i]=0;

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

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

n[j]=n[i]+1;

printf("%d\n",n[1]);

}

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

B.1

C.0

D.3

19.

20.甲乙兩個(gè)聰明人上街,撿到一張10塊錢的購物卡,兩人就想出一個(gè)辦法來分配這張卡。兩個(gè)分別將自己出的價(jià)格寫在紙上,然后看誰出的價(jià)高就給誰,并且那個(gè)出價(jià)高的人要把出的錢給對方。現(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對方當(dāng)前有多少錢并且都希望自己收益高于對方。問最后誰獲得的錢多()

A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況

二、2.填空題(20題)21.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運(yùn)算。

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

23.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實(shí)現(xiàn)的。

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,e+d)*10;

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

}

25.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

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

27.軟件測試的方法有動(dòng)態(tài)測試、靜態(tài)測試和【】13種。

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

main()

{intX=10,y=20,t=0;

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

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

}

29.若有以下程序:

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í)行后輸出的結(jié)果是【】。

30.在運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是【】。

31.在數(shù)據(jù)庫理論中,數(shù)據(jù)物理結(jié)構(gòu)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應(yīng)用程序的變化,稱為【】。

32.設(shè)有定義:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

33.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

34.將經(jīng)過確認(rèn)測試的軟件與外設(shè)、網(wǎng)絡(luò)等連接在一次運(yùn)行的測試叫【】

35.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),如果是素?cái)?shù),函數(shù)返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

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

#include<stdio.h>

fun()

{staticinta=0;

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

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

37.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管叫‘管理多個(gè)項(xiàng)目,則實(shí)體“主管”與實(shí)體“”的聯(lián)系屬于______。

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

1

11

121

1331

14641

其構(gòu)成規(guī)律是,第0列元素和主對角線元素均為1,其余元素為其左上方和正上方元素之和,數(shù)據(jù)的個(gè)數(shù)每行遞增1。請將程序補(bǔ)充完整。

#defintN6

voidYangHui(int*[N][N])

{

inti,j;

x[0][0]=1

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

{

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

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

x[i][j]=【】;

}

}

39.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

40.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

三、1.選擇題(20題)41.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

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

A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量

43.下列程序的輸出結(jié)果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}

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

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

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

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

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

A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大

B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說法都不對

45.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。

A.*p=&a;sCanf("%1f",p);

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

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

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

A.C語言編譯時(shí)不檢查語法

B.C語言的子程序有過程和函數(shù)兩種

C.C語言的函數(shù)可以嵌套定義

D.C語言所有函數(shù)都是外部函數(shù)

47.若有說明inta[][3]={0,0);,則不正確的敘述是()。

A.數(shù)組a的每個(gè)元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

48.以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是

A.k=n,n=n+1B.n=n+l,k=nC.k=++nD.k+=n+1

49.若a=1,b=2,則a|b的值是______。

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

50.設(shè)有如下定義,則執(zhí)行表達(dá)式(nFa>b)&&(n=c>d)后,n的值為______。inta=1,b=2,c=3,d=4,m=2,n=2;

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

51.以下不屬于對象的基本特點(diǎn)的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

52.有以下程序:#include<stdio.h>fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charsir[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};prlnff("%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)果是()。

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

53.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

54.以下對C語言函數(shù)的有關(guān)描述中,正確的是______。

A.在C程序中,調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.函數(shù)既可以嵌套定義又可以遞歸調(diào)用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中

55.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c,則能夠把c插入到a和b之間并形成新的鏈表的語句組是()。

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p>next;

D.(*p).next=q;(*q).next=&b;

56.下面語句中不能定義一個(gè)數(shù)組,元素值依次分別為1,1,1,0,0的是______。

A.staticinta[5]={1,1,1,0,0};

B.staticinta[5]={1,1,1};

C.staticinta[]={1,1,1,0,0};

D.staticinta[5]={1*2,0*3};

57.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()。A.存儲(chǔ)結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲(chǔ)結(jié)構(gòu)

58.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

59.表達(dá)式0x130x17的值是()。

A.0x04B.0x13C.0xE8D.0x17

60.指針變量p的基類型為int,并已指向一連續(xù)存儲(chǔ)區(qū),若p中當(dāng)前的地址值為1234,則執(zhí)行p++后,p中的值為()

A.1234B.1235C.1236D.1237

四、選擇題(20題)61.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9

62.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語句中錯(cuò)誤的是()

A.a++;B.b++C.c++;D.d++;

63.在c語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A.auto和static

B.extern和register

C.auto和register

D.static和register

64.語句int(*ptr)的含義是()。

A.ptr是一個(gè)返回值為int的函數(shù)

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

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

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

65.

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

67.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.55566.0B.566.0C.7777.0D.566777.0

68.有以下程序(注:字符a的ASCIl碼值為97)}程序運(yùn)行后的輸出結(jié)果是()。

A.789B.abcC.7890D.979899

69.

70.下列敘述中錯(cuò)誤的是()。

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)

B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)

C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)

D.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的

71.

72.在16位編譯系統(tǒng)上,若有定義“inta[]={10,20,30},*p=&a;”,當(dāng)執(zhí)行“P++;”后,下列說法錯(cuò)誤的是()。

A.P向高地址移了一個(gè)字節(jié)B.P向高地址移了一個(gè)存儲(chǔ)單元C.P向高地址移了兩個(gè)字節(jié)D.P與a+1等價(jià)

73.

74.利用E-R模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),可以分成3步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對全局E-R模型進(jìn)行(),得到最終的E-R模型。

A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化

75.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是()

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

76.

77.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn):

78.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

79.數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。例如,當(dāng)s中的數(shù)為l23456789時(shí),t中的數(shù)為2468。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

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

則函數(shù)值為59。

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

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

試題程序:

參考答案

1.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。

2.D循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針。

3.B

4.B

5.D解析:返回指針的函數(shù)定義為:返回值類型,函數(shù)名(\u3000\u3000),而指向函數(shù)的指針定義為:返回值類型(*變量名)(\u3000\u3000)。本題中函數(shù)fun返回一個(gè)無類型的指針。

6.C本題中由循環(huán)條件可知遇到“0或x與y所指的字符的值不等中的一個(gè)條件時(shí)就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。

7.B題目中的選項(xiàng)都以轉(zhuǎn)義字符“\\”開頭,“\\ddd”表示3位八進(jìn)制數(shù)代表的一個(gè)ASCII字符,“\\xhh”表示2位十六進(jìn)制數(shù)代表的一個(gè)ASCII字符。選項(xiàng)A中“089”是不合法的八進(jìn)制數(shù),錯(cuò)誤;選項(xiàng)C、D中“\\0X”或“\\0x”不合法,錯(cuò)誤;選項(xiàng)B表示八進(jìn)制數(shù)012代表的ASCII字符,正確。本題答案為B選項(xiàng)。

8.B

9.D本題主要考查while循環(huán)語句和switchcase語句的使用方法。其執(zhí)行步驟為:k=5時(shí),跳出switch語句,然后k自減1;當(dāng)k=4時(shí),跳出switch語句,然后k自減1;當(dāng)k=3時(shí),n=13+k=0+3=3,跳出switch語句,然后k自減1;當(dāng)k=2時(shí)n=n+k=3+2=5,跳出switch語句,然后k自減l;當(dāng)k=1時(shí),case1:n=n+k一5+1=6,沒有break繼續(xù)執(zhí)行CaSe3;n=n+k=6+1=7,跳出switch語句,然后k自減1;當(dāng)k=0時(shí),退出循環(huán),所以輸出結(jié)果為7。

10.BA選項(xiàng)去掉花括號后,賦值正確;C選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值,因?yàn)閿?shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項(xiàng)。

11.B函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個(gè)元素。取指針的值,使用*P,因此比較使用*P和*s,又因?yàn)檎易畲笾?,?dāng)*s<*p時(shí),修改指針s的指向。故本題答案為B選項(xiàng)。

12.A

13.D本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入S數(shù)組中的字符,如果遇到數(shù)字,則將數(shù)字存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應(yīng)該是字符串S中所有的數(shù)字的個(gè)數(shù)。

14.C

15.B解析:C語言中注釋可以放在任何位置,選項(xiàng)A錯(cuò)誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項(xiàng)B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C錯(cuò)誤;C語言數(shù)值常量中不允許存在空格,選項(xiàng)D錯(cuò)誤。

16.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。

17.A

18.D初始時(shí)定義一個(gè)大小為3個(gè)一維整型數(shù)組,第一個(gè)for語句是對數(shù)組賦初值,每個(gè)值都為0。后面是一個(gè)for語句的嵌套調(diào)用,外層的循環(huán)變量i的取值為[0,2],內(nèi)層循環(huán)變量的取值范圍為[0,2]。最初外層的循環(huán)變量i=0,內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外層for語句的循環(huán)變量為1時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[1]+1,得到n[0]=2,n[1]=2,n[2]=2。外層for語句的循環(huán)變量為2時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[2]+1,得到n[0]=3,n[1]=3,n[2]=3。最后的輸出結(jié)果為3。

19.B

20.C

21.存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對數(shù)據(jù)的操作運(yùn)算。

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

23.封裝封裝

24.77解析:在C語言中,宏定義是直接替換的,所以在對表達(dá)式MAX(a+b,c+d)*l0進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+9d)*10)的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。

25.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。

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

27.正確性測試正確性測試

28.20020,0解析:在主函數(shù)中首先定義了3個(gè)整型變量x、y、t,并分別給它們賦初值為10、20、0,接著執(zhí)行汀語句,在if后面括號內(nèi)的條件表達(dá)式中,條件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。

29.99解析:在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給do函數(shù)的第一個(gè)參數(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))等價(jià)于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。

30.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運(yùn)算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來。循環(huán)鏈表具有兩個(gè)特點(diǎn):①在循環(huán)鏈表中增加了一個(gè)表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來設(shè)置,指針域指向線性表的第一個(gè)元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。②循環(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。

31.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)的物理結(jié)構(gòu)改變,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應(yīng)用程序的變化,這種性質(zhì)叫做物理獨(dú)立性。

32.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。

33.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用。可知,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。

34.系統(tǒng)測試系統(tǒng)測試

35.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素?cái)?shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語句,若形參a對i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。

36.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

37.一對多一對多解析:由于一個(gè)項(xiàng)目主管可以管理多個(gè)項(xiàng)目,而一個(gè)項(xiàng)目只能有一個(gè)項(xiàng)目主管,“項(xiàng)目主管”這個(gè)實(shí)體與“項(xiàng)目”這個(gè)實(shí)體的管理關(guān)系囑于一對多。

38.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)。在第一層for循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1,顯然在第一個(gè)空白處應(yīng)該填入對角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空白處應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

39.棧棧解析:棧和隊(duì)列都是—種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進(jìn)行插入或刪除操作,是—種“先進(jìn)后出”的線性表;而隊(duì)列只允許在表的—端進(jìn)行插入操作,在另—端進(jìn)行刪除操作,是—種“先進(jìn)先出”的線性表。

40.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。

41.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個(gè)說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。

42.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

43.D解析:函數(shù)f()的功能是對兩個(gè)數(shù)據(jù)互換。在主函數(shù)中指針變量p和q分別指向數(shù)組a[8)的首和尾,在while循環(huán)中實(shí)現(xiàn)從首尾開始數(shù)組元素的互換操作。

44.DD?!窘馕觥克惴ǖ臅r(shí)間復(fù)雜度和算法的空間復(fù)雜度是從不同的角度來衡量算法的執(zhí)行情況的,它們之間沒有內(nèi)在聯(lián)系。

45.D解析:double*p,a;語句表示定義了一個(gè)指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D)為正確答案。

46.D解析:C語言在編譯時(shí)要檢查其語法是否合法,故選項(xiàng)A錯(cuò)誤。C語言的子程序由函數(shù)組成,過程不是C語言的組成部分,顯然過程和函數(shù)并不是C語言的子程序的兩種不同形式,故選項(xiàng)B錯(cuò)誤。在C語言中明確規(guī)定:不能嵌套定義,即不能在函數(shù)內(nèi)部定義函數(shù),故選項(xiàng)C錯(cuò)誤。一個(gè)完整的C程序有且僅有一個(gè)主函數(shù)(main()函數(shù)),其他函數(shù)都是在執(zhí)行main()函數(shù)時(shí),通過函數(shù)調(diào)用或嵌套調(diào)用來執(zhí)行的,都是外部函數(shù),故選項(xiàng)D正確。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

47.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時(shí)應(yīng)注意下列兩點(diǎn):①在對二維數(shù)組元素賦初值時(shí),可以只對部分元素賦初值,未賦初值的元素自動(dòng)取0。②二維數(shù)組第一維的大小由下列規(guī)則確定:當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小;當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小=所得商數(shù)+1。

48.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來的值,即k的值沒有改變。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個(gè)表達(dá)式和本題中表達(dá)式等價(jià);選項(xiàng)B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個(gè)表達(dá)式和本題中表達(dá)式不等價(jià);選項(xiàng)C中先計(jì)算表達(dá)式左邊的表達(dá)式++n的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個(gè)表達(dá)式和本題中的表達(dá)式不等價(jià);選項(xiàng)D中表達(dá)式展開為k=k/(n+1),k的值發(fā)生了變化,所以這個(gè)表達(dá)式和本題中的表達(dá)式不等價(jià).所以4個(gè)選項(xiàng)中A正確。

49.D

50.B

51.C解析:對象的基本特點(diǎn)包括;標(biāo)識惟一性、分類性、多態(tài)性、封裝性和獨(dú)立性等。繼承性不屬于對象的基本特點(diǎn)。

52.B解析:數(shù)組名str作為函數(shù)參數(shù)將實(shí)參數(shù)組的起始地址傳給形參數(shù)組p,當(dāng)形參數(shù)組發(fā)生變化時(shí)主函數(shù)中的實(shí)參數(shù)組中的值也隨之發(fā)生變化。調(diào)用fun函數(shù)執(zhí)行for循環(huán)語句后,n為2,返回給main函數(shù)輸出。

53.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長度才可以省略,數(shù)組的長度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

54.A解析:在C語言中,提供了許多庫函數(shù)供用戶使用,因此選項(xiàng)D錯(cuò)誤。

55.D解析:在本題,扣指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應(yīng)該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。所以,4個(gè)選項(xiàng)中D為所選。

56.D解析:不可能用表達(dá)式的方式來給數(shù)組元素一一賦值。

57.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。

58.B解析:選項(xiàng)A的錯(cuò)誤在于,先已經(jīng)把q結(jié)點(diǎn)給釋放,無法再進(jìn)行余下語句了:選項(xiàng)C和D的錯(cuò)誤在于因?yàn)橛辛藂=(*q).next做了賦值,則free(q)釋放了原來q后面的一個(gè)結(jié)點(diǎn)。

59.A解析:運(yùn)算符“^”是按位異或運(yùn)算符,其運(yùn)算規(guī)則是:參與運(yùn)算的兩個(gè)二進(jìn)制數(shù),若相對應(yīng)的二進(jìn)制位上的數(shù)相同,則該位的結(jié)果為0;否則該位的結(jié)果為1??傻茫?x130x17=1001110111=0x04

60.C

61.B本題考查for循環(huán)及if…else語句嵌套,第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=l,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

62.D++是自增運(yùn)算符,作用是使變量的值增加1,選項(xiàng)D中的d不是變量,而是一個(gè)標(biāo)識符,它代表常量2,常量是不允許進(jìn)行自增運(yùn)算的。故本題答案為D。

63.CC語言的存儲(chǔ)類型為auto、register、extern、static。下面分別解釋每種存儲(chǔ)類型的含義。auto:函數(shù)中的局部變量,動(dòng)態(tài)地分配存儲(chǔ)空間,數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存儲(chǔ)區(qū)中,在調(diào)用該函數(shù)時(shí),系統(tǒng)會(huì)給它們分配存儲(chǔ)空間,在函數(shù)調(diào)用結(jié)束后自動(dòng)釋放這些存儲(chǔ)空間。register:為了提髙效率,C語言允許將局部變量的值放在CPU的寄存器中,這種變量叫“寄存器變量”,只有局部自動(dòng)變量和形參可以作為寄存器變量。extern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域?yàn)閺淖兞慷x處開始到本程序文件的末尾。如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件末尾。static:靜態(tài)局部變量,屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放。故本題答案為C選項(xiàng)。

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

65.A

66.C本題考查三目運(yùn)算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級,先算括號內(nèi)的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

67.B

\n變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會(huì)被保存到浮點(diǎn)型變量Y中。

\n

68.A因?yàn)樾懽址鸻,b,c的ASCIl碼的值分別為97,98,99,而在d0…while循環(huán)語句中,每次對字符的ASCIl碼的值取余數(shù)并輸出,所以分別輸出7,8,9,選項(xiàng)A)正確。

69.C\r\n

70.BB?!窘馕觥繑?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)分為順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu),一個(gè)數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲(chǔ)空間是連續(xù)的,而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素所占的存儲(chǔ)空間不一定是連續(xù)的。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)。

71.C

72.A因?yàn)镻是整型的指針變量,因此其移動(dòng)一個(gè)位置即兩個(gè)字節(jié),故選擇A選項(xiàng)。

73.D

74.D解析:在概念設(shè)計(jì)中按照模塊的劃分畫出每個(gè)模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對全局E-R圖進(jìn)行優(yōu)化,看看是否有重復(fù)和不合理的地方。不能只是進(jìn)行簡單的合并。

75.B堆排序。先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后再建成新的根堆,再排序。堆排序的過程是:先建一個(gè)堆,輸出堆頂?shù)淖畲蠡蜃钚〉脑兀賹⑹S嗟膎-1個(gè)元素重新調(diào)整成一個(gè)新堆。如此反復(fù)進(jìn)行,直到排序完成。

直接插入排序是一種最簡單的排序方法,它的基本操作是將一個(gè)記錄插入到已排好的有序表中,從而得到一個(gè)新的、記錄數(shù)增1的有序表。首先,將序列中的第1個(gè)記錄看成是一個(gè)有序的子序列,然后從第2個(gè)記錄起逐個(gè)進(jìn)行插入,直至整個(gè)序列變成按關(guān)鍵字非遞減有序序列為止。

快速排序是對冒泡排序的一種改進(jìn)。它的基本思想是通過一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可以分別對這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。

直接選擇排序是通過n-i次關(guān)鍵字間的比較,從n-i+1個(gè)記錄中選出關(guān)鍵字最小的一個(gè)記錄,并和第i個(gè)記錄交換。這樣重復(fù)執(zhí)行n-1趟選擇排序。

在本題中,數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),即說明數(shù)據(jù)表基本有序,簡單移動(dòng)一些元素即可完成排序,在這種情況下,使用直接插入排序法所需時(shí)間最少,最合理。因此本題的正確答案是B。

\r\n\r\n\r\n

76.B

77.A本題考查的是在鏈表中刪除結(jié)點(diǎn)的操作。在本題中指針p指向結(jié)點(diǎn)a,q指向結(jié)點(diǎn)b。要把結(jié)點(diǎn)b刪除,就應(yīng)該首先讓結(jié)點(diǎn)a的指針域指向結(jié)點(diǎn)C,即p—next=q—next,也可以寫成(*p).next=(Pq).next,然后釋放結(jié)點(diǎn)b,

free(q):所以,4個(gè)選項(xiàng)中,只有A)滿足題意。

78.C數(shù)組的下標(biāo)是從0開始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個(gè)地址,但是也同樣越界了;選項(xiàng)C中表示的是第一個(gè)的首地址;選項(xiàng)D表示的為其元素的值,并不是地址。

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

80.B

81.(1)錯(cuò)誤:voidproc(longs,longt)

正確:voidproc(longS,long*t)

(2)錯(cuò)誤:while(s<0)

正確:while(s>0)

【解析】從主函數(shù)中實(shí)參可知,形參的第二個(gè)變量是長整型的指針變量。因此“voidproe(10ngs,longt)”應(yīng)改為“voidproc(10ngs,long*t)”;要從低位開始取出長整型變量s中偶數(shù)位上的數(shù),每次變量s要除以100,然后判斷其是否大于0來決定是否要繼續(xù),因此“while(s<0)”應(yīng)改為“while(s>0)”。

82.

【解析】要求二維數(shù)組周邊元素之和,首先應(yīng)該判斷數(shù)組中的每一個(gè)元素是否是周邊元素。找出所有的周邊元素后求和,返回給主函數(shù)。周邊元素的下標(biāo)特點(diǎn)為行或列的下標(biāo)為。或N—1。根據(jù)此特點(diǎn),找出所有的周邊元素然后求和。

2021-2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)有下列二叉樹:

對此二叉樹先序遍歷的結(jié)果為

A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA

2.對于循環(huán)隊(duì)列,下列敘述中正確的是()。

A.隊(duì)頭指針是固定不變的

B.隊(duì)頭指針一定大于隊(duì)尾指針

C.隊(duì)頭指針一定小于隊(duì)尾指針

D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

3.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲(chǔ)到一維數(shù)組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應(yīng)T[k]的下標(biāo)k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

4.

5.程序中對fun函數(shù)有如下說明

void*fun();

此說明的含義是:A.fun了數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個(gè)函數(shù),該函數(shù)無返回值

6.有以下函數(shù):intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函數(shù)的功能是()。

A.將y所指字符串賦給x所指存儲(chǔ)空間

B.查找和y所指字符串中是否有"\0'

C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)

D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)

7.以下正確的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

8.用二進(jìn)制來編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來的字符串,最少需要()長的二進(jìn)制字符串

A.12B.14C.18D.24

9.有下列程序:main{intk=5,n=0;while(k>0){switch(k){dcfault:break;case1:n=n+k;case2:case3:n+=k;}k--;}printf("%d\n".n);}程序運(yùn)行后的輸出結(jié)果足()。A.0B.4C.6D.7

10.下列語句組中正確的是()。

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

11.函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項(xiàng)是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

12.

13.下面程序的運(yùn)行結(jié)果是()。

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

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

{if(a[i]>='0'&&a[i]<='9')

{s[j]=a[i];

j++;

}

s[j]='\0';

}

}

main

{char*s="aa89gggh";

del(s):

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

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

14.要解決散列引起的沖突問題,最常用的方法是()

A.數(shù)字分析法、除留余數(shù)法、平方取中法

B.除留余數(shù)法、線性探測法、平方取中法

C.線性探測法、二次探測法、鏈地址法

D.除留余數(shù)法、線性探測法、二次探測法

15.以下關(guān)于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義

C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

16.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計(jì)B.詳細(xì)設(shè)計(jì)C.可行性分析D.需求分析

17.

18.有以下程序

main()

{

intn[3],i,j;

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

n[i]=0;

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

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

n[j]=n[i]+1;

printf("%d\n",n[1]);

}

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

B.1

C.0

D.3

19.

20.甲乙兩個(gè)聰明人上街,撿到一張10塊錢的購物卡,兩人就想出一個(gè)辦法來分配這張卡。兩個(gè)分別將自己出的價(jià)格寫在紙上,然后看誰出的價(jià)高就給誰,并且那個(gè)出價(jià)高的人要把出的錢給對方。現(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對方當(dāng)前有多少錢并且都希望自己收益高于對方。問最后誰獲得的錢多()

A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況

二、2.填空題(20題)21.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運(yùn)算。

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

23.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實(shí)現(xiàn)的。

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,e+d)*10;

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

}

25.一般來說,算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

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

27.軟件測試的方法有動(dòng)態(tài)測試、靜態(tài)測試和【】13種。

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

main()

{intX=10,y=20,t=0;

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

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

}

29.若有以下程序:

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í)行后輸出的結(jié)果是【】。

30.在運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是【】。

31.在數(shù)據(jù)庫理論中,數(shù)據(jù)物理結(jié)構(gòu)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應(yīng)用程序的變化,稱為【】。

32.設(shè)有定義:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

33.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

34.將經(jīng)過確認(rèn)測試的軟件與外設(shè)、網(wǎng)絡(luò)等連接在一次運(yùn)行的測試叫【】

35.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),如果是素?cái)?shù),函數(shù)返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

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

#include<stdio.h>

fun()

{staticinta=0;

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

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

37.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管叫‘管理多個(gè)項(xiàng)目,則實(shí)體“主管”與實(shí)體“”的聯(lián)系屬于______。

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

1

11

121

1331

14641

其構(gòu)成規(guī)律是,第0列元素和主對角線元素均為1,其余元素為其左上方和正上方元素之和,數(shù)據(jù)的個(gè)數(shù)每行遞增1。請將程序補(bǔ)充完整。

#defintN6

voidYangHui(int*[N][N])

{

inti,j;

x[0][0]=1

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

{

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

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

x[i][j]=【】;

}

}

39.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。

40.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

三、1.選擇題(20題)41.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

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

A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量

43.下列程序的輸出結(jié)果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}

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

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

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

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

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

A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大

B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說法都不對

45.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。

A.*p=&a;sCanf("%1f",p);

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

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

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

A.C語言編譯時(shí)不檢查語法

B.C語言的子程序有過程和函數(shù)兩種

C.C語言的函數(shù)可以嵌套定義

D.C語言所有函數(shù)都是外部函數(shù)

47.若有說明inta[][3]={0,0);,則不正確的敘述是()。

A.數(shù)組a的每個(gè)元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

48.以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是

A.k=n,n=n+1B.n=n+l,k=nC.k=++nD.k+=n+1

49.若a=1,b=2,則a|b的值是______。

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

50.設(shè)有如下定義,則執(zhí)行表達(dá)式(nFa>b)&&(n=c>d)后,n的值為______。inta=1,b=2,c=3,d=4,m=2,n=2;

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

51.以下不屬于對象的基本特點(diǎn)的是()

A.分類性B.多態(tài)性C.繼承性D.封裝性

52.有以下程序:#include<stdio.h>fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charsir[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};prlnff("%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)果是()。

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

53.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

54.以下對C語言函數(shù)的有關(guān)描述中,正確的是______。

A.在C程序中,調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.函數(shù)既可以嵌套定義又可以遞歸調(diào)用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中

55.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c,則能夠把c插入到a和b之間并形成新的鏈表的語句組是()。

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p>next;

D.(*p).next=q;(*q).next=&b;

56.下面語句中不能定義一個(gè)數(shù)組,元素值依次分別為1,1,1,0,0的是______。

A.staticinta[5]={1,1,1,0,0};

B.staticinta[5]={1,1,1};

C.staticinta[]={1,1,1,0,0};

D.staticinta[5]={1*2,0*3};

57.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()。A.存儲(chǔ)結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲(chǔ)結(jié)構(gòu)

58.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

59.表達(dá)式0x130x17的值是()。

A.0x04B.0x13C.0xE8D.0x17

60.指針變量p的基類型為int,并已指向一連續(xù)存儲(chǔ)區(qū),若p中當(dāng)前的地址值為1234,則執(zhí)行p++后,p中的值為()

A.1234B.1235C.1236D.1237

四、選擇題(20題)61.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9

62.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語句中錯(cuò)誤的是()

A.a++;B.b++C.c++;D.d++;

63.在c語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A.auto和static

B.extern和register

C.auto和register

D.static和register

64.語句int(*ptr)的含義是()。

A.ptr是一個(gè)返回值為int的函數(shù)

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

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

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

65.

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

67.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.55566.0B.566.0C.7777.0D.566777.0

68.有以下程序(注:字符a的ASCIl碼值為97)}程序運(yùn)行后的輸出結(jié)果是()。

A.789B.abcC.7890D.979899

69.

70.下列敘述中錯(cuò)誤的是()。

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)

B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)

C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)

D.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的

71.

72.在16位編譯系統(tǒng)上,若有定義“inta[]={10,20,30},*p=&a;”,當(dāng)執(zhí)行“P++;”后,下列說法錯(cuò)誤的是()。

A.P向高地址移了一個(gè)字節(jié)B.P向高地址移了一個(gè)存儲(chǔ)單元C.P向高地址移了兩個(gè)字節(jié)D.P與a+1等價(jià)

73.

74.利用E-R模型進(jìn)行數(shù)據(jù)庫的概念設(shè)計(jì),可以分成3步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對全局E-R模型進(jìn)行(),得到最終的E-R模型。

A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化

75.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是()

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

76.

77.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn):

78.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

79.數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。例如,當(dāng)s中的數(shù)為l23456789時(shí),t中的數(shù)為2468。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

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

則函數(shù)值為59。

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

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

試題程序:

參考答案

1.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。

2.D循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針,有時(shí)也可能小于隊(duì)尾指針。

3.B

4.B

5.D解析:返回指針的函數(shù)定義為:返回值類型,函數(shù)名(\u3000\u3000),而指向函數(shù)的指針定義為:返回值類型(*變量名)(\u3000\u3000)。本題中函數(shù)fun返回一個(gè)無類型的指針。

6.C本題中由循環(huán)條件可知遇到“0或x與y所指的字符的值不等中的一個(gè)條件時(shí)就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。

7.B題目中的選項(xiàng)都以轉(zhuǎn)義字符“\\”開頭,“\\ddd”表示3位八進(jìn)制數(shù)代表的一個(gè)ASCII字符,“\\xhh”表示2位十六進(jìn)制數(shù)代表的一個(gè)ASCII字符。選項(xiàng)A中“089”是不合法的八進(jìn)制數(shù),錯(cuò)誤;選項(xiàng)C、D中“\\0X”或“\\0x”不合法,錯(cuò)誤;選項(xiàng)B表示八進(jìn)制數(shù)012代表的ASCII字符,正確。本題答案為B選項(xiàng)。

8.B

9.D本題主要考查while循環(huán)語句和switchcase語句的使用方法。其執(zhí)行步驟為:k=5時(shí),跳出switch語句,然后k自減1;當(dāng)k=4時(shí),跳出switch語句,然后k自減1;當(dāng)k=3時(shí),n=13+k=0+3=3,跳出switch語句,然后k自減1;當(dāng)k=2時(shí)n=n+k=3+2=5,跳出switch語句,然后k自減l;當(dāng)k=1時(shí),case1:n=n+k一5+1=6,沒有break繼續(xù)執(zhí)行CaSe3;n=n+k=6+1=7,跳出switch語句,然后k自減1;當(dāng)k=0時(shí),退出循環(huán),所以輸出結(jié)果為7。

10.BA選項(xiàng)去掉花括號后,賦值正確;C選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值,因?yàn)閿?shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項(xiàng)。

11.B函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個(gè)元素。取指針的值,使用*P,因此比較使用*P和*s,又因?yàn)檎易畲笾?,?dāng)*s<*p時(shí),修改指針s的指向。故本題答案為B選項(xiàng)。

12.A

13.D本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入S數(shù)組中的字符,如果遇到數(shù)字,則將數(shù)字存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應(yīng)該是字符串S中所有的數(shù)字的個(gè)數(shù)。

14.C

15.B解析:C語言中注釋可以放在任何位置,選項(xiàng)A錯(cuò)誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項(xiàng)B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C錯(cuò)誤;C語言數(shù)值常量中不允許存在空格,選項(xiàng)D錯(cuò)誤。

16.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。

17.A

18.D初始時(shí)定義一個(gè)大小為3個(gè)一維整型數(shù)組,第一個(gè)for語句是對數(shù)組賦初值,每個(gè)值都為0。后面是一個(gè)for語句的嵌套調(diào)用,外層的循環(huán)變量i的取值為[0,2],內(nèi)層循環(huán)變量的取值范圍為[0,2]。最初外層的循環(huán)變量i=0,內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外層for語句的循環(huán)變量為1時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[1]+1,得到n[0]=2,n[1]=2

溫馨提示

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

最新文檔

評論

0/150

提交評論