计协编程组C语言第一次培训(1.17)

2023-10-29 06:30

本文主要是介绍计协编程组C语言第一次培训(1.17),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

目录

初识C语言

一、字符类型

1、char字符类型

2、int字符类型

3、float单精度浮点型

4、double双精度浮点型

5、short短整型

6、long长整型

二、变量的初始化和赋值

1、赋值

2、初始化

2、变量的类型

练习:交换变量a,b

三、变量知识点补充

1、数据类型bool

2、常用的数据类型表示范围

3、浮点数的几个注意事项

4、强制类型转换

5、宏常量和const常量

练习2: 

四、运算表达式

五、判断

1、如果if

2、否则else

3、逻辑判断符优先级

练习3:




初识C语言

Hello world!

一、字符类型

1、char字符类型

a,b,c,@,#,$

2、int字符类型

1,2,3,4

3、float单精度浮点型

1.1,1.3

(1)浮点数的打印方式
ctrl + /:注释
1.直接打印(默认小数点后六位)

2.指定打印的位数   %.?f

 

4、double双精度浮点型

5、short短整型

表示值小的

6、long长整型

表示更大的值

 

m确定位宽,n显示输出小数

 

 

二、变量的初始化和赋值

1、赋值

在这里插入图片描述

不是每定义了一个变量都要给他赋初始值。
有些中间变量,只需要当成存储器就好了,不需要赋值。
C语言中,变量必须满足先定义,再使用。

int x,y;
scanf("%d",&x,&y);

注意“=”与“==”的差别!!!

如果写成if (x=0)那所有输出都是0

所以一定要注意!!== 才是真正的等于= 是从右向左

2、初始化
 

1、赋值的三种方式
(1)变量

int a=3,b=4,c;c=b;

(2)表达式赋值

int a=6,b=7,c;c=9+14;

(3)值

int a=6,b=7,c;c=9;

2、变量的类型

(1)局部变量
局部变量和全局变量重名时,局部变量的优先级高于全局变量

(2)全局变量

全局变量能在函数中直接被改变

全局变量必须定义在我们需要用它的函数体之前

 

  

#include <stdio.h>
int a=10 //全局变量
int main(){int b,c=10;b=a+c;//b局部变量

练习:交换变量a,b

#include <stdio.h>
int main()
{int a,b,c;a=10;b=4;printf("交换前a的值%d,b的值%d\n",a,b);c=a;a=b;b=c; printf("交换后a的值%d,b的值%d\n",a,b);return 0;
}

三、变量知识点补充

1、数据类型bool

C语言用0表示假,用非零(不一定是1)来表示真

2、常用的数据类型表示范围

int :10^9

long:10^9

long long:10^18

float:可以精确表示小数点后六位数字,但是六位过后就可能出现错误(举个例子)
double:可以精确到小数点后15位数字

 

 

 

 

3、浮点数的几个注意事项

1)比较两个浮点数

如果两个浮点数都是由常数直接赋值,这样比较不会出现错误(因为机器识别可能与人不同)

2)浮点数的精度问题

%f默认就是%.6f

3)浮点数的除法

两个数进行除运算
如果其中全是整数,除法相当于整除
只要其中有浮点数,结果就是准确的

#include <stdio.h>
int a=10;
int main(){int  a=5;float b=2;//换成2.0,结果就是2.500000float c=a/b;printf("%f",c);
}

4)自动类型转换

计算中,要求操作数必须有相同的大小和存储方式,

例如,由于各操作数大小不同,硬件不能将== char 型( 1 字节)数据与 int 型( 2 或 4 字节)==数据直接参与运算;

由于存储方式的不同(整型使用的是原,反,补,码进行存储,浮点型使用的是IEEE754标准进行存储),也不能将 int 型数据与 float 型数据直接参与运算。
(char和int),(整数:原反补)(小数:IEEE754标准),这些不能进行运算。

C语言,表达式中如果出现不同的类型进行运算,较低类型将向较高类型转换(较低类型就是所占字节数少的类型,反之。)

