2021-2022年浙江省湖州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第1頁
2021-2022年浙江省湖州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第2頁
2021-2022年浙江省湖州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第3頁
2021-2022年浙江省湖州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第4頁
2021-2022年浙江省湖州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年浙江省湖州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列描述中正確的是()。

A.軟件工程只是解決軟件項(xiàng)目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題

2.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯(cuò)誤的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

3.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個(gè)出棧序列是______。

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

4.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

5.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

6.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2||c--!=3) printf(“%d,%d,%d\n”,a,b,c); elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序的運(yùn)行結(jié)果是()。

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

7.以下程序中,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ù)

8.有以下程序執(zhí)行后的輸出結(jié)果是()。A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

9.在下面的一維數(shù)組定義中,哪一個(gè)有語法錯(cuò)誤()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];

10.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilimum=1001<回車>后,name的值為()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

11.假設(shè)下圖中每個(gè)正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14

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

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

A.1B.4C.9D.0

13.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

14.以下敘述正確的是

A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語句

15.下面敘述中錯(cuò)誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤

B.對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟

C.程序調(diào)試通常也稱為Debug

D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性

16.設(shè)有定義“intx[2][3];”,則以下選項(xiàng)中不能表示數(shù)組元素x[0][1]的是()。

A.*(*x+1)B.*(*(x+1)C.(*x)[1]D.*(&x[0][0]+1)

17.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

18.有以下語句:intb;charc[10];,則正確的輸入語句是______。

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

19.以下程序的輸出結(jié)果是()。main{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

20.設(shè)無向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點(diǎn)a出發(fā)進(jìn)行深度優(yōu)先遍歷可以得到的一種頂點(diǎn)序列為()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

二、2.填空題(20題)21.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)g,結(jié)果是______。

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]=i;

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

}

23.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。

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

charb[]="ABCD";

main()

{

charb[30];

strcpy(&b[0],"GH");

strcpy(&b[1],"GH");

strcpy(&b[2],"GH");

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

}

25.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

26.若用0至9之間不同的三個(gè)數(shù)構(gòu)成一個(gè)三位數(shù),下面程序?qū)⒔y(tǒng)計(jì)出共有多少種方法。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j,k,count=0;

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

for(j=0;i<=9;j++)

if(【】)continue;

elsefor(k=0;k<=9;k++)

if(【】)count++;

printf("%d",count);}

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

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

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

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

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

29.設(shè)a、b、c為整形數(shù),且a=2,b=3,c=4則執(zhí)行完以下語句后,a的值是【】。

a*=16+(b++)-(++c);

30.以下程序運(yùn)行后的輸出結(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));

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

如:dp=x*-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

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

}

32.若輸入tc,則程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{charstr[40];

fscanf(stdin,"%s",str);

fprintf(stdout,"%s\n",str);

}

33.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對(duì)象的______性來實(shí)現(xiàn)的。

34.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

35.若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

36.深度為5的滿二叉樹有()個(gè)葉子節(jié)點(diǎn)。

37.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。

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

intt(intx,inty,ntcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

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

main()

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

d=(a>b>c);

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

}

40.在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為【】。

三、1.選擇題(20題)41.若有以下程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序的輸出結(jié)果是()。

A.6B.8C.4D.2

42.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

