2022年四川省廣元市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2022年四川省廣元市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2022年四川省廣元市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2022年四川省廣元市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2022年四川省廣元市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年四川省廣元市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列敘述中正確的是()。

A.在賦值表達(dá)式中,賦值號的左邊既可以是變量,也可以是任意表達(dá)式

B.實型變量中允許存放整型數(shù)

C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變

D.在C程序中,求余算符“%”兩邊的類型相同時才能進(jìn)行運(yùn)算

2.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是

A.選擇B.連接C.投影D.并

3.以三級模式為框架形成的3種數(shù)據(jù)庫中,真實存在于計算機(jī)外存的數(shù)據(jù)庫是()。

A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫

4.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

5.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是()。

A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系

6.對于“if(表達(dá)式)語句”,以下敘述正確的是()。

A.“表達(dá)式”不能是變量

B.“表達(dá)式”的值只能是整數(shù)值

C.“表達(dá)式”可以是常量

D.“表達(dá)式”中不可以出現(xiàn)字符型變量的比較

7.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序運(yùn)行后的輸出結(jié)果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

8.

9.若有定義:typedefint*INTEGER;INTEGERp,*q;則以下敘述正確的是()。

A.q是基類型為int的指針變量

B.p是int型變量

C.p是基類型為int的指針變量

D.程序中可用INTEGER代替類型名int

10.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()

A.scanf(“%d”,pa);

B.scanf(“%d”,a);

C.scanf(“%d”,&pa);

D.scanf(“%d”,*pa);

11.

12.在順序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找關(guān)鍵碼12需做()次關(guān)鍵碼比較。

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

13.設(shè)有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

14.有以下程序段:main(){intx[M][N];...Arrlet(x);...}則作為函數(shù)Arrlet的形參,以下表示形式非法的是()。

A.intx[M][]B.int(*x)[N]C.intx[][N]D.intx[M][N]

15.以下程序的輸出結(jié)果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

16.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

17.下列敘述中錯誤的是()。

A.C語言函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值

B.在C語言的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限于本復(fù)合語句內(nèi)

C.C語言函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù)為其賦一次初值

D.C語言函數(shù)的形參不可以說明為static型變量

18.算法的時間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

19.設(shè)單鏈表中結(jié)點的結(jié)構(gòu)為已知指針p所指結(jié)點不是尾結(jié)點,若在*p之后插入結(jié)點*s,則應(yīng)執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;

B.s->link=p->link;p->link=s;

C.s->link=p->link;p=s;

D.p->link=s;s->link=p;

20.有以下程序:#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;)printf(“%d,%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。

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

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

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;

sub(s,7,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,inttl,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

22.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}

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

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

25.設(shè)有下列宏定義:#defineA2

#defineBA+3

則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。

26.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計算它們的和值。和值通過形參傳回主函數(shù)輸出。請?zhí)羁铡?/p>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*Sum)

{inti,j,k,s=0

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

{k=0;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])k=j;

s+=【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,l,8,3),s;

SumColumMin(【】);

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

}

27.衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn),其中()是度量一個模塊功能強(qiáng)度的一個相對指標(biāo)。

28.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運(yùn)行3個階段。

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

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

30.有以下語句段

intnl=10,n2=20;

printf("______",n1,n2);

要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

31.以下定義的結(jié)構(gòu)體類型里包含兩個成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;

};

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

#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

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

}

33.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

34.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

36.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

38.下面程序是把從終端讀入的20個字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti;chars[21],*p;

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

s[i]=getchar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

39.當(dāng)線性表的元素總數(shù)基本穩(wěn)定,且很少進(jìn)行插入和刪除操作,并要求以很快的速度存取線性表中的數(shù)據(jù)元素時,應(yīng)采用【】存儲結(jié)構(gòu)。

40.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

ginclude"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

三、1.選擇題(20題)41.數(shù)字字符'0'的ASCII值為48,若有以下程序:#include<stdio.h>main()chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}程序運(yùn)行后的輸出結(jié)果是()。

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

42.以下敘述正確的是()。

A.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句

B.contiune語句的作用是結(jié)束整個循環(huán)的執(zhí)行

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能使用goto語句

43.有以下程序:#inlucde<stdio.h>main()D)233{intn,*P=NULL;*p=&n;printf("inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}該程序試圖通過指針P為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。

A.intn,*P=NULL;

B.*P=&n;

C.scanf(“%d",&p)

D.printf("%d\n",p);

44.設(shè)有以下定義和語句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];則.(P[0]+1)所代表的數(shù)組元素是()。

A.a[0][1]B.a[1][0]C.s[1][1]D.a[1][2]

