2022-2023年四川省南充市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2022-2023年四川省南充市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2022-2023年四川省南充市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2022-2023年四川省南充市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2022-2023年四川省南充市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(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ì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是()。

A.循環(huán)隊(duì)列B.棧C.順序表D.循環(huán)鏈表

2.程序運(yùn)行后的輸出結(jié)果是()。A.10B.30C.0D.64

3.下列程序執(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);}

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

4.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

5.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格的是()。

A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中有必要的注釋D.輸人數(shù)據(jù)前要有提示信息

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

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

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

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

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

7.在一個(gè)無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的()倍。

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

8.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

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

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

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

C.“include<stdio.h>”必須放在C語言程序的開頭

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

10.以下說法錯(cuò)誤的是A.A.高級(jí)語言都是用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

B.計(jì)算機(jī)只能處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)

C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個(gè)后綴為.EXE的二進(jìn)制文件

D.每一種高級(jí)語言都有它對(duì)應(yīng)的編譯程序

11.設(shè)有下列二叉樹:

對(duì)此二叉樹后序遍歷的結(jié)果為

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

12.下面關(guān)于圖的存儲(chǔ)的敘述中正確的是()。

A.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無關(guān)

B.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中邊數(shù)和頂點(diǎn)個(gè)數(shù)都有關(guān)

C.用鄰接矩陣法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)無關(guān)

D.用鄰接矩陣存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無關(guān)

13.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

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

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

14.有以下程序

prt(int*m,intn)

{

inti;

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

m[i]++;

}

main()

{

inta[]={1,2,3,4,5},i;

prt(a,5);

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

printf("%d,",a[i]);

}

程序運(yùn)行后的輸出結(jié)果是A.A.1,2,3,4,5,

B.3,4,5,6,7,

C.2,3,4,5,6,

D.2,3,4,5,1,

15.

16.現(xiàn)有1GB數(shù)據(jù)進(jìn)行排序,計(jì)算資源只有1GB內(nèi)存可用,下列排序方法中最可能出現(xiàn)性能問題的是()

A.堆排序B.插入排序C.歸并排序D.快速排序E.選擇排序F.冒泡排序

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

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

B.一個(gè)返回指向整型值指針的函swap()

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

D.以上說法均錯(cuò)

18.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.數(shù)據(jù)結(jié)構(gòu)

19.下面程序的輸出結(jié)果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

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

A.在C程序中,APH和aph是兩個(gè)不同的變量

B.C程序中的變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元,它的值可以根據(jù)需要隨時(shí)修改

C.在C程序中,無論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無誤地表示

D.在C程序中,一個(gè)正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來表示

二、2.填空題(20題)21.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

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

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

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

請(qǐng)?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

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

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

24.以下程序的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。請(qǐng)?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}

25.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。

#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;【】)

if(【】)

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

puts(a);

printf("\n");

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

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

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=Y;Y=t;

printf(“%d,%d\n”,x,y);

}

28.在關(guān)系運(yùn)算中,【】運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

29.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

30.下面程序有兩個(gè)printf語句,如果第一個(gè)printf語句輸出的是194,則第二個(gè)printf語句的輸出結(jié)果是【】。

main()

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

p=a;

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

printf("%x\n,p+9);

}

31.對(duì)軟件是否能達(dá)到用戶所期望的要求的測(cè)試稱為【】。

32.若有如下定義:

intx=2,y=3,z=4;

則表達(dá)式!(x=y)||x+z&&y-z的值是【】。

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

typedefunionstudent

{charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{STUa[5];

Printf(“%d\n”,sizeof(a));

}

34.下面程序的功能是:計(jì)算1~10之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);}

35.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【】。

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

intmystrlen(char*str)

{inti;

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

return(i);}

37.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請(qǐng)?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能構(gòu)成三角形*/

elseprintf("NO\n");/*abc不能構(gòu)成三角形*/

}

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

