0
点赞
收藏
分享

微信扫一扫

手机怎样改网络ip地址?内容详尽实用

比赛地址
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",
printf("您输入的整数是: %d\n", intVar);

// 输入浮点型
scanf("%f",
printf("您输入的浮点数是: %.2f\n", floatVar);

// 输入双精度浮点型
scanf("%lf",
printf("您输入的双精度浮点数是: %.2lf\n", doubleVar);

// 输入字符型
scanf("%c",
printf("您输入的字符是: %c\n", charVar);

// 输入 long 类型
scanf("%ld",
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",
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=2

int 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
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",
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",
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",
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",
while(n--){
int a;
int b;
scanf("%d %d",
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",
printf("%d\n",a+b);
}
int main(){
int n;
scanf("%d",
while(n--){
solve();
}
}

E

判断

/*
* Author: Dduo
* Date: 2024-10-8
* Description: 新生培训day1
*/


#include<stdio.h>
int main(){
int a,b;
scanf("%d",
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",
b = a % 100;

switch (b) {
case 3: // fall into spring
case 4:
case 5:
printf("spring\n");
break;
case 6: // fall into summer
case 7:
case 8:
printf("summer\n");
break;
case 9: // fall into autumn
case 10:
case 11:
printf("autumn\n");
break;
case 12: // winter case
case 1:
case 2:
printf("winter\n");
break;
default:
// If b is not in the range of 1 to 12, you can handle it here
break;
}

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",

while (t-- > 0) {
solve();
}

return 0;
}

void solve() {
int n;
scanf("%d",

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", // 注意空格以处理前导空格
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;
}
举报

相关推荐

0 条评论