2021年貴州省畢節(jié)地區(qū)全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁
2021年貴州省畢節(jié)地區(qū)全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁
2021年貴州省畢節(jié)地區(qū)全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁
2021年貴州省畢節(jié)地區(qū)全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁
2021年貴州省畢節(jié)地區(qū)全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年貴州省畢節(jié)地區(qū)全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

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

B.Setup

C.Setup

D.'S''e''t'

3.在一個(gè)C語言源文件中定義的全局變量,其作用域?yàn)椋ǎ?/p>

A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

4.

5.若有定義“inta=1234,b=-5678;”,用語句“printf("%+-6d%+-6d",a,b);”輸出,以下正確的輸出結(jié)果是()。

A.+1234-5678(中間有一個(gè)空格,最后有一個(gè)空格)

B.+1234-5678(最前面有一個(gè)空格,中間有一個(gè)空格)

C.+-1234+-5678(最前面和最后均無空格)

D.1234-5678(中間有兩個(gè)空格,最后有一個(gè)空格)

6.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}

A.266B.11C.265D.138

7.若有語句“typedefstructS{intg;charh;}T;”,則下列敘述中正確的是()。

A.可用S定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

8.設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是()。

A.charstr[]=“string”;c=str;

B.scanf(“%s”,c);

C.c=getchar();

D.*c=“string”;

9.執(zhí)行下列程序段后的輸出結(jié)果是()。A.3B.2C.1D.4

10.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接選擇排序C.快速排序D.二路歸并排序

11.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}

A.16B.2C.9D.1

12.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);當(dāng)執(zhí)行上述程序段時(shí),從鍵盤上輸入555667777abc后,y的值為()。

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

13.以下選項(xiàng)中表示空函數(shù)的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

14.設(shè)有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時(shí),若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

15.下面不正確的字符賦值或賦初值的方式為()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

16.

17.程序設(shè)計(jì)的任務(wù)包括()。

A.編寫程序代碼并上機(jī)調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項(xiàng)均正確

18.

19.已知字符A的ASCⅡ代碼值是65,字符變量c1的直是A,c2的值是D。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A,BB.A,68C.65,66D.65,68

20.下列數(shù)據(jù)模型中,具有堅(jiān)實(shí)理論基礎(chǔ)的是()。

A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個(gè)都是

二、2.填空題(20題)21.關(guān)系操作的特點(diǎn)是______操作。

22.若有以下定義和語句:

intw[10]={23,54,10,33,47,98,72,80,61},*p;

p=w;

則通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

23.對(duì)于長度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

24.有以下定義和語句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

25.結(jié)構(gòu)化設(shè)計(jì)主要分為系統(tǒng)設(shè)計(jì)和模塊設(shè)計(jì),【】的任務(wù)是決定系統(tǒng)的模塊結(jié)構(gòu)。

26.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】

27.樹中度為零的結(jié)點(diǎn)稱為______。

28.程序測試分為靜態(tài)分析和動(dòng)態(tài)測試。其中【】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

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

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

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

}

30.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)血型數(shù)據(jù)。

31.以下程序中函數(shù)huiwen的功能是檢查一個(gè)寧符串是否是回文,當(dāng)字符串是回文時(shí),函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請(qǐng)?zhí)羁誣_____。

#include<string.h>

chat*huiwen(chat*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(!t或t!=0)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

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

}

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

33.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。

34.以下程序中,fun函數(shù)的功能足求3行4列二維數(shù)組每行尢素中的最大值。請(qǐng)?zhí)羁?。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,B);for(i=0;j<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];for(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

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

#include<stdio.h>

main()

{unionEXAMPLE

{struct

{intx;inty;}in;

inta;

intb;

}e;

e.a=1;e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

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

}

38.在面向?qū)ο蠓椒ㄖ校惖膶?shí)例稱為______。

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

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

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

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

三、1.選擇題(20題)41.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。

A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系

42.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解

43.下列不屬于軟件調(diào)試技術(shù)的是______。A.強(qiáng)行排錯(cuò)法B.集成測試法C.回溯法D.原因排除法

44.以下能正確定義一維數(shù)組的選項(xiàng)是______。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

45.若有說明:intx[][3]={1,3,5,7,9,11,13};,則x數(shù)組的行數(shù)為______。

