文档库

最新最全的文档下载
当前位置:文档库 > C语言基本数据类型及运算题库有答案

C语言基本数据类型及运算题库有答案

C语言基本数据类型及运算题库有答案

第二章基本数据类型及运算

一、选择题

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=ik)&&(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

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

void main ( )

{

char a,b,c,*d;

a='\';b='\xbc';

c='\0xab';d="\0127";

printf ("%c%c%c%c\n",a,b,c,*d);

}

编译时出现错误,以下叙述中正确的是。

A)程序中只有“a='\';”语句不正确

B)“b='\xbc';”语句不正确

C)“d="\0127";”语句不正确

D)“a='\';”和“c='\0xab';”语句都不正确

答案:D

28. 有以下程序:

#include

void main ( )

{

int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf ("%d,%d\n",k,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

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)的值是。

A)3 B)4 C)11 D)12

答案:A

34. 若有语句scanf(”%d %c%f”,&a,&b,&c),假设输入序列为2223a123o.12,a、b、c的值为。

A)无值 B)2223,a,123o.12

C)2223,a,无 D)2223,a,123

答案:D

35. 下列描述中,正确的一条是。

A)C语言的整型变量可以分为int 、short、long、unsigned int、unsigned short、unsigned long等几种类型,因此整型常量也可以分为这几种类型

B)C语言的字符数据与整型数据可以互相赋值

C)若对字符型变量的定义为:“char c;”可使用语句c=“a”对变量c赋值

D)已知x为float型,执行语句(int)x后,x为int型

答案:B

36. 设“int x=1,y=1;”,表达式(!x‖y--)的值是。

A)0 B)1 C)2 D)-1

答案:B

37. 执行x=5>1+2&&2||2*4<4-!0后,x的值为。

A)-1 B)0 C)1 D)5

答案:C

38. 语句“printf ("%d ", (a=2)&&(b=-2));”的输出结果是。

A)无输出 B)结果不确定 C)-1 D)1

答案:D

39. 设a=2、b=3、c=4,则表达式a+b>c&&b= =c&&a||b+c&&b+c的值为。

A)5 B)8 C)0 D)1

答案:D

40. 执行语句scanf (“%c%c%c”,&c1,&c2,&c3),输入abc时,变量c1、c2、c3的值分别为。

A)'a', 'b', 'c' B)'a','b', ''

C)'a', '', 'b' D)'a','','c'

答案:A

41. 若有以下定义:

int a=10,b=9,c=8;

顺序执行下列语句后,变量b中的值是。

c=(a -= (b-5));

c=(a%11)+(b=3);

A)3 B)8 C)9 D)10

答案:A

42. 有以下程序段:

int m=0,n=0;char c='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:10A10<回车键>,则输出结果是。

A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0 答案:A

43. 已定义c为字符型变量,则下列语句中正确的是。

A)c='97 ' B)c=“97 “ C)c=97 D)c=“a”

答案:C

44. 若有以下变量说明和数据的输入方式,则正确的输入语句为()。

变量说明:float x1,x2;

输入方式:4.52<回车>

3.5<回车>

A)scanf (“%f,%f”,&x1,&x2);

B)scnaf (“%f%f”,&x1,&x2);

C)scanf (“%3.2f %2.1f”,&x1,&x2);

D)scnaf (“%3.2f%2.1f”,&x1,&x2);

答案:B

45. 若有程序段:

for (m=1;m<=100;m++)

{

scanf("%d",&y);

if(y<0) continue;

printf("%3d",m);

}

正确的描述是()。

A)当y<0时整个循环结束 B)y>=0时什么也不输出

C)printf函数永远也不执行 D)最多允许输出100个非负整数

答案:D

46. 下面程序的运行结果是()。

#include

#define DATA 20+7

void main( )

{

printf("DATA=%d",DATA/3);

}

A)DATA=22 B)DATA=21

C)DATA=9 D)以上都不对

答案:A

47. sizeof(float)是()。

A)一个双精度型表达式 B)一个整型表达式

C)一种函数调用 D)一个不合法的表达式

答案:B

48. 设有语句

int a=5,b=6,c=7,d=8,x=2,y=2,n;

n=(x=ad&&b>c));

则执行完上述语句后n的值为()。

A)1 B)2 C)3 D)0

答案:D

49. 设c1,c2均是字符型变量,则以下不正确的函数调用为()。

A)scanf(“c1=%cc2=%c”,&c1,&c2); B)c1=getchar( );

