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頁,還剩30頁未讀, 繼續(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é)校:________班級:________姓名:________考號(hào):________

一、單選題(20題)1.x>0&&x<=10的相反表達(dá)式為()。

A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10

2.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲(chǔ)結(jié)C.元素按值有序且采用順序存儲(chǔ)結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

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

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

4.下面程序輸出的結(jié)果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}

A.111-31B.11-321C.12-321D.11121

5.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的運(yùn)行結(jié)果是()。

A.輸出字符c的ASCII值B.程序出錯(cuò)C.輸出字符cD.輸出字符a的ASCII值

6.對線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

7.以下敘述中錯(cuò)誤的是()。

A.C語句必須以分號(hào)結(jié)束

B.復(fù)合語句在語法上被看作一條語句

C.空語句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行

D.賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語句

8.若需要0(nlog2n)的時(shí)間內(nèi)完成對數(shù)組的排序,且要求排序是穩(wěn)定的,則可選擇排序方法是()。A.快速排序B.堆排序C.歸并排序D.直接插入排序

9.設(shè)有定義:intx[2][3];,則以下關(guān)于二維數(shù)組X的敘述錯(cuò)誤的是()。

A.x[0]可看做是由3個(gè)整型元素組成的一維數(shù)組

B.x[0]和x[l]是數(shù)組名,分別代表不同的地址常量

C.數(shù)組X包含6個(gè)元素

D.可以用語句x[o]=0;為數(shù)組所有元素賦初值0

10.有以下程序:voidfunl(char*p)程序執(zhí)行后的輸出結(jié)果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

11.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

12.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語句中錯(cuò)誤的是()。

A.#definen5inta[2*n];

B.intn=10,a[n];

C.inta[5+5];

D.#defineN10inta[N];

13.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。

A.從左起輸出該字串,右補(bǔ)空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補(bǔ)空格D.輸出錯(cuò)誤信息

14.對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

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

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

16.若有以下的說明和語句,則在執(zhí)行for語句后,’(*(pt+1)+2)表示的數(shù)組元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

17.

18.函數(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

19.有以下程序:#include<stdio.h>#defineF(x,y)(x)*(y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序運(yùn)行后的輸出結(jié)果是()。

A.12B.15C.16D.20

20.函數(shù)fread(buffer,size,count,fp)中buffer代表的是()。

A.—個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)

B.一個(gè)整數(shù),代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

C.一個(gè)文件指針,指向要讀的文件

D.—個(gè)指針,指向讀入數(shù)據(jù)要存放的地址

二、2.填空題(20題)21.下列程序執(zhí)行輸出的結(jié)果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(a);

}

main()

{inta=2,i,k;

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

k=f(a++);

printf("%dh",k);

}

22.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

23.關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有______、增加、刪除和修改四種操作。

24.下面的程序能求a:ab.c文件中最長行和它的位置。

#include<stdio.h>

main()

{intlin,i,j=0,k=0;

charc;

FILE*fp;

fp=(【】("a:ab.c","r");

rewind(fp);

while(fgetc(fp)!=EOF)

i=1;

【】

{i++;

j++;

if(i>=k){k=i;【】;}

}

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

【】;

}

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

intk=0;

voidfun(intm)

{m+=k;k+=m;

printf("m=%dk=%d",m,k++)

}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

26.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

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

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

28.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。

29.在深度為5的完全二叉樹中,度為2的結(jié)點(diǎn)數(shù)最多為【】。

30.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。

31.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。詳細(xì)設(shè)計(jì)階段所采用的是【】方法。

32.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。

33.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

34.下面的程序?qū)崿F(xiàn)字符串的復(fù)制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

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

【】;

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

}

35.軟件的可移植性是用來衡量軟件【】的重要尺度之一。

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

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

37.下面程序的功能是從鍵盤輸入一行字符,統(tǒng)計(jì)有多少個(gè)單詞,單詞間用空格分隔。補(bǔ)充所缺語句。

