2022年陜西省咸陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2022年陜西省咸陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2022年陜西省咸陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2022年陜西省咸陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2022年陜西省咸陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022年陜西省咸陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.設(shè)有一個(gè)10階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)方式,以行序?yàn)橹鞔鎯?chǔ),a11為第一元素,其存儲(chǔ)地址為1,每個(gè)元素占一個(gè)地址空間,則a85的地址為()。

A.13B.33C.18D.40

2.設(shè)有如下函數(shù)定義:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若執(zhí)行調(diào)用語(yǔ)句“n=fun(3);”,則函數(shù)fun總共被調(diào)用的次數(shù)是()。

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

3.下列程序的輸出結(jié)果是()main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

4.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

5.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒(méi)有砝碼的天平,問(wèn)至少需要多少次稱量才能找到這枚假幣?

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

6.

7.設(shè)有一個(gè)10階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)方式,以行序?yàn)橹鞔鎯?chǔ),a1,1為第一個(gè)元素,其存儲(chǔ)地址為1,每個(gè)元素占1個(gè)地址空間,則a8,5的地址為()。

A.13B.33C.18D.40

8.如果一個(gè)函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說(shuō)明語(yǔ)句后的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量().

A.為全局變量,在本程序文件范圍內(nèi)有效

B.為局部變量,只在該函數(shù)內(nèi)有效

C.為局部變量,只在該復(fù)合語(yǔ)句中有效

D.定義無(wú)效,為非法變量

9.一棵二叉樹中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為A.219B.221C.229D.231

10.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流

11.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮()。

A.各結(jié)點(diǎn)的值如何B.結(jié)點(diǎn)個(gè)數(shù)的多少C.對(duì)數(shù)據(jù)有哪些運(yùn)算D.所用的編程語(yǔ)言實(shí)現(xiàn)這種結(jié)構(gòu)是否方便

12.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過(guò)程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

13.有種數(shù)據(jù)結(jié)構(gòu)叫跳躍列表(SkipList),它是一種基于并聯(lián)的鏈表的隨機(jī)化數(shù)據(jù)結(jié)構(gòu),其效率可比擬于二叉查找樹(對(duì)于大于數(shù)操作需要O(logn)平均時(shí)間)。它是按層建造的。底層是一個(gè)普通的有序鏈表。每個(gè)更高層都充當(dāng)下面列表的“快速跑道”,這里在層i中的元素按概率l/p出現(xiàn)在層i+1中。平均起來(lái),每個(gè)元素都在p/(p-1)個(gè)列表中出現(xiàn),而最高層的元素(通常是在跳躍列表前段的一個(gè)特殊的頭元素)在O(logpn)個(gè)列表中出現(xiàn)。調(diào)節(jié)p的大小可以在內(nèi)存消耗和時(shí)間消耗上進(jìn)行折中。試分析在該數(shù)據(jù)結(jié)構(gòu)中查找一個(gè)元素的平均時(shí)間復(fù)雜度。

A.O(logn)B.O(n)C.O(n*logn)D.以上都不正確

14.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語(yǔ)句中錯(cuò)誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

15.高度為h的滿二叉樹的結(jié)點(diǎn)數(shù)是________個(gè)。

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

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

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

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

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

17.執(zhí)行完下列語(yǔ)句段后,i值為()。A.A.2B.4C.8D.無(wú)限遞歸

18.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}

A.SOB.SPC.SPOPKD.SHOB

19.

20.

二、2.填空題(20題)21.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個(gè)數(shù)中,找出最大的和最小的數(shù)據(jù),請(qǐng)?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

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

}

23.若有如下程序:

main()

{intx=5,y,*t;t=&x;

y=++(*t);

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

則程序執(zhí)行后的x值為【】,y的值為【】。

24.表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

25.以下函數(shù)的功能是計(jì)算s=1+1/21+1/3!+…+1/n!,請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

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

mam()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2=0)

*p='*';

p++;i++;

}

puts(A);

}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

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

29.成本估算模型中,Putnam估算模型是一種【】模型。

30.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。

31.執(zhí)行以下程序段后,s的值為【】。

staticcharch[]="600";

inta,s=0;

for(a=0;ch[a]>='0'&&ch[a]<='9';a++)

s=10*s+ch[a]-'0';

32.若a的值為1,則表達(dá)式!a‖++a的值是______。

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

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

}

