2022年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁
2022年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁
2022年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁
2022年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁
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)

文檔簡介

2022年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.

3.在一個被調(diào)用函數(shù)中,關(guān)于return語句使用的描述,()是錯誤的。

A.被調(diào)用函數(shù)中可以不用return語句

B.被調(diào)用函數(shù)中可以使用多個return語句

C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語句

D.被調(diào)用函數(shù)中,一個return語句可以返回多個值給調(diào)用函數(shù)

4.有以下程序

#include<stdio.h>

intfun(intx,inty)

{if(x==y)return(x);

elsereturn((x+y)/2);

}

main()

{inta=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}

程序運(yùn)行后的輸出結(jié)果是A.3B.6C.8D.12

5.當(dāng)調(diào)用函數(shù)時,實(shí)參是一個數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值

6.現(xiàn)有1GB數(shù)據(jù)進(jìn)行排序,計(jì)算資源只有1GB內(nèi)存可用,下列排序方法中最可能出現(xiàn)性能問題的是()

A.堆排序B.插入排序C.歸并排序D.快速排序E.選擇排序F.冒泡排序

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

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語言是-種結(jié)構(gòu)化程序設(shè)計(jì)語言

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

8.

9.任何一個無向圖的最小生成樹()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

10.以下有關(guān)宏的描述不正確的是()。

A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進(jìn)行替換C.宏名無類型D.宏名必須用大寫字母表示

11.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba

12.某二叉樹共有7個結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。

A.3B.4C.6D.7

13.

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

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

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

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

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

15.稀疏矩陣一般的壓縮存儲方式有兩種,即()。

A.二維數(shù)組和三維數(shù)組B.三元組和散列C.三元組和十字鏈表D.散列和十字鏈表

16.設(shè)intx=7,則~x的值是()。

A.-8B.7C.-1D.1

17.

18.在具有n個結(jié)點(diǎn)的有序單鏈表中插入一個新結(jié)點(diǎn)并使鏈表仍然有序的時間復(fù)雜度是________

A.O(1)B.O(n)C.O(nlogn)D.O(n2)

19.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運(yùn)行的結(jié)果是()。A.9B.61490C.61D.5

20.某二叉樹結(jié)點(diǎn)的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為()

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

二、2.填空題(20題)21.下面程序的運(yùn)行結(jié)果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

#include<stdio,h>

main()

charc1,c2;

for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

23.閱讀程序:

#include<string.h>

#include<strdio.h>

strle(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!='0')num++;

while(b[n])

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

return(num);

}

main()

{charstrl[81],str2[81],*p1=strl,*p2=str2;

gets(p1);gets(p2);

prinf("%d\n",strle(p1,p2));

}

運(yùn)行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串a(chǎn)bcd,則程序的輸出結(jié)果是【】。

24.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

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

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

26.最簡單的交換排序方法是______。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

primf("%d,%d%d\n",c,D);

}

28.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊(duì)列屬于______。

29.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

30.以下程序的運(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=%5ld\n",k);}

31.以下程序運(yùn)行后的輸出結(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);

}

32.算法的工作量大小和實(shí)現(xiàn)算法所需的存儲單元多少分別稱為算法的【】。

33.軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測試屬于【】階段。

34.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時,說明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。

35.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

36.若有如下程序:

#include"stdio.h"

main()

{chars[30];

Strcpy(&S[0],"adc");

Strcpy(&S[1],"def");

strcpy(&S[2],"gh");;

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

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

37.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運(yùn)行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

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

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

39.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

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

voidfun(intx,inty)

{

x=x+y;y=x-y;x=x-y;

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

}

main()

{

intx=2,y=3;

fun(x,y);

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

}

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>#difineF(X,Y)(X)*(Y)main(){inta=3,b=4;print("%d\n",F(a++,b++));}程序運(yùn)行后的輸出結(jié)果是______。

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

42.有以下程序

#include<stdio.h>

main()

{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)c[s[i]]++;

for(i=1;i<5;i++)printf("%d",c[i]);

printf("\n");

}

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

A.1234B.2344C.4332D.1123

43.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。

A.歸并排序B.選擇排序C.交換排序D.插入排序

44.以下程序執(zhí)行后x的值是()。#include<stdio.h>main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==m);printf("%d",x);}

