2016年計算機等級考試二級筆試試卷及答案
一、選擇題((1)~(10)、(21)~(40)每題2 分,(11)~(20)每題1 分,70 分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項填涂在
答題卡相應位置上,答在試卷上不得分。
(1)一個棧的初始狀態為空,F將元素1、2、3、4、5、A、B、C、D、E 依次入棧,然后
再依次出棧,則元素出棧的順序是( )。
A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA
(2)下列敘述中正確的是( )。
A)循環隊列有隊頭和隊尾兩個指針,因此,循環隊列是非線性結構
B)在循環隊列中,只需要隊頭指針就能反映隊列中元素的動態變化情況
C)在循環隊列中,只需要隊尾指針就能反映隊列中元素的動態變化情況
D)循環隊列中元素的個數是由隊頭指針和隊尾指針共同決定
(3)在長度為n 的有序線性表中進行二分查找,最壞情況下需要比較的次數是( )。
A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n)
(4)下列敘述中正確的是( )。
A)順序存儲結構的存儲一定是連續的,鏈式存儲結構的存儲空間不一定是連續的
B)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構
C)順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表
D)鏈式存儲結構比順序存儲結構節省存儲空間
(5)數據流圖中帶有箭頭的線段表示的是( )。
A)控制流 B)事件驅動 C)模塊調用 D)數據流
(6)在軟件開發中,需求分析階段可以使用的工具是( )。
A)N-S 圖 B)DFD 圖 C)PAD 圖 D)程序流程圖
(7)在面向對象方法中,不屬于“對象”基本特點的是( )。
A)一致性 B)分類性 C)多態性 D)標識唯一性
(8)一間宿舍可住多個學生,則實體宿舍和學生之間的聯系是( )。
A)一對一 B)一對多 C)多對一 D)多對多
(9)在數據管理技術發展的三個階段中,數據共享最好的是( )。
A)人工管理階段 B)文件系統階段 C)數據庫系統階段 D)三個階段相同
(10)有三個關系R、S 和T 如下:
R S T
A B B C A B C
m 1 1 3 m 1 3
n 2 3 5
由關系R 和S 通過運算得到關系T,則所使用的運算為( )。
A)笛卡爾積 B)交 C)并 D)自然連接
(11)以下敘述中正確的是( )。
A)C 程序的基本組成單位是語句 B)C 程序中的每一行只能寫一條語句
C)簡單C 語句必須以分號結束 D)C 語句必須在一行內寫完
(12)計算機能直接執行的程序是( )。
A)源程序 B)目標程序 C)匯編程序 D)可執行程序
(13)以下選項中不能作為C 語言合法常量的是( )。
A)'cd' B)0.1e+6 C)"\a" D)'\011'
(14)以下選項中正確的定義語句是( )。
A)double a; b; B)double a=b=7; C)double a=7, b=7; D)double, a, b;
(15)以下不能正確表示代數式2ab
cd
的C 語言表達式是( )。
A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d
(16)C 源程序中不能表示的數制是()。
A)二進制 B)八進制 C)十進制 D)十六進制
(17)若有表達式(w)?(--x):(++y),則其中與w 等價的表達式是( )。
A)w==l B)w==0 C)w!=l D)w!=0
(18)執行以下程序段后,w 的值為( )。
int w='A', x=14, y=15;
w=((x || y)&&(w<'a'));
A)-1 B)NULL C)l D)0
(19)若變量已正確定義為int 型,要通過語句scanf("%d, %d, %d", &a, &b, &c);給a 賦值
1、給b 賦值2、給c 賦值3,以下輸入形式中錯誤的是( ò 代表一個空格符)( )。
A)ò ò ò 1,2,3<回車> B)1 ò 2 ò 3<回車>
C)1,ò ò ò 2,ò ò ò 3<回車> D)1,2,3<回車>
(20)有以下程序段
int a, b, c;
a=10; b=50; c=30;
if (a>b) a=b, b=c; c=a;
printf("a=%d b=%d c=%d ”, a, b, c);
程序的輸出結果是( )。
A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50
(21)若有定義語句:int m[]={5,4,3,2,1},i=4;,則下面對m 數組元素的引用中錯誤的是
( )。
A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]]
(22)下面的函數調用語句中func 函數的實參個數是( )。
func (f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8)));
A)3 B)4 C)5 D)8
(23)若有定義語句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;則錯誤引用x 數組元素的是
( )。
A)*p B)x[5] C)*(p+1) D)*x
(24)若有定義語句:char s[10]="1234567\0\0";,則strlen(s)的值是()。
A)7 B)8 C)9 D)10
(25)以下敘述中錯誤的是( )。
A)用戶定義的函數中可以沒有return 語句
B)用戶定義的函數中可以有多個return 語句,以便可以調用一次返回多個函數值
C)用戶定義的函數中若沒有return 語句,則應當定義函數為void 類型
D)函數的return 語句中可以沒有表達式
(26)以下關于宏的敘述中正確的是( )。
A)宏名必須用大寫字母表示
B)宏定義必須位于源程序中所有語句之前
C)宏替換沒有數據類型限制
D)宏調用比函數調用耗費時間
(27)有以下程序
#include
main()
{ int i, j;
for(i=3; i>=l; i--)
{ for(j=1; j<=2; j++) printf("%d", i+j);
printf(" ");
}
}
程序的運行結果是( )。
A)2 3 4 B)4 3 2
3 4 5 5 4 3
C)2 3 D)4 5
3 4 3 4
4 5 2 3
(28)有以下程序
#include
main()
{ int x=l, y=2, z=3;
if(x>y)
if(y
else printf("%d", ++y);
printf("%d ", x++);
}
程序的運行結果是( )。
A)331 B)41 C)2 D)1
(29)有以下程序
# include
main()
{ int i=5;
do
{ if (i%3=1)
if (i%5==2)
{ printf("*%d", i); break;}
i++;
} while(i!=0);
printf(" ");
}
程序的運行結果是( )。
A)*7 B)*3*5 C)*5 D)*2*6
(30)有以下程序
#include
int fun(int a,int b)
{ if(b==0) return a;
else return(fun(--a,--b));
}
main()
{ printf("%d ", fun(4,2));}
程序的運行結果是( )。
A)1 B)2 C)3 D)4
(31)有以下程序
#include
#include
int fun(int n)
{ int *p;
p=(int*)malloc(sizeof(int));
*p=n; return *p;
}
main()
{ int a;
a = fun(10); printf("%d ", a+fun(10));
}
程序的運行結果是( )。
A)0 B)10 C)20 D)出錯
(32)有以下程序
#include
void fun(int a, int b)
{ int t;
t=a; a=b; b=t;
}
main()
{ int c[10]={1,2,3,4,5,6,7,8,9,0), i;
for (i=0; i<10; i+=2) fun(c[i], c[i+l]);
for (i=0; i<10; i++) printf("%d,", c[i]);
printf(" ");
}
程序的運行結果是( )。
A)l,2,3,4,5,6,7,8,9,0, B)2,l,4,3,6,5,8,7,0,9, C)0,9,8,7,6,5,4,3,2,1, D)
0,1,2,3,4,5,6,7,8,9,
(33)有以下程序
#include
struct st
{ int x, y;) data[2]={l,10,2,20};
main()
{ struct st *p=data;
printf("%d,", p->y); printf("%d ",(++p)->x);
}
程序的運行結果是( )。
A)10,1 B)20,1 C)10,2 D)20,2
(34)有以下程序
#include
void fun(int a[], int n)
{ int i, t;
for(i=0; i
}
main()
{ int k[10]={1,2,3,4,5,6,7,8,9,10}, i;
fun(k,5);
for(i=2; i<8; i++) printf("%d", k[i]);
printf(" ");
}
程序的運行結果是( )。
A)345678 B)876543 C)1098765 D)321678
(35)有以下程序
#include
#define N 4
void fun(int a[][N], int b[])
{ int i;
for(i=0; i
}
main()
{ int x[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},y[N], i;
fun(x,y);
for (i=0; i
printf(" ");
}
程序的運行結果是( )。
A)l,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10,
(36)有以下程序
#include
int fun(int (*s)[4],int n, int k)
{ int m, i;
m=s[0][k];
for(i=l; i
return m;
}
main()
{ int a[4][4]={{1,2,3,4),{11,12,13,14},{2l,22,23,24},{31,32,33,34}};
printf("%d ", fun(a,4,0));
}
程序的運行結果是( )。
A)4 B)34 C)31 D)32
(37)有以下程序
#include
main()
{ struct STU { char name[9]; char sex; double score[2]; };
struct STU a={"Zhao",'m',85.0,90.0), b={"Qian",'f',95.0,92.0);
b=a;
printf("%s,%c,%2.0f,%2.0f ",b.name,b.sex,b.score[0],b.score[1]);
}
程序的運行結果是( )。
A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90
(38)假定已建立以下鏈表結構,且指針p 和q 已指向如圖所示的結點:
head a b c
data next
↑p ↑q
則以下選項中可將q 所指結點從鏈表中刪除并釋放該結點的語句組是( )。
A)(*p).next=(*q).next; free(p); B)p=q->next; free(q);
C)p=q; free(q); D)p->next=q->next; free(q);
(39)有以下程序
#include
main()
{ char a=4;
printf("%d ", a=a<<1);
}
程序的運行結果是( )。
A)40 B)16 C)8 D)4
(40)有以下程序
#include
main()
{ FILE *pf;
char *s1="China",*s2="Beijing";
pf=fopen("abc.dat","wb+");
fwrite(s2,7,l,pf);
rewind(pf);
fwrite(s1,5,1,pf);
fclose(pf);
}
以上程序執行后abc.dat 文件的內容是( )。
B)China B)Chinang C)ChinaBeijing D)BeijingChina
二、填空題(每空2 分,共30 分)
請將每一個空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。
(1)對下列二叉樹進行中序遍歷的結果 【1】 。
A
B C
D E F
X Y Z
(2)按照軟件測試的一般步驟,集成測試應在 【2】 測試之后進行。
(3)軟件工程三要素包括方法、工具和過程,其中, 【3】 支持軟件開發的各個環節的
控制和管理。
(4)數據庫設計包括概念設計、 【4】 和物理設計。
(5)在二維表中,元組的 【5】 不能再分成更小的數據項。
(6)設變量a 和b 已正確定義并賦初值。請寫出與a-=a+b 等價的賦值表達式 【6】 。
(7)若整型變量a 和b 中的值分別為7 和9,要求按以下格式輸出a 和b 的值:
a=7
b=9
請完成輸出語句:printf (" 【7】 ",a,b);。
(8)以下程序的輸出結果是 【8】 。
#include
main()
{ int i,j,sum;
for(i=3;i>=1;i--)
{ sum=0;
for(j=1;j<=i;j++) sum+=i*j;
}
printf("%d ",sum);
}
(9)以下程序的輸出結果是 【9】 。
#include
main()
{ int j, a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3; j; j--)
{ switch(j)
{ case 1:
case 2: printf("%d",*p++); break;
case 3: printf("%d",*(--p));
}
}
}
(10)以下程序的輸出結果是 【10】 。
#include
#define N 5
int fun(int *s, int a, int n)
{ int j;
*s=a; j=n;
while(a!=s[j])j--;
return j;
}
main()
{ int s[N+1]; int k;
for(k=l; k<=N; k++) s[k]=k+l;
printf("%d ",fun(s,4,N));
}
(11)以下程序的輸出結果是 【11】 。
#include
int fun(int x)
{ static int t=0;
return(t +=x);
}
main()
{ int s,i;
for(i=l;i<=5;i++) s=fun(i);
printf("%d ",s);
}
(12)以下程序按下面指定的數據給x 數組的下三角置數,并按如下形式輸出,請填空。
4
3 7
2 6 9
1 5 8 10
#include
main()
{ int x[4][4],n=0,i,j;
for(j=0;j<4;j++)
for(i=3;i>=j; 【12】 ) {n++;x[i][j]= 【13】 ;}
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++) printf("%3 d",x[i][j]);
printf(" ");
}
}
(13)以下程序的功能是:通過函數func 輸入字符并統計輸入字符的個數。輸入時用字符
@作為輸入結束標志。請填空。
#include
long 【14】 ;
main()
{ long n;
n=func(); printf("n=%ld ",n);
}
long func()
{ long m;
for( m=0; getchar()!='@'; 【15】 );
retum m;
}
【計算機等級考試二級筆試試卷及答案】相關文章:
計算機等級考試二級筆試卷(含答案)01-24
計算機等級考試二級筆試試卷03-09
2016年計算機考試二級筆試試卷及答案03-02
計算機等級考試二級VB真題附答案10-11
3月計算機等級考試二級c筆試真題10-04
3月全國計算機等級考試二級考試真題及答案10-11