当前位置:文档之家› 浙江大学C语言总复习题—基本数据类型和运算

浙江大学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。

字符型数据:以二进制的形式表示

char 型用 8位二进制(一个字节)表示

如…a‟,在程序中要用单引号表示,输出时无单引号,内存中表示为

6+25+20=97 即ASCII 码 97

实型数据:以二进制的形式表示

(1) float 类型

如 123.45 (+123.45)用 32 位二进制(四个字节)表示为 0.12345×103

不同的系统,n的位数有不同,n长,精度高,但可表示的指数小,能表示的数的范围小。反之,则能表示的数的范围大,但精度低。float 类型又称为“浮点”类型,把实数的小数点都看成在第一位,而用指数位“浮动”小数点。

(2) double 类型

与float同只不过用 64 位二进制(八个字节)表示。因此精度高,称双精度。

2.变量的概念

C语言中的变量可以理解成计算机内存的一个空间,它必须有一个名字(标识符),可放什么样的数据类型(如定义时前面加int 、float 、char 等),它是开辟在内存的一般数据区(又称静态数据区)还是开辟在内存的堆栈区(又称动态数据区),这可由程序中用static或auto(可缺省)来规定。同时,一个变量有它的有效的使用范围,称之为作用域。最后,每个变量都有地址,这在指针类型时要用到。变量可以一边定义一边赋初值,在程序运行时可以使它发生变化,因此称之为变量。

3.运算符的注意事项

(1)双目运算符 % 的两边一定是要整数,运算结果是整除后的余数,也是整数,注意2%5 得2而不是 0。

(2)双目运算符 / 的两边如果是整数,则结果也是整数,5/2 结果为 2而不是 2.5 ,即使是 float x; x=1/2; x 中也只有 0.0 , 要人为的写成 x=1/2.0 或 x=1.0/2 ,x中才是0.5 。

(3)单目运算符 ++ -- 放在运算对象的前面时,称为“先加(减) 1,后使用”,这一般不会搞错。当放在运算对象的后面时,称为“先使用,后加(减) 1”,这时要注意什么时候“使用”。

如 i=3; (i++)+(i++)+(i++) 结果是9而不是12,这里,三个i相加是“使用”,使用后才三次加1,i成为6,“使用”是以整个表达式为准。

而 i=3; (++i)+(++i)+(++i) 结果是18而不是15,这里,三个i依次加1 成为6,然后再“使用”。也是以整个表达式为准。

又如 i=1; if(i--) printf(“%d”,i); 输出是0而不是1。这是因为if()中i-- 是整个表达式,先用i为1,用于“判断”成立,这算“使用”了,然后i减1成为0,输出时i 已为0。同理 char c=‟A‟; switch(c++) { case …A‟: printf(“%c”,c);break;………},

输出为B。

(4). 算术自反赋值运算符中,注意 = 赋值号右边是一个整体,如 c%=a-3 是c=c%(a-3)而不是 c=c%a-3。

(5). 关系运算符中,注意等于比较运算符“==”与赋值运算符“= ”容易疏忽,二者是绝然不同的,不然会引起很大的错误。如:i=0; if(i==1) 判断得结果应该是不成立,若写成:if(i=1)则变成给i赋予1,赋值表达式的结果也是1,判断结果是成立的。

(6). 应该熟记运算符及其优先级汇总表,熟记运算符之间的运算次序及结合方向。4.表达式注意的问题

(1). 在算术表达式中应注意各类数值型数据间的混合运算问题,如下:

double float float 型一定先转换成double型参加运算。

long

运算对象不同时转换方向。

unsigned

int char, short char, short型一定先转换成int型参加运算。

(2). C语言无“真假值”,判断成立则结果为1,不成立则结果为0。而当表达式的值为非0则认为“真”,当表达式的值为0则认为“假”。

(3). 关系表达式中,数学上的 0

(4).在“&&”连接的逻辑表达式中,当左边表达式的值为0,则C语言不再计算右边表达式,因为无论右边表达式的值为什么,整个逻辑表达式的值都为0。同样,在“||”连接的逻辑表达式中,当左边表达式的值为非0,则C语言不再计算右边表达式,因为无论右边表达式的值为什么,整个逻辑表达式的值都为1 。

如:int a=b=m=n=1; (m=a!=b)&&(n=a!=b) a!=b不成立为0,m得0,n仍为1

int a=b=m=n=0; (m=a==b)||(n=a==b) a==b成立为1,m得1,n仍为0

(5). C语言中,赋值号“=”,逗号“,”都是运算符。a=10是赋值表达式,a=10;是赋值语句,sum=0,i=0是逗号表达式,它是由二个赋值表达式用逗号运算符连起来的逗号表达式。

练习题

一、单项选择题

1.下列数据中属于字符串常量的是(A)。

A.”a” B. {ABC} C. ‟abc\0‟ D. ‟a‟

2.下列数据中属于“字符串常量”的是(B)。

