2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁
2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁
2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁
2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁
2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下程序是用來計(jì)算兩個(gè)非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個(gè)數(shù)的長(zhǎng)度為n,基本運(yùn)算時(shí)間復(fù)雜度為O(1),那么該程序的時(shí)間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

2.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時(shí)所要表達(dá)的是()。

A.判斷m是否能被5和7整除

B.判斷m被5和7整除是否都余1

C.判斷m被5或者7整除是否余1

D.判斷m是否能被5或者7整除

3.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是()。

A.DoubleB.shortC.integerD.Char

4.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序運(yùn)行后的輸出結(jié)果是()。

A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3

5.

6.C語言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。

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

7.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結(jié)果是()。A.20,10B.20,20C.10,20D.10,10

8.若有以下定義和語句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);則輸出結(jié)果()

A.2,MB.3,EC.2,ED.輸出項(xiàng)與對(duì)應(yīng)的格式控制不一致,輸出結(jié)果不確定

9.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),可被各個(gè)應(yīng)用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

10.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為

A.goodabcB.abcdC.abcD.abcgood

11.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

12.

13.設(shè)有下列二叉樹:

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

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

14.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是________。

A.23B.26C.33D.36

15.已知待排序的n個(gè)元素可分為n/k個(gè)組,每個(gè)組包含k個(gè)元素,且任一組內(nèi)的各元素均分別大于前一組內(nèi)的所有元素和小于后一組內(nèi)的所有元素,若采用基于比較的排序,其時(shí)間下界應(yīng)為()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)

16.一個(gè)有8個(gè)頂點(diǎn)的有向圖,所有頂點(diǎn)的入度出度之和與所有頂點(diǎn)的出度之和的差是()

A.16B.4C.0D.2

17.下列能正確進(jìn)行字符串賦值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

18.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

19.設(shè)計(jì)一個(gè)判別表達(dá)式中左、右括號(hào)是否配對(duì)出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.線性表的順序存儲(chǔ)結(jié)構(gòu)B.隊(duì)列C.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D.棧

20.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。

A.ptr是指向一維組數(shù)的指針變量

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

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

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

二、2.填空題(20題)21.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

22.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:

ABCDE

FCHI

JKL

MN

O

請(qǐng)?zhí)羁胀瓿稍摮绦颉?/p>

#include<stdio.h>

main()

inti.j,n;charch='A';

scanf("%d",&n);

if(n<11)

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

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

{printf("%2c",ch);

【】;

}

【】;

}

elseprintf("nistoolarge!\n");

prinff("\n");

}

23.以下程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

24.若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

25.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

26.軟件工程的出現(xiàn)是由于【】。

27.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個(gè)數(shù)。插入后數(shù)組中的個(gè)數(shù)仍然有序。請(qǐng)?zhí)羁?,使之完整?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

28.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。

29.有以下程序:

#include<stdio.h>

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

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

30.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;

}

puts(a);

printf("\n");

}

31.已知字符A的ASCⅡ代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>.則輸出結(jié)果是()。

#include

main()

{chara,b;

a=getchar();scanf("%d",&B);

a=a-'A'+'0';b=b*2;

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

}

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

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

33.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

infun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

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

35.下面程序的功能是實(shí)現(xiàn)變量x、y內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

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

36.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對(duì)象。

37.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

38.若有如下結(jié)構(gòu)體說明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。

【】t[20]

39.有以下程序:

main()

{intt=1,i=5;

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

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

}

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

40.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

三、1.選擇題(20題)41.下列敘述中錯(cuò)誤的是()。

A.線性表是由n個(gè)元素組成的一個(gè)有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件

D.線性表可以是空表

42.假定w,x,y,z和m均為int型變量,有如下程序段:w=1;x=2,y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m(m<2)?m:2;則該程序段執(zhí)行后,m的值為()

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

43.下列關(guān)鍵字中,不屬于C語言變量存儲(chǔ)類別的是______。

A.registerB.autoC.externD.public

