1、C语言基础知识第一章 C语言基础知识一 教学重点,难点分析1. C语言概述知识点所占分值考核几率专家点评C语言概述0-1分20%简单识记C语言程序的构成0-1分30%简单识记标识符1-2分60%简单,属重点识记知识点常量1-2分80%简单,属重点识记知识点变量2-3分100%难度适中,重点理解重点掌握注意:从几年的试题分析看C语言的概述和程序的构成合起来考试已经是一个惯例了。2. 运算符与表达式知识点所占分值考核几率专家点评C运算符简介0-1分10%简单识记运算符的结合和优先级0-1分60%简单识记强制类型转换运算符0-1分30%简单识记逗号运算符和逗号表达式0-1分40%简单,属重点识记知识
2、点基本的算术运算符1-2分100%简单,属重点识记知识点算术表达式和运算符的1-2分100%难度适中,重点理解重点掌握优先级与结合、自增自减运算符2-3分100%难度适中,重点理解重点掌握赋值运算符和赋值表达式2-4分100%简单,重点掌握重点理解复合的赋值运算符1-2分80%偏难,不是重点赋值运算中的类型转换0-1分75%偏难,不是重点位运算符和位运算0-1分80%偏难,属重点识记知识点二 教学讲点1. C语言的基本构成和格式#include “stdio.h”main() int a,b,sum;/* 定义变量*/ a=10; /*把整数10赋值给变量a*/ b=20; /*把整数20赋值
3、给变量b*/ sum=a+b; /*把两数之和赋值给变量 sum*/ printf(“a=%d,b=%d,sum=%dn”,a,b,sum);/*输出计算结果*/(1).C程序由函数组成,一个程序必须且只能有一个主函数(main(),C程序总是从主函数开始执行,在主函数中结束。(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个部分:定义部分和执行部分。定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。(3).C语言中每条语句都以分号“;”结束,分号时C语句的一部分。即使是程序的最后一个语句也不例外。分号是语句结束的标志。
4、(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。 例如:i nt 是错误的,而int正确。(5). C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。“/*”和“*/”之间不允许再插入“/*”或“*/”。注释可以出现在程序中的任意位置。注释部分不被执行。(6).C语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。但是过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。2. 标识符(1) 标识符只能由字母、数字和下划线组成。(2) 标识符的第一个字符必须是字母或下划线
5、。(3) 标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。 (3) 标识符的分类:关键字:关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。详细的查阅附录二。预定义标识符:在C语言中它也有特定的含义。预定义标识符可以用位“用户表标识符”使用,只是这将使这些标识符失去了原来的意义。用户标识符:由用户根据需要定义的标识符被成为用户标识符。用户标示符用来给变量、函数、数组或者指针等命名。3. C语言的数据类型3.1数据可以分为常量和变量。常量是指在程序执行中不变的量,常量分为:整型常数、实型常数、字符常量、字符串常量。整型数据:进制间的转换3.11.二、八、十六
6、进制转为十进制规则:“按权相加”3.12.十进制转为二、八、十六进制规则:整数部分:基数除取余,逆序排列小数部分:基数乘取整,顺序排列3.13.二进制转为八、十六进制规则:三(四)合一,按序相拼(整数部分,从右向左取,小数部分从左向右取,位数不足补零)。3.14.八、十六进制转为二进制规则:一分三(四),按序相拼3.2整型数据在内存中的存放形式1字节8位,1Byte8bit字长:指CPU能同时处理的二进制位数。由CPU的型号而定。如:16位微机的字长就是16位或2字节。1GB=1024MB,1MB=1024KB,1KB=1024BB:表示字节,字节是表示存储容量的最小单位。位(bit):是计算
7、机中信息表示的最小单位。3.21.正整数在内存中用“原码”形式存放。(直接转换为二进制即可)。如:5 0000000000000101二字节能存放的最大数是:327670111111111111111对带符号数,最高位是符号位,用0表示正,用1表示负。3.22.负整数在内存中用“补码”形式存放。取补码的步骤:(1)忽略负号,求出原码。(2)将原码按位取反(0 、1 互换)。(3)在第二步的基础上加1。如:取-5的补码。(1)0000000000000101(2)1111111111111010(3)1111111111111011将补码转换成相应的整数的步骤:(1)将补码按位取反加1。(2)将
8、步骤1得到的二进制数转换成十进制数,然后加上负号即可。例如:1000000000000000按位取反加10111111111111111 1 1000000000000000转换成十进制:121532768 加负号:-32768几个特殊的带符号整数:1000000000000000 -327680111111111111111 327671111111111111111 -13.23.无符号整数:只有正整数,没有负整数,最高位不表示符号位,每一位均参与转换。二进制带符号整数无符号整数111111*1-1655351000000000000000-3276832768例2-12:若有:int a
9、=-1; unsigned b=65535;则printf(“%d,%u,%d,%u”,a,a,b,b); 输出结果是:-1,65535,-1,65535数据益出问题:例2-13:若有int a=32767;则a=a+1的结果是:-32768例2-14:若有unsigned b=65536;则b的值是:0分析:32767:01111111111111111 +1100000000000000将100000000000000按照带符号数转为十进制为-3276865535:111111*1+11111111111111111+11000000000000000065536unsigned b=65
10、5536;而b属于无符号整型,在内存中只占两字节,所以只能包括16位。标准C没有具体要求规定各类型数据所占内存的字节数, 现以这次考试标准viusalc+6.0为例,说明各类型变量所占的位数。 类型所占位数所占字节数类型所占位数所占字节数short162unsignedint324int324unsignedlong324long324Float324unsignedshort162Double6483.3实型数据(浮点数)3.31.实型常量(1)小数形式:由数字和小数点组成,必须有小数点,小数点的某一侧可以没有数字。如:.23 ,123.876 ,123. (2)指数形式:用“e”或“E”后
11、接一个整数,表示以10为底的幂数。注意: “e”或“E”之前之后必须有数字,且之后的数字必须是整数。他们和前后的数字之间不能有空格。例如:例2-15:下列合法的常量是( )。A.-32169 B.0128 C.0XDEFG D.13E0.5例2-16:下列合法的实型常量是()。(A) 0Xff (B)124E (C) 1.23E5.0 (D) 3.E2 (E) 1.25E+2 (F).23e+02 3.32.实型变量单精度型 float 占 4 字节双精度型 double 占 8 字节长双精度 long double 占 16字节(较少用)4. 表达式与运算符4.1算术运算符及其表达式:+ -
12、 * / %:(求余运算)注意:(1)%两边必须是整型数据。12.0%3 表达式是错误的。(2)求余(%)的方法是:忽略符号,求出余数,再将所得余数的符号定为与被除数相同。 例如:17%3 结果是:217%-3 结果是:2,-17%3 结果是:-2,-17%-3 结果是:-24.2强制类型转换强制类型表达式:(类型名)表达式注意:类型名(表达式)这种形式是C+的强制类型表达方式。5.赋值运算符及其表达式5.1.赋值运算符 = 格式:变量名=表达式功能:将表达式的值赋给左边的变量。注:(1)赋值运算符左边只能是一个变量,不能是常量,也不能是表达式。a+b=3 4=3 是非法的表达式a=6 a+(b=3) 都是合法的表达式a=b=20 a=(b=10)/(c=2) 都是合法的表达式(2)实型数据赋给整型变量时,小数部分被舍去,整型数据赋给实型变量时,系统自动将整型数据转换为实型数据。例如:float a; int b;表达式a=10%3 的值是1.0表达式b=a=10%3的值是15.2.复合赋值运算符及其表达式:+= -= *= /= %= &= |= = = =例如:a+=3 相当于a=a+3,a/=b+4 相当a/=(b+4) 或a=a/(b+4)例:若a=12,则执行表达式a+=a-=a+a后a的值是多少?分析:a+=a-=(a+a) /*a
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1