计算机类二级C

2014年全国计算机等级《二级C语言程序设计》上机考试冲刺试题(1)

43 题含答案C
共 43 题返回本类
1单选题1 / 43
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
查看答案
C. DBS包含DB和DBMS
2单选题2 / 43
有下列程序:
fun(int x,int y){return(x+y);)
main()
(int a=1,b=2,c=3,sHm;
sum=fun((a++,b++,a+b),c++);
printf(”%d\n”,sum);
)
执行后的输出结果是(  )。
查看答案
C. 8
4单选题4 / 43
设有如图所示二叉树,对此二叉树前序遍历的结果为(  )。
  
查看答案
B. ATBZXCYP
5单选题5 / 43
若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是(  )。
查看答案
D. 0
6单选题6 / 43
一个关系中属性个数为l时,称此关系为(  )。
查看答案
C. 一元关系
7单选题7 / 43
下述程序的输出结果是(  )。
#include
main()
{int a[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;
p=a;
for(i=0;i<3:i++)
{ if(i<2)
p[1]Ei]一p[1][i]-1:
else
p[1][i]=1;)
printf(”%d\n”,a[o][1]+a[1][1]4"a[1][2]);)
查看答案
B. 7
8单选题8 / 43
有下列程序:
main()
{ int k=5:
while(--k)printf(”%d”,k=1);
printf(”\n”);
}
执行后的输出结果是( )。
查看答案
A. 1
9单选题9 / 43
已知字符'A'的ASCll代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf(”%d,%d”,el,c2—2);后,输出结果是( )。
查看答案
C. 65.66
10单选题10 / 43
若有以下程序段:
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(”%d,%d,%a\n”,a,b,c);
执行后的输出结果是(  )。
查看答案
B. 0,0,5
11单选题11 / 43
若变量C为char类型,能正确判断出C为小写字母的表达式是( )。
查看答案
D. (c>='a')&&(c<='Z')
12单选题12 / 43
以下只有在使用时才为该类型变量分配内存的存储类型说明是( )。
查看答案
B. auto和register
13单选题13 / 43
对两个数组a和b进行下列初始化:
char m[]=”1234567”;
char n[]={'1','2’,'3','4','5','6','7'};
则下列叙述正确的是(  )。
查看答案
C. 数组m比数组n长1
14单选题14 / 43
若变量a、i已正确定义,且i已正确赋值合法的语句是(  )。
查看答案
B. ++i
15单选题15 / 43
以下程序的输出结果是(  )。
Inain()
{char W[][10]={”ABCD”,”EFGH“,”IJKL”,”
MNOP”),K;
for(k=1;k<3;k++,)printf(”%s\n”,w[k]);
}
查看答案
D. EFGH
JK 1jKL
()
16单选题16 / 43
以下程序的输出结果是(  )。
main()
{ int a=3:
printf(”%d\n”.(a+a-=a*a));
查看答案
D. -12
17单选题17 / 43
函数ftell(fp)的作用是(  )。
查看答案
A. 得到fp所指向文件的当前渎写位置
18单选题18 / 43
下列数据结构中,能用二分法进行查找的是(  )。
查看答案
A. 顺序存储的有序线性表
19单选题19 / 43
若a和b均是正整型变量,正确的switch语句是(  )。
查看答案
A. switch(pow(a,2)+pow(b,2))(注:调用求幂的数学函数)
{case 1:case 3:y=a+b;break;
ease 0:ease 5:y=a—b;
)
20单选题20 / 43
以下四个程序中不能对两个整型值进行交换的是(  )。
查看答案
C. #included stdi*.h>
void swap(int*P,int*q)
{ int t;
t=*P;*P=*q;*q=t;
)
main()
{ int*a,*b;
*a=10,*b=20:
swap(a,b);printf(”%d%d\n”,*a,*b);
)
21单选题21 / 43
有定义:“int a=2,b=3,c=4;”,则下列选项中值为0的表达式是( )。
查看答案
A. (!a==l)&&(!b==0)
22单选题22 / 43
在位运算中,操作数每左移两位,其结果相当于( )。
查看答案
D. 操作数乘以4
23单选题23 / 43
以下能正确定义二维数组的是(  )。
查看答案
B. int a[][3]={2*3);
24单选题24 / 43
C语言中,下列不合法的字符串常量是( )。
查看答案
B. 'y='
25单选题25 / 43
三种基本结构中,能简化大量程序代码的是(  )。
查看答案
D. 重复结构
26单选题26 / 43
若已定义:
int a[4][3]=(1,2,3,4,5,6,7,8,9,10,1i,12),(*prt)
[3]=a,*p=a[o];
则能够正确表示数组元素a[1][2]的表达式是(  )。
查看答案
D. *(*(a+1)+2)
27单选题27 / 43
著有下列定义,则(  )是对a数组元素地址的正确引用。
int a[5],*p=a;
查看答案
D. &a[o]
28单选题28 / 43
下列程序的输出结果是(  )。
#include
main()
{ int a=3,b=2,c=1;
if(a<B)
if(b<0)c=0;
else c++:
printf(”%d\n”,c);
)
查看答案
C. 1
29单选题29 / 43
若希望下列的程序运行后输出25,程序空白处的正确选项是(  )。
main()
{int id=50,a[]={7,4,10,5,8);
{or(  )
j十=a[i];
print{(”%d”,j-40);
}
查看答案
D. i=2;i<4;++i
30单选题30 / 43
若有正确定义语句
douhle x=5.16894:
语句prinlf(”%f\n”.(inl)(x*1000+0.5)/(double)1000;的输出结果是(  )。
查看答案
D. 5.1 69000
31单选题31 / 43
#define能作简单的替代,用宏来替代计算多项式5*X*x 4-5*x+5的值的函数f,正确的宏定义语句为(  )。
查看答案
C. #define f(a) (5*a”a+5*a+5)
34单选题34 / 43
有下列程序段:
int n,t=1,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;)while(t!=n);
为使此程序段不陷入循环,从键盘输入的数据应该是(  )。
查看答案
D. 任意负奇数
35单选题35 / 43
下述程序的输出结果是(  )。
#define N 20
void fun(int a[],int n,int m)
{ int i,j;
for(i=m;i>n;i--)a[i+1]=a[i];
)
main()
{ int i,dEN3={1,2,3,4,4,5,6,7,8,9,10);
fun(a,2,9);
for(i=0;i<5;i++)printf(”%d”,a[i]);
)
查看答案
B. 12344
36单选题36 / 43
有下列程序:
#include
main()
{ int X=0;
int y=0;
while(x<7&&++y)
{ y——;
x++;)
print{(”%d,%d”,y,x);
)
程序的输出结果是(  )。
查看答案
A. 0.7
37单选题37 / 43
有以下函数
int aaa(char*s)
{ char*t=S:
while(*t++);
t——0
return(t-s):
}
以下关于aaa函数的功能叙述正确的是(  )。
查看答案
A. 求字符串s的长度
38单选题38 / 43
有以下程序:
void fun2(char a,char b){printf(”oAc%c”,a’b);}
char a='A',b='B';
void funl(){a='C'.b='D';)
main()
} funi();
printf(”%c%c”,a,b);
fun2('E','F');
}
程序的运行结果是(  )。
查看答案
A. CDEF
39单选题39 / 43
下列描述错误的是(  )。
查看答案
C. 在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
40单选题40 / 43
语句int(*ptr)()的含义是( )。
查看答案
C. ptr是指向函数的指针,该函数返回一个int型数据
41主观题41 / 43
请补充main()函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。
例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。
试题程序:
#include
#include
#define M 10
void main()
{
int i,n=0:
int arr[M]={40,68,62,33,35,52,48,95,66,73);
int bb[M];
system(”CLS”);
for(i=0;i<【1】 ;i++)
if(arr[i]<ARR[I+1])
【2】 ;
printf(”\n***display bb***\n”);
for(i=0;i<N;I++)
printf("bb[%d]=-", 【3】 );
}
查看答案
【l】M-1【2】BB[,n++]=Arr[i] 【3】i,BB[i]
42主观题42 / 43
下列给定程序中,函数proc()的功能是根据整型形参n,计算如下公式的值:
y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值为10,则应输出0.817962。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
double proc(int n)
{
double y=1.0;
//****found****
int j=1;
int i;
for(i=2;i<=n.;i++)
{
j=-1*j;//****found****
y+=1/(i*i);
}
return(y);
}
void main()
{
int n=10:
system(”(CLS”):
printf(”\nThe result is%lf\n”,proc(n));
)
查看答案
(1)错误:intJ=1;正确:DouBlEj=1.0; (2)错误:y+=1/(i*i); 正确:y+=j/(i*i);
43主观题43 / 43
请编写函数proc(),它的功能是计算:
s=(In(1)+In(2)+In(3)+…+ln(m))0.5
在C语言巾可调用log(n)函数求ln(n)。
例如.若nl的值为30,则proc()函数值为8.640500。
注意:部分源程序给出:如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
#include<
double proc(int m)
{
}
void main()
{
system(”CLS”):
printf(”%f\n”,proc(30));
}
查看答案
DouBlEproC(inlm)
{
inti;
doubles=0.0;//+是表示其和for(i=1:i<=m:i++)
s=s+log(i);//计算s=In(1)+in(2)+In(3)+…+In(m)
returnsqrt(s);//最后将其开平方的值返回到主函数中
)
← 上一卷下一卷 →