2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩110頁(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)介

2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

2.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1

3.

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

A.21B.11C.20D.10

5.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,元素進(jìn)棧或出棧順序是未知的,下列序列中,不可能成為棧空時(shí)彈出的元素構(gòu)成序列的有()

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,c,b,a}

D.{c,d,b,e,f,a,g}

6.以下選項(xiàng)中合法的實(shí)型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

7.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

8.若有定義“intx,y;”,并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式“(x-y)”等價(jià)的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

9.要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

10.微型計(jì)算機(jī)的運(yùn)算器、控制器及內(nèi)存儲(chǔ)器組合在一起,稱之為()

A.ALUB.CPUC.MPUD.主機(jī)

11.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

12.

13.有以下程序#include<stdio.h>voidfun(int*a,int*B){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,3

14.針對(duì)簡(jiǎn)單程序設(shè)計(jì),以下敘述的實(shí)施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔

15.下列語(yǔ)句中,說(shuō)法正確的是______。

A.C程序書(shū)寫(xiě)格式嚴(yán)格,每行只能寫(xiě)一個(gè)語(yǔ)句

B.C程序書(shū)寫(xiě)格式嚴(yán)格,每行必須有行號(hào)

C.C程序書(shū)寫(xiě)格式自由,每行可以寫(xiě)多條語(yǔ)句,但之間必須用逗號(hào)隔開(kāi)

D.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行

16.對(duì)于下述說(shuō)明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

17.計(jì)算機(jī)算法必須具備輸入、輸出和()等5個(gè)特性。

A.可行性、可移植性和可擴(kuò)充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性

18.在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠()。

A.對(duì)象的繼承B.對(duì)象的多態(tài)C.對(duì)象的封裝D.對(duì)象的分類

19.下列不可用于C語(yǔ)言用戶標(biāo)識(shí)符的是A.A.j2_KEY

B.char

C._g_

D.Double

20.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為_(kāi)_____。

A.確認(rèn)測(cè)試B.集成測(cè)試C.驗(yàn)證測(cè)試D.驗(yàn)收測(cè)試

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

22.C語(yǔ)言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

voidfun(intx,inty)

{x=x+y;Y=x-y;x=x-y;

printf(“%d,%d”,x,y);}

main()

{intx=2,y=3;

fun(x,y);

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

}

25.在一個(gè)容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。

26.下面函數(shù)要求計(jì)算兩個(gè)整數(shù)x,y之和,并通過(guò)形參返回該值,請(qǐng)?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

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

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

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

}

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

29.下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

inti=9;

prinff("%o\n",i);

31.有以下程序:

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

33.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

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

35.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

36.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=a[0][i];【】=a[N-1][i];}

}

37.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為_(kāi)_____。

38.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

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

#defineMAX(x,y)(x)>(y)?(x)L:(y)

main()

{inta=5,b=2,C=3,d=3,t;

t=MAX(a+b,c+D)*10;

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

}

40.數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理和控制。

三、1.選擇題(20題)41.對(duì)于n個(gè)結(jié)點(diǎn)的單向鏈表(無(wú)表頭結(jié)點(diǎn)),需要指針單元的個(gè)數(shù)至少為_(kāi)_____。

A.n-1B.nC.n+1D.2n

42.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

43.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

44.要為讀/寫(xiě)操作打開(kāi)一個(gè)字符文件,其正確的打開(kāi)方式為_(kāi)______。

A.wrB.r+C.rb+D.rw

45.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

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

46.如果需要打開(kāi)一個(gè)已經(jīng)存在的非空文件“Demo"進(jìn)行修改下面正確的選項(xiàng)是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

47.若有定義intx,y;并已正確給變量賦值,則下列選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()。

A.(x-y>0)B.(x-y<0)C.(x-y<0||x-y>0)D.(x-y==0)

48.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。

A.將變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)B.使變量x可以由系統(tǒng)自動(dòng)初始化C.使x只能在文本文件內(nèi)引用D.使x的值可以永久保留

49.若以下程序所生成的可執(zhí)行文件名為file1.exe,main(intargc,char*argv[]){while(argc-->0){++argv;printf("%s",*argv);}}當(dāng)鍵入以下命令執(zhí)行該程序時(shí):FILE1CHINABEUINGSHANGHAI程序的輸出結(jié)果是()

A.CHINABEIJIANGSHANGHAI

B.FILE1CHINABEIJING

C.CBS

D.FCB

50.有以下程序

#include<stdlib.h>

gtruetNODE

{intnum;structNODE*next;};

main()

{

structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeef(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next-r;

printf("%d\n",p->num+q->next->num);

}

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

A.10B.20C.30D.50

51.下述程序的輸出結(jié)果是()。#include<stdio.h>intf(n)intn;{if(n==0||n==1)return3;returnn-f(n-2);}voidmain(){printf("\n%d",f(10));}

A.3B.8C.9D.10

52.設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對(duì)函九fun的調(diào)節(jié)器用語(yǔ)句中,正確是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8):

D.fun(32,32);