39.在程序設(shè)計(jì)階段應(yīng)該采取______和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計(jì)語言寫成程序。

40.下列程序的功能是把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中。請(qǐng)?zhí)羁铡?/p>

#include"stdio.h"

FILE*fp;

{charch;

if((fp=fopen("bi.dat","w"))==NULL)exit(0);

while(______)fputc(ch,fp);

______;

}

三、1.選擇題(20題)41.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是

A.anothernumber

B.anothernumberanother

C.anothernumbernumber

D.numbernumber

42.在C語言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A.auto和register

B.extern和register

C.auto和static

D.static和register

43.以下能正確定義一維數(shù)組的選項(xiàng)是

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A''B''C');

D.inta[5]="0123";

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

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

45.有以下程序:#include<stdio.h>main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%~",*p++);}程序運(yùn)行后的輸出結(jié)果是()。

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

46.在深度為6的滿二叉樹中,結(jié)點(diǎn)的個(gè)數(shù)為()。

A.32B.31C.16D.15

47.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

48.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>A)||(m=a<B);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是

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

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

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

50.下列說法正確的是()。

A.在C語言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù),定義元素個(gè)數(shù)可變的數(shù)組

B.在C語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義了一個(gè)數(shù)組后,就確定了它所容納的元素的個(gè)數(shù)

51.以下程序的輸出是______。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],60,&dt[2],60,&dt[3]};main(){p=aa;printf("%d\n",++(p->X));}

A.51B.11C.50D.60

52.C語言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

53.有以下程序:voidswap(char*x,char*y){cbart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。

A.123,abcB.abc,123C.1bc,a23D.321,cba

54.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯(cuò)誤的是()。

A.a++;B.b++;C.c++;D.d++;

55.設(shè)下面程序段中調(diào)用fun函數(shù)傳送實(shí)參a和b,main(){chara[10],b[10]┇fun(a,b);┇}則在fun函數(shù)首部中,對(duì)形參錯(cuò)誤的定義是()

A.fun(chara[10],b[10]){…}

B.fun(chara1[],chara2[]){…}

C.fun(charp[10],charq[10]){…}

D.fun(char*s1,char*s2){…}

56.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是()。

A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊(duì)列D.調(diào)用、返回和轉(zhuǎn)移

57.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是______。

A.'a'<=c<'z'

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

C.('a'<'c')and('z'>=C)

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

58.下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

59.若有以下定義;chara;intb;floatc;doubled;則表達(dá)式“a*b+d-c”值的類型為()

A.floatB.intC.charD.double

60.在下列定義中的共用體所占內(nèi)存字節(jié)數(shù)是()Union{chark[6];struct{intm;floatf;}a;doubled;}b;

A.8B.14C.18D.10

四、選擇題(20題)61.(67)數(shù)據(jù)處理的最小單位是()

A.數(shù)據(jù)

B.數(shù)據(jù)元素

C.數(shù)據(jù)項(xiàng)

D.數(shù)據(jù)結(jié)構(gòu)

62.以下關(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)用處

63.

64.有以下程序

main()

{inta[3][2]={0},(*ptr)[2],i,j;

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

{ptr=a+i;scanf("%d",ptr);ptr++;}

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

{for(j=0;j<2;j++)printf("%2d",a[i][j]);

printf("\n");

}

}

若運(yùn)行時(shí)輸入123<回車>,則輸出結(jié)果為

65.以下定義語句中正確的是()。

A.

B.

C.

D.

66.設(shè)有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

67.計(jì)算機(jī)的內(nèi)存儲(chǔ)器比外存器()

A.價(jià)格便宜B.存儲(chǔ)容量大C.讀寫速度快D.讀寫速度慢

68.

69.已知inta=15,執(zhí)行語句a=a<<2以后,變量a的值是()。

A)20B)40

C)60D)80

70.

71.有以下程序

structst

{intx;

int*y;

}*p;

intdt[4]={1,2,3,4};

