2022-2023年四川省攀枝花市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁
2022-2023年四川省攀枝花市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁
2022-2023年四川省攀枝花市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁
2022-2023年四川省攀枝花市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁
2022-2023年四川省攀枝花市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年四川省攀枝花市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.軟件需求分析一般應(yīng)確定的是用戶對(duì)軟件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

2.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};

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

C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};

D.doublea[][3]={O);

3.有以下程序

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

*q=*(p+5);

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

}

程序運(yùn)行后的輸出結(jié)果是A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510

4.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是()。

A.DoubleB.shortC.integerD.Char

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

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語言中,預(yù)處理命令行都以“#”開頭

C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include

D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

6.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是()。

A.文件B.數(shù)據(jù)庫C.字段D.記錄

7.有以下結(jié)構(gòu)體說明、變量定義和賦值語句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則下列scanf函數(shù)調(diào)用語句有錯(cuò)誤的是()。

A.scanf(“%s”,s[0].name);

B.scanf(“%d”,&s[0].age);

C.scanf(“%c”,&(ps->sex));

D.scanf(“%d”,ps->age);

8.在非線性結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)()。

A.無直接前趨

B.只有一個(gè)直接前趨和個(gè)數(shù)不受限制的直接后繼

C.只有一個(gè)直接前驅(qū)和后繼

D.有個(gè)數(shù)不受限制的直接前驅(qū)和后繼

9.下面程序的運(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

10.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

11.有以下程序#include<stdio.h>main(){charcl,c2;c1=A+8-4c2=A+8-5;printf("%C,%d\n",cl,c2);}已知字母A的ASCIl碼為65,程序運(yùn)行后的輸出結(jié)果是()。A.E,69B.D,69C.E,DD.輸出無定值

12.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進(jìn)行的關(guān)鍵字依次為()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

13.由權(quán)值分別為3,8,6,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為________。

A.24B.48C.72D.53

14.若有以下程序段intm=0xabc,n=0xubc;m-=n;printf("%X\n",m);執(zhí)行后輸出結(jié)果是

A.0X0B.0x0C.0D.0XABC

15.有以下程序:#include<stdio.h>main(){intx=072;printf(“>%d<\n”,x+1);}程序運(yùn)行后的輸出結(jié)果是()。

A.>073<B.>73<C.>142<D.>59<

16.若有定義int?x,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)

17.

18.下列描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲(chǔ)空間C.可隨機(jī)訪問D.需另外開辟空間來保存元素之間的關(guān)系

19.在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是A.并B.交C.投影D.笛卡兒乘積

20.以下程序的運(yùn)行結(jié)果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}

A.Y=3B.存在語法錯(cuò)誤C.Y=7D.Y=0

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

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

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

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

}

23.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。

24.若要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

25.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。

26.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來實(shí)現(xiàn)。

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

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

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=fune(k,m);

printf("%d",p);

p=func(k,m);

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

}

29.fseek函數(shù)的正確調(diào)用形式是【】。

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

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

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

printf("%d、n",p);

}

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

main()

{

charc1,c2;

for(c1='0',c2='9';c1<c2;c1++,c2--)

printf("%c%c",c1,c2);

printf("\n");

}

33.若輸入thistestterminal,以下程序的輸出結(jié)果為:terminaltestthis。請(qǐng)?zhí)羁铡?/p>

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

for(j=i+1;j<3;j++)

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

34.若有程序:

main()

{inti,j;

scanq("i=%d,j=%d",&i,&j);

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

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入【】。

35.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

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

sstrcpy(str1,str2);

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

}

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

37.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。

38.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。

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

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);

}

40.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

elseprintf("%d,%d\n",b,a);}

三、1.選擇題(20題)41.下列程序中c的二進(jìn)制值是()。chara=2,b=4,c;c=ab>>2:

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

42.以下程序的輸出結(jié)果是(){intx=05;charz='a';printf("%d\n",(x&1)&&(z<'z'));}

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

