2021-2022年河南省周口市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁
2021-2022年河南省周口市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁
2021-2022年河南省周口市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁
2021-2022年河南省周口市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁
2021-2022年河南省周口市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年河南省周口市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序運(yùn)行后的輸出結(jié)果是()。

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

2.下面不屬于需求分析階段任務(wù)的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審

3.數(shù)據(jù)結(jié)構(gòu)在計算機(jī)內(nèi)存中的表示是指()。A.數(shù)據(jù)的存儲結(jié)構(gòu)B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)的邏輯結(jié)構(gòu)D.數(shù)據(jù)元素之間的關(guān)系

4.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素

A.70B.71C.69D.30

5.若a是數(shù)值類型,則邏輯表達(dá)式“(a==1)||(a!=1)”的值是()。

A.1B.0C.2D.不知道a的值,不能確定

6.閱讀以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("請輸人2個數(shù):");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}該程序在編譯時產(chǎn)生錯誤,其出錯原因是()。A.定義語句出錯,case是關(guān)鍵字,不能用做用戶自定義標(biāo)識符

B.定義語句出錯,printF不能用做用戶自定義標(biāo)識符

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

D.定義語句無錯,printf不能輸出case的值

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

A.C語言編譯系統(tǒng)對標(biāo)識符的長度沒有規(guī)定

B.C語言標(biāo)識符的規(guī)定長度因系統(tǒng)而異

C.C語言規(guī)定標(biāo)識符長度最多允許16個字符,超長報錯

D.C語言規(guī)定以下劃線開頭的標(biāo)識符長度必須大于1

8.以下敘述中錯誤的是()。

A.形參可以是常量、變量或表達(dá)式

B.實(shí)參可以是常量、變量或表達(dá)式

C.實(shí)參的類型應(yīng)與形參的類型賦值兼容

D.實(shí)參的個數(shù)應(yīng)與形參的個數(shù)一致

9.用C語言編寫的代碼程序

A.可立即執(zhí)行B.是一個源程序C.經(jīng)過編譯即可執(zhí)行D.經(jīng)過編譯解釋即可執(zhí)行

10.哈希表的平均查找長度與處理沖突的方法無關(guān)()

A.對B.錯

11.

12.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

13.

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

A.a是實(shí)型變量,C允許進(jìn)行賦值a=10,但不可以這樣說:實(shí)型變量中允許存放整型值

B.在賦值表達(dá)式中,賦值號左邊既可以是變量也可以是任意表達(dá)式

C.執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?

D.已有a=3,b=5,當(dāng)執(zhí)行了表達(dá)式a=b,b=a之后,使a中的值為5,b中的值為3

15.設(shè)有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,則數(shù)組A占用的存儲量為()字節(jié)。

A.448B.56C.56D.64

16.有以下定義和語句

StructWorkers

{intnum;charname[20];charc;

struct

{intday;intmonth;intyear;}s;

};

StructWorkersW,*pe;

PW=&W;

能給W中yeaR成員賦1980的語句是A.*pW.yeaR=1980;

B.W.yeaR=1980;

C.pW->yeaR=1980;

D.W.s.yeaR=1980;

17.插入和刪除只能在一端進(jìn)行線性表,稱為()。

A.隊列B.循環(huán)隊列C.棧D.循環(huán)棧

18.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

19.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”

20.隊列的“先進(jìn)先出”特性是指()。

A.最早插入隊列中的元素總是最后被刪除

B.當(dāng)同時進(jìn)行插入、刪除操作時,總是插入操作優(yōu)先

C.每當(dāng)有刪除操作時,總是要先做一次插入操作

D.每次從隊列中刪除的總是最早插入的元素

二、2.填空題(20題)21.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運(yùn)行后的輸出結(jié)果是()。

22.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

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

sum+=q=>next->num;sum+=r->next->next->num;

24.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

25.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

26.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

27.軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和【】。

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

29.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

30.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。

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

#include"stdio.h"

main()

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

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

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

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

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

#include<stdio.h>

main()

{charm;

m='B'+32;

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

}

33.閱讀下列程序,則程序的輸出結(jié)果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

34.軟件的可移植性是用來衡量軟件【】的重要尺度之一。