structstaa[4]={10,&dt[0],20,&dt[1],30,&dt[2],40,&dt[3]};

main()

{p=aa;

printf("%d\n",++p->x);

printf("%d\n",(++p)->x);

printf("%d\n",++(*p->y));

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

72.

73.

74.

75.

76.軟件詳細(xì)設(shè)計(jì)生產(chǎn)的圖如右圖:該圖是()。

A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

77.

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

A.17B.16C.15D.14

79.以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是()。A._0_B.8—8C.voidD.unsigned

80.sizeof(float)是

A.一個(gè)雙精度表達(dá)式B.一個(gè)整型表達(dá)式

C.一種函數(shù)調(diào)用D.一個(gè)不合法的表達(dá)式

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將str所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(Z轉(zhuǎn)換A,z轉(zhuǎn)換a),其他字符不變。

請(qǐng)修改函數(shù)fun()中的錯(cuò)誤,得出正確的結(jié)果。

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}

參考答案

1.B解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),隊(duì)列是以先進(jìn)先出為原則組織數(shù)據(jù)的一種特殊線性表,選項(xiàng)A錯(cuò)誤;棧是以先進(jìn)后出為原則組織數(shù)據(jù)的一種特殊線性表,選項(xiàng)B正確;順序表是線性表的順序存儲(chǔ)結(jié)構(gòu),選項(xiàng)C錯(cuò)誤;循環(huán)鏈表是一般線性表的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),選項(xiàng)D錯(cuò)誤。

2.D[解析]本題目中靜態(tài)局部變量x,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。所以第一次循環(huán)s的值為2.第二次循環(huán)中,返回的x的值為4.所以s的值為8.第三次循環(huán),返回的x的值為8.所以s的值為64.

3.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),static變量在函數(shù)調(diào)用結(jié)束后所做的所有變化均保持(即上次調(diào)用結(jié)束時(shí)的值)。

在主函數(shù)中,第一次循環(huán),i=0,調(diào)用k-f(a++)=f(2),調(diào)用完之后才將a加1,a變?yōu)?,在f(2)中,先將c=3賦值給a返回,然后將c加1,得到k=a=3,c=4。

第二次循環(huán),i=1,調(diào)用k=f(a++)=f(3),調(diào)用完之后才將a加1,a變?yōu)?,在f(3)中,先將c=4賦值給a返回,然后將c加1,得到k=a=4,c=5。

4.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中“P+6”指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,即指向uE63,存放的是b[6]的地址。

5.A一般來講,程序設(shè)計(jì)風(fēng)格首先應(yīng)該簡單和清晰,其次程序必須是可以理解的,可以概括為“清晰第一,效率第二”。

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

7.A

8.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

9.A預(yù)處理命令以“#”開頭,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、C選項(xiàng)錯(cuò)誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯的功能,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

10.C本題主要考查我們對(duì)C語言一些基礎(chǔ)知識(shí)的掌握情況。下面分別分析本題的四個(gè)選項(xiàng)。

由于高級(jí)程序設(shè)計(jì)語言具有可讀寫、可理解性好等特點(diǎn),這就要求高級(jí)程序設(shè)計(jì)語言用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式,選項(xiàng)A的說法正確。

在計(jì)算機(jī)中,機(jī)器可以接受和處理的只能是由0和1組成的二進(jìn)制代碼,用高級(jí)語言編寫的程序都需要經(jīng)過編譯和連接,使其轉(zhuǎn)化為二進(jìn)制代碼才能被機(jī)器執(zhí)行。因此,選項(xiàng)B的說法正確。

C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個(gè)后綴為.OBJ的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個(gè)后綴為.EXE的可執(zhí)行文件。因此,選項(xiàng)C的說法不正確。

由于高級(jí)語言編寫的程序都需要經(jīng)過編譯和連接,才能被計(jì)算機(jī)執(zhí)行,因此,每一種高級(jí)語言都有它對(duì)應(yīng)的編譯程序,D選項(xiàng)的說法正確。