43.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測(cè)試B.集成測(cè)試C.驗(yàn)證測(cè)試D.驗(yàn)收測(cè)試

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

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

45.若有如下程序:sub(p,n)int(*p)[3],n;{inti;for(i=0;i<=n;i++)printf("%d",p[i][2]);}main(){ints[3][3]={1,2,3,4,5,6,7,8,9};sub(s,2);}則程序運(yùn)行后的輸出結(jié)果是()。

A.369B.248C.456D.789

46.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。

A.實(shí)體完整性和參照完整性

B.參照完整性和用戶自定義完整性

C.實(shí)體完整性和用戶自定義完整性

D.實(shí)體完整性、參照完整性和用戶自定義完整性

47.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為()

A.4個(gè)字節(jié)B.5個(gè)字節(jié)C.6個(gè)字節(jié)D.7個(gè)字節(jié)

48.X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

49.有以下程序:#include<stdio.h>main()}chara,b,e,d;seanf("%e,%e,%d,%d",&a,&b,&c,&d);printf("%c,%c,%e,%c\n",a,b,c,d);若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>,則輸出結(jié)果是()。

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

50.fgetc函數(shù)的作用是從指定文件讀入一個(gè)字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

51.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

52.15.與數(shù)據(jù)元素本身的形式、內(nèi)容、相對(duì)位置、個(gè)數(shù)無關(guān)的是數(shù)據(jù)的()

A.存儲(chǔ)結(jié)構(gòu)B.存儲(chǔ)實(shí)現(xiàn)C.邏輯結(jié)構(gòu)D.運(yùn)算實(shí)現(xiàn)

53.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.24B.28C.32D.36

54.以下對(duì)結(jié)構(gòu)體類型變量td的定義中,錯(cuò)誤的是

A.typedefstructaa{intn;floatm;}AA;AAtd;

B.structaa{intn;floatm;}td;structaatd;

C.struct{intn;floatm;}aa;structaatd;

D.struct{intn;floatm;}td;

55.設(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)體類型名

56.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf("%d,",*(p++));printf("%d",**q);}

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

57.有以下程序:main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出結(jié)果是()。

A.11122B.12C.12020D.120

58.關(guān)于線性表的描述,錯(cuò)誤的一條是______。

A.線性表是線性結(jié)構(gòu)

B.線性表就是單鏈表

C.線性表的順序存儲(chǔ)結(jié)構(gòu),必須占用一片連續(xù)的存儲(chǔ)單元

D.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),不必占用連續(xù)的存儲(chǔ)單元

59.對(duì)長度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為______。A.N+1B.NC.(N+1)/2D.N/2

60.合法的數(shù)組定義是()

A.inta[]="string";

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

C.chara="string";

D.chara={0,1,2,3,4,5};

四、選擇題(20題)61.

62.

63.若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式為()。

A.p+1B.a+1C.a++D.++p

64.

65.軟件生命周期中所花費(fèi)用最多的階段是()。

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

66.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。

A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);

67.

68.

69.

70.以下是if語句的基本形式:

