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

學識都 人氣:1.33W

一、選擇題

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