2021年黑龍江省黑河市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2021年黑龍江省黑河市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2021年黑龍江省黑河市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2021年黑龍江省黑河市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2021年黑龍江省黑河市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年黑龍江省黑河市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(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í)行一次

2.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序運行的結(jié)果是()。A.9B.61490C.61D.5

3.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。

cb='b';

k=10;

printf("%X,%o,”,ch,ch,k);

printf("k=%%d\n",k);A.A.因變量類型與格式描述符的類型不匹配,輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

4.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的運行結(jié)果是()

A.zB.0C.元素ch[5]的地址D.字符y的地址

5.

6.高度為h的滿二叉樹的結(jié)點數(shù)是________個。

A.log2h+1B.2h+1C.2h-1D.2h-1

7.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序運行后的輸出結(jié)果是()。

A.18,34,100B.24,34,92C.24,34,100D.18,34,92

8.根據(jù)二叉樹的定義可知道二叉樹共有種不同形態(tài)的二叉樹()。

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

9.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。

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

10.設(shè)有定義“intk=3,i=2;”,以下選項中,變量k的值與其他3個不同的是()。

A.k-=i;B.k=--i;C.k=i-1;D.k=i--;

11.冒泡排序在最壞情況下的比較次數(shù)是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

12.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

13.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;B.(*p)++;C.++(*p);D.*++P

14.設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))

15.下列運算符中優(yōu)先級最高的是()。

A.!B.%C.-=D.&&

16.下列標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.SwithchD.return

17.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

18.為非法的字符串常量()。A.“case”B.“”C.”056”D.‘123’

19.已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

20.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

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

#definePR(ar)printf("ar=%d",ar)

main()

{intj,a[]={1,3,5,7,9,1l,13,1},*p=a+5;

for(j=3;j;j--)

switch(j)

{case1:

case2:PR(*p++);break;

case3:PR(*(--p));}}

22.下面程序的運行結(jié)果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

23.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

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

26.以下程序的功能是對從鍵盤上輸入的兩個字符串進(jìn)行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼值之差。請?zhí)羁铡?/p>

#include"stdio.h"

main()

{chara1[20],a2[20];intn=0,t;

scanf("%st",a1);scanf("%s",a2);

while(a1[n]!=a2[n]&&(a1[n]!=【】))

{t=【】;

printf("%d\n",t);n++;}}

27.在對文件進(jìn)行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。

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

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

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

}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]=(1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

31.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

32.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。

33.有以下程序:

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p<a+10;p++)printf("%d,",*p);

}

程序運行后的輸出結(jié)果是【】。

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

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

main()

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

p++;

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

}

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

37.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

38.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

39.下列程序執(zhí)行輸出的結(jié)果是【】。

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

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

k=f(a++);

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

40.C語言用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

三、1.選擇題(20題)41.在下列敘述中,錯誤的一條是()

A.關(guān)系表達(dá)式的值是一個邏輯值,即“真”或“假”,可賦給一個邏輯變量

B.數(shù)組必須先定義后使用,且只能逐個引用數(shù)組元素,不能一次引用整個數(shù)組

C.在C語言中,判斷一個量是否為“真”時,用。代表“假”,1代表“真”

D.將字符串常量賦給字符數(shù)組時,必須在字符串后加飛'\0',表示字符結(jié)束

42.已有定義:chara[]="xyz"'b[]={'x','y','z');,以下敘述中正確的是______。

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

43.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefvlint;

B.typedefv2=int

C.typedefintv3;

D.typedefv4:int

44.下面的程序段運行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=2*i+j;for(i=0;i<8;i++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

45.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。

A.\bB.\tC.\vD.\f

46.軟件開發(fā)模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型

A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ

47.下列程序段的輸出結(jié)果是______。intx=3;do{printf("%d",x-=2);}while(!(--x));

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

48.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機值

49.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

50.字符串"\\\"ABCDEF\"\\"的長度是()。

A.15B.10C.7D.8

51.下列二維數(shù)組初始化語句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

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

D.intb[3][2]={(1,2),(3,4),(5,6)};

52.運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。main(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=-b;b=c;c=t;}printf("%f\n%f\n%f/n",a,b,c);}

A.1.002.003.00

B.1.003.002.00

C.132

D.3.0000002.0000001.000000

53.下列語句中,正確的是______。

A.staticcharstr[]="China";

B.staticcharstr[];str="China";

C.staticcharstr1[5],str2[]={"China"};strl=str2;

D.staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);

54.以下程序的運行結(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.存在語法錯誤C.Y=7D.Y=0

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

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

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

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

D.以上說法均錯

56.下面的程序輸出結(jié)果是()。#defineU5#defineVU+1#defineWV*V/2main(){printf("%d",W);printf("%d",5*W);}

A.1872B.10.552.5C.10.525.5D.1030

57.以下程序段中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main{int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}

C.#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}

D.#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}

58.詳細(xì)設(shè)計的結(jié)果基本決定了最終程序的()。

A.代碼的規(guī)模B.運行速度C.質(zhì)量D.可維護(hù)性

59.已知大寫字母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'

60.與十進(jìn)制數(shù)255相等和二進(jìn)制數(shù)是()

A.11101110B.11111110C.10000000D.11111111

四、選擇題(20題)61.有以下程序程序執(zhí)行后輸出結(jié)果是()。

A.5.OOB.5C.5.2lD.0.0

62.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}

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

