2011下半年計算機二級C語言考試真題

  一、選擇題((1)-(10)、(21)-(40)每題2分,(11)-(20)每題1分,共70分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上答在試卷上不得分。

2011下半年計算機二級C語言考試真題

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

A)算法就是程序

B)設計算法時只需要考慮數據結構的設計

C)設計算法時只需要考慮結果的可靠性

D)以上三種說法都不對

(2)下列關於線性鏈表的敘述中,正確的是( )。

A)各數據結點的存儲空間可以不連續,但它們的存儲順序與邏輯順序必須一致

B)各數據結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續

C)進行插入與刪除時,不需要移動表中的元素

D)以上三種說法都不對

(3)下列關於二叉樹的敘述中,正確的是( )。

A)葉子結點總是比度爲2的結點少一個

B)葉子結點總是比度爲2的結點多一個

c)葉子結點數是度爲2的結點數的兩倍

D)度爲2的結點數是度爲1的結點數的兩倍

(4)軟件按功能可以分爲應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬於應用軟件的是( )。

A)學生成績管理系統

B)C語言編譯程序

C)UNIX操作系統

D)數據庫管理系統

(5)某系統總體結構圖如下圖所示:

該系統總體結構圖的深度是( )。

A)7

B)6

C)3

D)2

(6)程序調試的任務是( )。

A)設計測試用例

B)驗證程序的正確性

C)發現程序中的錯誤

D)診斷和改正程序中的錯誤

(7)下列關於數據庫設計的敘述中,正確的是( )。

A)在需求分析階段建立數據字典

B)在概念設計階段建立數據字典

C)在邏輯設計階段建立數據字典

D)在物理設計階段建立數據字

(8)數據庫系統的三級模式不包括( )。

A)概念模式

B)內模式

C)外模式

D)數據模式

(9)有三個關係R、S利T如下:

則由關係R和s得到關係T的操作是( )。

A)自然連接

B)差

C)交

D)並

(10)下列選項中屬於面向對象設計方法主要特徵的是( )。

A)繼承

B)自頂向下

C)模塊化

D)逐步求精

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

A)C語言編寫的函數源程序,其文件名後綴可以是.C

B)C語言編寫的函數都可以作爲一個獨立的源程序文件

C)C語言編寫的每個函數都可以進行獨立的編譯並執行

D)一個C語言程序只能有一個主函數

(12)以下選項中關於程序模塊化的敘述錯誤的是( )。

A)把程序分成若干相對獨立的模塊,可便於編碼和調試

B)把程序分成若干相對獨立、功能單一的模塊,可便於重複使用這些模塊

c)可採用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序

D)可採用自項向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序

(13)以下選項中關於c語言常量的敘述錯誤的是( )。

A)所謂常量,是指在程序運行過程中,其值不能被改變的量

B)常量分爲整型常量、實型常量、字符常量和字符串常量

c)常量可分爲數值型常量和非數值型常量

D)經常被使用的變量可以定義成常量

(14)若有定義語句:int a=10;double b=3.14;,則表達式'A'+a+b值的類型是( )。

A)char

B)int

C)double

D)float

(15)若有定義語句:int x=12,3=8,z;,在其後執行語句z=0.9+x/y;,則Z的值爲( )。

A)1.9

B)1

C)2

D)2.4

(16)若有定義:int a,b;,通過語句scanf("%d;%d",&a,&b);,能把整數3賦給變量a,5賦給變量b的輸入數據是( )。

A)3 5

B)3,5

C)3;5

D)35

(17)若有定義語句:intk1=10,k2=20;,執行表達式(k1=k1>k2)&&(k2=k2>k1)後,k1和k2的值分別爲( )。

A)0和1

B)0和20

C)10和1

D)10和20

(18)有以下程序

#include

main()

{int a=1,b=0;

if(-a) b++;

else if(a=0)b+=2:

else b+=3:

printf("%dn",b);

)

程序運行後的輸出結果是( )。

A)0

B)1

C)2

D)3

(19)下列條件語句中,輸出結果與其他語句不同的是( )。

A)if(a)printf("%d-n",x); else printf("%dn",y);

B)if(a—0)printf("%dn",y); else printf("%dn",x);

C)if(a!=0)p由tf("%dn",x); else printf("%dn",y);

D)if(a=0)printf("%dn",x); else printf("%dn",y);

(20)有以下程序

#include

main()

{int a=7;

while(a--);

printf("%dn",a);

)

程序運行後的輸出結果是( )。

A)-1

B)0

C)1

D)7

(21)以下不能輸出字符A的語句是(注:字符A的ASCIl碼值爲65,字符a的ASCIl碼值爲97)

A)printf("%cn",'a'-32);

B)printf("%dn",'A');

c)printf("%cn",65);

D)print-f("%cn",'B'-1);

(22)有以下程序(注:字符a的ASCIl碼值爲97)

#include

main()

{char*s={"abe");

do

{printf(”%d”,+s%10);++s;)

while(+s);

)

程序運行後的輸出結果是( )。

A)abc

B)789

C)7890

D)979899

(23)若有定義語句:double a,+p=&a;以下敘述中錯誤的是( )。

A)定義語句中的*號是一個間址運算符

B)定義語句中的*號只是一個說明符

C)定義語句中的P只能存放double類型變量的地址

D)定義語句中,*p=&a把變量a的地址作爲初值賦給指針變量P

(24)有以下程序

#include

double f(double x);

main()

{doublea_0;inti;

for(i=0;i<30;i+=10)a+--f((double)i);

printf("%5.0fn",a);

}

double f(double x)

(return X+x+1;)

程序運行後的輸出結果是( )。

A)503

B)401

C)500

D)1404

(25)若有定義語句:int year=2009,*p=&year;,以下不能使變量year中的值增至2010的語句是( )。

A)*p+=1;

B)( *p)++;

C)++(*p);

D)*p++;

(26)以下定義數組的語句中錯誤的是( )。

A)int num[]={1,2,3,4,5,6};

B)int num[][3]={{1,2},3,4,5,6};

C)int num[2][4]=({1,2,,{3,4},{5,6});

D)int num[][4]={1,2,3,4,5,6};

(27)有以下程序

#include

void fun(int+p)

{printf(”%dn”,p[5]);}

main() ;

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

fun(&a[3]);

)

程序運行後的輸出結果是( )。

A)5

B)6

C)8

D)9

(28)有以下程序

#include

#defineN4

void fun(int a[][N],im b[])

{int i;

for(i=0;i)

void main()

{int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;

fun(x,y);

for(i=0;i}

程序運行後的輸出結果是( )。

A)-12,-3,0,0,

B)-3,-1,1,3,

C)0,1,2,3,

D)-3,-3,-3,-3

(29)有以下函數

int fun(char *x,char *y)

{int n=0;

while((*x=*y)&&*x!='