首页 > 其他分享 >C语言数据运算

C语言数据运算

时间:2024-05-26 11:29:31浏览次数:23  
标签:运算 ++ C语言 运算符 填空 数据 表达式 函数

第1关:输入三个整数,求它们的和及平均值。

任务描述

本关任务:设计一个程序,输入三个整数,求它们的和及平均值。

相关知识

为了完成本关任务,你需要掌握:算术运算、域宽控制。

算术运算

C语言的算术运算符有以下几种: ① +——加法运算符,如3+5。 ② -——减法运算符或负值运算符,如5-2,-3。 ③ ——乘法运算符,如35。 ④ /——除法运算符,如5/3,5.0/3。 ⑤ %——模运算符或求余运算符,如7%4的值为3。 ⑥ ++——自增1。 ⑦ --——自减1。 除了负值运算符是单目运算符外,其它都是双目运算符。

两个数相除,如果这两个数都是整数,所得的结果是商的整数部分;如果有一个是实数,结果的类型为实数型。

域宽控制

对于 printf 函数,域宽是通过在格式化字符串中使用 %Nd 的形式指定的,其中 N 是域宽的数值,而 d 表示输出的数据类型(d 表示整数,f 表示浮点数,s 表示字符串等等)。例如,%5d 表示输出一个 5 位的整数,如果输出的整数不足 5 位,则在前面补足空格。同样的,%05d 表示输出一个 5 位的整数,如果输出的整数不足 5 位,则在前面补足 0。 对于 scanf 函数,用十进制整数指定输入的宽度(即字符数)。 例如:scanf("%5d",&a); 输入12345678只把12345赋予变量a,其余部分被截去。 又如:scanf("%4d%4d",&a,&b); 输入12345678将把1234赋予a,而把5678赋予b。

编程要求

根据提示,在右侧编辑器 Begin-End 内补充代码,计算并输出三个数的和用平均值,平均值保留 2 位小数。

测试说明

平台会对你编写的代码进行测试:

测试输入:1 2 3 预期输出: sum=6 avg=2.00


开始你的任务吧,祝你成功!

参考代码:

#include<stdio.h>
int main()
{
	int a,b,c,sum;
//=======begin=======
    float avg;
    scanf("%d%d%d",&a,&b,&c);
    sum=a+b+c;
    avg=sum/3.0;
    printf("sum=%d\navg=%.2f",sum,avg);
    
//========end========
    return 0;
}

第2关:求一元二次方程的根,假定存在实根。

任务描述

本关任务:编写求一元二次方程的根的小程序。

相关知识

为了完成本关任务,你需要掌握:

  1. 表达式的书写;
  2. 数学函数的使用。
表达式的书写

表达式是使用运算符连接起来的式子,C 语言中的表达式有以下几种:

  1. 算数运算符+ - * / %
  2. 赋值运算符+= -= *= /= %=
  3. 自增、自减 ++ -- 
    a++ 为先使用 a,然后在进行 a=a+1 的运算,而 ++a 为先 a=a+1,然后再使用 a,这个时候 a 的值已经不是原来的a了,而是a+1。
    int a=1;(a++)*(a++)*(a++)*(a++) 的结果是 24,在进行完上式之后 a 的值是 5
  4. 关系运算符(比较运算符) < > >= <= == !=  关系运算结果为真(1)或假(0),即成立或不成立,对或者错,开或关
    计算机返回表达式成立与否很标准:1(真);0(假)
  5. 逻辑运算符 && || !  表达式1 逻辑运算符 表达式2 &&表达式1 和 表达式2 同时成立,即同时为 1 时返回值为 1,否则返回 0,也就是假。
    || :表达式1 和表达式2中有一个成立,则返回值为真,返回 1,否则返回 0,即假。
     : !表达式1 如果表达式成立则返回假也就是 0,如果不成立则返回真即 1。  的优先级比较高,仅此于 ()
  6. 位运算符  & | >> << a<<n 相当于给一个变量乘 2 的 n 次方,a>>m 相当于 a 除以 2 的 n 次方。
  7. 三目运算符 表达式1?表达式2:表达式3 c=a>b? a:b 意思是如果 a>b,那么 c=a,否则 c=b。相当于cifc判断。
  8. sizeof(表达式)用来获取表达式结果的类型在内存中存储所占用的字节数,sizeof() 的结果是 unsigned long ,在使用 printf 打印时占位符是 %lu
