搜档网
当前位置:搜档网 › C语言基本数据类型及运算题库

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. 若有以下定义:intx,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

void main()

{

int a=2,b=5;

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

}

其输出结果是

A)a=%2,b=%5 B)a=2,b=5

C)a=%%d,b=%%d D)a=%d,b=%d

答案:D)

71. 若变量c定义为float类型,当从终端输入283.1900 (代表回车键),能给变量c赋以283.19的输入语句是

A)scanf(“%f”,c); B)scanf(“%8.4f”,&c);

C)scanf(“%6.2f”,&c); D)scanf(“%8f”,&c);

答案:D)

72. 下列运算符中优先级最高的是

A)! B)% C)- = D)&&

答案:A)

73. 设a、b和c都是int型变量,且 a=3,b=4,c=5;则以下的表达式中,值为0的表达式是

A)a&&b B)a<=b C)a||b+c&&b-c D)!((a

答案:D)

74. C语言中不合法的字符常量是

A)'\0xff ' B)'\65 ' C)'& ' D)'\028 '

答案:A)

75. 以下的程序:

#include

void main()

{

char x=040;

printf("%d\n",x=x<<1);

}

其输出是

A)100 B)160 C)120 D)64

答案:D)

76. 以下定义语句中正确的是。

A)char a='A'b='B'; B)float a=b=10.0;

C)int a=10,*b=&a; D)float *a, b=&a;

答案:C

77. 以下所列的C语言常量中,错误的是。

A)0xFF B)1.2e0.5 C)2L D)'\72'

答案:B

78. 有以下程序

#include

void main()

{

int m=0256,n=256;

printf("%o %o\n",m,n);

}

程序运行后的输出结果是。(2004年9月)

A)0256 0400 B)0256 256 C)256 400 D)400 400 答案:C

79. 已经定义ch为字符型变量,以下赋值语句中错误的是。

A)ch= '\; B)ch=62+3 C)ch=NULL D)ch= '\xaa';

答案:A

80. 有以下程序

#include

void main()

{

int m=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

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

A)3 B)5 C)-1 D)-2

答案:D

81. 下列程序的输出结果是。

#include

void main()

{

double d=3.2;

int x,y;

x=1.2;y=(x+3.8)/5.0;

printf("%d\n",d*y);

}

A)3 B)3.2 C)0 D)3.07

答案:C

82. 设有如下程序段

int x=2002,y=2003;

printf("%d\n",(x,y));

则以下叙述中正确的是。

A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B)运行时产生出错信息

C)输出值为2002

D)输出值为2003

答案:D

83. 有以下程序

#include

void main()

{

unsigned char a,b;

a=4|3;

b=4&3;

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

}

执行后输出结果是。

A)7 0 B)0 7 C)1 1 D)43 0

答案:A

84. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是。

A)6.500000 B)6 C)5.500000 D)6000000

答案:D

85. 已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是。

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

答案:D

86. 设int x=1,y=1;表达式(!x||y--))的值是。

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

答案:B

87. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是。

A)abs(x-y)<10 B)x-y>-10&&x-y<10 C)!(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100

答案:C

88. 在下列选项中,不正确的赋值语句是。

A)++t; B)n1=(n2=(n3=0)); C)k=i= =j; D)b+c=1;

答案:D

89. 若x=2,y=3,则x&y的结果是。

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

答案:B

90. 下面程序的输出结果是。

main( )

{ unsigned a=32768;

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

}

A)a=32768 B)a=32767 C)a=-32767 D)a=-1

答案:C

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

#include

void main( )

{

int i=010,j=10;

printf("%d,%d\n",++i, j--);

}

A)11,10 B)9,10 C)010,9 D)10,9

答案:B

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

#include

void main( )

{

int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A)6,1 B)2,1 C)6,0 D)2,0

答案:B

93. 如果在用户的程序中使用C语言库函数中的sqrt函数,应在该源文件中使用的include 命令是。

A)# include B)# include

C)# include D)# include

答案:B

94. 下面程序的输出结果是。

#include

void main( )

{

unsigned int a,b;

a=0x9a;

b= ~a;

printf("%x, %x\n",a,b);

}

