C语言基础 (7) 输入输出
- 复习
// 定义数组时 []内部尽量用常量
// 定义数组时,数组名在同一{}内部是唯一的,不能和变量、其他数组名同名
// 使用数组时 []可以是常量,变量,表达式
// 定义一个数组,数组名字叫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”
- 字符数组初始化
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) 输入输出的更多相关文章
- 语言基础:C#输入输出与数据类型及其转换
今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...
- Python语言基础-语法特点、保留字与标识符、变量、基本数据类型、运算符、基本输入输出、Python2.X与Python3.X区别
Python语言基础 1.Python语法特点 注释: 单行注释:# #注释单行注释分为两种情况,例:第一种#用于计算bim数值bim=weight/(height*height)第二种:bim=we ...
- C#语言基础2016/3/6
一. 基础知识 输入输出 Console.Write();//输出语句,自动换行 Console.WriteLine();//输出语句 Console.WriteLine();输入语句 Consol ...
- C语言基础(转载自大海笔记)
# C语言基础2015年03月26日10:04:411. 语言排行榜C——java——objective-C2. 进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...
- 01_C语言基础
内容提要: 1. C语言概述2. 数据类型.运算符与表达式3. C语言程序结构 4. VC6.0使用练习 知识详解01:C语言的历史 1. C语言与其它语言比较 汇编语言: (1).可直接对硬件进行操 ...
- 学习基础和C语言基础调查
学习基础和C语言基础调查 一.一种比大多数人(超过90%以上)更好的技能 说句实话,我还没有那种特别特别自信的.说我能拿得出手的.所谓能超过百分之九十以上的人的技能.毕竟人外有人,天外有天. 姑且算上 ...
- C语言基础语法
#include <stdio.h> int main() { int age; printf("input your age"); scanf("%d&qu ...
- c语言基础知识要点
C语言程序的构成 与C++.Java相比,C语言其实很简单,但却非常重要.因为它是C++.Java的基础.不把C语言基础打扎实,很难成为程序员高手. 一.C语言的结构 先通过一个简单的例子,把C语言的 ...
- 20155327 学习基础和C语言基础调查
20155327 学习基础和C语言基础调查 通过阅读老师推荐的五篇文章之后,其中有几个点引发了我的思考,便是"量变引起质变""循序渐进"以及"坚持&q ...
随机推荐
- Travel Card
Travel Card time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- 使用Neo4j和简单分词算法实现菜品推荐系统
背景:本推荐系统基于一款硬件产品--旺小宝桌牌.客人按下点餐按钮,扫码进入点餐界面,然后开始点自己喜欢的菜,在手机端下单.目前在成都已有近200家合作餐饮商家. 菜品推荐功能: 当客人在某商家使用桌牌 ...
- 【ACM】poj_2210_Metric Time_201308011933
Metric TimeTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 2550 Accepted: 783 Descripti ...
- [bzoj3680]吊打XXX_模拟退火
吊打XXX bzoj-3680 题目大意:在平面上给定n个点,每个点有一个权值.请在平面上找出一个点(不一定在这n个点内找)使得这个点到n个点的距离*权值最小,即求这n个点的重心. 注释:$1\le ...
- Apache Shiro教程
跟开涛学系列: 来自开涛的Apache Shiro教程:http://jinnianshilongnian.iteye.com/blog/2018398 附带的代码例子:https://github. ...
- POJ 1265
主要利用PICK定理与边点数上的GCD的关系求解. 三角形一条边上的所有整数点(包括顶点)可以首先将这条边移到(0, 0)->(x, y).这时,(x/gcd(x, y), y/gcd(x, y ...
- solaris x86安装ORACLE 11.2.0.3软件时因SWAP不足报错: INFO: ld: fatal: mmap anon failed
1.ORACLE软件安装到86%时报错,图忘截了.日志例如以下: /oracle/u01/app/oracle/product/11.2.0/ INFO: db_1/lib/sysliblist` - ...
- formValidator向struts2 ajax传參验证
话不多说,直接上代码 页面head里面的formvalidator验证配置 <script type="text/javascript"> $(document).re ...
- JavaScript Simple
ylbtech-JavaScript: 1.返回顶部 1. 2. 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http: ...
- javascript定义类或对象的方式
本文介绍的几种定义类或对象的方式中,目前使用最广泛的是:混合的构造函数/原型方式.动态原型方式.不要单独使用经典的构造函数或原型方式. 工厂方式 构造器函数 原型方式 混合的构造函数/原型方式 动态原 ...