数学函数的使用

要在 C 语言中使用数学函数,首先需要添加头文件 math.h。 一、基本的数学运算 C 语言中提供了四个基本的数学运算函数,分别是加法函数、减法函数、乘法函数和除法函数。这些函数的使用方法如下:

  1. 加法函数使用“+”符号进行加法运算
  2. 减法函数使用“-”符号进行减法运算
  3. 乘法函数使用“”符号进行乘法运算
  4. 除法函数使用“/”符号进行除法运算

二、其他常见的数学运算 C 语言中提供了:

  1. 幂运算函数 pow,用于计算一个数的幂。其使用方法如下 double pow(double x, double y); 其中,x 表示底数,y 表示指数。函数的返回值为 xy 次幂。

  2. sqrt() 的用法: 计算一个非负实数的平方根

  3. 取整函数 ceil double ceil(double x); 该函数用于向上取整,即将一个浮点数向上舍入为接近的整数

编程要求

根据提示,在右侧编辑器 Begin-End 部分补充代码,输出要求值。

测试说明

平台会对你编写的代码进行测试: 输入三个系数 测试输入:1 -3 2 预期输出: x1=2.00 x2=1.00


开始你的任务吧,祝你成功!

参考代码:

#include<stdio.h>
//=======begin=======
#include<math.h>
int main()
{
	float a,b,c,d,x1,x2;
	scanf("%f%f%f",&a,&b,&c);
    d=b*b-4*a*c;
    if (d>0){
        x1=(-b+sqrt(d))/(2*a);
        x2=(-b-sqrt(d))/(2*a);
    }
    
	printf("x1=%.2f\n",x1);
	printf("x2=%.2f\n",x2);
    //========end========
	return 0;
}

第3关:阅读并运行程序,掌握表达式的用法。

任务描述

本关任务:阅读并运行程序。


开始你的任务吧,祝你成功!

  • 1、阅读并运行程序,掌握算术表达式的用法。

    ,

    运行结果是:▁▁▁▁▁

    填空1答案:72.500000

  • 2、程序

    ,

    运行结果是 log(a)=▁▁▁▁▁ log10(100)=▁▁▁▁▁ exp(1)=▁▁▁▁▁ sin(PI/2)=▁▁▁▁▁

    填空1答案:0.999999

    填空2答案:2.000000

    填空3答案:2.718282

    填空4答案:1.000000

  • 3、完善并运行程序,理解赋值运算。理解程序执行的功能:不借助于中间变量实现交换两个变量的值。 int main() { int a=5, b=3; printf("a=%d, b=%d\n", a, b); a+=b; ▁▁▁▁▁; ▁▁▁▁▁; printf("a=%d, b=%d\n", a, b); return 0; }

    填空1答案:b=a-b

    填空2答案:a=a-b

  • 4、运行程序 #include <stdio.h> #include <math.h> int main(void) {
    printf("%f\n",pow(1.01,365)); printf("%f\n",pow(0.99,365)); return 0; } 输出结果是 ▁▁▁▁▁ ▁▁▁▁▁ 从结果中想到什么?请在评论区发言。

    填空1答案:37.783434

    填空2答案:0.025518

第4关:阅读并运行程序,理解输出、输入函数相关特点。

任务描述

本关任务:阅读并运行程序,理解输出、输入函数相关特点。


