第三章 数据类型、运算符和表达式
(温馨提示:本章内容非常繁琐,细节较多,请将所记笔记中的说明部分和例题好好看看,一般考选择题和填空题)
一、主要内容
标识符命名原则:
1. 合法的要求是由字母,数字,下划线组成,并且第一个必须为字母或则是下划线。关
键字不可以作为用户标识符号。
2. main define scanf printf 及其他库函数的函数名都不是关键字可以用作标识
符。
3. If与if不同,If是可以做为用户标识符,因为C区分大小写。
基本数据类型:
1. 基本数据类型有哪些?所占空间大小及说明符。
2. 整型、实型、字符型常量的合法表示形式,字符串的表示形式。
a)实型数据的合法形式:小数形式和指数形式-----尤其要注意指数形式的格式e前必有数,e后必为整数。2.333e-1 就是合法的
b) 字符数据的合法形式:以单引号括起来的一个字符,注意转义字符P48表3-3。
如‘\\x6d’是合法的字符,ASCII码为十六进制的6d,‘\\141’也合法,ASCII码为八进制141,‘\\108’不合法。
c) 字符常量和字符串的区别:'a' 是字符占一个字节,
\是字符串占两个字节(含有一个结束符号)。
常量和变量
1. 符号常量的定义格式:eg #define PI 3.14159 (注意宏定义后无分号结尾) 2. 变量的定义格式:
3. 变量赋初值的方式。 int a=b=c=3;不合法
数据混合计算时数据类型的转换:P54图3-10。 a) 强制类型转换:一定是(int)a 不是 int(a),注意类型上一定有括号的。 b) 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。
运算符
1. 运算符的优先级别和结合方向: a) 单目运算>双目运算
b) 算术> 关系运算>逻辑运算>条件运算>赋值运算>逗号运算 2. 算术运算符:
a) %要求左右两边都是整型数,运算结果为余数。 b) /运算若左右两边都是整型数,结果为整数。
c) 自增自减运算符,前置先自增减,再运算;后置先运算,再自增减。自增自减运算
符只能作用于变量,不能作用于常量和表达式。
如:#define A 3
A++;是错误写法。 3. 关系运算符:
a)注意赋值=与关系= =的区别。
第 4 页 共 86页
b) c语言中没有逻辑类型,逻辑“真”用非0表示,逻辑“假”用0表示,
c) x在[a,b]间的关系表达式为x>=a && x<=b,不能写为a>=x>=b。但该表达式语法成
立,有运算结果。如3>=1>=5运算时从左向右依次运算,即3>=1为真,值为1,此时,表达式为1>=5,运算结果为假,值为0。所以整个1>=3>=5的值为0.
4. 逻辑运算符:
a)!优先级别比较高, !>&&>|| 。 b)&&和||运算时注意短路原则。(常考!)
5. 赋值运算符:
a)复合赋值运算符的使用。如a=12,则a+=a-=a*=a;运算后a的值
6. 条件运算符:
a)结合方向从右向左。
7. 逗号运算符:优先级别最低;也叫顺序执行运算符,表达式的数值逗号最右边的那个
表达式的数值。(2,3,4)的表达式的数值就是4
表达式
1. 能将数学表达式写成c表达式
2. 计算表达式的值,注意优先级别和结合方向。
二、练习题
(一)练习题之数据类型
一、选择题:
1、以下标识符中,不能作为合法的C用户定义标识符的是 ( ) A)putchar B)double C)_123 D)INT
2、下列字符序列中, 不可用作C 语言标识符的是 ( ) A. b70 B. #ab C. symbol D. a_1
3.以下不能定义为用户标识符的是:( )
A. MAIN B. _HJ C. 208ong D. LINE12 4. 以下是正确的字符常量是:( )。
A. \ B. '\\\\' C. 'W1' D. \
5. 以下各项是错误的整型常量的是:( )
A. -0xcdf B. 018 C. 0xe D. 011
6、下列四组选项中,均不是C语言关键字的选项是 :( ) A) define B) getc C) include D) while
第 5 页 共 86页
IF char scanf go type printf case pow
7、下面四个选项中,均是正确的八进制数或十六进制数的选项是:( ) A) -10 B) 0abc C) 0010 D) 0al2 0x8f -017 -0x11 -0xl23
-011 0xc 0xf1 -0x8
8、下面四个选项中,均是正确的数值常量或字符常量的选项是: ( ) A) 0.0 B) \C) '3' D) +001 0f 3.9E-2.5 011 0xabcd 8.9e lel0xFFOO 2e2 '&'
'\\' '' 0a 50.
9、下面不正确的字符串常量是:( )。 A) 'abc' B) \ D) \
10.设int类型的数据长度为2字节,则该类型数据的取值范围是: ( )
A. 0至65536 B. 0至65535 C. -32767至32768 D. -32768至32767
11、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( )
A)char < int < 1ong int <= float < double B)char = int < 1ong int <= float < double C)char < int < 1ong int = float = double D)char = int = 1ong int <= float < double
12.若有以下程序段(n所赋的是八进制数) int m=32767,n=0327; printf(\执行后输出结果是:( )
A) 32767,327 B) 32767,0327 C) 32767,777 D) 32767,0777
13.设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为:( )
A. int B. float C. double D. 不确定
14. 在C语言中,char型数据在内存中的存储形式是:( )
A. 补码 B. 反码 C. 源码 D. ASCII码
15. 字符串\在内存中占据的字节个数为 : ( )
A. 0 B. 1 C. 2 D. 3
16.下列为字符常量的是:( )
第 6 页 共 86页
A.“a” B. ?ab? C. ?\\n? D.?\\084?
17.在C语言中,下面字符串能用作变量名的是:( ) A. a+b B. auto C. 2-and D. a2
18.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句
c2 = 'A' + '6' - '3';后c2中的值为( )
A) D B) 68 C) 不确定的值 D) C
19、在C语言中合法的字符型常量是。 ( ) A、“A” B、?\\t? C 、65 D、A
20、以下选项中,C中正确的整型常量形式是。 ( ) A、0x16 B、-202.18 C、1,000 D、0458
二、填空题:
1. 在C语言中的实型变量分为两种类型,它们是_ __ 和 ___ ___。
2.将下列字符串表示成C语言的字符串常量
(1)C:\\TC\\LIB_____________
(2)He said:\’m a student.\_________
(3)85% student passed.____________________________
3.在C语言中,标识符中英文字母的大小写________(是/不是)等价的。换句话说,sum、Sum、SUM是3个_______(相同/不同)的标识符。 4.已知char w; int x; float y; double z;
则表达式:w * x + z - y所求得的数据类型为 。 5.变量名由字母、数字和下划线组成,并且必须是______打头。
6. C语言的数据类型分为基本类型、构造类型、指针类型和空类型 。(正确/错误)。 7.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,
则表达式ch = 'a' + '8' - '3'的值为 。
三、看程序写结果
1.如果对以下程序进行编译和运行,其结果为________。 main()
{int x,y; x=555;y=x+2; y=x+2;
printf(“x=%d”,x,y);}
2.执行以下程序,写出程序运行结果________。 main() {
int c1,c2; c1=97;
第 7 页 共 86页
c2=98;
printf(\ printf(\ }
3.执行以下程序,写出程序运行结果________。 main()
{ char c1, c2;
c1='A' ; c2='a' ; c1=c1+2 ; c2=c2+2 ;
printf(\ }
(二)练习题之 运算符和表达式
一、选择题:
1、以下运算符中,优先级最高的运算符是( ) A. = B. != C. *(乘号) D. ()
2、若有以下定义,则能使值为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)
3、设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是 ( ) A. 6 B. 7 C. 8 D. 9
4、有以下程序运行后的输出结果是: ( ) main()
{ char a='A',b; print(\ printf(\ }
A. B,B B. B,C C. A,B D. A,C 5、有以下程序运行后的输出结果是 :( ) main()
{ char a='a';
printf (\ printf(\ }
A)b,b B)b,c C)a,b D)a,c
6、设a=6,b=4,则表达式b*=a+3的值为 : ( ) A)3 B)18 C)27 D)36
第 8 页 共 86页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序复习题及参考答案 -(2)在线全文阅读。
相关推荐: