1.(1)下列敘述中正確的是
A)棧是先進先出的線性表
B)隊列是"先進後出"的線性表
C)循環隊列是非線性結構
D)有序線性表即可以采用順序存儲結構,也可以采用鏈式存儲結構
2.
(2)支持子程序調用的數據結構是
A)棧
B)樹
C)隊列
D)二叉樹
3.
(3)某二叉樹有5個讀為2的結點,則該二叉樹中的葉子結點數是
A)10
B)8
C)6
D)4
4.
(4)下列排序方法中,最壞情況下比較次數最少的是
A)冒泡排序
B)簡單選擇排序
C)直接插入排序
D)堆排序
(5)軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下列
屬於應用軟件的是
A)編譯程序
B)操作系統
C)教務管理系統
D)匯編程序
6.
(6)下面敘述中錯誤的是
A)軟件測試的目的是發現錯誤並改正錯誤
B)對被調試程序進行"錯誤定位"是程序調試的必要步驟
C)程序調試也成為Debug
D)軟件測試應嚴格執行測試計劃,排除測試的隨意性
7.
(7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是
A)提高耦合性降低內聚性有利於提高模塊的獨立性
B)降低耦合性提高內聚性有利於提高模塊的獨立性
C)耦合性是指壹個模塊內部各個元素間彼此結合的緊密程度
D)內聚性是指模塊間互相連接的緊密程度
8.
(8)數據庫應用系統中的核心問題是
A)數據庫設計
B)數據庫系統設計
C)數據庫維護
D)數據庫管理員培訓
9.
(9)有兩個關系R,S如下:
由關系R通過運算得到關系S,則所使用的運算為
A)選擇
B)投影
C)插入
D)連接
10.
(10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為
A)屬性
B)鍵
C)關系
D)域
11.(11)壹下選項中合法的標識符是
A)1_1
B)1-1
C)_11
D)1_ _
12.
(12)若函數中有定義語句:int k;,則
A)系統將自動給k賦初值0
B)這是k中的值無定義
C)系統將自動給k賦初值-1
D)這時k中無任何值
13.
(13)壹下選項中,能用作數據常量的是
A)o115
B)0118
C)1.5e1.5
D)115L
14.
(14)設有定義:int x=2;,壹下表達式中,值不為6的是
A)x*=x+1
B)X++,2*x
C)x*=(1+x)
D)2*x,x+=2
15.
(15)程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的輸出結果是
A)123.141593
B)12 3.141593
C)12,3.141593
D)123.1415930
16.
(16)若有定義語句:double x,y,*px,*py;執行了px=&x;py=&y;之後,正確的輸入語句是
A)scanf("%f%f",x,y);
B)scanf("%f%f" &x,&y);
C)scanf("%lf%le",px,py);
D)scanf("%lf%lf",x,y);
17.
(17)壹下是if語句的基本形式:
if(表達式) 語句
其中"表達式"
A)必須是邏輯表達式
B)必須是關系表達式
C)必須是邏輯表達式或關系表達式
D)可以是任意合法的表達式
18.
(18)有以下程序
#include <stdio.h>
main()
{ int x;
scanf("%d",&x);
if(x<=3) ; else
if(x!=10) printf("%d\n",x);
}
程序運行時,輸入的值在哪個範圍才會有輸出結果
A)不等於10的整數
B)大於3且不等於10的整數
C)大於3或等於10的整數
D)小於3的整數
19.
(19)有以下程序
#include <stdio.h>
main()
{ int a=1,b=2,c=3,d=0;
if (a==1 && b++==2)
if (b!=2||c--!=3)
printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);
}
程序運行後輸出結果是
A)1,2,3
B)1,3,2
C)1,3,3
D)3,2,1
20.
(20)壹下程序段中的變量已正確定義
for(i=0;i<4;i++,j++)
for(k=1;k<3;k++); printf("*");
程序段的輸出結果是
A)********
B)****
C)**
D)*
21.(21)有以下程序
#include <stdio.h>
main()
{ char *s={"ABC"};
do
{ printf("%d",*s%10);s++;
}
while (*s);
}
註意:字母A的ASCII碼值為65。程序運行後的輸出結果是
A)5670
B)656667
C)567
D)ABC
22.
(22)設變量已正確定義,以下不能統計出壹行中輸入字符個數(不包含回車符)的程序段是
A)n=0;while((ch=getchar())!=~\n~)n++;
B)n=0;while(getchar()!=~\n~)n++;
C)for(n=0;getchar()!=~\n~;n++);
D)n=0;for(ch=getchar();ch!=~\n~;n++);
23.
(23)有以下程序
#include <stdio.h>
main()
{ int a1,a2; char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
printf("%d,%c,%d,%c",a1,c1,a2,c2);
}
若通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,
程序輸出結果是:12,a,34,b 則正確的輸入格式是(以下_代表空格,<CR>代表回車)
A)12a34b<CR>
B)12_a_34_b<CR>
C)12,a,34,b<CR>
D)12_a34_b<CR>
24.
(24)有以下程序
#include <stdio.h>
int f(int x,int y)
{ return ((y-x)*x);}
main()
{ int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序運行後的輸出結果是
A)10
B)9
C)8
D)7
25.
(25)有以下程序
#include <stdio.h>
void fun(char *s)
{ while(*s)
{ if (*s%2==0) printf("%c",*s);
s++;
}
}
main()
{ char a[]={"good"};
fun(a); printf("\n");
}
註意:字母a的ASCII碼值為97,程序運行後的輸出結果是
A)d
B)go
C)god
D)good
26.
(26)有以下程序
#include <stdio.h>
void fun(int *a,int *b)
{ int *c;
c=a;a=b;b=c;
}
main()
{ int x=3,y=5,*p=&x,*q=&y;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q);
}
程序運行後輸出的結果是
A)3,5,5,3
B)3,5,3,5
C)5,3,3,5
D)5,3,5,3
27.
(27)有以下程序
#include <stdio.h>
void f(int *p,int *q);
main()
{ int m=1,n=2,*r=&m;
f(r,&n); printf("%d,%d",m,n);
}
void f(int *p,int *q)
{p=p+1;*q=*q+1;}
程序運行後的輸出結果是
A)1,3
B)2,3
C)1,4
D)1,2
28.
(28)以下函數按每行8個輸出數組中的數據
#include <stdio.h>
void fun(int *w,int n)
{ int i;
for(i=0;i<n;i++)
{ ____________
printf("%d ",w[i]);
}
printf("\n");
}
下劃線出應填入的語句是
A)if(i/8==0) printf("\n");
B)if(i/8==0) continue;
C)if(i%8==0) printf("\n");
D)if(i%8==0) continue;
29.
(29)若有以下定義
int x[10],*pt=x;
則對數組元素的正確引用是
A)*&x[10]
B)*(x+3)
C)*(pt+10)
D)pt+3
30.
(30)設有定義:char s[81];int i=0;,以下不能將壹行(不超過80個字符)帶有空格
的字符串正確讀入的語句或語句組是
A)gets(s);
B)while((s[i++]=getchar())!=~\n~);s[i]=~\0~;
C)scanf("%s",s);
D)do{scanf("%c",&s[i]);}while(s[i++]!=~\n~);s[i]=~\0~;
31.
(31)有以下程序
#include <stdio.h>
main()
{ char *a[]={"abcd","ef","gh","ijk"};int i;
for(i=0;i<4;i++) printf("%c",*a[i]);
}
程序運行後的輸出結果是
A)aegi
B)dfhk
C)dfhk
D)abcdefghijk
32.
(32)以下選項中正確的語句組是
A)char s[];s="BOOK!";
B)char *s;s={"BOOK!"};
C)char s[10];s="BOOK!";
D)char *s;s="BOOK!";
33.
(33)有以下程序
#include <stdio.h>
int fun(int x,int y)
{ if(x==y) return (x);
else return((x+y)/2);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序運行後的輸出結果是
A)3
B)6
C)8
D)12
34.
(34)設函數中有整型變量n,為保證其在未賦初值的情況下初值為0,應該選擇的存儲類別是
A)auto
B)register
C)static
D)auto 或register
35.
(35)有以下程序
#include <stdio.h>
int b=2;
int fun(int *k)
{ b=*k+b;return (b);}
main()
{ int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++) {b=fun(&a[i])+b; printf("%d ",b);}
printf("\n");
}
程序運行後的輸出結果是
A)10 12
B)8 10
C)10 28
D)10 16
36.
(36)有以下程序
#include <stdio.h>
#define PT 3.5 ;
#define S(x) PT*x*x ;
main()
{ int a=1,b=2 ; printf("%4.1f\n",S(a+b));}
程序運行後的輸出結果是
A)14.0
B)31.5
C)7.5
D)程序有錯無輸出結果
37.
(37) 有以下程序
#include <stdio.h>
struct ord
{ int x,y; } dt[2]={1,2,3,4};
main()
{ struct ord *p=dt;
printf("%d,",++p->x); printf("%d\n",++p->y);
}
程序的運行結果是
A)1,2
B)2,3
C)3,4
D)4,1
38.
(38)設有宏定義:#define IsDIV(k,n) ((k%n==1)?1:0)且變量m已正確定義並賦值,
則宏調用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是
A)判斷m是否能被5或者7整除
B)判斷m是否能被5和7整除
C)判斷m被5或者7整除是否余1
D)判斷m被5和7整除是否都余1
39.
(39)有以下程序
#include <stdio.h>
main()
{ int a=5,b=1,t;
t=(a<<2)|b; printf("%d\n",t);
}
程序運行後的輸出結果是
A)21
B)11
C)6
D)1
40.
(40)有以下程序
#include <stdio.h>
main()
{ FILE *f;
f=fopen("filea.txt","w");
fprintf(f,"abc");
fclose(f);
}
若文本文件filea.txt中原有內容為:hello,則運行以上程序後,文件filea.txt的內容為
A)helloabc
B)abclo
C)abc
D)abchello
2009年3月二級C語言程序設答案
選擇題:
1-10: DACDC ABABC
11-20:CBDDA CDBCB
21-30:CDABA BACBC
31-40:ADBCC CBDAC
填空題:
(1)19
(2)白盒
(3)順序結構
(4)數據庫管理系統(DBMS)
(5)菱形
(6)4
(7)"x/y=%d"
(8)能
(9)s=0
(10)1AbCeDf2dF
(11)7777654321
(12)max(int a,int b)
(13)NULL
(14)1001,ChangRong,1098.0
(15)p=p—>next