答案:9a,ff65(TC2.0)或9a,ffffff65(Visual C++6.0)

95. sizeof(double)是。

A)一种函数调用 B)一个双精度型表达式

C)一个整型表达式 D)一个不合法的表达式

答案:C

96. 下面的程序。

#include

void main( )

{

int x=3,y=0,z=0;

if(x=y+z)

printf("* * * *");

else

printf("# # # #");

}

A)有语法错误不能通过编译

B)输出 * * * *

C)可以通过编译,但是无法连接,因而不能运行

D)输出# # # #

答案:D

97. 已知i、j、k为 int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。(2002年9月)A)scanf("%2d%2d%2d", &i, &j, &k);

B)scanf("%d %d %d", &i, &j, &k);

C)scanf("%d,%d,%d", &i, &j, &k);

D)scanf("i=%d,j=%d,k=%d", &i, &j, &k);

答案:C

98. 设有以下语句:

char x=3,y=6,z;

z=x^y<<2;

则z的二进制值是。

A.00010100 B.00011011 C.00011100 D.00011000

答案:B

99. putchar 函数可以向终端输出一个。

A)整型变量表达式的值 B)实型变量的值

C)字符串 D)字符或字符型变量的值

答案:D

100. 已知ch是字符型变量,下面不正确的赋值表达式是。

A)ch='a+b' B)ch='\0' C)ch='7'+'9' D)ch=5+9

答案:A

101.以下常量中,合法的是_______。

A)5e2.5 B)e8 C)’\\’ D)’BASIC’

答案:C

102. C语言提供的合法的数据类型关键字是_______。

A)DOUBLE B)short C)integer D)Character

答案:B

103. 下列不正确的转义字符是_______。

A)’\\’ B)’\0’ C)’\’’ D)’057’答案:D

104.C语言中,合法的长整型常数是_______。

A)1L B)5074369 C)225D D)326581&

答案:A

105.以下类型中属于C语言的数据类型是_______。

A)逻辑型 B)纯小数型 C)复数型 D)双精度型

答案:A

106.C语言中,运算对象必须是整形数的运算符是_______。

A)* B)% C)+ D)/

答案:B

107.表达式10<20的值是_______。

A)10 B)20 C)0 D)1

答案:D

108.表示关系x≤20或x≥50,应使用C语言表达式是_______。

A)x<=20 || x>=50 B)x<=20 or x>=50

C)x≤20 or x≥50 D)x≤20 || x≥50

答案:A

109.已知int t = 1; t+ = 9; y = t++; 则y =_______。

A)11 B)10 C)9 D)1

答案:B

110.已知char a; int b; float c; double d; 则表达式a+b * c-d的结果为_______型。

A)char B)int C)float D)double

答案:D

111. 若x 为int型变量,则执行语句x=10; x+ = x— = x — x后,x的值为_______。

A)0 B)10 C)20 D)30

答案:C

112. 若x、a、b、c均为int型变量,则执行表达式x= (a = 4, b = 8, c = 12)后,x 的值为_______。

A)4 B)8 C)12 D)24

答案:C

113. 在C程序中,x + y是_______、x + y;是_______。

A)表达式、语句 B)表达式、表达式

C)语句、语句 D)语句、表达式

答案:A

114.已知int x = 23; 则printf(x++*1/3)的输出结果为_______。

A)8 B)7.66 C)7.33 D)7

答案:D

115.若a、b、c为int型变量,且值均为5; 则以下表达式正确的是_______。

A)17.6%a B)a = a+7 = b+c

C)c = b = a * 5 + 6 D)a: = c + b

答案:C

116. 设 int b=2;表达式(b>>2)/(b>>1)的值是。

A) 0 B) 2 C) 4 D) 8

答案:B

117. 以下程序的功能是进行位运算

#include

void main()

{

unsigned char a, b;

a=7^3; b= ~4 & 3;

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

}

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

A)4 3 B)7 3 C)7 0 D)4 0

答案:A

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

#include

void main()

{

int a=-1, b=4, k;

k = ( ++a < 0) && ( b += 5);

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

}

A)104 B)103 C)003 D)004

答案:D

119. 若有以下定义和语句:

char c1 = 'b', c2 = 'e';

printf ( "%d, %c \n", c2 - c1, c2 - 'a' + 'A' );

则输出的结果是_______。

A)3,E B)3,D C)2,D D)2,E

答案:A

120. 已知,x是int型变量,y是float型变量,用下列语句给这两个变量赋值时,为了把100和75.3分别赋给x和y,则正确的输入为_______。

scanf ( “ x = %d, y = %f ”, &x, &y );

A)100<空格>75.3<回车> B)x = 100,y = 75.3<回车>

C)100<回车>75.3<回车> D)x = 100<回车>y = 75.3<回车>

答案:B

121. 以下对于scanf函数叙述正确的是 _______。

( “ x = %d, y = %f ”, &x, &y );

A)输入项可以是一个实型常量,如scanf ( “ %f ”, 7.3 );

B)当输入数据时,必须指明变量地址,如scanf ( “ %f ”, &a );

C)当输入一个实型数据时,可以规定小数点后位数,如scanf ( “ %5.3f ”, &a );

D)只有格式控制,没有输入项也能正确输入数据,如scanf ( “x = %d, y = %f ”); 答案:B

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

A)1 B)0 C)提示语法错误 D)结果不确定

答案:A

124. 若有以下定义和语句:int x = ‘f’;

printf ( “ %c \n”, ‘A’ + ( x –‘a’ + 2));

则输出的结果是_______。

A)H B)h C)G D)I

答案:A

125. 下列程序运行的结果是_______。

#include

void main()

{

int a = 9, b = 7;

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

}

A)a = %9, b = %7 B)a = 9, b = 7

C)a = %d, b = %d D)9, 7

答案:B

126. 语句printf ( “a\bcd\’ef\’g\\\bij\n”);的输出结果是_______。

A)a\bcd\’ef\’g\\\bij\n B)acd’ef’gbij\n

C)cd’ef’gij D)以上均不正确

答案:C

127. 执行下列程序片断后c的值是_______。

int a = 1, b = 2, c;

c = 1.0/b*a;

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

答案:A

128. 已知x、y、z被定义为int型变量,若从键盘对其输入数据,正确的是_______。

A)INPUT x, y, z; B)read ( “%d%d%d”, &x, &y, &z);

C)scanf ( “%d%d%d”, &x, &y, &z); D)scan ( “%d%d%d”, &x, &y, &z); 答案:C

129. 执行下列程序后的输出结果是_______。

#include

void main()

{

int x = 11;

printf ("x = %d, x = %o, x = %x \n", x, x, x);

}

A)x = 11, x = o13, x = oxb B)x = 11, x = 13, x = 11

C)x = 11, x =13, x = b D)x = 11, x = o13, x = ox11

答案:C

130. 分析以下程序,其输出结果是_______。

# include "stdio.h "

void main ( )

{

int a, b, c = 210;

a = c/100%9;

b = (-1) && (-1);

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

}

A)210, -1 B)210, C)2, -1 D)2, 1

答案:D

131.已定义str为字符型变量,则以下赋值语句中错误的是。

A)str="\"; B)str=NULL;

C)str=55+8; D)str=‘\xbb’;

答案:A

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

A)c=‘98’; B)c="98"; C)c=98; D) c="b";

答案:C

133. 有以下程序

#include

void main()

{

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

}

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

A)0 B)1 C) -1 D) NULL没有定义,出错答案:A

134. 下列程序执行后的输出结果是。

#include

void main()

{

int x= 'f';

printf("%c ", 'A'+(x-'a'+1));

}

A) G B) H C) I D) J

答案:A

135. 若变量c为char类型,能正确判断出c为数字的表达式是。

A) '0'<=c<= '9' B) (c>= '0')||(c<= '9')

C) ('0'<=c) and ('9'>=c) D) (c>= '0')&&(c<= '9')

答案:D

136. 若有定义:char c=’\010’;则该变量中包含的字符个数是。

A)非法定义 B) 1个

C) 3个 D) 4个

答案:B

137. 下列函数中能够向终端输出一个字符或字符型变量值的是。

C语言的基本数据类型及其表示