if(表達(dá)式.語句

其中“表達(dá)式”()。

A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式

71.以下變量x、y、z均為double類型且已正確賦值,不能正確表示x/(y*z)的C語言表達(dá)式是()。

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

72.

73.如果要在表單中創(chuàng)建一個(gè)普通文本框,下列標(biāo)記中正確的是()。

A.<inputtype=”text”>

B.<inputtype=”password”>

C.<inputtype=”CheCkbox”>

D.<inputtype=”radio”>

74.C語言的基本單位是()。

A.函數(shù)B.過程C.子程序D.子函數(shù)

75.以下關(guān)于return語句的敘述中正確的是()。A.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

B.一個(gè)自定義函數(shù)中必須有一條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的retum語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

76.有以下程序

#include<stdio.h>

main()

{inti=5;

do

{if(i%3==1)

if(i%5==2)

{printf("*%d",i);break;}

i++;

}while(i!=0);

printf("\n");

}

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

A.*7B.*3*5

C.*5D.*2*6

77.

78.

79.有以下程序(strcat函數(shù)用于連接兩個(gè)字符串):

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

A.U-KB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

80.有以下程序

main()

{inti=10,j=1;

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

}

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

A.9,2B.10,2

C.9,1D.10,1

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是計(jì)算并輸出h以內(nèi)的素?cái)?shù)之和。h由主函數(shù)傳給proc()函數(shù)。若h的值為80,則函數(shù)的值為791。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),其功能是:將str所指字符串中除下標(biāo)為偶數(shù)、同時(shí)ASCⅡ碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFG12345,其中字符8的ASCⅡ碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCⅡ碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依次類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所寫的若干語句。試題程序:

參考答案

1.DD?!窘馕觥寇浖枨蠓治鲋行枰獦?gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對(duì)軟件的功能需求和非功能需求。

2.D本題考查的是如何對(duì)二維數(shù)組進(jìn)行賦值。選項(xiàng)A)中數(shù)組第二維的大小是4,但卻給賦了5個(gè)元素;選項(xiàng)B)中C語言規(guī)定,對(duì)于二維數(shù)組,只可以省略第一個(gè)方括號(hào)中的常量表達(dá)式而不可以省略第二個(gè)方括號(hào)中的常量表達(dá)式:選項(xiàng)c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項(xiàng)D)中在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0。

3.C解析:本題中第一行代碼對(duì)指針P進(jìn)行了初始化,其指向數(shù)組a的第6個(gè)元素,在其后的操作中p的值也沒有改變過,所以最后輸出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代碼中對(duì)q指向的值進(jìn)行賦值,等價(jià)于*q=a[10]=11,所以輸出結(jié)果*q為11。

4.Bdouble,char,int,第一個(gè)字母都是小寫。

5.B本題是對(duì)基本知識(shí)點(diǎn)的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當(dāng)需要時(shí)才用#include<stdio.h>頭文件,預(yù)處理的作用就是實(shí)現(xiàn)宏定義和條件編譯。

6.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,所以本題答案為D。

7.D題目中需要輸入一個(gè)變量,scanf要求輸入?yún)?shù)為指針,而D選項(xiàng)中“ps->age”為變量,不是指針。故本題答案為D選項(xiàng)。

8.D

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

10.D解析:在C語言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。

11.A本值輸出兩個(gè)值,%c為輸出一個(gè)字母,0/4d輸出一個(gè)數(shù)字?!癆”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。

12.A

13.D

14.C解析:C語言中的自反賦值運(yùn)算符?!癿-=n”相當(dāng)于“m=m-n”,兩個(gè)相等的數(shù)相減,其值為0。

15.D題干中x是一個(gè)整型變量,賦值為072。以0開頭的整數(shù)是八進(jìn)制的表示形式。printf函數(shù)中,格式字符%d表示以十進(jìn)制形式輸出“x+1”,所以需要將072轉(zhuǎn)換成十進(jìn)制數(shù),即7×8+2=58,輸出“x+1”為59。故本題答案為D選項(xiàng)。

16.A條件表達(dá)式:x=表達(dá)式1:表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1.若為非0(真),則求解表達(dá)式2.將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3.將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y)等價(jià)的是(x-y<0|x-y>0)。

17.D

18.D解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。