63.

64.

65.一個棧的初始狀態(tài)為空?,F(xiàn)將元素l、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,惻元素出棧的順序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA

66.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

67.若有以下定義和語句:“doubler=99,*p=&r;*P=r;”,則以下正確的敘述是()。

A.兩個*p含義相同,都說明給指針變量p賦值

B.在“doubler=99,*p=&r;”中,把r的地址賦值給了P所指的存儲單元

C.語句“*p=r;”把變量r的值賦給指針變量P

D.語句“*p=r;”取變量r的值放回r中

68.第

15

非空的循環(huán)單鏈表head的尾結(jié)點(由p所指向),滿足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

69.

70.“年齡在18~25之間”這種約束是屬于數(shù)據(jù)庫當(dāng)中的()。A.A.原子性措施B.一致性措施C.完整性措施D.安全性措施

71.若有定義語句:“inta=10;doubleb=3.14;”,則表達(dá)式A+a+b值的類型是()。

A.charB.intC.doubleD.float

72.若變量已正確定義,有以下程序段:

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

A.0,0B.0,1C.1,1D.程序進(jìn)入無限循環(huán)

73.以下程序運行后的輸出結(jié)果是()。

A.zB.0C.元素Ch[5]地址D.字符y的地址

74.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

75.設(shè)有定義:

doublea[10],*s=a;

以下能夠代表數(shù)組元素a[3]的是()。

A.($s)[3]B.}(s+3)C.*s[3]D.}s+3

76.

若有以下程序段,w和k都是整型變量:

w=k:

LB:if(w==0)gotoLE;

W--:

printf("*")

gotoLB;

LE;

則不能與上面程序段等價的循環(huán)語句是()。

A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

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

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

78.

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

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

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

#include<stdio.h>

main()

{inti,s=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}A.4B.39C.45D.6

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

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將一個數(shù)字字符串轉(zhuǎn)換成與其面值相同的長整型整數(shù)。可調(diào)用strlen函數(shù)求字符串的長度。例如,在鍵盤輸入字符串2345210,函數(shù)返回長整型整數(shù)2345210。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:

參考答案

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

2.C在fun函數(shù)中,while循環(huán)的功能是逐個取字符數(shù)組s的字符判斷其是否是數(shù)字。若是則將這些數(shù)字組成一個數(shù)保存到變量n中,并返回變量n的值。

3.C第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進(jìn)制和八進(jìn)制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數(shù),也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。

4.A語句“pc=ch;”使得指針變量pc指向字符數(shù)組ch的首地址,即指向字符‘u’。而“pc+5”指向的是指針向后移動5位所指的字符,即指向字符‘z’,所以輸出的“*(pc+5)”的值為‘z’。故本題答案為A選項。

5.D

6.C

7.D程序中S1和S2都是宏定義。S1(a+b)宏展開后的表達(dá)式為4*a+b+4*(a+b),即4*1+2+4*(1+2),結(jié)果為18;S2(a,b)宏展開后的表達(dá)式為4*(a)*(b)+b*a,即4*(1)*(2)+2*1,結(jié)果為10;S1(3)宏展開后的表達(dá)式為4*3+4*(3),結(jié)果為24;32(3+a,b+3)宏展開后的表達(dá)式為4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,結(jié)果為92。最終輸出:18,34,92。故本題答案為D選項。

8.B

9.B解析:先計算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時,如果變量為int型變量則真用1表示,假用0表示),即a=1。

10.D選項A是復(fù)合的賦值運算符,等價于“k=k-i”,所以k的值為1;選項B中前綴自減運算符首先將i的值自減1,然后將自減后的值賦給k,所以k和i的值都是1;選項C中k的值為1;選項D中后綴自減運算符將i的值先賦給k,然后i自減1,所以k的值為2。故本題答案為D選項。

11.C冒泡排序的基本思想是:將相鄰的兩個元素進(jìn)行比較,如果反序,則交換;對于一個待排序的序列,經(jīng)一趟排序后,最大值的元素移動到最后的位置,其他值較大的元素也向最終位置移動,此過程稱為一趟冒泡。對于有n個數(shù)據(jù)的序列,共需n-1趟排序,第i趟對從l到n-i個數(shù)據(jù)進(jìn)行比較、交換。冒泡排序的最壞情況是待排序序列逆序,第l趟比較n-1次,第2趟比較n-2次。依此類推,最后趟比較1次,一共進(jìn)行n-l趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是(n-1)+(n-2)+…+l,結(jié)果為n(n-1)/2。本題的正確答案是選項C。