45.下列程序的輸出結(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

46.有以下程序:intf1(doubleA){returna*a;}intf2(intx,inty){doublea,b;a=f1(x);b=f1(y);returna+b;}main(){doublew;w=f2(2.1,4.0);}程序執(zhí)行后,變量w的值是()。

A.20.21B.20C.20.0D.0.0

47.設(shè)有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是

A.struct結(jié)構(gòu)體類型的關(guān)鍵字

B.example是結(jié)構(gòu)體類型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類型名

48.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

49.請閱讀以下程序:

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;}

case2:

a++,b++;break;}

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

上面程序的輸出結(jié)果是

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

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

#include<stdio.h>

#defineF(x)2.84+x

#definew(y)printf("%d",(int(y))

#defineP(y)w(y)pmchar('\n'》

main()

{intx=2;

P(F(5)*x);

}

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

51.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是______。

A.22B.76C.72D.62

52.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

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

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

53.以下程序的輸出結(jié)果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}

A.6,1B.2,1C.6,0D.2,0

54.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20

55.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

56.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。

A.scanf("%3d,%3d,%3d",&i,Aj,&k);

B.scanf("%d,%d,%d",&i,&j,&k);

C.scanf("%d%d%d",&i,&J,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

58.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&C);prt(&a,&b,&C);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,41

D.11,41,2112,42,22

59.有以下程序:main(){intk=5,n=0;while(k>0);{switch(k){default;break;case1:n+=k;case2;case3:n+=k;}k--;}printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是______。

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

60.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句

B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷

D.do-while循環(huán)中,根據(jù)情況可以省略while

四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.21B.11C.20D.10

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

A.gaeB.gaC.LanguageD.有語法錯

63.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

64.

65.下列工具中為需求分析常用工具的是()。

A.PADB.BFDC.N-SD.DFD

66.

67.在下列選項中,哪個不是一個算法一般應(yīng)該具有的基本特征()。

A.無窮性B.可行性C.確定性D.有窮性

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

A.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的

B.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)

C.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)

D.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間與順序存儲結(jié)構(gòu)沒有任何關(guān)系

69.排序的一個重要目的是為了對已排序數(shù)據(jù)進(jìn)行

A.合并B.打印輸出C.查找D.分類

70.

71.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

72.有如下嵌套的語句

73.某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:

該系統(tǒng)總體結(jié)構(gòu)圖的深度是()。

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

74.設(shè)已有定義:floatx;,則以下對指針變量P進(jìn)行定義且賦初值的語句中正確的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float=1024;

75.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

76.

77.

78.有如下嵌套的if語句:

if(a<b)

if(a<c)k=a;

elsek=C:

else

if(b<c)k=b;

elsek=C;

以下選項中與上述if語句等價的語句是()。

A.k=(a<b)?a:b;k=(b<c)?b:C;

B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);

D.k=(a<b)?a:b;k=(a<c)?a:c;

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

A.abc28B.28cC.abcD.因類型不一致而出錯

80.設(shè)變量均已正確定義,若要通過;語句為變螢a1和a2賦數(shù)值l0和20,為變量cl和c2賦字符x和Yd以下所示的輸入形式中正確的是(注:口代表空格字符)

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求S的值。

例如,當(dāng)n為100時,函數(shù)的值應(yīng)為1.566893。

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

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

試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D選項A,在賦值表達(dá)式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達(dá)式,不能是任意表達(dá)式,右邊也不得出現(xiàn)表達(dá)式;選項8中,整型變量中只能存放整型數(shù),但實型變量中能存放實型數(shù),也能存放整型數(shù);選項C,表達(dá)式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項D,要求取余運(yùn)算符"%"兩邊的類型均為整型。

2.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項B正確。

3.B

\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實存在于計算機(jī)外存中的數(shù)據(jù)庫。

\n

4.B解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的地址值。

5.A部門到職員是一對多的,職員到部門是多對一的,因此,實體部門和職員間的聯(lián)系是l:m聯(lián)系。

6.CC語言中沒有規(guī)定“if(表達(dá)式)語句”中的“表達(dá)式”的形式,其可以是任意合法的表達(dá)式。故本題答案為C選項。

7.C在main函數(shù)中調(diào)用了f函數(shù)使形參s指向數(shù)組a。執(zhí)行“S[1]+=6”;語句,則“a[1]=8;”執(zhí)行“*s=7;”語句,則“a[0]=7”;執(zhí)行“s+=2;”語句,則s指向數(shù)組的第3個元素并返回s。調(diào)用后,函數(shù)返回值賦給指針P,則*P=3,因此輸出的結(jié)果為7,8,3。故本題答案為C選項。

8.A

9.C題干中使用typedef定義新類型名INTEGER,它代表int*類型。使用INTEGER定義p,相當(dāng)于int*p。使用INTEGER定義*q,相當(dāng)于int**q。所以p是基類型為int的指針變量,q是基類型為int*的指針變量,選項A、B、D錯誤。故本題答案為C選項。

10.A

