1. 复习

// 定义数组时 []内部尽量用常量

// 定义数组时,数组名在同一{}内部是唯一的,不能和变量、其他数组名同名

// 使用数组时 []可以是常量,变量,表达式

// 定义一个数组,数组名字叫a 有10个元素 每个元素为int

// 通过下标操作元素,从0开始,0~9

int a[10]

a[0] = 1;

// 数组越界

//1、编译时错误,编译代码就能检查到(语法错误)

//2、运行时错误 运行到这个语句才可能检查到(非法操作内存)

//a[10] = 2

一维数组初始化

// 定义同时赋值叫初始化,只能在定义时才能用{}进行初始化

int a [10] = {1,2,3,4}   //剩下的会填零

int a[] = {1,2,3,4} //会自动生成长度为4的数组

//一维数组名

int a[] = {1,2,3,4,

4、冒泡排序

for(I = 0 ;i<n-1;i++

for(j=I ;j<n-1;j++

ifa(j)<a(j+1)

{ // swap

// 1、测二维数组长度 sizeof(a) 4个元素 每一个int[5] = 4*4*5 = 80

printf(“sizeof(a) = %lu\n”,sizeof(a))

// 2、 测第0个元素的大小,它还是一维数组 int[5] = 4*5 = 20

printf(“sizeof(a[0])=%lu\n”,sizeof(a[0]));

// 3、 测第0行第0列元素大小,就是一个int类型,4

printf(“sizeof(a[0][0]) = %lu\n”,sizeof(a[0][0]))

//4、 求行的数目,第一个[]的数目,元素个数

int n = sizeof(a)/sizeof(a[0])

printf(“n1=%d\n”,n)

// 5、 求列的数目,第二个[]数目

n = sizeof(a[0]/sizeof(a[0][0]);

printf(“n2=%d\n”,n)

// 6、 求行*列的总数

n = sizeof(a)/sizeof(a[0][0])

printf(“n3 = %d\n”,n)

三、多维数组

// 三维数组就是有n个二维数组

四、字符数组

1、字符串和字符数组关系

// 1、字符串是以数字0或者字符’\0’结尾

// 2、如果字符数组,以数字0或者’\0’结尾,那么这个字符数组就是字符串

char ch = 0

char ch = ‘\0’

ch = ‘0’ // err 字符0,它是普通字符,不是字符串结束字符,ascii码为48

例如

char a[] = “1230”

char a[] = “123\0”

  1. 字符数组初始化

char buf1[] = {‘c’,’ ‘, ‘p’,’r’,’e’,’g’}

// %s代表以字符串的方式打印

// 首地址,找字符串的结束符,遇到数字0或者字符’\0\结束打印

!有可能乱码

3、字符数组输入

char str[100];

scanf(“%s”,str) // 遇到空格截断

五、随机数的产生

//随机种子设置,只需设置一次,如果种子一样,随机数就一样

//srand(100)

srand((unsigned int)time(NULL))

int I = 0;

int tmp = 0;

for(i=0;i<10;i++)

{

tmp = rand() //产生随机数

printf(“tmp = %d\n”,tmp)

}

二、作业讲解

三、scanf的使用

键盘输入: hello mike回车(把内容放缓冲区

键盘输入 hello mike\n

缓冲区就是一块内存

结论:scanf以空格分开,输入一次下次也能取出来是因为放到缓冲区了

//scanf()的缺陷,不做越界检查

04 gets fgets的使用

// 这个函数已经被抛弃了 不建议使用

stdio.h里面有一个叫stdin的指针,可以直接调用标准键盘输入

fgets有个问题,会把换行符也读进去

05 字符串的输出

06 strlen的使用

strlen()

07 课堂答疑

08 字符串的拷贝

09 数组越界测试

// 可能会报段错误

10 字符串比较

11 字符串追加

12 上午知识点复习

gets  可以获得空格

fgets    stdin

puts  会自动打印\n

fputs    stdout

strlen     遇到\0结束(sizeof不会

strcpy     有一个src 有一个dst 遇到\0结束 最后自己也加一个\0

strcat      和上面一样

strncat     加一个n以后就可以指定长度了

strcmp     逐个字符比较ascii大小

strncmp

13 sprintf的使用

s开头输出到数组

f开头输出到文件

什么都不写输出到屏幕

结果:

14sscanf的使用

15 sscanf的补充

16 字符串查询

strchr()  // 查询char

strstr()  // 查询str

// strchr // strstr

17 课堂答疑

18 字符串切割

19 atoi的使用

atoi() 函数功能是把一个字符串 把字符串转换成整型 直到遇到\0

char str1[] = “-10”

int num1 = atoi(str1)

atof(转换到浮点型 atoll(转换长整型

char buf[100]

sprintf(buf,”%d”,2345)  // 把格式化的数据写入某个字符串中

20 函数的作用和分类

·系统函数,即库函数:这是由编译系统提供的,用户不必自己定义这函数,可以直接使用它们,如我们常用的打印函数printf()

·用户定义函数:用以解决用户的专门需要。

程序比作公司,函数比作部门,

21 无参无返回值函数的使用

程序比作公司,函数比作部门

1、函数的定义,就是把之前写在main 函数内部的代码换个地方

2、函数的定义,类似于厨房做好的菜,如果没有人点菜,做好的菜没有意义

函数的定义,只有在用户调用了,才起作用,函数调用类似于点菜

1、  无参无返回值函数的使用

2、  有参无返回值的使用

3、  无参有返回值函数的使用

4、  有参有返回值函数的使用

22 无参无返回值函数的补充

23 有参无返回值的函数

24 无参有返回值的函数的使用

C语言基础 (7) 输入输出的更多相关文章

  1. 语言基础:C#输入输出与数据类型及其转换

    今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...

  2. Python语言基础-语法特点、保留字与标识符、变量、基本数据类型、运算符、基本输入输出、Python2.X与Python3.X区别

    Python语言基础 1.Python语法特点 注释: 单行注释:# #注释单行注释分为两种情况,例:第一种#用于计算bim数值bim=weight/(height*height)第二种:bim=we ...

  3. C#语言基础2016/3/6

    一.  基础知识 输入输出 Console.Write();//输出语句,自动换行 Console.WriteLine();//输出语句 Console.WriteLine();输入语句 Consol ...

  4. C语言基础(转载自大海笔记)

    # C语言基础2015年03月26日10:04:411.    语言排行榜C——java——objective-C2.    进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...

  5. 01_C语言基础

    内容提要: 1. C语言概述2. 数据类型.运算符与表达式3. C语言程序结构 4. VC6.0使用练习 知识详解01:C语言的历史 1. C语言与其它语言比较 汇编语言: (1).可直接对硬件进行操 ...

  6. 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...

  7. C语言基础语法

    #include <stdio.h> int main() { int age; printf("input your age"); scanf("%d&qu ...

  8. c语言基础知识要点

    C语言程序的构成 与C++.Java相比,C语言其实很简单,但却非常重要.因为它是C++.Java的基础.不把C语言基础打扎实,很难成为程序员高手. 一.C语言的结构 先通过一个简单的例子,把C语言的 ...

  9. 20155327 学习基础和C语言基础调查

    20155327 学习基础和C语言基础调查 通过阅读老师推荐的五篇文章之后,其中有几个点引发了我的思考,便是"量变引起质变""循序渐进"以及"坚持&q ...

随机推荐

  1. SQL Server 2008 复制到MySQL

    SQLServer2008正在配放订阅的时候是能够看到收撑订阅办事器为Oracle或者DB2的,可是复制到MySQL没无间接的界面操做. 颠末测试,通过MySQL的ODBC驱动,是能够实现将SQLSe ...

  2. java.lang.Object 方法解析

    1.clone() a.是一个native方法,效率比非native高 b.是protected 修饰的,要用他必须继承object,默认都是继承object的 c.返回是一个object 对象,需要 ...

  3. POJ 1084

    WA了好久,第一次用重覆盖的模型做题.感觉这题有个陷阱,那就是当去掉某些边后,若因为这个边去掉而被破环的正方形还存在,那么就会造成覆盖不完全,WA. 所以,在去掉边后,必定有些正方形是不存在的,须重新 ...

  4. 关于在linux下出现stdio.h文件不存在等gcc标准库不能找到的解决的方法

    首先说明一下我的系统配置:ubuntu 12.04     gcc 4.6.3 有几天没有使用ubuntu了,今天拿出来编程序,刚開始编译一个uboot1.1.6的代码.出现了stdio.h:没有那么 ...

  5. openstack中Nova组件Networks的全部python API 汇总

    感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限.错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  6. iOS 隐藏NavigationBar的方法

    使用下面方法: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationCon ...

  7. luogu1969 积木大赛

    题目大意 搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木).接下来每次操作,可以选择一段连 ...

  8. Xmind8破解激活

    1.下载安装包: https://www.xmind.cn/download/ 进行安装 2.下载破解补丁: https://stormxing.oss-cn-beijing.aliyuncs.com ...

  9. 二重积分的计算 —— 交换积分顺序(exchange the order of integration)

    交换积分顺序的诀窍在数形结合: 1. 几句顺口溜 后积先定限,限内穿条线,先交下限写,后交上限见 先积 x,画横线(平行于 x 轴),右减左: 先积 y,画竖线(平行于 y 轴),上减下: 2. 简单 ...

  10. codeforces 708ALetter Cyclic Shift

    2019-05-18 09:51:19 加油,加油,fightting !!! https://www.cnblogs.com/ECJTUACM-873284962/p/6375011.html 全为 ...