35.在軟件維護(hù)時,對測試階段未發(fā)現(xiàn)的錯誤進(jìn)行測試、診斷、定位、糾錯直至回歸測試的過程稱為【】。

36.以下定義的結(jié)構(gòu)體類型包含兩個成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補(bǔ)充完整。

structnode

{intinfo;

【】Link;

};

37.當(dāng)運(yùn)行以下程序時,輸入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\n",str);insert(str);}

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

39.對于一棵具有n個結(jié)點(diǎn)的樹,該樹中所有結(jié)點(diǎn)的度為【】。

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

三、1.選擇題(20題)41.有以下程序:#include<stdio,h>main(){inta=666,b=888;printf("%'d\n",a,b);程序運(yùn)行后的輸出結(jié)果是()。

A.錯誤信息,B.666C.888D.666,888

42.有以下程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="****a*b****",t[80];fun(s,t);puts(t);}程序的運(yùn)行結(jié)果是()。

A.*****a*bB.a*bC.a*b****D.ab

43.下列是合法的用戶自定義標(biāo)識符的是()。

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

44.以下敘述不正確的是______。

A.分號是C語言的必要組成部分

B.C程序的注釋可以寫在句的后面

C.函數(shù)是C程序的基本單位

D.主函數(shù)的名字不一定用main表示

45.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當(dāng)前目錄

46.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}

A.266B.11C.265D.138

47.已知下列函數(shù)定義setw(int*b,intm,intn,intdat){intk;for(k=0;k<m*n,k++){*b=dat;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說明為inta[50])()

A.setw(*a,5,8,1);

B.setw(&a,5,8,1);

C.setw((int*)a,5,8,1);

D.setw(a,5,8,1);

48.下列程序的輸出結(jié)果是______。intm=10;intfun(inta,intB){intm=2;return(a*b-m);}main(){intx=7,y=5;printf("%d\n",fun(x,y)%m);}

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

49.下列程序的輸出結(jié)果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=ifor(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}

A.20B.21C.22D.23

50.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的運(yùn)行結(jié)果是

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

51.下面程序main(){intx=32;print("%d\n",x=x<<1);}的輸出是______。

A.100B.160C.120D.64

52.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

53.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是()

A.free(q);p->Next=q->next;

B.(*p).next=(*q).nexy;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

54.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計B.詳細(xì)設(shè)計C.可行性分析D.需求分析

55.若有定義:inta[3][4],()不能表示數(shù)組元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

56.下列不屬于軟件工程三要素的是

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

57.下列敘述中正確的是A.break語句只能用于switch語句

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對使用

D.在switch語句中,不一定使用break語句

58.以下程序十函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址:#include<stdio.h>#include<string.h>char*scrap(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*庫函數(shù)strcpy對寧符中進(jìn)行復(fù)制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時依次輸入:abcd、4bba和abc三個寧符市,則輸出結(jié)果為

A.abcdB.abbaC.abcD.abca

59.若要打開A盤上user子目錄下名為abc.txt的文本文件進(jìn)行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是

A.fopen(“A:\user\abc.txt”,“r”)

B.fopen(“A:\\user\\abc.txt”,“r+”)

C.fopen(“A:\user\abc.txt”,“rb”)

D.fopen(“A:\user\\abc.txt”,“w”)

60.下列程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

四、選擇題(20題)61.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式

C.數(shù)據(jù)在計算機(jī)中的順序存儲方式

D.存儲在計算機(jī)外存中的數(shù)據(jù)

62.

63.有以下程序:

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

A.Beijing!

B.toBeijing]

C.WelcomeyoutoBeijingI

D.youtoBeijingI

64.

65.

66.

67.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.將磁盤文件的內(nèi)容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復(fù)制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

68.有以下程序

main()

{inti=010,j=0X10;

pirntf("%d,%d\n",i,j);

}

該程序的輸出結(jié)果是

A.10,10B.8,10

C.8,16D.10,16

69.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內(nèi)容為:good。則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

70.

71.“商品”與“顧客”兩個實(shí)體集之間的聯(lián)系一般是

A.一對一B.一對多C.多對一D.多對多

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

main()

{charst[20]="hell0\O\t\\\”;

printf("%d%d\n",strlen(st),sizeof(st));

}

A.99

B.520

C.1320

D.2020

73.