#include<stdio.h>

main()

{charss[80],c1,c2='';

inti=0,num=0;

gets(s);

while(s[i]!='\0')

{c1=s[i];

if(i==0)c2='';

elsec2=s[i-1];

if(【】)num++;

i++;

}

printf("Thereare%dwords,\n",num);

}

38.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序運(yùn)行時(shí),如果從鍵盤輸入:Y?N?<回車>,則輸出結(jié)果為【】。

39.若先后輸入county、side,以下程序的運(yùn)行結(jié)果為【】。

main()

{chars1[40],s2[20];inti=0,j=0;

scanf("%s",s1);

scanf("%s",s2);

while(s1[i]!='\0')i++;

while(s2[j]!='\0')s1[i++]=s2[j++];

s1[i]='\0';

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

}

40.若a是血型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為______。

三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.沒有任何輸出

42.設(shè)有定義:inta=2,b=3,c=4;則以下選項(xiàng)中值為0的表達(dá)式是______。

A.(!a==1)&&(!b==0)

B.(a>b)&&!c||1

C.a&&b

D.a||(b+b)&&(c-a)

43.設(shè)有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

A.aa數(shù)組中元素的值分別是{"abcd","ABCD"};

B.aa是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組

C.aa數(shù)組的兩個(gè)元素分別存放的是含有4個(gè)字符的一維字符數(shù)組的首地址

D.aa數(shù)組的兩個(gè)元素中各自存放了字符‘a(chǎn)’和‘A’的地址

44.設(shè)計(jì)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)屬于()。

A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)

45.在下列#include命令中,正確的一條是()

A.#include[string.h]

B.#include{math.h}

C.#include(stdio.h)

D.#include<stdio.h>

46.分析下列程序:#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

47.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

48.以下程序的輸出結(jié)果是()longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%d\n",fun(3));}

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

49.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

50.下列程序的輸出結(jié)果是______。main(){inti;for(i=0;i<2;i++)add();}add(){intx=0;staticinty=0;printf("%d,%d\n",x,y);x++;y=y+2;}

A.0,00,0B.0,00,2C.0,01,0D.0,01,2

51.對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行______。A.A.結(jié)合B.隱藏C.封裝D.抽象

52.在面向?qū)ο蠓椒ㄖ校粋€(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

53.當(dāng)執(zhí)行以下程序段時(shí),______。x=-1;do{x=x*x;}while(!x);

A.循環(huán)體將執(zhí)行1次B.循環(huán)體將執(zhí)行2次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤

54.對表進(jìn)行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運(yùn)算是()

A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接

55.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

A.5B.3C.7D.1

56.下面程序段的運(yùn)行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

57.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實(shí)參傳紿形,再由形參傳回實(shí)參D.傳遞方式由用戶指定

58.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為______。

A.12B.11C.10D.編譯出錯(cuò)

59.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與實(shí)體間的聯(lián)系可以表示成()。

A.屬性B.關(guān)系C.鍵D.域

60.以下()不屬于對象的基本特征。

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

四、選擇題(20題)61.結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

62.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:

該語句所表示的含義是()。

A.

B.

C.

D.

63.

64.信息隱蔽的概念與下述哪一種概念直接相關(guān)()。

A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型劃分D.模塊耦合度

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

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%4d",f(a));

A.789B.678C.567D.876

66.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

67.

68.

69.有以下程序:

main()

{intx=0,y=5,z=3;

while(z-->0&&++x<5?x:y--)y=y-1

Printf("%d,%d,%d\n",x,y,z);

}

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

A.3,2,0B.3,2,-1C.4,3,-1D.3,-1,-2

70.以下選項(xiàng)中,不能作為合法常量的是

A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0

71.

如果進(jìn)棧序列為el、e2、e3、e4,則可能的出棧序列是()。

A.e3、el、e4、e2B.e2、e4、e3、elC.e3、e4、e2D.任意順序

72.以下敘述中不正確的是

A.預(yù)處理命令都必須以#號(hào)開始

B.在程序中凡是以#號(hào)開始的語句行都是預(yù)處理命令行

C.宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間

D.以下定義是正確的:#definePI3.1415926;

73.

74.有以下程序:

voidmain()

{intk=0,n=0;

while(k<5)

{switch(k)

{default:break;

case1:n+=k;

case2:

case3:n+=k;

}

k++;

}

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

}

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

A)0B)4

