为了帮助大家复习好2014年计算机等级考试,本次我们考吧网特为广大考生整理了计算机等级考试模拟试题,希望广大考生能够喜欢。本次主要汇编了计算机等级二级C语言精选试题:
一、选择题(每小题1分,共40小题,共40分)
33.有以下程序:
#include
int fun(int X,int y)
{if(X!=y)return((x+y)/2);
else return(x);
}
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.有以下程序:
#include
int fun()
{static int x=1;
X*=2:
return x;
}
main()
{int i,S=1;
for(i=1;i<=3;i++)S*=fun();
printf("%d",s);
}
程序运行后的输出结果是( )。
A.0
B.10
C.30
D.64
35.有以下程序:
#include
#define S(x)4*(x)*x+1
main()
{int k=5,j=2;
printf("%d",S(k+j));
}
程序运行后的输出结果是( )。
A.197
B.143
C.33
D.28
36.设有定义:“struct{char markp[l2];int numl;double num2;}tl,t2;”,若变量均已正确
赋初值,则以下语句中错误的是( )。
A.tl=t2;
B.t2.num1=tl.numl;
C.t2.mark=tl.mark;
D.t2.num2=tl.num2;
33.B。【解析】此题考查的是函数fun(),fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。
34.D。【解析】函数fun()是2的次方的运算,而s*=fun(),所以答案为64。
35.B。【解析】此程序考查带参数的宏定义,S(k+j)展开后即4*(k+j)*k+j+1,所以结果为l43,答案为B。
36.C。【解析】结构体不能通过结构体名字整体赋值,通过结构体名.成员名的方式赋值。所以C选项错误。
37.有以下程序:
#include
struct ord
{int X,y;)dt[2]={1,2,3,4};
main()
{
struct ord*p=dt;
printf("%d,",++(p->x));printf("%d",++(p->y));
}
程序运行后的输出结果是( )。
A.1,2
B.4,1
C.3,4
D.2,3
38.有以下程序:
#include
struct S
{int a,b;)data[2]=10,100,20,200);
main()
{struet S p=data[l];
printf("%d",++(p.a));
}
程序运行后的输出结果是( )。
A.10
B.11
C.20
D.21
39.有以下程序:
#include
main()
{unsigned char a=8,C;
C=a>>3:
printf("%d",c);
}
程序运行后的输出结果是( )。
A.32 B.16 C.1 D.0
40.设fp已定义,执行语句“fp=fopen("file","w");”后,以下针对文本文件file操作叙述的选项中正确的是( )。
A.写操作结束后可以从头开始读
B.只能写不能读
C.可以在原有内容后追加写
D.可以随意读和写
37.D。【解析】p一>x的值为1,++(p->x)作用是取p->x的值加1作为表达式的值即值为2,同理++(p->y)的值为3。所以选D。
38.D。【解析】考查结构体的应用,答案为21。
39.C。【解析】题中定义了无符号数,c=a>>3;是指右移3位,然后输出。结果为C。
40.B。【解析】考查基础知识,fp=fopen("file","w");指的是写操作之后只可以读。所以答案为B。
推荐阅读: