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

一、單選題(20題)1.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

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

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

3.循環(huán)隊(duì)列存儲(chǔ)在數(shù)組A[0..m]中,則入隊(duì)時(shí)的操作為()。

A.rear=rear+1

B.rear=(rear+1)mod(m-1)

C.rear=(rear+1)modm

D.rear=(rear+1)mod(m+1)

4.函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是______。

A.將串str1復(fù)制到串str2中后再連接到串str3之后

B.將串str1連接到串str2之后再復(fù)制到串str3之后

C.將串str2復(fù)制到串str1中后再將串sir3連接到串str1之后

D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中

5.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

6.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

7.

8.以下選項(xiàng)中的表達(dá)式調(diào)用庫函數(shù)依次求-4.5的絕對(duì)值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

9.在最壞情況下比較次數(shù)相同的是()。A.冒泡排序與快速排序B.簡單插入排序與希爾排序C.簡單選擇排序與堆排序D.快速排序與希爾排序

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

A.程序就是軟件

B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

11.

12.

13.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。

A.-20B.-l0C.0D.10

14.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時(shí),第一趟掃描結(jié)果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

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

A.無論指針變量P具有何種基類型,表達(dá)式“p=p+1”都代表指針P移動(dòng)1個(gè)字節(jié)

B.指針變量具有基類型,基類型不同的指針變量不能直接相互賦值

C.指針變量的賦值操作“p=0;”是非法的

D.通過指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

16.不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

17.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括A.順序結(jié)構(gòu)B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(fù)(循環(huán))結(jié)構(gòu)

18.sizeof(float)是()。

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

19.若聲明一個(gè)浮點(diǎn)數(shù)數(shù)組如下:froataverage[]=newfloat[30];假設(shè)該數(shù)組的內(nèi)存起始位置為200,average[15]的內(nèi)存地址是()。A.A.214B.215C.260D.256

20.

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

22.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。

23.需求分析的最終結(jié)果是產(chǎn)生【】。

24.以下函數(shù)的功能是計(jì)算請(qǐng)?zhí)羁铡?/p>

doublefun(intn)

{doubles=0.0,fac=1.0;inti;

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

{fac=fac【】;

s=s+fac;

}

returns;

}

25.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

26.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。

27.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

28.求任意一個(gè)數(shù)(用16位二進(jìn)制碼表示)的補(bǔ)碼。

main()

{

unsignedinta;

【】;

scanf("%o",&a);

printf("%o\n",getbits(a));

}

unsignedintgetbits(value)

unsignedintvalue;

{

unsignedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

29.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

30.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達(dá)式后y的值為()。

31.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊,其中______的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。

32.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>

main()

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

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

{for(j=0;j<30++)

______;

}

}

33.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。

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

main()

{charb[]="Helloyou";

b[5]=0;

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

}

35.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時(shí)輸入:1234<回車>,程序的輸出結(jié)果是【】。

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

main()

{inta=177;

printf(“%o\n”,A);

}

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");/*a、b、c能構(gòu)成三角形*/

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

}

38.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

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

39.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

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

inti;

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

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

printf"\n");

}

40.已有定義如下:

structnode

{

intdata;

structnode*next;

}*p;

以下語句調(diào)用malloc函數(shù),使指針p指向一個(gè)具有stmctnode類型的動(dòng)態(tài)存儲(chǔ)空間。

請(qǐng)?zhí)羁铡?/p>

p=(structnode*)malloc();

三、1.選擇題(20題)41.在使用程序流程圖來表示算法時(shí),菱形用來表示_______。

A.輸入與輸出B.子程序C.判斷分支D.循環(huán)邊界

42.以下合法的字符型常量是

A.'\x13'B.'\081'C.'65'D.\n

43.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d",i1,i2);}程序的運(yùn)行結(jié)果是()。

A.1212B.117C.1111D.127

44.下列標(biāo)識(shí)符不是關(guān)鍵字的是()。

A.breakB.charC.SwitchD.return

45.若有定義:inta[2][3];,以下選項(xiàng)中對(duì)a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

46.運(yùn)行下面程序,若從鍵盤輸入字母“b”,則輸出結(jié)果是charc;c=getchar();if(c>='a'&&c<='u')c=c+4;elseif(c>='v'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.gB.wC.fD.d

47.軟件生命周期中花費(fèi)費(fèi)用最多的階段是

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)

48.設(shè)有以下語句charx=3,y=6,z;z=x^y<<2;則z的二進(jìn)制值是

A.10100B.11011C.11100D.11000

