2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(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)

文檔簡介

2021-2022年內(nèi)蒙古自治區(qū)通遼市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.當(dāng)變量c的值不為2、4、6時(shí),值為“真”的表達(dá)式是()。

A.(c>=2&&c<=6)&&(c%2!=1)

B.(c==2)||(c==4)||(c==6)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)||(c!=3)||(c!=5)

2.

3.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是()。

A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表

4.數(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)

5.有以下程序:#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={“Zhao”,‘m’,85.0,90.0},b={“Qian”,‘f’,95.0,92.0};b=a;printf(“%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的運(yùn)行結(jié)果是()。

A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

6.

7.

8.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

9.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

10.有一個(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

11.

12.采用表結(jié)構(gòu)來表示數(shù)據(jù)和數(shù)據(jù)間聯(lián)系的模型是()。

A.層次模型B.概念模型C.網(wǎng)狀模型D.關(guān)系模型

13.有以下程序:

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

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

14.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運(yùn)行結(jié)果是()。

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

15.在軟件測試設(shè)計(jì)中,軟件測試的主要目的是

A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤

16.設(shè)有以下說明語句structnum{inta;floatb;}numl;則下面的敘述不正確的是______。

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

B.structnum是用戶定義的結(jié)構(gòu)體類型

C.numl是用戶定義的結(jié)構(gòu)體類型名

D.a和b都是結(jié)構(gòu)體成員名

17.在堆棧中存取數(shù)據(jù)的原則是。A.先進(jìn)先出B.后進(jìn)先出C.先進(jìn)后出D.隨意進(jìn)出

18.以下不完整的程序擬實(shí)現(xiàn)調(diào)用getmax函數(shù),找出4個(gè)變量中最大的一個(gè):#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下選項(xiàng)若填入下劃線處,不能實(shí)現(xiàn)上述功能的是()。

A.getmax(getmax(getmax(a,b),c),d)

B.getmax(getmax(a,b),getmax(c,d))

C.getmax(a,getmax(b,getmax(c,d)))

D.mx=(getmax(a,b),getmax(c,d))

19.C程序是由()構(gòu)成的。

A.主程序與子程序B.主函數(shù)與子函數(shù)C.一個(gè)主函數(shù)與若干個(gè)其他函數(shù)D.主函數(shù)與子程序

20.下列敘述中正確的是A.break語句只能用于switch語句

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

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

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

二、2.填空題(20題)21.下列程序能將字符串s1中的所有與字符串str1相同的子串替換成字符串sb2,并將替換后的新串存于字符數(shù)組s2中。

#include<stdio.h>

voidreplace(s1,s2,str1,str2)

char*s1,*s2,*str1,*str2;

{char*t0,*t1,*t2,*x,*y;

x=s1;y=s2;

while(【】)

{

for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);

if(*t1!='\0')*s2++=【】;

else

{for(t1=str2;*t1!='\0';)*s2++=【】;

【】;

}

}

*s2='\0';

}

main()

{staticchars1[]="abcdefababcdabab.",s2125];

replace(s1,s2,"abc","XYZ");

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

}

22.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

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

voidswap(int*a,int*b)

{int*t;

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

}

main()

{intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

24.對數(shù)據(jù)元素之間的邏輯關(guān)系的描述是()。

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

26.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

27.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

28.以下程序的輸出結(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))

}

29.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有______。

30.

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{return(【】);)

31.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

32.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

33.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù),且要求m>n。

例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。

#include<stdio.h>

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

for(i=1;i<=n;i++)【】;

for(i=1;i<=m-n;i++)p=p/i;

returnp;

}

main()

{printf("p=%f\n",fun(12,8));

}

34.在兩種基本測試方法中,()測試的原則之一是保證所測模塊中每一個(gè)獨(dú)立路徑至少執(zhí)行一次。

35.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。

36.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對象上的操作稱為【】。

37.數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理和控制。

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

main()

{inta=5,b=4,c=3,d;

d=(a>b>c);

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

}

