當前位置:成語大全網 - 書法字典 - 二級c答案

二級c答案

多項選擇問題

(1)下列說法是正確的。

a)算法的效率只與問題的規模有關,與數據的存儲結構無關。

b)算法的時間復雜度是指執行算法所需的計算工作量。

c)數據的邏輯結構與存儲結構壹壹對應。

d)算法的時間復雜度與空間復雜度相關。

(2)在結構化程序設計中,模塊劃分的原則是

a)每個模塊應包括盡可能多的功能。

b)每個模塊的規模應盡可能大。

c)模塊之間的鏈接應盡可能緊密。

d)模塊內的高內聚和模塊間的低耦合。

(3)下列說法是正確的

a)軟件測試的主要目的是發現程序中的錯誤。

b)軟件測試的主要目的是確定程序中錯誤的位置。

c)為了提高軟件測試的效率,最好由程序員自己完成軟件測試。

d)軟件測試是為了證明軟件中沒有錯誤。

(4)下列選項不是面向對象編程的特征。

a)繼承性B)多態性C)類比D)封閉性

(5)下列關於柱子的說法是正確的。

a)隊列屬於非線性表。

b)隊列根據“先進後出”的原則組織數據

c)隊列刪除隊列末尾的數據。

d)隊列根據“先進先出”的原則組織數據

(6)對於下面的二叉樹

前序遍歷的結果如下

A) DYBEAFCZX B) YDEBFZXCA

C) ABDYECFXZ D) ABCDEFXYZ

(7)二叉樹中有n個度為2的節點,因此二叉樹中的葉節點為

a)n+1 B)n-1 C)2n D)n/2

(8)在下面的關系運算中,可以在不改變關系表中屬性數量的情況下減少元組的數量。

a)並集b)交集c)投影d)笛卡爾積

(9)在E-R圖中,用來表示實體間關系的圖形是

a)矩形b)橢圓形c)菱形d)平行四邊形

(10)下列說法中錯誤的是

a)在數據庫系統中,數據的物理結構必須與邏輯結構壹致。

b)數據庫技術的根本目標是解決數據共享問題。

c)數據庫設計是指在現有數據庫管理系統的基礎上建立數據庫。

d)數據庫系統需要操作系統的支持。

在(11)算法中,每壹個需要執行的操作都必須明確而嚴格地指定,這屬於算法。

a)合法性b)可行性c)確定性d)貧困

(12)下列說法中錯誤的是

a)計算機不能直接執行C語言編寫的源程序。

b)C程序用C編譯後,生成的文件帶後綴。obj是壹個二進制文件。

c)帶有後綴的文件。obj和帶後綴的文件。鏈接器生成的exe是壹個二進制文件。

帶後綴的二進制文件。obj和。exe可以直接運行。

(13)根據C語言中用戶標識符的命名規則,標識符中不能出現的是

a)大寫字母b)連接符c)數字字符d)下劃線

(14)下列說法中錯誤的是

A)C語言是壹種結構化編程語言。

b)結構化程序由三個基本結構組成:順序、分支和循環。

c)三種基本結構組成的程序只能解決簡單的問題。

d)結構化編程提倡模塊化設計方法。

(15)對於壹個正常運行的C程序,下列說法是正確的。

a)程序的執行總是從主函數開始,到主函數結束。

b)程序的執行總是從程序的第壹個函數開始,到主函數結束。

c)程序的執行總是從主函數開始,到程序的最後壹個函數結束。

d)程序的執行總是從程序的第壹個函數開始,到程序的最後壹個函數結束。

(16)變量已被正確定義。要通過scanf ("%d% c% d% c ",&;a1。c 1;a2和ampC2);該語句將值10和20賦給變量a1和a2,將字符X和Y賦給變量c1和c2。下面顯示的輸入形式是正確的(註意:□代表空格字符)

a)10□x□20□y < enter > b)10□x20□y < enter >

c)10□x < Enter > D)10x < Enter >

20□Y < enter > 20□Y < enter >

(17)如果有壹個代數表達式(其中e只表示自然對數的底數,不是變量),下面能正確表示該代數表達式的C語言表達式是

a)sqrt(abs(n^x+e^x))b)sqrt(fabs(pow(n,x)+pow(x,e))

C)sqrt(fabs(pow(n,x)+exp(x,e))) D) sqrt(fabs(pow(x,n)+exp(x)))

(18)有壹個定義:int k = 0;以下選項的四個表達式的值與其他三個表達式的值不同。

a)k ++ B)k+= 1 C)++ k DD)k+1

(19)有如下程序,其中%u表示按整數輸出,無呼號。

主()

{無符號整數x = 0xFFFF/* x的初始值是十六進制數*/

Printf("%u\n ",x);

}