49.設(shè)變量n為float類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

50.下列敘述中,錯(cuò)誤的是()。

A.在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量

B.在main()函數(shù)體內(nèi)定義的變量是全局變量

C.形參是局部變量,函數(shù)調(diào)用完成即失去意義

D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內(nèi)不起作用

51.設(shè)有關(guān)鍵碼序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法進(jìn)行排序,經(jīng)過初始建堆后關(guān)鍵碼值B在序列中的序號(hào)是()

A.1B.3C.7D.9

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

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

53.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。

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

54.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動(dòng)移至下一個(gè)字符位置

55.若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;,則正確的敘述是

A.a的值是字符CB.a的值是浮點(diǎn)型C.不允許字符型和浮點(diǎn)型相加D.a的值是字符‘A’的ASCII值加上1

56.以下能正確定義整型變量a,b和c,并為其賦初值1的語句是______。

A.inta=b=c=1;B.inta,b,c=1;C.a=b=c=1;D.inta=1,b=1,c=1;

57.下列選項(xiàng)中,不屬于模塊間耦合的是()

A.數(shù)據(jù)耦合B.同構(gòu)耦合C.異構(gòu)耦合D.公用耦合

58.若有如下程序:sub(intn){intt;if(n==1)returnt=5;elset=sub(n-1)+3;returnt;}main(){printf("%d\n",sub(5));}則程序運(yùn)行后的輸出結(jié)果是()

A.17B.18C.19D.20

59.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對(duì)象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

60.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()。A.A.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)B.計(jì)算方法C.數(shù)據(jù)映象D.邏輯存儲(chǔ)

四、選擇題(20題)61.下列程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

voidfun(int*S,int*p)

{staticintt=3:

*p=s[t];

t--;

}

voidmain

{inta[]={2,3,4,5),k;

intx;

for(k=0,k<4,k++)

{fun(a,&x);

printf("%d,",x);

}

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

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

A.為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系

B.表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)

C.一個(gè)關(guān)系的屬性名表稱為關(guān)系模式

D.一個(gè)關(guān)系可以包括多個(gè)二維表

63.若有以下程序

#include<stdio.h>

voidf(intn);

main()

{voidf(intn);

f(5);

}

voidf(intn)

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

則以下敘述中不正確的是

A.若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B.若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其他函數(shù)中都可以正確調(diào)用函數(shù)f

C.對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:對(duì)f函數(shù)重復(fù)說明

D.函數(shù)f無返回值,所以,可用void將其類型定義為無返回值型

64.在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。

65.

66.有以下程序

#include<stdio.h>

intfun(int(*s)[4],intn,intk)

{intm,i;

m=s[0][k];

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

if(s[i][k]>m)m=s[i][k];

returnm;

}

main()

{inta[4][4]={{1,2,3,4},{11,12,13,14},{2l,22,23,24},{31,32,33,34}};

printf("%d\n",fun(a,4,0));

}

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

A.4B.34

C.31D.32

67.以下關(guān)于簡單程序設(shè)計(jì)的步驟和順序的說法中正確的是()。

A.確定算法后,整理并寫出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試

B.首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔

C.先編碼和上機(jī)調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔

D.先寫好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)

68.

69.下列敘述中正確的是()。A.A.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句B.cotinue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

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

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

70.下列函數(shù)的功能是()

71.有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.45B.20C.25D.36

72.C語言的基本單位是()。

A.函數(shù)B.過程C.子程序D.子函數(shù)

73.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為了節(jié)省時(shí)間,應(yīng)采用的算法是()。

A.堆排序B.直接插入排序C.快速排序D.直接選擇排序

74.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。

A.循環(huán)隊(duì)列B.棧C.隊(duì)列D.二叉樹

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

A.20B.24C.25D.15

76.

77.

78.

79.

80.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)s由

B.從文件file中讀取長度不超過n-1個(gè)字符的字符放到字符數(shù)組S中

C.從文件file中讀到n個(gè)字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個(gè)字符的字符串存字符數(shù)組S中