53.軟件的可維護(hù)性度量可分解為多種因素的度量,下列選項(xiàng)中的______是可維護(hù)性度量的內(nèi)容。

①可測(cè)試性

②可移植性

③可復(fù)用性

④可靠性

A.全部B.①和③C.①、②和④D.②和④

54.循環(huán)控制語(yǔ)句“while(!scanf("%d",&i))getchar();”執(zhí)行的情況是()

A.循環(huán)輸入字符,遇文件結(jié)束符EOF退出

B.循環(huán)條件有錯(cuò),不能執(zhí)行

C.若輸入數(shù)據(jù)i有錯(cuò),暫停等待處理

D.鍵入i值后,回車退出循環(huán)

55.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

56.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達(dá)式的值為()。

(float)(a+b)/2+(int)x%(int)y

A.5.5B.55C.5.500000D.55.00000

57.軟件開(kāi)發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開(kāi)發(fā)、運(yùn)行維護(hù)

B.設(shè)計(jì)階段、編程階段、測(cè)試階段

C.總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計(jì)

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

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

59.在下列字符序列中,不可用做C語(yǔ)言標(biāo)識(shí)符的是()

A.student___numB.classC.#88D.month___12

60.一個(gè)采用順序存儲(chǔ)方式的線性表中,若線性表的第一個(gè)元素的存儲(chǔ)地址是200,每一個(gè)元素的長(zhǎng)度是2,則第6個(gè)元素的地址是______。

A.208B.210C.211D.212

四、選擇題(20題)61.

現(xiàn)有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。

structnode

{bardata;

structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語(yǔ)句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

62.

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

main

{inta=1,b;

for(b=1,b<=10;b++)

{if(a>=8)break;

if(a%2==1){a+=5;continue;}

a=3;}

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

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

63.

64.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

65.若函數(shù)中有定義語(yǔ)句:inta;,則()。

A.系統(tǒng)將自動(dòng)給a賦初值為0B.系統(tǒng)將自動(dòng)給a賦初值一lC.這時(shí)a中的值無(wú)意義D.這時(shí)a中無(wú)任何值

66.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是______。

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

67.

68.

69.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

70.

71.若變量已正確說(shuō)明為int類型,要通過(guò)語(yǔ)句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是

72.

若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語(yǔ)句后輸出的結(jié)果為()。

cb=b;

k=10;

printf("%X,%o,”,ch,ch,k);

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

A.因變量類型與格式描述符的類型不匹配,輸出無(wú)定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

73.以下敘述中正確的是______。A.預(yù)處理命令行必須位于源文件的開(kāi)頭

B.在源文件的一行上可以有多條預(yù)處理命令

C.宏名必須用大寫(xiě)字母表示

D.宏替換不占用程序的運(yùn)行時(shí)間

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

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

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

A.用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名識(shí)意”

C.用戶所定義的標(biāo)識(shí)符中,大、小寫(xiě)字母代表不同標(biāo)識(shí)

D.用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭

76.有以下程序:

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

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

77.以下可用作C語(yǔ)言用戶標(biāo)識(shí)符的是()

A.void,define,WORD

B.a3_b3,_123,IF

C.FOR,--abc,Case

D.2a,Do,Sizeof

78.

79.

80.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、

A.雙向鏈表

B.帶鏈的棧

C.二叉鏈表

D.循環(huán)鏈表

五、程序改錯(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.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的記錄已放入主函數(shù)的結(jié)構(gòu)體數(shù)組s中。請(qǐng)編寫(xiě)函數(shù)fun(),其功能是把指定分?jǐn)?shù)范圍內(nèi)的學(xué)生記錄存放在b所指的數(shù)組中,分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)值返回。如輸入的分?jǐn)?shù)是60、69,則應(yīng)當(dāng)把分?jǐn)?shù)在60~69的學(xué)生記錄輸出,包含60分和69分的學(xué)生記錄。主函數(shù)中把60放在low中,把69放在high中。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#defineN16typedefstruct{ charnum[10]; ints;}STREC;intfun(STREC*a,STREC*b,intl,inth)voidmain(){ STRECs[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}}; STRECh[N]; inti,n,low,high,t; printf(“Enter2integernumberlow&high:”); scanf(“%d%d”,&low,&high); if(high<low) {t=high;high=low;low=t;} n=fun(s,h,low,high); printf(“Thestudent’sdatabetween%d--%d:\n”,low,high); for(i=0;i<=""p=""> printf(“%s%4d\n”,h[i].num,h[i].s); printf(“\n”);}

參考答案

1.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

2.C整型變量x、y的初值都為1,“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式中的第二個(gè)表達(dá)式的值,為1。因此本題的答案為選項(xiàng)C。

3.B

4.A聲明data是結(jié)構(gòu)S的數(shù)組。初始化時(shí)data[0].a(chǎn)=10;data[0].b:104);data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中p=data[1];即p.a(chǎn)=data[1].a(chǎn);p.b=data[11.b;執(zhí)行語(yǔ)句prinff(”%dkn”,++(p.A));打印輸出時(shí)p.a(chǎn)先增l再打印。即p.a(chǎn)=data[1].a(chǎn)=20,先增1等于21,因此程序運(yùn)行結(jié)果是21。

5.B

6.C解析:在C語(yǔ)言中,實(shí)數(shù)有兩種表示形式:十進(jìn)制數(shù)形式與指數(shù)形式。

1)一般形式的實(shí)數(shù):小數(shù)形式的實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成(必須要有小數(shù)點(diǎn))。