19.B并運(yùn)算的含義是:假設(shè)有一個(gè)“在校學(xué)生信息表”,它包括這樣一些字段:學(xué)號(hào)、姓名、性別、出生日期、籍貫、聯(lián)系電話,這個(gè)表的關(guān)系模式可以表示為:校學(xué)生信息表(學(xué)號(hào),姓名,性別,出生日期,籍貫,聯(lián)系電話)。還有一個(gè)“新生信息表(學(xué)號(hào),姓名,性別,出生日期,籍貫,聯(lián)系電話)”。若要將9月份進(jìn)校的新生信息加入到“在校學(xué)生信息表”中,這樣進(jìn)行的就是并運(yùn)算。并運(yùn)算不會(huì)改變表的字段(又叫屬性)個(gè)數(shù),但是會(huì)增加記錄(又叫元組)個(gè)數(shù)。交運(yùn)算的含義是:兩個(gè)表(要求結(jié)構(gòu)要一模一樣)進(jìn)行交運(yùn)算取兩個(gè)表中相同的記錄構(gòu)成一個(gè)新表,交運(yùn)算不會(huì)改變表的字段個(gè)數(shù),但是一般會(huì)減少記錄個(gè)數(shù)。投影運(yùn)算的含義是:從在“校學(xué)生信息表(學(xué)號(hào),姓名,性別,出生日期,籍貫,聯(lián)系電話)”中選取學(xué)生的“姓名”和“聯(lián)系電話”這兩個(gè)字段,可以構(gòu)成一個(gè)“學(xué)生聯(lián)系表(姓名,聯(lián)系電話)”,這就是一個(gè)投影運(yùn)算,所以投影運(yùn)算一般會(huì)減少字段(又叫屬性)的個(gè)數(shù)。笛卡兒乘積又叫稱乘運(yùn)算,設(shè)有n元關(guān)系R和m元關(guān)系s,他們分別有P、q個(gè)元組,則關(guān)系R和關(guān)系s的笛卡兒積表示為R×S,該關(guān)系是一個(gè)n+m元關(guān)系,元組個(gè)數(shù)是PXq。因此本題的正確答案是B。\r\n

20.C解析:宏替換不像函數(shù)調(diào)用要進(jìn)行參數(shù)值的計(jì)算、傳遞等,而只是簡單按照原格式進(jìn)行字符串的替換。注意:宏定義的命令格式。

21.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個(gè)switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個(gè)復(fù)合switch語句:這時(shí)執(zhí)行第二個(gè)switch語句,此時(shí)y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個(gè)switch語句,則整個(gè)case1的復(fù)合語句執(zhí)行完畢,由于在這個(gè)case1的后面沒有break語句使其退出第一個(gè)switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。

22.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個(gè)指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。

23.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。

24.(double*)(double*)解析:一般用malloc函數(shù)為變量分配存儲(chǔ)單元時(shí),要在前面用強(qiáng)制類型轉(zhuǎn)換符說明該存儲(chǔ)單元中數(shù)據(jù)的類型。本題要為指向雙精度浮點(diǎn)型數(shù)據(jù)的指針變量p分配存儲(chǔ)單元,因此用(double*)說明。

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

26.測(cè)試實(shí)例測(cè)試實(shí)例解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。

27.22132,2,1,3解析:本題考查++,--運(yùn)算符和條件運(yùn)算符的使用。

“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計(jì)算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計(jì)算表達(dá)式3的值,且為最終結(jié)果。

本題中,x=1,y=2時(shí),x<y成立,輸出y的值2;y=2,z=3時(shí),z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個(gè)輸出x的值不變?yōu)?,y的值為增加后的3。

28.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時(shí),m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因?yàn)樵谟诤瘮?shù)中將m和i定義成了static類型,所以在于函數(shù)中對(duì)m和i進(jìn)行的改變?cè)谙乱淮握{(diào)用子函數(shù)時(shí)能進(jìn)行保存,所以第二次調(diào)用于函數(shù)時(shí),m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。

29.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點(diǎn))

“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時(shí)不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。

30.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é)。

