新生培训 day1 C语言基础 顺序 分支 循环 数组 字符串 函数

比赛地址
b牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

C语言数据类型

字符

整型数

int 2e9

long long 9e18

浮点数

代码示例

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */
#include <stdio.h>int main() {// 定义变量int intVar;long longVar;long longLongVar;float floatVar;double doubleVar;char charVar;// 输入整型scanf("%d", &intVar);printf("您输入的整数是: %d\n", intVar);// 输入浮点型scanf("%f", &floatVar);printf("您输入的浮点数是: %.2f\n", floatVar);// 输入双精度浮点型scanf("%lf", &doubleVar);printf("您输入的双精度浮点数是: %.2lf\n", doubleVar);// 输入字符型scanf("%c", &charVar);printf("您输入的字符是: %c\n", charVar);// 输入 long 类型scanf("%ld", &longVar);printf("您输入的 long 是: %ld\n", longVar);// 输入 long long 类型scanf("%lld", &longLongVar);printf("您输入的 long long 是: %lld\n", longLongVar);return 0;
}

常量

定义常量的用途主要有以下两个方面:

  1. 提高代码可读性

    • 常量通过使用具有描述性的名称,能够使代码更易于理解。例如,使用 #define PI 3.14 可以让读者一目了然地知道这个值代表的是圆周率,而不是直接在代码中看到一个数字。
  2. 提高代码的可维护性

    • 当需要修改常量的值时,只需在一个地方进行更改(常量定义处),而不必在代码的多个位置逐一修改。这降低了出错的概率,并且便于在未来进行维护和更新。使用常量可以避免“魔法数字”的出现,减少代码中的硬编码。

这两个用途共同作用,使得代码更加清晰、简洁和健壮。

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */
#include <stdio.h>
#define mod 19
int main() {int a, b;scanf("%d %d", &a, &b);printf("%d\n", (a * b) % mod);  return 0;  
}

运算表达式

 ++ a和a++的区别

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */
#include <stdio.h>int main() {int a = 1;// 先运算再赋值 int b = ++a; //结果是b=2int a = 1;// 先赋值再运算 int b = a++; //结果是b=1}

用途 数组

判断输出结果

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */
#include <stdio.h>int main() {int arr[4]{1,2,3,4};int j=0;for(int i=0;i<3;i++){printf("%d",arr[++j]);} }
/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */
#include <stdio.h>int main() {int arr[4]{1,2,3,4};int j=0;for(int i=0;i<3;i++){printf("%d",arr[j++]);} }

运算符大全

逻辑运算符

用于生成条件表达式

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */
#include <stdio.h>int main() {int a = 5;int b = 10;// 使用逻辑与运算符int result = (a > 0 && b < 15);printf("结果为: %d\n", result); // 结果为 1 (true)return 0;
}
#include <stdio.h>int main() {int x = 0;int y = 20;// 使用逻辑或运算符int result = (x == 0 || y > 15);printf("结果为: %d\n", result); // 结果为 1 (true)return 0;
}

条件执行语句

判断语句

单条件判断语句

// 用法
if (条件表达式){// 条件满足要执行的语句
}

条件分支语句 

// 用法
if (条件表达式){// 条件满足要执行的语句
}else{// 条件不满足要执行的语句
}

多条件分支语句 

// 用法
if (条件表达式1){// 满足条件表达式1要执行的语句;
}else if (条件表达式2) {// 满足条件表达式2要执行的语句;
}else if (条件表达式3) {// 满足条件表达式3要执行的语句;
}...else if (条件表达式n) {// 满足条件表达式n要执行的语句;
}else{// 所有条件表达式都不满足要执行的语句;
}

switch语句:开关语句,一般配合case关键字使用

