計算機二級C語言考試上機沖刺試題及答案
一、選擇題(每小題1分,共40小題,共40分)
1.算法的空間復雜度是指( )。
A.算法程序的長度
B.算法程序中=的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
2.下列敘述中正確的是( )。
A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構
B.邏輯結構屬于線性結構,存儲結構屬于非線性結構
C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構影響數(shù)據(jù)處理的效率
3.簡單的交換排序方法是( )。
A.快速排序
B.選擇排序
C.堆排序
D.冒泡排序
4.關于結構化程序設計原則和方法的描述錯誤的是( )。
A.選用的結構只準許有一個入口和一個出口
B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn)
C.不允許使用GOT0語句
D.語言中若沒有控制結構,應該采用前后一致的方法來模擬
5.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和( )。
A.可重用性差
B.安全性差
C.非持久性
D.冗余性
6.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是( )。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強調(diào)模擬現(xiàn)實世界中的算法而強調(diào)概念
7.對如下二叉樹進行后序遍歷的結果為( )。
A.ABCDEF
B.DBEAFC
C.ABDECF
D.DEBFCA
8.軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指( )。
A.模塊間的關系
B.系統(tǒng)結構部件轉換成軟件的過程描述
C.軟件層次結構
D.軟件開發(fā)過程
9.兩個或兩個以上模塊之間關聯(lián)的緊密程度稱為( )。
A.耦合度
B.內(nèi)聚度
C.復雜度
D.數(shù)據(jù)傳輸特性
10.下列描述錯誤的是( )。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
11.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是( )。
A.DB包含DBS和DBMS
B.DBMS包含DB和DBS
C.DBS包含DB和DBMS
D.沒有任何關系
12.下列合法的聲明語句是( )。
A.int_abc=50;
B.double int=3+5e2.5;
C.long do=1L:
D.float 3_asd=3e-3;
13.設x、Y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是( )。
A.x&&Y
B.x<=Y
C.x‖y+z&&y-z
D.!((x 14.若ch為char型變量,k為int型變量(已知字符a的ASCIl碼是97),則執(zhí)行下列語句后輸出的結果為( )。
ch=’b’;
k=10:
printf("%X,%o,",ch,ch,k);
printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k一%d
D.62,142,k一%l0
15.有下列程序: 、
fun(int X,int y){return(x+y);)
main()
{ int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結果是( )。
A.6
B.7
C.8
D.9
16.假定x和Y為double型,則表達式x=2,y—x+3/2的值是( )。
A.3.500000
B.3
C.2.000000
D.3.000000
17.有如下程序:
main()
{int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case l:a++;
case 2:a++;b++;
)
printf("a=%d,b=%d\n",a,b);
)
該程序的輸出結果是( )。
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
18.下列程序的輸出結果是( )。
main()
{int i=1,j=2,k=3;
if(i++= =1&&(++j= =3= =‖k++= =3))
printf("%d%d%d\n",i,J,k);
)
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
19.下列程序的輸出結果是( )。
#include
main()
{ int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=1;
case l:
case 2:a+=2;
default:a+=3;
)
printf("%d",i);
)
A.19 B.1 C.6 D.8
20.有以下程序:
main()
{int X,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0) .
printf("%d,i)";
)
)
輸出結果是( )。
A.28
B.27
C.42
D.41
21.以下程序的輸出結果是( )。
main()
{int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
A.18
B.19
C.20
D.21
22.有下列程序:
main()
{ int k=5;
while(--k) printf("%d",k=1);
printf("/n");
)
執(zhí)行后的輸出結果是( )。
A.1
B.2
C.4
D.死循環(huán)
23.若有定義:“int a[2][3];”,則對a數(shù)組的第i行第J列元素的正確引用為( )。
A.*(*(a+i)+j)
B.(a+i)[j]
C.*(a+i+j)
D.*(a+i)+j
24.下列能正確進行字符串賦值的是( )。
A.char s[5]={"ABCDE"};
B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
25.現(xiàn)有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續(xù)的3個結點。
struct node
{har data;
struct node*next;)*P,*q,*r;
現(xiàn)要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是( )。
A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
26.有下列程序:
main()
{int i,j,x=0;
for(i=0,i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++:
)
x++:
}
printf("x=%d\n"x);
}
程序執(zhí)行后的輸出結果是( )。
A.x=4
B.x=8
C.x=6
D.x=12
27.有下列程序:
int funl(double a){return a*=a;} 、
int fun2(double x,double y)
{double a=0,b=0;
a=funl(x);b=funl(y);return(int)(a+b);
)
main()
{double w;w=fun2(1.1,2.0),……}
程序執(zhí)行后變量w中的值是( )。 、
A.5.21 B.5 C.5.0 D.0.0
28.有下列程序:
main()
{int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序執(zhí)行后的輸出結果是( )。
A.45
B.20
C.25
D.36
29.有下列程序:
int fun(int n)
{if(n= =1))return l;
else
return(n+fun(n-1)):
}
main()
{ int x;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
執(zhí)行程序時,給變量x輸入l0,程序的輸出結果是( )。
A.55
B.54
C.65
D.45
30.有下列程序:
int fun(int x[],int n)
{ static int sum=0,i;
for(i=0;i return sum;
}
main()
{int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
程序執(zhí)行后的輸出結果是( )。 、
A.45
B.50
C.60
D.55
31.有下列程序:
main()
f char*P[]={"3697","2584");
int i,j;long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!=’\0’)
{if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;
j+=2;
)
)
printf("%d\n",num);
)
程序執(zhí)行后的輸出結果是( )。
A.35 B.37 C.39 D.3975
32.以下程序的輸出結果是( )。
main()
{ char st[20]="hell0\O\t\\\”;
printf("%d%d\n",strlen(st),sizeof(st));
}
A.9 9
B.5 20
C.13 20
D.20 20
33.若有下的定義:"int t[3][2];",能正確表示t數(shù)組元素地址的表達式是( )。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
34.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點是( )。
A.文件開始
B.文件末尾
C.文件當前位置
D.以上都不對
35.下述程序的輸出結果是( )。
#include
main()
{int i;
for(i=1;i<=10;i++)
{if(i*i>=20)&&(i*i<=lOO))
break;
}
printf("%d\n",i*i);
)
A.49
B.36
C.25
D.64
36.若有定義“int b[8],*p=b;”,則p+6表示( )。
A.數(shù)組元素b[6]的值
B.數(shù)組元素b[6]的地址
C.數(shù)組元素b[7]的地址
D.數(shù)組元素b[0]的值加上6
37.設變量已正確定義,則以下能正確計算f=n!的程序是( )。
A.f=0; for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
38.下述程序執(zhí)行的輸出結果是( )。
#include
main()
{char a[2][4]; ,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=’&’;
printf("%s\n",a);
)
A.are&you
B.you
C.are
D.&
39.設x=011050,則x=x&01252的值是( )。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
40.在“文件包含,,預處理語句的使用形式中,當#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是( )。
A.直接按系統(tǒng)設定的標準方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設定的標準方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當前目錄
二、基本操作題(共18分)
請補充函數(shù)proc(),該函數(shù)的功能是計算下面公式SN的值:
SN=1+1/3十4/5+...+2N-1/SN-1
例如,當N=20時,SN=29.031674。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達式或語句。
試題程序:
#include
#include
#include
double proc(int n)
{
double s=1.0,sl=0.0;
int k;
for(【1】;k<=n;k++)
{
sl=S;
【2】
}
return 【3】 ;
)
void main()
{
int k=0:
double sum;
system("CLS");
printf("\nPlease input N=");
scanf("%d",&k);
sum=proc(k);
printf("\nS=%If",sum);
)
三、程序改錯題(共24分)
下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計算如下公式的值:
Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值為l0,則應輸出0.817962。
請修改程序中的錯誤,使它能得到正確結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
#include
#include
#include
double proc(int n)
{
double y=1.0;
f|****found****
int J=1; .
int i;
for(i=2;i<=n;i++)
{
j=-l*j;//****found****
y+=1/(i*i);
)
return(y);
)
void main()
{
int n=10:
system("CLS"):
printf("\nThe result is%lf\n",proc(n));
)
四、程序設計題(共18分)
編寫一個函數(shù),從傳人的M個字符中找出最長的一個字符串,并通過形參指針max傳回該串地址(用****作為結束輸入的標志)。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。
試題程序:
#include
#include
#include
char*proc(char(*a)[81],int num)
{
)
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("輸入若干個字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")= =0)
{
i++:
gets(ssEi]);
puts(ss[i]);
)
n=i:
max=proe(SS,n);
printf("\nmax=%s\n",max);
}
【計算機二級C語言考試上機沖刺試題及答案】相關文章:
2016年9月計算機二級C語言考試上機沖刺試題及答案08-17
計算機二級VB上機試題及答案09-04
2017年計算機c語言二級考試試題及答案08-30
計算機C語言試題及答案08-10
2017計算機二級考試C語言沖刺題08-30