43.下列程序執(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

44.下列敘述中正確的是()。A.實(shí)體集之間一對(duì)一的聯(lián)系實(shí)際上就是一一對(duì)應(yīng)的關(guān)系

B.關(guān)系模型只能處理實(shí)體集之間一對(duì)一的聯(lián)系

C.關(guān)系模型屬于格式化模型

D.以上三種說法都不對(duì)

45.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為______。

A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上3個(gè)都是

46.假定w、x、y、m均為int型變量,則執(zhí)行下列的語句后,m的值是()。w=6,x=4,y=3;m=(w<x)?w:x;m=(m<y)?m:y;

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

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

if(a<B)

if(c==D)y=0;

elsey=1;

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

A.

B.

C.

D.

48.有以下程序:#include<stdio.h>main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(pa+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是()。

A.n/NoYes/NoB./NoYesC./NOYes/NoD.n/NoYes

49.下列程序的輸出結(jié)果是______。#include<stdio.h>f(char8s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}

A.3B.6C.8D.0

50.有以下程序:#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=0);elseif(x!=5)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。

A.不等于5的整數(shù)B.大于0且不等5的整數(shù)C.大于0或等于5的整數(shù)D.小于5的整數(shù)

51.軟件生存周期是指______這一過程。

A.軟件系統(tǒng)投入運(yùn)行到軟件系統(tǒng)被廢棄

B.軟件系統(tǒng)投入試運(yùn)行到軟件系統(tǒng)被廢棄

C.軟件系統(tǒng)開始研制到軟件系統(tǒng)投入運(yùn)行

D.軟件系統(tǒng)開始研制到軟件系統(tǒng)被廢棄

52.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的查詢及增、刪、改等操作的是

A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

53.以下選項(xiàng)中合法的用戶標(biāo)識(shí)符是A.longB._2TestC.3DmaxD.A.dat

54.現(xiàn)有如下程序段#include"stdio.h"#include"string.h"main(){chara[]="acfijk";/*這里是有序的字符序列*/charb[]="befijklqswz";/*這里是有序的字符序列*/charc[80],*p;inti=0,j=0,k=0;while(a[i]!二'\0'&&b[j]!='\0'){if(a[i]<b[j])c[k++]=a[i++];elsei

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

55.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n"++*x,++*y,*(z++));}inta=10,b=40,c=20main(){prt(&a,&b&C);prt(&a,&b,&C)

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,41

D.11,41,2112,42,22

56.在C語言程序中()

A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

C.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套

D.函數(shù)的定義和函數(shù)的調(diào)用均可嵌套

57.下面關(guān)于完全二叉樹的敘述中,錯(cuò)誤的是______。

A.除了最后—層外,每—層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

B.可能缺少若干個(gè)左右葉子結(jié)點(diǎn)

C.完全二叉樹—般不是滿二叉樹

D.具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1

58.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0',j+=2){s=p[i][j]-'0';printf("%d",s);)}

A.6357B.6135C.1357D.691357

59.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為______。

A.真B.假C.0D.1

60.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價(jià)的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

四、選擇題(20題)61.

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

w=k:

LB:if(w==0)gotoLE;

W--:

printf("*")

gotoLB;

LE;

則不能與上面程序段等價(jià)的循環(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);

62.以下關(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)決定

63.在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()。

A)%B)/

C)<D)!

64.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

65.

66.

67.

68.數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

A.加工B.控制流C.數(shù)據(jù)存儲(chǔ)D.數(shù)據(jù)流

69.若有下面的程序段

#include"stdio.h"

main()

{inti=6;

while(i--)

printf("%d",--i);

printf("\n");

}

那么程序的輸出結(jié)果為

A.531B.420

C.654321D.死循環(huán)

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

A.軟件工程只是解決軟件項(xiàng)目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題

71.

72.(7)在軟件開發(fā)中,下面任務(wù)不屬于設(shè)計(jì)階段的是()

A.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

B.給出系統(tǒng)模塊結(jié)構(gòu)

C.定義模塊算法

D.定義需求并建立系統(tǒng)模型

73.有以下程序

74.以下關(guān)于retllm語句的敘述中正確的是()。

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

B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語句

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

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

75.設(shè)有以下語句

76.

77.下列關(guān)于棧的描述錯(cuò)誤的是()。

A.棧按“先進(jìn)后出”組織數(shù)據(jù)B.棧是特殊的線性表,只能在一端插入或刪除數(shù)據(jù)C.棧具有記憶功能D.棧只能順序存儲(chǔ)

78.為了提高軟件的獨(dú)立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

79.HTML是一種標(biāo)記語言,它是由()解釋執(zhí)行的。

A.不需要解釋B.WindowsC.瀏覽器D.標(biāo)記語言處理軟件

80.

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

main

