《C程序设计》期中考试试卷
班级: 学号: 姓名: 成绩:
一、选择题(每题2分,共40分)
1.下列不正确的标识符是( B)。
A. _char B. a?b C. x D. st2_flag
2. C语言的源程序( C)main函数。
A. 可以没有 B. 可以有多个
C. 有且只有一个 D. 若有,只有一个
3. 若有变量定义:char c; int i; float x;则表达式i+x-c*8的结果为( D)类型。
A.float B. int C.char D.double
4. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( C)。
A.2 B.6 C.8 D.7
5.下列字符中不属于转义字符的是(D )。
A. ‘\n’ B. ‘\t’ C.‘\b’ D. “\9”
6. 在内存中应该开辟( A)个字节来存放字符‘\n’.
A. 1 B. 2 C. 3 D. 4
7. 下面的(C )不是合法的C语言常量。
A. 123 B.‘M’ C. 0892 D. “Flag”
8. 在一个C程序中,main函数的位置(B )
A. 在最开头 B. 任意 C. 在最后 D. 在中间
9. 有变量说明int a=3;, 则表达式a<1&&++a>1的运算结果和a的值分别是(B )。
A. 0和4 B. 0和3 C. 1和4 D. 1和3
10. 设int x=5;, 则执行完语句a+=a-=a*a; 后,a的值是(D )。
A. -15 B. 5 C. 25 D. -40
11. 若已经定义x和y为double型变量,则表达式x=1,y=x+3/2的值是(C )。
A. 1 B. 2 C. 2.0 D. 2.5
12. 若有定义double x=3.5, y=2.5, z ; 则表达式z=(int)x+y的值是( A)。
A. 5.5 B. 5.0 C. 6 D. 6.0
13. 在C语言中,5种基本数据类型的存储空间长度的排列顺序为(A )。
A.char < int < long <= float < double
B. char = int < long <= float < double
C. char < int < long = float = double
D. char = int = long <= float < double
14. C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C)。
A. 必须为字母 B. 必须为下划线
C. 必须为字母或下划线 D. 可以是任意字符
15. 在C语言中,要求运算数必须是整型的运算符是(D )。
A. / B. ++ C. != D. %
16. 有如下定义和语句:int a,b; scanf("a=%d,b=%d",&a,&b); 若想让a的值为10,b的值为20,正确的数据输入方式为(C )。
A.10 20 B. 10,20
C. a=10,b=20 D. a=10 b=20
17. 当a=3, b=2, c=1时,表达式 f=a>b>c的值为(A )。
A. 0 B. 1 C. 2 D. 3
18. sizeof(float)的值为( D)。
A. 1 B. 2 C. 3 D. 4
19. 若有代数式|x3+lgx|,则其对应的C语言表达式为( C)。
A. abs(x*3+logx) B. abs(x^3+log10x)
C. fabs(pow(x,3),log10x) D. fabs(pow(x,3),logx)
20. 以下(A )不是C语言的语句。
A. x=x+1 B. scanf("%d",&a);
C. {t=a; a=b; b=t;} D. ;
二、程序阅读题(每题4分,共20分)
1、main()
{ int a = 3;
if (a = 2)
printf("ok");
else
printf("hello");
运行结果为:
2、main()
{ int a = 65;
printf("%d,%c,%o",a,a,a);
运行结果为:
3、main()
{ int i=3, j=4;
printf("%d,%d",++i,j++);
运行结果为:
4、main()
{ int a, b, c;
a = 10; b = 20; c = 30;
if ( a > b ) a = b; b = c; c = a;
printf("%d,%d,%d",a,b,c);
运行结果为:
5、main()
{ int x=1,a=0,b=0;
switch(x)
{ case 1: a++;
case 2: a++; b++; break;
default: b++;
printf("a=%d,b=%d\n",a,b);
运行结果为:
三、编程题(每题10分,共40分)
1、编程实现:输入圆柱体的半径和高,输出其体积。(已知圆柱体的体积公式为∏×r2×h)
2、输入一个三位数,输出其各位数字之和。
3、输入一个正整数,判断其是否既是5的倍数又是7的倍数。若是,输出yes;否则输出no。
4、有一函数:
x<-8
y = 3x+6 -8≤x<0
x2-9 x≥0
要求输入x,输出y的值。
参考答案
一、选择题
1-5: BCDCD 6-10: ACBBD 11-15: CAACD 16-20: CADCA
二、程序阅读题
1、ok 2、65,A,101 3、4,4 4、10,30,10 5、a=2,b=1
三、编程题
1、 # include <stdio.h>
# define PI 3.14159
void main( )
{
float r,h,v;
printf(“请输入半径r和高h:”);
scanf(“%f,%f”,&r,&h);
v = PI * r * r * h;
printf(“体积为%.3f\n”,v);
2、 # include <stdio.h>
void main( )
{ int n,x1,x2,x3,s;
printf(“请输入一个三位数:”);
scanf(“%3d”,&n);
x1 = n/100; /*百位数*/
x2 = n/10%10; /*十位数*/
x3 = n%10; /*个位数*/
s = x1+x2+x3;
printf(“%d\n”,s);
3、 # include <stdio.h>
void main( )
{
unsigned num;
printf(“请输入一个正整数:”);
scanf(“%u”,&num);
if (num%5==0 && num%7==0)
printf(“yes\n”);
else
printf(“no\n”);
4、 # include <stdio.h>
void main( )
{
float x,y;
printf(“请输入x:”);
scanf(“%f”,&x);
if (x<-8)
y=x/5;
else if (x<0)
y=3*x+6;
else
y=x*x-9;
printf(“y=%.3f”,y);