5)当操作数重没有double类型时

当 char、short 出现在表达式中参与运算时,一般将其自动转换为 int 类型。
(注意char要加‘ ’)

#include <stdio.h>
int a=10;
int main(){int a;short b=1;a='a'+b+10;printf("%d",a);
}

char 引入字符串

6)当操作数中含有浮点型数据(float 或 double)时

所有操作数都将转换为 double 型。(选择题)

7)如果赋值的时候,两侧的变量类型不一致

精度改变会将右边的类型转换为左边的类型,可能使右边的数据精度增加,也可能使精度降低

比如增大精度

double a;
a=5.0

 降低精度

int a;
a=1.123456

程序出错

右值超出了左值的类型范围,结果可能无意义

#include <stdio.h>
int a=10;
int main(){char  a='a';int b=1234567890;short c=b;printf("%d",c);}

4、强制类型转换

格式

(目标类型)表达式

	float a;a=1.235;printf("%d",(int)a);

//(int)a

5、宏常量和const常量

1)宏常量

#include <stdio.h>
#define PI 3.14159  //后面千万不可以加分号
#define R 5.3  //用大写表示
int main(){printf("S=%f\n",PI*R*R);printf("L=%f\n",2*PI*R);return 0;
}

格式为:#define 标识符 字符串

标识符一般全大写,字符串不分数据类型

                                     一定注意不要加分号在后面,会引起语法错误

2)const常量

可以显示出引入常量的数据类型

const double pi=3.14159;
const double r=5.3;

练习2: 

#include <stdio.h>
int main()
{int a=11;float x=2.8,y=5.7;int b,c,e,f,g,h;b=(int)(x+y);c=a%3;printf("%d\n",c);e=c*b;printf("%d\n",e);f=e%2;printf("%d\n",f);g=f/4;printf("%d\n",g);h=x+g;printf("%d\n",h);return 0;
}

我输出的答案是2,不知道答案对不对。

四、运算表达式

自增自减运算符:

a++;(a=a-1)                            a--;(a=a+1)

二元运算符:

a+=1;(a=a+1)                       a*=2;(a=a*2)其他的符号类比

逻辑运算符(二元运算符)
&&(逻辑与)、||(逻辑或)

C语言中, 0为假, 1为真

 

 

//判断是否是闰年(能被四整除,不能被一百整除,能被400整除) 
#include <stdio.h>
int main()
{int y;int n=0;n=scanf("%d",&y);if(n==1){if(y<=0){printf("不是闰年!\n");}else if(y%4==0 && y%100!=0 || y%400 == 0){printf("%d 是闰年!\n",y);}else{printf("不是闰年!\n");}}else{printf("不是闰年!\n");}return 0; 
}

 

五、判断

(详见第二篇博客)

1、如果if

if(判断条件){

条件成立:执行语句

}

判断条件非零就是成立,为零则不成立

2、否则else

3、逻辑判断符优先级

1)从左向右进行判断

2)==和!=优先级比其他符号低

练习3:

输入三个数a,b,c,比较输出其中的最大值

#include <stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);if(a>b){if(a<c){printf("%d",c);}else{printf("%d",a);}}else{if(b<c){printf("%d",c);}else{printf("%d",b);}}
return 0;
}

想不到更简单的办法了

思考题:数的倒置

输入一个数(12345678),输出这个数的倒置(87654321

#include <stdio.h>
int main()
{int n,i;scanf("%d",&n);int b=0;while(n>0){i=n%10;b=b*10+i;n=n/10;}printf("倒置后为:%d\n",b);return 0;
}

这道题还是要思考一下,怎么表示出来那个倒置的数吧,因为我也想到取余这个方法,但是就是一直卡在怎么才能让它完全表示出来,b=b*10+i就很巧妙

写程序就是要逻辑通,然后自己不停的试

这篇关于计协编程组C语言第一次培训(1.17)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298853

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.