switch(表达式)
{case 常量1: // 如果表达式的值等于常量1,执行下面的语句1语句1 ;break;case 常量2: // 如果表达式的值等于常量2,执行下面的语句2语句2;break;...case 常量n:// 如果表达式的值等于常量n,执行下面的语句n语句n;break;default:// 默认执行的语句,如果没有通过上面的开关语句退出,就会执行下面的语句n+1语句n+1;//break; // default可以省略break;因为它本身就是最后执行,执行完就会退出开关语句。}

注:switch语句如果没有break会一直向下执行直到结束。

举例

新生训练day1

#include<stdio.h>
int main(){int a,b;scanf("%d",&a);b=a%100;if(2<b&&b<6){printf("spring");}if(5<b&&b<9){printf("summer");}if(8<b&&b<12){printf("autumn");}if(b==12&&b<3){printf("winter");}return 0;
}
#include <stdio.h>int main() {int a, b;scanf("%d", &a);b = a % 100;switch (b) {case 3: case 4:case 5:printf("spring\n");break;case 6: case 7:case 8:printf("summer\n");break;case 9: case 10:case 11:printf("autumn\n");break;case 12: case 1:case 2:printf("winter\n");break;default:break;}return 0;
}

循环执行语句

for循环

//用法
for (循环变量赋初值;循环条件;循环变量增量){执行语句;
}

while循环

//用法
while (循环条件){执行语句;
}

do while循环

//用法
do{执行语句;
}while (循环条件);

数组

1. 数组的定义

要定义一个数组,你需要指定数组的类型和大小。例如,定义一个可以存储10个整数的数组:

 

cCopy Code

int numbers[10];

2. 数组的初始化

你可以在定义数组时直接初始化它:

 

cCopy Code

int numbers[5] = {1, 2, 3, 4, 5};

如果你不指定大小,编译器会根据初始化的数据自动推断大小:

 

cCopy Code

int numbers[] = {1, 2, 3, 4, 5}; // 数组大小为5

3. 访问数组元素

数组中的元素可以通过索引访问,索引从0开始。例如,访问第一个元素和最后一个元素:

 

cCopy Code

int first = numbers[0]; // 获取第一个元素 int last = numbers[4]; // 获取第五个元素

4. 修改数组元素

你可以通过索引修改数组中的元素:

 

cCopy Code

numbers[2] = 10; // 将第三个元素改为10

5. 遍历数组

你可以使用循环来遍历数组中的所有元素,例如使用for循环

for (int i = 0; i < 5; i++) { printf("%d ", numbers[i]); 
}

6. 多维数组

C语言支持多维数组,最常用的是二维数组。例如,定义一个3行4列的二维数组:

int matrix[3][4];

初始化一个二维数组:

int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} };

访问二维数组的元素:

  // 遍历二维数组for (int i = 0; i < 2; i++) {        // 外层循环遍历行for (int j = 0; j < 3; j++) {    // 内层循环遍历列printf("%d ", matrix[i][j]); // 打印当前元素}printf("\n"); // 每行结束后换行}

获取元素

int value = matrix[1][2]; // 获取第二行第三列的元素

7. 数组作为函数参数

数组可以作为函数参数传递,但实际上传递的是指向数组首个元素的指针。例如:

void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}
}
printArray(numbers, 5);

函数

C语言入门基础知识【完整版】_c语言基础知识入门-CSDN博客

ASCII码

ASCII码表完整版_asiica码表-CSDN博客

新生赛day1题解

A

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include<stdio.h>
int main(){printf("Helo word!");return 0;
}

B

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include<stdio.h>
int main(){int n;scanf("%d",&n);printf("%d",n*262144);return 0;
}

C

遍历

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include<stdio.h>
int main()
{printf("1*1= 1\n");printf("1*2= 2 2*2= 4\n");printf("1*3= 3 2*3= 6 3*3= 9\n");printf("1*4= 4 2*4= 8 3*4=12 4*4=16\n");printf("1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25\n");printf("1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36\n");printf("1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49\n");printf("1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64\n");printf("1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81\n");
return 0;
}

循环

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; i++) {for (j = 1; j <= i; j++) {printf("%d*%d=%2d ", j, i, j * i);}printf("\n"); // 每一行结束后换行}return 0;
}

D

循环

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include<stdio.h>
int main(){int n;scanf("%d",&n);while(n--){int a;int b;scanf("%d %d",&a,&b);printf("%d \n",a+b);}
}

函数

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include<stdio.h>
void solve(){int a;int b;scanf("%d %d",&a,&b);printf("%d\n",a+b);
}
int main(){int n;scanf("%d",&n);while(n--){solve();}
}

E

判断

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include<stdio.h>
int main(){int a,b;scanf("%d",&a);b=a%100;if(2<b&&b<6){printf("spring");}if(5<b&&b<9){printf("summer");}if(8<b&&b<12){printf("autumn");}if(b==12&&b<3){printf("winter");}return 0;
}