A.ABC B. “ABC” C. ‟abc‟ D. ‟a‟

3. 在PC机中,‟\n‟在内存占用的字节数是(1)。

A. 1

B. 2

C. 3

D. 4

4. 在PC机中,”a\xff”在内存占用的字节数是(c)。// \0XX \xhh \xh 转译符

A. 5

B. 6

C. 3

D. 4

5.字符串”ABC”在内存占用的字节数是(b)。

A. 3

B. 4

C. 6

D. 8

6.字符串”\”ABCD\””在内存占用的字节数是()。

A. 4

B. 6

C. 7

D. 8

7. 在C语言中,合法的长整型常数是(A)。

A. 0L

B. 4962710

C. 0.054838743

D. 2.1869e10

8.在C语言中,合法的短整型常数是(D)。

A. OL

B. 0821

C. 40000

D. 0x2a

9.下列数据中不属于“字符常量”的是(c)。

A. …\a‟

B. …\160‟

C. …070‟

D. 070

10.char型常量在内存中存放的是(A)。

A. ASCII代码值

B. BCD代码值

C. 内码值

D. 十进制代码值11.设整型变量m,n,a,b,c,d均为0,执行( m= a==b )||(n=c==d)后,m,n的值是(C)。

A. 0,0

B. 0,1

C. 1,0

D. 1,1

12.设整型变量m,n,a,b,c,d均为1,执行“(m= a>b )&&(n=a>b)”后,m,n的值是(B)。

A. 0,0

B. 0,1

C. 1,0

D. 1,1

13.设int a为2,执行下列语句后,float b的值不为0.5的是(B)。

A. b=1.0/a

B. b=(float)(1/a)

C. b=1/(float)a

D. b=1/(a*1.0) 14.设a为5,执行下列语句后,b的值不为2的是(C)。

A. b=a/2

B. b=6-(--a)

C. b=a%2

D. b=a>3 ? 2:8

15.执行语句“x=(a=3,b = a--)”后,x,a,b的值依次为(C)。

A. 3,3,2

B. 3,2,2

C. 3,2,3

D. 2,3,2

16. int b=0,x=1; 执行语句“if(x++) b=x+1;”后,x,b的值依次为(A)。

A. 2,3

B. 2,0

C. 3,0

D. 3,2

17.设有语句int a=3;,则执行了语句a+=a-=9;后,变量a的值是(D)。

A. 3

B. 0

C. 9

D. -12

18.设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。

A. 3

B. 0

C. 9

D. -12

19. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0 && b && c<0 && d>0的值是(A)。

A. 1

B. 0

C. -1

D. 出错

20.在以下一组运算符中,优先级最高的运算符是(C)。

A. <=

B. =

C. %

D. &&

21.设整型变量i的值为3,则计算表达式i-- -i后表达式的值为(A)。//A=*P++ +*P

A. 0

B. 1

C. 2

D. 表达式出错

22.设整型变量i,j=3; 则计算表达式i=j++ +j后i,j的值为(D)。

A. 4,4

B. 6,6

C. 4,6

D. 6,4

23.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是(A)。

A. 6

B. 9

C. 8

D. 表达式出错

24.设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(C)。// VS

A. 6

B. 12

C. 15

D. 表达式出错

25.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是(B)。

// 逗号运算优先级最低

A. 3,3

B. 5,4

C. 4,5

D. 6,6

26.若已定义x和y为double类型,则表达式;x=1,y=x+3/2的值是(C)。

A. 1

B. 2

C. 2.0

D. 2.5

27.sizeof(double)的结果值是(A)。//(编译环境)INT 4 SHORT 2 CHAR 1

A.8 B. 4 C. 2 D. 出错

28. 表达式“1?(0?3:2):(10?1:0)”的值是(B)。

A. 3

B. 2

C. 1

D. 0

29.设a=1,b=2,c=3,d=4,则表达式:a

A. 4

B. 3

C. 2

D. 1

