新生培训 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.xdnf.cn/news/1557423.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

论文速读:基于渐进式转移的无监督域自适应舰船检测

这篇文章的标题是《Unsupervised Domain Adaptation Based on Progressive Transfer for Ship Detection: From Optical to SAR Images》基于渐进式转移的无监督域自适应舰船检测:从光学图像到SAR图像&#xff0c;作者是Yu Shi等人。文章发表在IEEE Transactions on Geoscience…

TDesign - 腾讯出品的企业级开源设计系统越发成熟稳定,支持 Vue3 / 小程序,适合开发企业中后台和移动应用

TDesing 发展越来越好了&#xff0c;出了好几套组件库&#xff0c;很成熟稳定了&#xff0c;新项目完全可以考虑使用。 早在2021年&#xff0c;腾讯的 TDesing 刚发布不久&#xff0c;我就写了一篇简短的文章来介绍&#xff0c;当时主要关注的是 TDesign 的 Vue 组件库和用来搭…

计算机基础知识:计算机中丢失 msvcr110.dll怎么修复?

1. msvcp110.dll 介绍 1.1 定义&#xff1a;Microsoft Visual C 2012的一部分 msvcp110.dll是Microsoft Visual C 2012 Redistributable Package的一部分&#xff0c;这是一个运行时库文件&#xff0c;包含了Microsoft Visual C 2012编译器所构建程序所需的函数和资源。 1.2…

大数据ETL数据提取转换和加载处理

什么是 ETL&#xff1f; 提取转换加载&#xff08;英语&#xff1a;Extract, transform, load&#xff0c;简称ETL&#xff09;&#xff0c;用来描述将资料从来源端经过抽取、转置、加载至目的端的过程。ETL一词较常用在数据仓库&#xff0c;但其对象并不限于数据仓库。 ETL&…

Ansys Speos | 智能手环心率传感器仿真

在本例中&#xff0c;我们将使用Ansys Speos和Ansys Motion模拟具有动态运动的智能带光学心率传感器。通过Ansys Motion模拟智能手环的位移和人体手腕组织的变形&#xff0c;然后将位移和变形数据导入Speos&#xff0c;最后在Ansys Speos中&#xff0c;用模拟智能手环位移和人体…

视频合并与封面添加:打造独特视频作品的指南

在视频创作领域&#xff0c;将多个视频片段合并成多个完整的作品&#xff0c;并为其添加统一的封面图片&#xff0c;是提升视频专业度和吸引力的有效方法。 1打开软件&#xff0c;在界面功能栏里切换到“嵌套合并”版块上 2在设置视频封面中选择“使用随机封面”&#xff0c;并…

二叉树——左叶子节点之和

以目前所学的知识而言&#xff0c;对于二叉树涉及递归相关的问题&#xff0c;一般需要设定两个返回条件&#xff1a; 1、二叉树左子树或右子树遍历完后&#xff0c;即节点为NULL时需要返回。 2、当前节点满足题目要求时&#xff0c;需要对相应参数做出改变&#xff0c;或是直…

同城美容美发一站式到店上门服务系统小程序源码

&#x1f486;‍♀️同城美容美发一站式到店上门服务&#xff1a;美丽&#xff0c;就该如此便捷&#x1f487;‍♂️ &#x1f3e0;一、同城服务&#xff0c;触手可及的美丽 在繁忙的都市生活中&#xff0c;我们总是在寻找那份触手可及的美丽。而“同城美容美发一站式到店上门…

OpenCV高级图形用户界面(1)创建滑动条函数createTrackbar()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 创建一个滑动条并将其附加到指定的窗口。 该函数 createTrackbar 创建一个具有指定名称和范围的滑动条&#xff08;滑块或范围控制&#xff09;…

0基础做微信扫码点餐小程序,开发一款餐饮点餐软件收银系统