2)指數(shù)形式的小數(shù):指數(shù)形式的實(shí)數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項(xiàng)A中,5E2.0中E后面的2.0不是整數(shù);選項(xiàng)B中,E前面沒(méi)有數(shù)字;選項(xiàng)D中,E后面沒(méi)有數(shù)字。

7.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

8.A條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)式1,若其值不為0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x;若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給X。本題中與條件表達(dá)式“(x-y)”等價(jià)的是“(x-y<0||lx-y>0)”。故本題答案為A選項(xiàng)。

9.A解析:while循環(huán)的執(zhí)行過(guò)程如下:(1)計(jì)算while后面圓括號(hào)中表達(dá)式的值.當(dāng)值為非0時(shí),執(zhí)行步驟(2);當(dāng)值為0時(shí),執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項(xiàng)A)中,表達(dá)式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個(gè)條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個(gè)條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán).所以選項(xiàng)A)為正確答案。

10.D

11.D本題可以寫(xiě)成:a+a+(a-(a*a)),所以*的優(yōu)先級(jí)最高,其次是-=的,+的優(yōu)先級(jí)最低,因此先求a-=a*a=9,表達(dá)式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項(xiàng)。

12.D

13.B解析:本題主要考查的是函數(shù)的實(shí)參和形參之間的傳遞關(guān)系,C語(yǔ)言中實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)參數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實(shí)參指針變量的值。所以x和y的地址并沒(méi)有改變,即p和q也沒(méi)有改變,因此,選項(xiàng)B是正確的。

14.A\nC語(yǔ)言中程序中的步驟實(shí)現(xiàn)為:先確定程序中的算法和數(shù)據(jù)結(jié)構(gòu),然后進(jìn)行程序的編碼,再進(jìn)行對(duì)程序的調(diào)試,最后進(jìn)行文檔的整理和記錄。使用這種步驟可以方便程序的編寫(xiě)以及在完成后提高代碼的重用性。

\n

15.D

16.D解析:p->b應(yīng)作為一個(gè)整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達(dá)式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。

17.B

18.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開(kāi)發(fā)提供了一種新的方法學(xué)。

封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個(gè)內(nèi)含的部件中(對(duì)象中)。簡(jiǎn)單地說(shuō),封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行模彩敲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。

繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對(duì)象也都具有該類的全部,這就是繼承性。繼承性自動(dòng)在類與子類間共享功能與數(shù)據(jù),當(dāng)某個(gè)類作了某項(xiàng)修改,其子類會(huì)自動(dòng)改變,子類會(huì)繼承其父類所有特性與行為模式。繼承有利于提高軟件開(kāi)發(fā)效率,容易達(dá)到一致性。

多態(tài)性:多態(tài)性就是多種形式。不同的對(duì)象在接收到相同的消息時(shí),采用不同的動(dòng)作。例如,一個(gè)應(yīng)用程序包括許多對(duì)象,這些對(duì)象也許具有同一類型的工作,但是卻以不同的做法來(lái)實(shí)現(xiàn)。不必為每個(gè)對(duì)象的過(guò)程取一過(guò)程名,造成復(fù)雜化,可以使過(guò)程名復(fù)用。同一類型的工作有相同的過(guò)程名,這種技術(shù)稱為多態(tài)性。

經(jīng)過(guò)上述分析可知,在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠對(duì)象的封裝。正確答案是選項(xiàng)C。

19.B本題主要考查標(biāo)識(shí)符的命名規(guī)則。選項(xiàng)A是合法的用戶標(biāo)識(shí)符,它符合命名的規(guī)則;選項(xiàng)B不是一個(gè)合法的用戶標(biāo)識(shí)符,因?yàn)樗窍到y(tǒng)中定義了的關(guān)鍵字;選項(xiàng)C是一個(gè)合法的標(biāo)識(shí)符;選項(xiàng)D可能也會(huì)有很多人認(rèn)為它不是一個(gè)合法的標(biāo)識(shí)符,認(rèn)為它是關(guān)鍵字,但事實(shí)上它不是一個(gè)關(guān)鍵字,因?yàn)镃語(yǔ)言中嚴(yán)格區(qū)分大小寫(xiě),因此,它不是雙精度關(guān)鍵字“double”,所以它是一個(gè)合法的用戶標(biāo)識(shí)符。

20.A本題主要考查軟件測(cè)試的基本知識(shí)。軟件測(cè)試的步驟可分為單元測(cè)試(模塊測(cè)試)、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。

(1)單元測(cè)試是針對(duì)每個(gè)模塊進(jìn)行的測(cè)試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例,多個(gè)模塊可以平行、對(duì)立地測(cè)試。單元測(cè)試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時(shí)犯下的錯(cuò)誤。單元測(cè)試多采用白盒測(cè)試,輔之以黑盒測(cè)試。

