計算機二級(C)37-真題(含答案與解析)-交互_第1頁
計算機二級(C)37-真題(含答案與解析)-交互_第2頁
計算機二級(C)37-真題(含答案與解析)-交互_第3頁
計算機二級(C)37-真題(含答案與解析)-交互_第4頁
計算機二級(C)37-真題(含答案與解析)-交互_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機二級(C)37(總分3040,做題時間120分鐘)選擇題(1-10題每題2分,11-50題每題1分,共60分)1.

DOS命令“COPY/?”的功能是()。A

將當(dāng)前盤當(dāng)前目錄中的所有文件復(fù)制到當(dāng)前盤的根目錄下B

將當(dāng)前盤當(dāng)前目錄中所有以單個字符命名的文件復(fù)制到當(dāng)前盤的根目錄下C

以提示方式復(fù)制文件D

顯示COPY命令的幫助信息

分值:60答案:D2.

若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是【】。A

++x,y=x--B

x+l=yC

x=x+10=x+yD

double(x)/10

分值:60答案:A選項A)為C語言中的逗號表達式。賦值表達式的左側(cè)不能是表達式。在進行強制類型轉(zhuǎn)換時,數(shù)據(jù)類型兩邊的圓括號不能省略。3.

有以下程序voidf(intn,int*r){intrl=0;if(n%3=0)rl=n/3;elseif(n%5=0)rl=n/5;elsef(n,&r1);*r=rl;}main(){intrn=7,r;f(m,&);printf("%d",r);}程序運行后的輸出結(jié)果是【】。A

2B

1C

3D

0

分值:60答案:A本題考查了函數(shù)的遞歸調(diào)用。在f函數(shù)中,當(dāng)m=7時,程序執(zhí)行"f(n,&r1);"語句,遞歸調(diào)用f(6,&r1),程序執(zhí)行"r1=n/3;"語句,即r1=6/3=2,然后執(zhí)行",*r=r1;"語句,所以輸出結(jié)果為2。4.

在DOS環(huán)境下,代表鍵盤和顯示器的設(shè)備文件名為()。A

PRNB

CONC

NULD

LPT

分值:60答案:B5.

有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);}}main(){intx[]={2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\n");}程序運行后的輸出結(jié)果是()。A

1268B

8621C

8162D

8612

分值:60答案:C6.

有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運行后的輸出結(jié)果是【】。A

SunDan20044550B

Penghua20045537C

LiSiGuo20042580D

SunDan20041703

分值:60答案:B本題將結(jié)構(gòu)體數(shù)組s的首地址傳遞給了結(jié)構(gòu)體指針變量p,并在函數(shù)f中改變了指針變量p所指向的第二個結(jié)構(gòu)體中的成員變量,這一改變,也就是改變了主函數(shù)中s[1]的成員變量,故程序輸出的值為Penghua20045537。7.

有以下程序main(){inta=1,b=3,C=5,*P;int*pl=&a,,*p2=&b,*p3=&c;*P=*pl*(*p2);printf("%d\n",*P);}執(zhí)行后的輸出結(jié)果是【】。A

1B

2C

3D

4

分值:60答案:C程序使指針pl、p2、p3指向a、b、c值所存放的地址空間。然后再將指針變量*pl、*p2運算所得的值放入指針變量*p,即放入了c值所存放的地址。則最后輸出c的時候得到的值就是c地址里面的值,即1*3:3。8.

以下選項中不能作為合法常量的是【】。A

1.234e04B

1.234e0.4C

1.234e+4D

1.234e0

分值:60答案:B指數(shù)形式的實型常量要求字母e(或E)之前必需有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以本題中選項B非法。9.

以下選項中不能正確把c1定義成結(jié)構(gòu)體變量的是()。A

typedefstruct{intred;intgreen;intblue;}COLOR;COLORcl;B

structcolorcl{intred;intgreen;intblue;}C

structcolor{intred;intgreen;intblue;}cl;D

struct{intred;intgreen;intblue;}cl;

分值:60答案:B10.

以下敘述中錯誤的是【】。A

可以通過typedef增加新的類型B

可以用typedef將已存在的類型用一個新的名字來代表C

用typedef定義新的類型名后,原有類型名仍有效D

用typedef可以為各種類型起別名,但不能為變量起別名

分值:60答案:A關(guān)鍵字typedef的作用只是將C語言中的已有的數(shù)據(jù)類型作了置換,并不是增加新的類型。11.

有以下定義:#include<stdio.h>chara[10],*b=a;不能給數(shù)組a輸入字符串的語句是()。A

gets(a)B

gets(a[0])C

gets(&a[0]);D

gets(b);

分值:60答案:B12.

有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}程序運行后的輸出結(jié)果是【】。A

16B

10C

8D

6

分值:60答案:B數(shù)組a各元素a[0]~a[9]的值依次為1~10;在程序的說明部分,指針變量p初始化為&a[3],即*p的值為4;指針變量q初始化為p+2,即&a[3]+2,所以*q的值為6,所以*p+*q的值為10。13.

下列敘述中正確的是【】。A

算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B

算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量C

數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的D

算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)