39.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。

40.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

三、1.選擇題(20題)41.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。

A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對

42.已知一個(gè)文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個(gè)數(shù)組:structanumber[10];假定文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A.fread(b,sizeof(structA),10,fp);

B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);

C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);

D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);

43.C語言中,能識別處理的文件為

A.文本文件和數(shù)據(jù)塊文件B.文本文件和二進(jìn)制文件C.流文件和文本文件D.數(shù)據(jù)文件和二進(jìn)制文件

44.下列關(guān)于標(biāo)識符的說法中錯(cuò)誤的是

A.合法的標(biāo)識符是由字母、數(shù)字和下劃線組成

B.C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符

C.C語言的標(biāo)識符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符

D.用戶標(biāo)識符與關(guān)鍵字不同時(shí),程序在執(zhí)行時(shí)將給出出錯(cuò)信息

45.有以下程序:voidfun(intk){staticinta[5];inti;for(i=0;i<5;i++){a[i]+=i+k,printf("%d",a[i]);}printf("\n");}main(){fun(1);fun(2);}程序的輸出結(jié)果是()

A.12345357911

B.隨機(jī)數(shù)

C.1234523456

D.12345246810

46.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){chara=3,b=1;charc=a^b<<2;printf("%d",C;}

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

47.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

48.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序的易讀性

49.在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段

50.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是

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

51.下列敘述中正確的是A.程序設(shè)計(jì)就是編制程序

B.程序的測試必須由程序員自己去完成

C.程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測試

D.程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測試

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

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

53.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

54.若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運(yùn)算后,a的值為()。

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

55.下面程序main(){inty=9;for(;y>0;y--){if(y%3=0){printf("%d",--y);continue;}}}的輸出是_______。

A.741B.852C.963D.875421

56.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是

A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表

57.使用白盒測試法時(shí),確定測試數(shù)據(jù)應(yīng)該根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。

A.程序的內(nèi)部邏輯B.程序的復(fù)雜結(jié)構(gòu)C.使用說明書D.程序的功能

58.下列程序的輸出結(jié)果是_____。main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

59.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。

A.不確定的值B.一個(gè)整數(shù)C.形參p中存放的值D.形參p的地址值

60.下列敘述中,正確的一條是______。

A.語句int*pt中的*pt是指針變量名

B.運(yùn)算符*和&都是取變量地址的運(yùn)算符

C.已知指針變量p指向變量a,則&a和*p值相同,都是變量a的值

D.語句“int*p=a;”等價(jià)于“int*p;p=&a[0];”

四、選擇題(20題)61.

設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n—c>d)運(yùn)算后,n的值是()n

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

62.

63.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A.A.&B.^C.||D.~

64.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

65.以下選項(xiàng)中能表示合法常量的是()。

A.”\007”B.1.5E2.0C.\D.1。200

66.有以下程序:

#include<stdio.h>

main()

{inta=0,b=0,c=0;

c=(a=a=5);(a=b,b+=4);

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

}

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

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

67.

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

A.數(shù)據(jù)庫是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

69.有以下程序:

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

A.1234B.5678C.9101112D.1111

70.下列描述中不正確的是()。

A.字符型數(shù)組中可能存放字符串。

B.可以對字符型數(shù)組進(jìn)行整體輸入、輸出。

C.可以對整型數(shù)組進(jìn)行整體輸入、輸出。

D.不能在賦值語句中通過賦值運(yùn)算符“=”對字符型數(shù)組進(jìn)行整體賦值。

71.

72.以下敘述正確的是()。A.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

B.C語言程序是由過程和函數(shù)組成的

C.c語言函數(shù)不可以單獨(dú)編譯

D.c語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在

73.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

74.有以下程序:

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

A.6,4,3,2,1

B.6,5,4,3,2

C.5,4,3,2,1

D.10,4,3,2,l

75.

76.

77.設(shè)有如下函數(shù)定義:

若執(zhí)行調(diào)用語句“l(fā)l=fm(3);”,則函數(shù)tim總共被調(diào)用的次數(shù)是()。

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

78.

79.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。A.A.-3B.9C.-12D.6

80.

五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個(gè)元素按從大到小的順序進(jìn)行排序。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個(gè)實(shí)根。

yn+1=cos(yn)

迭代步驟如下:

(1)取y1初值為0.0;

(2)y0=y1,把y1的值賦給y0;

(3)y1=cos(y0),求出一個(gè)新的y1;

(4)若y0=y1的絕對值小于0.000001,則執(zhí)行步驟

(5),否則執(zhí)行步驟(2);

(5)所求y1就是方程COS(y)-y=0的一個(gè)實(shí)根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Result=0.739085。

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

部分源程序給出如下。

試題程序:

參考答案

1.D邏輯或運(yùn)算中只要有一個(gè)運(yùn)算量為真,結(jié)果就為真。當(dāng)“c>=2&&c<=6”條件不成立時(shí),c的值肯定不是2、3、4、5、6,“c!=3”與“c!=5”均成立,所以D選項(xiàng)的結(jié)果一定為真。故本題答案為D選項(xiàng)。

2.C

3.D單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種關(guān)系。

4.C

5.B在main函數(shù)中將結(jié)構(gòu)體變量a賦值給變量b。輸出結(jié)構(gòu)體變量b的值為:Zhao,m,85,90。故本題答案為8選項(xiàng)。

6.C

7.A

8.C函數(shù)fun(intx,inty)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等于8。

9.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號內(nèi)表達(dá)式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進(jìn)行下去。所以,4個(gè)選項(xiàng)中D為所選。

10.C

11.B

12.D關(guān)系模型采用二維表來表示,簡稱表。本題答案為D選項(xiàng)。

13.C內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。Fun(a,5)的值是l5,再次調(diào)用后slim=15,所以Fun(b,4)=45,s=45+15=60。

14.D靜態(tài)變量是始終存在的,當(dāng)函數(shù)變量退出后,靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項(xiàng)。

15.D解析:使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。

16.C

17.C

18.Dgetmax函數(shù)接收兩個(gè)整型變量x、y,使用條件運(yùn)算符返回x和y中的較大值。main函數(shù)首先輸入a、b、c、d4個(gè)整數(shù)值,然后通過調(diào)用getmax函數(shù),輸出它們的最大值。假設(shè)x、y是整數(shù),選項(xiàng)A中,首先執(zhí)行“getmax(a,b)”,返回a、b中的較大值X,再執(zhí)行“getmax(x,c)”,返回x、c中的較大值y,最后執(zhí)行“getmax(y,d)”,返回y、d中的較大值,滿足題意,正確;選項(xiàng)B中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行“getmax(x,y)”,返回x、y中的較大值,正確;選項(xiàng)C中,首先執(zhí)行“getmax(c,d)”,返回c、d的較大值X,再執(zhí)行“getmax(b,x)”,返回b、x中的較大值y,最后執(zhí)行“getmax(a,y)”,返回a、y中的較大值,正確;選項(xiàng)D中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行逗號表達(dá)式“(x,y)”,返回值為7,不滿足題意。故本題答案為D選項(xiàng)。

19.B

20.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項(xiàng)A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會(huì)一直執(zhí)行到switch的最后一條語句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對使用會(huì)讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。

21.*s1!='\0'或*s1*t0=*t1*s1++*t1++s1=t0或s1=s1+strlen(str1)*s1!='\\0'或*s1\r\n*t0=*t1\r\n*s1++\r\n*t1++\r\ns1=t0或s1=s1+strlen(str1)

22.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

23.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向了實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依然是原來的值。

24.數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)的邏輯結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是對數(shù)據(jù)元素之間的邏輯關(guān)系的描述,它可以用一個(gè)數(shù)據(jù)元素的集合和定義在此集合中的若干關(guān)系來表示。

25.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

26.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個(gè)for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。

27.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

28.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。

