當前位置:才華齋>IT認證>計算機等級>

2016下半年計算機考試二級C筆試試題(文字版)

計算機等級 閱讀(1.28W)

  一、選擇題

2016下半年計算機考試二級C筆試試題(文字版)

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

A)對長度為 n的有序連結串列進行查詢,最壞清況下需要的比較次數為 n

B)對長度為 n的有序連結串列進行對分查詢,最壞情況下需要的比較次數為 (n/2)

C)對長度為 n的有序連結串列進行對分查詢,最壞情況下需要的比較次數為 (log2n)

D)對長度為 n的有序連結串列進行對分查詢,最壞情況下需要的比較次數為 (nlog2n)

(2)演算法的時問複雜度是指

A)演算法的執行時間

B)演算法所處理的資料量

C)演算法程式中的語司或指令條數

D)演算法在執行過程中所需要的基本運算次數

(3)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體 (或工具軟體 )。下面屬於系統軟體的是

A)編輯軟體

B)作業系統

C)教務管理系統

D)瀏覽器

(4)軟體 (程式 )除錯的任務是

A)診斷和改正程式中的錯誤

B)儘可能多地發現程式中的錯誤

C)發現並改正程式中的所有錯誤

D)確定程式中錯誤的性質

(5)資料流程圖 (DFD圖 )是

A)軟體概要設計的工具

B)軟體詳細設計的工具

C)結構化方法的需求分析工具

D)面向物件方法的需求分析工具

(6)軟體生命週期可分為定義階段,開發階段和維護階段。詳細設計屬於

A)定義階段

B)開發階段

C)維護階段

D)上述三個階段

(7)資料庫管理系統中負責資料模式定義的語言是

A)資料定義語言

B)資料管理語言

C)資料操縱語言

D)資料控制語言

(8)在學生管理的關係資料庫中,存取一個學生資訊的資料單位是

A)檔案

B)資料庫

C)欄位

D)記錄

(9)資料庫設計中,用 E-R圖來描述資訊結構但不涉及資訊在計算機中的表示,它屬於資料庫設計的

A)需求分析階段

B)邏輯設計一階段

C)概念設計階段

D)物理設計階段

(10)有兩個關係 R和 T如下:

則由關係 K得到關係 T的操作是

A)選擇

B)投影

C)交

D)並

(11)以下敘述正確的是

A)C語言程式是由過程和函式組成的

B)C語言函式可以巢狀呼叫,例如: fun(fun(x))

C)C語言函式不可以單獨編譯

D)C語言中除了 main函式,其他函式不可作為單獨檔案形式存在

(12)以下關於 C語言的敘述中正確的是

A)C語言中的註釋不可以夾在變數名或關鍵字的中間

B)C語言中的變數可以在使用之前的任何位置進行定義

C)在 C語言算術表示式的書寫中,運算子兩側的運算數型別必須一致