分值:60答案:B根據(jù)時間復(fù)雜度和空間復(fù)雜度的定義可知,算法的時間復(fù)雜度與空間復(fù)雜度并不相關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它是從邏輯上描述數(shù)據(jù)元素之間關(guān)系的,是獨立于計算機中的,數(shù)據(jù)的存儲結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計算機中表示,它們并非一一對應(yīng)。算法的執(zhí)行效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)。14.

有以下程序:main(){intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}程序運行后的輸出結(jié)果是()。A

75310246B

01234567C

76310462D

13570246

分值:60答案:A15.

所謂“裸機”是指()。A

單片機B

單板機C

不裝備任何軟件的計算機D

只裝備操作系統(tǒng)的計算機

分值:60答案:C16.

設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。A

輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出B

運行時產(chǎn)生出錯信息C

輸出值為2002D

輸出值為2003

分值:60答案:D17.

有以下程序intfun1(doublea){returna*=a;}intflun2(doubleX,doubleY){doublea=0,b=0;a=funl(X);b=funl(Y);return(int)(a+b);}main(){doubleW;w=fun2(1.1,2.0);……}程序執(zhí)行后變量W中的值是【】。A

5.21B

5C

5D

0

分值:60答案:C題中變量w的定義為double型,函數(shù)fun2()的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。18.

有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運行后的輸出結(jié)果是()。A

3B

5C

-1D

-2

分值:60答案:D19.

以下程序中函數(shù)f()的功能是將n個字符串按由大到小的順序進行排序。#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=O;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};inti;f(p,5);printf("%d\n",strlen(p[O]));}程序運行后的輸出結(jié)果是()。A

6B

4C

3D

5

分值:60答案:C對字符串比較的方法是依次對兩字符串對應(yīng)位置上的字符兩兩比較,當(dāng)出現(xiàn)第一對不相同的字符時,即由這兩個字符(ASCII碼值)決定所在串的大小。20.

C語言中,函數(shù)值類型的定義可以缺省,此時函數(shù)值的隱含類型是()。A

voidB

intC

floatD

double

分值:60答案:B21.

以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#號時結(jié)束輸入和輸出操作,但程序有錯。#include<stdio.h>main(){FILE*fout;charch;fout=fopen(''abc.txt'',''w'');ch=fgetc(stdin);while(ch!=''#''){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出錯的原因是()。A

函數(shù)fopen調(diào)用形式有誤B

輸入文件沒有關(guān)閉C

函數(shù)fgetc調(diào)用形式有誤D

文件指針stdin沒有定義

分值:60答案:A22.

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

1212B

117C

1111D

127

分值:60答案:B根據(jù)宏替換的替換規(guī)則,我們可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。因此,本題的答案為選項B。23.

以下敘述中正確的是【】。A

調(diào)用printf函數(shù)時,必須要有輸出項B

