2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第1頁
2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第2頁
2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第3頁
2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第4頁
2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64

2.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。

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

3.以下敘述中錯誤的是(

)。A.函數(shù)形參的值也可以傳回給對應(yīng)的實參

B.函數(shù)調(diào)用可以作為一個獨立的語句存在

C.若函數(shù)有返回值,必須通過r;mm語句返回

D.C程序必須由一個或一個以上的函數(shù)組成

4.若要用函數(shù)fopen打開一個新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。

A.wbB.wb+C.rb+D.rb

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

main()

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

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

6.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數(shù)的類型是()。A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

7.

8.最大容量為n的循環(huán)隊列,隊尾指針是rear,隊頭是front,則隊空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

9.以下選項中合法的C語言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

10.在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是()。

A.補碼B.反碼C.原碼D.ASCII碼

11.

12.

13.

14.

15.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素

A.70B.71C.69D.30

16.在下列幾種排序方法中,空間復(fù)雜度最高的是()

A.歸并排序B.快速排序C.插入排序D.選擇排序

17.算法的效率的分析主要包括兩個方面()。

A.時間復(fù)雜度和空間復(fù)雜度B.正確性和簡單性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性

18.向一個棧頂指針為H的鏈棧中執(zhí)行出棧運算時,需執(zhí)行()。

A.p=H;H=H->link;free(p);

B.H=H->link;free(H);

C.p=H;H->link=H->link->link;free(p);

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

19.有以下程序

#include<stdio.h>

#include<stdlib.h>

main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b

printf(”%d,%d,%d\n”,*a,*b,*c);

}

程序運行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

20.以下敘述中錯誤的是()。

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

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

main()

{

chara[]="Language",b[]"Programe";

char*p1,*p2;

intk;

p1=a,p2=b;

for(k=0;k<=7;k++)

if(*(p1+k==*(p2+k))printf("%c",*(p1+k));

}

22.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

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

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

24.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

25.若運行輸入:3<回車>,則以下程序的輸出結(jié)果是()。main(){inta,b;scanf("%d",&A);b=(a>=0)?a:-a;printf("b=%d",B);}

26.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負(fù)值。請?zhí)羁铡?/p>

My_cmp(char*s,char*t)

{while(*s==*t)

{if(*s==′\0)return0;

++s;++t;

}return【】;

}

27.棧和隊列通常采用的存儲結(jié)構(gòu)是【】。

28.在進(jìn)行軟件結(jié)構(gòu)設(shè)計時,應(yīng)遵循的最主要原理是【】。

29.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j<=k;j+=2;)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);printf("\n");

}

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

#include<stdio,h>

main()

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

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

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

31.以下程序的功能是將字符串s中的數(shù)字字符放人d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串a(chǎn)bc123edf456gh,執(zhí)行程序后輸出123456。請?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;)

d[j]='\0';

puts(D);

}

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

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

33.funl函數(shù)的調(diào)用語句為funl(&a,&b,&c);。它將3個整數(shù)按由大到小的JI匣序調(diào)整后依次放入a,b,c三個變量中,a中放最大數(shù),請?zhí)羁铡?/p>

voidfun2(int*x,int*y)

{intt;

t=*x;*x;*y;*y=t;

}

voidfunl(int*pa,int*pb,int*pc)

{if(*pc>*pb)fun2(【】);

if(*pa<*pc)fun2(【】);

if(*pa<*pb)fun2(【】);

}

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

main()

{

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

switch(x)

{

case1:

switch(y)

{

case0:a++;break;

case1:b++;break;

case2:a++;b++;break;

}

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

}

35.對于長度為n的線性表,若進(jìn)行順序查找,時間復(fù)雜性為【】;若進(jìn)行二分查找,則時間復(fù)雜性為【】。

36.單元測試又稱模塊測試,一般采用【】測試。

37.若要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

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

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

main()

{

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

p++;

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

}

39.下面的程序可對指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n-->1)

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

if(str[i]<str[i+l])