12.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。

13.D

14.D解析:觀察程序可知,a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

15.A

16.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。

17.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

18.D

19.C解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個指引,對fread來說,它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。

20.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

21.ar=9ar=9ar=11ar=9ar=9ar=11解析:本題綜合考查了for循環(huán),switch語句及宏替換等幾個知識點。j=3時,執(zhí)行PR(*(--p));輸出數(shù)組元素a[4]的值;j=2時,執(zhí)行PR(*p++);取出p所指位置的元素a[4],然后p++;當(dāng)j=1時,執(zhí)行PR(*p++);取得是數(shù)組元素a[6]的值11。

22.x=11x=11解析:在對無符號數(shù)的右移是高位補0。

23.概念(或概念級)概念(或概念級)

24.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值.若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

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

26.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]

27.rewind函數(shù)rewind函數(shù)解析:rewind函數(shù)的功能是使文件的位置指針回到文件的開頭。

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

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

30.1515解析:s=f(aa,5)=f(aa,4)+a[4]=f(aa,3)+a[3]+a[4]=f(aa,2)+a[2]+a[3]+a[4]

=f(aa,1)+a[1]+a[2]+a[3]|a[4]=0+a[0]+a[1]+a[2]+a[3]+a[4]=15。

31.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

32.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。

33.12345678901,2,3,4,5,6,7,8,9,0,解析:p指向a的首地址。a+10表示的是a[10]的地址,嘲此此程序的功能就是輸出數(shù)組a。

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

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

36.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

37.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

38.軟件開發(fā)

39.44解析:本題考查了靜態(tài)存儲類別的局部變量的特點。靜態(tài)存儲類別的局部變量在程序的整個生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當(dāng)i=0時執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因為賦值運算符的優(yōu)先級高于逗號運算符,所以a=3,c=4;當(dāng)i=1時執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因為c為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。

40.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。

41.B

42.C解析:a數(shù)組是字符串,系統(tǒng)會自動地給它加一個結(jié)束標(biāo)志符'\\0',因此a的長度就變?yōu)?了,所以a數(shù)組比b數(shù)組長。

43.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。

44.C解析:本題主要考查的用二維數(shù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:

由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

45.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進(jìn)制數(shù)所代表的字符、\xhh1~2位十六進(jìn)制數(shù)所代表的字符。

46.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。

47.C

48.B解析:若在函數(shù)中定義與全局變量名字相同的局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大,故選項A不正確;靜態(tài)變量一旦定義,將在整個程序的運行期間都存布,故選項B正確;函數(shù)的形參只在函數(shù)調(diào)用的時候分配存儲空間,在退出函數(shù)時收回存儲空間,因此是局部的,故選項C不正確;沒有賦值的auto型變量的初值是隨機的,沒有賦值的static型變量的初值是0,故選項D不正確。所以,B選項為所選。

49.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。

50.B解析:本題涉及字符串最基本的兩個概念:①字符串的長度是指字符串中字符的個數(shù),但不包括字符串結(jié)束符;②以反斜杠“\\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。

51.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達(dá)式,而不能省略第2個方括號中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。

在選項D)賦值表達(dá)式中,對每一維的元素賦初值應(yīng)用{},而不是()。

52.D解析:本題考查if語句。第1個if語句,實現(xiàn)如果a<b,則交換a、b值的功能;第2個if語句,實現(xiàn)如果a<c,則交換a、c的值的功能:第3個if語句,實現(xiàn)如果b<c,則交換b,c的值的功能。3個if語句結(jié)合起來實現(xiàn)的功能就是將a、b、c按從大到小排序。

53.A

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

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

56.D解析:宏W展開后為V*V/2,繼續(xù)展開為U+1*U+1/2,再繼續(xù)展開得5+1*5+1/2=5+5+0=10。而5*W展開后為5*5+1*5+1/2=25+5+0=30。故應(yīng)該選擇D。

57.C解析:選項A和B中p指向局部變量s的地址,退出函數(shù)fun后,該局部變量也被釋放,不能使p指向一個整型單元地址;選項D中通過malloc函數(shù)分配一個整型地址,但不能被返回到main函數(shù)中,因為指針參數(shù)指向的地址不能被改變;選項C中,p是指向指針的指針,函數(shù)fun改變的是其指向的內(nèi)容,而不是其地址。

58.C解析:詳細(xì)設(shè)計階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實現(xiàn)所要求的系統(tǒng),但詳細(xì)設(shè)計階段的任務(wù)還不是具體的編寫程序,而是要設(shè)計出程序的“藍(lán)圖”,以后程序員將根據(jù)這個藍(lán)圖寫出實際的程序代碼,因此,詳細(xì)設(shè)計階段的結(jié)果基本上就決定了最終的程序代碼的質(zhì)量。

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

60.D

61.Afun2中a=funl(x);返回1,b=funl(Y);返回值為4,所以fun2

溫馨提示

  • 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

提交評論