使用putchar函數(shù)時,必須在之前包含頭文件stdio.hC

在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出D

調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼

分值:60答案:B在使用標準輸入輸出庫函數(shù)(除了Printf和scanf)前,必須要用預(yù)編譯命令"#include"將頭文件"stdio.h"包括到用戶源文件中。24.

有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在執(zhí)行了c=&b;b=&a;語句后,表達式:**c的值是()。A

變量a的地址B

變量b中的值C

變量a中的值D

變量b的地址

分值:60答案:C25.

有以下程序main(intargc,char*argv[]){intn,i=0;while(argv[1][i]!=''\0''){n=fun();i++;}printf("%d\n",n*argc);}intfun(){staticints=0;s+=1;returns;}假設(shè)程序編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令exam123〈回車〉則運行結(jié)果為()。A

6B

8C

3D

4

分值:60答案:A26.

有以下定義和語句:inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];則*p[0]+1)所代表的數(shù)組元素是()。A

a[0][1]B

a[1][0]C

a[1][1]D

a[1][2]

分值:60答案:C27.

若有以下說明和定義typedefint*INTEGER;INTEGERp,*q;以下敘述正確的是()。A

p是int型變量B

p是基類型為int的指針變量C

q是基類型為int的指針變量D

程序中可用INTEGER代替int類型名

分值:60答案:B語句typedefint*INTEGER;定義了一個新類型名INTEGER,因此語句INTEGERp,*q;就相當(dāng)于int*p,**q;。28.

有以下程序fun(intX,intY){return(X+Y);}main(){inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),C++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是【】。A

6B

7C

8D

9

分值:60答案:C變量a.b,c的初始值分別為1,2,3。因此逗號表達式"a++,b++,a+b"的值等于5,表達式c++的值為3,這樣主函數(shù)main()中調(diào)用子函數(shù)的表達式為"fun(5,3);",其返回值等8。所以變量sum的值等于8。29.

有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個鏈表中的三個連續(xù)結(jié)點。structnode{intdata;structnode*next;}*p,*q,*r;現(xiàn)要將q和r所指結(jié)點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是()。A

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

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

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

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

分值:60答案:A30.

以下不合法的字符常量是【】。A

’\018’B

’\’C

’\\’D

’\xcc’

分值:60答案:A字符常量是括在一對單引號內(nèi)的字符。選項A)‘\018’是八進制字符串格式,所以里面的數(shù)不能大于8。選項B、C、D都是轉(zhuǎn)義字符。31.

設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:if(a<B)if(c=D)y=0;elsey=1;該語句所表示的含義是【】。A

B

C

D

分值:60答案:Cif語句中包含一個或多個if語句稱為if語句的嵌套。在C語言中,從最內(nèi)層開始,else總是與它上面最近的(未曾配對的)if配對。故本題中y=1的條件是c≠d,又因為此if語句是前一個if語句的內(nèi)層嵌套語句,所以在滿足內(nèi)層嵌套的if語句之前,必須先滿足外層的if語句中的條件表達式"a<b",所以選項C是正確的。32.

下列敘述中正確的是【】。A

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

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

軟件維護只包括對程序代碼的維護D

以上三種說法都不對

分值:60答案:D因為測試的目的在于發(fā)現(xiàn)錯誤,從心理學(xué)角度講,由程序的編寫者自己進行測試是不合適的,為了達到最好的測試效果,應(yīng)該由獨立的第三方進行測試工作,所以選項A錯誤;程序調(diào)試,修改一個錯誤的同時可能引入了新的錯誤,解決的辦法是在修改了錯誤之后,必須進行回歸測試,所以選項B錯誤;所謂軟件維護,就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程,可見選項C也是錯誤的。33.

若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價的賦值語句是()。A

s=a+b;B

s=a+c;C

s=s+c;D

s=b+c;

分值:60答案:B34.

有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運行后的輸出結(jié)果是()。A

3B

2C

1D

0