A.252B.1C.0D.運(yùn)行時出錯,x無定值

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

A.break語句只能用于swish語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

46.設(shè)有以下定義和語句,輸出的結(jié)果是(用small模式編譯,指針變量2個字節(jié))______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

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

47.執(zhí)行以下語句的結(jié)果為______。y=10;x=y++;

A.x-10,y=10B.x=11,y=11C.x=10,y=11D.x=11,y=10

48.下面程序的輸出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A.k=11,k=12,k=11

B.k=-11,k=13,k=13

C.k=11,k=013,k=0xb

D.k=11,k=13,k=B

49.一個源文件中的外部變量的作用域?yàn)?)。

A.本文件的全部范圍B.本程序的全部范圍C.本函數(shù)的全部范圍D.從定義該變量的位置開始到本文件結(jié)束

50.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯誤的是()。

A.選用的結(jié)構(gòu)只準(zhǔn)許有一個入口和一個出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

51.若有定義語句:floatx[6];則以下對x數(shù)組元素的正確引用形式是()。

A.x+2B.&x[6]C.*(x+2)D.*&x[6]

52.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%ss\n",str);}的輸出是______。

A.xyzabcABCB.zabcABCC.yzbcABCD.xyabcABC

53.以下敘述中錯誤的是()。

A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息

D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)

54.以下程序執(zhí)行后sum的值是()。

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

55.設(shè)有以下語句charx=3,y=6,z;z=x^y<<2;則z的二進(jìn)制值是

A.10100B.11011C.11100D.11000

56.以下選項(xiàng)中不屬于C語言的類型的是

A.signedshortint

B.unsignedlongint

C.unsignedint

D.longshort

57.已知下列函數(shù)定義:fun(int*b,intc,intD){intk;for(k=0;k<c*d;k++){*b=c+d;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說明為inta[10])()。

A.fun(*a,6,14);

B.fim(&a,6,8);

C.fun(a,8,4);

D.fun((int)a,8,6);

58.請讀程序:#include<stdio.h>main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}上面程序的輸出結(jié)果是()

A.1B.12C.123D.1234

59.軟件生命周期中花費(fèi)時間最多的階段是()

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測試D.軟件維護(hù)

60.結(jié)構(gòu)化分析方法是一種面向______的需求分析方法。

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.控制流D.數(shù)據(jù)流

四、選擇題(20題)61.有以下程序:

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

62.

63.

64.在單鏈表中,增加頭結(jié)點(diǎn)的目的是()。A.A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個結(jié)點(diǎn)

C.標(biāo)識表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置

D.說明單鏈表是線性的鏈?zhǔn)酱鎯?shí)現(xiàn)

65.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中

66.若有條件表達(dá)式

則以下表達(dá)式中能完全等價于表達(dá)式(exp.的是()。

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

67.

68.

69.(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()

A.可行性分析

B.需求分析

C.詳細(xì)設(shè)計(jì)

D.程序編碼

70.有以下程序:

i

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

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

71.

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

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

A.

B.

C.

D.

73.下列對于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

74.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+C—k值的類型為:()。

A.intB.doubleC.floatD.char

75.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

76.以下選項(xiàng)中不屬于字符常量的是()。

A.

B.

C.

D.

77.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

78.

79.有如下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intm;

m=(*a+*b)*(*a+*b);

m+=(*a-*b)*(*a-*b);

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

main()

{inta=5,b=6,*x=&a,*y=&b;

fun(x,y);}

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

A.120B.121

C.122D.123

80.下列定義數(shù)組的語句中,正確的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為13。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時停止迭代)。

程序運(yùn)行后,若輸入精度

0.0005,則程序應(yīng)輸出為3.14…

注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A

2.D

3.D

4.B

5.B解析:當(dāng)調(diào)用函數(shù)時,實(shí)參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:

①形參定義成數(shù)組;

②形參定義成可變長數(shù)組:

③形參定義為指針變量。

6.C

7.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。

8.B

9.B

10.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識符字符串.標(biāo)識符稱為宏名,無類型;②雙引號中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。

11.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過fun函數(shù)的調(diào)用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項(xiàng)。

12.D根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個,因此本題中度為2的結(jié)點(diǎn)為l一1=0個,據(jù)此可以知道本題目中的二叉樹的每一個結(jié)點(diǎn)都有一個分支,所以共7個結(jié)點(diǎn)共7層,即深度為7,選擇D)。