30.设a为整型变量,不能正确表达数学关系:if(10

A. 10

B. a==11||a==12||a==13||a==14

C. a>10&&a<15

D. !(a<=10)&&!(a>=15)

31.int a=0; if(a=1) a+=10; 结果的值是(B)。

A. 0

B. 11

C. 10

D. 出错

32.下列表达式中符合C语言语法的赋值表达式是(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

33.设f是实型变量,下列表达式中不是逗号表达式的是(d)。

A. f=3.2,1.0

B. f>0,f<10

C. f=2.0,f>0

D. f=(3.2,1.0)

34.下列表达式中,不正确的表达式是(b)。

A. a=1,b=1

B. y=int(x)

C. a=b=5

D. i++

35.若有以下定义:char a、int b、float c、double d,则表达式a*b+d-c值的类型是(d)。

A. float

B. int

C. char

D. double

36.int n; float f=13.8; 执行“n=((int)f)%3”后,n的值是(a)。

A. 1

B. 4

C. 4.333333

D. 4.6

37.用十进制数表示表达式“12 | 012”的运算结果是(C)。

A. 1

B. 0

C. 14

D. 12

38.设有整型变量a=35,表达式“(a&15)&&(a|15)”的值是(B)。

A. 0

B. 1

C. 15

D. 35

39.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是(d)。//10100

A. 00011100

B. 00000111

C. 00000001

D. 00010100

40.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是(d)。

A. ‟a‟&&‟b‟

B. a<=b

C. a||b+c&&b-c

D. !((a

41.设a是char型变量,其值字符为‟1‟,则把其值变成整数1的表达式是()。

A. (int)a

B. int(a)

C. a=a-48

D. a/(int)a

42.设a是int型变量,其值为3,则把其值变成字符‟3‟的表达式是(C)。

A. (char)a

B. a=3

C. a=a-48

D. a=a+48

43.设ch是char型变量,其值为‟A‟,则下面表达式的值是(B)。

ch=(ch>=‟A‟&&ch<=‟Z‟)?(ch+32):ch

A. A

B. a

C. Z

D. z

44.设有整型变量i、j、k,i值为3,j值为6。计算表达式“k=i^j<<3;”后,k的值是()。//10 1000

A. 56

B. 51

C. 40

D. 27

45.设有无符号短整型变量i、j、k,i值为013,j值为0x13。计算表达式“k=~i|j>>3;”后,k的值是()。// 0000 0000 0000 1011//1111 1111 1111 0101 //0000 1101 //1111 0110

A. 06

B. 0177776

C. 066

D. 0177765

46.设有无符号短整型变量a值为331, 计算表达式“a=(a>>4)&~(~0<<4)”后,a的值是(C)。//331-255//76 //100 // 1111

A. 0

B. 15

C. 4

D. 017

二、填充题

1.在内存中存储“A ”要占用 个字节,存储‘A ’要占用 个字节。

2.C 语言中的逻辑值“真”是用 表示的,逻辑值“假”是用 表示。逻

辑表达式值为“真”是用 表示的,逻辑表达式值为“假”是用 表示的。

3.符号常量的定义方法是 。

4.说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型

符为: 。

5.无符号基本整型的数据类型符为 ,双精度实型数据类型符为 ,字符

型数据类型符为 。

6.定义变量的完整语句格式是 。

7.变量的作用域主要取决于变量 ,变量的生存期既

取决于变量 ,又取决于变

量 。

8.从变量的存储类型来说, 变量不允许初始化。 变量、 变 量和 变量可以初始

化。其中变量如果不进行初始化,则 变量和 变量的初值不

确定,而 变量初值为0。

9.设下列运算符:<<、+、++、&&、<=,其中优先级最高的是 ,优先级最低的

是 。

10.设二进制数A 是00101101,若想通过异或运算A^B 使A 的高4位取反,低4位不变,

则二进制数B 应是 。

11.设

a>b 的值为 ,a>b>c 的值为 。

12.若已知!a

13.设x 和y 均为int 型变量,且x=1,y=2,则表达式1.0+x/y 的值为 。

14.设整型变量x,y,z 均为5:

① 执行“x-=y-z ”后x= ,

② 执行“x%=y+z ”后x= ,

③ 执行“x=(y>z)?x+2:x-2,3,2”后x= 。

15.能表述“20

16.请写出数学式 的C 语言表达式 。

17.C 语言中运算结果可以当成逻辑值使用的表达式有: 表达式、 表达式、 表达式、 表达式、 表达式和 表达式。

第2章 基本数据类型和运算

练习题答案

一、单项选择题

二、填充题

1. 2 1

2.非0 0 1 0

3. #define 符号常量常量

4.动态 auto

5. unsigned double char

6.存储类型符数据类型符变量名1=初值1………变量名n=初值n ; 7.内部变量或是外部变量内部变量或外部变量存储类型

8.外部参照型自动型寄存器型静态型自动型寄存器型静态型9. ++ &&

10.11110000

11.1 0 (a>b>c a>b 为 1 1>c 假为 0 )

12.1 (先求 !a 为 0 0

13.1.0 (x/y 为0 整除)

14.(1) 5 (2) 5 (3) 3

15.(20

16.a/(b*c)

17.关系算术条件赋值逗号

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

《C语言》总复习题

《C语言》课程综合复习资料 一、单项选择 1. 若有如下语句: int *p1,*p2; 则其中int所指的是(D ) A. p1的类型 B. *p1和*p2的类型 C. p2的类型 D. p1和p2所能指向变量的类型 2. 下列程序段的输出结果是(C )x=9; while(x>7) {printf(“*”);x--;} A. **** B. *** C. ** D. * 3. 下列变量的定义及赋值正确的是(C) A. int i=0;j; B. char c=”A”; C. double x,y,z; x=y=z=100; D. float a=b=100; 4. 设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为(B ) A. 30 B. 20 C. 10 D. 40 5. 设有语句:float x=1,y; y=x 3/2; 则y的值是(C ) A. 1 B. 2 C. 2.0 D. 2.5 6. 设有如下定义和执行语句,其输出结果为(A )int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b); A. 3 2 B. 4 2 C. 2 2 D. 2 3 7. 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为(C ) A. strcpy(str1,str2); B. strcpy(str1, “China”); C. strcat(str1,“China”) D. strcat(“Beijing”,str2); 8. 设有定义语句:char str[][20]={""Hello"",""Beijing""},*p=str; 则printf(""%d\n"",strlen(p+20)); 输出结果是(C ) A. 0 B. 5 C. 7 D. 20

大一c语言复习题

(一)项目二数据类型、运算符和表达式 选择题: 1. 不合法的C语言整型 A. –012 B. 0x35 C. 123L D. 8E2 2. 不合法的C语言实型 A. E3(E前后都要有数,E后要整数) B. .123 C. –6.2E4 D. 5.0 3. 不合法的C A. ′2′ B. ′\101′ C. ′AB′ D. ′\n′ 4. A) W P_0 do B) b-a goto int (前者使用减号,后两者是关键字) C) float la0 _A D) -123 abc TEMP 5. A) ‘\”’‘\\’‘\n’ B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’ D) ‘\\0’‘\101’‘xlf’ 6. 定义三个变量a、b、c,并分别赋初值为5 A. int a=b=c=5;(变量声明不能连续赋值,赋值语句中可以连续赋值) B. int a,b,c=5; C. int a=5,b=5,c=5; D. int a=5;b=5;c=5; 7. 若x,y,t均为int类型,则执行语句x=y=3;t=++x||++y;后,y A. 不定值 B. 4 C. 1 D. 3 8.若x、i、j、k都是int型变量,则计算下面表达式后,x x=(i=4,j=16,k=32) (x值为最后变量的值) A) 4 B) 16 C) 32 D) 52 9.设有说明:char w; int x; float y; double z;则表达式w*x+z-y A) float B) char C) int D) double 10.设以下变量均为int类型,则值不等于7 A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1) 填空题:

C基础知识复习提纲

(五)浙江大学“程序设计基础-C”试题卷 2002-2003学年春季学期 考试时间: 2003年6月20日上午8:30-10:30 一.单项选择题(每题1分,共10分) 1.下列运算中,优先级最低的是. A. << B. != C. && D. += 2.以下选项中不正确的整型常量是. A. 0xa B. 010L C. 10 D. 1.0 3.表达式!(x>0||y>0)等价于. A. !(x>0)&&!(y>0) B. !x>0&&!y>0 C. !x>0||!y>0 D. !(x>0)||!(y>0) 4.表达式的值不是0. A. 1/2 B. !‟\0‟ C. !EOF D. NULL 5.若x是浮点型变量,表达式(x=10/4)的值是. A. 2.5 B. 2.0 C. 3 D. 2 6.若变量已正确定义并赋值,表达式不正确。 A. a&b B. a^b C. &&x D. a,b 7.对于变量定义int a[10],*p=a;表达式是不正确的。 A. a[9] B. p[5] C. *p++ D. a++ 8.不正确的赋值或赋初值的方式是 A. char str[10]; str=”string”; B. char str[ ]=”string”; C. char *p=”string”; D. char *p; p=”string”; 9.设程序中不再定义和声明变量,写出在函数fun中可以使用的所有变量. #include void fun(int x) { static int y; ……… return ; } int z; void main( ) { int a,b; fun(a); ……. } A. x,y B. x,y,z C. a,b,y,z D. a,b,x,y,z 10.对于变量定义int p[5],*a[5], 表达式是正确的 A. p=a B. p[0]=a C. *(a+1)=p D. a[0]=2 二、填空题(每题2分,共30分) 1.数组定义为int a[2][3][4],则数组a中有个数组元素。 2.计算下列分段函数的条件表达式是.

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)

C语言期末考试复习资料

C语言期末考试复习资料 C语言复习摘要 一、数据类型:基本类型(整型、实型、字符型、枚举类型),构造类型(数组、结构体、共用体)、指针类型、空类型。基本类型也叫简单类型,构造类型也叫复杂类型 二、标识符:标识符只能由字母、下划线、数字构成,且必须以字母或下划线开头,且对字母的大小写敏感。 三、常量 1、整型常量,如:32,0x32,0X32,0x3f,0xea,8L,8l,067 2、实型常量,如:3.14,1e23,0.8E8,0.8E-8,0.8E+8 3、字符常量,如:‘a’,‘\n’, ‘\w’,‘\\’,‘\0’ 4、字符串常量,如:“windows”,“a”,(其赋值表达式和赋值语句中其本质是一个地址常量) 5、地址常量,若有定义:int k,a[10];char s[20];则:&k,a,s,NULL都是地址常量 6、符号常量,用宏定义实现,如:#define PAI 3.1415926 7、以下都是非法常量:0xfg,3.1e2.8,‘aw’,‘w\’,0x,068 四、表达式(要点:先确定表达式的类型,再确定表达式的值的类型,最后确定表达式的值): 1、算术表达式(应注意变量类型的自动转换——原则:低级向高级转换): (1)、整型表达式:参加运算的都是整型量,结果也是整型数。如:x+20*9+3 (2)、实型表达式:参加运算的都是实型量,运算过程中先转换成double型,结果也是double型。如:x+20*9+3.0,x+20*9+sqrt(3) 2、赋值表达式:将赋值运算符“=”右边的值赋给左边的变量,

其值为赋值后左边变量的值,类型为左边变量的类型。如:x=3(注:若x为整型变量,则该表达式的值为整型,若x实型变量,则该表达式的值为实型) 3、逻辑表达式:用逻辑运算符(!,&&,||)连接的整型量,结果为整数(0或1)。逻辑表达式可认为是整型表达式的一种特殊形式。如:((x=3)&&(y=0)) 4、关系表达式:用关系运算符将两个表达式连接起来的式子,结果为整数(0或1)。如: x>3,a>b,(a=3)>(b=5),(a>b)>(b>c) 假设:int a=1,b=2,c=3; 则:(c>b>a)的值是 0 5、强制类型表达式:用“(类型)”运算符使表达式的类型进行强制转换。如:(float)a 又如: (int *) 6、逗号表达式(也叫顺序表达式):形式为: 表达式1,表达式2,…,表达式n 顺序求出表达式1,表达式2,…,表达式n的值。其结果为表达式n(最后一个表达式)的值。如(假设有说明: int x; x=10,x*2,x+3 7、条件表达式:形式为: 表达式0?表达式1:表达式2 若“表达式0”的值非零,则条件表达式的值等于“表达式1”的值。若“表达式0”的值为零,则条件表达式的值等于“表达式2”的值。如:设:int x=6则 (x>6)?(0?x+1:x-1):(10?2*x:x/2)的值为:12。 8、数学 表达式转换为C语言表达式 五、自加、自减运算:若有定义:int k=5;则:表达式:(k++)、(++k)、(k--)、(--k)有何区别? 六、控制结构: 1、选择控制:if,switch

(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题 选择 1.一个C程序的执行是从。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.以下叙述不正确的是。 A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3.以下叙述正确的是。 A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4.一个C语言程序是由。 A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。 A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。

A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件 7.以下叙述正确的是。 A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x)) C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在 二、数据类型、运算符与表达式 选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 52 2.下列四组选项中,均不是C语言关键字的选项是。 A)define IF type B)getc char printf C)include case scanf D)while go pow 3.下列四组选项中,均是不合法的用户标识符的选项是。A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP 4.下列四组选项中,均是合法转义字符的选项是。 A)‘\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’D)‘\\0’‘\101’‘xlf’ 5.下面不正确的字符常量是。

C语言(数据类型与运算符)习题与答案

一、单选题 1、表达式:(int)((double)9/2)-(9)%2 的值是 A.1 B.0 C.4 D.3 正确答案:D 解析: D、整数除以整数,结果为整数 2、若有定义语句:int x=10; ,则表达式 x-=x+x 的值为 A.0 B.-10 C.10 D.20 正确答案:B 3、以下选项中,不能作为合法常量的是 A.1.234e+4 B.1.234e04 C.1.234e0.4 D.1.234e0 正确答案:C 解析: C、指数次数必须为整型 4、下列选项中,不能用作标识符的是 A.int_2_ B.i_nt123 C. _1234_ D.2_int_ 正确答案:D

5、设有定义:float a=2,b=4,h=3; 以下C语言表达式与代数式(a+b)/2 × h 计算结果不相符的是 A.(1/2)*(a+b)*h B.h/2*(a+b) C.(a+b)*h/2 D.(a+b)*h*1/2 正确答案:A 二、填空题 1、若有定义语句:int a=5;,则表达式:a++ 的值是________。 正确答案:5 解析:相当于 y=a++,求y的值,++在后,先使用a的值赋给y,之后再给a增1 2、若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2;之后y 的值为 ________。正确答案:1 解析: %运算要求两数为整数,结果为整数 3、设有语句char a='\072';则变量a最终获得________个字符?(仅填写具体阿拉伯数字) 正确答案:1 解析:这是一个转义字符 4、一个float型变量占________个字节?(仅填写具体阿拉伯数字) 正确答案:4 5、int a=5,b=6,c=7,f; f=c>b>a ;f的最终结果是________。 正确答案:0 解析:关系运算只能两两判断

C语言习题二数据类型及运算

习题二数据类型及其运算 1.已定义c为字符型变量,则下列语句中正确的是______。 A、c='97' B、c="97"; C、c=97; D、c="a"; 解析:本题的考查点是字符型变量。C语言中,字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C正确。 2.以下选项中可作为C语言合法整数的是______。 A、10110B B、0386 C、0Xffa D、x2a2 解析:本题的考查点是C语言中的整型常数。整型常数可以用十进制、八进制或十六进制表示,并分为有符号数、无符号数和长整数。由此可知选项A错;选项B,用0386表示八进制错误,因为八进制数为0-7八个数字,含有8是不对的;选项D,数字前加“0x”表示十六进制数,所以D也不对。故本题答案为C。 3. 以下选项中不能作为合法常量的是______。 A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 解析:本题考查的是常量表示法。本题选项中的几个常量都属于指数形式的实型常量。此种类型的常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。故本题答案为B。 4.与十进制数200等值的十六进制数为______。 A、A8 B、A4 C、C8 D、C4 解析:本题考查的是进制之间的转换。用十--十六进制转换法,除16,由下而上取余法。故本题答案为C。 5. 若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示 该代数式的C语言表达式是______。 A、sqrt(abs(n^x+e^x)) B、sqrt(fabs(pow(n,x)+pow(x,e))) C、sqrt(fabs(pow(n,x)+exp(x))) D、sqrt(fabs(pow(x,n)+exp(x))) 解析:本题考查的是基本函数应用。exp(x)函数功能是返回以自然数e为底,函数参数x为幂的指数值e x;pow(n,x)函数功能是返回n的x次幂值n x;fabs()函数功能是返回函数参数的绝对值;sqrt()用于返回函数参数的平方根。选项A中 n^x不是有效的C语言表达式,所以错误;选项B中pow(x,e)的功能是求x e的值,显然也不正确;选项D中的pow(x,n)存在和选项B相同的问题。选项C正确。故本题答案选C。 6. 以下合法的字符型常量是______。 A、'\x13' B、'\081' C、'65' D、"\n" 解析:本题考查的是字符常量。字符常量只能包含一个字符,因此选项C错误。字符常量只能用单引号括起来,不能用双引号括起来,因此选项D错误。转义字符常量是以一个反斜线开头后跟一个特定的字符,用来代表某个特定的ASCII字符,反斜线后直接跟数字表示八进制(八进制不用0开头),所以选项B错误。反斜线后用小写字母x开头来表示十六进制数。故本题答案选A。 7. 以下叙述中错误的是______。 A、可以通过typedef增加新的类型 B、可以用typedef将已存在的类型用新的名字来代表 C、用typedef定义新的类型名后,原有类型名仍有效 D、用typedef可以为各种类型起别名,但不能为变量起别名 解析:本题考查的是类型声明的概念。选项A错误,原因是typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。故本题答案为A。 8. 以下能正确定义且赋初值的语句是______。

C语言-数据类型习题及答案

第二章数据类型,运算符与表达式 一.选择题 1.不合法的字符常量是(B)。 A)‘\t’B) “A” C)‘a’ D)’\x32’ 2、合法的字符常量是(D)。 A)‘\084’B) ‘\84’ C)‘ab’ D)’\x43’2.(B)是C语言提供的合法的数据类型关键字。 A) Float B) signed C) integer D)Char 3.在以下各组标识符中,合法的标识符是(4)。 (1)A)B01 B)table_1 C) 0_t D) k% (2)A)Fast_ B) void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR (4) A) sj B)Int C)_xy D)w_y23 4.属于合法的C语言长整型常量的是(B)。 A)5876273 B)0L C)2E10 D)(long)5876273 5.下面选项中,不是合法整型常量的是(B)。 A)160 B)-0xcdg C)-01 D)-0x48a 6.判断int x = 0xaffbc;x的结果是(B)(turbo c 版本)。 A)赋值非法 B)溢出 C)为affb D)为ffbc 7.下面选项中,均是合法浮点数的是(B)。 A)+1e+1 B)-.60 C)123e D)-e3 A)5e- B)12e-4 C)-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)-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=,,,,,;的判断中(B),是正确的。 A)语法错误 B)f为5.0 C)f为 D)f为 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)非法数 15.C语言中(Turbo C环境)整数-8在内存中的存储形式为(A)。A)000 B)00 C)000000000001000 D)111 16.对于char cx=’ \039’;语句,正确的是(A)。 A)不合法 B)cx的ASCII值是33 C)cx的值为四个字符 D)cx的值为三个字符

第2章 C语言的基本数据类型与表达式习题解答

