一、填空与选择(本大题共40分,每小题2分)
1.C语言从源程序的书写到上机运行输出结果要经过__________四个步骤。
2.C语言的表达式与语句的区别在于__________。
3.C语句_________ (有、没有)输入、输出语句。
4.结构化程序的编写有__________三种程序结构。
5.表达式10/3*9%10/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
二、读程序(本大题共10分,每小题5分)
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”); } }
三、程序填空:(根据题意,将空缺的语句补上。)(本大题共10分,每小题5分)
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);}
四、改错(本题10分)
求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(“%12ld %12ld”,f1,f2);
if (i%4=0) printf(“\n”);
f1=f1+f2
f2=f2+f1; } }
五、编程(本大题共30分,每小题10分)
1.给定一个正整数,判断它是否能同时被3、5、7整除。
2.计算分段函数:
3.从键盘录入10个数到数组A,请将它们进行由小到大的排序(方法不限)。
一、填空与选择
1.编辑、编译、连接、执行
2.“表达式”未尾加“;”号就成“语句”
3.没有
4.顺序、分支、循环
5.3
6.9
7.3
8.y%4= =0 && y%100!=0 || y%400==0
9.! &&||
10.C 11.B 12.C 13.D 14.C 15.C
16.C 17.B 18.A 19.C 20.A
二、读程序
1.5
2.X=3
3.1,1,1 11 X>3 4,3,2 X unknow 4,2,3 5,2,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(“%12ld %12ld”,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<math.h>
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; }