计算机类二级C
2014年全国计算机等级《二级C语言程序设计》考前押密试题(2)
43 题含答案C
1单选题1 / 43
没有定义:char p[]={'1','2','3'),*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。
查看答案
A. sizeof(p)
2单选题2 / 43
结构化程序没计主要强调的是( )。
查看答案
D. 程序的易读性
3单选题3 / 43
标准库函数fgets(S,n,file)的功能是( )。
查看答案
B. 从文件file中读取长度不超过n-1个字符的字符串放到字符数组S中
4单选题4 / 43
有以下程序
#include
main()
{ int y=9;
for(;y>0;ym一)
if(y%3==0)printf(”%d”,——y);
)
程序的运行结果是( )。
查看答案
C. 852
5单选题5 / 43
有以下程序:
main()
{int a[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x-:1;x<3;x++)y+=p[x];
printf(“%d\n,y”);
}
程序运行后的输出结果是( )。
查看答案
C. 14
6单选题6 / 43
下列程序的运行结果是( )。
main()
( int x=1,y=3,a=0;
while(x++!=(y-=1))
{ a+=1;
if(y<X)&NBSP; break;
}
printf(”%d,%d,%d\n”,x,y,a);
}
查看答案
D. 3,1,2
7单选题7 / 43
若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。
查看答案
D. gdbehfca
8单选题8 / 43
下列工具中为需求分析常用工具的是( )。
查看答案
D. DFD
9单选题9 / 43
对线性表进行二分法检索,其前提条件是( )。
查看答案
A. 线性表以顺序方式存储,并按关键码值排好序
10单选题10 / 43
下列叙述中正确的是( )。
查看答案
A. 用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系
11单选题11 / 43
有以下程序:
#include
void fun(char*t.char*s)
{ while(*tl=0)t++;
while((*t++-*s++)!一0);
)
main()
{char ssElo]=”aCC”,aaElo]=”bbxxyy”;
fun(SS,aa);printf(”%s,%s”,SS,aa);
)
程序运行结果是( )。
查看答案
D. accbbxxyy,bbxxyy
12单选题12 / 43
下述程序的输出结果是( )。
#includedstdio.h>
main()
{char ehE2][5]={”1234”,”5678”),*p[2];
int i,j,s=0;
for(i一0;i<2;i++)
pEi]=ch[i];
for(i一0;i<2;i++)
{s=p[i][j]-'0';
printf(”%d”,s);)
}
查看答案
C. 37
13单选题13 / 43
有以下程序
#include
main()
{FILE*fp;int a[10]=(1,2,3,0,0),i;
fp—fopen(”d2.dat,”wb”);
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp—fopen(”d2.dat”,”rb”);
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i十f-)printf("%d",a[i]);
}
程序的运行结果是( )。
查看答案
D. 1,2,3,0,0,1,2,3,0,0,
14单选题14 / 43
下列程序的输出结果是( )。
void fun(int*x,int y)
{printf(”%d%d”,*x,”y);*x=3;。y=4;)
main()
{ int x=1.y=2:
fun(&y,&x);
printf(”%dXd”,X,y);
)
查看答案
C. 1 2 3 4
15单选题15 / 43
有以下程序,其中函数f的功能是将多个字符串按字典顺序排序( )。
#{nc[ude%string.h>
void{(char*p[],int n)
{char*t;int i,j;
for(i=0:i<N-1;I++)
for(j=i+1;j<N;J++)
if(strcmp(p[i],p[j]>O){t=p[i];p[i]=p[j];p[j]
=t;}
}
main()
{char *P[5]={¨abc”,”aabdfg”,”abbd”,”dcdbe”,”ed”);
f(p,5):
print[("%d\n",strlen(p[1]));
程序运行后的输出结果是( )。
查看答案
D. 4
16单选题16 / 43
下面程序的功能是输m以下形式的金字塔图案:
main()
{ int i,j;
for(i-1;i<-4;i++) ***
{ for(j=1;j<=4-i;j++)printf("");
*****
for(j=1;j<=________;j++)printf(”*”);
******
printf(”\n”):
}
}
在下划线处应填入的是( )。
查看答案
B. 2*i-1
17单选题17 / 43
设a、b和C都是int型变量。且a=3,b=4,c=5,则以下的表达式中值为0的表达式是( )。
查看答案
D. !((a<B)&&!C||1)
18单选题18 / 43
下列变量声明合法的是( )。
查看答案
A. short a=1.4e-1;
19单选题19 / 43
以下程序的输出结果是( )。
main()
{ int a=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p;p=q;q=r;
printf(”%d,%d,%d,%d\n”,*P,*q,a,b);
)
查看答案
C. 8,7,7,8
20单选题20 / 43
有下列程序:
main()
{ int y=10
do(y--;}while(--y);
printf(”%d\n”,--y);
)
当执行程序时,输出的结果是( )。
查看答案
D. 0
21单选题21 / 43
有以下计算公式
若程序前面已在命令中包含math.h文件,不能够正确
计算上述公式的程序段是( )。
查看答案
B. y=sqrt(x)
if(x<0)y=sqrt(~x);
22单选题22 / 43
当输入为"hello?"时,下面程序的执行结果是( )。
#includedstdio.h>
main()
( char C;
c=getchar();
while(c!='?')
(putchar(c);break;
)
}
查看答案
B. h
23单选题23 / 43
下列选项中不是C语句的是( )。
查看答案
C. a=5,c=10
24单选题24 / 43
若有下列定义和语句:
int u一011,v一0x11,w一11:
printf(”%o,%x,%d\n”,u,v,w):
则输出结果是( )。
查看答案
C. 11,11,11
25单选题25 / 43
执行下列程序中的输出语句后,a的值是( )。
main()
{ int a;
printf(”%dkn”,(a=2*3,a*5,a+7));
)
查看答案
C. 6
26单选题26 / 43
下列选项中不会引起二义性的宏定义是( )。
查看答案
D. #define S(x) ((x)*(x))
27单选题27 / 43
下列程序的输出结果是( )。
#include%stdio.h>
main()
{ int i;
for(i=1;i<=10,i++)
f if((i*i>=20)&&(i*i<=100))
break;
)
print[(”%d\n”,i*i);
)
查看答案
C. 25
28单选题28 / 43
有以下程序:
#included stdio.h>
main()
{ char cl='1',c2='2';
cl=getchar():c2=getchar();putchar(c1);putchar
(c2);
}
当程序运行时输入a<回车>后,下列叙述中正确的是( )。
查看答案
A. 变量c1被赋予字符a,c2被赋予回车符
29单选题29 / 43
有如下程序:
main()
( int x=1,a=O,b=0;
switch(x)
{
CgtSC 0:b++;
case 1:a++;
CaSe 2:a++;b++;
)
printf(”a=%d.b=%d\n”,a.b);
}
该程序的输出结果是( )。
查看答案
A. a=2,b=1
30单选题30 / 43
有以下程序:
#include
main()
{ int k=-3:
if(k<=0)printf(”****\n”)
else printf(”&&&&\n”);
}
程序的输出结果是( )。
查看答案
D. 有语法错不能通过编译
31单选题31 / 43
若有定义“int b[8],*p=b;”,则p+6表示( )。
查看答案
B. 数组元素b[6]的地址
32单选题32 / 43
有下列程序:
main()
{ char s[]=”abode”;
s+=2:
printf(”%d\n”,s[o]);
)
执行后的结果是( )。
查看答案
D. 程序出错
33单选题33 / 43
有以下程序:
#include
main()
{ int w=4,x=3,y=2,z=1;
printf(”%d\n”,(w<X?W:Z<Y?Z:X));
程序的输出结果是( )。
查看答案
A. 1
34单选题34 / 43
下列程序的运行结果是( )。
#include
void fun(int*s,int*p)
{ static int t=3;
*p=set];
t——:
}
void main()
{int a[]={2,3,4,5),k;
int x:
for(k=0,k<4,k++)
{fun(a,&.x);
printf(”%d,”,x);
)
}
查看答案
A. 5,4,3,2
35单选题35 / 43
若有以下程序( )。
#include
main()
{ int**k,*j,i=100;
j=&i;k=&j;printf(”%d\n”,**k);
}
程序的输出结果是( >。
查看答案
B. 100
36单选题36 / 43
c语言中,下列不合法的字符常量是( )。
查看答案
D. '\028'
37单选题37 / 43
下列程序的运行结果是( )。
int y一5,x一14;
y=((x=3*y,x+1),x-1);
printf(”x=%d,y=%d”,x,y);
查看答案
C. x=15,y=14
38单选题38 / 43
有以下程序段:
int x:
for(x=3:x<6:X++
print[((x%2)?(”**%d”):(”##%d\n”),x);
程序段的输出结果是( )。
查看答案
D. **3##4
**4##5 **5
39单选题39 / 43
有以下程序:
#include
main()
{ int x,i;
for(i=1:i<=100:i++)
{ x=i:
if(++x$2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,x);
printf(”\n”);
程序的输出结果是( )。
查看答案
A. 2870
40单选题40 / 43
下面程序的运行结果是( )。
#include
void del(char*s)
{int i,j;
char*a:
a=s:
for(i=0,j一0;a[i]!='\o' ; i++)
{if(a[i]>='0'&&a[i]<='9')
{ s[j]=a[i];
j++;
}
s[j]='\0' ;
}
)
main()
{ char*s==”aa89gggh”:
del(s);
printf(”\n%s”,s);
查看答案
B. 2
41主观题41 / 43
请补充main()函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存在原来的字符串中。
例如,当str[M]=”abcdefl23ABCD”,结果输出:“ABC
DEF123ABCD”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
#define M 80
void main()
{
intj;
char str[M]=" abcdefl23ABCD”;
char *pf=str;
system(”CLS”):
printf(”***original string *** \n”):
puts(str);
【1】
while(*(pf+j))
{
if(*(pf+j)>='a' &&*(pf+j)<='Z')
{
*(pf+j)=【2】 ;
【3】 ;
)
else
j++;
)
printf(”****new string****\n”);
puts(str);
system(”pause”);}
查看答案
【1】j=0【2】*(pF+j)-321311j++
42主观题42 / 43
下列给定程序中,函数proc()的功能是:根据整型形參n的值,计算如下公式的值。
t=i-1/(2*2)-1/(3*3)-…-1/(n*n)
例如.当n=7时。t=0.188203。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
double proc(int n)
{double y=1.0;
inl i;
//****found****
for(i=2;i<N;I++)
//****found****
y-=1/(i*i):
telurn(y);
}
void main()
{ int n=7:
system(”CLS”):
print[(”\nThe result is%lf\n”,proe(n))。
1
查看答案
()错误:For(i=2;i<n;i++)正确:For(i=2;i<=n;i++)(2)错误:y-=1/(i*i); 正确:y-=1.0/(i*i);
43主观题43 / 43
请编写函数proc(),它的功能是计算:
s=(1-In(1)-ln(2)-In(3)-…-In(m))2
S作为函数值返回。
在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。
例如,若m的值为10,则proc()函数值为198.934454。
注意;部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#include
#include
double proc(int m)
{
void main()
{
system(”CLS”);
printf(”%f\n”,proc(10));
}
查看答案
(m){;
doubles=1.0;
//s的初值赋为
for(i=1;i<=;i++)//从到 s=s-log(i);
将其求得的差放到中 (s*);
最后把其平方值返回到主函数中)