第一讲C语言复习课件知识课件

上传人:yuzo****123 文档编号:137890267 上传时间:2020-07-12 格式:PPT 页数:105 大小:595KB
返回 下载 相关 举报
第一讲C语言复习课件知识课件_第1页
第1页 / 共105页
第一讲C语言复习课件知识课件_第2页
第2页 / 共105页
第一讲C语言复习课件知识课件_第3页
第3页 / 共105页
第一讲C语言复习课件知识课件_第4页
第4页 / 共105页
第一讲C语言复习课件知识课件_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《第一讲C语言复习课件知识课件》由会员分享,可在线阅读,更多相关《第一讲C语言复习课件知识课件(105页珍藏版)》请在金锄头文库上搜索。

1、第一讲 C语言复习,C+语言程序设计,杨万扣 导航与控制研究所 东南大学自动化学院 ,1.考试说明 2.推荐教材 3.C语言简述 4.VC编译器 5.C程序事例 6.注意事项,提纲,考试说明,考核方式 平时过程化考核40%,一般5个个人项目 项目(团队项目)30%,通常为1个团队项目 期末考试30% 通常为5题上机题目。前5题选4题,注重基本算法和基础能力;最后2题选1题,注重考查学生的综合运用能力,多方案选择能力。,推荐教材,新标准C+程序设计教程 C+编程思想, C+Primer 深度探索C+对象模型 Effective C+,More effective C+ 编程规范文档(高质量C+编

2、程) 数据结构 + 算法设计 典型案例 大数据与机器学习 http:/www.coursera.org/,C提供了大量的库函数: 输入输出函数:printf(), scanf(), 动态内存分配函数:malloc(), free(), 内存管理:memset(), memcpy(), .,C语言概述,C语言知识巩固和补充,输入输出 位运算 函数 指针和动态内存分配 命令行参数 C语言标准库函数,VC编译器,VC 6.0,VS2010,VS2015,VS2015使用的是新C标准 C11,,#include int main() int i; printf (Hello!n); return 0;

3、 ,C语言程序,由函数和变量组成 函数包含一些语句,指定要执行的计算操作 变量存储计算过程中使用的值,1. 编译 2. 链接 3. 生成可执行文件 .exe,C语言概述-例子,1. main 函数,通常函数的命名没有限制,但main是一个特殊的函数名-每个程序都从main函数开始执行,即每个程序都必须有且仅有一个main函数,2. #include 用于告诉编译器在本程序中包含标准输入输出库的信息,#include void main() float len, pi; float lower, upper, step, cur; pi = 3.1415; lower = 1.0; upper

4、= 5.0; step=1.0; cur = lower; while ( lower = upper ) len = 2*pi*cur; printf( “r=%3.0f, len=%6.0fn”, cur, len); cur = cur+step; ,while控制语句,常量定义改成宏定义,C语言例子,#include #define PI 3.1415 void main() float len; float lower, upper, step, cur; lower = 1.0; upper = 5.0; step=1.0; cur = lower; while ( lower =

5、 upper ) len = 2*PI*cur; printf( “r=%3.0f, len=%6.0fn”, cur, len); lower = lower+step; ,C预处理器,三个常用的预处理器指令是: #include #include #include “文件名” 这两种形式查找路径方法不一样,(2) #define #define 名字 替换文本,(3) 条件包含 #if #endif,不带参数 #define forever for(;) /*无限循环*/ (2) 不带参数的宏定义通常用于为程序中的常量取一个名字,称为符号常量。格式: #define 标识符 替换文本 如:

6、 #define PI 3.14159,C预处理器-宏定义,含义清楚,提高了程序的可读性。 在需要改变一个常量时能做到“一改全改”,用define定义宏是C语言的习惯,在C+中有更好的解决方案.,用#define定义符号常量的问题 所定义的符号常量无法进行类型检查 #define的处理只是简单的字符串的替换,可能会引起一些意想不到的错误 C+建议用const定义符号常量 const = ; 如: const double PI = 3.1415926;,C预处理器-宏定义,(3) 带参数 #define max(A, B) (A)(B)?(A):(B),使用宏max 看起来象函数调用,但宏调用

7、直接将文本替换文本插入到代码中,但也存在问题: max( i+, j+ ); /* 错*/,好处是:避免函数调用的开销,#undef 指令取消名字的宏定义,可以避免后续的宏调用,C预处理器-条件包含,使用条件语句对预处理本身进行控制,这种条件语句的值是在预处理的执行过程中进行计算 利用计算得到的条件值选择性地包含不同的代码,#if SYSTEM = SYSV #define HDR “sysv.h” #elif SYSTEM = BSD #define HDR “bsd.h” #else #define HDR “default.h” #endif #include HDR,#ifndef H