3.2C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1常量与变量 1.常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.410-38~3.41038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows98",可用下面两个宏定义命令: #define PAI3.1415927 #define W"Windows98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

C++习题第02章 基本数据类型、运算符与表达式

第02章基本数据类型、运算符与表达式 1. 选择题 (1)在32位机中,int型字宽为()字节。 A) 2 B) 4 C) 6 D) 8 (2)下列十六进制的整型常数表示中,错误的是()。 A) 0xad B) 0X11 C)0xA D) 4ex (3)设n=10,i=4,则执行赋值运算n%=i-1后,n的值是()。 A) 0 B) 1 C) 2 D) 3 (4)若有a=2,b=4,c=5,则条件表达式a>b?a:b>c?a:c的值为()。 A) 0 B) 2 C) 4 D) 5 (5)若有a=1,b=2,则表达式++a==b的值为()。 A) 0 B) 1 C) 2 D) 3 2.简答题 (1)指出下列数据中哪些可作为C++的合法常数? (a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) ″A″ (f) .55 (g) ’\\’ (h) 0XCD (i) 8E7 (j) π (2)指出下列符号中那些可作为C++的合法变量名? (a) ab_c (b) β (c) 3xyz (d) if (e) cin (f) a+b (g) NAME (h) x! (i) _temp (j) main (3)根据要求求解下列各表达式的值或问题。 (a) (int)3.5+2.5 (b) (float)(5/2)>2.4 (c) 21/2+(0xa&15) (d) 设int i=10,则表达式i&&(i=0)&&(++i)的值是多少?该表达式运算结束后变量i的值为多少? (e) 设int a=1,b=2,c=3;,求表达式a

C语言关键字共32个

由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static 根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。 1数据类型关键字 A.基本数据类型(5个) void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 char:字符型类型数据,属于整型数据的一种 int:整型数据,通常为编译器指定的机器字长 float:单精度浮点型数据,属于浮点数据的一种 double:双精度浮点型数据,属于浮点数据的一种 B.类型修饰关键字(4个) short:修饰int,短整型数据,可省略被修饰的int。 long:修饰int,长整形数据,可省略被修饰的int。 signed:修饰整型数据,有符号数据类型 unsigned:修饰整型数据,无符号数据类型 C.复杂类型关键字(5个) struct:结构体声明 union:共用体声明 enum:枚举声明 typedef:声明类型别名 sizeof:得到特定类型或特定类型变量的大小 D.存储级别关键字(6个) auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配 static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部 register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数 extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变) volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值 2流程控制关键字

C语言的基本数据类型及其表示

3.2 C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1 常量与变量 1. 常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.4 10-38~3.4 1038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define 标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows 98",可用下面两个宏定义命令: #define PAI 3.1415927 #define W "Windows 98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows 98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

c语言试题数据类型、运算符与表达式

3 数据类型、运算符与表达式 一、单项选择题 1、以下选项中,不正确的 C 语言浮点型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.0 分析:e 后面的指数必须为整数。 2、以下选项中,( D )是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" 分析:在C 语言中,’a ’表示字符常量,”a ”表示字符串。 3、 在 C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。 A.原码 B.反码 C. ASCII 码 D. BCD 码 分析:将一个字符常量放入一个字符变量中,实际上并不是将字符本身放到内存单元中,而是将字符的对应的ASCII 码放到储存单元中。 4、若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值是( C )。 x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为32,所以x=32. 5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 分析:算术运算符包括加法运算“+”符减法运算“-”符乘法运算符“*”以及除法运算符“/”,赋值运算符包括“=、+=、-=、*=、/=、……”,关系运算符包括“<、<=、>、>=”。 6、若有代数式bc ae 3 ,则不正确的C 语言表达式是( C )。 A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3 分析:C 选项表达的是3ace/b 。 7、表达式!x||a==b 等效于( D )。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) 分析:由符优先级先后顺序在!x||a==b 中应先算“||”再算“!”,最后算“==”。选项B 不影响运算顺序。 8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A )。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 分析:先算括号里面的,a 不大于b ,则m=0,c 不大于d ,则n=0. 9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12 分析:从后往前算,a*=a 即a=a*a ,a=9;然后a-=a=9,a=a-9,=0;a+=0,a=a+a=0.