11.C

12.B

13.C本題考查while,while循環(huán)表達(dá)式k-1是個賦值表達(dá)式而不是邏輯表達(dá)式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語句一次也不執(zhí)行。

14.AC語言規(guī)定二維數(shù)組作為實參傳遞時,形參必須要指明二維數(shù)組的列數(shù),否則函數(shù)內(nèi)無法識別數(shù)組的寬度,行數(shù)提供沒有任何作用?!?*x)[N]”與“x[][N]”以及“x[M][N]”效果一樣。通過排除法選擇A選項。故本題答案為A選項。

15.B從題目中可知,\O、\t、\\分別為一個字符,而sizeof是求字節(jié)個數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以\0結(jié)束,因此strlen的值為5,sizeof的值為20。

16.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

17.CA選項描述正確,自動變量未被賦初值,為隨機(jī)值;B選項描述正確,除在函數(shù)開始位置定義變量外,在復(fù)合語句內(nèi)也可以定義變量;C選項描述錯誤,函數(shù)內(nèi)的靜態(tài)變量只在第1次調(diào)用時賦值,以后調(diào)用保留上次的值;D選項描述正確,形參屬于局部變量,占用動態(tài)存儲區(qū),而static型變量占用靜態(tài)存儲區(qū)。故本題答案為C選項。

18.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運(yùn)行速度不同的計算機(jī)上運(yùn)行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。

19.B

20.A在語句“for(;++a&&--b;)”中,for循環(huán)的表達(dá)式1和表達(dá)式3為缺省項。首先判斷條件表達(dá)式“b”。當(dāng)“a=-2,b=2”時,第1次執(zhí)行“++a”和“--b”,條件表達(dá)式為真,循環(huán)條件成立。第2次執(zhí)行“++a”為0,由于運(yùn)算符,當(dāng)?shù)?個條件為假時,不執(zhí)行第2個條件,因此“b=1”,發(fā)生短路,“--b”不再執(zhí)行。因此輸出的最終值為0,1。故本題答案為A選項。

21.abcdefglkjihabcdefglkjih解析:本題主要考查了字符變量可參與的運(yùn)算。因為字符在計算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。

22.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過指針的移動比較a和b中是否有相同的字符。若有相同的字符則將其輸出。

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

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

25.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算.運(yùn)算過程為:t=B*2=A+3*2=2+3*2=8。

26.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本題中定義了一個函數(shù)SumColumMin(),該函數(shù)有兩個參數(shù),第一個參數(shù)為數(shù)組名,第二個參數(shù)為一個指針,用來訪問存放數(shù)組中每列元素中最小值的存儲空間的變量。所以在主函數(shù)中調(diào)用SumColumMin()函數(shù),應(yīng)該將數(shù)組x和sam作為實參傳給SumColumMin()中的形參,故第19個空格處應(yīng)該填x,&s。在SumColumMin()函數(shù)中用了兩重循環(huán),用N記錄數(shù)組的列,M記錄數(shù)組的行。內(nèi)循環(huán)共循環(huán)了M次,每循環(huán)一次將a[k][i]比較a[j][i](當(dāng)k=O時,a[k][i]第一行第一列的值,然后將該值依次和第一列中的每個值比較,讓a[k][i]表示較小的值,那么比較到最后一個元素后a[k][i]就是改列中最小元素的值),讓k記錄較小值元素的行下標(biāo),這樣通過M次循環(huán)得到每列中的最小元素,然后退出內(nèi)循環(huán),繼續(xù)執(zhí)行該次外循環(huán)里的其他語句,即將剛求得第i列的最小值a[k][i]累加到s中,故第17個空格處應(yīng)該填a[k][i],最后外循環(huán)共循環(huán)N次,將每列的最小值累加到s中,退出循環(huán),然后讓指針sum所指向的存儲空間的值為s,故第18個空格處應(yīng)該填*sum。

27.內(nèi)聚性內(nèi)聚性解析:模塊的獨(dú)立程度是評價設(shè)計好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn)。內(nèi)聚性是度量一個模塊功能強(qiáng)度的一個相對指標(biāo),耦合性則用來度量模塊之間的相互聯(lián)系程度。

28.計劃計劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計劃、開發(fā)、運(yùn)行3個時期,每個時期又分為若干個階段。

29.24

30.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成;格式說明和普通字符,普通字符將被簡單地復(fù)制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進(jìn)行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。

31.structnode*

32.100010100010解析:對于define宏定義語句,系統(tǒng)在編譯前進(jìn)行如下替換:

i1=1000/s(N)i1=1000/s(10)i1=1000/10*10

i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)

33.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

34.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

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

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

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

{

成員項表;

};

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

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

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

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

37.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

