第一章C语言基础知识
数制说明
十进制:数码有0,1,2,……9,运算规则为加法 逢十进一,减法借一当十
二进制:数码有0,1,运算规则为加法逢二进一, 减法借一当二
八进制:数码有0,1,2……7,运算规则为加法逢 八进一,减法借一当八
十六进制:数码有0,1,2……9,A,B,C,D,E,F, 运算规则为加法逢十六进一,减法借一当十六
31 30
…… ……
数值位
最大 的无符号整数是 1111111111111111 1111111111111111 (十进制数是232-1=4292967295) 和-1的补码在内存中的存放形式一致
210
例:有以下程序 main( ) {
unsigned int a; int b=-1; a=b; printf(“%u”,a); /* %u表示按无符号数格式输出 */ }程序运行结果是_B___ A) -1 B) 4292967295 C)32767 D) -32768
(double)两种。 定义形式如下:
float x,y,z;
double a,b,c;
数据类型 关键字 占用的 取值范围 字节数
单精度 float 4
-1038~1038
双精度 doubl 8 e
-10308~10308
有效数字
7 15~16
第五节 算术运算符及表达式
一、算术运算符和算术表达式 1、算术运算符与优先级次序
例:二、八、十、十六进制数大小对照表
十进制 0 二进制 0 八进制 0 十六进制 0
1 234567 1 10 11 100 101 110 111 1 234567 1 234567
十进制 二进制
8 1000
八进制 10 十六进制 8
9 10 11 12 13 14 15 1001 1010 1011 1100 1101 1110 1111
3、将十进制数转换成十六进制 规则:除16取余 例: (45)10=( 2D )16
练习: 请计算100转换成二进制,八进制,十六进制分 别是多少?
(100)10=( 1100100 )2 (100)10=( 144 )8 (100)10=( 64 )16
4、二进制、八进制、十六进制转十进制 规则:按权展开 例:(1011011)2=( 91 )10
短整型(short int) 基本整型(int) 长整型(long int) 无符号整型(unsigned)
不同类型的整型数在内存中所占用的字节数和数值范围
数据类型
基本型
短整型
长整型
无符号整型 无符号短整 型 无符号长整 型
关键字
占用的字 数值范围 节数
[signed] int
4
-214783648~
11 12 13 14 15 16 17 9 ABCDEF
表示形式
如 120D,10111B,347Q,AB9H 或(120)10,(10111)2,(347)8,(AB9)16 1、将十进制数转换成二进制 规则:除2取余 例:(45)10=( 101101 )2 2、将十进制数转换成八进制、 规则:除8取余 例: (45)10=( 55 )8
a=30; b=40; c=a+b; printf(“c=%d\n”,c); }
例10:下列定义变量的语句中错误的是_D___
A) int _int;
B) double int_;
C)char FOR; D) float US$;
分析:选项D中变量名不符标识符的定义要求
第三节 整型数据
一、数制转换
(123)8=( 83 )10 (12B)16=( 299 )10
练习:(11101)2=( 29 )10 (37)8=( 31 )10 (AF)16=( 175 )10
5、二进制与八进制、十六进制的转换 方法:二进制与八进制转换是三位对应一位
二进制与十六进制转换是四位对应一位
(13)8=( 1011
序都必须有一个主函数,也只能有一个主函数。 主函数具体写法为:
main( ) { /*此处写函数的具体执行语句*/} 第3行和第9行:一对大括号{ }之间的内容是函数的 具体内容。 第4行:int是英语“整数(integer)”的简写。
a,b,sum是变量
第5行的意思是让变量a的值为10. 第6行的意思是让变量b的值为20
main( )
{
printf(“Hello,spels!”);
执行部分
}
此例中只有执行部分,没有定义部分
3、C程序中变量必须先定义,后使用。 4、C程序中语句后必须有一个分号。 5、C程序书写格式自由。
一般一条语句写一行,采用缩进格式
main( ) {
int a=0,b=0; a=10; b=20; printf(“a+b=%d\n”,a+b); } 6、C程序的书写是区分大小写的。 如main和Main是不一样的。
第二节 标识符、常量与变量
一、标识符 1、命名规则
(1)标识符只能由字母、数字、下划线组成。 (2)标识符的第一个字符必须是字母或下划线。 (3)标识符是区分大小写的。
如:Abc和abc是不同的 例5:判断下列标识符是否合法
a x sum 3s s3 spels yes? yes-no _to 123 _123 @r
(2)求原码的反码:即将原码中的”0”变”1”,”1” 变”0”,由此可得反码:1111111111111001
(3)将反码加1,就可得-6的补码 为:1111111111111010
练习:求-10的补码
-10的补码是1111111111110110
例:已知补码求真值 已知补码1111111111111101,求真值
方法: (1).将补码各位取反 (2)将得到的结果加1 (3)将得到的二进制数转换成十进制数 (4).根据补码的最高位判断整数的正负. 结果为:-3 注:四个字节(32位)存放的最小整数为
10000000000000000000000000000000 (十进制为-214783648)
3.无符号整数
例11:不合法的十六进制整数是_D____ A) 0x16 B) 0Xabc C)0x15 D)oXF123
例12:以下程序运行后的输出结果是( ) main( ) {
int x=0210; printf(“%X\n”,x); } 说明:%X表示按十六进制数的形式输出结果 输出结果: 88
三、整型变量 整型变量分为
)2
(E3)16=( 11100011 )2
(1001101)2=( 115 )8
(1001101)2=( 4D )16
练习:
(24)8=( 010100 )2
(8D)16=( 10001101 )2
(111011101)2=( 735 )8
(111011101)2=( 1DD )16
二、整型常量 1、十进制常量,如: 0,129,-23 2、八进制常量以数字0开头,如:0127,034 3、十六进制常量以0x或0X开头,如:0x23,0xAF 注:C语言中不能直接表示二进制数常量 例10:以下选项中可作为C语言合法整数的是_C___ A)10110B B) 0386 C)0Xffa D)x2a2
第一章 C语言基础知识
第一节 C语言的基本格式
一、一个简单的C语言程序
例1:计算两个整数之和
第1行: #include “stdio.h”
第2行: main()
/*主函数*/
第3行:{
第4行: int a,b,sum;
/*变量说明*/
第5行: a=10;
/*把整数10赋值给变量a*/
第6行: b=20;
二、常量
常量:是指在程序执行过程中其值保持不变的量
1、普通常量
整型常量
如:3 23 100
实型常量
如: 12.3 2.71828
字符常量
如: ‘a’ ‘?’ (特征:单引号)
字符串常量 如: “abcd” (特征:双引 号)
2、符号常量 例8:计算圆面积的C语言程序 #define PI 3.14159 main( ) { float r,area;
最小正整数(十进制数是1) 00000000000000000000000000000001 最大正整数是:(十进制是231-1= 214783647) 01111111111111111 111111111111111
2.负整数
C语言中,负整数以”补码”形式存放.
例:求-6的在内存中的存储形式
(1)求正整数6在内存中存放的原码 为”0000000000000110”
如:e5 1.25E 2.0E1.3 都是不正确的。
例:以下选项中合法的实型常数是__C___ A)5E2.0 B) E-3 C) .2E0 D) 1.3E
例:以下选项中,不能作为合法常量的是_B___ A)1.234e04 B)1.234e0.4 C)1.234e+4 D) 1.234e0
二、实型变量 C语言中,实型变量分为单精度(float)和双精度
/*把整数20赋值给变量b*/
第7行: sum=a+b;
/*把两数之和赋值给变量sum*/
第8行: printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);
/*把计算结果输出到用户屏幕上*/
第9行 }
函数功能:求两数之和
程序说明: 第1行是表示包含一个头文件。 第2行:main是函数名,表示是主函数,每个C程
要求:不能和关键字相同,也尽量不要和预 定义标识符相同。
例6: 以下不能定义为用户标识符的是( D ) A) scanf B) Void C) _3com_ D) int 分析:int是关键字