c语言数据类型关键字

1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明联合数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)(2)控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) (3)register:声明积存器变量 (4)static :声明静态变量 4 其它关键字(4个): (1)const :声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变

C语言基本数据类型

第2章基本数据类型 本章介绍常量与变量的概念,以及C语言基本数据类型中的整型、字符型、实型数据的基本知识,各种不同数据类型之间的转换及混合运算。 2.1 数据概述 一个完整的计算机程序,至少应包含两方面的内容,一方面对数据进行描述,另一方面对操作进行描述。数据是程序加工的对象,数据描述是通过数据类型来完成的,操作描述则通过语句来完成。 C语言不仅提供了多种数据类型,还提供了构造更加复杂的用户自定义数据结构的机制。C语言提供的主要数据类型有: 1.基本类型:包括整型、字符型、实型(浮点型)和枚举类型 2.构造类型:包括数组、结构体和共用体类型 3.指针类型 4.空类型 其中整型、字符型、实型(浮点型)和空类型由系统预先定义,又称标准类型。 基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。在本章中主要介绍基本数据类型(除枚举类型外),其它数据类型在后续章节中再详细介绍。 2.1.1 常量与符号常量 在程序执行过程中,其值不发生改变的量称为常量。常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a’,‘b’,‘c’则为字符常量。常量即为常数,一般从其字面即可判别。有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。如: 【例2-1】 #define PI 3.14 main( ) { float aera; aera=10*10*PI; printf(“aera=%f\n”,aera); }

浙江大学C语言总复习题基础数据类型和运算