分值:60答案:D35.

有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat"start");WriteStr("t1,dat","end");}程序運行后,文件t1.dat中的內(nèi)容是【】。A

startB

endC

startendD

endrt

分值:60答案:B兩次使用"寫入"的方式打開同一個文件,在第二次打開時,文件指針指向文件頭,所以此次寫入的數(shù)據(jù)覆蓋了文件原有的數(shù)據(jù),故本題中t1.dat的內(nèi)容為end。36.

有以下函數(shù):fun(char*a,char*b){while((*a!=''\''0&&(*b!=''\0'')&&(*a=*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是【】。A

計算a和b所指字符串的長度之差B

將b所指字符串連接到a所指字符串中C

將b所指字符串連接到a所指字符串后面D

比較a和b所指字符串的大小

分值:60答案:D字符串的比較規(guī)則是對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到'\0'為止,相等,則返回0,否則返回第一個不等字符串的ASCII碼的差值。37.

有以下程序voidfunl(char*P){char*q;q=P;while(*q!=’\0’){(*q)++;q++;)}main(){chara[]={"Program"),*p;P=&a[3];fun1(P);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是【】。A

ProhsbnB

PrphsbnC

ProgsbnD

Program

分值:60答案:A(*q)++是q所指的字符加1,q++就是指針移到下一個字符。38.

在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是【】。A

各模塊應(yīng)包括盡量多的功能B

各模塊的規(guī)模應(yīng)盡量大C

各模塊之間的聯(lián)系應(yīng)盡量緊密D

模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度

分值:60答案:D在結(jié)構(gòu)化程序設(shè)計中,一般較優(yōu)秀的軟件設(shè)計盡量做到高內(nèi)聚、低耦合,這樣有利于提高軟件模塊的獨立性,這也是模塊劃分的原則。39.

若有代數(shù)式根號下n的x次方+e的x方的絕對值(其中e僅代表自然對數(shù)的底數(shù),不是變量)則一下能正確表示該代數(shù)式的C語言表達式的是【】。A

B

C

D

分值:60答案:C本題主要考查C語言的庫函數(shù)。abs求整數(shù)的絕對值,fabs求雙字節(jié)型的絕對值,pow函數(shù)的原形是doublepow(doublex,doubleY),計算x的y次方;exp函數(shù)的原形是doubleexp(doublex),求10的x次方;sqrt函數(shù)的原形是doublesqrt(doublex),為x的平方根。故本題答案為C)。40.

有以下程序structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}main(){inti;structSS={10,{2,3,1,6,8,7,5,4,10,9}};f(s.a,s.n);for(i=0;i<s.n;i++)printf("%d,",s.a[i]);}程序運行后的輸出結(jié)果是【】。A

2,4,3,9,12,12,11,11,18,9,B

3,4,2,7,9,8,6,5,11,10,C

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

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

分值:60答案:A本題中,在調(diào)用函數(shù)時將結(jié)構(gòu)體變量的兩個成員作為實參,其中的成員數(shù)組a實際向函數(shù)f()傳遞的是該數(shù)組的地址,因此在函數(shù)f()中所對應(yīng)的形參發(fā)生改變時,該數(shù)組內(nèi)的數(shù)據(jù)也會發(fā)生改變。函數(shù)f()實現(xiàn)的功能是將成員數(shù)組中的前9個元素分別加上該元素的下標,作為新的元素。41.

有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序運行后的輸出結(jié)果是()。A

-4B

1C

4D

8

分值:60答案:C本題考點是函數(shù)之間的參數(shù)傳遞。42.

有以下程序:main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf(“n=%d\n”,n);}程序執(zhí)行后的輸出結(jié)果是()。A

n=5B

n=2C

n=3D

n=4

分值:60答案:D43.

下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是【】。A

軟件測試B

概要設(shè)計C

軟件維護D

詳細設(shè)計

分值:60答案:C通常把軟件產(chǎn)品從提出、實現(xiàn)、使用、維護到停止使用退役的過程稱為軟件生命周期。軟件生命周期分為3個時期共8個階段:軟件定義期:包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期:包括概要設(shè)計、詳細設(shè)計、實現(xiàn)和測試4個階段;運行維護期:運行維護階段。44.

有以下程序:main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序運行后的輸出結(jié)果是()。A

3B

6C

9D

2

分值:60答案:B45.

有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);}執(zhí)行后輸出的結(jié)果是()。A