34.當(dāng)運(yùn)行以下程序時(shí),輸入abcd,程序的輸出結(jié)果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

35.執(zhí)行以下程序后,輸出‘#’號(hào)的個(gè)數(shù)是______。

#include<stdio.h>

main()

{

inti,j;

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

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

putchar('#');

}

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

37.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】?jī)刹糠纸M成。

38.閱讀下列程序,則在執(zhí)行后,程序的運(yùn)行結(jié)果為#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

39.以下程序用來(lái)統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

#include“stadio.h”

main()

{FILE*fp;longnum=0L;

if((fp=fopen(“fname.dat”,“r”))==NULL);

{printf(“0penerror\n”);exit(0);}

while(【】)

{fsetc(fp);num++;}

printf(“num=%1d\n”,num-1);

fclose(fp);

}

40.以下程序段中,錯(cuò)誤的行號(hào)是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}

三、1.選擇題(20題)41.設(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

42.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

43.有下列程序:main(){inty=20;do{y--;}while(--y);printf("%d\n",y--);}當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。

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

44.計(jì)算機(jī)的存儲(chǔ)器完整的應(yīng)包括______。

A.內(nèi)存儲(chǔ)器與外存儲(chǔ)器B.磁盤、磁帶與光盤C.RAM與ROMD.軟盤與硬盤

45.以下程序的輸出結(jié)果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

46.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){intx=7,y=3;printf("%d",y=x/y);}

A.0B.2C.3D.不確定的值

47.閱讀以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下說(shuō)法正確的是()。

A.定義浯句出錯(cuò),Case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符,printF不能用作用戶自定義標(biāo)識(shí)符

B.定義語(yǔ)句出錯(cuò),Int無(wú)法被識(shí)別

C.定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用

D.定義語(yǔ)句無(wú)錯(cuò),printf不能輸出Case的值

48.下列選項(xiàng)中正確的語(yǔ)句組是()。

A.chars[8];s={"Beijing"};

B.char*s;s={"Beijing"};

C.chars[8];s="Beijing";

D.char*s;s="Beijing";

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

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

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

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

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

50.概要設(shè)計(jì)是軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì),不屬于概要設(shè)計(jì)的是

A.把軟件劃分成模塊B.確定模塊之間的調(diào)用關(guān)系C.確定各個(gè)模塊的功能D.設(shè)計(jì)每個(gè)模塊的偽代碼

51.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是______。

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

52.若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p則對(duì)數(shù)組元素的錯(cuò)誤引用是

A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)

53.若有以下說(shuō)明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;則數(shù)值為4的表達(dá)式是()

A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]

54.請(qǐng)選出正確的程序段

A.int*p;scanf("%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;…

55.設(shè)有“intx=11;”則表達(dá)式(x++*1/3)的值是______。

A.3B.4C.11D.12

56.在宏定義#definePI3.14159中,用宏名PI代替一個(gè)()

A.單精度數(shù)B.雙精度數(shù)C.常量D.字符串

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

A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大

B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說(shuō)法都不對(duì)

58.以下合法的賦值語(yǔ)句是()

A.x=y=100B.d--;C.x+y;D.c=int(a+b);

59.以下程序的輸出結(jié)果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}

A.9B.6C.36D.18

60.數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系是()。

A.數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)

B.數(shù)據(jù)庫(kù)系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)

C.數(shù)據(jù)庫(kù)管理系統(tǒng)包括數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)系統(tǒng)

D.三者沒(méi)有明顯的包含關(guān)系

四、選擇題(20題)61.

62.下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是A.它們的運(yùn)算對(duì)象可以是任何變量和常量

B.它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量

C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量

D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量

63.以下不合法的數(shù)值常量是()。

A.8.0E0.5B.lelC.0llD.0xabcd

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

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

65.有以下程序:

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

66.以下選項(xiàng)中不屬于c語(yǔ)言的類型的是()。

A.unsignedlongint

B.longshort

C.unsignedint

D.signedshortint

67.有以下程序:

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

A.0B.一1C.1D.7

68.

69.有以下程序:

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

A.1002,ZhangDa,1202.0

B.1002,ChangRon9,1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

70.有以下程序

71.有以下程序:

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

A.22B.76C.72D.62

72.

73.設(shè)有如下程序段

74.有以下程序:

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

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

75.有以下程序:

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

A.4,5,6,4,5,6,

B.1,2,3,4,5,6,

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

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

76.執(zhí)行下列程序中的輸出語(yǔ)句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