11.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應(yīng)該為:后序遍歷左子樹->,后序遍歷右子樹->,訪問根結(jié)點(diǎn)。按照定義,后序遍歷序列是DEBFCA,故答案為D。

12.B

13.B解析:在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),它的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對(duì)字符型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個(gè)元素。

14.C用數(shù)組名作為函數(shù)實(shí)參時(shí),不是把數(shù)組的值傳遞給形參,而是把實(shí)參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組就共同占用同一段內(nèi)存單元。本題通過“prt(a,5);”將數(shù)組a的首地址傳遞給了指針變量m,使指針變量m指向數(shù)組a的首地址,那么,對(duì)指針變量所指向的存儲(chǔ)單元的內(nèi)容的改變就是對(duì)數(shù)組a中的元素的改變。題中函數(shù)prt的作用是將指針變量m所指向的存儲(chǔ)單元中的元素值各加上1,故數(shù)組a中的值也隨之變化,所以。輸出的數(shù)組元素的值為2,3,4,5,6,。

15.D

16.C

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

18.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。

19.A解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數(shù)組s的首地址,輸出字符串'ABCD'。p++,第二次循環(huán),p的值為字符數(shù)組s的首地址加1,輸出字符串'BCD'。p++,第三次循環(huán),p的值為字符數(shù)組s的首地址加2,輸出字符串'CD'。p++,第4次循環(huán),p的值為字符數(shù)組s的首地址加3,輸出字符串\'D'。

20.C

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

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

23.5252解析:do...while語句的形式為:

do

{

語句;

}while(條件表達(dá)式)

當(dāng)條件表達(dá)式為非零時(shí),繼續(xù)執(zhí)行循環(huán)體,直到條件表達(dá)式為零時(shí)退出循環(huán)。

24.s%10*s1+t

25.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]

26.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡單來說就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。

27.20020,0解析:在主函數(shù)中首先定義了三個(gè)整型變量x、y、t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號(hào)內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句x=Y;Y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。

28.自然連接自然連接解析:在關(guān)系運(yùn)算中,自然連接運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

29.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。

30.1a61a6解析:對(duì)于指針變量的運(yùn)算,就是對(duì)地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動(dòng)9個(gè)位置也就是移動(dòng)18個(gè)字節(jié)。注意,本題是以十六進(jìn)制輸出的。

31.有效性測(cè)試有效性測(cè)試

32.11解析:運(yùn)算符的優(yōu)先級(jí)次序由高到底是!,算術(shù)運(yùn)算符,&&,||。先運(yùn)算!(x=y),由于x=3非零,則表達(dá)式!(x=y)的值為0。再運(yùn)算x+z,x+z=3+4=7,非零則運(yùn)算y-z,y-z=3-4=-1,非零則表達(dá)式x+z&&y-z的值為1。0||1=0,則表達(dá)式!(x=y)||x+z&&y-z的值是1。

33.8080解析:數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長度為最大成員的長度,即單精度數(shù)組的長度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長度為5×16=80,所以最后輸出的s的值為80。

34.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時(shí)c去掉多加的11,即為1~10之間的奇數(shù)之和。

35.對(duì)象對(duì)象解析:將屬性、操作相似的對(duì)象歸為類,也就是說,類是具有共同屬性、共同方法的對(duì)象的集合。

36.*(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]。

37.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個(gè)條件,表示三個(gè)條件都要滿足。

38.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測(cè)試。測(cè)試一般有兩種方法:黑盒測(cè)試和白盒測(cè)試。黑盒測(cè)試不考慮程序的內(nèi)部邏輯結(jié)構(gòu)和處理過程,只著眼于程序的外部特性。用黑盒測(cè)試來發(fā)現(xiàn)程序中的錯(cuò)誤,必須用所有可能的輸入數(shù)據(jù)來檢查程序能否都能產(chǎn)生正確的輸出。白盒測(cè)試是在了解程序內(nèi)部結(jié)構(gòu)和處理過程的基礎(chǔ)上,對(duì)程序的所有路徑進(jìn)行測(cè)試,檢查路徑是否都能按預(yù)定要求正確工作。因此,劃線處應(yīng)填入“白盒(箱)”或“WhiteBox”。