44.下面程序的輸出結(jié)果是()func(intx){staticinta=2;return(a+=x);}rnain(){intb=2,c=4,d;d=func(b);d=func(c);printf("%d\n",d);}

A.4B.6C.8D.12

45.下列關(guān)于棧的描述正確的是______。

A.在棧中只能插入元素而不能刪除元素

B.在棧中只能刪除元素而不能插人元素

C.棧是特殊的線性表,只能在一端插入或刪除元素

D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素

46.若有如下語句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));則上面程序段()。

A.輸出的是1B.輸出的是1和-2C.輸出的是3和0D.是死循環(huán)

47.下列函數(shù)調(diào)用中,不正確的是______。

A.max(a,b);B.max(3,a+b);C.max(3,5);D.intmax(a,b);

48.以下循環(huán)體的執(zhí)行次數(shù)是______。main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i)}

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

49.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

50.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

51.單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為______。

A.外模式B.概念模式C.內(nèi)模式D.存儲(chǔ)模式

52.下列程序的輸出結(jié)果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.0

53.下列說法正確的是()。

A.一個(gè)C程序可以有多個(gè)主函數(shù)

B.一個(gè)C語言的函數(shù)中只允許有一對(duì)花括號(hào)

C.C程序的書寫格式是自由的,一個(gè)語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對(duì)C程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫錯(cuò)誤

54.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;printf(%d,%0",(a=a+a,a+b,B),a+'a'-'A',B);}

A.表達(dá)式非法,輸出零或不確定值

B.因輸出項(xiàng)過多,無輸出或輸出不確定值

C.輸出結(jié)果為20,141

D.輸出結(jié)果為20,141,20

55.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。

A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程

56.執(zhí)行下面程序的正確結(jié)果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}

A.1.9B.111133331.9C.33331.9D.1111233331.9

57.以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=8(p+5);printf("%d%d\n",*p,*q);}

A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.55

58.設(shè)語句inta=3;,當(dāng)執(zhí)行了以下語句后,變量a的值是______。a+=a-=a*a;

A.3B.0C.9D.-12

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

A.指令由操作數(shù)和操作碼兩部分組成

B.常用參數(shù)xxMB表示計(jì)算機(jī)的速度

C.計(jì)算機(jī)的一個(gè)字長(zhǎng)總是等于兩個(gè)字節(jié)

D.計(jì)算機(jī)語言是完成某一任務(wù)的指令集