{intx=0.5;charz=a;

printf("%d\n",(x&1)&&(z<2));}

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:根據(jù)輸人的三條邊長(整形),判斷能否構(gòu)成三角形;構(gòu)成的是等邊三角形還是等腰三角形。若能構(gòu)成等邊三角形函數(shù),返回3;若能構(gòu)成等腰三角形函數(shù),返回2;若構(gòu)成=三角形函數(shù),返回l;若不能構(gòu)成三角形函數(shù)返回0。請(qǐng)修改函數(shù)fun()中的錯(cuò)誤,得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),對(duì)長度為9個(gè)字符的字符串,除首、尾字符外,將其余7個(gè)字符按ASCⅡ碼值降序排列。例如,原來的字符串為HabcdefA,則排序后輸出為HfedcbaA。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()中填入所編寫的若干語句。試題程序:

參考答案

1.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項(xiàng)目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項(xiàng)C正確。

2.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因?yàn)椤?”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯(cuò)誤的。

3.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。

4.D解析:本題中首先定義一個(gè)字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個(gè)字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時(shí)輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時(shí)輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時(shí)輸出的p所指的字符串的值為D。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

5.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點(diǎn),然后按左右順序遍歷子結(jié)點(diǎn);②中序首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對(duì)其進(jìn)行前序遍歷,正確答案選項(xiàng)為D。

6.Belse總是和最近的if配對(duì)。進(jìn)入第1個(gè)if語句進(jìn)行條件判斷時(shí),因?yàn)槭沁x輯與操作,需要兩邊運(yùn)算對(duì)象的值均為非零值才為真,所以需要逐個(gè)執(zhí)行判斷。結(jié)果為1,進(jìn)入第2個(gè)if語句進(jìn)行條件判斷。因?yàn)椤癰!=2”條件成立,所以整個(gè)條件表達(dá)式的值為真,不再執(zhí)行邏輯或的第2個(gè)運(yùn)算對(duì)象“(c--!=3)”變量c的值不變,也不再執(zhí)行第1個(gè)else語句。輸出a的值1,b的值3,c的值3。故本題答案為B選項(xiàng)。

7.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后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號(hào)內(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為所選。

8.B

9.C

10.A考查簡單的C程序。由題可知,程序中輸入name的值為Lili,所以輸出的必定是Lili,答案選擇A。

11.C

12.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運(yùn)算。本題中宏運(yùn)算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

13.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。

14.B

15.A軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計(jì)劃等文件。故答案為A選項(xiàng)。

16.B選項(xiàng)A中*x等價(jià)于x[0],*x+1等價(jià)于x[0]+1,*(x[0]+1)等價(jià)于x[0][1],正確;選項(xiàng)B中,*(x+1)等價(jià)于x[1],*(*(x+1))等價(jià)于x[1][0],錯(cuò)誤;選項(xiàng)C中,*x等價(jià)于x[0],(*x)[1]等價(jià)于x[0][1],正確;選項(xiàng)D中,&x[0][0]等價(jià)于x[0],&[0][0]+1等價(jià)于x[0]+1,*(x[0]+1)等價(jià)于x[0][1],正確。故本題答案為B選項(xiàng)。

17.C

18.B解析:b是整型數(shù),在輸人語句中要加取地址符,而c是數(shù)組名,本身就是數(shù)組的首地址,因此不用加取地址符。

19.D當(dāng)k=1時(shí),循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當(dāng)k=2時(shí),循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當(dāng)k=3時(shí),循環(huán)不成立,退出。

20.B

21.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對(duì)字符數(shù)組s2和字符數(shù)組s1進(jìn)行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。

22.66解析:本題第1個(gè)for循環(huán)是為數(shù)組arr元素賦初值。第2個(gè)for循環(huán)是分別用i=0,1,2,3給數(shù)組元素arr[0]、arr[1]、arr[2]、arr[3]賦值,再累加到變量k中,k=0+1+2+3=6。

23.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。

24.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對(duì)于一維數(shù)紐變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復(fù)制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復(fù)制到數(shù)組b中從第二個(gè)元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。

25.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

26.i==jk!i&&k!ji==j\r\nk!i&&k!j解析:本題用雙重for循環(huán)寫了一段0~9之間不同的3個(gè)數(shù)構(gòu)成一個(gè)三位數(shù)的程序,因?yàn)橐笕粩?shù)各個(gè)位數(shù)的數(shù)不能相同,所以第一個(gè)空if語句的條件應(yīng)為i==j,即當(dāng)兩個(gè)位數(shù)上的數(shù)相同的時(shí)候,不再執(zhí)行下面的操作,轉(zhuǎn)去執(zhí)行for循環(huán)的下一次循環(huán)。第二個(gè)空,需要判斷第三位上的數(shù)不能與其他兩位的數(shù)相同。

