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. Locally managed (LMT) vs. Dictionary managed (DMT) tablespace

    The LMT is implemented by adding the extent management local clause to the tablespace definition syn ...

  2. LeetCode之RemoveElement

    题目: Given an array and a value, remove all instances of that value in place and return the new lengt ...

  3. Javascript中的原型继承具体解释

    js中的继承,是面向对象的知识,由于js没有类的概念.所以继承是通过对象实现的.谈到继承.就必须说到prototype,就不得不先说下new的过程. 一个小小的列子: <script type= ...

  4. hdu1716(库函数next_permutation)

    题目意思: 现有四张卡片,用这四张卡片能排列出非常多不同的4位数,要求按从小到大的顺序输出这些4位数. 注意首位没有前导0 pid=1716">http://acm.hdu.edu.c ...

  5. oracle 数据库开发面试题

    近期參加了数场面试,总结一下竞聘oracle 开发岗位最常问到哪些问题: 1.delete 与 truncate 差别? 1)truncate 是DDL语句.delete 是DML语句: 2)trun ...

  6. 编程算法 - 把字符串转换为整数 代码(C)

    把字符串转换为整数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 写一个函数StrToInt, 模拟atoi的功能, 把字符串转换为整数. 须 ...

  7. Cookies操作类

    实现代码: //声名一个数据集合 var listString = new List<string>() { "a", "b", "c&q ...

  8. .Net Core Autofac实现依赖注入

    Autofac 是一款适用于Microsoft .NET 4.5, Silverlight 5, Windows Store apps, and Windows Phone 8 apps的超赞的 Io ...

  9. Python 生成requirement 使用requirements.txt

    第一步:python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号.以便新环境部署. requirements.txt可以通过pip命令自动生成和安装 ...

  10. LeetCode Weekly Contest 25

    1. 507. Perfect Number 显然小于2的都不满足(尤其是负数的情况),进一步,显然质数都不满足,所以小于4的数,直接return false. 然后依次暴力枚举判断到sqrt(n), ...