60.若有以下說明,則對(duì)初值中字符a的引用方式為()。staticstruct{charch;doublex;chara();}c[2][3]={{{'a',3.5,"bc"},{'c',4.5,"de"},{'m',8.6,"abc"}},{{'d',8.5,"ic"},{'b',5.5,"dc"},{'n',8.6,"anc'}}};

A.c.chB.c[0][0].chC.c[1][1].chD.a[0]

四、選擇題(20題)61.若有定義:“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.a=a++,i++;

B.i=(a+k)<=(i+k);

C.i=a%11;

D.i=!a;

62.以下語句中存在語法錯(cuò)誤的是()。

63.若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。

A.函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元

B.形參只是形式上的存在,不占用具體存儲(chǔ)單元

C.同名的實(shí)參和形參占同一存儲(chǔ)單元

D.函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元

64..C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是

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

65.以下關(guān)于return語句的敘述中正確的是()。A.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

B.一個(gè)自定義函數(shù)中必須有一條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的retum語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

66.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應(yīng)用軟件的是().

A.學(xué)生成績(jī)管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

67.

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

inta[5]={2,4,6,8,10},*P,**k;

p=a;k=&p;

printf("%d",*(p++));

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

A.44B.22C.24D.46

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

A.

B.

C.

D.

70.數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計(jì)模式

71.以下選項(xiàng)中不合法的標(biāo)識(shí)符是()。

A.&aB.FORC.pfintD.00

72.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

73.以下程序的輸出結(jié)果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1

74.

75.

76.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

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

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

77.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

78.有以下程序:

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

A.4B.10C.14D.6

79.

80.對(duì)于存儲(chǔ)同樣的一組數(shù)據(jù)元素而言().

A.順序結(jié)構(gòu)比鏈接結(jié)構(gòu)易于擴(kuò)充空間

B.順序結(jié)構(gòu)與鏈接結(jié)構(gòu)相比,更有利于對(duì)元素進(jìn)行插入、刪除運(yùn)算

C.順序結(jié)構(gòu)占用整塊空間,而鏈接結(jié)構(gòu)不要求整塊空間

D.順序結(jié)構(gòu)比鏈接結(jié)構(gòu)多占存儲(chǔ)空間

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已

在主函數(shù)中賦予。

請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

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

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

printf("Theoriginalstring:%s\n",a);

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設(shè)計(jì)題(1題)82.假定輸人的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>voidproc(char*str){}voidmain{charstr[81];printf("Enterastring:kn");gets(str);proc(str);printf("Thestringafterdeleted:kn");puts(str);}

參考答案

1.B

2.B邏輯與運(yùn)算兩邊運(yùn)算對(duì)象的值都為真時(shí),結(jié)果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項(xiàng)。

3.Bdouble,char,int,第一個(gè)字母都是小寫。

4.Dmain函數(shù)中,首先定義兩個(gè)整型變量i和j,初值為3和7,并將i的地址賦給p,j的地址賦給q,傳給swap函數(shù)。swap函數(shù)接收兩個(gè)整型指針變量a、b,然后使用整型變量t交換a、b所指向的值并輸出。通過指針變量的交換改變了實(shí)參i、j的值,使得i=7,j=3。指針變量tp交換a和b的值,由于a、b的值是p、q值的復(fù)制,因此這次交換只改變了形參a、b的值,對(duì)實(shí)參p、q的值沒有改變,此時(shí)指針變量a指向j,指針變量b指向i。函數(shù)最后輸出*a和*b,所以輸出3,7。由于swap函數(shù)改變了p和q指向的值,因此main函數(shù)輸出i的值為7,j的值為3,*P的值為i,*q的值為j。最終程序輸出:3,7,7,3,7,3。故本題答案為D選項(xiàng)。

5.D

6.C

7.D本題考查指針變量的賦值。**PP是定義一個(gè)指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。

8.B

9.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系-故答案為C。

10.C解析:主函數(shù)中定義了一個(gè)文件指針fp1,然后通過fopen()函數(shù),以寫的方式打開文件“fl.txt”,并讓指針fp1指向它,接著調(diào)用fpfintf()函數(shù)將“abc”寫到文件fp1所指的文件里,由于開始fp1指向文件的“fl.txt”的開始位置,因此“abc”將把文件“fl.txt”里原來的內(nèi)容“good”覆蓋掉,故文件“fl.txt”里最后的內(nèi)容為“abc”。

11.D本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達(dá)式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負(fù)奇數(shù),則一定會(huì)使t==n成立,故退出do-while循環(huán)。

12.A

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

14.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實(shí)際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時(shí),aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時(shí)p所指向的是aa[O][0],輸出2,而i=1時(shí)執(zhí)行了++p操作使指針向后移動(dòng)指向了aa[0][1],所以在輸出*p時(shí)應(yīng)為3。

15.B

16.C

17.C選項(xiàng)A、B的空間不夠;字符串存儲(chǔ)要有結(jié)束符\0,且要占用一個(gè)空間,printf用來輸出字符,不能輸入字符串。

18.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個(gè)字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個(gè)字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

19.D

20.C本題中int(*ptr)的含義是指向函數(shù)的指針變量,其為指向函數(shù)的指針變量,該函數(shù)返回一個(gè)int型數(shù)據(jù),故選擇C選項(xiàng)。

21.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹;并且遍歷左、右子樹時(shí),仍然光遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹。

22.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內(nèi)循環(huán)的作用是控制每行的列數(shù),在內(nèi)循環(huán)中首先輸出當(dāng)前字符(從\'A\'開始),[6]中應(yīng)填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€(gè)字符。每輸出一行就需換一次行,所以[7]處應(yīng)填pfintf('\\n')。

23.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

24.1010解析:此題考查逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的值是最后一個(gè)表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

25.軟件開發(fā)

26.軟件危機(jī)的出現(xiàn)軟件危機(jī)的出現(xiàn)

27.++pw[i-1]

28.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

29.8484解析:f函數(shù)中變量x傳的是變量的地址,而變量y是傳的值,調(diào)用函數(shù)f后,雖然f函數(shù)中的。x變?yōu)?,y值也變了,但main函數(shù)中的y未變,仍然為4。

30.j+=2a[i]>a[j]j+=2\r\na[i]>a[j]解析:由于要對(duì)偶數(shù)位進(jìn)行排位,所以空格處應(yīng)填。j+2,空13處是一個(gè)排序算法中的判斷語句,經(jīng)過分析后應(yīng)該填a[i]>a[j]。

31.1B

32.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時(shí),因?yàn)閕f語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時(shí)i自加1;執(zhí)行第二次for循環(huán)時(shí),i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時(shí)i自加1;執(zhí)行第三次for循環(huán)時(shí),i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。

33.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1)!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留下到新數(shù)組中。注本題中i,j的初值都要從1開始。該算法只能用于數(shù)組已排序的題目中。

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

35.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

36.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對(duì)象。

37.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

38.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項(xiàng)表;

定義結(jié)構(gòu)休變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,....

其中變量包括:一般變量、指針變量、數(shù)組變量等。

39.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。

40.黑盒軟件測(cè)試的方法有三種:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。設(shè)計(jì)測(cè)試實(shí)例的方法一般有兩類:黑盒測(cè)試法和白盒測(cè)試法。在使用黑盒法設(shè)計(jì)測(cè)試實(shí)例時(shí),測(cè)試人員將程序看成一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計(jì)的測(cè)試用例完全是根據(jù)程序的功能說明來設(shè)計(jì)的。

41.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個(gè)元素組成,所以線性表可以是空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒有前件,最后一個(gè)結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C.是錯(cuò)誤的。

42.D

43.D解析:變量的存儲(chǔ)類別具體包含四種:自動(dòng)的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。

44.C

45.C解析:棧是特殊的線性表,它的一端封閉,在另一端進(jìn)行插入和刪除操作。

46.B解析:do-while語句的一般格式為:

do{循環(huán)體語句}while(表達(dá)式);

先執(zhí)行循環(huán)體語句一次,再判斷表達(dá)式的值,若值為真,則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán)。本題中,先執(zhí)行printf('%d\\n',x-=2),值為x=x-2,即為1。然后判斷表達(dá)式的值,!(--x)為真,x=0,繼續(xù)循環(huán)。再次執(zhí)行循環(huán)體語句后,x=-2,此時(shí)表達(dá)式!(--x)的值為0,結(jié)束循環(huán)。

