2011年全国计算机等级二级C语言模拟试题及答案(12)
一、 填空与选择
1. C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2. C语言的表达式与语句的区别在于___________________________________。
3. C语句_____________ (有、没有)输入、输出语句。
4. 结构化程序的编写有_______________________________三种程序结构。
5. 表达式10/3*9/2的值是___________________。
6. 设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
7. 设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
8. 变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________
9. 逻辑运算符“&&、||、 !”中的优先级是____________________
10. C语言是由________________基本单位组成的。
A.过程
B.语句
C.函数
D.程序
11.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
A.算术表达式
B.逻辑表达式
C.关系表达式
D.字符表达式
12.下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
13.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?
A.11
B.12
C.14
D.15
14.设整型变量a为5,使b不为2的表达式是___________
A. b=a/2
B. b=6-(--a)
C. b=a%2
D.b=a>3?2:1
15.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
A.0
B.2
C.-4
D. 4
16.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
A. 3, 3, 2
B. 3,2,2
C.3,2,3
D.2,3,2
17.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
A.100
B. 400
C. 450
D. 900
18.下列常量中哪个是不合法的_________________
A.2e32.6
B. 0.2e-5
C. “basic”
D. 0x4b00
19.下列标识符错误的是_______
A. x1y
B._123
C. 2ab
D. _ab
20. c语言中int型数-8在内存中的存储形式为_____
A.1111111111111000
B. 1000000000001000
C. 0000000000001000
D. 1111111111110111
二、 读程序(结果写在试卷的右边)
1. 写出下列程序段的输出结果:
main()
{int x=5; int y=10;
printf("%d\n",x++);
printf("%d\n",++y); }
2. 下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
switch(x)
{ case 1:
case 2:printf("x<3\n");
case 3:printf("x=3\n");
case 4:
case 5:printf("x>3\n");
default:printf("x unknow\n"); } }
3.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{ int x,y;
scanf(“%d”,&x);
if (x<0) y= -1;
else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y); }
4. 读出下列程序的输出结果:
main()
{ int a=1,b=1,c=1;
printf(“%d,%d,%d\n”,a,b,c)
a+=b+=++c;
printf(“%d,%d,%d\n”,a,b,c);
printf(“%d,%d,%d\n”,a++,--b,++c);
printf(“%d,%d,%d\n”,a,b,c); }
三、 程序填空:(根据题意,将空缺的语句补上。)
1. 下列程序的功能是计算圆的面积,将程序补充完整。
#define PI = 3.14159
main()
{ float r,s;
printf(“Enter a number r:”);
____________________________
s=PI*r*r
___________________; }
2. 该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。
#include "stdio.h"
main()
{ ________________
i=1,sum=0;
for(; i<=10;)
{ sum+=i;
_________ }
printf("%d\n",sum); }
四、改错:
求Fibonacci数列40个数。
这个数列有如下特点:第1,2 两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:
F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n≥3)
程序如下,请改正:
main()
{ long int f1,f2
int i;
f1=f2=1;
for (i=1, i<=20 , i- -);
{ printf(“ld ld”,f1,f2);
if (i%4=0) printf(“\n”);
f1=f1+f2
f2=f2+f1; } }
五、编程:
1. 给定一个正整数,判断它是否能同时被3、5、7整除。
2.计算分段函数:
3.从键盘录入10个数到数组A,请将它们进行由小到大的排序(方法不限)。
参考答案
一、 填空与选择
1. 编辑、编译、连接、执行
2. “表达式”未尾加“;”号就成“语句”
3. 没有
4. 顺序、分支、循环
5. 3 6. 9 7. 3 8. y%4= =0 && y0!=0 || y@0==0
9. ! &&||
10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
C B C D C C C B A C A
二、 读程序
1. 5 2. X=3 4. 1,1,1
11 X>3 4,3,2
X unknow 4,2,3 5,2,3
3.
三、 程序填空:(根据题意,将空缺的语句补上。)
1. 下列程序的功能是计算圆的面积,将程序补充完整。
#define PI = 3.14159
main()
{float r,s;
printf(“Enter a number r:”);
____scanf(“%f”,&r);________________________
s=PI*r*r
____printf(“s=%f ”,_s); }
2. int I , sum
I++;
四、 改错:
main()
{ long int f1,f2;
int i;
f1=f2=1;
for (i=1;i<=20; i++);
{ printf(“ld ld”,f1,f2);
if (i%4=0) printf(“\n”);
f1=f1+f2;
f2=f2+f1; } }
五、 编程:(略)
1.main()
{
int a;
scanf(“%d”,&a);
if(a%3==0&&a%5==0&&a%7==0)
printf(“%d”,a);
}
2.#include
main()
{
float x,y;
scanf(“%f”,&x);
if(x>20)
y=x*x+3*x+2;
if(x>=10&&x<20)
y=sqrt(3*x)-2;
if(x>10)
y=1/x+fabs(x);
printf(“%f”,y);
}
3. main()
{ int a[10]={10,9,8,7,6,5,4,3,2,1};
int b,c,d;
for(b=0;b<9;b++)
for(c=0;c<9-b;c++)
if(a[b]>a[c])
{ b=a[b];a[b]=a[c];a[c]=d;}
for(b=0;b<9;b++)
printf(“%d”,a[b]);
}bsp; }
编辑特别推荐:
2011年计算机等级二级C语言课后练习题及答案解析汇总
2011年全国计算机等级二级C笔试考前练习习题汇总
2011年计算机等级考试二级C语言基础教程汇总
2011年计算机等级考试二级C语言辅导笔记汇总
2011年计算机等级考试二级C语言入门教程汇总