程序運行後的輸出結果是

a)-1 B)65535 C)32767D)0x ffff

(20)讓變量X和Y被正確定義和賦值。在下面的if語句中,錯誤信息將在編譯時生成。

a)if(x++)B)if(x & gt;y & ampy!=0);

c)如果(x & gty)x--D)if(y & lt;0) {;}

else y++:else x++;

(21)下列選項中,當x為大於1的奇數時,取值為0的表達式。

A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0

(22)下列說法是正確的。

A)A)break語句只能在switch語句中使用。

B)B)continue語句的作用是使程序的執行流程跳出所有包含它的循環。

C)C)break語句只能在循環體和switch語句體中使用。

d)在循環體中使用break語句與continue語句具有相同的效果。

(23)有以下程序

主()

{int k=5,n = 0;

開關(k)

{ case 1:case 3:n+= 1;打破;

違約;n = 0;k-;

情況2:情況4:n+= 2;k-;打破;

}

Printf("%d ",n);

} while(k & gt;0 & amp& ampn & lt5);

}

程序運行後的輸出結果是

A)235 B)0235 C)02356 D)2356

(24)有以下程序

勉()

{int i,j;

for(I = 1;我& lt4;i++)

{ for(j = I;j & lt4;j++) printf("%d*%d=%d ",I,j,I * j);

printf(" \ n ");

}

}

程序運行後的輸出結果是

* p = & ampn;

Printf("輸入n:");scanf("%d ",& ampp);printf("輸出n:");printf("%d\n ",p);

}

這個程序試圖通過指針P為變量N讀入數據並輸出,但是程序中有很多錯誤。以下說法是正確的。

A)int n,* p = NULLb)* p = & amp;n;C)scanf("%d ",& ampp) D)printf("%d\n ",p);

(31)函數f在以下程序中的作用是:當flag為4時,從小到大排序;當標誌為0時,從大到小排序。

void f(int b[],int n,int flag)

{int i,j,t;

for(I = 0;我& ltn-1;i++)

for(j = I+1;j & ltn;j++)

如果(旗幟?b[I]& gt;b[j]:b[I]& lt;b[j]){ t = b[I];b[I]= b[j];b[j]= t;}

}

主()

{int a[10]={5,4,3,2,1,6,7,8,9,10},I;

f(& amp;a[2],5,0);f(a,51);

for(I = 0;我& lt10;i++) printf("%d," a[I]);

}

程序運行後的輸出結果是

A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,

C)5,4,3,21,6,7,8,9,10,D)10,9,8,7,6,5,4,3,21,

(32)有以下程序

void f(int b[])

{ int I;

for(I = 2;我& lt6;i++)b[I]* = 2;

}

主()

{int a[10]={1,2,3,4,5,6,7,8,9,10},I;

f

for(I = 0;我& lt10;i++) printf("%d ",a[I]);

}

程序運行後的輸出結果是

A)1,2,3,4,5,6,7,8,9,10;B)1,2,6,8,10

C)1,2,3,4,10,12,14,16,9,10D)1,2,6,8,10,12,14,16,9,10,

(33)有以下程序

typedef結構{int b,p;} A;

Void f(A c) /*註意:c是結構變量名*/

{ int j;

c . b+ = 1;c . p+= 2;

}

main(){ int I;

A a={1,2 };

f

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

}

程序運行後的輸出結果是

a)2.3 B)2.4 C)1.4D)1.2

(34)有以下程序

主()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,},I,j,k,t;

for(I = 0;我& lt4;i++)

for(j = 0;j & lt3;j++)

for(k = j+1;k & lt4;k++)

if(a[j][I]& gt;a[k][I]){ t = a[j][I];a[j][I]= a[k][I];a[k][I]= t;}/*按列排序*/

for(I = 0;我& lt4;i++)printf("%d ",a[I][j]);

}

程序運行後的輸出結果是

A)1,6,5,7 B)8,7,3,1 C)4,7,5,2D)1,6,2,1,

(35)有以下程序

主()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,},I,k,t;

for(I = 0;我& lt3;i++)

for(k = I+I;k & lt4;k++)if(a[I][I]& lt;a[k][k]){ t = a[I][I];a[I][I]= a[k][k];a[k][k]= t;}

for(I = 0;我& lt4;i++)printf("%d ",a[0][I]);

}

程序運行後的輸出結果是

A)6,21,1,B)6,4,3,2,C)1,1,2,6,D)2,3,4,6,

(36)有以下程序

void f(int *q)

{ int I = 0;

for(我& lt5;i++)(* q)++;

}

主()

{int a[5]={1,2,3,4,5},I;

f

for(I = 0;我& lt5;i++)printf("%d ",a[I]);

}