第2章基本数据类型和运算 学习和解题要点 1.数据类型 C 语言中的数据类型比别的语言丰富。要学好这部分内容,首先要掌握C 语言的数据在内存中的表示。 整型数据:以二进制的形式表示 (1) int 类型 正数:如 123 (+123)用 16 位二进制(二个字节)表示 原码 最大正整数 215-1=214+213 +23+22+21+20=32767 负数:如–123 原码 反码(符号位不动,其它取反) 补码(补码加 已知补码求原负数符号位不动,其它取反加 1 加 最大负整数 -215=32768 因为 -215 < -(215-1) 所以用 -215而不用 -(215-1) (2) unsigned (int) 类型 称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16 位二进制都用来表示数,因此 最大数 215+214 +213+2 3+22+21+20=65535 最小数 0 (3) long (int) 类型 用 32 位二进制(四个字节)表示,其他同 int 型 (4) short 类型 有的计算机(小型、中型、大型机)int 即是 long ,而short用16 位二进制(二个字节)表示。因此C语言中,short一定是短整型,long一定是长整型,而int因不同的系统而不同。PC 586 机int即short,所以一般不用short 。 (5) 在C语言中,整型常量有三种形式的写法: 十进制整数(0 - 9)表示。通常整数的写法。 八进制整数(0 - 7)表示。在整数的前面加数字0。 十六进制整数(0 - f)表示。在整数的前面加0x。 长整型常量表示方法:在整数的后面加L或 l。

C语言数据类型及表示范围

C语言各种数据类型在系统中占的字节和取值围 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值围: 符号属性长度属性基本型所占位数取值围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。

C语言练习题 基本数据类型和运算

第2章基本数据类型和运算练习题 一、单项选择题 1.下列数据中属于“字符串常量”的是()。 A.”a” B.{ABC} C.’abc\0’ D.’a’ 2.下列数据中属于“字符串常量”的是()。 A.ABC B.“ABC” C.’abc’ D.’a’ 3.在PC机中,’\n’在内存占用的字节数是()。 A.1 B.2 C.3 D.4 4.字符串”ABC”在内存占用的字节数是()。 A.3 B.4 C.6 D.8 5.下列数据中不属于“字符常量”的是()。 A.‘\a’ B.‘\160’ C.‘070’ D.070 6.char型常量在内存中存放的是()。 A.ASCII代码值 B.BCD代码值 C.内码值 D.十进制代码值7.设整型变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()。 A.0,0 B.0,1 C.1,0 D.1,1 8.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后,m,n的值是()。 A.0,0 B.0,1 C.1,0 D.1,1 9.设a为2,执行下列语句后,b的值不为0.5的是()。 A.b=1.0/a B.b=(float)(1/a) C.b=1/(float)a D.b=1/(a*1.0) 10.设a为5,执行下列语句后,b的值不为2的是()。 A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3?2:2 11.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为()。 A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2 12.int b=0,x=1;执行语句“if(x++)b=x+1;”后,x,b的值依次为()。 A.2,3 B.2,0 C.3,0 D.3,2 13.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是()。 A.3 B.0 C.9 D.-12

基本数据类型与基本运算

第二章基本数据类型与基本运算 本章主要介绍程序设计中高级语言提供的数据类型和其上允许的基本运算。在介绍这些内容时,我们通过穿插一些实例介绍如何应用数据类型与基本运算来解决一些简单的问题。 2.1 数据类型的概念 2.1.1 为什么程序设计语言中要引入“数据类型”这一概念? 2.1.2 数据类型的概念 数据类型是程序设计语言中的一个非常重要的概念。那么,什么是数据类型呢? 数据类型是由该类型的数据的值域(即值集)和在这些数据上所有施加的运算的集合(即运算集或操作集)组成。值域指出了每一种数据类型的变量合法的数据取值范围,而运算集合则规定了每一种数据类型的变量和数据其上所允许进行的运算。值域和运算集是数据类型的两个基本属性。在下面介绍Pascal语言的数据类型的有关章节中,对每一种数据类型均将说明这两种属性。 2.1.3 数据类型的代数理论基础 一个数据类型是一个二元组(D,R)。其中,D是一个数据类型的值域,R是建立在D上的运算(操作)的集合。这个二元组构成了一个代数系统。其中,D叫做该系统的基集。从本质上说,一个代数系统就是一个带运算的集合,而一个数据类型就是一个代数系统。 从这个概念出发,程序设计语言理论在数据结构的基础上发展了一些数据和类型的代数理论。这些理论属于程序设计语言语义学的范畴,将来,有兴趣的学生在具备了比较深入的基础之后,可以作进一步的了解。 2.1.4 Pascal语言中数据类型的分类 Pascal语言的优点之一是有丰富的数据类型,按照其定义者的不同可分为下面几类,如表2-1所示。 整数类型 实数类型 系统预定义的数据类型布尔类型(逻辑类型) 基本(标准)数据类型 字符类型 Pascal 枚举类型 数据类型子界类型 数组类型 用户自定义的数据类型记录类型构造型数据类型 集合类型 文件类型 指针类型 图2-1 Pascal的数据类型 2.2 基本数据类型 本节介绍四种基本数据类型(Elementary Date Type),它们是整数类型、实数类型、布尔类型(逻辑类型)和字符类型。基本数据类型又称为标准数据类型(Standard Date Type),我国国家标准中将它改称为需求数据类型。基本数据类型是语言系统预先定义或规定的数据类型。 2.2.1 整数类型 整数类型(Integer Date Type)简称整型,在Pascal语言中用类型标识符integer表示整数类型。整型的数据可以是正整数、负整数和零,其中,正整数和零可以省略“+”号。 1.整数类型的值域 任何计算机系统由于受机器字长的限制,它所能表示的整数只是数学中整数集合的一个有穷的子集合。其中,最大整数为maxint,它的值与具体机器的字长有关。一般地,若机器的字长为W时(假设用一位表示数符),由于整数在机器内采用二进制补码表示,因此,

C语言的32个关键字和9种控制语句

C语言的32个关键字和9种控制语句 C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 2控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句 return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

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

C语言数据类型与表达式习题及答案

第一章数据类型,运算符与表达式 一.选择题 1.不合法的常量是A。 A)‘/2’B) “”C)‘’D)“483” 2. B 是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 3.在以下各组标识符中,合法的标识符是(1)A,(2) C ,(3) D 。 (1)A)B01 B)table_1 C)0_t D)k% Int t*.1 W10 point (2)A)Fast_ B)void C)pbl D) Fast+Big abs fabs beep (3)A)xy_ B)longdouble C)*p D)CHAR 变量1 signed history Flaut 4. 不属于合法的C语言长整型常量的是 C 。 A)5876273 B)0L C)2E10 D)(long)5876273 7.下面选项中,均是合法浮点数的是 B 。 A)+1e+1 B)-0.60 C)123e D)-e3 5e-9.4 12e-4 1.2e-.4 .8e-4 03e2 -8e5 +2e-1 5.e-0 8.在C语言中,要求参加运算的数必须是整数的运算符是 C 。 A)/ B)* C)% D) = 9.在C语言中,字符型数据在内存中以 D 形式存放。 A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是 C 。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=7+b,b++,a+7;D)a=7+b = c=a+7; 11. B 是非法的C语言转义字符。 A)‘\b’B)‘\0xf’C)‘\037’D)‘\’’12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, B 是正确的。 A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 13.与代数式x y u v ? ? 不等价的C语言表达式是A。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 14.在C语言中,数字029是一个 D 。 A)八进制数B)十六进制数C)十进制数D)非法数 16.对于char cx=?\039?;语句,正确的是A。 A)不合法B)cx的值是?\03? C)cx的值为四个字符D)cx的值为三个字符 17.若int k=7,x=12;则能使值为3的表达式是 D 。 A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 18.为了计算s=10!(即10的阶乘),则s变量应定义为 C 。 A)int B)unsigned C)long D)以上三种类型均可

