2021年安徽省淮北市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第1頁
2021年安徽省淮北市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第2頁
2021年安徽省淮北市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第3頁
2021年安徽省淮北市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第4頁
2021年安徽省淮北市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年安徽省淮北市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}則以下函數(shù)調(diào)用語句錯(cuò)誤的是()。

A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

3.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

4.在一棵高度為5的理想平衡樹中,至少含有16個(gè)結(jié)點(diǎn),最多含有()個(gè)結(jié)點(diǎn)。

A.31B.32C.30D.33

5.以下敘述中正確的是

A.語句inta[4][3]={{1,2},{4,5}};是錯(cuò)誤的初始化形式

B.語句inta[4][3]={1,2,4,5};是錯(cuò)誤的初始化形式

C.語句inta[][3]={1,2,4,5};是錯(cuò)誤的初始化形式

D.在邏輯上,可以把二維數(shù)組看成是一個(gè)具有行和列的表格或矩陣

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

A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)

D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)

7.設(shè)文件指針fp已定義,執(zhí)行語句“fP=foPen(“file”,“w”);”后,下列針對文本文件file操作敘述的選項(xiàng)中正確的是()。

A.只能寫,不能讀B.寫操作結(jié)束后可以從頭開始讀C.可以在原有內(nèi)容后追加寫D.可以隨意讀和寫

8.

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

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

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

A.#definen5inta[2*n];

B.intn=10,a[n];

C.inta[5+5];

D.#defineN10inta[N];

11.C語言中的變量只能由字母、數(shù)字和下劃線組成,且第一個(gè)字符()。

A.必須是字母B.必須是下劃線C.必須是下劃線和字母D.可以是字母.數(shù)字或下劃線中任一一種

12.以下程序的輸出結(jié)果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21

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

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

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

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

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

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

A.abcB.34C.a34D.a34bc

14.有以下程序:

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

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

15.下列算法中,()算法用來求圖中某頂點(diǎn)到其他頂點(diǎn)所有頂點(diǎn)之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

16.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

17.數(shù)據(jù)在計(jì)算機(jī)存儲器內(nèi)表示時(shí),如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。

A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)

18.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。

A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12

19.有一個(gè)有序表為{1,3,9,12,32,41,45,62,75,77,82,95,100},當(dāng)折半查找值為82的結(jié)點(diǎn)時(shí),()次比較后查找成功。

A.11B.5C.4D.8

20.輸出語句“printf(“%d\n”,11+011);”的輸出結(jié)果是()。

A.20B.22C.022D.021

二、2.填空題(20題)21.在程序設(shè)計(jì)階段應(yīng)該采取______和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計(jì)語言寫成程序。

22.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

23.若有以下程序:

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)

continue;

if(a[i][j]==0)

break;

s+=a[i][j];

}

}

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

}

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

24.函數(shù)fun的功能是計(jì)算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。

25.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。

26.以下程序的功能是:利用指針向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax二*pz;

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

27.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。

28.執(zhí)行以下程序后,輸出‘#’號的個(gè)數(shù)是【】。

#include<atdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

29.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指內(nèi)存空間中,形成一個(gè)新字符串s。

請?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(strl,str2);

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

}

30.下面的程序?yàn)?個(gè)整型變量A、B、C、D、E、F輸入整數(shù),并按從大到小的順序輸出整數(shù)及其所對應(yīng)的變量名。例如,輸入的數(shù)為3、2、5、7、4、6,則輸出的形式為:D(7)F(6)C(5)E(4)A(3)B(2)。

#include<stdio.h>

intA,B,C,D,E,F(xiàn);

struct

{

charn;

【】;

}tb1[]={{'A',&A},{'B',&B},{'C',&c},{'D',&D),{'E',&E},{'F',&F}},t;

main()

{

inti,j;

for(i=0;i<6;i++)scanf("%d",【】);

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

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

if(【】)

{

t=tb1[j];

tb1[j]=tb1[j+1];

tb1[j+1]=t;

}

for(i=0;i<6;i++)printf("%c(%d)",tb1[i].n,*tb1[i].p);

printf("\n");

}

31.數(shù)據(jù)的獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。

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

charb[]="ABCD";

main()

{char*p=b;

for(;*p;p++)

printf("%s",p);

printf("\n");

}

33.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

35.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。

36.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

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

#include<stdio.h>

main

{intk=4,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

38.棧的3種基本運(yùn)算是:入棧、退棧和______。

39.實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于【】的聯(lián)系。

40.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

三、1.選擇題(20題)41.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。

A.隊(duì)列B.線性表C.二叉樹D.棧

42.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價(jià)的是______。

A.if(a>B)&&(b>C))k=1;elsek=0;

B.if((a>B)||(b>C))k=1;elsek=0;

C.if(a<=B)k=0;elseif(b<=C)k=1;