47.D

48.C解析:第一次循環(huán)時(shí)1<=j+1=1+1=2值為真,執(zhí)行完循環(huán)后i=i+2=0+2-2,j=j-1=1-1=0,循環(huán)條件為假,循環(huán)結(jié)束,所以循環(huán)體僅執(zhí)行一次。

49.C解析:for語句中的表達(dá)式可以部分或全部省略,但兩個(gè)“;”不能省略,若3個(gè)表達(dá)式均省略,會(huì)因?yàn)槿鄙贄l件判斷,導(dǎo)致循環(huán)無限執(zhí)行,而形成死循環(huán)。本題中當(dāng)i的值為5的時(shí)候,循環(huán)終止。

50.B解析:在C語言的數(shù)組元素的引用方法,我們?cè)谇懊嬉呀?jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對(duì)于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對(duì)此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對(duì)圓括號(hào)不可少。同樣,對(duì)于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對(duì)于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

51.A解析:選項(xiàng)A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項(xiàng)B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項(xiàng)C)不正確,物理存儲(chǔ)數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲(chǔ)方面的描述;選項(xiàng)D)不正確,存儲(chǔ)模式即為內(nèi)模式。

52.C

53.C解析:本題涉及C語言基本的3個(gè)知識(shí)點(diǎn):①C語言規(guī)定一個(gè)程序只允許有一個(gè)主函數(shù),一個(gè)函數(shù)內(nèi)可以允許有多個(gè)花括號(hào);②C語言的標(biāo)識(shí)符是由字母、數(shù)字、下劃線組成的,可以是大寫字母,而且標(biāo)識(shí)符區(qū)分字母的大小寫;③C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會(huì)發(fā)現(xiàn)注釋行中的錯(cuò)誤。