74.設(shè)整型變量a為5,使b不為2的表達(dá)式是()。

A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:1

75.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

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

A.軟件測試應(yīng)該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測試

C.軟件維護(hù)只包括對程序代碼的維護(hù)

D.以上三種說法都不對

77.以下程序的輸出結(jié)果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

78.

79.設(shè)有定義:intX=2;,以下表達(dá)式中,值不為6的是()。

A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1

80.

五、程序改錯題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參n。計算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若輸入6,則應(yīng)輸出0.616667。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的記錄已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun(),其功能是把低于平均分的學(xué)生記錄放入b所指的數(shù)組中,低于平均分的學(xué)生人數(shù)通過形參n返回,平均分通過函數(shù)值返回。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN8typedefstruct{ charnum[10]; doubles;}STREC;doublefun(STREC*a,STREC*b,int*n){}voidmain(){ STRECs[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87}}; STRECh[N]; inti,n; doubleave; ave=fun(s,h,&n); printf(“The%dstudentdatawhichislowerthan%7.3f:\n”,n,ave); for(i=0;i<n;i++)<p=""></n;i++)<> /*輸出成績低于平均分的學(xué)生記錄*/ printf(“%s%4.1f\n”,h[i].num,h[i].s); printf(“\n”);}

參考答案

1.A程序首先以讀二進(jìn)制文件的方式打開文件d.dat;然后使用fwrite函數(shù)將數(shù)組a中6個元素寫入d.dat中。并調(diào)用for循環(huán)將a[2]元素(值為3)6次寫入d.dat文件中;接著使用rewind函數(shù)將文件指針fp移動到文件頭;再使用fseek函數(shù)將fp從當(dāng)前位置向后移動2個整數(shù)位置;最后使用fread函數(shù)從fp指向的位置向后讀取6個整數(shù)。由此可知這6個整數(shù)分別是:3,4,5,6,3,3。故本題答案為A選項。

2.C【答案】:C

【知識點(diǎn)】:需求分析階段的任務(wù)

【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評審三個階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測試計劃,故選C。

3.A數(shù)據(jù)結(jié)構(gòu)在計算機(jī)內(nèi)存中的表示指的是數(shù)據(jù)的存儲結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示。數(shù)據(jù)元素之間的關(guān)系有兩種不同的表示方法:順序映象和非順序映象,并由此得到兩種不同的存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。

4.A

5.A邏輯或“||”要求兩邊的運(yùn)算對象有一個非零值,結(jié)果就為真。變量a的值不確定,但是若a為1,則左邊運(yùn)算對象的值為1;若a不為1,則右邊運(yùn)算對象的值為1,所以總能保證一邊為非零值。故本題答案為A選項。

6.A本題中定義了整形變量case,但case是關(guān)鍵字,關(guān)鍵字不能用做標(biāo)識符。單精度printF不是關(guān)鍵字,因?yàn)闃?biāo)識符區(qū)分大小寫。所以A不正確。

7.B對于標(biāo)識符的長度(即一個標(biāo)識符允許的字符個數(shù)),C語言編譯系統(tǒng)是有規(guī)定的,即標(biāo)識符的前若干個字符有效,超過的字符將不被識別。不同的C語言編譯系統(tǒng)所規(guī)定的標(biāo)識符有效長度是不同的。故本題答案為B選項。

8.A函數(shù)中,形參必須是變量,實(shí)參可以是常量、變量或表達(dá)式,選項A錯誤,選項B正確;實(shí)參的個數(shù)和類型要與形參一致,選項C、D正確。本題答案為A選項。

9.B解析:C語言一種高級語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個后綴為。OBJ的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此。OBJ文件與C語言提供的各種庫函數(shù)連接在一起,生成一個后綴.EXE的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項A錯誤;根據(jù)以上定義,選項C和選項D錯誤,所以,4個選項中選項B符合題意。

10.B

11.A

12.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的開始,SEEK_CUR代表的是文件當(dāng)前位置。

13.D

14.AC語言中語法上規(guī)定實(shí)型變量是不能存放整型類型的數(shù)據(jù)的,整型數(shù)據(jù)也不能存放實(shí)型數(shù)據(jù)。是為了避免類型轉(zhuǎn)換之間可能會發(fā)生的錯誤。