39.自頂向下自頂向下解析:在程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對(duì)復(fù)雜的問題,應(yīng)該設(shè)計(jì)一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。

40.(ch=getchar())!='@'fclose(fp)。(ch=getchar())!='@',fclose(fp)。解析:表達(dá)式z-=x<y?x++:++y相當(dāng)于先執(zhí)行++y,再執(zhí)行z-=x<y?x:y,最后執(zhí)行x++,其中z-=x<y?x:y等價(jià)于z=z-(x<y?x:y),由于x值為3,y值為3,x<y不成立,返回y的值,z-y的值為-2,賦給z。

41.C解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個(gè)case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個(gè)k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時(shí),從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當(dāng)i=2時(shí),從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當(dāng)i=3時(shí)退出循環(huán).故最后的輸出為another、number和number,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

42.A解析:在C語言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間,函數(shù)調(diào)用時(shí)返回的地址和自動(dòng)類局部變量等存放在動(dòng)態(tài)存儲(chǔ)區(qū)域中。auto變量和register變量都屬于自動(dòng)類局部變量,因此選項(xiàng)A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。

43.B解析:本題考查的是一維數(shù)組的定義及初始化。定義并初始化一維數(shù)組的一般形式如下:

類型名數(shù)組名[常量表達(dá)式]={初始化列表};

當(dāng)使用初始化列表初始化數(shù)組時(shí),需要注意以下幾點(diǎn):初始化列表項(xiàng)的個(gè)數(shù)必須小于等于常量表達(dá)式的值,因此選項(xiàng)A是錯(cuò)誤的;常量表達(dá)式可以省略,但不能省略其外面的中括號(hào),因此選項(xiàng)C是錯(cuò)誤的;特殊的,當(dāng)類型名為char時(shí),{初始化列表}可以用一個(gè)字符串常量來代替,由于字符串常量必須以'\\0',結(jié)尾,所以此時(shí)的初始化列表項(xiàng)的個(gè)數(shù)是字符串常量的長度加1,選項(xiàng)D的類型是int,使用字符串常量來初始化數(shù)組是錯(cuò)誤的。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

44.C解析:在定義字符數(shù)組時(shí),可以用一個(gè)字符串作為初值,對(duì)數(shù)組進(jìn)行初始化。要注意的是,數(shù)組array的長度不是5,而是6,因?yàn)橄到y(tǒng)將自動(dòng)在字符串常量的后面加上一個(gè)'\\0',因此,題干中的初始化語句與chararray[]={'C','h','i','n','9','\\0'};等價(jià)。

45.A解析:語句p=s將指針變量p指向字符數(shù)組s,第一次輸出時(shí),由于++和*為同一優(yōu)先級(jí),而結(jié)合方向?yàn)樽杂蚁蜃?,所以?p++相于*(p++)。但又因?yàn)椤?+”在p的右側(cè),所以,先輸出*p,得到s[0]的值,然后P++,P指向s[1],故第二次輸出時(shí),輸出s[1]的值,所以輸出結(jié)果為15。

46.A解析:深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn),滿二叉樹中葉子結(jié)點(diǎn)的個(gè)數(shù)為2m-1個(gè)。本題中,26-1=25=32。

47.A

48.C解析:本題考查“邏輯或”運(yùn)算的特例。本題中執(zhí)行語句k=(n=b>a)||(m=a<b)時(shí),首先計(jì)算表達(dá)式(n=b>a)||(m=a<b)的值,因b=2,a=1,所以b>a成立,即得n=1,故表達(dá)式(n=b>a)||(m=a<b)的值為真,不再執(zhí)行表達(dá)式m=a<b,故執(zhí)行完表達(dá)式k=(n=b2>a)||(m=a<b)后,n=1、m=0、k=1。