第2章 C语言的基本数据类型与表达式习题解答 1.指出下列常数中哪些是符合C语法规定的? ‘\’‘101’“\\” e3 019 0xle “ab\n” 1.e5 (2+3)e(4-2) 5.2e2.5 符合C语法规定的常数有:“\\” 019 0xle “ab\n” 1.e5 ‘\’转义字符不能作字符常量 ‘101’字符串要双引号,字符要转义字符: ‘\101’ e3 浮点常数在e之前应有尾数 (2+3)e(4-2) 浮点常数的尾数和指数部分均不能是表达式 5.2e2.5 浮点常数的指数部分不能是小数。 2.请找出下列程序中的错误,改正后写出程序运行结果。 ⑴ #include void main() { int x,y=z=5,aver; //定义变量时不能连续赋值,aver为正数不能存储带小数的平均数x=7 //以“;”语句结束 AVER=(x+y+z)/3 //行末差“;”,AVER为小写, 除数应有小数部分,商才有小数部分printf("AVER=%d\n",aver) //行末差“;” } 正确的程序如下: #include void main() { int x,y=5,z=5; float aver; x=7; aver=(x+y+z)/3.0; printf("AVER=%f\n",aver); } 运行结果:AVER=5.666667 ⑵ #include void main() { char c1='a';c2='b';c3='c';//连续定义变量有“,”分隔 int a=3.5;b='A'; printf("a=%d b=\'%c\'\"end\"n",a,b); //输出语句无语法错,但格式不清晰 printf("a%c b%c\bc%c\tabc\n",c1,c2,c3); } 正确的程序如下: #include void main() {

大学C语言复习题 附答案

大学C语言复习题附答案(总21 页) --本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--

判断题 1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。× 2.通常硬盘安装在主机箱内,因此它属于主存储器。× 3.指令与数据在计算机内是以ASCII码进行存储的。× 4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户 使用的程序集合。√ 5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的 程序必须经过编译才能执行。√ 6.计算机的所有计算都是在内存中进行的。× 7.字长是指计算机能直接处理的二进制信息的位数。√ 8.计算机区别于其他计算工具的本质特点是能存储数据和程序。√ 9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。× 10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写 英文字母、大写英文字母。× 11.多台计算机相连,就形成了一个网络系统。× 12.在Internet网上,IP地址、E-mail地址都是唯一的。√ 13.不同类型的变量在内存中占用存储空间的大小都是一样的。× 14.表示数学式3

数据类型、运算符与表达式练习题课堂答案

数据类型、运算符与表达式练习题课堂答案 运算符与表达式练习题 一、单项选择题 1.下列数据中属于“字符串常量”的是(A)。 A.”a” B. {ABC} C. ?abc\0? D. ?a? 2.下列数据中属于“字符串常量”的是(B )。A.ABC B. “ABC” C. ?abc? D. ?a? 3. 在PC机中,?\n?在内存占用的字节数是(A)。 A. 1 B. 2 C. 3 D. 4 4. 在PC机中,”a\xff” 在内存占用的字节数是(C )。 A. 5 B. 6 C. 3 D. 4 5.字符串”\”ABCD\””在内存占用的字节数是(C )。 A. 4 B. 6 C. 7 D. 8 6. 在C语言中,合法的长整型常数是(AB )。 A. 0L B. 49627 C. 0.054838743 D. 2.1869e10 7.在C语言中,合法的短整型常数是(D )。 A. OL

C. 40000 D. 0x2a 8.下列数据中不属于“字符常量”的是(D )。 A. …a? B. …\n? C. …\t? D. “a” 9.char型常量在内存中存放的是(A)。 A. ASCII代码值 B. BCD代码值 C. 内码值 D. 十进制代码值 10. int a=4,b=3,c=-2,d=2; 逻辑表达式 a>0&&b&&c<0&&d>0的值是(A )。 A. 1 B. 0 C. -1 D. 出错 11.在以下一组运算符中,优先级最高的运算符是(C )。 A. <= B. = C. % D. && 12.设整型变量i的值为3,则计算表达式i--表达式的值为(B )。 A. 0 B. 3 C. 2 D. 表达式出错 13.设整型变量i,j=3; 则计算表达式i=j++后i,j的值为(A )。

浙大《C程序设计》练习题 数据类型与表达式

第5章数据类型与表达式 1.已有如下定义和输入语句,若要求a,b,c,d可得到的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是,其中”└┘”表示空格。 int a,b;char c,d; scanf("%d%c%d%c",&a,&c,&b,&d); A. 10A└┘20B<回车> B. 10└┘A└┘20└┘B<回车> C. 10A20B<回车> D. 10A20└┘B<回车> 2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后的输出是。 A. The program's name is c:tools book.txt B. The program's name is c:\tools book.txt C. The program's name is c:\\tools book.txt D. The program's name is c:\toolook.txt 3. 设有语句char a='\72'; 则变量a______。 A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 说明不合法 4. 不合法的C语言赋值语句为______。 A. ++a; B. n1 =(n2 =(n3= 0)); C. a = b== c; D. k = a + b=1; 5.正确的语句是______。 A. int x=y=z=0; B. int z =(x+y)++; C. x=+3==2; D. x%=2.5; 6. 设a,b,c均定义为int 型,且已赋于大于1 的数,能正确表达1/(abc)的表达式是______。 A. 1/a*b*c B. 1/(a*b*c) C. 1.0/a*b*c D. 1.0/a/b/c 7.若变量已正确定义,与语句if(a>b)k=0;else k=1;等效的是______。 A. k=(a>b)?1:0? B. k=a>b; C. k=a<=b; D. a<=b?0:1; 8.能满足当x为偶数时值为“真”,为奇数时值为“假”的表达式是______。 A. x %2==0 B. !x%2!=0 C. (x/2*2-x)==0 D. !(x%2) 9.若有代数式: x x x 3cos ln 2 x为int类型数据代表角度,则正确的C语言表达式是______。 A. 2*log(x)*cos(x/180*3.14159)/(3*x) B. 2*ln(x)*cos(x*3.14159/180)/(3*x) C. 2*log(x)*cos(x)/3*x D. 2*log(x)*cos(x*3.14159/180)/(3*x) 10.设有int a =5,b=4;float x=5.5,y=3.7;