A.2B.3C.4D.無確定值

46.能正確表示邏輯關(guān)系""a≥10或a≤0"",的C語言表達(dá)式是_____。

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=10

47.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

48.程序中若有如下說明和定義語句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

……

}

以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語句是

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

49.以下程序有語法錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說法是()。main(){intG=5,k;voidprt_char();┆k=prt_char(G);┆}

A.語句voidprt_char();有錯(cuò),它是函數(shù)調(diào)用語句,不能用void說明

B.變量名不能使用大寫字母

C.函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾

D.函數(shù)名不能使用下劃線

50.有以下程序:structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042);c=b;}voidf2(structSTU*c){structSTUb={"SunDan",2044);*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043);f1(a);f2(&b);printf("%d%d\n",a.num,b.num);}執(zhí)行后輸出結(jié)果是()。

A.20412044B.20412043C.20422044D.20422043

51.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()

A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

52.下列程序中函數(shù)son()的功能是對(duì)數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。#include<stdio.h>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(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&a[1],7);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

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

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

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

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

53.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是()。

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10||!(y-x)>10

D.(x-y)*(x-y)<100

54.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

scanf("%d%d",&a,&b);

S=a

if(a<b)

s=b;

S*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不對(duì)

55.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

56.在C語言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是()。

A.%B.\C.%和\D.**

57.定義int*swap()指的是______。

A.—個(gè)返回整型值的函數(shù)swap()

B.—個(gè)返回指向整型值指針的函數(shù)swap()

C.—個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值

D.以上說法均錯(cuò)

58.有以下程序structSTU{charname[10];intnum;floatTotalScore;};voldf(structSTU*p){structSTUs[2]={{"SunDan",20044,550),{"Penghua".20045,537}},*q=s++p;++q;*p=*q;}main(){structSrUs[3]={{"YangSan",20041,703),{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.of\n",S[1].name,s[1].num,s[1].Totalscore);}程序運(yùn)行后的輸出結(jié)果是

A.SunDan20044550

B.Penghua20045537

C.USiGuo20042580

D.SunDan20041703

59.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

60.若執(zhí)行下面的程序時(shí),從鍵盤輸入5和2,則輸出結(jié)果是

main()

{inta,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a<b)k=a%b;

elsek=b%a;

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

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

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

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

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

62.

有下列程序:

main

{intk=5:

while(--k)printf("%d",k=1);

printf("\n");

}

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

A.1B.2C.4D.死循環(huán)

63.

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

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

65.有以下程序程序執(zhí)行后的輸出結(jié)果是()

A.60B.50C.45D.55

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

A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法

B.c程序可以由多個(gè)程序文件組成

C.C程序可以由一個(gè)或多個(gè)函數(shù)組成

D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在

67.在軟件設(shè)計(jì)中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖B.PAD圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

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

#includedstdio.h>

#includedstrin9.h>

main

{char*s1="abDuj";

char*s2="ABdUG";

intt;

t=strcmp(s1,s2);

printf("%d",t);

}

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

69.

70.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0

71.以下選項(xiàng)中正確的語句組是()。

72.

73.

74.

75.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

76.

77.

78.

79.以下程序的輸出結(jié)果是________。main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intB){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A.8,17B.8,16C.8,20D.8,8

80.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求整數(shù)X的Y次方的低3位值。例如,整數(shù)6的5次方為7776,此值的低3位值為776。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù),用來刪除字符串中的所有*。例如,輸入abc*de*f*gh,則輸出為abcdefgh。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對(duì)它初始化,調(diào)用函數(shù)f。將局部變量c的各個(gè)成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時(shí)a、b的各個(gè)成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項(xiàng)。

2.A

3.A全局變量的作用域是從聲明處到文件的結(jié)束。故本題答案為A選項(xiàng)。

4.C

5.Aprintf函數(shù)參數(shù)包括格式控制字符串和輸出參數(shù),其中格式控制字符串中除了格式控制字符外,其他字符原樣輸出。本題中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之間,“+”號(hào)表示輸出的數(shù)字帶正負(fù)號(hào)號(hào)表示輸出數(shù)據(jù)向左對(duì)齊,“6”表示輸出寬度,如果輸出數(shù)據(jù)的寬度不夠6,那么左對(duì)齊,右邊補(bǔ)空格。所以本題輸出+1234-5678(中間有一個(gè)空格,最后有一個(gè)空格)。本題答案為A選項(xiàng)。

6.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

7.BT為結(jié)構(gòu)體類型名,可以用來定義結(jié)構(gòu)體變量。故本題答案為B選項(xiàng)。

8.A選項(xiàng)A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定的地址)。C選項(xiàng)錯(cuò)誤,getchar函數(shù)輸入一個(gè)字符給字符型變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無語法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問題。因?yàn)樵贐選項(xiàng)和D選項(xiàng)中,字符指針沒有被賦值,是一個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存區(qū)域,這個(gè)區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個(gè)不確定的區(qū)域重新存放字符串,可能會(huì)發(fā)生無法預(yù)知的錯(cuò)誤。故本題答案為A選項(xiàng)。

