首页 > 编程语言 >编程奇境:C++之旅,从新手村到ACM/OI算法竞赛大门(基础语法)

编程奇境:C++之旅,从新手村到ACM/OI算法竞赛大门(基础语法)

时间:2024-05-30 15:00:53浏览次数:13  
标签:新手村 洛谷 cn OI luogu 计算机科学 深基 奇境 com

踏入C++王国的神秘之门,首要任务是装备上基础语法这把万能钥匙,它不仅是你与代码世界对话的初级咒语,更是构筑编程魔法塔的基石。想象自己是一位即将踏上征途的勇士,先要学会站立、行走,方能奔跑、飞跃。

基础语法:勇者的起跑线

  • 顺序结构:这就像是一场精心策划的冒险,你的每一个指令——探索古堡、与龙搏斗或是收集宝藏,都会按部就班地执行,一环扣一环,构建起故事的主线。

  • 分支结构(if-else):面对岔路,勇者需做出抉择。遇到友善的精灵,你选择赠予礼物(if);若是狡猾的狼人挡道,则拔剑而战(else)。这样的判断逻辑,让你的旅途充满变数与智慧。

  • 循环结构(while, for, do-while):循环,就像是拥有了无限次重来的机会,或是重复练习剑术直至完美,或是在迷宫中不断尝试直到找到出口。无论是追逐日落的无尽奔跑(while),还是计数宝藏的精确步伐(for),亦或是那永不言弃的誓约之舞(do-while),循环赋予了程序无尽的可能。

  • 数组:藏宝室的秘密:想象你的背包里排列着一格格小房间,每个房间里藏着不同颜色的宝石或威力各异的药剂。数组,就是这样一个有序存放数据的神奇空间,每一项元素都等待着被恰到好处地使用。

  • 字符串:编织魔咒的丝线:如果说数字和符号是构建世界的砖石,那么字符串便是赋予万物灵魂的咒语。它们可以是古老的传说、神秘的指引,或是与巨龙交流的密语,让冰冷的代码世界充满情感与故事。

  • 函数:魔法瓶中的咒语:函数,就像是魔法师手中的魔瓶,封装着特定的魔法效果。只需念对咒语(调用函数),无论是治愈伤痕还是召唤风暴,皆能瞬间实现。它们让复杂的任务变得模块化,易于管理和复用。

  • 结构体:英雄的装备库:每位勇者都需要一套合身的装备来应对不同的挑战。结构体正如那装备库,将剑、盾、魔法卷轴等不同类型的物品(变量)组织在一起,形成一个整体,让角色更加立体,战斗更加多变。

掌握了这些基础语法,你便拥有了开启C++奇幻之旅的最初力量。随着知识的累积,你将逐渐解锁更多高深技艺,攀登编程的巅峰,成为驾驭代码的真正大师。

顺序结构

int 变量名=初始值;//定义整数类型

float 变量名=初始值;//定义浮点数(小数)类型

double 变量名=初始值;//定义双精度浮点数(小数)类型

string 变量名=初始值;//定义字符串类型(大于1个字符)

cin>>变量名;//输入一个变量 该变量必须在前面先定义过

cout<<//输出内容

int a=10;
float b=10.0;
double c=10.0;
string name="xiaoming";
char d="x";

例子:

#include <iostream>
using namespace std;

int main() {
    // 勇士清晨起床,开始新的一天
    cout << "晨光破晓,勇士醒来" << endl;      // 先描述勇士醒来的情景
    cout << "整理行装,准备出发" << endl;    // 然后描述他准备出发的情景
    
    return 0;
}

例题:

B2002 Hello,World! - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

P5703 【深基2.例5】苹果采购 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

B2029 大象喝水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

分支结构

例子:

#include <iostream>
using namespace std;

int main() {
    int health = 50; // 勇士当前生命值
    
    if (health > 75) {
        cout << "精力充沛,继续前进!" << endl;    // 生命值高,状态良好
    } else {
        cout << "需要休息,恢复体力..." << endl;  // 生命值低,需要休息
    }
    
    return 0;
}

例题:

P5710 【深基3.例2】数的性质 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

P5711 【深基3.例3】闰年判断 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P5713 【深基3.例5】洛谷团队系统 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

循环结构

例子:

#include <iostream>
using namespace std;

int main() {
    cout << "练习剑术10次:" << endl;
    for(int i = 1; i <= 10; i++) {       // 重复10次
        cout << "挥剑第 " << i << " 次" << endl;  // 输出每次挥剑的信息
    }
    
    return 0;
}

例题:

P5718 【深基4.例2】找最小值 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

P1035 [NOIP2002 普及组] 级数求和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P5723 【深基4.例13】质数口袋 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

数组

例子:

#include <iostream>
using namespace std;

int main() {
    string potions[3] = {"治疗药水", "力量药剂", "敏捷药水"}; // 定义一个包含三种药水的数组
    
    for(int i = 0; i < 3; i++) {
        cout << "背包中的第 " << i+1 << " 件物品: " << potions[i] << endl; // 遍历并展示背包内容
    }
    
    return 0;
}

 P5727 【深基5.例3】冰雹猜想 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P1554 梦中的统计 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P5732 【深基5.习7】杨辉三角 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

字符串

例子:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string heroName = "亚瑟";  // 定义一个字符串变量存储勇士的名字
    
    cout << "欢迎勇士 " << heroName << " 来到冒险之地!" << endl;  // 输出欢迎信息,包含勇士的名字
    
    return 0;
}