五、程序改錯(cuò)題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當(dāng)a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)“a4b3c2dlef9”;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為“l(fā)g2f3e4dcba”。請(qǐng)改正程序中的錯(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(),該函數(shù)的功能是統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放入主函數(shù)的age數(shù)組中。要求函數(shù)把0~9歲的人數(shù)存放在d[0]中,把10~19歲的人數(shù)存放在d[1]中,把20~29歲的人數(shù)存放在d[2]中,依此類推,把100歲(含100歲)以上年齡的人數(shù)都存放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:

參考答案

1.C\n面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。

\n

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

3.D

4.C解析:題目中所給函數(shù)的功能是;先用函數(shù)strcpy把參數(shù)串str2復(fù)制到參數(shù)串str1中去,然后用函數(shù)strcat把參數(shù)串str3連接到經(jīng)過修改后的參數(shù)串str1后,因此選項(xiàng)C正確。

5.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。

6.B

7.A

8.C

9.A冒泡排序、快速排序、簡單插入排序、簡單選擇排序在最壞情況下比較次數(shù)均為n(n-1)/2,堆排序在最壞情況下比較次數(shù)為nlog2n,希爾排序在最壞情況下需要比較的次數(shù)是nr(1﹤r﹤2)。本題答案為A選項(xiàng)。

10.D\r\n軟件是與計(jì)算機(jī)操作相關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計(jì)算機(jī)系統(tǒng)的限制;軟件是一個(gè)邏輯實(shí)體,不是物理實(shí)體,軟件具有抽象性。因此選項(xiàng)D正確。

11.C

12.C

13.B表達(dá)式x-=x+X可以寫成x=x-(x+x),所以X的值為-l0。

14.D

15.B指針自增或自減1,移動(dòng)的字節(jié)數(shù)與指針變量的基類型有關(guān),假設(shè)指針變量p基類型為int類型,那么“p=p+1”表示指針P移動(dòng)4個(gè)字節(jié)(通常int類型占4個(gè)字節(jié)),選項(xiàng)A錯(cuò)誤;指針變量具有基類型,基類型不同的指針變量不能直接相互賦值,選項(xiàng)B正確;將0賦給指針變量,表示指針變量的值為空,這是合法的,選項(xiàng)C錯(cuò)誤;通過指針變量存儲(chǔ)指向變量的地址并通過指針存取變量的值,稱為“間接存取”方式,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。

16.A

17.BB【解析】1966年Boehm和JaCopini證明了程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。

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

19.C

20.C

21.eybdooG

22.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。其中的每一個(gè)加工對(duì)應(yīng)一個(gè)處理模塊。

23.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。

24./i或*(1.O/i)或/(double)i/i或*(1.O/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i??梢姍M線處應(yīng)添“/i”或與它等價(jià)的表達(dá)式。

25.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

26.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

27.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

28.unsignedintgetbits()value&0100000z=~value+1unsignedintgetbits()\r\nvalue&0100000\r\nz=~value+1

29.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。

30.00解析:n%=2等價(jià)于n=n%2,結(jié)果為1:x%=1等價(jià)于x=x%1,結(jié)果為0。

31.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:由于模塊通常不是獨(dú)立的程序,自己不能運(yùn)行,而需要其他模塊調(diào)用或驅(qū)動(dòng),同時(shí)被測(cè)試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動(dòng)模塊,后者稱為承接模塊。其中驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測(cè)模塊,調(diào)用其他模塊。

32.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識(shí)。它是要將一個(gè)二維數(shù)組,的行和列元素互換后存放到另一個(gè)二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。

33.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書是一個(gè)對(duì)象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。

34.HelloHello解析:執(zhí)行b[5]=0;是給數(shù)組的第6個(gè)元素賦值為0,即將Hello后的空格變?yōu)?。當(dāng)輸出字符串時(shí)遇到0終止輸出。

35.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

36.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進(jìn)制數(shù)輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261。

37.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時(shí)滿足幾個(gè)條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價(jià)形式。

38.101,0解析:與運(yùn)算兩邊的語句必須同時(shí)為真時(shí),結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。

39.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實(shí)就是將數(shù)組a的每個(gè)元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。

40.sizeof(structnode)或4sizeof(structnode)或4解析:本題考核的知識(shí)點(diǎn)是動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc()的用法。C標(biāo)準(zhǔn)規(guī)定malloc()函數(shù)返回值的類型為void*,函數(shù)的調(diào)用形式為:malloc(size)。要求aize的類型為unsignedint,所以該空格處應(yīng)該填sizeof(structnode)或4。

41.C解析:美國國家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定了一些常用的流程圖符號(hào),其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。

42.A解析:C語言的字符常量是用單引號(hào)(即撇號(hào))括起來的一個(gè)字符。除此之外,在C語言中還允許用一個(gè)“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd'表示1到3位8進(jìn)制數(shù)所代表的字符;形式“\\xhh'表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個(gè)字符常量;\'\\081\'用8進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?進(jìn)制數(shù)所代表的字符中不會(huì)出現(xiàn)數(shù)字“8”;\'5\'不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;\'\\n\'是用雙引號(hào)括起來的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。

43.B解析:根據(jù)define的定義,可得f(2)=2*5+1=11,f(1+1)=1+1*5+17。

44.C解析:break、char、return、switch都是C語言中的關(guān)鍵字,switch不是。因?yàn)镃語言區(qū)分字母的大小寫。