54.C解析:本題中首先輸出逗號(hào)表達(dá)式“a=a+a,a+b,b”的值,即20。然后以八進(jìn)制的形式輸出a+'a'-'A'的值為97對(duì)應(yīng)的八進(jìn)制數(shù)141,由于最后一個(gè)表達(dá)式b沒有對(duì)應(yīng)輸出格式的輸出項(xiàng)表列就不會(huì)輸出。

55.B解析:從工程管理解度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。

56.B解析:switch語句只接受int型變量,如果不是則隱式轉(zhuǎn)換為int,由于C語言中float到int的轉(zhuǎn)換是截尾取整,故在switch中從case1:標(biāo)號(hào)處開始執(zhí)行,首先輸出4個(gè)1。此時(shí)又因?yàn)閏ase2:之前并沒有break;之類的跳轉(zhuǎn)語句,所以case2:標(biāo)號(hào)處的語句也被執(zhí)行,輸出4個(gè)3。最后以默認(rèn)的浮點(diǎn)數(shù)格式輸出變量a,變量a在switch語句中并未被改變,故最后輸出為1.900000,所以應(yīng)該選擇B。

57.A解析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。程序中沒有給q分配存儲(chǔ)單元,只是給它賦了一個(gè)NULL,所以程序的運(yùn)行結(jié)果是:611NULLpointerassignment,也就是運(yùn)行后報(bào)錯(cuò)。

58.B

59.A

60.B解析:二維數(shù)組c是結(jié)構(gòu)體類型的數(shù)組。字符a在第一個(gè)數(shù)組元素c[0][0]中,它是字符型數(shù)據(jù),只有選項(xiàng)B符合題意。

61.D

62.A數(shù)組定義后,不能對(duì)數(shù)組整體賦值,ss是二維數(shù)組,因?yàn)閟s[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用“strcpy(ss[1],"right”);”的形式,而選項(xiàng)A)中對(duì)二維數(shù)組中的第“l(fā)”維(相當(dāng)于一個(gè)一維數(shù)組)賦值,是不可以的。選項(xiàng)B)和D)是在定義時(shí)對(duì)數(shù)組同時(shí)進(jìn)行初始化,這是可以的。選項(xiàng)c)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個(gè)元素,這是可以的。故本題答案為A)。

63.A本題重點(diǎn)考察的是函數(shù)的形參和實(shí)參。I在定義函數(shù)時(shí)函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”l(簡(jiǎn)稱形參),在主調(diào)函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面括弧1中的參數(shù)(可以是—個(gè)表達(dá)式)稱為“實(shí)際參數(shù)”(簡(jiǎn)稱實(shí)參)。fC語言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。因此A選項(xiàng)正確。

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

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

“=”是賦值運(yùn)算符。在C語言中,該運(yùn)算符的作用是將運(yùn)算符左邊的結(jié)果值復(fù)制到右邊的變量中保存,該運(yùn)算符可以操作整型數(shù)據(jù),也可以操作其他類型的數(shù)據(jù)。

“<”是小于關(guān)系運(yùn)算符。如果左邊的操作數(shù)小于右邊,則返回真,否則返回假。該運(yùn)算符可以操作整型數(shù)據(jù),也可以操作其他類型的數(shù)據(jù)。

“%”是取余運(yùn)算符。該運(yùn)算符的作用是求兩操作數(shù)相除后的余數(shù),該運(yùn)算符要求兩操作數(shù)都不能為實(shí)數(shù)。

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

65.A一個(gè)函數(shù)可以有多個(gè)return語句,所以選擇A)。

66.A軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件,因此B)、C)、D)都是系統(tǒng)軟件,只有A)是應(yīng)用軟件。