(完整word)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. 在PC机中,"a\xff” 在内存占用的字节数是()。 A. 5 B. 6 C。 3 D. 4 5.字符串”ABC"在内存占用的字节数是( ). A. 3 B。 4 C. 6 D。 8 6.字符串”\”ABCD\”"在内存占用的字节数是()。 A. 4 B. 6 C。 7 D. 8 7。在C语言中,合法的长整型常数是( )。 A. 0L B. C. 0. D. 2。1869e10 8.在C语言中,合法的短整型常数是()。 A。 OL B. 0821 C. 40000 D。 0x2a 9。下列数据中不属于“字符常量”的是( )。 A. ‘\a’ B. ‘\160’C。‘070’D。 070 10.char型常量在内存中存放的是()。 A。 ASCII代码值B。 BCD代码值 C. 内码值D。十进制代码值 11.设整型变量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 12.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a〉b)”后,m,n的值是()。 A. 0,0B。0,1 C. 1,0 D. 1,1 13.设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)

浙江大学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。

(完整word)C语言数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题 1. 以下不合法的用户标识符是:( ) a) f2_G3 b) If c) 4d d) _8 2. 以下选项中合法的用户标识符是:() a) long b) _2Test c) 3Dmax d) A。dat 3. 以下可用作用户标识符的是:() a) 12_a b) signed c) t-o d) _if 4。以下不是关键字的标识符是:( ) a) continue b) char c) If d) default 5. C语言提供的合法的关键字是:( ) a) swicth b) cher c) Case d) void 6. 以下选项中不合法的int整型常数是() a) 32768 b) —56 c) 03 d) 0xAF 7。以下合法的长整型常量是() a) 2L b) 49627 c) 34566666 d) 213&8. 以下正确的实型常量是( ) a) 1.2E b) 。579899 c) 1.2e0.6 d) 8 9。以下选项中合法的实型常数是() a) 5E2。0 b) E—3 c) 。2E0 d) 1。3E 10。以下合法的八进制数是() a) 0135 b) 068 c) 013。54 d) o7 11。以下合法的十六进制数是( ) a) 0x b) 0x4de c) 0x1h d) ox77

12. 以下选项中非法的数值常量是( ) a) 019 b) 0L c) 0xff d) 1e1 13。若变量已正确定义,以下合法的赋值表达式是() a) a=1/b=2 b) ++(a+b) c) a=a/(b=5) d) y=int(a)+b 14。若变量已正确定义,以下非法的表达式是() a) a/=b+c b) a%(4。0) c) a=1/2*(x=y=20,x*3) d) a=b=c 15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是: a) 3 b) 4 c) 11 d) 12 16.设a,b均为double型,且a=5。5;b=2.5;则表达式 (int)a+b/b的值是() a) 6.500000 b) 6 c) 5.500000 d) 6。000000 17.若a为int型,且其值为3,则执行完表达式: a+=a-=a*a后,a的值是() a)—3 b) 9 c)—12 d) 6 18.设k和x均为int型变量,且 k=7; x=12;则能使 值为3的表达式是( ) a) x%=(k%=5) b) x%=(k—k%5) c) x%=k—k%5 d) (x%=k)—(k%=5) 1的19. 若a,b,c均被定义成整型并已赋大于1的值,能正确表示代数式 ⋅ c b a⋅ C语言表达式是() a) 1/(float)a*b*c b) 1/(a*b*c) c) 1.0/a/b/c d) 1/a/b/(float)c

《C语言程序设计》第2章数据类型与运算练习题及解答

第2章数据类型和运算符习题及解答一.选择题。 A)_w1 B)3_xy C)int D)LINE-3 答案:A 解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int 是C语言的关键字。 2.C语言中最简单的数据类型包括 A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型 答案:B 解析:本题考查C语言的数据类型。在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。所以,在本题的选择答案中,不应该包括逻辑型。 int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20 答案:D 解析: x数组共有10个元素,在花括弧内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。 D)234e-2 答案:B 解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。 5.若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 答案:B 解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。 C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof 答案:B 解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。 7.C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<= 答案:A 解析: C语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算

相关主题
文本预览
相关文档 最新文档