9.A

10.C

11.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。

12.Ascanf是格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入指定的變量中。其中,在百分號(hào)(%)與格式碼之間的整數(shù)用于限制從對(duì)應(yīng)域讀入的最大字符數(shù)。所以j的值為55,y的值為566.0,字符數(shù)組name的值為7777abc。故本題答案為A選項(xiàng)。

13.C空函數(shù)是函數(shù)體沒有執(zhí)行語句的函數(shù)。選項(xiàng)A、D不是空函數(shù);選項(xiàng)B是函數(shù)的聲明;只有選項(xiàng)C是空函數(shù)。故本題答案為C選項(xiàng)。

14.Ascanf函數(shù)中,在格式字符前加入一個(gè)整數(shù)可以指定輸入數(shù)據(jù)所占的寬度,所以賦值時(shí)會(huì)將87賦給變量a,把6.0賦給float型變量b。故本題答案為A選項(xiàng)。

15.C

16.D

17.D程序設(shè)計(jì)是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計(jì)的任務(wù)包括選項(xiàng)A)、B)、c)等方面。

18.D

19.C在C語言中,用整型格式輸出字符時(shí),輸出的是其ASCII碼值。

20.A解析:在層次模型和網(wǎng)狀模型的系統(tǒng)研究和數(shù)據(jù)庫設(shè)計(jì)中,其性能和質(zhì)量主要決定于設(shè)計(jì)者的經(jīng)驗(yàn)和技術(shù)水平,缺乏一定的理論指導(dǎo)。關(guān)系模型有堅(jiān)實(shí)的理論基礎(chǔ),它以數(shù)學(xué)理論為基礎(chǔ),從而避免了層次模型和網(wǎng)狀模型系統(tǒng)中存在的問題。

21.集合集合

22.*(p+5)

23.n/2n/2解析:刪除—個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

24.4

25.系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)解析:結(jié)構(gòu)化設(shè)計(jì)主要分為系統(tǒng)設(shè)計(jì)和模塊設(shè)計(jì)。系統(tǒng)設(shè)計(jì)決定系統(tǒng)的模塊結(jié)構(gòu),模塊設(shè)計(jì)具體考慮每個(gè)模塊內(nèi)部的算法、模塊輸入、輸出及模塊功能。

26.判定樹、判定表判定樹、判定表

27.葉子結(jié)點(diǎn)葉子結(jié)點(diǎn)解析:樹中度為零的結(jié)點(diǎn),也就是沒有后件的結(jié)點(diǎn),稱為葉子結(jié)點(diǎn)。

28.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動(dòng)態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

29.3123,1,2解析:分析程序,第一個(gè)if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時(shí)a=2,b=1。第二個(gè)if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時(shí)a=3,c=2。

30.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(葉旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。

31.str+strlen(str)-1str+strlen(str)-1解析:先從main函數(shù)開始看,它先讀入字符串,接下來肯定是要判斷這個(gè)字符串是否是回文,冉看huiwen函數(shù),它的主要思想是用p1指向字符串的首地址,p2指向字符串的尾地址(不包括結(jié)束符‘/0‘),將p1左移,p2右移,直到這兩個(gè)指針相遇,如果在移動(dòng)過程中發(fā)現(xiàn)p1!=p2,則該字符串不是回文,否則其是同文。因此。在空中填str+strlen(str)-1。

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

33.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。

34.x<ar[i][j]x<ar[i][j]解析:本題考查的是循環(huán)的嵌套。本題定義了二維數(shù)組a,存放3行4列的數(shù)組元素,定義了,一維數(shù)組b用于存放每行的最大數(shù)。存函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù)。當(dāng)外層循環(huán)執(zhí)行一次時(shí),內(nèi)層循環(huán)則執(zhí)行4次,并求出了這一行的最大值x,最后將每一行求出最大值x賦值給存放最大值的數(shù)組br,故本題答案為x<ar[i][j]。