switch

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include <stdio.h>int main() {int a, b;scanf("%d", &a);b = a % 100;switch (b) {case 3: // fall into springcase 4:case 5:printf("spring\n");break;case 6: // fall into summercase 7:case 8:printf("summer\n");break;case 9: // fall into autumncase 10:case 11:printf("autumn\n");break;case 12: // winter casecase 1:case 2:printf("winter\n");break;default:// If b is not in the range of 1 to 12, you can handle it herebreak;}return 0;
}

F

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include <stdio.h>
#include <math.h>void solve();int main() {int t;scanf("%d", &t);while (t-- > 0) {solve();}return 0;
}void solve() {int n;scanf("%d", &n);if (n == 1) {printf("No\n");} else {int is_prime = 1;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) {is_prime = 0;break;}}if (is_prime) {printf("Yes\n");} else {printf("No\n");}}
}

G

/** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */#include <stdio.h>int main() {char x;scanf(" %c", &x); // 注意空格以处理前导空格char temp = 'A';int a = (int)x - 64;for (int i = 1; i <= a; i++) {// 打印前导空格for (int i1 = 1; i1 <= a - i; i1++) {printf(" ");}// 打印递增部分for (int i2 = 1; i2 <= i; i2++) {printf("%c", temp);temp++;}temp -= 1;// 打印递减部分for (int i3 = 1; i3 <= i - 1; i3++) {temp -= 1;printf("%c", temp);}printf("\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/441276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT-空窗口主窗口对话框

1. QMainWindow QMainWindow 用来创建主窗口 主窗口包含&#xff1a; 标题栏&#xff08;Window title&#xff09;、菜单栏&#xff08;MenuBar&#xff09;、工具栏&#xff08;ToolBar&#xff09;、状态栏&#xff08;StatusBar&#xff09;、停靠部件&#xff08;DockWid…

Ansible学习之ansible-pull命令

想要知道ansible-pull是用来做什么的&#xff0c;就需要了解Ansible的工作模&#xff0c;Ansible的工作模式有两种&#xff1a; push模式 push推送&#xff0c;这是Ansible的默认模式&#xff0c;在主控机上编排好playbook文件&#xff0c;push到远程主机上来执行。pull模式 p…

RISC-V知识点目录

分支预测 分支预测概述https://blog.csdn.net/zhangshangjie1/article/details/136947089?sharetypeblogdetail&sharerId136947089&sharereferPC&sharesourcezhangshangjie1&spm1011.2480.3001.8118分支指令的方向预测https://blog.csdn.net/zhangshangjie1/a…

如何革新源代码保密?七大方法教你应对!

在数字化时代&#xff0c;源代码的安全保密对于企业而言至关重要&#xff0c;它不仅关系到企业的核心竞争力&#xff0c;还涉及到知识产权的保护。源代码一旦泄露&#xff0c;可能会给企业带来无法估量的损失。因此&#xff0c;采取有效的源代码保密措施&#xff0c;是每个企业…

【电路】1.3 电功率和能量

1.3 电功率和能量 电是一种能量存在形式。 1.3.1 电压的定义 将单位正电荷由A点移动至B点&#xff0c;电场力所做的功是 w w w&#xff0c;则 u A B d w d q u_{AB}\frac{dw}{dq} uAB​dqdw​&#xff0c; w w w是功&#xff0c; q q q是电荷量从A到B&#xff0c;沿着任意路…

D3.js中国地图可视化

1、项目介绍 该项目来自Github&#xff0c;基于D3.js中国地图可视化。 D3.js is a JavaScript library for manipulating documents based on data. It uses HTML, SVG, and CSS to display data. The full name of D3 is "Data-Driven Documents," which means it a…

C++11--列表初始化和声明

统一的列表初始化 { } 初始化 C11引入了统一的 列表初始化&#xff08;Uniform Initialization&#xff09;&#xff0c;这是一种使用大括号 { } 初始化变量和对象的新语法&#xff0c;旨在简化初始化过程并提高代码的可读性和一致性。 这种初始化方式适用于几乎所有类型&am…

轻松掌握IP代理服务器设置方法,网络冲浪更自如