77.

78.設(shè)有說(shuō)明double(*p1)[N];其中標(biāo)識(shí)符p1是()。

A.N個(gè)指向double型變量的指針。

B.指向N個(gè)double型變量的函數(shù)指針。

C.一個(gè)指向由N個(gè)double型元素組成的一維數(shù)組的指針。

D.具有N個(gè)指針元素的一維指針數(shù)組,每個(gè)元素都只能指向double型量。

79.以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類型說(shuō)明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

80.在面向?qū)ο蠓椒ㄖ校?)描述的是具有相似屬性與操作的一組對(duì)象。

A.屬性B.事件C.方法D.類

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)S所指字符串為“ABCD”時(shí),t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.下列程序判斷字符串s是否對(duì)稱,對(duì)稱則返回1,否則返回0;如f("abba")返回1,f("abab")返回0。

參考答案

1.B

2.B執(zhí)行調(diào)用語(yǔ)句“n=fun(3);”,3被當(dāng)作實(shí)參傳遞進(jìn)去,進(jìn)行了一次調(diào)用。3被當(dāng)作實(shí)參傳進(jìn)去后,程序會(huì)執(zhí)行“elsereturnfun(k-1)+1;”,函數(shù)被調(diào)用了第2次,參數(shù)是3-1,也就是2。2被當(dāng)作參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行“elsereturnfun(k-1)+1;”函數(shù)被調(diào)用了第3次,參數(shù)是2-1,也就是1。1被當(dāng)作實(shí)參傳進(jìn)去后,程序會(huì)執(zhí)行“elseif(k==1)return1;”,函數(shù)不再被遞歸調(diào)用。所以最終結(jié)果為3次。故本題答案為B選項(xiàng)。

3.B解析:本題的執(zhí)行過(guò)程是:

在While循環(huán)中,

比較xyz

第—次:3>0&&1<5142

第二次:2>0&&2<5231

第三次:1>0&&3<5320

判斷條件“z-->0”不成立,也不執(zhí)行“i+=2”語(yǔ)句,循環(huán)結(jié)束,因此,輸出結(jié)果為3,2,-1。

4.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個(gè)字符串。

5.A

6.B

7.B

8.C

9.A本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對(duì)任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+l。根據(jù)這條性質(zhì)可知,若二叉樹中有70個(gè)葉子結(jié)點(diǎn),則其度為2的結(jié)點(diǎn)數(shù)為70-1,即69個(gè)。二叉樹的總結(jié)點(diǎn)數(shù)是度為2、度為1和葉子結(jié)點(diǎn)的總和,因此,題目中的二叉樹總結(jié)點(diǎn)數(shù)為69+80+70,即219。因此,本題的正確答案是選項(xiàng)A。

10.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過(guò)程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要的圖形元素與說(shuō)明如下:

加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。

數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。

存儲(chǔ)文件(數(shù)據(jù)源):表示處理過(guò)程中存放各種數(shù)據(jù)的文件。

源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。

11.A

12.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長(zhǎng)得不到滿足;軟件開發(fā)成本和進(jìn)度無(wú)法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。所以選擇A。

13.A

14.C結(jié)構(gòu)體不能通過(guò)結(jié)構(gòu)體名字整體賦值,通過(guò)結(jié)構(gòu)體名.成員名的方式賦值。所以C選項(xiàng)錯(cuò)誤。

15.C

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

17.B

18.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串中的第一個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

19.C

20.A

21.q<p+nq<p+n解析:考查對(duì)于函數(shù)的地址傳遞的掌握情況。通過(guò)地址傳遞可以在被調(diào)函數(shù)中對(duì)調(diào)用函數(shù)中的變量進(jìn)行引用。

22.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。

23.66

24.整型整型解析:上面的表達(dá)式中,通過(guò)強(qiáng)制類型轉(zhuǎn)換把最后參與運(yùn)算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

25.k=k*ik=k*i解析:本題中遺過(guò)for循環(huán)求s表達(dá)式中每一項(xiàng)的和,表達(dá)式“fac=fac/k;”求的是每—項(xiàng)的值,所以k的值應(yīng)為n!,在求n!的時(shí)候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。

26.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

27.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲(chǔ)單元在程序運(yùn)行過(guò)程中始終不釋放,即當(dāng)下一次調(diào)用該函數(shù)時(shí),該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時(shí)已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。

28.軟件開發(fā)