27.1-21,-2解析:題中外層while循環(huán)的循環(huán)條件是y--!=-1,即y>=0;內(nèi)層do…while循環(huán)的循環(huán)條件是y--即y-->0,y>=1。注意:break和continue語句在循體中的作用。

28.無定值無定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。

29.28

30.gae

31.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時(shí)進(jìn)行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

32.tc

33.封裝封裝

34.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

35.1010解析:此題考查逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的值是最后一個(gè)表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

36.1616解析:在滿二叉樹中,每一層上的節(jié)點(diǎn)數(shù)都達(dá)到最大值,在第k層上有2[k-1]個(gè)節(jié)點(diǎn),且深度為m的滿二叉樹有2[m]-1個(gè)節(jié)點(diǎn),深度為5的滿二叉樹葉子節(jié)點(diǎn)數(shù)為2[5-1]=16。

37.19

38.5656解析:本題中a,b,c,d是實(shí)參,x,y,cp,dp是形參。C語言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

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

d=(a>b>c)

d=(5>4>3)

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

40.log2n

41.D解析:在C語言中,數(shù)組元素下標(biāo)是從0開始的;指針變量p指向數(shù)組的首地址。for循環(huán)語句中,指針變量p始終指向數(shù)組的首地址,因而執(zhí)行循環(huán)賦值語句后數(shù)組各元素的值均變?yōu)?。

42.C解析:A、D選項(xiàng)是關(guān)系運(yùn)算表達(dá)式,在C語言中,只要關(guān)系運(yùn)算符兩邊是合法的表達(dá)式就可以了。C選項(xiàng)中,%只能對(duì)整型進(jìn)行運(yùn)算,其中對(duì)f進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,但是轉(zhuǎn)換的表達(dá)式錯(cuò)了,應(yīng)為:(int)(f)。

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

44.D解析:實(shí)體集之間一對(duì)一的聯(lián)系不一定是一一對(duì)應(yīng)的關(guān)系。例如,在一個(gè)教室中,實(shí)體集“學(xué)生”與實(shí)體集“座位”之間是一對(duì)一的聯(lián)系。因?yàn)閷?shí)體集“學(xué)生”中的每一個(gè)學(xué)生最多與實(shí)體集“座位”中的一個(gè)座位有聯(lián)系(學(xué)生坐在該座位上);并且,實(shí)體集“座位”中中的每一個(gè)座位也最多與實(shí)體集“學(xué)生”中的一個(gè)學(xué)生有聯(lián)系(座位上坐著該學(xué)生)。但該教室中的學(xué)生與座位之間不一定是一一對(duì)應(yīng)的關(guān)系,因?yàn)橛锌赡苣承┳皇强盏?,沒有學(xué)生去坐。因此,選項(xiàng)A)中的說法是錯(cuò)誤的。在關(guān)系模型中,由于使用表格數(shù)據(jù)來表示實(shí)體之間的聯(lián)系,因此,可以直接描述多對(duì)多的實(shí)體聯(lián)系。因此,選項(xiàng)B)中的說法也是錯(cuò)誤的。關(guān)系模型是與格式化模型完全不同的數(shù)據(jù)模型,它與層次模型、網(wǎng)狀模型相比有著本質(zhì)的區(qū)別。關(guān)系模型是用表格數(shù)據(jù)來表示實(shí)體本身及其相互之間的聯(lián)系,它是建立在數(shù)學(xué)理論基礎(chǔ)上的。因此,選項(xiàng)C)中的說法也是錯(cuò)誤的。