C)6D)7

75.

76.c源程序中不能表示的數(shù)制是()。

A.二進(jìn)制B.八進(jìn)制C.十進(jìn)制D.十六進(jìn)制

77.

設(shè)變量均已正確定義,

值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。

A.

B.

C.

D.

78.(21)算法的空間復(fù)雜度是指______。

A.算法程序的長度

B.算法程序中的指令條數(shù)

C.算法程序所占的存儲(chǔ)空間

D.算法執(zhí)行過程中所需要的存儲(chǔ)空間

79.針對簡單程序設(shè)計(jì),以下敘述的實(shí)施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔

80.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算n!。例如,若輸人:6,則輸出:6!=720.000000。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。

例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(chara)

{

voidmain

{

chars[81];

print{("Enterastring:\n");

gets(s):

fun(S);

printf("Thestringafterdeleted:\n");

puts(s);

}

參考答案

1.A

2.C

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

4.A解析:本題考查的是算術(shù)運(yùn)算符的各種運(yùn)算,x=-3+4*5-6=-3+20-6=11;x=3+4%5-6=3+4-6=1;x=-3+4%6/5=-3+4/5=-3+0=-3;x=(7+6)%5/2=13%5/2=3/2=1。故正確答案為選項(xiàng)A)。

5.B在C語言中,數(shù)組名類似于一個(gè)指向數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的“s+=2;”語句讓數(shù)組名S的內(nèi)容加2是錯(cuò)誤的,編譯無法通過。故本題答案為B選項(xiàng)。

6.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲(chǔ)的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

7.C解析:C語句必須以分號(hào)結(jié)束,選項(xiàng)A是正確的。復(fù)合語句在語法上被看作一條語句,選項(xiàng)B也是正確的。空語句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會(huì)被當(dāng)作條件子句或者循環(huán)體來看待,所以選項(xiàng)c是錯(cuò)誤的。賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語句,選項(xiàng)D正確。故本題應(yīng)該選擇C。

8.C

9.Dx[0]是不能賦值的。

10.A本題中使用了函數(shù)的調(diào)用,由funl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加1,而從主函數(shù)傳到函數(shù)時(shí)是從下標(biāo)為3開始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過去的字符串為hsbn,前面不變。

11.D

12.B一維數(shù)組定義的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。注意定義數(shù)組時(shí),元素個(gè)數(shù)不能是變量。故本題答案為B選項(xiàng)。

13.B

14.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。

15.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

16.C從for循環(huán)可知pt是指向行的首地址的指針變量,因此由指針的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

17.B

18.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)。

19.A解析:本題考查帶參數(shù)的宏定義,參數(shù)只是簡單的替換而不是求出其值后再替換形式參數(shù)。本題中用a++替換X,用b++替換Y,再求(a++)*(b++)的值,即3*4的值,其結(jié)果為12。

20.Dfread函數(shù)用來讀二進(jìn)制文件,其中buffer是數(shù)據(jù)塊的指針,它是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存中;size表示每個(gè)數(shù)據(jù)塊的字節(jié)數(shù);count用來指定每讀一次讀入的數(shù)據(jù)塊個(gè)數(shù);fp是文件指針,指向要讀的文件。選項(xiàng)A、B、C錯(cuò)誤。本題答案為D選項(xiàng)。

21.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時(shí),a=c++8,所以k=8。

22.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點(diǎn):

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后—個(gè)字符;