扫码点餐小程序收银系统是一种现代化的餐饮管理工具&#xff0c;它结合了移动互联网技术和餐饮业务需求&#xff0c;为餐厅提供了高效、便捷的点餐、收银和管理服务。以下是对该系统的详细介绍和功能解析&#xff1a; 一、系统介绍 扫码点餐小程序收银系统通常由系统后台、手…

JS设计模式之职责链模式:优雅地处理请求流程

一. 前言 在前端开发中&#xff0c;我们经常会遇到需要按照一定的顺序处理一系列请求或操作的情况&#xff0c;如果将每一步处理都硬编码在一起&#xff0c;会导致代码臃肿&#xff0c;可维护性和可扩展性都会大大降低。而职责链模式恰好提供了一种优雅的解决方案。 无论你是…

大模型面试八股+答案,LLM-offer手到擒来!

你是否也曾为面试大模型八股文而苦恼&#xff1f;别担心&#xff01;今天我就来给你分享一些绝妙的面试技巧&#xff0c;让你轻松应对&#xff01; &#x1f50d; 第一关&#xff1a;了解题目 首先&#xff0c;一定要仔细阅读题目&#xff0c;理解清楚每个要求。明确问题的关键…

字母数字图像分割系统源码&数据集分享

字母数字图像分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-Faster-EMA&#xff06;yolov8-seg-C2f-DiverseBranchBlock等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目…

硬件-PCB-叠层设计(四层板六层板)

文章目录 一&#xff1a;简介二&#xff1a;多层电路板结构三 PCB叠层设计的内容3.1 叠层设计的基本原则3.2 叠层设计的准备工作 四 六层PCB叠层方案介绍4.1 介绍常见的六层叠层结构并分析其优缺点 五 方案选择5.1 方案一&#xff1a;S-G-S-S-P-S5.2 方案二&#xff1a;S-S-G-P…

夹耳式耳机值得购买吗?这一篇文章扫清耳夹式耳机盲点!

近年来&#xff0c;夹耳式耳机备受很多人喜爱。主要原因在于这种耳机不入耳&#xff0c;既能保护我们的听力健康&#xff0c;又能让我们享受到极致的音乐体验。久而久之&#xff0c;人们反而对入耳式耳机戴着感到不习惯了。然而&#xff0c;一些想要入手夹耳式耳机的小伙伴却犯…

老板员工必看:钉钉聊天记录可以被监控吗?答案你万万想不到!

如今&#xff0c;无论是办公室还是居家远程工作&#xff0c;钉钉已经成为了许多公司不可或缺的沟通工具。 老板们依靠它安排工作、传递任务&#xff0c;员工们用它互相协作、讨论项目。可是&#xff0c;你有没有想过&#xff0c;钉钉聊天记录可以被监控吗&#xff1f; 答案可…

BP实战minist数据集

目录 前言 一、MNIST数据集介绍和加载 1.MNIST数据集介绍 2.加载数据集MNIST数据集 二、构建 BP 网络模型 1.神经网络结构图示 2.BP 网络模型代码解释 三、定义和训练BP 网络模型 四、训练结果 总结 前言 在当今人工智能与机器学习飞速发展的时代&#xff0c;神经网络…

SPI主从通讯稳定性之解决方法

在使用SPI通讯时&#xff0c;将硬件SPI用作主机的比较多&#xff0c;程序设计也比较容易&#xff0c;但是&#xff0c;若将硬件SPI用作从机了&#xff0c;网上的案例就比较少了&#xff0c;因为大家都有一个习惯&#xff0c;实在实现不了&#xff0c;就用软件模拟SPI来完成通讯…

函数式接口在Java中的应用与实践

1. 引言 函数式接口是Java 8引入的一个概念&#xff0c;它是指只有一个抽象方法的接口。函数式接口可以被用作lambda表达式的目标类型。在函数式接口中&#xff0c;除了抽象方法外&#xff0c;还可以有默认方法和静态方法。 函数式接口的引入是为了支持函数式编程&#xff0c…

Java项目: 基于SpringBoot+mybatis+maven+vue网上摄影工作室(含源码+数据库+任务书+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmavenvue网上摄影工作室 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、…