{temp=【】;

str[i]=str[i+l];

【】=temp;

}

printf(【】);

}

40.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

三、1.選擇題(20題)41.為了使模塊盡可能獨立,要求______。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊問的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

42.以下函數(shù)返回a所指數(shù)組中最小的值所在的下標(biāo)值

fun(int*a,intn)

{inti,j=0,p;

p=j;

for(i=j;i<n;i++)

if(a[i]<a[p]);________;

return(p);}

在橫線處應(yīng)填入的是

A.i=pB.a[p]=a[i]C.p=jD.p=i

43.以下程序的輸出結(jié)果為()。#include<stdio.h>main(){char*alpha[6]={"ABCDEFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);printf("\n");}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPQRSTD.AEIM

44.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母'N'時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getehar()!='N')printf("%c",ch);

C.while(ch=getehar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

45.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是

A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

46.以下程序的輸出結(jié)果是______。#include<sulio.h>#defmeSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf("%d\n",a);}

A.8B.9C.17D.20

47.fwrite函數(shù)的一般調(diào)用形式是

A.fwrite(buffer,count,size,fp);

B.fwrite(fP,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

48.有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/printf("%u\n",x);}程序運行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.0xFFFF

49.fscanf函數(shù)的正確調(diào)用形式是()。

A.fscanf(文件指針,格式字符串,輸出表列);

B.fscanf(格式字符串,輸出表列,文件指針);

C.fscanf(格式字符串,文件指針,輸入表列);

D.fscanf(文件指針,格式字符串,輸入表列);

50.下面程序段的輸出為()。

#include"stdio.h"

main

{

printf("%d\n",12<<2);

}

A.0B.47C.48D.24

51.若執(zhí)行下面的程序時,從鍵盤輸入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

52.請選出正確的程序段______。

A.int*pscanf(""%d"",p);……

B.int*s,k;*s=100;……

C.int*s,k;char*p,c;s=&k;p=&c;*p='a';……

D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;……

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

54.設(shè)x,y,z,(均為整型變量,現(xiàn)有如下語句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個語句后t的值為

A.2B.1C.0D.不定值

55.下列是用戶自定義標(biāo)識符的是

A._w1B.3_xyC.intD.LINE-3

56.執(zhí)行以下語句的結(jié)果為______。y=10;x=y++;

A.x-10,y=10B.x=11,y=11C.x=10,y=11D.x=11,y=10

57.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符o的表達(dá)式是_______。

A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

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

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

59.軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指()

A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程

60.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

四、選擇題(20題)61.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是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'

62.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

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

intd=1;

fun(intp)

{intd=5;

d+=p++;

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

main()

{inta=3;

fun(a);

d+=a++;

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

A.8,4B.9,6C.9,4D.8,5

64.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:

該語句所表示的含義是()。

A.

B.

C.

D.

65.

66.34.有以下程序

#include<stdio.h>

unionpw

{inti;

charch[2];

}a;

main()

{a.ch[0]=13;a.ch[1]=0;

printf("%d\n",a.i);

}

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

A.13B.14

C.0D.20

67.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.可行性分析報告B.軟件需求規(guī)格說明書C.概要設(shè)計說明書D.集成測試計劃

68.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是()。

A.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型

B.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型

C.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型

D.整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的

69.

70.

71.以下結(jié)構(gòu)體類型說明和變量定義中正確的是()。

A.

B.

C.

D.

72.以下選項中合法的表達(dá)式是()。

A.a(chǎn)=a+7=c+b

B.(3+x)++

C.3+x++

D.x+1=x+1

73.有以下程序:

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

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

74.

75.當(dāng)執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

76.有以下程序

#include<string.h>

structSTU

{intnum;

floatTotalScore;};

voidf(structSTUp)

{structSTUs[2]={{1047,530},{1048,531}};

p.num=s[1].num;p.TotalScore=s[1].TotalScore;

}

main()

{structSTUs[2]={{2041,730},{2042,731}};

f(s[0]);

printf("%d,%3.0f\n",s[0].num,s[0].TotalScore);

}

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

A.1047,530

B.1048,531

C.2041,730

D.2042,731

77.

數(shù)字字符0的ASCII值為48,運行以下程序的輸出結(jié)果是()。

main

(chara=1,b=2;

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

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

78.

則下面對m數(shù)組元素的引用中錯誤的是()。

A.

B.

C.

D.

79.有以下程序:

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

A.3B.4C.lD.9

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:在字符串str中找出ASCⅡ碼值最大的字符,將其放在第一個位置上,并將該字符前的原字符向后順序移動。例如,調(diào)用proc()函數(shù)之前給字符串輸入DcybkdGT,調(diào)用后字符串中的內(nèi)容為yDcbkdOT。

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

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

試題程序:

六、程序設(shè)計題(1題)82.假定輸入的字符串只包含字母和“#”號,請編寫函數(shù)fun(),它的功能是:刪除字符串中所有的“#”號。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“##w#e1##come###”,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是“welcome”。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C當(dāng)if執(zhí)行到第一個滿足(i*i>=20)(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下面的prinlf語句。

2.C解析:本題考查的知識點是運算符的優(yōu)先級.在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。

3.A函數(shù)參數(shù)傳遞是個不可逆的過程,形參不會把值傳回實參,所以A)選項(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。

4.B解析:本題考查文件使用方式標(biāo)識符。方式“wb”為輸出打開一個二進(jìn)制文件;方式“wb+”為讀寫建立一個新的二進(jìn)制文件;方式“rb+”為讀寫打開一個二進(jìn)制文件:方式“rb”為輸入打開一個二進(jìn)制文件。

5.B解析:算術(shù)運行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運算過程為:a=25/10%9=2%9=2:當(dāng)邏輯運算符“&&”兩邊的值都是非零時,邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。

6.A本題考查函數(shù)值的類型,在函數(shù)定義時,由于函數(shù)沒有說明其類型,系統(tǒng)默認(rèn)一律自動按整型(int)處理。

7.A

8.B

9.DC語言中,常量有整型常量、實型常量、字符常量和字符串常量等。整型常量和實型常量又稱為數(shù)值型常量。其中整型常量只能用數(shù)字表示,不帶小數(shù)點。實型常量必須用帶小數(shù)點的數(shù)表示,所以選項A錯誤,選項D正確;字符型常量是用單引號標(biāo)注的單個字符,字符串常量是用雙引號標(biāo)注的若干個字符,選項B、C錯誤。故本題答案為D選項。

10.D解析:在C語言中,將一個字符常量放到一個字符變量中,實際并不是把該字符本身放到內(nèi)存單元中,而是將與該字符相對應(yīng)的ASCII碼放到存儲單元中。

11.B

12.A

\r\n

13.D

14.B

15.A

16.A

17.D

18.A

19.A解析:本題中,首先創(chuàng)建開辟一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。

20.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。

21.gaegae解析:本題定義了兩個字符串?dāng)?shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串?dāng)?shù)組a和b,執(zhí)行for循環(huán),當(dāng)if(*p1+k)=*(p2+k))條件為真,執(zhí)打輸出*(p1+k)對應(yīng)的字符。即當(dāng)k=0時,*(p1+k)對應(yīng)的字符串?dāng)?shù)組a中的字符L,*(p2+k)對應(yīng)的字符串?dāng)?shù)組b中的字符P,因此if(*(p1+k)=*(p2+k))條件為假,不執(zhí)行printf語句,依此類推,將字符串?dāng)?shù)組a和b中對應(yīng)位置上的字符一一比較,如果對應(yīng)位置上的字符相同,則輸出該字符。

