ACM程序员大赛讲座 _____C语言程序设计要点 讲授人:王敬华.

Slides:



Advertisements
Similar presentations
第一章 C语言概述 计算机公共教学部.
Advertisements

第九章 字串 (String).
補充: Input from a text file
高级语言程序设计 C++程序设计教程(下) 2006年春季学期 与一些教材的区别 偏重理论,不去讨论某个系统的具体使用方法,但会涉及实现技术
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C语言程序设计 第十二章 位运算.
C File System.
计算概论 第二十一讲 文件操作 北京大学信息学院.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
C语言程序设计 李祥.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
第五章 指针 5.1 指针的概念和定义 5.2 指针运算 5.3 指针和数组 5.4 字符串指针 5.5 指针数组 5.6 指向指针的指针
第二章 基本元素、类型和概念 七、输出函数printf 八、输入格式转换函数scanf.
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
程式設計 博碩文化出版發行.
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数.
File(檔案處理) 學習目標:開檔、讀檔、更新檔與關閉檔案.
THE C PROGRAMMING LANGUAGE
字符串和字符数组 字符串的输入和输出 字符串的基本操作
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第三章 数据类型、运算符与表达式.
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
|09 陣列.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
Java變數 2014/6/24.
第2章 数据类型及表达式 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
第 二 章 数据类型、运算符与表达式.
第1章 绪论 北京师范大学 教育技术学院 杨开城.
實習十 開讀檔練習.
第八章 指標 (Pointer).
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C標準輸出入函數庫 與 作業系統.
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
C语言程序设计 李祥 QQ:
C程序设计.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第2章 数据类型、运算符与表达式 2.1 程序设计概述
第3章 数据类型、运算符与表达式.
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
第2章 数据类型与表达式 学习目的与要求: 掌握C 语言的基本数据类型及使用方法 掌握C程序中常用的运算符和表达式 了解数据类型的转换.
第二章 基本数据类型 ——数据的表示.
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
第13章 文 件.
Introduction to the C Programming Language
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
結構、檔案處理(Structure, File)
目录 12.1 位运算符 12.2 位域(位段) 1.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
C语言程序设计 第13章 文件操作.
第11章 字符和内存处理 一、字符数组、指针和字符串的初始化作用 二、strlen函数确定字符串有效长度 三、strcpy函数拷贝字符串.
C语言基础学习 从外行到入门.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

ACM程序员大赛讲座 _____C语言程序设计要点 讲授人:王敬华

一、数据类型 1、int /short 2、char 3、unsigned int/short 4、unsigned char 5、float/double/long double

二、运算符 1、按位运算 &、|、^、~、<<、>> 2、算术运算 ++、--、*、/、% 3、条件运算 &&、||、! 4、转义符 \ddd (8进制)、\xhh (16进制)

三、格式化输入/输出 1、printf(“格式控制字符”,表达式1,….,表达式n) %x、%X------无符号16进制整型 %d、%i--------有符号10进制整型 %x、%X------无符号16进制整型 %o--------------无符号8进制整型 %u--------------无符号10进制整型 %c--------------字符型 %s--------------字符串 %f--------------浮点型(10进制小数形式) %e、%E------浮点型(指数形式)

三、格式化输入/输出 2、输出有符号整数 %[-][+][width][.precision]d -:表示左对齐,缺省时是右对齐; +:输出正数时,在数前加上+号; width:对于无符号整数,表示输出整数的最小域宽(即占屏幕的多少格),若实际宽度超过了width,则按实际宽度输出; .precision:针对无符号整数,表示至少要输出precision位,如果整数的位数大于precision,则按实际位数输出,否则在左边的空位上补0。

三、格式化输入/输出 运行结果: a=123 a= 123 a= 0123 a= +123 L=34567 main() { int a=123; long L=34567; printf("a=%d\n",a); printf("a=%6d\n",a); printf("a=%6.4d\n",a); printf("a=%-6d\n",a); printf("a=%+6d\n",a); printf("L=%ld",L); } 运行结果: a=123 a= 123 a= 0123 a= +123 L=34567