29.動(dòng)態(tài)多變量動(dòng)態(tài)多變量

30.n/2性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

31.600600解析:程序中for循環(huán)的條件是當(dāng)前字符大于或等于字符\'0\'且小于或等于字符\'9\'的ASCII碼值,則s=10*s+ch[a]-\'0\'。計(jì)算結(jié)果是將字符串'600'轉(zhuǎn)換為整型數(shù)600。

32.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

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

34.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測(cè)試字符串常量的長(zhǎng)度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實(shí)現(xiàn)了將字符數(shù)組中每個(gè)非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。

35.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#,當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三#。當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。

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

37.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。

38.D

39.!feof(fP)!feof(fP)解析:統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dar”,如果打開成功則把返回的文件型指針賦值給fp,然后通過(guò)循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。

40.③數(shù)組可以在定義時(shí)整體賦初值,但不能在賦值語(yǔ)句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};

41.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長(zhǎng)度與它的最長(zhǎng)成員所占長(zhǎng)度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會(huì)超過(guò)float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項(xiàng)A的說(shuō)法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項(xiàng)B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會(huì)得到99.0這個(gè)值。故選項(xiàng)D不正確,答案應(yīng)該選擇D。

42.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語(yǔ)言不允許用賦值表達(dá)式對(duì)字符數(shù)組賦值,如下面的語(yǔ)句就是非法的:strl=“China”,如果想把“China”這5個(gè)字符放到數(shù)組strl中,除了逐個(gè)地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個(gè)字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語(yǔ)句來(lái)實(shí)行賦值(將str2的值傳給strl):strl=str2;不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長(zhǎng)度不應(yīng)小于字符串2的長(zhǎng)度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。

43.D解析:本題考查do…while循環(huán)。當(dāng)--y是0(即y是0)時(shí)結(jié)束循環(huán),輸出y--是先輸出y的值再將y的值減1。

44.A解析:存儲(chǔ)器包括內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器,而選項(xiàng)B、D只能統(tǒng)稱為外部存儲(chǔ)器,選項(xiàng)C屬于內(nèi)部存儲(chǔ)器。

45.B解析:注意自增和自減運(yùn)算符在變量的左右側(cè)的不同用法。本題條件表達(dá)式m++>5,即5>5不成立,此時(shí)m=6,執(zhí)行else后面的語(yǔ)句,輸出6后再m--使得m又等于5了。

46.B解析:程序運(yùn)行初始時(shí),x被賦值7,y被賦值3,因?yàn)閥為整型變量,因此表達(dá)式:y=x/y=7/3=2。

47.B解析:C語(yǔ)畝足一種大小寫敏感的語(yǔ)言,因此Int應(yīng)為int,而CaseprintF則可以使用。

48.D解析:字符數(shù)組初始化可以有兩種方式:方式一,按單個(gè)字符的方式賦初值。方式二,把一個(gè)字符串作為初值賦給字符數(shù)組。選項(xiàng)A定義的字符數(shù)組長(zhǎng)度為8,由于最后還要加一個(gè)“、0”做結(jié)束標(biāo)志,所以賦給他的字符串長(zhǎng)度應(yīng)小于等于7;在給字符數(shù)組賦初值的時(shí)候,應(yīng)該用花括號(hào)“{”和“}“將字符串括起來(lái)。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時(shí)就給其賦初值,比如:char*p=“student”;二是給指針變量賦值,比如:p=“student”;(p已經(jīng)被定義為字符型指針變量;)。

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

50.D解析:概要設(shè)計(jì)是數(shù)據(jù)庫(kù)的總體設(shè)計(jì),其目的就是要按照需求規(guī)格說(shuō)明書把軟件按照功能劃分為多個(gè)模塊,然后確定每個(gè)模塊要實(shí)現(xiàn)的功能,最后確定模塊之間的調(diào)用關(guān)系,而設(shè)計(jì)每個(gè)模塊的偽代碼則屬于詳細(xì)設(shè)計(jì)。