38.\0's*p++\\0'\r\ns\r\n*p++解析:本題先通過for循環(huán)從鍵盤接收20個字符,然后在串尾賦一空值'\\0'作為串結(jié)束標(biāo)志。再使指針p指向串的首地址。最后通過while循環(huán)對字符串進(jìn)行掃描并輸出。

39.順序順序

40.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

41.C解析:變量a,b定義為字符型,執(zhí)行printf('%c,'b++);時,首先輸出字符變量b的值\'2\'和逗號,然后b的值加1,b的值變成\'3\';再執(zhí)行printf('%d\\n',b-a);輸出\'3\'-\'1\',即數(shù)字2。所以程序運(yùn)行后的輸出結(jié)果為選項C)。

42.A解析:本題考查循環(huán)的4個知識點:①break語句可以出現(xiàn)在循環(huán)體內(nèi)及switch語句體內(nèi),不能用于其他的語句;②continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,而接著轉(zhuǎn)去判定循環(huán)條件是否成立,從而確定下一次循環(huán)是否繼續(xù)執(zhí)行,也就是說執(zhí)行contitme語句不會使整個循環(huán)終止;③在循環(huán)體內(nèi)使用break語句會使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時,可以使用goto語句或者break語句。

43.A

44.C解析:*p[3]是指針數(shù)組,它由3個指向整型數(shù)據(jù)的指針元素組成,p[0]=a[1]是將a數(shù)組第一行的首地址賦給第0個指針元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。

45.B

46.C

47.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。

48.D解析:本題中是一個含有兩個結(jié)點的循環(huán)鏈表。

C語言中結(jié)構(gòu)體的定義為:

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

{

成員項表;

};

49.A解析:考查switch語句的使用。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。

50.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。P(F(5)*x)=P(2.84+5*2)=P(12.84),調(diào)用w(12.84),輸出(int)(12.84)=12。

51.C題目中需要求出程序的輸出值i,j,其中i的值由sizeof決定,j的值由strlen函數(shù)決定。

sizeof是C語言的一種運(yùn)算符,以字節(jié)的形式給出操作數(shù)的存儲空間的大小。sizeof的操作對象可以是具體的數(shù)據(jù)類型,也可以是變量。題目中的操作數(shù)為數(shù)組名,利用sizeof可計算出數(shù)組所占用內(nèi)存的字節(jié)數(shù),題目中數(shù)組類型為char,大小為7,故該數(shù)組占用的內(nèi)存數(shù)為7。

strlen函數(shù)則是計算一段字符串的長度,可以從整個字符串的頭部開始計算,也可以從字符串的中間開始計算,當(dāng)碰到第一個字符串結(jié)束符“\\0”,則停止計算,返回當(dāng)前的計算值。題目中在前兩個字符之后就出現(xiàn)了結(jié)束符“\\0”,故strlen函數(shù)的值為2。

52.D解析:本題中fun函數(shù)實現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復(fù)制到字符串ss的末尾處。

53.B解析:第—個表達(dá)式中,運(yùn)算的方向是從左至右,所以a的值為2;第二個表達(dá)式中,等式右邊是—個邏輯表達(dá)式,由于結(jié)果為真,所以表達(dá)式的值為1,即b為1。

54.B

55.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。

56.B解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。

57.A本題考查程序效率。程序效率是指程序運(yùn)行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設(shè)計、使用的算法、數(shù)據(jù)的存儲結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的基礎(chǔ)上,選擇一種合適的存儲結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費(fèi)的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。

58.B解析:由于實參傳送的是變量的地址,所以對形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對實參內(nèi)容的改變。

59.D解析:在switch語句中,若case語句后沒有break語句,則執(zhí)行完本層case后會繼續(xù)執(zhí)行后面case中的操作。k的初值為5,while條件成立,進(jìn)入switch(5),執(zhí)行default語句,退出switch,執(zhí)行k--后得4,再進(jìn)入while循環(huán),執(zhí)行switch(4),退出switch,再執(zhí)行k--后得3,繼續(xù)while循環(huán),執(zhí)行switch(3),n=n+k=3,再執(zhí)行k--后得2,進(jìn)入while循環(huán),執(zhí)行case2,再執(zhí)行n=n+k=5,然后執(zhí)行k--后得1,最后一次進(jìn)入while循環(huán),執(zhí)行case1,n=n+k=6,然后繼續(xù)執(zhí)行case2和case3后的語句,n=n+k=7,且執(zhí)行k--后得0,此時while條件不滿足,退出循環(huán),輸出n的值為7。

60.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達(dá)式);,其中循環(huán)體語句可以是復(fù)合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。

61.A聲明data是結(jié)構(gòu)S的數(shù)組。初始化時data[0].a(chǎn)=10;data[0].b:104);data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中p=data[1];即p.a(chǎn)=data[1].a(chǎn);p.b=data[11.b;執(zhí)行語句prinff(”

溫馨提示

  • 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

提交評論