D.if(a>B)k=1;elseif(b>C)k=1;elsek=0;

43.以下不能對二維數(shù)組a進(jìn)行正確初始化的語句是

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

C.inta[2)[3]={{1,2},{3,4},{5,6}};

D.inta[][3]={1,2,3,4,5,6};

44.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

45.執(zhí)行下列語句后,a和b的值分別為______。inta,b;a=1+b=2+7%-4-'A';

A.-63,-64B.-59,-60C.1,-60D.79,78

46.已知字母A的ASCⅡ碼為十進(jìn)制數(shù)65,下面程序的輸出結(jié)果是()main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不確定的值

47.下列程序的輸出結(jié)果是______。intb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&b);printf("%d\n,res);}

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

48.以下程序執(zhí)行后,sum的值是______。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不確定D.0

49.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

50.對于下述說明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

51.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.TRUED.FALSE

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

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

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

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

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

53.已知大寫字母A的ASCⅡ碼是65,小寫字母a的ASCⅡ碼是97,以下不能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。

A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.c=('A'+C)%26-'a'

54.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;clrscr();printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s\n",str);}

A.asdafaaz67B.asdafaaz67C.asdD.z67

55.下面程序段中c的二進(jìn)制值是______。chara=3,b=6,c;c=ab<<1;

A.1011B.1111C.11110D.11100

56.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

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

A.在模塊化程序設(shè)計(jì)中,一個(gè)模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先應(yīng)設(shè)計(jì)解決問題的第一個(gè)細(xì)節(jié)

C.在模塊化程序設(shè)計(jì)中,一個(gè)模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則

D.在程序設(shè)計(jì)過程中,不能同時(shí)采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法

58.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。

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

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

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

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

59.有以下程序:main(){inta[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,)},i,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+1;k<4;k++)if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/for(i=0;i<4;i++)printf("%d,",a[i][i]);}程序運(yùn)行后的輸出結(jié)果是()。

A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,

60.

若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):

inti=8,j=9;

則下列語句:

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

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

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

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

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

A.4B.34C.31D.32

62.對字符數(shù)組s賦值,不合法的一個(gè)是()。

A.chars[]="Beijing"

B.chars[20]={"Beijing"}

C.chars[20];s="Beijing"

D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}

63.

64.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

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

A.28

B.27

C.42

D.41

65.

66.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。

A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦臺

67.

68.選出下列標(biāo)識符中不是合法的標(biāo)識符的是()。

A.hot_doB.cat1C._priD.2ab

69.

70.假定int類型變量占用兩個(gè)字節(jié),其有定義intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是

A.3B.6C.10D.20

71.

72.有以下程序

73.有以下程序:

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

A.5B.24C.32D.40

74.設(shè)有以下語句:

其中0≤k<5。以下不是對字符串的正確引用的是()。

A.*strpB.strp[k]C.str[k]D.strp

75.有以下程序:

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

A.2,4,3,9,12,12,11,11,18,9,

B.3,4,2,7,9,8,6,5,11,10,

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

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

76.

設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

77.

78.有以下程序:

voidfun2(chara,charb){printf(”%c%c”,a,b);}

chara='A',b='B';

voidfunl(){a='C';b='D';}

main()

{funl();

printf("%c%c",a,b);

fun2('E','F');

}

程序的運(yùn)行結(jié)果是()。A.A.CDEFB.ABEFC.ABCDD.CDAB

79.有以下程序

80.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。

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

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

六、程序設(shè)計(jì)題(1題)82.下列程序判斷字符串s是否對稱,對稱則返回1,否則返回0;如f("abba")返回1,f("abab")返回0。

參考答案

1.D

2.D運(yùn)算符“()”的優(yōu)先級高于運(yùn)算符“*”?!?*f)()”定義函數(shù)指針,f是指向函數(shù)的指針。執(zhí)行語句“f=add;”,將函數(shù)add的首地址賦給指針f,所以調(diào)用函數(shù)add可以寫為f。函數(shù)的返回值是整型,不是指針類型,不能用運(yùn)算符,故*f(a,b);”的調(diào)用方式錯(cuò)誤。故本題答案為D選項(xiàng)。

3.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。

4.A

5.D二維數(shù)組在初始化時(shí),可以省第1維,但是不可以省第2維??梢詾椴糠?jǐn)?shù)組元素初始化。A選項(xiàng)、B選項(xiàng)和C選項(xiàng)內(nèi)的初始化都沒有錯(cuò)誤。因此D選項(xiàng)正確。

6.B本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲結(jié)構(gòu)的隊(duì)列。

7.A以“w”方式打開文件時(shí)只能寫,不能讀。故本題答案為A選項(xiàng)。

8.D

9.B

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

11.C

12.A循環(huán)的作用是求行下標(biāo)從l到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