(2)集成測(cè)試是在單元測(cè)試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個(gè)模塊連接起來(lái),必須精心計(jì)劃,應(yīng)提交集成測(cè)試計(jì)劃、集成測(cè)試規(guī)格說(shuō)明和集成測(cè)試分析報(bào)告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問(wèn)題。集成測(cè)試可以發(fā)現(xiàn)概要設(shè)計(jì)時(shí)犯的錯(cuò)誤。

(3)確認(rèn)測(cè)試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測(cè)試主要用于發(fā)現(xiàn)需求分析時(shí)犯下的錯(cuò)誤,一般使用黑盒法測(cè)試,以表明軟件符合需求說(shuō)明書(shū)的要求,應(yīng)該仔細(xì)設(shè)計(jì)測(cè)試用例和測(cè)試過(guò)程。確認(rèn)測(cè)試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計(jì)測(cè)試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試,測(cè)試數(shù)據(jù)通過(guò)用戶接口輸入。

(4)系統(tǒng)測(cè)試是將已經(jīng)通過(guò)確認(rèn)測(cè)試的軟件,作為整個(gè)計(jì)算機(jī)系統(tǒng)的元素與計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的是通過(guò)與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測(cè)試可以發(fā)現(xiàn)問(wèn)題定義時(shí)犯下的錯(cuò)誤。

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

22.非0非0解析:邏輯運(yùn)算中,非0表示邏輯“真”,用。表示邏輯“假”。

23.存儲(chǔ)結(jié)構(gòu)

24.32233,2,2,3解析:主函數(shù)中首先定義了整型變量x和y,并分別給它們賦初值為2和3,接著調(diào)用fun()函數(shù),fun()函數(shù)把實(shí)參x和y的值傳給形式參數(shù)x和y,實(shí)參和形參不再有聯(lián)系。在fun()函數(shù)中,通過(guò)運(yùn)算使x和y的值交換過(guò)來(lái),所以fun()函數(shù)中的輸出結(jié)果是“3,2”。fun()函數(shù)調(diào)用返回輸出x和y依然是原來(lái)的x和y,為“2,3”。原因是變量作為形參傳值的,對(duì)形參的修改并不影響對(duì)應(yīng)的實(shí)參。所以最后輸出為3,2,2,3。

25.3

26.int**zint*\r\n*z解析:函數(shù)希望通過(guò)形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過(guò)形參z間接引用傳回,第二處應(yīng)填*z。

27.1111解析:此題涉及函數(shù)的調(diào)用和if語(yǔ)句。程序先執(zhí)行第二個(gè)if語(yǔ)句,然后再執(zhí)行第一個(gè)if語(yǔ)句,最后用return返回?cái)?shù)值。

28.14

解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a(bǔ)、b,代入,得到16.0=9/2+2*x/1.1+1/2。因?yàn)閍=9,a是整型,所以9/2的值在沒(méi)有進(jìn)行類型轉(zhuǎn)換時(shí),等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

30.1111解析:格式字符。是以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0),因?yàn)檎麛?shù)9的八進(jìn)制為11,所以輸出結(jié)果為11。

31.-4-4解析:本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4

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

33.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

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

35.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

36.b[i][0]b[i][0]解析:因?yàn)橐獙的最后一行放在b的第0列中,【】應(yīng)填b的第0列的元素。

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

38.PI=3.14159PI=3.14159解析:本題先定義了一個(gè)宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語(yǔ)言規(guī)定:雙引號(hào)中的宏名是不進(jìn)行替換的。

39.77解析:在C語(yǔ)言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。

在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。

40.共享性共享性解析:數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實(shí)現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫(kù)的主要目的。

41.C解析:在n個(gè)結(jié)點(diǎn)的單向鏈表(無(wú)表頭結(jié)點(diǎn))中,每個(gè)結(jié)點(diǎn)都有一個(gè)指針單元(即指針域),加上頭指針,至少需要n+1個(gè)指針單元。

42.A解析:函數(shù)定義時(shí)如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語(yǔ)句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實(shí)際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

43.D解析:要正確計(jì)算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項(xiàng)A)中,由于f的初值為0,在for循環(huán)語(yǔ)句中,f依次乘以1,2,3,……,n。最后計(jì)算f=n!=O,所以選項(xiàng)A)不正確。在選項(xiàng)B)中,f的初值為1,在for循環(huán)語(yǔ)句中,f依次乘以1,2,3,……,(n-1)。最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B)不正確。在選項(xiàng)C)中,f的初值為1,在for循環(huán)語(yǔ)句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)C)不正確。在選項(xiàng)D)中,f的初值為1,在for循環(huán)語(yǔ)句中,f依次乘以n,n-1,n-2,……,2。最后計(jì)算f=n!,所以選項(xiàng)D)正確。

