第二章 基本数据类型及运算
一、选择题
1. 若以下选项中的变量已正确定义,则正确的赋值语句是 。
A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;
答案:C
2. 设变量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
答案:C
3. 下列C语言中运算对象必须是整型的运算符是 。
A) %= B) / C) = D) *=
答案:A
4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 。
A) 0 B) 0.5 C) 1 D) 2
答案:A
5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是 。
A) 把x和y按从大到小排列 B) 把x和y按从小到大排列
C) 无确定结果 D) 交换x和y中的值
答案:D
6. 下列变量定义中合法的是 。
A)short_a=1-.le-1; B)double b=1+5e2.5;
C)long do=0xfdaL; D)float 2_and=1-e-3;
答案:A
7. 以下4个选项中,不能被看作是一条语句的是 。
A) {;} B) a=0,b=0,c=0;
C) if (a>0); D) if (b==0)m=1;n=2;
答案:D
8. 设x=1,y=-1,下列表达式中解为8的是 。
A)x&y B)~x│x C)x^x D)x<<=3
答案:D
9. 在C语言中不合法的整数是 。
A)20 B)0x4001 C)08 D)0x12ed
答案: C
10. 以下选项中不正确的实型常量是
A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2
答案:B)
11.若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7 B)a=7+b+c,a++
C)int(12.3%4) D)a=a+7=c+b
答案:B)
12.以下十六进制数中不合法的是
A)oxff B)0Xabc C)0x11 D)0x19
答案:A)
13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是 。
A)0 B)1 C)2 D)3
答案:D
14. 下列程序的运行结果是 。
# include “stdio.h”
void main( )
{ int i=23;
do{++i;}
while(i);
printf(“%d”,i);
}
A)23 B)24 C)死循环 D)无任何结果
答案:C
15.设int a=3,b=4,c=5;,下列表达式的值不为1的是 。
A)a+b>c&&b==c B)a||b+c&&b-c
C)!(a>b)&&!c||1 D)!(a+b)+c-1&&b+c/2
答案:A
16.下列不合法的常量是: 。
(1)’?’ (2)’abc’ (3)”Turbo c” (4)’\0x32’ (5)’\123’
(6)’’’’ (7)”△” (8)’△’ (9)”\\\” (10)’’a’’’
(11)’\\’ (12)’\0123’(13)’\xaf’ (14)’王’ (15)”李为民”
(16)”\xaif”
答案:(2),(12),(14),(16)
17. 下列运算符中,结合方向为自左向右的是( )。
(A)?: (B), (C)+ = (D)+ +
答案:(B)
18. 若有float x;则sizeof (x)和sizeof (float)两种描述( )。
(A)都正确 (B)都不正确 (C)前者正确 (D)后者正确
答案:(A)
19. 有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为( )。
(A)17 (B)17.500000 (C)17.5 (D)16
答案:(A)
20. 若给定条件表达式(M)?(a++):(a--),则其中表达式(M) 。
A.和(M==0)等价 B.和(M==1)等价
C.和(M!=0)等价 D.和(M!=1)等价
答案:C
21. 已知float x=1,y;则y=++x*++x的结果是 。
A.y=9 B.y=6 C.y=1 D.表达式是错误的
答案:D
22. 以下程序的输出结果是 。
short i=65535; printf ("%d\n",i);
A.65535 B.0
C.语法错误,无输出结果 D.-1
答案:D
23.有变量说明语句int a,b ,c;,顺序执行下面语句:
a=b=c=1;
++a||++b&&++c;
那么,变量b的值应是( )
A.2 B.1 C.0 D.3
答案:B
24. 有变量说明int a=3;,则表达式a<1&&--a>1的运算结果和a的值应该是( )
A.0和2 B.0和3 C.1和2 D.1和3
答案:B
25. 以下程序的输出为 。
#include<stdio.h>
void main( )
{
double x=213.82631;
printf("%-6.2e\n",x);
}
A.213.82 B.21.38e+01 C.2.14e+02 D.-2.14e2
答案:C
26. 下列关于单目运算符+ +、- -的叙述中正确的是 。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
答案:D
27. 有以下程序:
#include <stdio.h>
void main ( )
{
char a,b,c,*d;
a='\';b='\xbc';
c='\0xab';d="\0127";
printf ("%c%c%c%c\n",a,b,c,*d);
float型}
编译时出现错误,以下叙述中正确的是 。
A)程序中只有“a='\';”语句不正确
B)“b='\xbc';”语句不正确
C)“d="\0127";”语句不正确
D)“a='\';”和“c='\0xab';”语句都不正确
答案:D
28. 有以下程序:
#include <stdio.h>
void main ( )
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);//k=(0=2>1)||(0=1<2)
printf ("%d,%d\n",k,m);//k的值若等于1程序便停止运行,m的值不会改变
}
程序运行后的输出结果是 。
A)0,0 B)0,1 C)1,0 D)1,1
答案:C
29. 已定义ch为字符型变量,下列赋值语句中错误的是 。
A)ch='\'; B)ch=62+3; C)ch=NULL; D)ch='\xaa';
答案:A
30. 以下4个选项中,不能看作一条语句的是 。
A){;} B)a=0,b=0,c=0;
C)if (a>0); D)if (b= =0)m=1;n=2;
答案:D
31. 假定有以下变量定义,则能使值为3的表达式是 。
int k=7,x=12;
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
答案:D
32. 以下程序的输出结果是 。
#include <stdio.h>
void main( )
{
int x=3,y=2,z=1;
printf ("%s=%d\n", "x/y&z",x/y&z);
printf ("%s=%d\n", "x^y&~z", x^y&~z);
}
A)x/y&z=0 B)x/y&z=1
x^y&~z =0 x^y&~z =0
C)s=x/y&z=0 D)x/y&z=1
s=x^y&~z =1 x^y&~z =1
答案:D
33. 设有“int x=11;”则表达式(x++*1/3)的值是 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论