程序運行後的輸出結果是

A)2,2,3,4,5,B)6,2,3,4,5,C)2,3,4,5,6,

(37)有以下程序

# include & ltstring.h & gt

主()

{char p[20]={'a ',' b ',' c ',' d'},q[]="abc ",r[]= " abcde ";

Strcpy(p+strlen(q),r);strcat(p,q);

Printf("%d%d\n ",sizeof(p),strlen(p));

}

程序運行後的輸出結果是

a)20 9 B)9 9 C)20 11D)11 11

(38)有以下程序

# include & ltstring.h & gt

主()

{char p[20]={'a ',' b ',' c ',' d'},q[]="abc ",r[]="abcde "

strcat(p,r);Strcpy(p+strlen(q),q);

Printf("%d \n ",sizeof(p));

}

程序運行後的輸出結果是

A)9 B)6 C)11 D)7

(39)有以下程序

# include & ltstring.h & gt

主()

{ char p[20]={'a ',' b ',' c ',' d'},q[]="abc ",r[]= " abcde ";

Strcat(p,r);strcpy(p+strlen(q),q);

Printf("%d\n ",strlen(p));

}

程序運行後的輸出結果是

A) 9 B) 6 C) 11 D) 7

else { int a = 7;t++ = a++;}

返回t+a++;

}

主()

{int s=a,I = 0;

for(;I〈2;i++〉s+= f(I);

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

}

程序運行後的輸出結果是

A)24 B)28 C)32 D)36

(43)有壹個名為init.txt的文件,內容如下:

#定義HDY(A,B) A/B

# define PRINT(Y) Printf("y=%d\n,Y)

有以下程序

#include "init.txt "

主()

{int a=1,b=2,c=3,d=4,k;

K=HDY(a+c,b+d);

打印(K);

}

以下對這個程序的描述是正確的

a)編譯錯誤b)操作錯誤

c)運行結果為y=0 D)運行結果為y=6。

(44)有以下程序

主()

{char ch[]="uvwxyz ",* pc

Pc = chprintf(" % c \ n " ,*(PC+5));

}

程序運行後的輸出結果是

A)z B)0 C)元素ch[5]的地址d)字符y的地址

(45)有以下程序

結構S { int n;int a[20];};

空f(結構S *P)

{int i,j,t;

for(I = 0;我& ltp->;n-1;i++)

for(j = j+1;j & ltp->;n-1;j++)

程序運行後的輸出結果是

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

(49)有以下程序

# include & ltstdio.h & gt

主()

{ FILE * fpint I,a[6]={1,2,3,4,5,6 };

fp=fopen("d2.dat "," w ");

fprintf(fp," %d%d\n ",a[0],a[1],a[2]);fprintf(fp," %d%d\n ",a[3],a[4],a[5]);

fclose(FP);

fp=fopen("d2.dat "," r ");

fscanf(fp," " %d%d\n ",& ampk & amp;n);printf("%d%d\n ",k,n);

fclose(FP);

}

程序運行後的輸出結果是

a)1 2 B)1 4 C)123 4D)123 456

(50)有以下程序

# include & ltstdio.h & gt

主()

{ fILE * fpint I,a[6]={1,2,3,4,5,6k };

fp=fopen("d3.dat "," w+b ");

fwrite(a,size(int),6,FP);

fseek(fp,sizeof(int)*3,SEEK SET);/*該語句使讀取文件的位置指針從文件頭向後移動3 int data */

fread(a,sizeof(int),3,FP);fclose(FP);

for(I = 0;我& lt6;i++) printf("%d ",a[I]);

}

程序運行後的輸出結果是

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

2.填空(每空2分,***40分)

註:填空題14有2個空格,19題***有20個空格。

請將每壹個空白正確答案寫在答題卡上序號從[1]到[20]的橫線上,答案不在試卷上計分。

註意:命令關鍵字填空壹定要寫完整。

(1)深度為7的全二叉樹中,度為2的節點數是_ _ _ _ _ _ _ _ _。

(2)軟件測試分為白盒(箱)測試和黑盒(箱)測試,等價類劃分法屬於_ _ _ _ _ _ _ _ _ _。

(3)在數據庫系統中,實現各種數據管理功能的核心軟件稱為數據庫管理系統_ _ _ _ _。

(4)軟件生命周期可以分為幾個階段,壹般分為定義階段、開發階段和維護階段。編碼和測試屬於_ _ _ _ _ _階段。

(5)在結構分析中使用的數據流圖(DFD)中,其中的圖形元素是用_ _ _ _ _ _ _ _來準確解釋的。

(6)執行以下程序後的輸出結果是_ _ _ _ _ _。

主()

{ int a = 10;

a=(3*5,a+4);printf("a=%d\n ",a);

}

