2022-2023年河北省張家口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2022-2023年河北省張家口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2022-2023年河北省張家口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2022-2023年河北省張家口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2022-2023年河北省張家口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年河北省張家口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。

A.edcbaB.decbaC.dceabD.abcde

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

A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)

C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)

D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)

4.以下哪種操作最適合先進(jìn)行排序處理()

A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

5.

6.

7.設(shè)串s1='ABCDEFG',s2='PQRST',函數(shù)StrCat(x,y)返回x和y串的連接串,StrSub(s,i,j)返回串s的從序號i的字符開始的j個(gè)字符組成的子串,StrLen(s)返回串s長度,則StrCat(StrSub(s1,2,StrLen(s2)),StrSub(s1,StrLen(s2),2))的結(jié)果串()。

A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF

8.若有運(yùn)算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(由低至高)的正確排列次序?yàn)?)。

A.*=<<>%sizeof

B.<<*=>%sizeof

C.%=><<sizeof%

D.*=><<%sizeof

9.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

10.

11.

12.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。A.30B.40C.10D.20

13.下列關(guān)于AOE網(wǎng)的敘述中,不正確的是()。

A.關(guān)鍵活動(dòng)不按期完成就會(huì)影響整個(gè)工程的完成時(shí)間

B.任何一個(gè)關(guān)鍵活動(dòng)提前完成,那么整個(gè)工程將會(huì)提前完成

C.所有的關(guān)鍵活動(dòng)提前完成,那么整個(gè)工程將會(huì)提前完成

D.某些關(guān)鍵活動(dòng)提前完成,那么整個(gè)工程將會(huì)提前完成

14.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個(gè)浮點(diǎn)表達(dá)式D.一個(gè)整型表達(dá)式

15.以下程序段中,輸出信息不能正確反映變量大小關(guān)系的是()。

A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);

B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);

C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);

D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);

16.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序運(yùn)行時(shí)從鍵盤輸入9<回車>,則輸出結(jié)果是()。A.10B.11C.9D.8

17.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;執(zhí)行該程序段后,k的值是()。

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

18.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.13442B.13431C.01234D.02431

19.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

20.已知char**s,下面正確的語句是()。A.A.s="ABCDEF";

B.*s="ABCDEF";

C.**s="ABCDEF";

D.*s='A';

二、2.填空題(20題)21.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【】的聯(lián)系。

22.若有以下程序:

intf(intx,inty)

{

return(y-x)*x;

}

main()

{

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

d=f(f(3,4),f(3,5));

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

}

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

23.有以下程序:

main()

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

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

}

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

24.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。

25.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】=='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

26.有以下程序:

#include<stdio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序運(yùn)行時(shí),如果從鍵盤輸入Y?N?<回車>,則輸出結(jié)果為【】。

27.以下程序的功能是:從鍵盤上輸入若干個(gè)學(xué)生的成績,統(tǒng)計(jì)計(jì)算出平均成績,并輸出低于平均分的學(xué)生成績,用輸入負(fù)數(shù)結(jié)束輸入。

main()

{floatx[1000],sum=0,ave,a;

intn=0,i;

printf("Entermark:\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:\n");

printf('ave=%f\n",ave);

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

if(【】)printf("%t\n",x[i]);

}

28.二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。

29.有以下程序:

fun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

main()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

}

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

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

#include<stdio.h>

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

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

#inelude<stdio.h>

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

}

main()

{intaa[3]={1,2,3},s;

s=f(&aa[0],3);printf("%d\n",s);

}

32.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

33.軟件需求規(guī)格說明書應(yīng)具有完整性、無歧義性、正確性、可驗(yàn)證性、可修改性等特性,其中最重要的是【】。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

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

#include<stdio.h>

main()

{charb[]="Helloyou";

b[5]=0;

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

}

37.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。

x=(y=4)+(z=2)

38.有以下程序:

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n",*p,*q,a,b);

}

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

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

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

三、1.選擇題(20題)41.下列敘述中正確的是()。

A.線性鏈表的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲(chǔ)在其他元素的前面

C.線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存儲(chǔ)在其他元素的前面

D.線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存儲(chǔ)順序也是任意的

42.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進(jìn)行理解和交流

