班级: 学号: 姓名:
第1章C语言基本语法元素
选择和填空题答案直接写在括号中,编程题答案写在相应题目下面。
一.选择题
1. 若x是单精度实型变量,表达式 (x = 10/4) 的值是( ) 。
A、2.5 B、 2.0 C、 3 D、 2
2. C 语言程序中可以对程序进行注释,注释部分必须用符号( )括起来。
A、‘{‘ 和’}’ B、‘[‘和’]’ C、“/*”和”*/” D、“*/”
3. ( )是合法的用户自定义标识符。
A、 b-b B、float C、D、 _isw
4.若变量已正确定义并赋值,表达式( )不符合C语言语法。
A、a*b/c; B、3.14%2 C、2, b D、a/b/c
5. ( )把x、y定义成float类型变量,并赋同一初值3.14。
A、float x, y=3.14; B、float x, y=2*3.14;
C、float x=3.14, y=x=3.14; D、float x=y=3.14;
6. 设变量定义为“int a, b;”,执行下列语句时,输入( ),则a和b的值都是10。
scanf("a=%d, b=%d",&a, &b);
A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10
7. 若变量已正确定义,表达式 (j=3, j++) 的值是( )。
A、3 B、 4 C、5 D、0
8. 以下选项中不正确的实型常量是( )。
A.0.23E B.2.3e-1 C.1E3.2 D.2.3e0
9. 若变量已正确定义且 k 的值是 4,计算表达式 ( j = k--) 后,( )。
A、j=3, k=3 B、j=3, k=4 C、j=4, k=4 D、j=4, k=3
10. 以下选项中可作为C语言合法整数的是( )
A、10110B B、0386 C、0Xffa D、x2a2
11. 设有如下程序段:
int x=2002, y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是( )
A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、运行时产生出错信息
C、输出值为2002 D、输出值为2003
12. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )
A、x=x*100+0.5/100.0; B、x=(x*100+0.5)/100.0;
C、x=(int)(x*100+0.5)/100.0; D、x=(x/100+0.5)*100.0;
13. 在一个C程序中( )
A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现
C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置
14.下列关于单目运算符++、--的叙述中正确的是( )
A、 它们的运算对象可以是任何变量和常量
B、它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C、它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D、它们的运算对象可以是char型变量、int型变量和float型变量
15. 若a,b均为int型变量,x,y均为float型变量,正确的输入函数调用是( )。
A、scanf(“%d%d”.&a,&b); B、scanf(“%d%f”,&a,&b);
C、scanf(“%d%d”,a,b); D、scanf(“%f%f”,x,y);
16、若x,y均为double型变量,正确的输入函数调用是( )。
A、scanf(“%f%f”,&x,&y); B、scanf(“%d%d”,&x,&y);
C、scanf(“%lf%lf”,&x,&y); D、scanf(“%lf%lf”,x,y);
17若a,b,c,d都是int型变量且初值均为10,不正确的赋值语句是( )。
A、a=b=c=d; B、a=b++; C、a+b++; D、d=(a=b=125)-c++;.
18. 设x和y均为int型变量,则执行以下语句后的输出为( )。
x=15;y=5;
printf(“%d\n”,s%=(y%=2));
A、0 B、1 C、6 D、12
19. 一个C语言程序是由( )
A、一个主程序和若干子程序组成 B、函数组成
C、若干过程组成 D、若干子程序组成
20. 一个C程序的执行是从( )。
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
21. 以下叙述正确的是( )
A、在C程序中,main函数必须位于程序的最前面
B、C程序的每行中只能写一条语句
C、C语言本身没有输入输出语句
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
22. 以下叙述不正确的是( )。
A、一个C源程序可由一个或多个函数组成
B、一个C程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
23. C语言规定:在一个源程序中,main函数的位置( ) 。
A、必须在最开始 B、必须在系统调用的库函数的后面
C、可以任意 D、必须在最后
24. 设x 、y均为f1oat型变量,则以下不合法的赋值语句是( )
A、++x; B、y=(x%2)/10; C、x*=y+8; D、x=y=0;
25.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )
A、int B、float C、double D、不确定
26.若x,i,j和k都是int型变量,则执行下面表达式后x的值为( )
x=(i=4,j=16,k=32)
A、4 B、16 C、32 D、52
27.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )
A、7 B、8 C、6 D、2
28.以下选项中,合法的一组C语言文字是( )。
A、028 B、12. C、.177 D、0x8A
.5e-3 0Xa23 4e1.5 10,000
-0xf 4.5e0 Oabc 3.e5
29.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为( )
A、7 B、8 C、9 D、10
30.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )
A、2.500000 B、2.7500OO c、3.500000 D、0.000000
31.以下选项中,与j=++i完全等价的表达式是( )。
A、i=i+1,j=i B、j=i,i=i+1 C、j=i++ D、j+=i+1
32. 设在定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是( )。
A、k++ B、k+=1 C、++k D、k+1
33. 已知int k,m=1;执行语句k=-m++;后,k的值是( ),m的值是( )。
A、-1 B、0 C、1 D、2
34. 构成C程序的基本单位是( )。
A、函数 B、变量 C、子程序 D、语句
35. 设变量已正确定义并赋值,以下正确的表达式为( )。
A、x=y*5=x+z B、int(15.8)%5 C、x=y+z+5,++y D、x=25%5.0
二.填空题
1. i为int型变量,且初值为3,有表达式i++-3,则该表达式的值是( ),变量i的值是( )。
2.i为int型变量,且初值为2,有表达式++i-3,则该表达式的值是( ),变量i的值是( )。
3.若x=1,y=2,z=3,则表达式z+=++x+y++之值为( )。
4.若有定义int y=3;float z=5.2,x=4.8;则表达式y+=(int)x+x+z之值为( )。
5.若x=2,y=3,则x%=y+3之值为( )。
6.表达式a=(b=8)/(c=2)之值为( )。
7.若x,y,z均为int型变量,则执行以下语句后的输出为( )。
x=(y=(z=10)+5)-5;
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
y=(z=x=0,x+10);
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
8. 以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a,b,c的值。请填空。
#include main()
{ _________________;
int temp;
printf("Enter a,b,c:");
scanf("%d%d%d",____________);
_____________;
a=b;
b=c;
_____________;
printf("a=%d b=%d c=%d\n",a,b,c);
}
9. 输入两个实数a,b,然后交换它们的值,最后输出(提示:要交换两个数得借助一个中间变量temp。首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)。
void main()
{
double a,b,temp;
printf("请输入a和b的值:");
scanf("_________", &a,&b);
temp = a;
___________;
____________;
printf("交换后, a=%f , b=%f\n",_________);
}
三.编程题
1.编写程序,输入三角形三条边的边长,求三角形的面积。(根据海伦公式,平方根函数sqrt)
2.求一元二次方程的根。