8、DR #define HDR #endif,一般预编译器常量都是大写,#include using namespace std; #define DEBUG void main() #ifdef DEBUG couta; #ifdef DEBUG coutinput int: aendl; #endif ,(1)如果没有定义DEBUG宏 实际被编译的程序代码如下:,#include using namespace std; void main() int a; cina; ,(2)如果定义DEBUG宏 实际被编译的程序代码如下:,#include using namespace std; #d

9、efine DEBUG void main() couta; coutinput int: aendl; ,编译C+程序时,编译器自定义了一个预处理器名字, _cplusplus #ifdef _cplusplus . #endif (2) 编译C程序时,编译器自定义名字_STDC_,(3) _cplusplus 和 _STDC_ 不会同时定义,#include using namespace std; void main() #ifdef _cplusplus couta; #ifdef _cplusplus coutinput int: aendl; #endif ,注释,有两种方式 /*

10、我爱我家 */ / 我爱我家 (C风格) 注释是写给人看的,而不是写给计算机的。,注释 可以概括程序算法,标识变量意义,讲解难懂的代码。添加注释是一种好的编程习惯,注释 不会增加程序的可执行代码的长度。 在代码生成以前,编译器会将注释从程序中剔除掉,输入/输出,C语言输入输出函数:printf(), scanf(), (2) 必须包含相关的系统头文件 ,(3) C+ 采用的是 cin, cout (4) 必须包含相关的系统头文件 ,(5) C语言文本输入输出函数:fprintf(), fscanf(), (6) C+文本输入输出, ofstream outfile( “name-of-file

11、” ); ifstream infile( “name-of-file” ); 需要包含头文件 #include,变量,变量:为我们提供了一个有名字的内存存储区,可以通过程序对其进行读、写和处理。C+中每个符号都与一个特定的数据类型相关联,这个类型决定了相关内存的大小、布局、能够存储在该内存中的值得范围以及可以应用其上的操作集。 数据值:(对象的右值,被读取的值) 地址:(在内存中的地址,又称为左值),C语言的输入输出语句(教材P282) #include scanf( ) 将输入读入变量 printf( ) 将变量内容输出,scanf( ) 语句(函数),int scanf( const c

12、har * , .); 参数可变的函数 第一个参数是格式字符串,后面的参数是变量的地址,函数作用是按照第一个参数指定的格式,将数据读入后面的变量 参数可变的函数的参考阅读(不要求掌握) ,scanf 返回值 0 成功读入的数据项个数; 0 没有项被赋值; EOF 第一个尝试输入的字符是EOF(结束) (对某些题,返回值为EOF可以用来判断输入数据已经全部读完),printf( ) 语句(函数),int printf( const char * , .); 参数可变的函数 第一个参数是格式字符串,后面的参数是待输出的变量,函数作用是按照第一个参数指定的格式,将后面的变量在屏幕上输出,返回值: 成

13、功打印的字符数; 返回负值为出错,%d 读入或输出int变量 %c 读入或输出char变量 %f 读入或输出float变量 %s 读入或输出char * 变量 %lf 读入或输出double 变量 %e 以科学计数法格式输出数值 %x 以十六进制读入或输出 int 变量 %I64d 读入或输出 _int64 变量(64位整数) %p 输出指针地址值 %.5lf 输出浮点数,精确到小数点后5位,格式字符串里的格式控制符号:,#include int main() int a; char b; char c20; double d = 0; float e = 0; int n = scanf(%

14、d%c%s%lf%f, ,int n = scanf(%d%c%s%lf%f, input: 123a teststring 8.9 9.2 output: 123 a teststring 8.900000 9.200000e+000 9.200000 5 input: 123ateststring 8.9 9.2 output: input: 123 a teststring 8.9 9.2 output:,123 a teststring 8.900000 9.200000e+000 9.200000 5,123 a 0.000000 0.000000e+000 0.000000 3,#

15、include int main() int a,b; char c; char s20; long long n = 9876543210001111LL; scanf(%d %c,%s%x%I64d, input: -28 K,test ffee 1234567890123456 output: -28 ffffffe4 4294967268 test 0012FF60 ffee 65518 1234567890123456,#include int main() char * s; scanf(%s,s); return 0; 错在何处?,常见错误:,错在 s 不知道指向何处,往其指向的

16、地方写入数据,不安全,char * gets(char * s); 从标准输入读取一行到字符串s 如果成功,返回值就是 s 地址 如果失败,返回值是 NULL 可以根据返回值是 NULL判定输入数据已经读完 调用时要确保 s 指向的缓冲区足够大,否则可能发生内存访问错误,读取一行:,C+11标准剔除了gets, 替换的是gets_s(),#include int main() char s200; char * p = gets(s); / gets_s(s,200); printf(%s:%s,s,p); return 0; input: Welcome to Beijing !,读取一行:,output: Welcome to Beijing !:Welcome to Beijing !,int sscanf(const char * buffer,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号