13.B

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

15.C

16.A本題主要考查按位求反運(yùn)算和C語言正負(fù)數(shù)的表示,“O”代表正數(shù),“1”代表負(fù)數(shù);x=7的二進(jìn)制為00111,第一個0代表正數(shù),~x為11000,第一個l代表負(fù)數(shù),值為8。

17.B

18.B

19.C在fun函數(shù)中,while循環(huán)的功能是逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個數(shù)保存到變量n中,并返回變量n的值。

20.C

21.x=11x=11解析:在對無符號數(shù)的右移是高位補(bǔ)0。

22.918273645918273645解析:程序通過for循環(huán)將字符'0'~'9'從前向后,同時從后向前依次輸出,所以輸出結(jié)果為:0918273645。

23.10

24.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

25.8080解析:本題考查的知識點(diǎn)是共用體數(shù)組變量所占內(nèi)存的長度。數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長度為最大成員的長度,即單精度數(shù)組的長度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長度為5×16=80,所以最后輸出的s的值為80。

26.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

27.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時進(jìn)行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

28.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊(duì)列有且只有一個根結(jié)點(diǎn),而且每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。

29.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

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

31.92

32.時間復(fù)雜度和空間復(fù)雜度時間復(fù)雜度和空間復(fù)雜度

33.開發(fā)開發(fā)解析:軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和測試、驗(yàn)收與運(yùn)行、維護(hù)升級到廢棄等階段,其中的編碼和測試屬于開發(fā)階段。

34.上溢上溢解析:入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個新元素。這個運(yùn)算有兩個基本操作:首先將隊(duì)尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時置rear=1;然后將新元素插入隊(duì)尾指針指向的位置。當(dāng)循環(huán)隊(duì)列非空(s=1)時且隊(duì)尾指針等于隊(duì)頭指針時,說明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算,這種情況稱為“上溢”。

35.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

36.adghadgh解析:函數(shù)strcpy是字符串復(fù)制函數(shù)。第一次將'adc'復(fù)制到以&s[0]為起始地址的存儲空間中,第二次將'def'復(fù)制到以&s[1]為起始地址的存儲空間中,“dc”將被覆蓋,變?yōu)椤癮def”,第三次將“gh”復(fù)制到以&s[2]為起始地址的存儲空間中,“ef”將被覆蓋,變?yōu)椤癮dgh”。

37.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

38.AB

39.空間復(fù)雜度和時間復(fù)雜度算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計(jì)。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時間復(fù)雜性。

40.32233,2,2,3解析:主函數(shù)中首先定義了整型變量x和y,并分別給它們賦初值為2和3,接著調(diào)用fun()函數(shù),fun()函數(shù)把實(shí)參x和y的值傳給形式參數(shù)x和y,實(shí)參和形參不再有聯(lián)系.在fun()函數(shù)中通過運(yùn)算使x和y的值交換過來,所以fun()函數(shù)中的輸出結(jié)果是“3,2”。fun()函數(shù)調(diào)用返回輸出x和y依舊是原來的x和y,為“2,3”原因是變量作為形參傳值的,對形參的修改并不影響對應(yīng)的實(shí)參。所以最后輸出為3,2,2,3。

41.A解析:F(a++,b++)的宏展開為:F(a++,b++)=(a++)*(b++)=a*b=3×4=12,因此printf函數(shù)的輸出結(jié)果是12。

42.C解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時,數(shù)組c的4個元素的值分別為4、3、3、2。

43.D

44.C解析:指針變量m和z分別指向整型變量y,i,所以這兩個指針變量中存儲的地址是不同的,變量x接受的是一個關(guān)系運(yùn)算結(jié)果0(因?yàn)閙和z兩個地址是不同的),所以x為0。

45.D解析:break為C語言關(guān)鍵字,又稱間斷語句。break語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default是關(guān)鍵字,起標(biāo)號的作用,代表所有case標(biāo)號之外的那些標(biāo)號。default標(biāo)號可以出現(xiàn)在語句體中任何標(biāo)號位置上。在switch語句體中也可以沒有default標(biāo)號.