(7)執行以下程序時,輸入1234567890,while循環體將執行。

_ _ _ _ _ _ _ _ _次。

# include & ltstdio.h & gt

主()

{ char ch

while((ch = getchar())= = ' 0 ')printf(" # ");

}

(8)下列程序的運行結果是_ _ _ _ _ _ _ _。

int k = 0;

無效資金(整數)

{ m+= k;k+= m;printf("m=%d\n k=%d ",m,k++);}

主()

{ int I = 4;

fun(i++);printf("i=%d k=%d\n ",I,k);

}

(9)下列程序的運行結果是_ _ _ _ _ _ _ _。

主()

{int a=2,b=7,c = 5;

開關(a & gt0)

{案例1:開關(b & lt0)

{ case 1:switch(“@”);打破;

案例2: printf("!");打破;

}

情況0:開關(c==5)

{ case 0:printf(" * ");打破;

案例1:printf(" # ");打破;

案例二:printf(" $ ");打破;

}

默認值:printf(& amp;);

}

printf(" \ n ");

}

(10)下列程序的輸出是_ _ _ _ _ _ _ _ _ _

# include & ltstring.h & gt

主()

{ printf("%d\n ",strlen(" IBM \ n 012 \ 1 \ \ ");

}

(11) Charch = "$ "已被定義;int i=1,j;執行j=!ch & amp& ampi++之後,I的值是_ _ _ _ _ _ _ _ _

(12)下列程序的輸出是_ _ _ _ _ _ _ _ _

# include & ltstring.h & gt

主()

{ char a[]={'\1 ',' \2 ',' \3 ',' \4 ',' \ 0 ' };

Printf("%d %d\n ",sizeof,srelen);

}

(13)有定義語句:int a[][3]={{0},{1},{ 2 } };,數組元素a[1][2]的值是_ _ _ _ _ _ _ _ _。

(14)下面這個程序的作用是求數組X中兩個相鄰元素的和,依次存入數組A,然後輸出。請填空。

主()

{int x[10],a[9],I;

for(I = 0;我& lt10;i++)

Scanf("%d ",& ampx[I]);

for(_ _ _ _ _ _ _ _ _ I & lt;10;i++)

a[I-1]= x[I]+_ _ _ _ _ _ _ _ _ _ _ _ _

for(I = 0;我& lt9;i++)

Printf("%d ",a[I]);

printf(" \ n ");

(15)下面這個程序的作用是:用指針指向三個整數變量,通過指針操作找出三個數的最大值並輸出到屏幕上。請填寫空格:

主()

{int x,y,z,max,*px,*py,*pz,* pmax

Scanf("%d%d%d ",& ampx & amp;y & amp;z);

Px = & ampx;

Py = & ampy;

Pz = & ampz;

Pmax = & ampmax

__________________

if(* pmax & lt;* py)* pmax = * py;

if(* pmax & lt;* pz)* pmax = * pz;

Printf("max=%d\n ",max);

}

(16)下列程序的輸出是_ _ _ _ _ _ _ _ _ _ _ _

Int fun(int*x,int n)

{如果(n==0)

返回x[0];

Else返回x[0]+fun(x+1,n-1);

}

主()

{int a[]={1,2,3,4,5,6,7 };

Printf("%d\n ",fun(a,3));

}

(17)下列程序的輸出是_ _ _ _ _ _ _ _ _ _

# include & ltstdlib.h & gt

主()

{char *s1,*s2,m;

s 1 = S2 =(char *)malloc(sizeof(char));

* s 1 = 15;

* s2 = 20

m = * s 1+* S2;

Printf("%d\n ",m);

}

(18)有說明。

結構日期{整數年;int月;int日;};

請寫壹個定義語句,將D定義為上述結構變量,並依次給其成員年、月、日賦值初值:2006,10,1:_ _ _ _ _ _ _ _;

(19)有壹個定義:FILE * fw,請完成下面的語句來打開文件,以便可以繼續寫到文本文件readme.txt的末尾

fw=fopen("readme.txt "," ________ ")

2007年4月二級C語言筆試答案

多項選擇

1-5: BDACD

6-10: CABCA

11-15: CDBCA

16-20: DCABC

21-25: DCABA

26-30: ADCDA

31-35: BBDDB

36-40歲:DCACA

41-45:達達

46-50歲:ACBDA

填空題

1、63

2.黑盒子

3.數據庫管理系統

4.發展

5.數據字典

6、a=14

7、0

8、m=4 k=4 i=5 k=5

9、# & amp

10、9

11、1

12、5 4

13、0

14、i=1

15、x[i-1]

16 ,* pmax = * px

17、10

18、40

19、結構日期d={2006,10,1}

20、答