15.A

16.D解析:結(jié)構(gòu)體structureworkers中的成員s是結(jié)構(gòu)體類型,給w中成員year賦值的語句是w.s.year=1980,故選D。

17.C

18.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達(dá)式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當(dāng)于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

19.D在C語言中,字符串常量是用雙引號標(biāo)注的字符序列,因此B選項和C選項不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符以“\\”開頭。A選項中包含3個前兩個(\\\\)代表一個“\\”字符,后面一個為“””。因?yàn)閈\”被看作一個“””,所以該字符串缺少一個結(jié)束的“””。因此A選項不正確。D選項的兩個“”之間沒有任何字符,代表的是一個空串,是合法的字符串常量,因此D選項正確。B選項的abc應(yīng)該使用雙引號標(biāo)注。故本題答案為D選項。

20.D

21.98

22.252H252H解析:要解答本題,首先要明白在對指針進(jìn)行加,減運(yùn)算時,數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應(yīng)該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。

23.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點(diǎn)連接成了一個循環(huán)鏈表,即最后一個結(jié)點(diǎn)的指針域指向了頭結(jié)點(diǎn),整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點(diǎn)。

24.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。

25.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。

26.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

27.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù):軟件工程學(xué)的主要研究對象包括軟件開發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面。即軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

28.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結(jié)束標(biāo)志。因此,只輸出前五個字符,即Hello。

29.k=p;k=p;解析:要找數(shù)組中最大元素的下標(biāo),首先預(yù)設(shè)數(shù)組首元素下標(biāo)為臨時最大元素的下標(biāo),從首元素開始順序向后繼元素逐一比較,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo),直至比較了數(shù)組的全部元素后,臨時最大元素下標(biāo)就是數(shù)組中最大元素的下標(biāo)。程序中,變量k用于存儲臨時最大元素下標(biāo),變量p控制順序比較的循環(huán)變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k]更大時,用p更新k。所以在下劃線處應(yīng)填入代碼“k=p;”。

30.模塊化模塊化

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

32.bb解析:本題實(shí)現(xiàn)的功能是把大寫字母轉(zhuǎn)換為小寫字母。小寫字母的ASCII碼值比相應(yīng)的大寫字母的ASCII碼值大32。

33.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。

34.質(zhì)量質(zhì)量

35.校正性維護(hù)校正性維護(hù)

36.structnode*structnode*解析:link是指向結(jié)構(gòu)體自身的指針,因此link是指針,指向strictnode類型的數(shù)據(jù),可定義成“stmctnode*link”。

37.a*b*c*d*a*b*c*d*解析:本題考查的是函數(shù)與一個簡單的算法結(jié)合在一起的應(yīng)用。首先定義一個int型變量來存放字符串str的長度,執(zhí)行while條件語句。通過分析可知,字符串2*i項的值可由第i項的值得到;第2*i-1項直接賦值為*,i遞減,如此反復(fù)直到不滿足i>0的條件時,輸出運(yùn)行后的字符串。

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

39.n-1n-1解析:設(shè)該樹中所有結(jié)點(diǎn)的度為x,因?yàn)?,在樹的結(jié)點(diǎn)中,除了根結(jié)點(diǎn)以外,其余結(jié)點(diǎn)都有一個分支進(jìn)入,所以,n=x+1,所以x=n-1。

40.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。

41.B解析:在printf函數(shù)中,當(dāng)格式轉(zhuǎn)換說明符個數(shù)少于輸出項個數(shù)時,多余的輸出項不予輸出。

42.C

43.A解析:C語言規(guī)定用戶標(biāo)識符由英文字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,由此可見選項B),D)是錯的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項C)中的int是C語言的關(guān)鍵字。

44.D解析:C語言的程序是由主函數(shù)main()開始運(yùn)行,由主函數(shù)來調(diào)用其他函數(shù),所以D是錯誤的。

45.B解析:本題考查庫函數(shù)調(diào)用的知識點(diǎn)。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。

46.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

47.D

48.D解析:本題考查全局變量和局部變量的區(qū)別。在函數(shù)fun中的m是局部變量,值為2,在主函數(shù)中的m是全局變量,值為10。

49.B

50.D解析:在程序中指針變量P初始指向a[3],執(zhí)行p減1后,P指向a[2],語句y=*p的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。