45.D解析:a是一個(gè)2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項(xiàng)A、B、C都是錯(cuò)誤的引用。計(jì)算選項(xiàng)D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。

46.C解析:本題考查了對(duì)字符的輸入、輸出操作及算術(shù)和關(guān)系運(yùn)算。因?yàn)閎>='a'并且b<='u',所以執(zhí)行第一個(gè)if語句,c=c+4,c的值為字符'f'。

47.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測(cè)試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長,花費(fèi)代價(jià)最大的一個(gè)階段,軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。

48.B解析:本題考查兩個(gè)位運(yùn)算符。按位異或運(yùn)算符“”’是雙目運(yùn)算符,其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相異或,當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異或時(shí),結(jié)果為1。左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0,并且“<<”運(yùn)算符的優(yōu)先級(jí)于“^”。

49.B本題要求選項(xiàng)中的表達(dá)式能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算。

在選項(xiàng)A中,n=(n*100+0.5)/100.0表示先將n后的前兩位小數(shù)變成整數(shù),然后對(duì)其第三位小數(shù)進(jìn)行加0.5操作,這個(gè)操作其實(shí)是第三位小數(shù)在進(jìn)行四舍五入運(yùn)算時(shí)只有入,而沒有舍運(yùn)算。因此,本選項(xiàng)不能實(shí)現(xiàn)題目的要求。

在選項(xiàng)B中,m=n*100+0.5,n=m/100.0表示先將n后的前兩位小數(shù)變成整數(shù),然后對(duì)第三位小數(shù)進(jìn)行加0.5操作,并將最后的運(yùn)算結(jié)果賦值給一個(gè)整型變量m,這是數(shù)據(jù)的強(qiáng)制轉(zhuǎn)換,它對(duì)小數(shù)部分的處理是直接舍棄,而在對(duì)第三位小數(shù)進(jìn)行加0.5操作時(shí),其實(shí)就是對(duì)第三位進(jìn)行四舍五入運(yùn)算。因此選項(xiàng)能實(shí)現(xiàn)題目的要求,是正確的答案。

在選項(xiàng)C中,根據(jù)運(yùn)算符的優(yōu)先級(jí)我們知道,先運(yùn)算n*100,再運(yùn)算0.5/100.0,最后將結(jié)果相加,與題目要求相差比較遠(yuǎn)。

在選項(xiàng)D中,n=(n/100+0.5)*100.0表示先除100,這不是對(duì)小數(shù)部分進(jìn)行四舍五入運(yùn)算,而是對(duì)整數(shù)部分進(jìn)行四舍五入運(yùn)算,與題目要求不一致。

50.B解析:本題考查函數(shù)調(diào)用時(shí)變量的作用域。形參是局部變量,函數(shù)調(diào)用完就失去意義了,所以在同一個(gè)C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結(jié)束.

51.B\nB)【解析】建堆的算法:首先將要排序的所有關(guān)鍵碼放到一棵完全二叉樹的各個(gè)結(jié)點(diǎn)中(這時(shí)的二叉樹不具備堆的特性),然后,從i=[n/2](n為結(jié)點(diǎn)的個(gè)數(shù))的結(jié)點(diǎn)Ki開始,逐步把以K[n/2],K[n/2]-1,K[n/2]-2,…為根的子樹排成堆,直到以K1為根的樹排成堆,就完成了建堆過程。此題中,n=16,i=[16/2]=8,即從第8個(gè)結(jié)點(diǎn)開始,建堆完成后如下圖:

\n

\n所以經(jīng)過初始建堆后關(guān)鍵碼值B在序列中的序號(hào)是3。

\n

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

53.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。

54.A解析:函數(shù)rewind的功能是將文件指針重新指向一個(gè)流的開頭。用法如下:

intrewind(FILE*stream);并且無返值。

