计算机类二级C

2013年9月全国计算机等级《二级C语言程序设计》专家预测卷(3)

43 题含答案C
共 43 题返回本类
1单选题1 / 43
在下列模式中,能够给出数据库物理存储与物理存取方法的是(  )。
查看答案
B. 内模式
2单选题2 / 43
有以下程序:
#include<stdio.h>
main(  )
{char a,b,C;
b='l';c='A';
for(a=0;a<6;a++) 
{if(a%2)putchar(b+a);
else putchar(c+a);
}
}
程序运行后的输出结果是(  )。
查看答案
C. A2C4E6
3单选题3 / 43
数据库系统的三级模式不包括(  )。
查看答案
D. 数据模式
4单选题4 / 43
以下选项中能表示合法常量的是(      )。
查看答案
D. 字符串:"\007"
5单选题5 / 43
下列程序的输出结果是(  )。
#include
main(  )
{ int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=1;
case 1:
case 2:a+=2;
default:a+=3;
}
}
printf("%d",i);
}
查看答案
A. 19
6单选题6 / 43
下列关于线性链表的叙述中,正确的是(  )。
查看答案
C. 进行插入与删除时,不需要移动表中的元素
7单选题7 / 43
有以下程序:
#include<stdio.h>
main()
{char b,C;
int i;
for(i=0;
i>6;i++){if(i%2)putchar(i+b);
else putchar(i+c);
}printf("\n");
}
程序运行后的输出结果是(  )。
查看答案
B. AbCdEf
8单选题8 / 43
下列函数的功能是(  )。
fun(char*a,char*b).{while((*b=*a)!='\0'){a++;b++;})
查看答案
A. 将a所指字符串赋给b所指空间
9单选题9 / 43
下列程序的输出结果是(  )。
main(  )
{int i=1,j=2,k=3;
if(i++= =1&&(++j= =3= =‖k++= =3))
printf("%d%d%d\n",i,J,k);
)
查看答案
D. 2 3 3
10单选题10 / 43
有以下程序:
#include
main(  )
{int m=1,n=2,*p=&amp;m,*q=&amp;n,*r;  
r=P;P=q;q=r;  
printf("%d,%d,%d,%d\n",m,n,*P,*q);
}
程序运行后的输出结果是(  )。
查看答案
B. 1,2,2,1
11单选题11 / 43
有下列程序:     
main(  )
{
int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i&lt;9;
i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是(  )。
查看答案
C. 25
12单选题12 / 43
以下关于C语言数据类型使用的叙述中错误的是(  )。     
查看答案
D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
13单选题13 / 43
设有定义:int x=o,* P;,立刻执行以下语句,正确的语句是(  )。
查看答案
C. D=NULL;
14单选题14 / 43
若要定义一个具有5个元素的整型数组,以下错误的定义语句是(      )。
查看答案
D. int i=5,d[i];
15单选题15 / 43
设有定义:“double x[10],*p=x;”,以下能给数组x下标为6的元素读人数据的正确语句是(  )。
查看答案
C. scanf("%if",p+6);
16单选题16 / 43
设有定义: struet  complex{int  real,unreal;)datal={1,8},data2; 则以下赋值语句中错误的是(  )。
查看答案
B. data2={2,6};
17单选题17 / 43
有以下程序:   
#include
#include
struct A
{int a;char b[10];double C;);
struct A  f(struct A t):
main(  )
{struct  A a={1001,"ZhangDa",l098.0};  
a=f(a);
printf("%d,%S,%6.1f\n",a.a,a.b,a.c);
}
struct A  f(struct A t)     
{t.a= 1002;strcpy(t.b,"ChangRon9");t.c=1202.0;return t;}
程序运行后的输出结果是(  )。
查看答案
D. 1002,ChangRong,1202.0
18单选题18 / 43
软件测试的目的是(      )。
查看答案
C. 改正程序中的错误
19单选题19 / 43
有以下程序:
#include 
#include 
main()
{ char  x[]="STRING";
x[0]=0;x[1]='\0';x[2]='0';
printf("%d %d\n",sizeof(x),strlen(x));
}
程序运行后的输出结果是(      )。
查看答案
B. 7 0
20单选题20 / 43
下列数据结构中,属于非线性结构的是(  )。
查看答案
C. 二叉树
21单选题21 / 43
以下叙述中错误的是(  )。
查看答案
B. typedef说明的新类型名必须使用大写字母,否则会出编译错误
22单选题22 / 43
负责数据库中查询操作的数据库语言是(  )。
查看答案
C. 数据操纵语言
23单选题23 / 43
若有定义语句:“char*s1=”0K”,*s2=”ok”;”,以下选项中,能够输出“OK”的语句是(  )。
查看答案
D. if(stremp(sl,s2)!=0)puts(s1);
24单选题24 / 43
有以下程序:
 #include
int  f(int x);
main(  )
{  int a,b=0;  
for(a=0;a&lt;3;a++) 
{ b=b+f(a);putchar('A'+b);}     
}int  f(int x)     
{  return x * x1; 
}
程序运行后的输出结果是(  )。
查看答案
B. BDI
25单选题25 / 43
有以下程序:     
#include
main(){ 
int S,t,A=10;double B=6;  
S=sizeof(A);t=sizeof(B);  
printf("%d,%d\n",S,t);
}     
在VC6平台上编译运行,程序运行后的输出结果是(      )。
查看答案
C. 4,8
26单选题26 / 43
有以下程序:     
#include
main(  )     
{  struct node{int n; 
struct node*next;}  *P;  
struct node x[3]={{2,x+1),{4,x+2},{6,NULL}};  
P= X;       
printf("%d,",p-&gt;n);  
printf("%d\n",p-&gt;next-&gt;n);
}
程序运行后的输出结果是(  )。
查看答案
B. 2,4
27单选题27 / 43
下列选项中属于向对象设计方法主要特征的是(  )。
查看答案
A. 继承
28单选题28 / 43
软件生命周期是指(  )。
查看答案
B. 软件从需求分析、设计、实现到测试完成的过程
29单选题29 / 43
设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于(  )。
查看答案
C. p=0;
30单选题30 / 43
若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为(  )。
ch='b';
k=10:
printf("%X,%o,",ch,ch,k);     
printf("k=%%d\n",k);
查看答案
C. 62,142,k=%d
32单选题32 / 43
C语言主要是借助以下哪个功能来实现程序模块化?(  )
查看答案
A. 定义函数
33单选题33 / 43
设fp已定义,执行语句“fp=fopen("file","w");”后,以下针对文本文件file操作叙述的选项中正确的是(  )。
查看答案
B. 只能写不能读
34单选题34 / 43
有以下程序
#include
void fun(char*c)
{while(*c)
{if(*c&gt;='a'&amp;&amp;*c&lt;='2')*c=*c=('a'-'A');
c++;
}
}     
main(  )
{char  s[81];
gets(s);fun(;)puts(s);
当执行程序时从键盘输入Hello Beijing<回车>,,则程序的输出结果是(  )。
查看答案
C. HELLO BEIJING
35单选题35 / 43
有以下程序:
#include(stdio.h)
main(  ){char a,b,C,d;  
scanf("%c%C",&a,&b);   
c=getchar(  );
d=getchar(  );  
printf{"%c%c%c%c\n",a,b,C,d);
}
当执行程序时,按下列方式输入数据(从第l列开始,代表回车j注意:回车也是 一个字符)    
12   
34
则输出结果是(  )。
查看答案
C. 123
36单选题36 / 43
有以下程序: 
#include
#define SUB(a)(a)-(a)
main(  )
{int a=2,b=3,c=5,d;  
d=SUB(a+b)*C;  
printf("%d\n",d);
}
程序运行后的输出结果是(  )。
查看答案
C. -20
37单选题37 / 43
以下关于C语言的叙述中正确的是(  )。
查看答案
B. C语言中的变量可以在使用之前的任何位置进行定义
38单选题38 / 43
下列关于二叉树的叙述中,正确的是(  )。
查看答案
B. 叶子结点总是比度为2的结点多一个
39单选题39 / 43
有以下程序:
#include
main(  )
{  int s=0.n;   
for(n=0;n&lt;3;n++) 
{    switch(s) 
{    case 0;     
case1:s+=1;     
case 2:s+=2;break;           
case 3:S+=3;     
default:s+=4;   
} 
printf("%d,"s);   
}
}
程序运行后的输出结果是(  )。
查看答案
C. 3,10,14,
40单选题40 / 43
下列选项中,能正确定义数组的语句是(  )。
查看答案
D. #define N 2008; int num[N];
41主观题41 / 43
请补充函数proc(),其功能是:计算并输出给定10个数的方差。 例如,给定的l0个数为12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,输出为S=8.877500。
注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proe()的横线上填人所编写 的若干表达式或语句。
试题程序:
#include
#include
double proc(double x[10]) {  int i;  
double avg=0.0;  double sum=0.0;  
double abs=0.0;  double sd;  
for(i=0;i&lt;10;i++) 【1】  ;  
avg=sum/10;  for(i=0;i&lt;10;i++) 【2】  ;  
sd=  【3】  ;  
return sd; }void main(){ double s,str[10]={12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0};  
int i;  
printf("\nThe original data is:\n");  
for(i=0;i&lt;10;i++) printf("%6.If",str[i]);  
printf("\n\n");  
s—proc(str);  
printf("s=%f\n\n",s);
}
查看答案
【1】sum+=x[i]【2】abs+=(x[i]一avg)*(x[i]-avg)【3】sqrt(abs/10)
42主观题42 / 43
下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
//****found****
void proc(long S,long t){ long sl=10;  
s/=10;  *t=s%10;  
//****found****  
while(s&lt;O)   {  s=s/l00;    
*t=s%10*sl+*t;    s1=sl*10;}  
} 
void main() 
{long S,t;  
system("CLS"):  
printf("\nPlease enter S:");  
scanf("%ld",&s);  
proc(S,&t); .
printf("The result is:%ld\n",t);
}
查看答案
1.错误:void proc(10ng S,long t)
正确:void proc(long s,long*t)
2.错误:while(s<0)
正确:while(s>O)
43主观题43 / 43
编写一个函数,从传人的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数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);
}
查看答案
char*proc(char(*a)[81],int M)
{
char*max;
int i=0:
max=a[O]:
for(i=0;i<M;i++)
if(strlen(max)<strlen(a[i]))//找出最长的字符串
max=a[i];
return max; //返回最长字符串的地址
}
← 上一卷下一卷 →