P5733 【深基6.例1】自动修正 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

P1914 小书童——凯撒密码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P5015 [NOIP2018 普及组] 标题统计 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

函数

例子:

#include <iostream>
using namespace std;
int health = 50;
// 定义一个函数,模拟治疗过程
void heal() {
    health += 20;
    cout << "使用治疗药水,生命值增加20点!" << endl;
}

int main() {
    
    heal(); // 调用治疗函数
    cout << "治疗后,当前生命值为: " << health << endl;
    
    return 0;
}

 P5735 【深基7.例1】距离函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P5736 【深基7.例2】质数筛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

P5739 【深基7.例7】计算阶乘 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

结构体

例子:

#include <iostream>
using namespace std;

// 定义一个结构体,代表勇士的装备
struct Equipment {
    string weapon;   // 武器
    string armor;    // 盔甲
};

int main() {
    Equipment heroEquip = {"圣剑", "龙鳞铠甲"};  // 初始化装备
    
    cout << "勇士手持 " << heroEquip.weapon << ",身穿 " << heroEquip.armor << "。" << endl;
    
    return 0;
}

P5740 【深基7.例9】最厉害的学生 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

P5741 【深基7.例10】旗鼓相当的对手 - 加强版 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P5742 【深基7.例11】评等级 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

总结 

各种结构可以帮我们控制程序的流程,函数则是可以将一些重复的代码封装后重复使用,更加简洁。通过基础语法的练习,相信大家一定对c++题目有所感觉了吧,刚接触一定要多练,白看不如一练,只有实践才是进步最快的方式,更要独立思考,如果想不出来了就看题解,会有眼前一亮的感觉。好啦,今天就到这里吧。下一期再见,记得给专栏点个关注,明天接着来哦~

标签:新手村,洛谷,cn,OI,luogu,计算机科学,深基,奇境,com
From: https://blog.csdn.net/X_StarX/article/details/139319481

相关文章

  • 【Android图片框架】都用Kotlin协程了,快来试试Coil~
    回顾一下Glide        Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decodepipeline),以及自动的资源池技术。Glide支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以......
  • 【NOIP2017普及组复赛】题2:图书管理员
    题2:图书管理员【题目描述】图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。小......
  • Android 14.0 启动app时设置密码锁
    1.前言在14.0的系统产品开发中,对于限制某些app的启动的功能中,在项目中的需求是在点击app启动的时候,根据包名设置密码锁,当输入正确的密码的时候来启动这个app,否则就不能启动这个app,达到限制使用app的目的,这就需要在app启动的时候,检测app的包名,然后在app启动的时候弹出输入密......
  • 基于Android的高校心理咨询系统论文
    摘要基于Android平台的高校心理咨询系统结合了现代移动技术与心理健康理念,旨在为高校学生提供一个便捷、高效的心理咨询平台。该系统通过安卓应用的形式,实现了用户注册、登录、在线咨询、心理测试、预约咨询、心理知识等功能。用户可以通过手机随时随地访问系统,获取专业的......
  • Android基础-初识Android系统架构
    Android系统架构详解Android系统作为一款广泛应用于智能手机、平板电脑等设备的操作系统,其架构的设计对于系统的稳定性、可扩展性和用户体验至关重要。Android系统架构是一个复杂的层次结构,旨在实现硬件与软件之间的高效协同工作,为用户提供丰富的功能和良好的体验。以下是对An......
  • Android基础-Activity的介绍
    在Android系统中,Activity是一个重要的组件,它承载了用户与应用之间的交互界面。以下是关于Activity的功能、作用以及生命周期的详细介绍。Activity的功能和作用提供用户界面:Activity是Android应用程序中用于表示一个屏幕或用户界面的组件。它负责展示应用程序的用户界面,如......
  • Android基础-Service的介绍
    在Android系统中,Service是一个重要的后台组件,用于执行长时间运行的操作,而不需要提供用户界面。以下是对Service的功能、作用以及生命周期的详细介绍。Service的功能和作用后台执行:Service允许应用程序在后台执行操作,即使用户没有与应用进行直接交互。这使得Service成为处......
  • LeetCode 第8题:字符串转换整数 (atoi)
    本文我们来看看LeetCode第8题.字符串转换整数(atoi)的解析过程。文章目录一、引言题目描述示例二、解题思路1.丢弃无用的前导空格2.处理正负号3.读入数字4.处理整数溢出5.组合起来思路流程图三、Java代码实现代码解析1.移除前导空格2.处理正负号3.转换数......
  • spark sql中的几种数据库join
    一、连接类型:InnerJoin:内连接;FullOuterJoin:全外连接;LeftOuterJoin:左外连接;RightOuterJoin:右外连接;LeftSemiJoin:左半连接;LeftAntiJoin:左反连接;NaturalJoin:自然连接;Cross(orCartesian)Join:交叉(或笛卡尔)连接。二、crossjoin的例子:WITH......
  • [SDOI2009] Bill的挑战
    [SDOI2009]Bill的挑战题目信息题目描述Sheng_bill不仅有惊人的心算能力,还可以轻松地完成各种统计。在昨天的比赛中,你凭借优秀的程序与他打成了平局,这导致Sheng_bill极度的不满。于是他再次挑战你。这次你可不能输。这次,比赛规则是这样的:给出\(N\)个长度相同的字符串(由......