开始你的任务吧,祝你成功!

  • 1、

    阅读并运行程序,理解printf()函数输出列表中各输出项的运算顺序是从右到左,进一步理解自增、自减运算,注意VC编译系统的特点。

    ,

    运行结果是: ▁▁▁▁▁ ▁▁▁▁▁ ▁▁▁▁▁

    填空1答案:2,2

    填空2答案:3,0

    填空3答案:1,3

  • 2、

    按要求运行程序,理解使用scanf()时,正确输入与错误输入时,返回值代表的含义。

    ,

    输入12(回车),结果是:▁▁▁▁▁ 再运行一次,输入d(回车),结果是:▁▁▁▁▁

    填空1答案:1

    填空2答案:0

第5关:阅读并运行程序,理解运算符优先级的结合性及运算顺序。

任务描述

本关任务:阅读并运行下述两个程序,理解运算符优先级的结合性及运算顺序。

相关知识

为了完成本关任务,你需要掌握:

  1. 优先级;
  2. 结合性;
  3. 自增、自减运算符。
优先级

在表达式中,优先级较高的先于优先级较低的进行运算。44 个运算符优先级如下,从上到下优先级降低。 ① 初等 4 个:( )[ ]->(指向结构体成员)、.(后跟结构体成员)。 ② 单目 9 个:!~++---(表示负号)、(类型)*(表示指针)、&(表示取地址)、sizeof(表示长度)。上面的“(类型)”表示强制类型转换。 ③ 算术 5 个:*/%+-(表示减号)。 ④ 位移 2 个:<<>>。 ⑤ 关系 6 个:<<=>>===(表示等于)、!=(表示不等于)。 ⑥ 位逻 3 个:&(表示按位与)、^ (表示按位异或) 、| (表示按位或)。 ⑦ 逻辑 2 个:&&(表示逻辑与)、||(表示逻辑或)。 ⑧ 条件 1 个:? :。 ⑨ 赋值 11 个:=+=-=*=/=%=>>=<<=&=、^=|=。 ⑩ 逗号 1 个:,

在编写包含多个运算符的表达式时,应当注意各个运算符的优先级,确保表达式中的运算符能以正确的顺序参与运算。对于复杂表达式,为了清晰起见,可以加圆括号“()”强制规定计算顺序。

结合性

在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理:对于左结合性(结合方向自左向右),运算对象先与左面的运算符结合;对于右结合性(结合方向自右向左),运算对象先与右面的运算符结合。 结合方向自右向左的只有三类:赋值、单目和三目,其他都是自左向右。

自增、自减运算符

作用是使变量的值增 1 或减 1,如:++i(--i)的作用是,在使用 i 之前,先使i的值加 1(减1)i++(i--) 的作用是,在使用 i 之后,使 i 的值加 1(减1)。 粗略地看,++ii++ 的作用相当于 i=i+1。但 ++ii++ 不同之处在于 ++i 是先执行 i=i+1 后,再使用 i 的值;而 i++ 是先使用 i 的值后,再执行 i=i+1。如果i的原值等于 3,则执行下面的赋值语句: j1=++i; j2=i++; 对于前者,i 的值先变成 4,再赋给 j1j1 的值为 4;对于后者,先将 i 的值 3 赋给 j2j2 的值为 3,然后 i 变为 4


开始你的任务吧,祝你成功!

1、

阅读并运行下述两个程序,理解运算符优先级的结合性及运算顺序。

,

运行结果是: b=▁▁▁▁▁ c=▁▁▁▁▁ d=▁▁▁▁▁

,

运行结果是: ▁▁▁▁▁ ▁▁▁▁▁ ▁▁▁▁▁ ▁▁▁▁▁

填空1答案:2

填空2答案:10

填空3答案:0

填空4答案:21

填空5答案:20

填空6答案:24

填空7答案:-1

标签:运算,++,C语言,运算符,填空,数据,表达式,函数
From: https://blog.csdn.net/Rainymiss/article/details/139199206