29.前件前件

30.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個(gè)for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個(gè)空白處應(yīng)該填x,然后x+1,共循環(huán)10次。F()函數(shù)的功能應(yīng)該是求數(shù)學(xué)表達(dá)式f(x)的值,所以其返回值應(yīng)該為x*x+1。

31.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

32.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。

33.p=p*ip=p/ip=p*ip=p/i解析:本題中,欲求p的值,需要先求m!,n!,(m-n)!,可分別用循環(huán)語句實(shí)現(xiàn)。

34.白盒白盒解析:按功能劃分測試可分為白盒測試和黑盒測試。白盒測試的原則是保證所測試模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測試模塊所有判斷的每一分支至少執(zhí)行一次:保證所測試模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。

35.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。

36.方法方法解析:在面向?qū)ο蠓椒ㄖ校椒ㄊ侵冈试S作用于某個(gè)對象上的各種操作。

37.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實(shí)現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

38.00解析:本題的關(guān)鍵在于對變量c的賦值運(yùn)算:

d=(a>b>c)

d=(5>4>3)

先算5>4,為真,得1,即:d=(1>3),此時(shí)1>3,為假,得0。

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

40.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語句的值應(yīng)當(dāng)為false,即為0。

41.C解析:對字符型一維數(shù)組在定義時(shí)初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會(huì)自動(dòng)在結(jié)尾添加\'\\0\',字符做結(jié)束標(biāo)志,所以用字符串常量的初始化列表項(xiàng)個(gè)數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價(jià)于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應(yīng)該選C。

42.B

43.B解析:在計(jì)算機(jī)中,對于輸入輸出均采用數(shù)據(jù)流的形式。文件按照存取方式分為順序存取文件和隨機(jī)存取文件。按照存儲形式分為二進(jìn)制文件和文本文件。文本文件存儲的是一個(gè)ASCII碼,文件的內(nèi)容可以直接進(jìn)行輸入輸出。二進(jìn)制文件直接將字符存儲,不能將二進(jìn)制文件的內(nèi)容直接輸出到屏幕上。所以,C語言所能夠處理文件是按照存放形式分為文本文件和二進(jìn)制文件。

44.D解析:用戶標(biāo)識符與關(guān)鍵字相同時(shí),程序在編譯過程中將給出出錯(cuò)信息。注意:選項(xiàng)D)應(yīng)該改為用戶標(biāo)識符與關(guān)鍵字相同,程序在編譯時(shí)將給出出錯(cuò)信息。注意:合法的標(biāo)識符第一個(gè)字符必須為字母或下劃線。

45.A

46.B

47.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標(biāo)識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個(gè)枚舉類型enumc,a1,a2為枚舉元素,在C編譯時(shí),對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。

48.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

49.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。

50.B解析:主函數(shù)中for循環(huán)執(zhí)行兩次,i=1和i=2。調(diào)用函數(shù)f(1),返回值為1,j=1;調(diào)用函數(shù)f(2),計(jì)算表達(dá)式f(n-1)+1的值時(shí)遞歸調(diào)用f(1),返回值為2,j=3。所以B為所選。

51.C解析:軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒計(jì)是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其日的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。

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

53.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃++語言規(guī)定賦值號的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。注意:C++語言賦值語句的運(yùn)用,

54.A解析:本題考查'%'運(yùn)算符的使用。運(yùn)算符'%'要求兩個(gè)運(yùn)算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式ao%=(b%2)等價(jià)于a=a%o(b%2)=5%(7%2)=5%1=0。

55.B解析:“%”是求余運(yùn)算符,所以if判斷語句中實(shí)際是指出只有當(dāng)y可以被3整除時(shí)方可以繼續(xù);-y是先進(jìn)行y的自減運(yùn)算,再使用y值。所以,最后的打印結(jié)果應(yīng)當(dāng)為“852”。

56.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實(shí)體本身及其相互之間的聯(lián)系。本題的正確答案是D。

57.A白盒測試是把測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論