c语言程序设计

C语言程序设计(十)

孤者浪人 提交于 2019-11-27 18:47:41
第十章 字符串 字符串常量是由一对双引号括起来的一个 字符串序列 字符串实际就是由若干个有效数字构成且以字符'\0'作为结束的一个字符序列 C语言没有提供字符串数据类型,因此字符串的存取要用 字符型数组 来实现 字符型数组是由字符构成的数组,仅当其最后一个元素是'\0'时才表示字符串 字符串结束标志'\0'也占一个字节的内存,但 它不计入字符串的实际长度,只计入数组的长度 正确写法: char str[6] = {'H','e','l','l','o','\0'}; char str[] = {'H','e','l','l','o','\0'}; char str[] = {"hello"}; char str[] = "hello"; 编译系统会根据字符串中字符的个数来确定数组的大小 数组的大小为字符串中实际字符的个数加1 多个字符串需要存放在二维字符数组中 数组第一维的长度代表要存储的字符串的个数,可以省略 但是 第二维的长度不能省略 字符指针:指向字符型数据的指针变量 只要将字符串的首地址赋值给字符指针,即可让字符指针指向一个字符串 字符串常量本身代表的就是存放它的常量存储区的首地址,是一个地址常量 char *ptr = "Hello"; 等价于 char *par; ptr = "Hello"; /* 将保存在常量存储区中的"Hello"的首地址赋值给ptr

C语言程序设计(九)

泪湿孤枕 提交于 2019-11-27 18:43:51
第九章 指针 C程序中的变量都是存储在计算机内存特定的存储单元中的,内存中的每个单元都有唯一的地址 通过 取地址运算符& 可以获得变量的地址 //L9-1 #include <stdio.h> int main() { int a = 0, b = 1; char c = 'A'; printf("a is %d, &a is %p\n", a, &a); printf("b is %d, &b is %p\n", b, &b); printf("c is %c, &c is %p\n", c, &c); return 0; } //运行结果 a is 0, &a is 0060FF0C b is 1, &b is 0060FF08 c is A, &c is 0060FF07 %p格式符,表示输出变量a、b、c的地址值 地址值是一个十六进制的无符号整数,其字长一般与主机的字长相同 变量的地址:变量在内存中所占的存储空间的首地址 变量的值:变量在存储空间中存放的数据 变量的名字:对程序中数据存储空间的一种抽象 指针:存放变量的地址的特殊类型的变量 类型关键字 *指针变量名; 类型关键字代表指针变量要指向的变量的数据类型,即 指针变量的基类型 指针变量的定义只是声明了指针变量的名字及其所能指向的数据类型,并没有说明指针变量究竟指向了哪里 //L9-2 #include <stdio

C语言程序设计(八)

安稳与你 提交于 2019-11-27 18:40:28
第八章 数组 //L8-1 #include <stdio.h> int main() { int score1, score2, score3, score4, score5; int totalScore; printf("Input the scores of ten students:\n"); scanf("%d", &score1); scanf("%d", &score2); scanf("%d", &score3); scanf("%d", &score4); scanf("%d", &score5); totalScore = score1 + score2 + score3 +score4 + score5; printf("The average score is %f\n", totalScore/5.0); return 0; } //运行结果 Input the scores of ten students: 90 95 91 86 79 The average score is 88.200000 数组:解决需要对相同类型的批量数据进行处理的问题 数组是一组具有相同类型的变量的集合 数组名 数组元素:构成数组的每个数据项 数组的下标 数组的基类型:即数组中元素的类型 数组的维数:下标的个数 C语言中数组的下标都是 从0开始 的 //L8-1

C语言程序设计(七)

我们两清 提交于 2019-11-27 18:36:28
第七章 函数 分而治之: 把较大的任务分解成若干较小、较简单的任务,并提炼出公用任务的方法 函数是C语言中模块化程序设计的最小单位,既可以把每个函数都看作一个模块,也可以将若干相关的函数合并成一个模块 信息隐藏: 把函数内部的信息对不需要这些信息的其他模块隐藏起来,让使用者不必关注函数内部是如何做的 只知道它能做什么以及如何使用它即可,从而使得整个程序的结构更加紧凑,逻辑也更清晰 标准库函数:使用ANSIC的库函数,必须在程序的开头将该函数所在的头文件包含进来 自定义函数 函数在使用之前必须定义 函数名是函数的唯一标识,用于说明函数的功能 为了便于区分,通常变量名用小写字母开头的单词组合而成,函数名则用大写字母开头的单词组合而成 Windows风格: 函数名使用“动词”或者“动词+名词”的形式 变量名使用“名词”或者“形容词+名词”的形式 函数体必须用一对花括号{}包围,这里的花括号是函数体的界定符 在函数内部定义的变量只能在函数体内访问,称为 内部变量 函数头部参数表里的变量,称为形式参数,也是内部变量 形参表是函数的入口 函数名相当于运算的规则,形参表里的形参相当于运算的操作数,函数的返回值就是运算的结果 若函数没有返回值,则需用void定义返回值的类型 若函数不需要入口参数,则用void代替函数头文件形参表中的内容 在函数定义的前面写上一段注释来描述函数的功能及其形参

C语言程序设计(六)

老子叫甜甜 提交于 2019-11-27 18:35:54
第六章 循环控制结构 循环结构:需要重复执行的操作 被重复执行的语句序列称为循环体 计数控制的循环 条件控制的循环 当型循环结构 直到型循环结构 for while do-while while(循环控制表达式) { 语句序列 } 计算循环控制表达式的值,如果循环控制表达式的值为真,执行循环体中的语句,返回;如果循环控制表达式的值为假,退出循环。 do { 语句序列 }while(循环控制表达式); 执行循环体中的语句,计算循环控制表达式的值,如果循环控制表达式的值为真,返回;如果循环控制表达式的值为假,退出循环。 for(初始化表达式;循环控制表达式;增值表达式) { 语句序列 } 初始化表达式的作用是为循环控制变量赋初值,决定了循环的起始条件 如何对循环变量进行增值,决定了循环的执行次数 如果在循环体内再次改变这个变量的值,将改变循环正常的执行次数 //L6-1 #include <stdio.h> main() { int i, n, sum; printf("Input n:"); scanf("%d", &n); sum = 0; /* 累加和变量初始化为0 */ for (i=1; i<=n; i++) { sum = sum + i; /* 做累加运算 */ } printf("sum = %d\n", sum); } 逗号运算符:可把多个表达式连接在一起