B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認(rèn)測試和驗(yàn)收的依據(jù)

D.便于開發(fā)人員進(jìn)行需求分析

43.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止

D.以上三種描述都不對

44.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有語法錯(cuò)誤D.lang

45.有定義語句: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);

46.設(shè)有如下程序#include<atdio.h>main(){int**k,*j,i=100;j=&i,k=&j;printf("%d\n",**k);}上述程序的輸出結(jié)果是______。

A.運(yùn)行錯(cuò)誤B.100C.i的地址D.i的地址

47.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

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

48.為了避免流程圖在描述程序邏輯時(shí)的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為______。

A.PAD圖B.N-S圖C.結(jié)構(gòu)圖D.數(shù)據(jù)流圖

49.運(yùn)行下面程序時(shí),從鍵盤輸入字母H,則輸出結(jié)果是

#include<stdio.h>

main()

{charch;

ch=getchar();

switch(ch)

{case′H′:printf("Hello!\n");

case′G′:printf("Goodmorning!\n");

default:printf("Bye_Bye!\n");

}

}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmorning!Bye_Bye!

D.Hello!Bye_Bye!

50.有以下程序:voidf(intv,intw){intt;t=v;V=W;W=t;}main(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d<%d\n",x,y,Z);}執(zhí)行后輸出結(jié)果是()。

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

51.6-5/2+1.2+5%2的值是()。

A.4.3B.4.8C.3.3D.3.8

52.若有定義:iht*p[3];,則以下敘述中正確的是

A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針

B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針

C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素

D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素

53.設(shè)有定義:char*c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是()。

A.charstr[]="string";c=str;

B.scanf("%s",C);

C.c=getchar();

D.charstr[]="string";strcpy("C,str")

54.以下程序的輸出結(jié)果是______。#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}

A.ZhangB.ZhaoC.WangD.18

55.在面向?qū)ο蠓椒ㄖ?,一個(gè)對象請求另一個(gè)對象為其服務(wù)的方式是通過發(fā)送()。

A.調(diào)用語句B.命令C.N令D.消息