35.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

36.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。

37.484,8解析:C語言規(guī)定,共用體中各個(gè)成員變量在內(nèi)存中占用同一段內(nèi)存單元,即e.in.x、e.a、e.b占用同一段內(nèi)存單元。執(zhí)行語句e.b=2;后,e.in.x=e.a=e.b=2;執(zhí)行語句e.in.x=e.a*e.b;時(shí),e.a的值為2,e.b的值為2,所以運(yùn)算得出e.in.x的值為4;執(zhí)行語句e.in.y=e.a+e.b時(shí),由于e.in.x和e.a、e.b占用的是同一段內(nèi)存單元,所以此時(shí)的e.a、e.b的值為4,因此運(yùn)算得出e.in.y的值為4+4=8。程序最后的輸出結(jié)果為4,8。

38.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書是一個(gè)對(duì)象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。

39.33解析:條件表達(dá)式的一般形式為;表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值;若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。

40.

41.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。

42.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項(xiàng)A)不選;注解行有利于對(duì)程序的理解,不應(yīng)減少或取消,選項(xiàng)B)也不選;程序的長短要依照實(shí)際情況而論,而不是越短越好,選項(xiàng)C)也不選。

43.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯(cuò)誤而來找錯(cuò)誤,是被動(dòng)的;測試有很多種,比如未發(fā)現(xiàn)錯(cuò)誤但不能保證程序沒錯(cuò)而來找BUG,還比如我們運(yùn)行測試程序是否符合用戶的要求,是主動(dòng)的。所以答案是選項(xiàng)B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們?cè)谶M(jìn)行單元測試時(shí),發(fā)現(xiàn)程序有錯(cuò)誤,我們?cè)倏梢愿鶕?jù)A、C、D的方法來找錯(cuò)誤。

44.B解析:C語言一維數(shù)組的定義有兩種方式:一是指定數(shù)組長度,如選項(xiàng)A“inta[5]={0,1,2,3,4,5};”,但此定義的賦初值個(gè)數(shù)為6,多于數(shù)組長度,是錯(cuò)誤的。因?yàn)榻o數(shù)組賦初值,初值個(gè)數(shù)只能小于或等于數(shù)組長度。二是不指定數(shù)組長度,由賦初值的初值個(gè)數(shù)決定數(shù)組的長度,如選項(xiàng)B的“chara[]={0,1,2,3,4,5};”,初值個(gè)數(shù)為6,因此數(shù)組長度為6。所以能正確定義一維數(shù)組。選項(xiàng)C的定義中a是一個(gè)字符變量,不能正確定義一維數(shù)組。選項(xiàng)D“inta[5]=“0123”;”給int型數(shù)組賦字符串初值,顯然是錯(cuò)誤的。

45.B解析:計(jì)算行數(shù)的方法是用數(shù)組的元素個(gè)數(shù)除以列數(shù),尾數(shù)為小數(shù)直接進(jìn)一位。

46.D解析:C語言中的“或”關(guān)系用“||”表示,其他相關(guān)邏輯運(yùn)算符“與”用“&&”表示;運(yùn)算符“非”用“!”來表示。

47.D

48.A解析:函數(shù)fun()的參數(shù)為指針類型,返回值為字符型,而選項(xiàng)B、C的參數(shù)不是指針類型,所以不正確,選項(xiàng)D中,*fl(s)表示返回值為指針的函數(shù),所以也不正確。

49.C解析:在C程序中,若把函數(shù)定義放在函數(shù)調(diào)用之后,應(yīng)該在函數(shù)調(diào)用之前對(duì)函數(shù)進(jìn)行聲明,或稱為函數(shù)原型說明。函數(shù)聲明的類型必須與函數(shù)返回類型一致,函數(shù)聲明可以是一條獨(dú)立的語句,也可以與普通變量一起出現(xiàn)在同一條語句中。本題程序中聲明prt_char函數(shù)是void類型,與k=prt_char()的類型矛盾,所以本題的錯(cuò)誤在于“函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾”。