C语言程序设计(四)

孤者浪人 提交于 2019-11-27 18:07:21
第四章 键盘输入和屏幕输出 转义字符 \n 换行,光标移到下一行的起始位置 \r 回车(不换行),光标移到当前行的起始位置 \0 空字符 \t 水平制表 \v 垂直制表 \b 退格 \f 走纸换页 \a 响铃报警提示音 \" 一个双引号 \' 一个单引号 \\ 一个反斜线 \? 问号 \ddd 1到3位八进制ASCII码值所代表的字符 \xhh 1到2位十六进制ASCII码值所代表的字符 每个字符都有一个等价的整型值与其相对应,这个整型值就是该字符的ASCII码 从这个意义上而言,可将char型看成是一种特殊的int型 对char型数据和int型数据进行相互转换不回丢失信息 Unicode——国际标准化组织制定的更强大的编码 //L4-1 #include <stdio.h> main() { char ch; printf("Press a key and then press Enter:"); ch = getchar(); /* 从键盘输入一个字符,按回车键结束输入,该字符被存入变量ch */ ch = ch + 32; /* 将大写英文字母转换为小写英文字母 */ putchar(ch); /* 在屏幕上显示变量ch中的字符 */ putchar('\n'); /* 输出一个回车换行控制符 */ } //运行结果 Press a key and then press

C语言程序设计(二)

爷,独闯天下 提交于 2019-11-27 18:05:58
第二章 C数据类型 八进制整数由数字0开头,后跟0~7的数字序列组成。 十六进制整数由数字0加字母x(或X)开头,后跟0~9,a~f(或A~F)的数字序列组成。 整型常量: 默认的int型定义为有符号整数,因此对int型无需使用signed 无符号整型常量:U 长整型常量:L 无符号长整型常量:LU 十进制小数形式 指数形式:3.45e-6=0.00000345 实型常量: 单精度:F 双精度(实型常量默认) 长双精度:L 变量在使用前必须先定义,需要声明变量的类型和变量名。 //L2-1a-1 main()//以main()作为开头指定了C程序执行的起点 //一个C程序必须有且只能有一个用main()作为名称的函数,称为主函数 { int a; float b; char c; a = 1; b = 2.5; c = 'A'; } 变量名(标识符)是 大小写敏感的 所有变量必须在第一条可执行语句之前定义 空格是为了增强程序的 可读性 定义变量的同时可以对变量进行初始化,如int a=1; //L2-1a-2 main() { int a = 1; /* 定义整型变量a并对其初始化 */ float b = 2.5; /* 定义实型变量b并对其初始化 */ char c = 'A'; /* 定义字符型变量c并对其初始化 */ } 可同时定义多个相同的变量,如int a,b,c;