56.以下程序中函數(shù)sort的功能是對a所指數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;i<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf('%d,",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.1,2,3,8,7,6,5,4,9,10,

D.1,2,10,9,8,7,6,5,4,3,

57.以下不能定義為用戶標(biāo)識符是

A.MainB._0C._intD.sizeof

58.下面程序段的輸出結(jié)果是()。chara[]="lanuage",*p;p=a;while(*P!='u'){printf("%c",*p-32);P++;}

A.LANGUAGEB.languageC.LAND.langUAGE

59.下列不屬于軟件工程3個(gè)要素的是()

A.工具B.過程C.方法D.環(huán)境

60.閱讀下面程序,則程序段的功能是#include"stdio.h"main(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){t=c[i];j=i-1;while(j>=0&&t>c[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i<7;i++)printf("%d",c[i]);putchar('\n');}

A.對數(shù)組元素的升序排列B.對數(shù)組元素的降序排列C.對數(shù)組元素的倒序排列D.對數(shù)組元素的隨機(jī)排列

四、選擇題(20題)61.以下程序段完全正確的是()。

A.int*P;scanf("%d",&p);

B.int*P;scanf("%d",p);

C.intk,*p=&k;scanf("%d",p);

D.intk,*p;*p=&k;scanf("%d¨,p);

62.有以下程序段

main()

{charx=040;

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

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

A.100B.80C.64D.32

63.

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

A.順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的

B.順序存儲(chǔ)結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對非線性結(jié)構(gòu)

C.順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表

D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間

65.下列關(guān)于棧敘述正確的是()。

A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠(yuǎn)不能被刪除D.棧底元素最先被刪除

66.

67.

68.對于循環(huán)隊(duì)列,下列敘述中正確的是()。

A.隊(duì)頭指針是固定不變的

B.隊(duì)頭指針一定大于隊(duì)尾指針

C.隊(duì)頭指針一定小于隊(duì)尾指針

D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

69.以下有4組用戶標(biāo)識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

70.

71.

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

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

73.

74.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l

75.

76.有以下程序:

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

A.1,2,3,4,5,6,7,8,9,0,

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,1,

D.0,1,2,3,4,5,6,7,8,9,

77.

78.常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

79.

80.(68)下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個(gè)DBF文件

B.數(shù)據(jù)庫是一個(gè)關(guān)系

C.數(shù)據(jù)庫是一組文件

D.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是根據(jù)整型形參n,計(jì)算如下公式的值:

Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)

例如,n中的值為l0,則應(yīng)輸出0.817962。

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdiOh>

doubleproc(intn)

{

doubley=1.0;

//****found****

intJ=1;.

inti;

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

{

j=-l*j;//****found****

y+=1/(i*i);

}

return(y);

}

voidmain

{

intn=10:

system("CLS"):

printf("\nTheresultis%1f\n",proc(n));

}

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從p到n-1(p≤n-1)的數(shù)組元素平移到數(shù)組的前面。例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,P的值為4。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5,6,7,8,9,10.11,12,13,14,1,2,3,4。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C

2.C

3.B本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。

4.C

5.A

6.B

7.D

8.D解析:本題主要考查算術(shù)運(yùn)算的優(yōu)先級。順序如下:

[*]

注:*=、>、<<、%、sizeof的優(yōu)先級依次遞增。

9.D在C語言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類型。整型常量和實(shí)型常量又稱數(shù)值型常量。基本整型常量只能用數(shù)字表示,不帶小數(shù)點(diǎn),例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個(gè)字母l(L的小寫)或L;實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,例如3.14159、-2.71828、0.0等;選項(xiàng)A中字母o不符合要求,選頂B中超出八進(jìn)制的范圍,選項(xiàng)C中e后面的不為整數(shù),因此選頂D是正確的。

10.B

11.B

12.AFor循環(huán)結(jié)束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。

13.B

14.D解析:sizeof(float)是c語言內(nèi)部規(guī)定的用于計(jì)算單精度型變量(float)在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),返回一個(gè)整數(shù)值。

15.A選項(xiàng)A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項(xiàng)A錯(cuò)誤,其他選項(xiàng)都正確。故本題答案為A選項(xiàng)。

16.A本題考查簡單的運(yùn)算符操作.當(dāng)輸入9時(shí),(a++<9)為假,所以執(zhí)行else語句中的printf("%d\n",a--),在執(zhí)行時(shí)此時(shí)a經(jīng)過a++操作a=10,所以答案為A。

17.B解析:因?yàn)閍<b成立,所以條件表達(dá)式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因?yàn)閗=2>c=3不成立,所以條件表達(dá)式k>c?c:k的值等于k的值等于2。把條件表達(dá)式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項(xiàng)B)為正確答案。

18.Bmain函數(shù)中定義包含5個(gè)元素的數(shù)組m,每個(gè)元素都是NODE類型。指針p指向數(shù)組第1個(gè)元素,指針q指向數(shù)組最后一個(gè)元素。while循環(huán)使用p、q從首尾向中間遍歷,遍歷的同時(shí)為各個(gè)元素賦值。所以第1輪循環(huán),i的值為0,先執(zhí)行的值為++i,后執(zhí)行i++的值也為1,m[0].k和m[4].k的值都為1;接著第2輪循環(huán),i的值為2,先執(zhí)行的值為3,后執(zhí)行i++的值也為3,m[l].k和m[3].k的值都為3;第3輪循環(huán),p和q指向的都是m[2]元素,指針相同,循環(huán)結(jié)束,此時(shí)i的值為4,即m[2].k賦值為4。綜上,程序輸出:13431。本題答案為B選項(xiàng)。

19.A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。

20.C

21.一對多(或1∶N)一對多(或1∶N)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