45.C解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,如家族結(jié)構(gòu)、行政組織機(jī)構(gòu)等,它們自頂向下、層次分明。由第一章樹的知識(shí),知道任一樹結(jié)構(gòu)均有下列特性:(1)每棵樹有且僅有一個(gè)無雙親結(jié)點(diǎn),稱為根(root)。(2)樹中除根外所有結(jié)點(diǎn)有且僅有一個(gè)雙親。因此,樹結(jié)構(gòu)是受到一定限制的,從E-R模型觀點(diǎn)看,它對(duì)于聯(lián)系也加上了許多限制。

46.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時(shí),其值等于表達(dá)式b的值,當(dāng)a為假時(shí),其值等于表達(dá)式c的值。第一個(gè)表達(dá)式:w=6<x=4為假,所以返回x的值,即m=x=4;第二個(gè)表達(dá)式:m=4<y=3為假,所以返回y的值,即m=y=3。

47.C解析:語句if(c==d)y=0;elsey=1;是if(a<b)語句的一個(gè)子句。所以整個(gè)C語句表達(dá)式的意思是:在a<b的情況下,如果c=d則y=0,否則y=1。所以,選項(xiàng)C)為正確答案。

48.B用puts函數(shù)輸出的字符串中可以包含轉(zhuǎn)義字符,遇到轉(zhuǎn)義字符,自動(dòng)跳過去。例如本題中ps+4指的是'/'的地址,并不是'\\n'的地址,所以puts(ps+4)輸出的是/NO。C規(guī)定以字符'\\0',作為字符串結(jié)束標(biāo)志,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。本題執(zhí)行*(Ps+4)=0之后,再執(zhí)行puts(s),就相當(dāng)于輸出字符串Yes后遇到結(jié)束標(biāo)志。

49.B

50.B解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時(shí)將其打印出來。

51.D解析:在軟件工程學(xué)中,一個(gè)軟件系統(tǒng)從開始研制到最終被廢棄這個(gè)過程被叫做軟件系統(tǒng)的生命周期。

52.C【解析】在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)操縱語言負(fù)責(zé)數(shù)據(jù)的查詢及增、刪、改等操作。故答案為C。

53.B解析:本題考查C語言標(biāo)識(shí)符的命名.在C語言中,合法的標(biāo)識(shí)符由字母,數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標(biāo)識(shí)符,故選頃A錯(cuò)誤.3Draax開頭的第一個(gè)為數(shù)字,而C語言規(guī)定,第一個(gè)字符必須為字母或者下劃線,故選項(xiàng)C錯(cuò)誤;A.dat中的字符“.”不符合C語言中用戶標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成的規(guī)定,故選項(xiàng)D錯(cuò)誤.只有迭項(xiàng)B正確。

54.D解析:這個(gè)題目的功能是實(shí)現(xiàn)兩個(gè)有序字符串,合并成一個(gè)新的有序的字符串。

55.B解析:由于實(shí)參傳送的是變量的地址,所以對(duì)形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對(duì)實(shí)參內(nèi)容的改變。

56.B

57.B解析:滿二叉樹指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后—層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹。

58.C解析:本題先將指針p指向二維數(shù)組ch[2][5],相當(dāng)于p[0]='1234',p[1]='5678',通過雙重for循環(huán),是要將p中的字符隔一個(gè)輸出一個(gè),通過s=p[i][j]-\'0\'這條語句是將所要輸出的字符轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù)。

59.D解析:a&&b的值為true,c<'B'的值也為true,所以(a&&b)&&(c<'B')的值為true。但x是int型變量,所以(a&&b)&&(c<'B')的值最后要從bool型轉(zhuǎn)換為int型賦給x。這樣x的值應(yīng)為1。

60.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時(shí),求出“表達(dá)式3”的值,此時(shí)“表達(dá)式3”的值就是整個(gè)條件表達(dá)式的值。對(duì)于本題來說,當(dāng)表達(dá)式EXP為非0值時(shí)條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時(shí),執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。

61.C

\n當(dāng)循環(huán)結(jié)束時(shí),w的值應(yīng)為-1,而其他選項(xiàng)中w的值為0,故選擇c選項(xiàng)。

\n

62.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語

溫馨提示

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