16B

12C

28D

21

分值:60答案:A46.

有以下程序段typedefstructnode{intdata;structnode*next;}*NODE;NODEp;以下敘述中正確的是【】。A

p是指向structnode結(jié)構(gòu)變量的指針的指針B

NODEp;語句出錯C

p是指向structnode結(jié)構(gòu)變量的指針D

p是structnode結(jié)構(gòu)變量

分值:60答案:C在C語言中,typedef用于說明一種新的類型名,本題中的node被定義為一種結(jié)構(gòu)體類型名,NODE被定義為指向這種結(jié)構(gòu)體變量的指針,我們可以用它來定義一個指向該類型結(jié)構(gòu)體變量的指針。47.

有以下程序:#include<stdlib.h>structNODE{intnum;structNODE*next;};main(){structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf(“%d\n”,sum);}執(zhí)行后的輸出結(jié)果是()。A

3B

4C

5D

6

分值:60答案:B48.

有以下程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是【】。A

任意正奇數(shù)B

任意負偶數(shù)C

任意正偶數(shù)D

任意負奇數(shù)

分值:60答案:D要使得程序段不陷入死循環(huán),則必須存在終止循環(huán)的條件"t=n",由于t的初始值為1,且每執(zhí)行一次循環(huán)都會使得t的值減2,故執(zhí)行本程序后t有可能的最大值為-1,然后,依次減2,所以鍵盤輸入的n的值必須是t的值之一,即為任意負奇數(shù)。49.

下列選項中不符合良好程序設(shè)計風(fēng)格的是【】。A

源程序要文檔化B

數(shù)據(jù)說明的次序要規(guī)范化C

避免濫用goto語句D

模塊設(shè)計要保證高耦合、高內(nèi)聚

分值:60答案:D程序設(shè)計風(fēng)格是指編寫程序時所表現(xiàn)出的特點、習(xí)慣和邏輯思路。著名的"清晰第一,效率第二"的論點已成為當(dāng)今主導(dǎo)的程序設(shè)計風(fēng)格。要形成良好的程序設(shè)計風(fēng)格,主要應(yīng)注意和考慮下述一些因素:源程序文檔化;數(shù)據(jù)說明的次序規(guī)范化;避免濫用goto語句等,除此之外,一般較優(yōu)秀的軟件設(shè)計盡量做到高內(nèi)聚、低耦合,這樣有利于提高軟件模塊的獨立性。所以正確選項是D)。50.

有以下程序main(){chark;intI;for(i=1;i<3;i++){scanf(“%c”,&k);switch(k){case‘0’:printf(“another\n”);case‘1’:printf(“number\n”);}}}程序運行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是()。A

anothernumberB

anothernumberanotherC

anothernumbernumberD

numbernumber

分值:60答案:A填空題(每空2分,共40分)51.

以下sstrcpy()函數(shù)實現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個新的字符串s。請?zhí)羁?。voidsstrcpy(char*s,char*t){while(*s++=【】);}main(){charstr1[100],str2[]=”abcdefgh”;sstrcpy(str1,str2);printf(“%s\n”,str1);}

分值:2答案:*t++52.

執(zhí)行以下程序后的輸出結(jié)果是【】。main(){inta=10;a=(3*5,a+4);printf("a=%d\n",a);}

分值:2答案:a=14本題考查的是的表達式的優(yōu)先級問題。先計算表達式3*5=15,再計算a+4=14,將數(shù)據(jù)14賦值給a,根據(jù)printf()函數(shù)內(nèi)的輸出格式控制串,最后的輸出結(jié)果應(yīng)為"a=14"。53.