22.99解析:在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給do函數(shù)的第一個(gè)參數(shù)為f(3,4)的返回值,函數(shù)f(3,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價(jià)于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。

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

24.1212解析:本題考查逗號表達(dá)式的運(yùn)算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。

25.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。

26.XX解析:程序是從鍵盤緩沖區(qū)循環(huán)接收字符,并輸出接收到的字符在ASCII碼表中的前一個(gè)字符,直到接收到‘?’為止。

27.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用來存放學(xué)生成績總和的,a是輸入的成績,ave存放平均成績,n既是循環(huán)變量,又表示學(xué)生人數(shù),x[n]保存第n個(gè)學(xué)生的成績。sum用來累加每個(gè)同學(xué)的成績,因此有sum+=a;把新輸入的學(xué)生成績保存在數(shù)組中,因此有x[n]=a;ave是所有同學(xué)的平均成績,因此有ave=sum/n;逐個(gè)把學(xué)生成績和平均成績比較,因此有if(x[i]<ave)。

28.中序中序解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根

29.1212解析:函數(shù)fun的功能是求兩個(gè)數(shù)當(dāng)中的最大值。語句r=fun(fun(x,y),2*z)的執(zhí)行過程為:首先計(jì)算fun(x,y),因x=3、y=8,所以結(jié)果為8;然后計(jì)算fun(8,2,*z),即計(jì)算fun(8,12),所以r=12。

30.99解析:本題考查宏定義與三目運(yùn)算符的綜合應(yīng)用。宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則b+1的值為整個(gè)表達(dá)式的值(應(yīng)注意后面的加1)。

31.66解析:已知aa[3]={1,2,3},n=3,調(diào)用函數(shù)f,n>1成立,執(zhí)行a[0]+f(&a[1],n-1);即1+f(&a[1],2),遞歸調(diào)用函數(shù)f,將a[1]的地址作為參數(shù)傳給數(shù)組a,使數(shù)組a的首地址變?yōu)?a[1],數(shù)組中的元素只有2,3;2傳給n,這時(shí)n=2,n>1仍然成立,繼續(xù)調(diào)用a[0]+f(&a[1],n-1);即執(zhí)行1+2+f(&a[1],1),因?yàn)樯洗芜f歸調(diào)用函數(shù)f后數(shù)組中的元素為2,3,所以此次的a[1]為3,調(diào)用后的a[0]為3。所以最后結(jié)果為1+2+3=6。

32.

33.正確性正確性解析:本題考查軟件工程中需求規(guī)格說明書的評審。衡量需求規(guī)格說明書好壞的標(biāo)準(zhǔn)按重要性次序排列為:正確性、無歧義性、完全性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性。因此,劃線處應(yīng)填入“正確性”。

34.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計(jì)算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計(jì)算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

35.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。

36.HelloHello解析:語句b[5]=0;相當(dāng)于語句b[5]='\\0';且'\\0'為字符串結(jié)束標(biāo)志,輸出時(shí)遇到'\\0'就停止輸出。

37.6

38.87788,7,7,8解析:本題中執(zhí)行語句p=&a和q=&b后,*p=7,*q=8;執(zhí)行完語句r=p,p=q,q=r后,*p=8,*q=7,故答案為8,7,7,8。

39.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

40.封裝封裝

41.DD.【解析】在線性鏈表中,各元素在存儲(chǔ)空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。

42.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個(gè)方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。

43.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都有很緊密的關(guān)系。算法的空間復(fù)雜度是指執(zhí)行該算法需要的內(nèi)存空間,并非算法程序中指令的條數(shù)。算法一般應(yīng)該具有以下4個(gè)特征:可行性、確定性、有窮性和擁有足夠情報(bào)。其中,有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止,否則可能失去實(shí)際意義。

44.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。

第1次for循環(huán),p=a,p指向數(shù)組的第1個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。

45.B解析:scanf函數(shù)的第一個(gè)參數(shù)是格式控制字符串,該字符串中所出現(xiàn)的格式控制符必須與scanf函數(shù)的笫二個(gè)及其后面的參數(shù)一一對應(yīng).本題中四個(gè)選項(xiàng)的格式控制字符串都是'%d%s',其中包括兩個(gè)格式控制符%d和%s,它們分別表示輸入一個(gè)十進(jìn)制整數(shù)和輸入一個(gè)字符串,其對應(yīng)的參數(shù)應(yīng)該分別為一個(gè)整型變量的地址和一個(gè)字符型數(shù)組的首地址。變量的地址可以通過對變量做取地址(&)運(yùn)算來得到,而宇符型數(shù)組的首地址則可以直接通過數(shù)組名來得到。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

46.B解析:j=&i,j的值就是i的地址,8j=100,將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。

47.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲(chǔ)文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。