C)putchar(c2); D)putchar(c1,c2); 答案:D

50. 有定义如下:

char str1[50],str2[20],ch;

则下列语句中正确的是()。

A)str1={“Crazy”}; B)str1={“Crazy”};

str2=str1; str2={“English”};

strcpy(str1,str2);

C)ch=“xy”; D)ch='x';

答案:D

51. 有以下定义语句:

double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是()。

A)a=a+b=b++ B)w%((int)a+b)

C)(c+w)%(int)a D)w=a=b

答案:C

52. 有以下程序:

#include

void main( )

{

int i=0,s=0;

for(; ;)

{

if(i==3||i==5)continue;

if(i==6) break;

i++;

s+=i;

};

printf("%d\n",s);

}

程序运行后的输出结果是()。

A)10 B)13 C)21 D)程序进入死循环

答案:D

53. 以下选项中可以作为C语言中合法整数的是。

(A)10110B (B)0386 (C)0Xffa (D)x2a2

答案:C

54.以下选项中可作为C语言合法常量的是。

(A)-80. (B)-080 (C)-8e1.0 (D)-80.0e

答案:A

55.若a为整型变量,则以下语句。

a=-2L;printf(“%d\n”,a);

(A)赋值不合法(B)输出值为-2 (C)输出为不确定值(D)输出值为2 答案:B

56.若有以下程序:

#include

void main( )

{ int k=2,i=2,m;

m=(k+=i*=k);

printf(" %d,%d\n ",m,i);

}

执行后的输出结果是。

(A)8, 6 (B)8 ,3 (C)6, 4 (D)7, 4

答案:C

57. 以下非法的赋值语句是。

(A)n=(i+2,i++); (B)j++; (C)++(i+1); (D)x=j>0

答案:C

58. 有以下程序

#include

void main( )

{ int x=102,y=012;

printf(“%2d,%2d\n”,x,y);

}

执行后输出结果是。

(A)10,01 (B)02,12 (C)102,10 (D)02,10

答案:C

59. 以下程序输出的结果是。

#include

void main( )

{

printf("\n*a=%15s*","chinazhongguo");

printf("\n*b=%-5s*", "chi");

}

(A)*a=chinazhongguo* (B)*a=chinazhongguo*

b=**chi* *b=chi *

(C)*a=* chinabeijing* (D)*a= chinazhongguo*

*b=chi* *b=chi *

答案:D

60. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a

(A)1 (B)2 (C)3 (D)4

答案:A

61. 设有定义:int x=1,y=-1;。则语句“printf(“%d\n”,(x- -&&++y);”的输出结果是。

(A)1 (B)0 (C)-1 (D)2

答案:B

62. 若变量a是int类型,并执行了语句:a= ' A ' +1.6;,则正确的叙述是。

(A)a的值是字符C (B)a的值是浮点型

(C)不允许字符型和浮点型相加(D)a的值是字符'A'的ASCII值加上1

答案:D

63. 有一下程序

#include

void main()

{

int x=3,y=2,z=1;

printf("%d\n",x/y&~z);

}

程序运行后的输出结果是。

(A)3 (B)2 (C)-1 (D)0

答案:D

64. 表达式x

(A)~,&,<,|| (B)~,||,—,>

(C)~,&,|| , < (D)~,<,&,||

答案:D

65. 整型变量x和y的值相等,且均为非0值,则以下选项中,结果为0的表达式是。

(A)x||y (B)x|y (C)x & y (D)x^y

答案:D

66. 在下列符号中,不属于转义字符的是。

(A)\ (B)\x12 (C)\013 (D)\05

答案:A

67. 若有以下定义:int x,y;char a,b,c;并有以下输入数据(此处?代表空格):

1?2

A?B?C

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是。

(A)scanf ("x=%dy=%d",&x,&y);a=getchar( );b=getchar( );c=getchar( );

(B)scanf ("%d %d",&x,&y);a=getchar();b=getchar( );c=getchar( );

(C)scanf ("%d%d%c%c%c ",&x,&y,&a,&b,&c);

(D)scanf ("%d%d%c%c%c %c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);

答案:D

68. 语句:printf("%03d,%-3d\n",4,5);的输出为。

(A)004,5 (B)004,5

(C)4,5 (D)4,5

答案:A

69. 若有以下程序段:

int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf("%d,%d,%d\n",a, b, c);

其输出结果是

A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3

答案:B)

70. 若有以下程序段:

#include