C语言程序设计(三)

一个人想着一个人 提交于 2019-11-27 18:05:49
第三章 简单的算术运算和表达式 算数运算符:一元、二元、三元(条件运算符) 1/2是整型除法,1.0/2是浮点数除法 求余运算(%)限定参与运算的两个操作数必须为整数,不能对两个实型数据进行求余运算 余数的符号与被除数的符号相同 C语言中没有幂运算符! //L3-1 #include <stdio.h> main() { int x = 153, b0, b1, b2, sum; b2 = x / 100; /* 计算百位数字 */ b1 = (x - b2 * 100) / 10; /* 计算十位数字 */ b0 = x % 10; /* 计算个位数字 */ sum = b2 + b1 + b0; printf("b2=%d, b1=%d, b0=%d, sum=%d\n", b2, b1, b0, sum); } //运行结果 b2=1, b1=5, b0=3, sum=9 复合的赋值运算符 +=:a+=b; 等价于 a=a+b; -= *= /= %= 增1和减1运算符(一元运算符) ++x:前缀运算符,在变量使用之前对其执行加1操作 m=++n; 等价于 n=n+1;m=n; x++:后缀运算符,先使用变量的当前值,然后对其进行加1操作 m=n++; 等价于 m=n;n=n+1; 良好的程序设计风格提倡在一行语句中一个变量最多只出现一次增1或者减1运算

C语言程序设计(一)

冷暖自知 提交于 2019-11-27 18:03:43
第一章 为什么要学C语言 学编程的过程,其实就是学习怎样用编程语言说话,让编译器听懂的过程。 汇编语言缺少“可移植性” 除了机器语言和汇编语言以外,几乎所有的编程语言都被统称为 高级语言 ,它的特点是更接近自然语言,而与机器语言基本没有瓜葛。 不同的高级语言编译器,可以把同样的高级语言程序翻译成适应不同机器的指令,因而高级语言大多具有较好的 可移植性 。 ken和der的可爱之处: 做事情以兴趣为出发点,并不在乎未来会怎样 极富钻研精神,喜欢迎接挑战 乐于分享,不计回报 黑客是计算机和互联网的缔造者,是一种独特的文化。 如果一件事情可以用X语言做,就一定不要用C语言做。 C 诡异离奇,缺陷重重 ,并获得巨大成功。 C语言设计原则的第一条是: 信任程序员 。 C语言完全满足人们对效率的苛求,精心设计的代码可以极大的节约资源,又不像汇编语言那样难用,所以受到程序员的欢迎。 现在还需要使用C语言的地方,大概只限于4个领域: C语言仍是编写操作系统的不二之选 在对程序的运行效率有苛求的地方 在需要继承和维护已有的C代码的地方 思想交流的首选媒介语言 C语言很适合作为入门级语言,这并不是C语言自身决定的,而是中国庞大的C语言教育体系决定的。关于C语言的书籍资料、论坛、习题和教辅系统是最多的,而且无一例外都是面向程序设计的初学者。 计算思维代表着一种普遍的认识和一类普适的技能,每一个人

C语言基础知识(一)——学习笔记

戏子无情 提交于 2019-11-27 16:39:32
C语言关键字: unsigned signed bool void char short int long double float struct enum union typedef sizeof if else for switch case default while do break continue goto extern register volatile auto const static return 常用的Linux系统命令: touch/cat/more/head/tall/rm/cp/mv mkdir/rmdir/cd/ls/tar ifconfig/ping/telnet/ssh/ftp vim文本编辑器: 在终端下依靠键盘操作使用的文本编辑器。 三大主要模式:正常模式、插入模式、命令模式 常用快捷键:Ctrl+x Ctrl+z Ctrl+c 教程:vimtutor C语言介绍: 发明C语言的目的是什么 长盛不衰 优缺点、特点 C语言三剑客:《C语言陷阱和缺陷》、《C和指针》、《C专家编程》、《C程序设计语言》、《C Primer Plus》、《必然》、《白说》 编译器介绍: 编译器就一个特殊的程序,把负责把C代码(文本文件)编译成可执行的二进制文件。 它由:预处理器、编译器、链接器组成 常用的参数:-E -c -S -o -std -l -D