c语言集训-郭慧-第四次作业

学习笔记

数组

1.为什么需要数组
为了解决大量同类型数据的存储和使用问题
为了模拟现实世界
2.数组的分类:一维数组,二维数组(不存在多维数组)
一维数组:
a.怎样定义一维数组

  • 为n个变量连续分配存储空间
  • 所有的变量数据类型必须相同
  • 所有变量所占的字节大小必须相等

例子:
int a[5];
一维数组名不代表数组中所有的元素,
一维数组名代表数组第一个元素的地址
有关一维数组的操作
b.初始化
完全初始化:int a[5]= {1,2,3,4, 5};
不完全初始化:int a[5]= {1,2, 3};(未被初始化的元素自动为零)
不初始化:int a[6];(所有元素是垃圾值)
或者清零: int a[5]= {0};
易错

  • 只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的即int a[5]= {1,2, 3,4,5};
  • a[5]= 100是错误的,因为没有a[5]这个元素,最大只有a[4]\
  • 把a数组中的值全部复制给b数组,不可以直接:b = a; 正确的写法:for (i=0; i<5;++i) b[i]= a[i];

函数

1.为什么需要函数

  • 避免了重复性操作
  • 有利于程序的模块化

2.什么叫函数

逻辑上:能够完成特定功能的独立的代码块
物理上: 能够接收数据(当然也可以不接受数据),能够对接受的数据进行处理 能够将数据处理的结果返回[当然也可以不返回任何值]\

3. return 表达式;的含义:

  • 终止被调函数,向主调函数返回表达式的值\
  • 如果表达式为空,则只终止函数,不向主调函数返回任何值\
  • break是用来终止循环和switch的,return是用来终止函数的\

例子:\

void f()

return;//return只用来终止函数,不向主调函数返回任何值
}
int f()
{
return 10;//第一:终止函数,第二:向主调函数返回10
}
3.函数返回值的类型也称为函数的类型,因为如果函数名前的返回值类型
和函数执行体中的 return 表达式;中表达式的类型不同的话,则
最终函数返回值的类型以函数名前的返回值类型为准
例子:
int f()
{
return 10.5;//因为函数的返回值类型是int,所以最终f返回的是10而不是10.5
}\

函数的分类

  • 有参函数和无参函数\
  • 有返回值函数和无返回值函数\
  • 库函数和用户自定函数\
  • 值传递函数和地址传递函数\
  • 普通函数和主函数(main函数)\

一个程序必须有且只能有一个主函数
主函数可以调用普通函数普通函数不能调用主函数
普通函数可以相互调用
主函数是程序的入口,也是程序的出口\

5.函数调用和函数定义的顺序
如果函数调用写在了函数定义的前面,则必须加函数前置声明\

函数前置声明:
1.告诉编译器即将可能出现的若干个字母代表的是一个函数
2.告诉编译器即将可能出现的若干个字母所代表的函数的,形参和返回值的具体情况
3.函数声明是一个语句,末尾必须加分号
4.对库函数的声明是通过# include <库函数所在的文件的名字.h>来实现的形参和实参
个数相同,位置一一对应数据类型必须相互兼容

数组代码运行结果及代码

屏幕截图 2021-11-28 161428.png


int main(void)
{
    int a[5] = {1,2,3,4,5};
    //a是数组的名字,5表示数组元素的个数,并且这5个元素分别用a[0] a[1]...a[5]
int i;
for (i =0; i<5;++i)
printf("%d\n", a[i]);

//printf("%d\n", a[100]);//不行,没有这个元素
return 0;
}
复制代码

屏幕截图 2021-11-28 185950.png

# include<stdio.h>
//max是函数的名字,i和j是形式参数,简称形参,void表示函数没有返回值
void max(int i ,  int j)
{
if(i>j)
printf("%d\n", i);
else
printf("%d\n", j);
}
int main(void)
{

int a, b, c, d, e, f;
a = 1,b = 2,c = 3,d = 4,e = 5,f = 100;
max(a, b);
max(c, d);
max(e, f);

return 0;
}
复制代码

屏幕截图 2021-11-28 213344.png

猜你喜欢

转载自juejin.im/post/7035665345859813412