55.D解析:本題考核的知識(shí)點(diǎn)是不同變量的類型的混合運(yùn)算。在C語言中規(guī)定允許不同類型的量進(jìn)行運(yùn)算,但在運(yùn)算時(shí)需轉(zhuǎn)換成高級(jí)的類型進(jìn)行運(yùn)算。在表達(dá)式中有字符型和實(shí)型參加運(yùn)算時(shí),統(tǒng)一轉(zhuǎn)換為實(shí)型再運(yùn)算,當(dāng)運(yùn)算結(jié)果存入變量時(shí)再轉(zhuǎn)換為該變量的類型。所以,4個(gè)選項(xiàng)中D為所選。

56.D解析:選項(xiàng)A中,變量b、c未定義;選項(xiàng)B中,a、b未賦值;選項(xiàng)C中a、b、c均未定義。

57.C解析:模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級(jí),分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。注意:評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn),以及對(duì)它們的定義和分類。

58.A

59.CC。【解析】結(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

60.A解析:數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究和討論以下三個(gè)方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu);③對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。

61.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。

62.C解析:在格式化模型中,要事先根據(jù)應(yīng)用的需要,確定數(shù)據(jù)之間的邏輯關(guān)系,即先對(duì)數(shù)據(jù)進(jìn)行結(jié)構(gòu)化。在關(guān)系模型中,不需要事先構(gòu)造數(shù)據(jù)的邏輯關(guān)系,只要將數(shù)據(jù)按照一定的關(guān)系存入計(jì)算機(jī),也就是建立關(guān)系。所以選項(xiàng)A錯(cuò)誤。對(duì)于一個(gè)表示關(guān)系的二維表,其最基本的要求是表中元組的每一個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng),即不允許表中再有表。所以,選項(xiàng)B、D說法是錯(cuò)誤的。一個(gè)關(guān)系的屬性名表稱為關(guān)系模式,也就是二維表的表框架,相當(dāng)于記錄型。因此,選項(xiàng)C說法正確。

63.C本題主要考查函數(shù)說明的位置及調(diào)用。

函數(shù)的說明有時(shí)可以缺省,在缺省時(shí),必須先被定義后被調(diào)用。函數(shù)說明的位置可以是所有函數(shù)定義的外部,也可以是某一函數(shù)內(nèi)部,對(duì)于后者,函數(shù)說明的作用域?qū)⒈幌拗圃谠摵瘮?shù)定義內(nèi)部。函數(shù)說明是一條獨(dú)立的語句,其中<形式參數(shù)>部分可以省略。當(dāng)函數(shù)在調(diào)用時(shí),如果實(shí)參的數(shù)據(jù)類型與函數(shù)說明中對(duì)應(yīng)的形參數(shù)據(jù)類型不兼容,C語言將不能編譯通過。不管函數(shù)被說明在哪里,我們需要注意的是:函數(shù)在被調(diào)用前必須先被說明或定義。

在本題中,程序首先說明了一個(gè)無返回值的函數(shù)f,然后在主函數(shù)中又說明了這個(gè)函數(shù)f,接著調(diào)用這個(gè)函數(shù),雖然函數(shù)被重復(fù)說明,但其符合先說明后調(diào)用的規(guī)定。程序執(zhí)行時(shí),編譯系統(tǒng)不報(bào)錯(cuò)。

根據(jù)上面的分析我們可以知道,本題四個(gè)選項(xiàng)中,描述不正確的是C,雖然函數(shù)被重復(fù)說明,但編譯系統(tǒng)不報(bào)錯(cuò)。其他說法都正確。因此本題答案選C。

64.Bwhile語句中條件表達(dá)式E的值不為0即為真,認(rèn)為滿足條件,所以與B選項(xiàng)中表達(dá)式的含義正好相反,選擇B選項(xiàng)。

65.B

66.C本題考查的重點(diǎn)還是二維數(shù)組的操作。題目將二維數(shù)組與函數(shù)相結(jié)合,考查了函數(shù)對(duì)二維數(shù)組的調(diào)用。程序主體分為兩個(gè)部分:主函數(shù)main和函數(shù)fun。main函數(shù)結(jié)構(gòu)較簡單,功能很明確,首先初始化了一個(gè)二維數(shù)組,隨后將fun(a,4,0)作為printf函數(shù)的實(shí)參輸出。下面分析一下fun函數(shù)的作用,fun函數(shù)包括三個(gè)形參,其中一個(gè)形參為用指針定義的二維數(shù)組,另外兩個(gè)為整型常量n和k。在fun函數(shù)中,先定義了一個(gè)整型變量m=s[0][k],表示m為s中第1行第k+1列的數(shù)據(jù)。下面的for循環(huán)是題目的關(guān)鍵,該for循環(huán)的意義是令m為數(shù)組s中k+1

溫馨提示

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