22.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進(jìn)制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進(jìn)制整數(shù)格式是66。所以,輸出為B66。

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

24.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

25.b=3b=3解析:條件表達(dá)式的基本格式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”;其功能是:表達(dá)式1的值若非0,則計算表達(dá)式2的值,且為最終結(jié)果;若表達(dá)式1的值為0,則計算表達(dá)式3的值,且為最終結(jié)果。因為a=3,則a>=0成立,所以b=a=3。

26.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回,所以在空框處應(yīng)填入*s-*t,保證在s>t時,返回正值,當(dāng)s<t時,返回負(fù)值。

27.鏈?zhǔn)酱鎯晚樞虼鎯︽準(zhǔn)酱鎯晚樞虼鎯?/p>

28.模塊獨立原理模塊獨立原理

29.a[I]>a[j]a[I]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求出下標(biāo)值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2,最后通過條件a[i]>a[j]對元素大小進(jìn)行判斷并交換。

30.11解析:該程序要注意的是if語句的判斷條件“c=a”是賦值,而不是“c==a”。由于a=1,故條件c=a使c的值為1(真),所以輸出c的值1。

31.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根據(jù)題意,if語句的條件應(yīng)當(dāng)是判斷數(shù)組元素s[i]是否為數(shù)字,故正確答案為:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII碼值,57是字符9的ASCII碼值。