67.A

68.C

69.Cstr是指針數(shù)組,每個(gè)元素存放的是指向結(jié)構(gòu)體類型數(shù)據(jù)的地址,每個(gè)元素可看作是一個(gè)指針變量,通過結(jié)構(gòu)體指針變量引用結(jié)構(gòu)體變量各成員的形式有兩種,一是(*指針變量名).成員名;二是指針變量名->成員名,本題可以是“(*str[1]).name+2”或“str[1].>name+2”。

70.C數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個(gè)用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法。

71.AC語言中標(biāo)識(shí)符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識(shí)符。因?yàn)镃語言中區(qū)分大小寫,所以B選項(xiàng)中的。FOR??梢宰鳛闃?biāo)識(shí)符來用。A選項(xiàng)中含有非法字符&,所以選擇A。

72.B本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行b=2+1=3,最終t=2+3=5。

73.B函數(shù)調(diào)用時(shí),prt函數(shù)的作用是為使m數(shù)組中的數(shù)自增1,因此數(shù)組下標(biāo)從0開始,每個(gè)元素都自加1。

74.B

75.D

76.C

\n在函數(shù)funlintx)中,有個(gè)if語句判斷,如果參數(shù)x等于0或1時(shí),返回值,否則進(jìn)入下面的p=x-fun(x-2)遞歸函數(shù)。當(dāng)在主函勢(shì)中調(diào)用fun(7)時(shí),其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結(jié)果為2。

\n

77.B本題考查自加(++)、自減(--)運(yùn)算符的使用?!?+x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時(shí)的表達(dá)式的值參與運(yùn)算;“x++,x--”,先把使用X的值參與運(yùn)算,在使用X之后,再使x的值加1或者減1。對(duì)于表達(dá)式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個(gè)表達(dá)式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個(gè)表達(dá)式c=y=5。故B正確。

78.B函數(shù)的功能是求數(shù)組所有元素的和。遞歸表示為a[3]+a[2]+a[1]+a[0]+f(t,0)=10。

79.A

80.C\n頃序結(jié)構(gòu)中,元素之間的關(guān)系通過存儲(chǔ)單元的鄰接關(guān)系來表示,其存儲(chǔ)空間必須占用整塊空間;鏈接結(jié)構(gòu)中,結(jié)點(diǎn)之間的關(guān)系通過指針來表示,不要求整塊空間。

\n

81.\n\t錯(cuò)誤:c=arr[i];

\n正確:ch=arr[i];

\n【解析】由函數(shù)定義可知,函故proc只定義了變量ch,沒有定義變量C。因此,“c=arr[i]:”應(yīng)改為“ch=arr[i];”。\n

82.voidproc(char*str){char*p=str;while(*p==*)p++;//通過p的移動(dòng)來達(dá)到使p指向第一個(gè)不是*號(hào)的字符for(;*p!=\0;p++,str++)//把從第一個(gè)不是*號(hào)的字符放到a中*str=*P:*str=\0;//最后用\0作為字符串結(jié)束標(biāo)志}【解析】題目中要求將字符串中的前導(dǎo)*號(hào)全部刪除,首先將指針P移動(dòng)到第一個(gè)不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下程序是用來計(jì)算兩個(gè)非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個(gè)數(shù)的長(zhǎng)度為n,基本運(yùn)算時(shí)間復(fù)雜度為O(1),那么該程序的時(shí)間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

2.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時(shí)所要表達(dá)的是()。

A.判斷m是否能被5和7整除

B.判斷m被5和7整除是否都余1

C.判斷m被5或者7整除是否余1

D.判斷m是否能被5或者7整除

3.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是()。

A.DoubleB.shortC.integerD.Char

4.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序運(yùn)行后的輸出結(jié)果是()。

A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3

5.

6.C語言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。

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

7.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結(jié)果是()。A.20,10B.20,20C.10,20D.10,10

8.若有以下定義和語句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);則輸出結(jié)果()

