csp刷题记录Day1

#CSP刷题记录 Day1

正在准备4.11和9月的csp考试,这篇帖子就作为平时看书做题的记录贴啦,本人是超级菜鸡www,应该有很多内容肥肠基础,欢迎和各位准备csp的童鞋一起友好交流哇。

1、10的9次方以内使用int型来存储
2、10的18次方以内使用long long int型来存储
3、遇到浮点型数据都用double来存储
3、A:65 a:97
4、定义常量可以用#define或者const
5、无穷大
无穷大数INF的描述
6、位运算符
7、尽量使用复合赋值运算符
8、格式符
9、注意scanf以%s读入时以空格与换行为结束的标志,而%c可以识别空行和换行并将其输入。getchar也可以识别空格和换行符。有时候多加一个getchar就是为了把末尾的换行符下吸收掉。gets识别换行符作为结束。使用scanf以及gets识别字符串会自动在后面补齐一个\0
10、printf的格式符和scanf基本一致,只有double变成了%lf
11、%md %mf %0md
12、getchar可以识别换行符
13、typedef用来取别名
14、实用的数学函数,见P38
15、如果数组大小较大,则需要将其定义在函数外面,因为函数内的局部变量来自系统栈,而函数外的全局变量来自静态存储区。
16、memset可以对数组中的每一个元素赋相同的值

//对二维数组以及多维数组是一样的
#include<stdio.h>
#include<sting.h>
memset(a,0,sizeof(a));

17string.h头文件:

//string.h头文件的使用
#include<stdio.h>
#include<sting.h>
int a;
char a[10],b[10],str[100];
memset(a,0,sizeof(a));
strlen(a);//获得字符数组的长度
strcmp(a,b);//比较两个字符数组的长度,如果a<b返回负数,否则返回正数,否则返回0
strcpy(a,b);//将b复制给a
strcat(a,b);//将b接到a后面
sscanf(str,"%d",&n);//将字符串str中的数写入n中
sprintf(str,"%d",n);//将n的数写入字符串str中
// 指针以及数组传参举例:
#iclude<stdio.h>
void swap(int *p1,int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;

}
//一维数组不需要填写长度,二维数组需要填写第二维长度,在实际调用时都只需要写数组名即可
void shuzu(int a[],int b[][5])
{
//balallalala
}
int main()
{
int a,b;
int *p1=&a,*p2=&b;
int line[10];
int mian[10][20];
shuzu(a,b);
swap(p1,p2);
return 0;
}
var foo = 'test';
//2.8结构体的使用
//结构体内可以只能定义自身类型的指针变量,不能定义自己本身
//e.g.1
struct studentInfo{
int id;
 char name;
 studentInfo * next;
 }stu,*p;
 //e.g.2结构体的初始化,使用构造函数(构造函数和结构体同名)
 struct studentInfo{
int id;
 char name;
 //第一种方式
 studentInfo(int _id,int_name){ id=_id;name=_name; }
 //第二种方式
 studentInfo(int _id,int_name):id(_id);name(_name) { }
 };
var foo = 'test';
//2.9一些补充说明
//引入esp防止判断失误
//输入举例:
while(scanf("%d",&a)!=EOF)
{
//……
if(a==0&&b==0);break;
}
//或者
while(scanf("%d",&a)!=EOF,a||0)
{
//……
}
//或者字符串
while(scanf("%s",a)!=EOF)
{
//……
}
while(gets(str)!=NULL)
{
//……
}

呼呼呼~前二章的回顾终于结束了。

为了提高在 CCF CSP(中国计算机学会计算机软件能力认证)考试中的表现,选择合适的题单和练习资源是关键。以下是根据已有信息整理的推荐题单和资源: ### 推荐题路线 1. **流处理类题目**:这类题目通常较为简单,适合入门练习,例如: - 201604-1 折点计数 - 201609-1 最大波动 - 201809-1 卖菜 - 201903-1 小中大 - 202203-1 未初始化警告 - 201703-1 分蛋糕 - 201803-1 跳一跳 - 201909-1 小明种苹果 - 201909-2 小明种苹果(续) - 201912-1 报数 - 202012-1 期末预测之安全指数 - 202109-1 数组推导 - 202206-1 归一化处理 - 202112-1 序列查询 - 202112-2 序列查询新解 - 202209-1 如此编码 [^4] 2. **排序类题目**:排序是基础但重要的部分,可以尝试: - 201712-1 最小差值 - 201409-1 相邻数对 - 201612-1 中间数 [^4] 3. **模拟类题目**:这类题目通常需要较强的逻辑思维能力,例如: - 201812-1 小明上学 - 201812-2 小明放学 - 202006-1 线性分类器 - 201509-2 日期计算 - 201503-3 节日 [^4] ### 练习资源推荐 1. **历年真题题解**:有一份从201312到202312的所有前4题的满分题解集合,其中包含详细注释和思路解析,总共有132题,代码行数达到8000行,非常适合深入学习和理解。GitHub链接:https://github.com/jokerD888/ccf-csp [^1] 2. **在线模拟考试**:建议访问 CCF CSP 官方网站,通过“报名入口”进入模拟考试页面进行练习。这种方式可以让你熟悉正式考试的环境和流程 [^2] 3. **个人题记**:有一个个人的题记,涵盖了从2024年3月到2023年3月的题目,包括水题、STL、高斯消元、双向链表、质数筛、合数分解、前缀数组、字符串、几何等类型,所有题目均获得100分 [^3] ### 示例代码 以下是一个简单的 CCF CSP 题目解决方案示例,用于解决“折点计数”问题: ```python def count_turning_points(n, temperatures): if n < 3: return 0 count = 0 for i in range(1, n - 1): if (temperatures[i] > temperatures[i - 1] and temperatures[i] > temperatures[i + 1]) or \ (temperatures[i] < temperatures[i - 1] and temperatures[i] < temperatures[i + 1]): count += 1 return count # 示例输入 n = 5 temperatures = [1, 3, 2, 4, 1] print(count_turning_points(n, temperatures)) # 输出应该是2 ``` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值