三、格式化输入/输出 3、输出无符号整数 %[-][#][width][.precision][l] u|o|x|X #:表示以8进制形式输出数据(%o)时,在数字前输出0;当以16进制形式输出数据(%x或%X)时,在数字前输出0x或0X;

三、格式化输入/输出 运行结果: a=65535:a=-1 u=77777 u=7fff:u=7FFF u=077777:u=0X7FFF main() { int a=-1; unsigned u=32767; unsigned long L=65535<<2; printf("a=%u:a=%d\n",a,a); printf("u=%o\n",u); printf("u=%x:u=%X\n",u,u); printf("u=%#o:u=%#X\n",u,u); printf("L=%lx\n",L); printf("L=%#.8lX\n",L); } 运行结果: a=65535:a=-1 u=77777 u=7fff:u=7FFF u=077777:u=0X7FFF L=3fffc L=0X03FFFC

三、格式化输入/输出 4、实数的输出 %[-][+][#][width][.precision][l][L]f|e|E|g|G l:输出double型数据(缺省时也是输出double型数据); L:输出long double型数据; #:必须输出小数点;

三、格式化输入/输出 main() { double f=2.5e5; printf("123456789123456789\n"); printf("f=%15f\n",f); printf("f=%-15.0f\n",f); printf("f=%#15.0f\n",f); printf("f=%+15.4f\n",f); printf("f=%15.4e\n",f); } 运行结果: 123456789123456789 f= 250000.000000 f=250000 f= 250000. f= +250000.0000 f= 2.5000e+05

三、格式化输入/输出 5、字符和字符串的输出 %[-][width]c %[-][width][.precision]s .precision:表示只输出字符串的前precision个字符;

三、格式化输入/输出 运行结果: Ch=A Ch= A ABCD ABC main() { char ch='A'; printf("ch=%c\n",ch); printf("ch=%3c\n",ch); printf("ch=%-3c\n",ch); printf("%s\n","ABCD"); printf("%6s\n","ABCD"); printf("%6.3s\n","ABCD"); } 运行结果: Ch=A Ch= A ABCD ABC

三、格式化输入/输出 6、scanf(“格式控制字符串”,变量1地址,…,变量n地址) 例:scanf(“%d”,&a); 格式控制字符的一般形式: %[*][width] [l]Type width:是无符号整数,表示输入数据所占的宽度; * : 表示输入的数据不会赋值给相应的变量; l : 表示输入长整型数据(%ld,%lu,%lx,%lo)和double型数据(%lf,%le);

三、格式化输入/输出 scanf函数规定,当输入一项数据时,遇到以下情况scanf认为该数据输入结束: 1)遇到空格、回车、Tab键; 2)指定的宽度结束; 如:scanf(“%3d”,&a);输入1234,a的值将是123; 3)遇非法输入; 如:scanf(“%d”,&a);如果用户输入12a3,a的值将是12; 4)当用%c输入字符型数据时,可显示字符、空格、回车以及其它转义字符都是有效输入; 如:scanf(“%c%c%c”,&a,&b,&c);

三、格式化输入/输出 Scanf(“%c%c”,&c1,&c2); aA Scanf(“%d,%d”,&x,&y); 12,-23 Scanf(“%s%s”,&x,&y); aa AA

四、文件操作 1、文件的打开与关闭 FILE *fopen(char *filename,char *mode); int fclose(FILE *fp); int feof(FILE *fp); mode:由两类字符组成,一类字符表示打开文件的类型,t---文本文件,b---二进制文件;另一类字符是操作类型,r---读,w---写,a---追加,+---可读可写;

四、文件操作 2、文件的读写 int fscanf(FILE *fp,char *format,v1,…,vn); int fprintf(FILE *fp,char *format,e1,…en); int fgetc(FILE *fp); int fputc(int c,FILE *fp); char *fgets(char *s,int n,FILE *fp); 从fp中读n-1个字符===>s,最后补‘\0’ int *fputs(char *s,FILE *fp); 正确,返回写入文件的实际字符数;错误,则返回EOF(-1);