46.D解析:sizeof函數(shù)計(jì)算已知類型所占的字節(jié)數(shù)。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。指針變量占2個字節(jié),所以cat和*next各占2個字節(jié);double型占8個字節(jié),故too共占12個字節(jié)。

47.C解析:執(zhí)行語句x=y++,是先將y的值10賦給x,然后y自增。

48.D解析:在C語言格式字符的輸出中,“%d”是以帶符號的十進(jìn)制形式輸出整數(shù);“%o”是以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0);“%x”是以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0x)。

49.D解析:一個源文件中的外部變量的作用域是從定義該變量的位置開始到本文件結(jié)束。

50.C解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

51.C解析:數(shù)組名x為該數(shù)組的首地址即第1個元素的地址,x+2表示數(shù)組第3個元素的值地址。x[6]表示數(shù)組中長度為6,數(shù)組元素的下標(biāo)從0到5,沒有x[6]。&為取地址符,取得的是元素的地址。*為間接訪問運(yùn)算符,其運(yùn)算對象為地址或存放地址的指針變量。*(x+2)為取數(shù)組第3個元素的值,因此只有選項(xiàng)C正確引用了數(shù)據(jù)元素,選項(xiàng)C正確。

52.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC放到了*p1所指向的存儲單元中;strcpy在本題將abcABC復(fù)制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

53.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進(jìn)行整體引用,因此選項(xiàng)A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項(xiàng)B是對的。C語言程序在運(yùn)行過程中,系統(tǒng)不自動檢驗(yàn)數(shù)組元素的下標(biāo)是否越界,因此選項(xiàng)C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項(xiàng)D也是正確的。所以,4個選項(xiàng)中選項(xiàng)C符合題意。

54.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時,變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個選項(xiàng)中選項(xiàng)C符合題意。

55.B解析:本題考查兩個位運(yùn)算符。按位異或運(yùn)算符“”’是雙目運(yùn)算符,其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的二進(jìn)位相異或,當(dāng)兩對應(yīng)的二進(jìn)位相異或時,結(jié)果為1。左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0,并且“<<”運(yùn)算符的優(yōu)先級于“^”。

56.D解析:在選項(xiàng)中很明顯選項(xiàng)A為無符號短整型,選項(xiàng)B為無符號長整型,選項(xiàng)C為無符號整型,而選項(xiàng)D的類型在C語言中不存在。

57.C

58.C

59.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個所段。本題中,詳細(xì)設(shè)計(jì)、軟什編碼和軟件測試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費(fèi)代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護(hù)性.降低維護(hù)的代價。

60.D

61.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。

62.C

63.C

64.A根據(jù)單位鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。

65.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。

66.B條件運(yùn)算符要求有3個操作對象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,其求解順序是:先求解表達(dá)式l,若為非0(真)則求解表達(dá)式2,此時表達(dá)式2的值就作為整個條件表達(dá)式的值。若表達(dá)式1的值為O(假),則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值,注意++、一一的用法。

67.D

68.D

69.B結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求分析階段的運(yùn)用。而結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔。所以數(shù)據(jù)流程圖是在需求分析階段使用的。

70.C本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作,dt為結(jié)構(gòu)體數(shù)組,那么指針P指向了結(jié)構(gòu)體數(shù)組的一個元素,所以P一>x為1,P一>Y為2,結(jié)果為2,3。選項(xiàng)C正確。

71.A

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

73.A解析:在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來確定的。由此可見,選項(xiàng)A的描述正確。因此,本題的正確答案為A。

74.B雙目運(yùn)算中兩邊運(yùn)算量類型轉(zhuǎn)換規(guī)律:

運(yùn)算數(shù)1\t\t\t\r\n\t\t\t\t\t運(yùn)算數(shù)2\t\t\t\t\r\n\t\t\t\t\t轉(zhuǎn)換結(jié)果類型\t\t\t\t\r\n\t\t\t\t\t短整型\t\t\t\t\r\n\t\t\t\t\t長整型\t\t\t\t\r\n\t\t\t\t\t短整型一>長整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t長整型\t\t\t\t\r\n\t\t

溫馨提示

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

評論

0/150

提交評論