A.2,MB.3,EC.2,ED.輸出項(xiàng)與對(duì)應(yīng)的格式控制不一致,輸出結(jié)果不確定

9.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),可被各個(gè)應(yīng)用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

10.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為

A.goodabcB.abcdC.abcD.abcgood

11.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

12.

13.設(shè)有下列二叉樹:

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

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

14.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是________。

A.23B.26C.33D.36

15.已知待排序的n個(gè)元素可分為n/k個(gè)組,每個(gè)組包含k個(gè)元素,且任一組內(nèi)的各元素均分別大于前一組內(nèi)的所有元素和小于后一組內(nèi)的所有元素,若采用基于比較的排序,其時(shí)間下界應(yīng)為()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)

16.一個(gè)有8個(gè)頂點(diǎn)的有向圖,所有頂點(diǎn)的入度出度之和與所有頂點(diǎn)的出度之和的差是()

A.16B.4C.0D.2

17.下列能正確進(jìn)行字符串賦值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

18.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

19.設(shè)計(jì)一個(gè)判別表達(dá)式中左、右括號(hào)是否配對(duì)出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.線性表的順序存儲(chǔ)結(jié)構(gòu)B.隊(duì)列C.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D.棧

20.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。

A.ptr是指向一維組數(shù)的指針變量

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

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

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

二、2.填空題(20題)21.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

22.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:

ABCDE

FCHI

JKL

MN

O

請(qǐng)?zhí)羁胀瓿稍摮绦颉?/p>

#include<stdio.h>

main()

inti.j,n;charch='A';

scanf("%d",&n);

if(n<11)

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

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

{printf("%2c",ch);

【】;

}

【】;

}

elseprintf("nistoolarge!\n");

prinff("\n");

}

23.以下程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

24.若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

25.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

26.軟件工程的出現(xiàn)是由于【】。

27.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個(gè)數(shù)。插入后數(shù)組中的個(gè)數(shù)仍然有序。請(qǐng)?zhí)羁?,使之完整?/p>

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

whiel(x>w[p])【】;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;

}

28.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。

29.有以下程序:

#include<stdio.h>

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

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

30.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;

}

puts(a);

printf("\n");

}

31.已知字符A的ASCⅡ代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>.則輸出結(jié)果是()。

#include

main()

{chara,b;

a=getchar();scanf("%d",&B);

a=a-'A'+'0';b=b*2;

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

}

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

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

33.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

infun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

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

35.下面程序的功能是實(shí)現(xiàn)變量x、y內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

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

36.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對(duì)象。

37.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

38.若有如下結(jié)構(gòu)體說明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。

【】t[20]

39.有以下程序:

main()

{intt=1,i=5;

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

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

}

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

40.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。

三、1.選擇題(20題)41.下列敘述中錯(cuò)誤的是()。

A.線性表是由n個(gè)元素組成的一個(gè)有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件

D.線性表可以是空表

42.假定w,x,y,z和m均為int型變量,有如下程序段:w=1;x=2,y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m(m<2)?m:2;則該程序段執(zhí)行后,m的值為()

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

43.下列關(guān)鍵字中,不屬于C語言變量存儲(chǔ)類別的是______。

A.registerB.autoC.externD.public

44.下面程序的輸出結(jié)果是()func(intx){staticinta=2;return(a+=x);}rnain(){intb=2,c=4,d;d=func(b);d=func(c);printf("%d\n",d);}

A.4B.6C.8D.12

45.下列關(guān)于棧的描述正確的是______。

A.在棧中只能插入元素而不能刪除元素

B.在棧中只能刪除元素而不能插人元素

C.棧是特殊的線性表,只能在一端插入或刪除元素

D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素

46.若有如下語句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));則上面程序段()。

A.輸出的是1B.輸出的是1和-2C.輸出的是3和0D.是死循環(huán)

47.下列函數(shù)調(diào)用中,不正確的是______。

A.max(a,b);B.max(3,a+b);C.max(3,5);D.intmax(a,b);

48.以下循環(huán)體的執(zhí)行次數(shù)是______。main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i)}

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

49.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

50.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