44.B解析:在C中可以通過(guò)fopen函數(shù)來(lái)打開(kāi)—個(gè)文件,在該函數(shù)的第二個(gè)參數(shù)中指定其打開(kāi)方式。要以讀寫(xiě)方式打開(kāi)文件可以用'r+'、'w+'、'a+'來(lái)表示,要打開(kāi)二進(jìn)制文件,可以在打開(kāi)方式中加上字母b,對(duì)于字符文件不要加b。

45.A解析:本題中p[4]='cd',所以strlen(p[4])=2。

46.D解析:此題考查文件打開(kāi)方式對(duì)文件操作的影響。由于打開(kāi)文件進(jìn)行修改,可見(jiàn)選項(xiàng)A)是錯(cuò)誤的,因?yàn)榇朔N方式打開(kāi)時(shí),只能讀,不能寫(xiě),當(dāng)然無(wú)法修改。選項(xiàng)B)是以追加方式“ab+”打開(kāi)文件讀寫(xiě)。以這種方式打開(kāi)時(shí),新寫(xiě)入的數(shù)據(jù)只能追加在文件原有內(nèi)容之后,但可以對(duì)以前的數(shù)據(jù)讀出。換言之,“ab+”或“a+”方式打文件后,對(duì)于寫(xiě)操作,文件指針只能定位在文件的原有內(nèi)容之后,但對(duì)于讀操作,文件指針可以定位在全文件范圍內(nèi),可見(jiàn),按此種方式打開(kāi)文件不能實(shí)現(xiàn)文件內(nèi)容的修改。選項(xiàng)C)以“w+”方式打開(kāi)文件,此時(shí),原文件中已存在的內(nèi)容都被清除。但新寫(xiě)入文件的數(shù)據(jù)可以被再次讀出或再次寫(xiě)入,故也不能實(shí)現(xiàn)對(duì)文件的修改。只有以“r+”方式打開(kāi)文件時(shí),才允許將文件原來(lái)數(shù)據(jù)讀出,也允許在某些位置上再寫(xiě)入,從而實(shí)現(xiàn)對(duì)文件的修改。

47.C

48.C解析:事實(shí)上,無(wú)論有無(wú)static修飾,外部變量都具有A、B和C三種特性。作為—種修飾,static僅是限制此類型外部變量的引用范圍:只能在定義它的文件范圍內(nèi)使用。

49.A

50.D解析:本題考查的知識(shí)點(diǎn)是對(duì)結(jié)構(gòu)體指針變量的正確引用與計(jì)算。主函數(shù)中首先定義了三個(gè)結(jié)構(gòu)體指針變量p,q,r。然后調(diào)用內(nèi)存分配函數(shù)分別為其分配地址空間,程序中變量q->num的值為20,指針變量q->next指向指針變量r,r->nnm的值為30,所以變量q->next->nm的值為30,因此,表達(dá)式q->num+q->next->num的值為20+30=50.所以4個(gè)選項(xiàng)中D正確。

51.A解析:本題定義了一個(gè)遞歸函數(shù)f()。當(dāng)傳入的參數(shù)n等于1或0時(shí)返回3,否則返回n-f(n-2)。所以f(10)=10-f(8)=10-(8—f(6))=10-8+(6-f(4))=10-8+6-(4-f(2))=10-8+6-4+(2-f(0))=10-8+6-4+2-3=3。故本題應(yīng)該選擇A。

52.D解析:本題考查了函數(shù)的定義。題目中定義的函數(shù)fun()有兩個(gè)參數(shù),一個(gè)是字符型變量ch,另一個(gè)是浮點(diǎn)型變量x,函數(shù)類型是void即無(wú)返回值。選項(xiàng)A調(diào)用fun的第1個(gè)參數(shù)是字符串常量與字符變量不匹配,所以不正確。選項(xiàng)B是有返回值函數(shù)的調(diào)用形式,不正確。選項(xiàng)C的第1個(gè)參數(shù)是錯(cuò)誤的字符常量,字符常量是用單引號(hào)括起來(lái)的一個(gè)字符(是轉(zhuǎn)義字符可能有多個(gè)字符),故也不正確。選項(xiàng)D使用兩個(gè)整型常量調(diào)用fun這在C語(yǔ)言中是允許的。因?yàn)檎偷阶址涂梢宰詣?dòng)轉(zhuǎn)換,整型到浮點(diǎn)型也可以自動(dòng)轉(zhuǎn)換。故應(yīng)該選擇D。

53.C

54.A

55.C解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1;i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=0時(shí),a[i]=10-0=10;此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8],分別為8,5,2。