下面程序的運行結(jié)果是:【】intf(inta[],intn){if(n>1)returna[0]+f(&a[1],n-1);elsereturna[0];}main(){intaa[3]={1,2,3},s;s=f(&aa[0],3);;printf(“%d\n”,s);}正確

錯誤

分值:2答案:未知54.

在Windows環(huán)境下,利用菜單命令刪除固定硬盤上的文件與文件夾,實際上是將需要刪除的文件與文件夾移動到【】文件夾中。

分值:2答案:回收站55.

下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為【】。正確

錯誤

分值:2答案:未知在程序結(jié)構(gòu)圖的有關(guān)術(shù)語中,寬度的概念是:整體控制跨度,即各層中所含的模塊數(shù)的最大值,由圖可得此軟件系統(tǒng)結(jié)構(gòu)圖的寬度為3。56.

以下程序運行后的輸出結(jié)果是【】。main(){inti,m=0,n=0,k=0;for(i=9;i<=11;i++)switch(i/10){case0:m++;n++;break;case10:n++;break;default:k++;n++;}printf("%d%d%d\n",m,n,k);}

分值:2答案:13257.

以下程序運行后的輸出結(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);}A

B

C

D

分值:2答案:未知本題考點是局部變量的作用范圍。58.

以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。#include<stdio.h>main(){inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k;printf("%d%d%d\n",i,j,k);}

分值:2答案:10300在scanf格式控制符中,如果在%后有一個"*"附加說明符,表示跳過它指定的列數(shù)。本題中""%d%*d""表示將10賦給i,%*d表示讀入整數(shù)但不賦給任何變量,然后再讀入整數(shù)30賦給變量j,那么變量k并沒有重新賦值,仍為初始值0。所以輸出的結(jié)果為10300。59.

算法復(fù)雜度主要包括時間復(fù)雜度和【】復(fù)雜度。

分值:2答案:空間程序在計算機上運行時所耗費的時間由下列因素所決定:程序運行時所需輸入的數(shù)據(jù)總量,對源程序進行編譯所需時間,計算機執(zhí)行每條指令所需時間,程序中的指令重復(fù)執(zhí)行的次數(shù)。前一條取決于實現(xiàn)算法的計算機欺、硬件系統(tǒng),習(xí)慣上常常把語句重復(fù)執(zhí)行的次數(shù)作為算法運行時間的相對量度,稱作算法的時間復(fù)雜度。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。60.

以下程序運行后的輸出結(jié)果是【】。fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i<3;i++)printf("%d%d",i,fun(a));printf("\n");}

分值:2答案:010111212靜態(tài)局部變量是在編譯時賦初值的,在程序運行時它已有初值。61.

若fp已正確定義為一個文件指針,d1.dat為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen【】;。

分值:2答案:"dl.dat","rb"或"dl.dat","r+b"或"dl.dat","rb+"。62.

若有以下程序main(){chara;a=''H''-''A''+''0'';printf("%c\n",a);}執(zhí)行后輸出結(jié)果是【】。正確

錯誤

分值:2答案:未知63.

以下程序運行后的輸出結(jié)果是【】。main(){inta=1,b=2,c=3;if(c=a),printf("%d\n",c);elseprintf("%d\n",b);}正確

錯誤

分值:2答案:未知此題需特別注意的是if的判斷條件是"c=a",而不是"c=a",由于a=1,故條件c=1為真:所以輸出的c的值為1。64.

有以下程序,若運行時從鍵盤輸入:18,11<回車>,則程序的輸出結(jié)果是【】。main(){inta,b;printf("Entera,b:");scanf("%d,%d",&a,&b);while(a!=b){while(a>b)a-=b;while(b>a)b-=a;}printf("%3d%3d\n",a,b);}

分值:2答案:11外層循環(huán)共執(zhí)行了4次,最后a和b的值都等于1時,退出循環(huán)輸出結(jié)果。65.

以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論