13.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標(biāo)來從頭逐個(gè)地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時(shí),就去掉這個(gè)字符,所以程序結(jié)束后,字符串item中就只剩下和兩個(gè)字符了。

14.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。

15.A

16.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語言編制程序以前,對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。

17.C

18.D自增運(yùn)算符是將運(yùn)算對象的值增1,它有前綴形式“++a”和后綴形式“b++”。其中“++a”表示首先將a的值自增1,然后表達(dá)式“++a”的值就是自增后a的值;而“b++”表示首先將b的值作為表達(dá)式的值,然后再將b的值自增1。本題中,a的初值為10,b的初值為11,則表達(dá)式“++a==b++”,等價(jià)于“11==11”,條件為真,所以輸出“T”。if語句執(zhí)行完后,a的值為11,b的值為12,輸出“a=11,b=12”。故本題答案為D選項(xiàng)。

19.C

20.A“printf(“%d\\n”,11+011);”中,“11”為十進(jìn)制數(shù),“011”為八進(jìn)制數(shù),%d表示以十進(jìn)制格式輸出。因此,先將八進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù),即(011)8=81×1+1×80=(9)10,相當(dāng)于“printf(“%d\\n”,11+9)”,輸出結(jié)果為20。故本題答案為A選項(xiàng)。

21.自頂向下自頂向下解析:在程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計(jì)一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

23.5858解析:for循環(huán)語句中continue語句的作用是當(dāng)數(shù)組元素值小于0時(shí),結(jié)束本次j循環(huán),break語句的作用是當(dāng)數(shù)組元素值等于0時(shí),結(jié)束j循環(huán),所以for循環(huán)語句的功能是計(jì)算數(shù)組元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。

24.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

25.1212解析:本題考查逗號表達(dá)式的運(yùn)算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。

26.

27.19

28.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#;當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#;當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三個(gè)#;當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。

29.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組strl和str2,并且給str2賦初值“abc&fgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。

30.int*ptb1[i].p*tb1[j].p<*tb1[j+1].p

31.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)的獨(dú)立性是指數(shù)據(jù)和應(yīng)用程序相互獨(dú)立,分為物理獨(dú)立性和邏輯獨(dú)立性。其中物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時(shí),不需要修改應(yīng)用程序。而邏輯獨(dú)立性是指當(dāng)邏輯結(jié)構(gòu)改變時(shí),不需要修改應(yīng)用程序。

32.ABCDBCDCDD

33.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

34.21

35.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;\'\\xAB\'是以兩位+六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。

36.無限無限解析:分析程序“while(s)”語句后面有一個(gè)“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。

37.10211021解析:此題主要考查了變量和函數(shù)的存儲類別。函數(shù)的存儲范圍是從定義它的位置到文件結(jié)束為止,如果想在函數(shù)定義之前使用函數(shù),需要先對函數(shù)進(jìn)行聲明。靜態(tài)局部變量的生存期為整個(gè)程序的運(yùn)行期間,作用域卻為定義它的函數(shù)或局部范圍內(nèi)。

38.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個(gè)新的元素;退棧是指取出棧頂元素并賦值給一個(gè)變量;讀棧頂元素是將棧頂元素賦值給一個(gè)指定的變量,不刪除棧頂元素。

39.一對多一對多解析:實(shí)體之間的聯(lián)系可歸結(jié)為一對一、一對多與多對多的聯(lián)系。如一個(gè)學(xué)校有許多教師,一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于一對多的聯(lián)系。

40.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括\'\\0\'在內(nèi)。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe

41.C解析:線性表、棧和隊(duì)列所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,它只能在固定的一端進(jìn)行插入和刪除操作,又稱后進(jìn)先出表(LastInFirstOut);隊(duì)列是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表,又稱先進(jìn)先出表(FirstInFirstOut)。

42.A解析:“a>b?(b>c?1:0):0”的求解順序是:先判斷a>b是否為真,如果為真,則執(zhí)行b>c?1:0,如果b>c為真,則(b>c?1:0)的值為1,從而整個(gè)表達(dá)式返回1,否則整個(gè)表達(dá)式返回0;如果a仁b,則表達(dá)式返回0。因此功能等價(jià)的語句應(yīng)為if((a>b)&&(b>c)k=1;elsek=0;。

43.C解析:關(guān)于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個(gè)數(shù)與數(shù)組元素的個(gè)數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時(shí),系統(tǒng)將自動給后面各行的元素補(bǔ)初值0;③在給二維數(shù)組賦初值時(shí)可以不用行花括號對。選項(xiàng)C)應(yīng)該是inta[3][2]={{1,2},{3,4},{5,6,}};

44.C解析:除選項(xiàng)C項(xiàng)外,其他各項(xiàng)都沒有按照C語言中的函數(shù)定義規(guī)則定義函數(shù)。