48.B解析:常見的過程設(shè)計(jì)工具有:程序流程圖、N-S圖、PAD圖和HIPO圖。其

中,為了避免流程圖在描述程序邏輯時(shí)的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流

程圖,通常也把這種圖稱為N-S圖。

注意:其他常用算法描述工具的概念。

49.C解析:本題主要對switch語句進(jìn)行了考查。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時(shí),則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'G'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。

50.C解析:C語言規(guī)定else總是和離它最近的if語句配對。分析可以知道,。函數(shù)f()作用是讓形參v和形參w的值交換。在主函數(shù)中首先定義了3個(gè)變量x、y和z。然后再執(zhí)行下面的if-else語句。由程序可以看出第一個(gè)else和第一個(gè)if搭配,第二個(gè)else和第二個(gè)if搭配。由于調(diào)用函數(shù)時(shí)是進(jìn)行值傳遞的。即將實(shí)參x、y、z傳給形參v和w,以后行參和實(shí)參再無聯(lián)系,故通過if語句調(diào)用f()函數(shù)后,x、y和z的值并沒有改變。因此最后輸出的x、y和z的值為1、3和2,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

51.D

52.B解析:指針數(shù)組也是一種數(shù)組,所有有關(guān)的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲(chǔ)類型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個(gè)長度1的數(shù)組,其中數(shù)組元素為相應(yīng)存儲(chǔ)類型的指針。

53.A在題目的題干中定義了字符指針變量c,在選項(xiàng)A)中,首先定義字符數(shù)組s訂,然后再把字符數(shù)組str的首地址賦給字符指針變量c。所以選項(xiàng)A)是正確的。在選項(xiàng)B)中,應(yīng)改成scanf(”%s”,&c);在選項(xiàng)c)中,getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCIl碼,如出錯(cuò)返回.l,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。即c只能指向一個(gè)字符而不能指向字符串。在選項(xiàng)D)中,strepy函數(shù)只是將sla'字符串中的內(nèi)容賦給c,并沒有使其指向str,所以選項(xiàng)D)是錯(cuò)誤的。

54.B

55.D解析:在面向?qū)ο蠓椒ㄖ?;對象之間通過消息進(jìn)行通信。消息中只包含傳遞者的要求,它告訴接受者需要做哪些處理,但并不指示接受者應(yīng)該怎么完成這些處理,接受者獨(dú)立決定采用什么方式完成所需的處理。

56.C解析:本題中首先定義一個(gè)長度為10的整型數(shù)組,并初始化為“1,2,3,4,5,6,7,8,9,10”,然后調(diào)用排序函數(shù)sort(),對aa[3]開始的5個(gè)元素進(jìn)行從大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化。sort()執(zhí)行完畢后,接著執(zhí)行后面的for語句輸出數(shù)組aa中各個(gè)元素的值,所以輸出為“1,2,3,8,7,6,5,4,9,10”。故4個(gè)選項(xiàng)中C正確。

57.D解析:本題考查的是C語言中的標(biāo)識符與關(guān)鍵字。合法的標(biāo)識符由字母,數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。另外,C語言規(guī)定了一批關(guān)鍵字,它們在程序中都代表著固定的含義,不能另作它用,所以合法的標(biāo)識符也不能是C語言的任一關(guān)鍵字。本題中,選項(xiàng)A、B、C都符合上述條件,只有選項(xiàng)Dsizeof是C語言中的關(guān)鍵字,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

58.C解析:本段程序的作用是輸出字符串'lanuage'中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。

59.DD)【解析】軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。

60.B解析:讀懂兩個(gè)循環(huán)的關(guān)系,是解這個(gè)題目的關(guān)鍵,本題的第一個(gè)for循環(huán)的作用是實(shí)現(xiàn)對數(shù)組元素的遍歷,第二個(gè)循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個(gè)語句是控制排序的關(guān)鍵語句,它即實(shí)現(xiàn)了比較兩個(gè)元素大小的作用,又實(shí)現(xiàn)了元素向后移動(dòng)的作用,不斷地把大的數(shù)據(jù)向前移動(dòng),直到找到一個(gè)比它小的,或到數(shù)據(jù)的上界為止。

61.C\nA中P是指針,沒有初始化,且取P的地址即類型為指向地址的地

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論