51.D解析:<<是C語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個語句即是將a的二進(jìn)制數(shù)左移兩位,左移—位相當(dāng)于該數(shù)乘于2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,x<<1=32*2=64。

52.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊列組織數(shù)據(jù)的原則。

53.B

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

軟件生命周期的主要活動階段為:

①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實(shí)施計劃。

②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。

③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

④軟件實(shí)現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。

⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個組成部分。編寫測試分析報告。

⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。

55.D

56.D解析:軟件工程三要素是方法、工具和過程。

57.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標(biāo)出一個執(zhí)行的起點(diǎn),當(dāng)符合某個case時,程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項C不正確,應(yīng)該選擇D。

58.A解析:字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符ASCII碼值較大時,該字符所在的字符串就是較大的字符串。主函數(shù)中調(diào)用了函數(shù)scmp(),分析不難知道該函數(shù)的作用是返回參加比較的兩個字符串中的較小的字符串,它的主函數(shù)中定義了一個二維字符數(shù)組來存放三個字符串.接著通過for循環(huán)給每個字符串賦值,賦值后三個字符串分別為“abcd”、“abba”、“abc”,接著比較str[0]和str[1]的大小,根據(jù)字符串大小比較標(biāo)準(zhǔn)可知str[0]較小,然后通過函數(shù)strcpy()把str[0]中的字符串,拷貝到string中,然后比較string和str[2]的大小,比較結(jié)果是string較小,最后輸出string的值為“abcd”,所以,4個選項中選項A符合題意。

59.B解析:本題考核的知識點(diǎn)是文件名的表示法以及文件的讀寫模式。由于“\\”是轉(zhuǎn)義字符,所以在文件名中的“\\”用“\\\\”來表示。要打開文本文件進(jìn)行讀寫,應(yīng)使用讀寫模式“r+”。

60.A解析:轉(zhuǎn)義字符'\\n'表示換行,'\\\\'表示反斜杠,函數(shù)strlen()是計算字符串的長度,不包括文件結(jié)束標(biāo)志('\\0'),函數(shù)sizeof()統(tǒng)計字符串所占的字節(jié)數(shù)。

61.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

62.C

63.Afor循環(huán)的作用是每次遇到空格,將空格后面的移動到數(shù)組的最前面。因此數(shù)組最后的狀態(tài)是“Bei-jing!、Og!\0ng!、neijing!、O”,但是pfinff(“%s”)打印遇到、0自動結(jié)束。因此,打印Beijing!。故答案為A選項。

64.D

65.B

66.D

67.C本題主要考查文件的操作。在本題的程序中,首先定義了兩個文件指針fp1和fp2,然后用指針fp1指向一個以讀方式打開的文件file1,用指針fp2指向一個以寫方式打開的文件file1,接著執(zhí)行while循環(huán),循環(huán)的結(jié)束條件是(!feof(fp1))為假,即feof(fp1)為真,表示對文件fp1的操作讀取到結(jié)束符,因此,循環(huán)結(jié)束的條件是對文件file1的讀取結(jié)束,循環(huán)體語句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函數(shù),C語言提供這兩個函數(shù)對文本文件進(jìn)行字符的讀寫操作。fgetc(fp1)函數(shù)的作用是從輸入流fp1的當(dāng)前位置返回一個字符,并將文件指針指示器移到下一個字符處;fputc(ch,fp2)函數(shù)的作用是將字符ch的值寫入所指定的流文件的當(dāng)前位置處,并將文件指針后移一位。

根據(jù)上面的分析,可以知道循環(huán)結(jié)束后,即將指針fp1指向的文件復(fù)制到指針fp2指向的文件中,然后關(guān)閉兩個操作的文件。因此,本題程序的作用是將一個磁盤文件復(fù)制到另一個磁盤文件中,本題正確答案選C。

68.C本題主要考查八進(jìn)制數(shù)與十六進(jìn)制數(shù)的十進(jìn)制輸出。做這類題目的關(guān)鍵是對數(shù)據(jù)進(jìn)行數(shù)制轉(zhuǎn)換。

在程序中,首先定義了兩個變量i和j,其中i的初值為一個八進(jìn)制數(shù)10,而j的初

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論