56.C解析:在計(jì)算(float)(a+b/2時(shí),由于通過(guò)強(qiáng)制類型轉(zhuǎn)換將(a+b轉(zhuǎn)換成了foat型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。

在計(jì)算(int)x%(int)y時(shí),先將x和y通過(guò)強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,得1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。

[知識(shí)擴(kuò)展]類型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類型服從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級(jí)別由低到高的排序表示為:char→int→unsigned→long→float→double。

57.A解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。它可以分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。

58.A解析:數(shù)據(jù)流圖包括4個(gè)方面,即加工(轉(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í)體)。不包括選項(xiàng)中的控制流。

59.C

60.B解析:順序結(jié)構(gòu)中,第n個(gè)元素的地址為An=A0+(n-1)*L(A為地址,L為元素長(zhǎng)度)。

61.D由題目ee線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交換前后位置,只要使q指向r的后一個(gè)結(jié)點(diǎn),p指向r結(jié)點(diǎn),r指向q結(jié)點(diǎn)即可。而在選項(xiàng)D由,r->next=q,這時(shí)r指向的節(jié)點(diǎn)為q;p->nextr,這時(shí)p指向的節(jié)點(diǎn)為r;q->next=r->next,因?yàn)閞節(jié)點(diǎn)已經(jīng)指向q,所以執(zhí)行這個(gè)語(yǔ)句后q又指向q,所以選項(xiàng)D不正確。

62.B

\n當(dāng)b=1時(shí),a=1,第二個(gè)if語(yǔ)句成立,此時(shí)a=6,返回for循環(huán);當(dāng)b=2,兩個(gè)if語(yǔ)句都為假,此時(shí)a=3,再返回循環(huán);當(dāng)b=3,第二個(gè)if成立,此時(shí)a=8,繼續(xù)循環(huán);當(dāng)b=4,第一個(gè)if成立,退出for循環(huán)體時(shí)b為4,a為8。

\n

63.B

64.A在本題中,程序首先定義一個(gè)返回類型為整型的函數(shù)fun,該函數(shù)帶有一個(gè)指針型的形參變量str,從主函數(shù)中對(duì)其調(diào)用時(shí)傳遞的參數(shù)我們可以知道,該指針指向的是一個(gè)數(shù)組,在該函數(shù)體中,首先定義兩個(gè)整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識(shí),即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語(yǔ)句if(str[i]!=’’),如果結(jié)果為真,說(shuō)明取到的當(dāng)前字符不是空字符,這時(shí)執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說(shuō)明取到了空格字符,此時(shí)不保存,而接著執(zhí)行下次循環(huán)跳過(guò)空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識(shí)符,用來(lái)標(biāo)識(shí)字符串結(jié)束。通過(guò)上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。

在主函數(shù)中,首先定義了一個(gè)大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語(yǔ)句,執(zhí)行g(shù)ets(str);語(yǔ)句,該語(yǔ)句的作用是從鍵盤(pán)輸入一個(gè)字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實(shí)參為str。通過(guò)上面對(duì)函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。

程序最后執(zhí)行輸出語(yǔ)句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。

65.C用int方法定義變量時(shí),編譯器僅為變量開(kāi)辟存儲(chǔ)單元,并沒(méi)有在存儲(chǔ)單元中放任何值,此時(shí)變量中的值是無(wú)確定的,稱變量值”無(wú)意義”。因此,本題正確答案為c。

66.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評(píng)估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開(kāi)發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。

67.D

68.C

69.C十六進(jìn)制是以“0x、0X”開(kāi)頭的字符串,字符串中只能含有0~9這l0個(gè)數(shù)字和a、b、C、d、e、f這6個(gè)字母。

70.B

71.B本題中,“%d%d%d”表示按整型數(shù)形式輸入數(shù)據(jù),輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用回車鍵或Tab鍵。選項(xiàng)B中不應(yīng)該使用逗號(hào)。

72.C

\n第1個(gè)printf函數(shù),格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,所以對(duì)于多余的輸出項(xiàng)k不予輸出;第2個(gè)printf函數(shù),有兩個(gè)%說(shuō)明,第1個(gè)%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進(jìn)制和八進(jìn)制無(wú)符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②printf函數(shù)中格式說(shuō)明符之前插入的任何字符都原樣輸出;③格式說(shuō)明與輸出項(xiàng)的個(gè)數(shù),也要相等,如果格式說(shuō)明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),則對(duì)于多余的輸出項(xiàng)不予輸出。

\n

73.D本題主要考查宏的一些基本概念。通常,預(yù)處理命令位于源文件的開(kāi)頭,但不一定必須位于開(kāi)頭,也可以寫(xiě)在函數(shù)與函數(shù)之間;由于預(yù)處理命令的末尾不加分號(hào),不以分號(hào)來(lái)區(qū)分一條宏命令,所以,不能在一行上寫(xiě)多條預(yù)處理命令,只能寫(xiě)一條,否則,系統(tǒng)處理時(shí)就會(huì)把它當(dāng)做一條命令處理;宏名一般習(xí)慣用大寫(xiě)字母表示,以便與變量名相區(qū)別,這只是習(xí)慣用法,并不是C語(yǔ)言中有這樣的規(guī)定,宏的定義可用小寫(xiě)字母;C語(yǔ)言中,宏的替換是在程序編譯時(shí)進(jìn)行,不占用程序運(yùn)行的時(shí)間,故本題答案為D。

74.A本題主要考查標(biāo)識(shí)符的定義。對(duì)標(biāo)識(shí)符的定義是考試中常考的內(nèi)容之一。標(biāo)識(shí)符主要由數(shù)字、下畫(huà)線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標(biāo)識(shí)符時(shí),不能將標(biāo)識(shí)符定義為C語(yǔ)言中已定義的關(guān)鍵字,如int、while等。