在数字化时代&#xff0c;互联网就像是一片浩瀚的海洋&#xff0c;而IP代理服务器就如同我们在这片海洋中航行的指南针。通过使用代理IP&#xff0c;我们可以更方便地访问全球网络资源&#xff0c;提升网络安全性。本文将为您详细介绍IP代理服务器的设置方法&#xff0c;让您在…

Library介绍(四)

标准单元描述 标准单元主要由以下几个部分构成&#xff0c;分别是引脚电容、power、timing组成。其中引脚电容主要包含input/output pin的电容值。 power主要包含每个pin的leakage power和internal power。 timing主要包括cell的input pin到output pin的rise delay和fall del…

人才画像系统是什么?有哪些功能和作用?

人才画像系统是一种先进的人力资源管理工具&#xff0c;它运用大数据和人工智能技术对员工的多方面特征进行深度分析。系统通过汇聚个人的教育背景、工作经验、技能掌握、性格特质及行为数据等信息&#xff0c;结合数据挖掘和机器学习算法&#xff0c;构建出每位员工的数字化“…

Spring Boot:打造下一代医院管理系统

3系统分析 3.1可行性分析 通过对本医院管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本医院管理系统采用JAVA作为开发语言&#xff0c;Spring Boot框…

【漏洞复现】网动统一通信平台/网动统一通信平台ActiveUC存在任意文件下载

》》》产品描述《《《 网动统一通信平台是采用统一的通信界面&#xff0c;将VoIP电话系统、电子邮件等多种沟通方式融合的企业IT平台。 》》》漏洞描述《《《 网动统一通信平台是采用统一的通信界面&#xff0c;将VoIP电话系统、电子邮件等多种沟通方式融合的企业IT平台。网动统…

原生input实现时间选择器用法

2024.10.08今天我学习了如何用原生的input&#xff0c;实现时间选择器用法&#xff0c;效果如下&#xff1a; 代码如下&#xff1a; <div><input id"yf_start" type"text"> </div><script>$(#yf_start).datepicker({language: zh…

【Maven】依赖管理,Maven仓库,Maven核心功能

Maven 是一个项目管理工具&#xff0c;基于 POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;的概念&#xff0c;Maven 可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件 大白话&#xff1a;Maven 是一个项目管理工…

初始爬虫12(反爬与反反爬)

学到这里&#xff0c;已经可以开始实战项目了&#xff0c;多去爬虫&#xff0c;了解熟悉反爬&#xff0c;然后自己总结出一套方法怎么做。 1.服务器反爬的原因 服务器反爬的原因 总结&#xff1a; 1.爬虫占总PV较高&#xff0c;浪费资源 2.资源被批量抓走&#xff0c;丧失竞争力…

MySQL从0到1基础语法笔记(上)

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;Java Web关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 MySQL笔记&#xff1a; 一、注释&#xff1a; 二、SQL四大类&#xff…

《贪吃蛇小游戏 1.0》源码

好久不见&#xff01; 终于搞好了简易版贪吃蛇小游戏&#xff08;C语言版&#xff09;&#xff0c;邀请你来玩一下~ 目录 Snake.h Snake.c test.c Snake.h #include<stdio.h> #include<windows.h> #include<stdbool.h> #include<stdlib.h> #inclu…

LeetCode 11 Container with Most Water 解题思路和python代码

题目&#xff1a; You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]). Find two lines that together with the x-axis form a container, such that the co…

基于comsol模拟微穿孔板和卷曲通道的混合吸声器低频吸声

研究背景&#xff1a; 具有深亚波长厚度&#xff08;5cm&#xff09;的吸收器对低频声音&#xff08;<500Hz&#xff09;的衰减在噪声控制工程中引起了极大的兴趣。然而&#xff0c;由于低频声音的强穿透性和普通材料的弱固有分散性&#xff0c;这是一项具有挑战性的任务。…

算法知识点————贪心

贪心&#xff1a;只考虑局部最优解&#xff0c;不考虑全部最优解。有时候得不到最优解。 DP&#xff1a;考虑全局最优解。DP的特点&#xff1a;无后效性&#xff08;正在求解的时候不关心前面的解是怎么求的&#xff09;&#xff1b; 二者都是在求最优解的&#xff0c;都有最优…