51.單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為______。

A.外模式B.概念模式C.內(nèi)模式D.存儲(chǔ)模式

52.下列程序的輸出結(jié)果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.0

53.下列說法正確的是()。

A.一個(gè)C程序可以有多個(gè)主函數(shù)

B.一個(gè)C語言的函數(shù)中只允許有一對(duì)花括號(hào)

C.C程序的書寫格式是自由的,一個(gè)語句可以寫在一行上,也可以寫在多行內(nèi)

D.在對(duì)C程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫錯(cuò)誤

54.已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序______。main(){chara='A';intb=20;printf(%d,%0",(a=a+a,a+b,B),a+'a'-'A',B);}

A.表達(dá)式非法,輸出零或不確定值

B.因輸出項(xiàng)過多,無輸出或輸出不確定值

C.輸出結(jié)果為20,141

D.輸出結(jié)果為20,141,20

55.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。

A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程

56.執(zhí)行下面程序的正確結(jié)果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}

A.1.9B.111133331.9C.33331.9D.1111233331.9

57.以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=8(p+5);printf("%d%d\n",*p,*q);}

A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.55

58.設(shè)語句inta=3;,當(dāng)執(zhí)行了以下語句后,變量a的值是______。a+=a-=a*a;

A.3B.0C.9D.-12

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

A.指令由操作數(shù)和操作碼兩部分組成

B.常用參數(shù)xxMB表示計(jì)算機(jī)的速度

C.計(jì)算機(jī)的一個(gè)字長(zhǎng)總是等于兩個(gè)字節(jié)

D.計(jì)算機(jī)語言是完成某一任務(wù)的指令集

60.若有以下說明,則對(duì)初值中字符a的引用方式為()。staticstruct{charch;doublex;chara();}c[2][3]={{{'a',3.5,"bc"},{'c',4.5,"de"},{'m',8.6,"abc"}},{{'d',8.5,"ic"},{'b',5.5,"dc"},{'n',8.6,"anc'}}};

A.c.chB.c[0][0].chC.c[1][1].chD.a[0]

四、選擇題(20題)61.若有定義:“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.a=a++,i++;

B.i=(a+k)<=(i+k);

C.i=a%11;

D.i=!a;

62.以下語句中存在語法錯(cuò)誤的是()。

63.若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。

A.函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元

B.形參只是形式上的存在,不占用具體存儲(chǔ)單元

C.同名的實(shí)參和形參占同一存儲(chǔ)單元

D.函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元

64..C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是

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

65.以下關(guān)于return語句的敘述中正確的是()。A.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

B.一個(gè)自定義函數(shù)中必須有一條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的retum語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

66.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應(yīng)用軟件的是().

A.學(xué)生成績(jī)管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)

67.

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

inta[5]={2,4,6,8,10},*P,**k;

p=a;k=&p;

printf("%d",*(p++));

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

A.44B.22C.24D.46

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

A.

B.

C.

D.

70.數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計(jì)模式

71.以下選項(xiàng)中不合法的標(biāo)識(shí)符是()。

A.&aB.FORC.pfintD.00

72.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

73.以下程序的輸出結(jié)果是()。voidprt(int*m.intn){inti;for(i=0;i<n;i++)m[i]++;)main{inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(“%d,”,a[i]);)A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,1

74.

75.

76.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

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

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

77.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

78.有以下程序:

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

A.4B.10C.14D.6

79.

80.對(duì)于存儲(chǔ)同樣的一組數(shù)據(jù)元素而言().

A.順序結(jié)構(gòu)比鏈接結(jié)構(gòu)易于擴(kuò)充空間

B.順序結(jié)構(gòu)與鏈接結(jié)構(gòu)相比,更有利于對(duì)元素進(jìn)行插入、刪除運(yùn)算

C.順序結(jié)構(gòu)占用整塊空間,而鏈接結(jié)構(gòu)不要求整塊空間

D.順序結(jié)構(gòu)比鏈接結(jié)構(gòu)多占存儲(chǔ)空間

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已

在主函數(shù)中賦予。

請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論