根據(jù)上面對(duì)標(biāo)識(shí)符的分析,我們不難看出本題的正確答案是A。在選項(xiàng)B中,3_xy以數(shù)字開(kāi)頭,不符合標(biāo)識(shí)符定義的規(guī)定;在選項(xiàng)C中,int是C語(yǔ)言系統(tǒng)中已經(jīng)定義了的關(guān)鍵字;在選項(xiàng)D中,LINE-3使用的數(shù)字、下畫(huà)線和字母以外的字符,因此不正確。

75.Ac語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線,排除D);用戶定義標(biāo)識(shí)符中大小寫(xiě)字母之間是有區(qū)別的并且應(yīng)盡量做到”見(jiàn)名識(shí)意”,排除選項(xiàng)B)和c);C語(yǔ)言中還規(guī)定標(biāo)識(shí)符不能為c語(yǔ)言的關(guān)鍵字,故選項(xiàng)A)敘述錯(cuò)誤,正確答案是選項(xiàng)A)。

76.Ba一一的含義是先用后減l,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。

77.BC語(yǔ)言規(guī)定用戶標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,且第一個(gè)字符必須是字母或下劃線,可見(jiàn)選項(xiàng)C),D)是錯(cuò)誤的;此外,c語(yǔ)言不允許用戶將關(guān)鍵字作為標(biāo)識(shí)符,而選項(xiàng)A)中的void正是C語(yǔ)言的關(guān)鍵字。

78.C

79.C