相关文章

  • 全免费的数据恢复工具哪个好?分享2024年性价比超高的12款数据恢复软件!
    当您丢失重要文件时,您应该可不想遇到措手不及的情况吧?相反,您需要在系统中使用一些可靠的数据恢复软件,但是全免费的数据恢复工具哪个好呢?别担心,本文将帮助您选择最适合您的解决方案。如何挑选一款合适的数据恢复软件?性能和多功能性:挑选具有高性能的多功能数据恢复软件,它支持......
  • 【从0到1学习Redis】数据类型 — String
    首先要先启动好服务,使用redis-cli进入到客户端。自增、自减和相加减操作自增1INCR自减1DECR步长i+=INCRBY字符串范围range截取GETRANGE替换SETRANGE是否存在设置过期时间setex(setwithexpire)不存在时再设置(在分布式锁中常常会使用!)setnx(set......
  • 【Java学习】第39节:基础数据结构(二):链表
    目录1. 链表1)概述2)单向链表3)单向链表(带哨兵)4)双向链表(带哨兵)5)环形链表(带哨兵)习题E01.反转单向链表-Leetcode206E02.根据值删除节点-Leetcode203E03.删除倒数节点-Leetcode19E04.有序链表去重-Leetcode83E05.有序链表去重-Leetcode82E06.合......
  • python pandas DataFrame-A 更新 DataFrame-B中指定列相同的数据
    假设现在有两个dataframe,分别是A和B,它们有相同的列text和label。现在想使用B的label来更新A的label,基于它们共同的text。importpandasaspd#SampleDataFramesAandBdata_A={'text':['text1','text2','text3','text4'],'label':[1......
  • Django和MySQL与Vue项目之间的数据是如何流动实现交互响应的
    在一个前后端分离的Django和Vue项目中,Django作为后端,MySQL作为数据库,Vue作为前端,数据的流动和交互可以通过API来实现。以下是数据流动的过程及交互的详细说明:1.数据流动过程概述前端发送请求:Vue应用通过HTTP请求向Django后端发送数据请求(例如获取、创建、更新或删除数据)。后......
  • cBioPortal 数据库 API 使用
    cBioPortal数据库API使用文章目录cBioPortal数据库API使用前言RPythoncBioPortalData1.数据结构2.API3.可视化3.1绘制K-M生存曲线3.2展示样本数最多的20种癌型3.3展示突变频率最高的20基因Python1.基本使用获取基因信息获取样本信息获取临床信息......
  • 纸质名片变成结构化数据:浅析OCR名片识别技术的原理与应用
    OCR名片识别技术,如同一位高效的文字翻译官,巧妙地将名片上的文字信息翻译成可编辑、结构化的电子数据。它凭借光学字符识别的智慧,历经图像采集、文字提取、识别算法、结果结构化及人工智能技术的融合等精妙步骤,实现了对名片文字的自动化解码与转化。首先,图像采集作为OCR名片识......
  • 人工智能+跨癌种分析,能否解决医学数据样本量小的问题?【医学AI|顶刊速递|05-26】
    小罗碎碎念先说明,目前小罗只是硕士,以下个人观点很有可能不准确,欢迎批评指正!!小罗虚心听取有益建议!!众所周知,医学数据相比于其他领域的数据来说,属于小样本数据。那么从工科角度出发,模型的预测效果要想更精准,那么数据量就要尽可能大。好的,既然要解决的问题已经明确了,那么怎......
  • TalkingData数据统计
    TalkingData是一家专注于大数据分析和应用的公司,提供移动应用统计和分析服务。其数据统计工具广泛应用于各类移动应用和游戏中,帮助开发者和企业深入了解用户行为、优化产品和提升运营效率。以下是关于TalkingData数据统计的一些详细信息:###1.核心功能####1.1用户分析......
  • 计算机毕业设计项目推荐,82131基于SSM的流浪动物救助网站的设计与实现(开题答辩+程序定
    SSM流浪动物救助网站摘要随着生活水平的持续提高和家庭规模的缩小,宠物已经成为越来越多都市人生活的一部分,随着宠物的增多,流浪的动物的日益增多,中国的流浪动物领养和救助也随之形成规模,同时展现巨大潜力。本次系统的是基于SSM框架的流浪动物救助网站管理系统,平台用户可以......