②str[i]代表字符串str中的第i+1個(gè)字符;

③整型變量num的值是要記錄的單詞的個(gè)數(shù)。

C語言中規(guī)定字符串的最后一個(gè)字符是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第—個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個(gè)數(shù)。

23.查詢查詢

24.fopenwhile(fgetc(fp)!='\n')lin=jclose(fp)fopen\r\nwhile(fgetc(fp)!='\\n')\r\nlin=j\r\nclose(fp)

25.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函數(shù)首先定義了1個(gè)變量i,并初始化為4。然后用表達(dá)式i++的值為實(shí)參調(diào)用函數(shù)fun(),因?yàn)楹缶Y”表達(dá)式的值為增1之前的值,故此時(shí)傳遞給函數(shù)的參數(shù)m值為4。fun()函數(shù)中,首先讓形參m自增k,由于此時(shí)k還是0,所以m不變,然后讓k自增m,執(zhí)行后k的值和m相同為4。最后fun()函數(shù)輸出m和k廿的值,兩個(gè)值都是4,故首先輸出了“m=4k=4”,輸出完后,k自增1(k變?yōu)?)。fun()函數(shù)執(zhí)行完畢,返回main()函數(shù)中,此時(shí)i會(huì)被自增1變?yōu)?,故接著又輸出的i和k的值都是5。故最終輸出結(jié)果是“m=4k=4i=5k=5”。

26.完整性控制完整性控制

27.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。

28.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

29.1515解析:在深度為5的完全二叉樹中,度為2的結(jié)點(diǎn)數(shù)最多的是深度為5的滿二叉樹。在深度為5的滿二叉樹中,前4層中所有結(jié)點(diǎn)的度為2。即在深度為5的完全二叉樹中,度為2的結(jié)點(diǎn)數(shù)最多相當(dāng)于深度為4的滿二叉樹中的結(jié)點(diǎn)數(shù)。深度為4的滿二叉樹中的結(jié)點(diǎn)數(shù)為24(上標(biāo))-1=15。

30.自頂而下自頂而下

31.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。詳細(xì)設(shè)計(jì)階段所采用的是結(jié)構(gòu)化設(shè)計(jì)方法。

32.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個(gè)字符,占一個(gè)字節(jié);而”\\12”是個(gè)字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個(gè)字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個(gè)字節(jié)。

33.88解析:fabs函數(shù)功能是求x的絕對值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

34.char*from*to*to='\0'copy_string(ab)char*from,*to\r\n*to='\\0'\r\ncopy_string(a,b)解析:函數(shù)copy_string()用到了形參from,to是指針變量,實(shí)參a、b是字符串指針,第一個(gè)空格應(yīng)填形參說明語句“char*from,*to”。當(dāng)from所指的字符串全部復(fù)制給to所指的字符串時(shí),有可能to所指原字符串長度大于from所指字符串長度,即可能to所指串的后面字符仍留在復(fù)制后的to所指串中。為避免這種情況,必須在from所指串復(fù)制完后,馬上給to所指串加上串結(jié)束符。因此,第二個(gè)空格應(yīng)填*to='\\0'。main()函數(shù)應(yīng)調(diào)用copy_string()函數(shù),第三個(gè)空格應(yīng)填copy_string(a,b)。

35.質(zhì)量質(zhì)量

36.1616解析:在程序中首先將8賦值給變量a,然后再進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。

37.c1!==''&&c2==''

38.XX解析:主函數(shù)中首先定義了一個(gè)字符型變量c,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個(gè)字符Y并給賦給字符變量c,賦值表達(dá)式的值不為'?',執(zhí)行輸出語句,輸出字符X。接著判斷while中的循環(huán)條件,讀入一個(gè)字符'?'并賦值給c,賦值表達(dá)式的值為'?'循環(huán)條件不再滿足,退出循環(huán)。

39.countryside

40.-24-24解析:本題考查賦值運(yùn)算符a+=b等價(jià)于a=a+b;a-=a*a等價(jià)于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