50.A解析:本題中首先定義了一個(gè)結(jié)構(gòu)體類型STU,它由一個(gè)字符數(shù)組和一個(gè)整形變量hum組成。然后定義兩個(gè)函數(shù)f1和f2。其中f1是值傳遞的,f2是地址傳遞的。主函數(shù)中定義兩個(gè)結(jié)構(gòu)體變量a和b并分別賦初值,接著調(diào)用函數(shù)f1(a),由于函數(shù)n是值傳遞,故執(zhí)行該函數(shù)后并沒有改變a的值,再接著調(diào)用函數(shù)f2(&b),由于該函數(shù)是地址傳遞,執(zhí)行該函數(shù)后將使變量b的值為{'SunDan',2044},故函數(shù)最后輸出a.num和b.num的值為2041和2044。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

51.A解析:本題考查軟件工程的程序設(shè)計(jì)風(fēng)格。軟件在編碼階段,力求程序語句簡單、直接,不能只為了追求效率而使語句復(fù)雜化。除非對(duì)效率有特殊的要求,程序編寫要做到清晰第一、效率第二。

人們?cè)谲浖嫫谝?jīng)常閱讀程序,特別是在軟件測試和維護(hù)階段,編寫程序的人和參與測試、維護(hù)的人都要閱讀程序,因此要求程序的可讀性要好。

正確的注釋能夠幫助讀者理解程序,可為后續(xù)階段進(jìn)行測試和維護(hù)提供明確的指導(dǎo)。

所以注釋不是可有可無的,而是必須的,它對(duì)于理解程序具有重要的作用。

I/O信息是與用戶的使用直接相關(guān)的,因此它的格式應(yīng)當(dāng)盡可能方便用戶的使用。在以交互式進(jìn)行輸入/輸出時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求,指明可使用選項(xiàng)的種類和取值范圍。經(jīng)過上述分析可知,選項(xiàng)A是不符合良好程序設(shè)計(jì)風(fēng)格要求的。

52.C解析:本程序中的函數(shù)sort(inta[],intn)實(shí)現(xiàn)的功能是將數(shù)組a中的前n個(gè)數(shù)進(jìn)行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個(gè)數(shù)進(jìn)行從大到小排序,其他數(shù)不變。

53.C解析:選項(xiàng)A用了一個(gè)絕對(duì)值函數(shù)abs(),故選項(xiàng)A正確;選項(xiàng)B中用了一個(gè)“&&”邏輯與,故選項(xiàng)B正確;選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值,故選項(xiàng)C不正確;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題,故選項(xiàng)D正確。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

54.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。

55.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

56.A解析:在C語言中,“%”運(yùn)算符兩側(cè)的運(yùn)算數(shù)必須是整型。

57.B解析:—個(gè)函數(shù)可以帶回—個(gè)整型值、字符值、實(shí)型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號(hào)和*號(hào),由于()優(yōu)先級(jí)高于*。故它是—個(gè)返回整型指針的函數(shù)。

58.B解析:在主函數(shù)中,首先聲明了一個(gè)結(jié)構(gòu)體數(shù)組s[3],然后用數(shù)組名調(diào)用函數(shù)f,而數(shù)組名是數(shù)組首地址的指針,因此,傳遞給函數(shù)的是指向上函數(shù)中s[0]的指針。在函數(shù)中,將參數(shù)指針往后移動(dòng)了一位++p;,所以該指針現(xiàn)在指向主函數(shù)中的s[1],函數(shù)中也聲明?一個(gè)結(jié)構(gòu)體數(shù)組s[2]和一個(gè)結(jié)構(gòu)體指針q,q雖然初始化指向函數(shù)中的結(jié)構(gòu)數(shù)組s[2]的首地址,但也被往后移動(dòng)了一位,所以函數(shù)調(diào)用的結(jié)果是將函數(shù)中的s[1]賦給了主函數(shù)中的s[1],故最終輸出為:Penghua20045537,應(yīng)該選擇B。

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

60.C解析:

溫馨提示

  • 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)論