32.123ok!123ok!解析:本題主要考查了printf函數(shù)用在了宏替換中。宏替換不是函數(shù)調(diào)用,只是一種簡單的字符替代。所以本題中PRINT(a+i)展開為:printf(“%d\\t”,(int)(a+i)),當(dāng)i=0時,輸出1;當(dāng)i=1時,輸出2;當(dāng)i=2時;輸出3;for循環(huán)結(jié)束后輸出ok!。

33.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb解析:本題主要考查形參為指針變量時,形參和實參間的數(shù)據(jù)傳遞。系統(tǒng)為fun2的兩個形參開辟了對應(yīng)的基類為int型的臨時指針變量,并通過空格處的實參把地址傳遞給形參x,y。

34.2121解析:本題考核的知識點是switch語句的嵌套應(yīng)用。外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case():開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。

35.O(n)O(log2n)

36.白盒法白盒法

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

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

39.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實過程是將相鄰兩個字符進(jìn)行比較,如果當(dāng)前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第—空應(yīng)填:str[i],第二空應(yīng)填str[i+1]最終打印輸出得到的字符串str,所以第三空應(yīng)填'%s',str。

40.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。

41.B解析:為了使模塊盡可能獨立,模塊分解時應(yīng)滿足信息隱蔽原則。盡量使模塊的內(nèi)聚度高,模塊間的耦合度低。模塊的大小適中(通常一個模塊以50~100個語句行最為適宜)。

42.D解析:該程序先判斷a[i]<a[p],如果條件為真,則a[i]比當(dāng)前設(shè)定的最小值小(p保留的當(dāng)前最小元素的下標(biāo)),那么將i賦給p,即將比較過的最小元素下標(biāo)保留在p中,作為下面判斷的標(biāo)準(zhǔn)。

43.C解析:字符串?dāng)?shù)組中的每個元素是一個指向字符串的字符指針,可用一個指向指針的指針來指向一個字符串?dāng)?shù)組,題中p即為一個這樣的指針,p[i]則指向了數(shù)組alpha的第i+1各元素。注意:用帶下標(biāo)的指針變量引用一維數(shù)組中的元素。

44.A解析:此題中選項B)與選項C)首先在書寫上就有錯誤;題目要求當(dāng)讀人的字母為非字母'N'時才執(zhí)行printf語句,依據(jù)選項D)的要求,只有當(dāng)讀人的字母為'N'時才執(zhí)行printf句,故也錯誤。

45.C解析:選項A首先判斷if語句條件中表達(dá)式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達(dá)式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項B中首先判斷if語句條件中表達(dá)式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項C中,首先執(zhí)行第一條if語句,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條if語句,由于“1<1為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項D中;首先執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3。

46.B解析:本題宏替換中遇到形參x以實參k+l代替,其他字符不變。SQR(k+1)展開后應(yīng)為字符串k+l*k+l。