49.B解析:選項(xiàng)A和C一望而知其錯(cuò);對(duì)于表達(dá)式a=a+7=c+b(答案D),是先執(zhí)行賦值表達(dá)式a+7=c+b,再把這個(gè)表達(dá)式的值賦給a,顯然,表達(dá)式a+7=c+b非法,因?yàn)橘x值表達(dá)式的左側(cè)不能為常量或表達(dá)式。

50.D解析:本題考查數(shù)組的兩個(gè)知識(shí)點(diǎn):①在C語言中,數(shù)組元素的個(gè)數(shù)是確定的,不允許隨機(jī)變動(dòng),數(shù)組定義好之后,它所能容納的元素的個(gè)數(shù)也就確定了;②同一個(gè)數(shù)組中所有元素的類型是一樣的。

51.A解析:p是指向結(jié)構(gòu)aa的結(jié)構(gòu)指針,++(p->x)是對(duì)p的x成員的值進(jìn)行加1。p=aa使得p指向aa的首地址,p->x的值為50,那么++(p->X)就等于51。

52.B解析:字符串常量是由雙引號(hào)括起來的一串字符,其中的雙引號(hào)不可缺少。由此可知,選項(xiàng)A)、C)、D)都是含法的字符串常量,而選B)是一個(gè)字符常量。

53.C解析:函數(shù)swap()實(shí)現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。

54.D解析:本題考核的知識(shí)點(diǎn)是在自加運(yùn)算符的運(yùn)算對(duì)象。自加運(yùn)算對(duì)象可以是整型變量也可以是實(shí)型變量,但不能是表達(dá)式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對(duì)d進(jìn)行自加運(yùn)算.故選項(xiàng)D是個(gè)不正確的語句,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

55.A

56.BB?!窘馕觥砍绦虻娜N基本控制結(jié)構(gòu)包括:順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)就足以表達(dá)出各種其他形式的結(jié)構(gòu)。

57.D

58.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。

59.D解析:參加運(yùn)算的數(shù)據(jù)類型不同,要轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)類型,double在數(shù)據(jù)類型轉(zhuǎn)換中的級(jí)別最高,其他數(shù)據(jù)類型都要轉(zhuǎn)化為double,因此表達(dá)式值的類型為double。

60.A

61.C注:數(shù)據(jù)項(xiàng)不可再分割

62.A一個(gè)函數(shù)可以有多個(gè)return語句,所以選擇A)。

63.A

64.B主函數(shù)中首先定義了一個(gè)3行2列的數(shù)組a,初始時(shí)各元素的值為0。定義了一個(gè)指向數(shù)組的指針ptr[2],并用該指針指向數(shù)組a,因?yàn)樵撝羔槥橹赶蛴?個(gè)元素的數(shù)組的指針,故只能指向數(shù)組a的前2行,雖然在第一個(gè)for語句中有語句ptr=a+2,指向數(shù)組a的第3行,并對(duì)該指針?biāo)傅臄?shù)組賦值,實(shí)際上這條語句是無效的,超過了指針ptr的定義范圍。對(duì)指針輸入1,2,3時(shí),只有1和2有效,通過指針ptr只能更改數(shù)組的前2行元素的數(shù)據(jù)。ptr=a指向a[0],即第1行的起始地址。ptr=a+1指向a[1],即第2行的起始地址。

后面的2個(gè)for循環(huán)是將數(shù)組a進(jìn)行輸出,最后結(jié)果為

10

20

00

65.C解析:選項(xiàng)A中兩個(gè)變量的定義應(yīng)當(dāng)以逗號(hào)隔開;選項(xiàng)B中a和b應(yīng)當(dāng)分開賦值;選項(xiàng)D中變量類型不相匹配,b應(yīng)當(dāng)是指針

溫馨提示

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