41.D解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強(qiáng)行退出switch語句,所以,本題沒有任何輸出。

42.A解析:根據(jù)運(yùn)算符的優(yōu)先級:邏輯非>算術(shù)運(yùn)算>關(guān)系運(yùn)算>邏輯與>邏輯或>賦值運(yùn)算,可以計(jì)算得到為A。其中C選項(xiàng)因?yàn)閍、b均不為0,所以結(jié)果為1。

43.C解析:aa數(shù)組被定義為字符型指針數(shù)組,有兩個(gè)元素,分別存放字符串'abcd'和'ABCD'的首地址。

44.DD?!窘馕觥课锢碓O(shè)計(jì)階段主要解決選擇文件存儲(chǔ)結(jié)構(gòu)和確定文件存取方法的問題。物理設(shè)計(jì)階段包括:選擇存儲(chǔ)結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

45.D

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

47.B解析:第一次執(zhí)行while語句時(shí),z=3>0,然后執(zhí)行z--得z=2,執(zhí)行++x得x=1<5,條件成立,執(zhí)行y=y-1=5

-1=4;第二次執(zhí)行while語句時(shí),z=2>0,然后執(zhí)行z--得z=1,執(zhí)行++x得x=2<5,條件成立,執(zhí)行y=y-1=4-1=3;第三次執(zhí)行while語句時(shí),z=1>0,然后執(zhí)行z--得x=0,執(zhí)行++x得x=3<5,條件成立,執(zhí)行y=y-1=3-1=2;第四次執(zhí)行while語句時(shí)因z=0,z<0條件不成立,同時(shí)執(zhí)行c--得z=-1。即執(zhí)行完while循環(huán)后x=3、y=2、z=-1。

48.A

49.D解析:逗號(hào)表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

50.B

51.C解析:對象是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作組成的統(tǒng)一體。對象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對外是看不見的,這一特性稱做對象的封裝。

52.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動(dòng)的,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

53.A

54.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進(jìn)行的運(yùn)算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。所以,本題選擇A。

55.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,暈后的計(jì)算結(jié)果為5。

56.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個(gè)字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長字符多一個(gè)元素,以存放‘\\0’。

57.B解析:C語言函數(shù)中的參數(shù)傳遞方式有傳值與傳址兩種方式,傳值方式是指將實(shí)參的值復(fù)制一份傳遞給形參,而傳址方式是指將實(shí)參的變量地址傳遞給形參,也就是實(shí)參的引用。

58.B解析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標(biāo)變量,也就是a;所以a=*p+b等價(jià)于a=a+b,可知a的值最終為11。

59.B解析:將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作。從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。

60.A詳細(xì)解答:

對象具有如下特征:

標(biāo)識(shí)惟一性。指對象是可區(qū)分的。

分類性。指可以將具有相同屬性和操作的對象抽象成類。

多態(tài)性。指同一個(gè)操作可以是不同對象的行為。

封裝性。從外面看只能看到對象的外部特征,而不知道也無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。

模塊獨(dú)立性好。對象是面向?qū)ο蟮能浖幕灸K,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。

61.D結(jié)構(gòu)化程序設(shè)計(jì)以模塊化設(shè)計(jì)為中心,采用自頂向下、逐步求精的程序設(shè)計(jì)方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。

62.C考查if語句的使用。整個(gè)語句都是以a<b為假設(shè)的,在a<b的情況下,如果c=d,則y=0;否則y=1。所以答案為選項(xiàng)C)。

63.C

64.B解析:信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨(dú)立性的度量標(biāo)準(zhǔn)是耦合性和內(nèi)聚性。一個(gè)模塊的耦合性越強(qiáng),則該模塊的模塊獨(dú)立性越強(qiáng)。

65.Ai=0,f(a)=2+1+4=7,i=1,f(a)=2+1+5=8,

溫馨提示

  • 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

提交評論