C语言期末考试知识点

1. 函数

C语言程序的基本单位是函数

1.1 main函数

① C语言总是从main函数开始执行,并从全局main函数结束。

② 调用的函数不一定要在main函数中定义。

1.2 递归调用函数

直接递归调用a函数里面直接调用a函数;
间接递归调用a函数里调用b函数,b函数里再调用a函数。

2. 字符输入输出

① getchar( ) 代表只能输入一个字符

② putchar( )代表只能输出一个字符

③ gets( )是用来专门接收输入的字符串数组,可以说是scanf具体分类
gets接收字符数组名、字符指针或者字符数组元素的地址

④ puts就是从某一址开始,依次输出存储单元中的字符。

2.1 注意事项

2.1.1 接受单个字符的getchar( )

getchar( )它一次能接收的是只占一个字符的元素(可以是0-9,因为0-9占一个字符,但是不推荐使用getchar去输入数字)

2.1.2 “重生”的gets_s( )

在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准,标准中删除了 gets( )函数,使用一个新的更安全的函数*gets_s()*替代,所以在visual studio 2019 c++ 空文件中,不存在gets标识符,只有gets_s( )才可使用。

3. 数组

3.1 定义

数组从下标为0开始,依此储存数据空间,直到达到数组限额

3.2 指针与数组结合例题

3.2.1 例题① (int型)

定义:

int *p,   s[20],i;
*p=s;

数组s[i]表示:
A *(s+i) √
B *(p+i) √
C *(s = s + i) ❌
D *(p = p + i) √

解析如下:

p+1 的本质是移到数组下一个元素的地址(int型四个字节,char型一个字节)
p+i 表示的是第 i+1 个元素的地址,那么 (p+i) 就表示第 i+1 个元素的内容。即 p+i 就是指向元素 a[i] 的指针,(p+i) 就等价于 a[i]。

3.2.2 例题② (char型)

若有:

char c[] = "encourage";
char *p = c;
printf("%s", p+5);

输出结果为:rage

①、char c[ ]= "encourage"中“”(引号)不占存储空间

②、*p = c;意味着将数组c的首地址赋予p

③、 p+5 代表c[5],即第六个字符‘r’

④、输出格式为%s,即将后续字符rage全部输出

4 .
闰年定义:
普通闰年: 能被4整除但不能被100整除的年份
世纪闰年: 能被400整除的年份
year%4==0 && year % 100 != 0 || year % 400==0

5 .
在C语言中%(取余)必须确保分子分母均为整数(可以为负数,但是每一个编译器的负数取余决定于编译器本身,依照编译器规则即可)

3 .
strlen为C语言库函数,包含于string.h中,作用为计算一个字符串(字符数组)中元素的个数,即从数组头部计数,直到遇到字符串结束符\0为止,计数结果不包括\0.
[例子]
strlen(“abcd\0ed\0g”)的返回值为 4

4. 结构体

4.1 结构体定义与定义形式

4.1.1 定义

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员

4.1.2定义形式

struct 结构体名{
结构体所包含的变量或数组
};

struct stu{
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
    char group;  //所在学习小组
    float score;  //成绩
};

4.2 例题填空(结构体的使用)

填写下方划线处代码:

#include<stdio.h>
struct date
{
    int year;
    int month;
    int day;
};

int main()
{
    date d={2020,1,20};
    printf("%04d-%02d-%02d\n", _____);
    date *pd=_____;
    printf("%04d-%02d-%02d\n", pd->year,pd->month,pd->day);
    return 0;

}

第一空:d.year,d.month,d.day
(注意输出格式)
第二空:&d

  • 19
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bessie_Lee_gogogo

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值