47.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示準(zhǔn)備輸出的數(shù)據(jù)塊的起始地址,size表示每個數(shù)據(jù)塊的字節(jié)數(shù),count用來指定每寫一次或輸出的數(shù)據(jù)塊,fp為文件指針。

48.B解析:“%u”格式符表示以十進(jìn)制形式輸出無符號整形變最。本題中無符號整形變量x=0xFFFF表示的是十六進(jìn)制無符號整型變量的最大值65535,所以最后輸出的結(jié)果為65535。

49.D解析:fscanf的調(diào)用形式是:fscanf(文件指針,格式字符串,輸入表列);

50.C解析:考查位運算的運算原理。<<為左移運算符,運算符的左邊是移位對象;右邊是整型表達(dá)式,代表左移的位數(shù),左移時,右端(低位)補0;左端(高位)移出的部分舍棄。

51.C解析:本題考查簡單的if…else語句。先執(zhí)行條件if(a<b),顯然不成立,在執(zhí)行else語句。

52.C解析:本題的選項A)和B)犯了同樣的錯誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。

53.B解析:在進(jìn)行順序查找過程中,如果被查的元素是線性表中的最后一個,或者被查元素根本不性表中,則為了查找這個元素需要與線性表中所有元素進(jìn)行比較,這是順序查找最壞的情況。

54.B解析:邏輯與(&&)優(yōu)先于邏輯或(‖)優(yōu)先于賦值運算符。由于邏輯運算符的結(jié)果為邏輯值,真為1,假為0,題目中的邏輯值為真。

55.A本題主要考查標(biāo)識符的定義。對標(biāo)識符的定義是考試中??嫉膬?nèi)容之一。標(biāo)識符主要由數(shù)字、下畫線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標(biāo)識符時,不能將標(biāo)識符定義為C語言中已定義的關(guān)鍵字,如int、while等。

根據(jù)上面對標(biāo)識符的分析,我們不難看出本題的正確答案是A。在選項B中,3_xy以數(shù)字開頭,不符合標(biāo)識符定義的規(guī)定;在選項C中,int是C語言系統(tǒng)中已經(jīng)定義了的關(guān)鍵字;在選項D中,LINE-3使用的數(shù)字、下畫線和字母以外的字符,因此不正確。

56.C解析:執(zhí)行語句x=y++,是先將y的值10賦給x,然后y自增。

57.A解析:ps+2就是s[2]的地址,即存放字符o的地址,所以A是錯誤的。

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

59.B軟件設(shè)計包括軟件的結(jié)構(gòu)設(shè)計、數(shù)據(jù)接口設(shè)計和過程設(shè)計。其中軟件結(jié)構(gòu)設(shè)計主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計的任務(wù)是為每個子系統(tǒng)設(shè)計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。

60.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。

61.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應(yīng)該是加上'a',選項A和C左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。

62.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內(nèi)存,而定義自動類auto與強制放入寄存器register類型變量時,只有當(dāng)使用時才分配內(nèi)存。

63.A

64.C考查if語句的使用。整個語句都是以a<b為假設(shè)的,在a<b的情況下,如果c=d,則y=0;否則y=1。所以答案為選項C)。

65.C

66.A本題主要考查聯(lián)合體的內(nèi)容。關(guān)于聯(lián)合體,我們需要注意以下幾個特點。

(1)聯(lián)合體不允許做初始化賦值,賦值只能在程序中進(jìn)行。

(2)由于聯(lián)合體成員共享存儲空間的原因,導(dǎo)致一個聯(lián)合體變量每次只能給一個成員變量賦值,而且聯(lián)合體中所有成員的首地址相同,即都是變量的地址。

(3)聯(lián)合體的存儲空間與其成員變量中所需空間最大的變量保持一致,即聯(lián)合變量的長度等于各成員中最長的長度。

在本題中,程序首先定義了一個聯(lián)合體和一個該聯(lián)合體的聯(lián)合體變量a,在主函數(shù)中,

溫馨提示

  • 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

提交評論