基本数据类型与数值表达式

基本数据类型与数值表达式 一、知识要点 计算机的基本功能是进行数据处理。在C++语言中,数据处理的基本对象是常量和变量。运算是对各种形式的数据进行处理。数据在内存中存放的情况由数据类型所决定。数据的操作要通过运算符实现,而数据和运算符共同组成了表达式。本章是对C++语言中的数据类型、运算符、表达式等内容的全面介绍,要正确理解其特点,并灵活运用,主要掌握以下的知识要点: 1.掌握常量和变量的概念。 2.掌握整型数据和实型数据、字符型数据和字符串型数据的概念和区别。 3.掌握各种类型的变量说明及其初始化。 4.掌握算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算等概念。 5.掌握运算符的优先级、左结合和右结合规则。 6.掌握表达式求值时的自动转换和强制类型转换。 7.掌握自加、自减运算的规则。 8.掌握常用数学函数的功能。 二、例题分析与解答 1.选择题 例题1:运算符+、=、*、>=中,优先级最高的运算符是()。 A.+ B.= C.* D.>= 答案:C 分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。 例题2:下列说法正确的是()。 A.cout<<”\n”是一个语句,它能在屏幕上显示”\n” B.\68代表的是字符D。

C.1E+5的写法正确,它表示余割整型常量。 D.0x10相当于020。 答案:D 分析:分号是语句的已部分,且\n是转义字符;\68代表了八进制的6、8,而八进制中没有数字8;1E+5是实型常量;十六进制的10相当于十进制的16,相当于八进制的20。 例题3:下列不合法的变量名为()。 A.int B.int1 C.name_1 D.name0 答案:A 分析:根据变量名命名要求,变量名只能由大小写字母、数字、下划线组成,且系统关键字不能作为变量名。 例题4:下面正确的为()。 A.4.1/2 B.3.2%3 C.3/2==1 结果为1 D.7/2 结果为3.5 答案:A 分析:%运算符要求式整型;关系运算值为0;两个整数相除,商为为相除后的整数部分。 例题5:已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a

c语言关键字及常用符号

C语言关键字及常用符号 32个关键字 auto :声明自动变量 short :声明短整型变量或函数 int:声明整型变量或函数 long :声明长整型变量或函数 float:声明浮点型变量或函数 double :声明双精度变量或函数 char :声明字符型变量或函数 struct:声明结构体变量或函数 union:声明共用数据类型 enum :声明枚举类型 typedef:用以给数据类型取别名 const :声明只读变量 unsigned:声明无符号类型变量或函数 signed:声明有符号类型变量或函数 extern:声明变量是在其他文件中声明 register:声明寄存器变量 static :声明静态变量 volatile:说明变量在程序执行中可被隐含地改变 void :声明函数无返回值或无参数,声明无类型指针 if:条件语句 else :条件语句否定分支(与 if 连用) switch :用于开关语句 case:开关语句分支 for:一种循环语句 do :循环语句的循环体 while :循环语句的循环条件 goto:无条件跳转语句 continue:结束当前循环,开始下一轮循环 break:跳出当前循环 default:开关语句中的“其他”分支 sizeof:计算数据类型长度 return :子程序返回语句(可以带参数,也可不带参数)循环条件 数据类型 char:字符型 int:基本整型 short int:短整型 long int:长整型