51.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針?lè)?,?(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。

52.C解析:本題綜合考查一維數(shù)組和多維數(shù)組指針變量的表示方法。在C語(yǔ)言中,引用數(shù)組元素的方法有兩種,即:下標(biāo)法和指針?lè)āO聵?biāo)法如a[i]形式;指針?lè)ㄈ?(a+i)或*(p+1)。其中a是數(shù)組名,p是指向數(shù)組的指針變量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意語(yǔ)句中指針型數(shù)組的書寫格式,不能寫成“(*數(shù)組名)[長(zhǎng)度]”,因?yàn)檫@是定義指向含有“長(zhǎng)度”個(gè)元素的一維數(shù)組的指針變量。例如有定義語(yǔ)句“inta,b,c,c,*P[3]={&a,&b,&c};”,它定義了一個(gè)名為p的指針型數(shù)組,其3個(gè)元素p[0],p[1],p[2]分別指向B個(gè)整型變量a,b,c。注意:數(shù)組元素的引用方法。

53.D

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

55.A解析:該題主要考查兩個(gè)知識(shí)要點(diǎn),x++是先引用x的值再加1,因此參與乘法運(yùn)算的是x的原值11,分母11與分子3相除得3,故原式=11*1/3=3。

56.D解析:程序中用#define定義后,PI代表一串字符。

57.DD。【解析】算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度是從不同的角度來(lái)衡量算法的執(zhí)行情況的,它們之間沒(méi)有內(nèi)在聯(lián)系。

58.B解析:選項(xiàng)A的結(jié)尾沒(méi)用‘;’,所以不是一條語(yǔ)句:選項(xiàng)C中的表達(dá)式不會(huì)改變?nèi)魏巫兞康膬?nèi)容,也不是合法的賦值語(yǔ)句;選項(xiàng)D有語(yǔ)法錯(cuò)誤,int應(yīng)該加上括號(hào)。所以,4個(gè)選項(xiàng)中只有選項(xiàng)B符合題意,運(yùn)行后d的內(nèi)容被減一。

59.C解析:觀察程序段可知,對(duì)帶參數(shù)的宏的展開只是將語(yǔ)句中的宏名后面括號(hào)內(nèi)的實(shí)參字符串代替#define命令行中的形參。本題中c=f(a)/f(b)用#definef(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,結(jié)果為36。

60.B數(shù)據(jù)庫(kù)可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)可以被直觀地理解為存放數(shù)據(jù)的倉(cāng)庫(kù),只不過(guò)這個(gè)倉(cāng)庫(kù)在計(jì)算機(jī)的大容量存儲(chǔ)器上,例如,硬盤就是一種最常見的計(jì)算機(jī)大容量存儲(chǔ)設(shè)備。數(shù)據(jù)必須按一定的格式存放,因?yàn)樗粌H需要存放,而且還要便于查找和使用。

數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的完成數(shù)據(jù)管理的系統(tǒng)軟件。它是用戶與數(shù)據(jù)庫(kù)的接口。應(yīng)用程序一般要通過(guò)DBMS才能訪問(wèn)數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制。

數(shù)據(jù)庫(kù)系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。數(shù)據(jù)庫(kù)是整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)最基本的成分。數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心。數(shù)據(jù)庫(kù)管理員是數(shù)據(jù)庫(kù)系統(tǒng)的責(zé)任維護(hù)者,負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的整體維護(hù)。

綜上所述,本題中只有B選項(xiàng)的描述是正確的。

61.C

62.D本題主要考查自加與自減運(yùn)算符。在C語(yǔ)言中,自加與自減運(yùn)算符具有以下性質(zhì):

(1)自加運(yùn)算符“++”和自減運(yùn)算符“--”的運(yùn)算本身是一種賦值運(yùn)算,其結(jié)果是使運(yùn)算對(duì)象的值增1或減1。

(2)++、--運(yùn)算符是單目運(yùn)算符,運(yùn)算對(duì)象可以是整型變量或字符型變量,也可以是實(shí)型變量,但不能是常量和表達(dá)式。

(3)自加、自減運(yùn)算符無(wú)論是作為前綴還是后綴運(yùn)算符,對(duì)于變量而言,其效果相同,但作為表達(dá)式來(lái)說(shuō),其值不同。

(4)++和--運(yùn)算符的結(jié)合方向是“自右向左”。

(5)不要在一個(gè)表達(dá)式中對(duì)同一個(gè)變量進(jìn)行多次自增或自減運(yùn)算??梢灾辣绢}正確的答案是D。

63.AA選項(xiàng)中E后面的指數(shù)必須為整型數(shù)據(jù),所以A錯(cuò)誤。c選項(xiàng)中011表示的是八進(jìn)制常量,0xabcd表示的是十六進(jìn)制常量。

64.C冒泡排序的基本思想是:將相鄰的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論