80.C數(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是n個(gè)數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對(duì)一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個(gè)結(jié)點(diǎn)元素可能對(duì)應(yīng)多個(gè)直接前驅(qū)和多個(gè)后驅(qū)。常見(jiàn)的非線性結(jié)構(gòu)有:樹(shù)(二叉樹(shù)等),圖(網(wǎng)等),廣義表。

\n

81.

82.intfun(STREC*a,STREC*b,intl,inth){ inti,j=0; for(i=0;i<=""p=""> if(a[i].s>=l&&a[i].s<=h)/*將分?jǐn)?shù)高于l,低于h的學(xué)生記錄存入結(jié)構(gòu)體數(shù)組b中*/ b[j++]=a[i]; returnj; /*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/}本題使用循環(huán)判斷結(jié)構(gòu)實(shí)現(xiàn)題目要求。循環(huán)語(yǔ)句用于遍歷結(jié)構(gòu)體數(shù)組;條件語(yǔ)句用于判斷當(dāng)前元素是否符合條件,若符合條件則將其存入結(jié)構(gòu)體數(shù)組b中。變量j為數(shù)組b元素下標(biāo),最后變量j+1為學(xué)生人數(shù),作為函數(shù)值返回。2021-2022年山西省太原市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

2.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1

3.

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

A.21B.11C.20D.10

5.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進(jìn)棧,元素進(jìn)棧或出棧順序是未知的,下列序列中,不可能成為棧空時(shí)彈出的元素構(gòu)成序列的有()

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,c,b,a}

D.{c,d,b,e,f,a,g}

6.以下選項(xiàng)中合法的實(shí)型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

7.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

A.并B.自然連接C.笛卡爾積D.交

8.若有定義“intx,y;”,并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式“(x-y)”等價(jià)的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

9.要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

10.微型計(jì)算機(jī)的運(yùn)算器、控制器及內(nèi)存儲(chǔ)器組合在一起,稱之為()

A.ALUB.CPUC.MPUD.主機(jī)

11.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

12.

13.有以下程序#include<stdio.h>voidfun(int*a,int*B){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,3

14.針對(duì)簡(jiǎn)單程序設(shè)計(jì),以下敘述的實(shí)施步驟順序正確的是()。

A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔

B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔

C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試

D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔

15.下列語(yǔ)句中,說(shuō)法正確的是______。

A.C程序書(shū)寫(xiě)格式嚴(yán)格,每行只能寫(xiě)一個(gè)語(yǔ)句

B.C程序書(shū)寫(xiě)格式嚴(yán)格,每行必須有行號(hào)

C.C程序書(shū)寫(xiě)格式自由,每行可以寫(xiě)多條語(yǔ)句,但之間必須用逗號(hào)隔開(kāi)

D.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行

16.對(duì)于下述說(shuō)明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

17.計(jì)算機(jī)算法必須具備輸入、輸出和()等5個(gè)特性。

A.可行性、可移植性和可擴(kuò)充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性

18.在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠()。

A.對(duì)象的繼承B.對(duì)象的多態(tài)C.對(duì)象的封裝D.對(duì)象的分類

19.下列不可用于C語(yǔ)言用戶標(biāo)識(shí)符的是A.A.j2_KEY

B.char

C._g_

D.Double

20.檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為_(kāi)_____。

A.確認(rèn)測(cè)試B.集成測(cè)試C.驗(yàn)證測(cè)試D.驗(yàn)收測(cè)試

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

22.C語(yǔ)言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

voidfun(intx,inty)

{x=x+y;Y=x-y;x=x-y;

printf(“%d,%d”,x,y);}

main()

{intx=2,y=3;

fun(x,y);

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

}

25.在一個(gè)容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。

26.下面函數(shù)要求計(jì)算兩個(gè)整數(shù)x,y之和,并通過(guò)形參返回該值,請(qǐng)?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

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

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

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

}

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

29.下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

inti=9;

prinff("%o\n",i);

31.有以下程序:

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

33.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

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

35.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

36.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=a[0][i];【】=a[N-1][i];}

}

37.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為_(kāi)_____。

38.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

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

#defineMAX(x,y)(x)>(y)?(x)L:(y)

main()

{inta=5,b=2,C=3,d=3,t;

t=MAX(a+b,c+D)*10;

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

}

40.數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理和控制。

三、1.選擇題(20題)41.對(duì)于n個(gè)結(jié)點(diǎn)的單向鏈表(無(wú)表頭結(jié)點(diǎn)),需要指針單元的個(gè)數(shù)至少為_(kāi)_____。

A.n-1B.nC.n+1D.2n

42.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

43.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

44.要為讀/寫(xiě)操作打開(kāi)一個(gè)字符文件,其正確的打開(kāi)方式為_(kāi)______。

A.wrB.r+C.rb+D.rw

45.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

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

46.如果需要打開(kāi)一個(gè)已經(jīng)存在的非空文件“Demo"進(jìn)行修改下面正確的選項(xiàng)是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

47.若有定義intx,y;并已正確給變量賦值,則下列選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()。

A.(x-y>0)B.(x-y<0)C.(x-y<0||x-y>0)D.(x-y==0)

48.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。

A.將變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)B.使變量x可以由系統(tǒng)自動(dòng)初始化C.使x只能在文本文件內(nèi)引用D.使x的值可以永久保留

49.若以下程序所生成的可執(zhí)行文件名為file1.exe,main(intargc,char*argv[]){while(argc-->0){++argv;printf("%s",*argv);}}當(dāng)鍵入以下命令執(zhí)行該程序時(shí):FILE1CHINABEUINGSHANGHAI程序的輸出結(jié)果是()

A.CHINABEIJIANGSHANGHAI

B.FILE1CHINABEIJING

C.CBS

D.FCB

50.有以下程序

#include<stdlib.h>

gtruetNODE

{intnum;structNODE*next;};

main()

{

structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeef(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next-r;

printf("%d\n",p->num+q->next->num);

}

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

A.10B.20C.30D.50

51.下述程序的輸出結(jié)果是()。#include<stdio.h>intf(n)intn;{if(n==0||n==1)return3;returnn-f(n-2);}voidmain(){printf("\n%d",f(10));}

A.3B.8C.9D.10

52.設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對(duì)函九fun的調(diào)節(jié)器用語(yǔ)句中,正確是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8):

D.fun(32,32);

53.軟件的可維護(hù)性度量可分解為多種因素的度量,下列選項(xiàng)中的______是可維護(hù)性度量的內(nèi)容。

①可測(cè)試性

②可移植性

③可復(fù)用性

④可靠性

A.全部B.①和③C.①、②和④D.②和④

54.循環(huán)控制語(yǔ)句“while(!scanf("%d",&i))getchar();”執(zhí)行的情況是()

A.循環(huán)輸入字符,遇文件結(jié)束符EOF退出

B.循環(huán)條件有錯(cuò),不能執(zhí)行

C.若輸入數(shù)據(jù)i有錯(cuò),暫停等待處理

D.鍵入i值后,回車退出循環(huán)

55.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

56.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達(dá)式的值為()。

(float)(a+b)/2+(int)x%(int)y

A.5.5B.55C.5.500000D.55.00000

57.軟件開(kāi)發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開(kāi)發(fā)、運(yùn)行維護(hù)

B.設(shè)計(jì)階段、編程階段、測(cè)試階段

C.總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計(jì)

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

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

59.在下列字符序列中,不可用做C語(yǔ)言標(biāo)識(shí)符的是()

A.student___numB.classC.#88D.month___12

60.一個(gè)采用順序存儲(chǔ)方式的線性表中,若線性表的第一個(gè)元素的存儲(chǔ)地址是200,每一個(gè)元素的長(zhǎng)度是2,則第6個(gè)元素的地址是______。

A.208B.210C.211D.212

四、選擇題(20題)61.

現(xiàn)有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。

structnode

{bardata;

structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語(yǔ)句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

62.

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

main

{inta=1,b;

for(b=1,b<=10;b++)

{if(a>=8)break;

if(a%2==1){a+=5;continue;}

a=3;}

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

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

63.

64.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

65.若函數(shù)中有定義語(yǔ)句:inta;,則()。

A.系統(tǒng)將自動(dòng)給a賦初值為0B.系統(tǒng)將自動(dòng)給a賦初值一lC.這時(shí)a中的值無(wú)意義D.這時(shí)a中無(wú)任何值

66.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是______。

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

67.

68.

69.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

70.

71.若變量已正確說(shuō)明為int類型,要通過(guò)語(yǔ)句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,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)論