D)C語言的數值常量中夾帶空格不影響常量值的`正確表示

(13)以下 C語言使用者識別符號中,不合法的是

A)_1

B)AaBc

C)a_b

D)a— b

(14)若有定義: double a=22;int i=0,k=18;,則不符合 C語言規定的賦值語句是

A)a=a++,i++;

B)i=(a+k)<=(i+k);

C)i=a%11;

D)i=!a;

(15)有以下程式

#include

main()

{ chara,b,c,d;

scanf(“ %c%c” ,&a,&b);

c=getchar();d=getchar();

printf(“ %c%c%c%cn” ,a,b,c,d);

}

當執行程式時,按下列方式輸入資料 (從第 1列開始,代表回車,注意:回車也是一個字元 )

12

34

則輸出結果是

A)1234

B)12

C)12

3

D)12

34

(16)以 i關於 C語言資料型別使用的敘述中錯誤的是

A)若要準確無誤差的表示自然數,應使用整數型別

B)若要儲存帶有多位小數的資料,應使用雙精度型別

C)若要處理如“人員資訊”等含有不同型別的相關資料,應自定義結構體型別

D)若只處理“真”和“假”兩種邏輯值,應使用邏輯型別

(17)若 a是數值型別,則邏輯表示式 (a==1)||(a!=1)的值是

A)1

B)0

C)2

D)不知道 a的值,不能確定

(18)以下選項中與 if(a==1)a=b; else a++;語句功能不同的 switch語句是

A)switch(a)

{case:a=b;break;

default:a++;

B)switch(a==1)

{case0:a=b;break;

case 1:a++;

}

C)switch(a)

{default:a++;break;

case 1:a=b;

}

D)switch(a==1)

{case1:a=b;break;

case 0:a++;

}

(19)有如下巢狀的 if語句

if (a

if(a

else k=c;

else

if(b

else k=c;

以下選項中與上述 if語句等價的語句是

A)k=(a

B)k=(ac)?b:c);

C)k=(a

D)k=(a

(20)有以下程式

#include

main()

{in i,j,m=1;

for(i=1;i<3;i++)

{for(j=3;j>O;j--)

{if(i*j)>3)break;

m=i*j;

}

}

printf("m=%dn",m);

程式執行後的輸出結果是

B)m=2

C)m=4

D)m=5

(21)有以下程式

#include(stdio.h>

main()

{inta=l;b=2;

for(;a<8;a++){b+=a;a+=2;}

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

}

程式執行後的輸出結果是

A)9, 18

B)8, 11

C)7, 11

D)10, 14

(22)有以下程式,其中 k的初值為八進位制數

#include

main()

{int k=011;

printf("%dn", k++);

程式執行後的輸出結果是

A)12

B)11

C)10

D)9

(23)下列語句組中,正確的是

A)char*s;s="Olympic";

B)chars[7];s="Olympic";

C)char*s;s={"Olympic"} ;

D)chars[7];s={"Olympic"} ;

(24)以下關於 return語句的敘述中正確的是

A)一個自定義函式中必須有一條 return語句

B)一個自定義函式中可以根據不同情況設定多條 return語句

C)定義成 void型別的函式中可以有帶返回值的 return語句

D)沒有 return語句的自定義函式在執行結束時不能返回到呼叫處

(25)下列選項中,能正確定義陣列的語句是

A)int num[0..2008];

B)int num[];

C)int N=2008;

int num[N];

D)#define N 2008

int num[N];

(26)有以下程式

#include

voidfun(char *c,int d)

{*c=*c+1;d=d+1;

printf("%c,%c,",*c,d);

main()

{charb='a',a='A';

fun(&b,a);printf("%e,%en",b, a);

程式執行後的輸出結果是

A)b, B, b, A

B)b, B, B, A

C)a, B, B, a

D)a, B, a, B

(27)若有定義 int(*Pt)[3];,則下列說法正確的是   A)定義了基型別為 int的三個指標變數

B)定義了基型別為 int的具有三個元素的指標陣列 pt

C)定義了一個名為 *pt、具有三個元素的整型陣列

D)定義了一個名為 pt的指標變數,它可以指向每行有三個整數元素的二維陣列

(28)設有定義 double a[10],*s=a;,以下能夠代表陣列元素 a[3]的是

A)(*s)[3]

B)*(s+3

C)*s[3]

D)*s+3

(29)有以下程式

#include(stdio.h)

main()

{inta[5]={1,2,3,4,5} ,b[5]={O,2,1,3,0} ,i,s=0;

for(i=0;i<5;i++)s=s+a[b[i]]);

printf("%dn",s);

}

程式執行後的輸出結果是

A)6

B)10

C)1

D)15

(30)有以下程式

#include

main()

{int b[3][3]={O,1,2,0,1,2,O,1,2} ,i,j,t=1;

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

for(j=ij<=1;j++)t+=b[i][b[j][i]]

printf("%dn",t);

程式執行後的輸出結果是

A)1

B)3

C)4

D)9

(31)若有以下定義和語句

chars1[10]="abcd!",*s2="n123";

printf("%d%dn", strlen(s1),strlen(s2));

則輸出結果是

A)5 5

B)10 5

C)10 7

D)5 8

(32)有以下程式

#include

#define N 8

void fun(int*x,int i)

{*x=*(x+i);

main()

{inta[N]={1,2,3,4,5,6,7,8} ,i;

fun(a,2);

for(i=O;i

{printf("%d",a[i]);}

printf("n");

程式執行後的輸出結果是

A)1313

B)2234

C)3234

D)1234

(33)有以下程式

#include

int f(intt[],int n);

main

{ inta[4]={1,2,3,4},s;

s=f(a,4);printf("%dn",s);

}

int f(int t[],int n)

{ if(n>0)return t[n-1]+f(t,n-1);

else return0;

}

程式執行後的輸出結果是

A)4

B)1O

C)14

D)6