四、文件操作 size---写入文件的每个数据所占用的字节数,通常用sizeof(…)形式; 正确,返回n值,错误,返回NULL(0) unsigned fwrite(void *ptr,unsigned size,unsigned n,FILE *fp); size---写入文件的每个数据所占用的字节数,通常用sizeof(…)形式; 正确,返回n值,错误,返回NULL(0) unsigned fread(void *ptr,unsigned size,unsigned n,FILE *fp);

四、文件操作 3、文件的定位 void rewind(FILE *fp); 将文件指针置于fp所指向的文件头; int fseek (FILE *fp,long offset,int from); offset:从from开始的偏移字节数,+--(->) - ---(<-) 0—不动 from: SEEK_SET(0)、SEEK_CUR(1)、SEEK_END(2) long ftell(FILE *fp); 返回当前位置指针的值,如出错,ftell返回-1;

五、指针 1、一级指针 int *p; char *pstr; 2、数组指针(指向二维数组的指针) int a[2][3] = {{1,2,3},{4,5,6}}; int (*p) [3]; p = a; a[i][j] 等价于p[i][j] 3、指针数组 int a[3]; int *p[3]; p[0] = &a[0]; p[1] = &a[1]; p[2] = &a[2];

五、指针 4、二级指针 int a; int *p; int **pp; p = &a; pp = &p; 5、指针与动态分配 void *malloc(unsigned int size); char *pstr; pstr = (char *) malloc(10 * sizeof(char)); if (pstr ==NULL) {分配不成功} free(pstr);

五、指针 6、指针作为函数的返回值 int *getdata(int num) { int *getdata(int num) { int *p; int k; p = (int *)malloc(num*sizeof(int)); if (p != NULL) for (k=0; k<num; k++) scanf(“%d”,&p[k]); return p; } int *getdata(int num) { static int a[100]; int k; if (num > 100) return NULL; for (k=0;k<num;k++) scanf(“%d”,&a[k]); return a; }

五、指针 7、指针函数 int *getdata(int num); 8、函数指针 int (*pf) (int a); 例:int getmax(int x,int y) { return(x>y?x:y); } void main() { int (*pf) (int,int); int a; pf = getmax; a = (*pf) (3,2); printf(“a=%d”,a); }

六、常用函数 1、int getch(void); 2、int getche(void); 3、sizeof(expression)/sizeof(type); 4、break/continue; 5、memset(void *s,int c,size_t n) 6、void *malloc(size_t size); 7、void free(void *block); 8、strcpy(char *dest,const char *src); 带‘\0’

六、常用函数 9、strncpy(char *dest,const char *src,size_t maxlen); 不带‘\0’ 10、memcpy(void *dest,cont void *src,size_t n); 不带‘\0’ 11、movmem(void *src,void *dest,unsigned length); 带‘\0’ 12、strcat(char *dest,const char *src); 带‘\0’ 13、strncat(char *dest,const char *src,size_t maxlen); 带‘\0’ 14、char *strchr(const char *s,int c); 找到返回其指针,否则null 15、int strcmp(const char *s1,const char *s2); 16、int strncmp(const char *s1,const char *s2,size_t maxlen);

六、常用函数 17、char *strstr(const char *s1,const char *s2) 18、strset(char *s,int ch); 19、char *strupr(char *str); 20、double atof(const char *nptr); 21 、int atoi(const char *nptr); 22、long atol(const char *nptr); 23、char *itoa(int value,char *string,int radix); 24、int random(int num); 24、sprintf(char *buffer,const char *format,……);

六、常用函数 例如:将整数123 “000123” char buffer[7]; int a = 123; sprintf(buffer,”%6.6d”,a); 25、int isalpha(int x); 26、int islower(int x); 27、int isupper(int x); 28、int isdigit(int x); 29、int tolower(int x); 30、int toupper(int x);