45.B

46.A

47.B解析:實(shí)參a按地址傳遞,b是全局變量,函數(shù)func中b=b+*a=2+2=4,故主函數(shù)中res=res+4=2+4=6。

48.C解析:變量sum在使用時(shí)未賦初值,所以無法確定sum最終的值。

49.D本題主要考查指針變量對數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個(gè)整型變量a,變量a的初值為4,然后是指針變量指向a,或者說將變量a所在存儲單元的地址值賦給指針變量。

在選項(xiàng)A中,很顯然,不全是地址,只有point表示地址,而*&a等價(jià)于*(&a),表示取一個(gè)數(shù)值。

在選項(xiàng)B中,也不都表示地址,其中*point表示數(shù)值,其他兩個(gè)表示地址。

在選項(xiàng)C中,與選項(xiàng)B類似,其中的*point表示數(shù)值。

在選項(xiàng)D中,都表示地址,是題目的選擇答案。

50.D解析:p->b應(yīng)作為一個(gè)整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達(dá)式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。

51.B解析:本題考查C語言3個(gè)知識點(diǎn):①將一個(gè)字符賦給一個(gè)字符變量時(shí),并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中;②大寫字母的ASCII碼值小于其對應(yīng)小寫字母的ASCII碼值;③只要邏輯與運(yùn)算符&&的兩個(gè)運(yùn)算對象都為非零,返回值就是1。

52.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符合題意。

53.D解析:由97-65=32可知大寫字母對應(yīng)的小寫字母之間相差32,所以將大寫字母加上32就得到小寫字母,所以選項(xiàng)B和C是正確的。選項(xiàng)A中(c—‘A’)%26可以求出變量c中的字母與字母A相差幾位.那么小寫字母a的ASCⅡ碼向后移動相差的位數(shù)就是對應(yīng)的小寫字母,所以選項(xiàng)A也是正確的。

54.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個(gè)字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個(gè)空格),則將其保存str[j]中。注意j的下標(biāo)變化、初值及最后加串結(jié)束符'\\0'。

55.B解析:C語言提供六種位運(yùn)算符,按優(yōu)先級由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達(dá)式c=ab<<1先運(yùn)算b<<1得二進(jìn)制值為00001100,再運(yùn)算a∧00001100,最后得二進(jìn)制值00001111。

56.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個(gè)結(jié)點(diǎn)的集合,對應(yīng)任意一棵非空樹,它具有以下幾點(diǎn)重要的性質(zhì)。

①有且僅有一個(gè)特定的稱為根的結(jié)點(diǎn)。

②當(dāng)n>1時(shí),其余結(jié)點(diǎn)可分為m(m>0)個(gè)互不相交的有限集T1,T2,…,TM,其中每一個(gè)集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個(gè)。

57.CC。【解析】在模塊化程序設(shè)計(jì)中,模塊之間的聯(lián)系可以通過程序的控制結(jié)構(gòu)來實(shí)現(xiàn),在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先要考慮全局目標(biāo),而不是細(xì)節(jié)。在程序設(shè)計(jì)中模塊化和結(jié)構(gòu)化可以同時(shí)使用,一個(gè)模塊的內(nèi)部結(jié)構(gòu)也要符合結(jié)構(gòu)化設(shè)計(jì)原則。

58.C解析:先看sort()函數(shù),它沒有返回值,有兩個(gè)參數(shù),一個(gè)int型數(shù)組和一個(gè)int型變量。在函數(shù)中是一個(gè)二重循環(huán),外循環(huán)變量i從0遞增到n-2,內(nèi)循環(huán)變量j從i+1遞增到n-1。內(nèi)循環(huán)體是一條if語句“如果a[i]<a[j]就把兩個(gè)值交換”。這是一個(gè)典型的從大到小選擇排序算法,排序的范圍是a[0]~a[n-1],一共n個(gè)數(shù)排序,主函數(shù)中定義了一個(gè)數(shù)組aa[10],然后調(diào)用sort(aa+2,5);的意思是將aa[2]~aa[6]范圍的5個(gè)數(shù)據(jù)從大到小排序。所以排序以后數(shù)組aa[10]的內(nèi)容是1,2,7,6,5,4,3,8,9,10。故應(yīng)該選擇C。

59.A解析:本題首先定義了一個(gè)4行4列的二維數(shù)組,并用了三層for循環(huán)來進(jìn)行由小到大的排序。外層循環(huán)變量i表示數(shù)組的列.第二層循環(huán)變量j表示數(shù)組的行,第三層循環(huán)用于求第i列第j行的最小值,其中通過if語句對相關(guān)數(shù)值進(jìn)行比較和交換。最后通過for循環(huán)對排序后數(shù)組對角線上的元素輸出。

60.B解析:本題考查p

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論