31.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時(shí),m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因?yàn)樵谧雍瘮?shù)中將m和i定義成了static類型,所以在子函數(shù)中對(duì)m和i進(jìn)行的改變?cè)谙乱淮握{(diào)用子函數(shù)時(shí)能進(jìn)行保存,所以第二次調(diào)用子函數(shù)時(shí),m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。

32.09182736450918273645解析:題目中為for循環(huán)定義了兩個(gè)字符型循環(huán)變量c1和c2,循環(huán)開始時(shí)分別初始化為字符‘0’和‘9’,然后每次循環(huán)結(jié)束給c1增1、c2減l,循環(huán)條件為c1<c2,即讓c1的值依次為‘0’、‘1’、‘2’…,c2的值依次為‘9’、‘8’、‘7’…,直到兩個(gè)數(shù)相遇時(shí)結(jié)束循環(huán)。又因?yàn)樵撗h(huán)的循環(huán)體每次按字符形式輸出c1和c2的值。所以最終的輸出結(jié)果為:0918273645。

33.main()pstr*(pstr+j)

34.i=0j=20i=0,j=20解析:該函數(shù)的第一個(gè)參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對(duì)應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應(yīng)該填入i=0,j=20。

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

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

37.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。

38.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。

39.1212解析:本題首先通過第一個(gè)for語句把0~9(包含0和9)間的整數(shù)依次賦值給數(shù)組arr,第二個(gè)for語句用于實(shí)現(xiàn)將滿足條件的數(shù)組元素與對(duì)應(yīng)的下標(biāo)值求和并累加,并用變量k保存。

40.101,0解析:與運(yùn)算兩邊的語句必須同時(shí)為真時(shí),結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。

41.A解析:本題主要考查按位異或和右移運(yùn)算。b=4的二進(jìn)制為00000100,b>>2后為00000001,a=2的二進(jìn)制為00000010,兩者異或?yàn)?0000011。

42.B

43.A本題主要考查軟件測(cè)試的基本知識(shí)。軟件測(cè)試的步驟可分為單元測(cè)試(模塊測(cè)試)、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。

(1)單元測(cè)試是針對(duì)每個(gè)模塊進(jìn)行的測(cè)試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例,多個(gè)模塊可以平行、對(duì)立地測(cè)試。單元測(cè)試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時(shí)犯下的錯(cuò)誤。單元測(cè)試多采用白盒測(cè)試,輔之以黑盒測(cè)試。

(2)集成測(cè)試是在單元測(cè)試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個(gè)模塊連接起來,必須精心計(jì)劃,應(yīng)提交集成測(cè)試計(jì)劃、集成測(cè)試規(guī)格說明和集成測(cè)試分析報(bào)告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測(cè)試可以發(fā)現(xiàn)概要設(shè)計(jì)時(shí)犯的錯(cuò)誤。

(3)確認(rèn)測(cè)試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測(cè)試主要用于發(fā)現(xiàn)需求分析時(shí)犯下的錯(cuò)誤,一般使用黑盒法測(cè)試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計(jì)測(cè)試用例和測(cè)試過程。確認(rèn)測(cè)試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計(jì)測(cè)試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試,測(cè)試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測(cè)試是將已經(jīng)通過確認(rèn)測(cè)試的軟件,作為整個(gè)計(jì)算機(jī)系統(tǒng)的元素與計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測(cè)試可以發(fā)現(xiàn)問題定義時(shí)犯下的錯(cuò)誤。

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

45.A解析:本題首先定義了一個(gè)二維數(shù)組,然后將數(shù)組名作為參數(shù)傳遞給子函數(shù)sub(),在子函數(shù)中使用了一個(gè)循環(huán),循環(huán)變量i從0遞增到n(n為2),即循環(huán)了3次,依次輸出數(shù)組的a[0][2]、a[1][2]、a[2][2]三個(gè)元素,所以程序運(yùn)行后輸出的結(jié)果是369,應(yīng)該選擇A。

46.D解析:關(guān)系模型中包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性。關(guān)系完整性即數(shù)據(jù)完整性,包括實(shí)體完整性、參照完整性、用戶自定義完整性。