unsigned:无符号型 unsigned long:无符号长整型 float:单精度实型 double:双精度实型 C语言常用转义字符表 转义字符含义ASCII码(16/10进制) \o 空字符(NULL) 00H/0 \n 换行符(LF) 0AH/10 \r 回车符(CR) 0DH/13 \t 水平制表符(HT) 09H/9 \v 垂直制表(VT) 0B/11 \a 响铃(BEL) 07/7 \b 退格符(BS) 08H/8 \f 换页符(FF) 0CH/12 \’单引号27H/39 \”双引号22H/34 \\ 反斜杠5CH/92 \? 问号字符3F/63 \ddd 任意字符三位八进制 \xhh 任意字符二位十六进制 字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。 在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。C语言的运算符可分为以下几类: 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 条件运算符:这是一个三目运算符,用于条件求值(?:)。

C语言数据类型及转换23页word文档

C语言的数据类型 C语言提供的数据结构,是以数据类型形式出现的。具体分类如下:1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。本章将介绍基本类型中的整型、实型和字符型三种数据。 2.3 常量和变量 2.3.1 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 (2)实型常量 (3)字符常量。 (4)符号常量。 常量的类型,可通过书写形式来判别。 2.3.2 变量 1.变量的概念

在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别。 在TC V2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。 (3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗? 标识符命名的良好习惯──见名知意:

C语言基本数据类型简介

C语言基本数据类型简介 1.概述 C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型 整形包括短整型、整形和长整形。 2.1.1短整形 short a=1; 2.1.2整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值围是 -2147483648~2147483647,在存中的存储顺序是地位在前、高位在后,例如0x12345678在存中的存储如下: 地址:0x0012ff780x0012ff790x0012ff7a0x0012ff7b 数据:78563412 定义:用int关键字,举例如下: int a=6; 2.1.3长整形 long a=10; 2.2浮点型 浮点型包括单精度型和双精度型。 2.2.1单精度型 浮点型,又称实型,也称单精度。一般占4个字节(32位), float a=4.5; 地址:0x0012ff780x0012ff790x0012ff7a0x0012ff7b 数据:00009040 2.2.2双精度型 一般占8个字节(64位) double a=4.5;

地址:0x0012ff780x0012ff790x0012ff7a0x0012ff7b0x0012ff7c 0x0012ff7d0x0012ff7e0x0012ff7f 数据:0000000000 001240 2.3字符类型 在各种不同系统中,字符类型都占一个字节(8位)。定义如下: char c='a'; 也可以用字符对应的ASCII码赋值,如下: char c=97; 3.数据类型与“模子” short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。 怎么去理解它们呢? 举个例子:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了。半径12cm,12 个孔。不同型号的藕煤器咔出来的煤球大小不一样,孔数也不一样。这个藕煤器其实就是个模子。 现在我们联想一下,short、int、long、char、float、double 这六个东东是不是很像不同类型的藕煤器啊?拿着它们在存上咔咔咔,不同大小的存就分配好了,当然别忘了给它们取个好听的名字。 在32 位的系统上 short 短整型的存2 byte; int 整型的存4 byte; long 长整型的存4 byte; float 单精度浮点型的存4byte;仅能接收7位有效数字 double 双精度浮点型的存8 byte;可以接收16位有效数字 char字符型的存1 byte。 fabs单精度浮点型存4byte. (注意这里指一般情况,可能不同的平台还会有所不同,具体平台可以用sizeof 关键字测试一下) 很简单吧?咔咔咔很爽吧?是很简单,也确实很爽,但问题就是你咔出来这么多存块,你总不能

相关主题