47.C解析:在給數(shù)組賦值時(shí),可以用一個(gè)字符串作為初值,這種方法直觀、方便,而且符合人們的習(xí)慣。數(shù)組array的長度不是5,而是6,這點(diǎn)必須要注意。因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)'\\0',因此,上面的初始化與下面的等價(jià):

Chararray[]={'C','h','i','n','a','\\0'};

48.B解析:scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址。選項(xiàng)A不是C語言中的輸入語句,故選項(xiàng)A不正確;選項(xiàng)C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址,故選項(xiàng)C不正確;選項(xiàng)D不是C語言中的輸入語句,故選項(xiàng)D不正確:所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

49.A解析:本題考查格式字符的輸入和輸出。字符常量在內(nèi)存中是以其ASCII碼形式存儲(chǔ)的,字符型數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出。程序中變量a,b是以字符型常量輸入的,在內(nèi)存中存儲(chǔ)的是字符6和字符5對(duì)應(yīng)的ASCII碼;變量c,d是以整型常量輸入的,在內(nèi)存中存儲(chǔ)的就是整型常量65和66。輸出是以字符形式輸出a,b,c,d,所以,將字符常量6和5所對(duì)應(yīng)的ASCII碼譯成字符常量6和5輸出,將整型數(shù)65和66對(duì)應(yīng)的字符常量即,'A'和'B'輸出。

50.D解析:fgetc函數(shù)是指從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

51.D解析:C語言規(guī)定,字符常量在程序中要用單引號(hào)括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項(xiàng)的這種形式在C語言中沒有,所以選項(xiàng)D)正確.

52.C所謂數(shù)據(jù)的邏輯結(jié)構(gòu),是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。\n所謂數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。與數(shù)據(jù)元素本身的形式、內(nèi)容、相對(duì)位置、個(gè)數(shù)有關(guān)。\n邏輯結(jié)構(gòu)與物理存儲(chǔ)無關(guān)。因此本題的正確答案為C。

53.B解析:本題考查的是外部變量的應(yīng)用。因?yàn)槌绦虻某跏糹nta=4;語句定義了外部變量a,在以后的執(zhí)行過程中,當(dāng)i=0時(shí),調(diào)用f(0)函數(shù),執(zhí)行的語句是else{inta=7;t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=7,返回值語句returnt+a++;處,外部變量a起作用,返回值為7+5=12:當(dāng)i=1時(shí),調(diào)用f(1)函數(shù),執(zhí)行的是語句else{inta=6:t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=6,返回值語句

54.C解析:選項(xiàng)t中,aa為結(jié)構(gòu)體變量,而不是結(jié)構(gòu)體名稱,不能再用來定義td。

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

56.D解析:通過賦值,指針p和q都指向了數(shù)組a的首地址,*(p++)先引用數(shù)組元素,然后p++,所以輸出結(jié)果為2,**q指向的數(shù)組元素為4。注意:通過建立一個(gè)指針數(shù)組來引用二維數(shù)組元素。

57.A解析:for循環(huán)執(zhí)行了3次,第一次時(shí)i的值為0,執(zhí)行其后的switch語句,沒有匹配的分支,執(zhí)行default語句后的printf語句,輸出為0;第二次循環(huán)時(shí)i的值為1,執(zhí)行其后的switch語句,與第一個(gè)分支匹配,執(zhí)行其后的primf語句,輸出1,由于沒有遇到break語句,所以一直向下執(zhí)行,又輸出了兩個(gè)1,第三次循環(huán)時(shí)i值為2,執(zhí)行其后的switch語句,同理輸出兩個(gè)2。所以,A選項(xiàng)是正確的。

58.A解析:線性表是一種最簡單,最常用的數(shù)據(jù)結(jié)構(gòu)。線性表操作的實(shí)現(xiàn)依賴于線性表中數(shù)據(jù)元素及元素之間的關(guān)系在存儲(chǔ)器

溫馨提示

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