燕山大学23级经济管理学院 10.18 C语言作业
燕山大学23级经济管理学院 10.18 C语言作业
文章目录
- 燕山大学23级经济管理学院 10.18 C语言作业
- 1
- C语言的基本数据类型主要包括以下几种:
- 为什么设计数据类型?
- 数据类型与知识体系的对应
- 使用数据类型时需要考虑的因素
- 2
- 1. 逻辑运算符
- 2. 真值表
- 3. 硬件实现
- 4. 应用场景
- 3
- 代码
- 运行截图
- 4
- 代码
- 运行截图
- 5
- 代码
- 运行截图
1
了解C语言所有的基本的数据类型。考虑为什么计算机要设计数据类型?对比计算机数据类型与我们已知的知识体系的什么是相关的,对应的。有什么异同?针对这些异同,当我们在计算机编程中使用数据类型的时候,你认为需要考虑什么?
C语言的基本数据类型主要包括以下几种:
-
整型(int):用于表示整数,通常占用4个字节(32位)。
-
字符型(char):用于表示单个字符,通常占用1个字节(8位)。
-
短整型(short):用于表示较小的整数,通常占用2个字节(16位)。
-
长整型(long):用于表示较大的整数,至少占用4个字节(32位),在某些系统中可能占用8个字节(64位)。
-
长长整型(long long):用于表示更大的整数,至少占用8个字节(64位)。
-
浮点型(float):用于表示带小数的数,通常占用4个字节。
-
双精度浮点型(double):用于表示更高精度的带小数的数,通常占用8个字节。
-
无符号整型(unsigned int、unsigned short、unsigned long、unsigned long long):这些类型用于表示非负整数,其范围从0开始,具体大小取决于对应的有符号类型。
这里查书,看看老师讲解的是否有第8个类型!
为什么设计数据类型?
计算机设计数据类型是为了:
- 内存管理:不同的数据类型占用不同的内存空间,计算机需要知道数据的类型以有效地分配和管理内存。
- 数据处理:数据类型决定了如何处理和操作数据。比如,整型可以进行加法和减法,浮点型可以进行小数运算。
- 类型安全:通过明确的数据类型,减少了类型不匹配的错误,确保程序运行的正确性。
数据类型与知识体系的对应
相似性:
- 数据类型在计算机中与数学中的数值类型、集合等概念相似。
- 在日常生活中,数据类型类似于物品的分类,比如:整数像是有数量的物品,字符像是标签。
相同点
- 分类:两者都涉及对信息的分类。例如,计算机将数据分为整型、字符型等,而知识体系将信息分为概念、类别等。
- 属性:计算机数据类型有特定的属性(如大小、范围),而知识概念也有定义和特征。
不同点
- 灵活性:计算机数据类型是固定的,定义明确,而知识体系中的概念可以更为灵活和抽象,可能会随上下文而变化。
- 处理方式:计算机对数据的处理基于明确的规则和运算,而知识体系中的概念理解可能依赖于主观判断和经验。
- 精度与安全性:计算机数据类型的转换可能导致精度丢失,反之,知识体系中的概念转换通常不会出现类似问题。
使用数据类型时需要考虑的因素
- 选择合适的数据类型:根据所需的范围和精度选择合适的类型,避免不必要的内存浪费或溢出。
- 类型转换:了解不同数据类型之间的转换规则,避免因转换错误导致程序异常。
- 性能:不同数据类型的运算性能可能有所不同,考虑在性能敏感的应用中使用合适的类型。
- 可读性和维护性:选择清晰、易于理解的数据类型,有助于提高代码的可读性和可维护性。
2
除了数学运算,计算机还可以进行逻辑运算?那么计算机如何进行逻辑运算?逻辑运算可以帮助我们处理哪些问题?请你举几个现实例子。
计算机进行逻辑运算的方式通常涉及布尔代数,通过逻辑运算符和逻辑电路实现。以下是如何进行上述逻辑运算的具体方法:
1. 逻辑运算符
在编程中,逻辑运算通常通过特定的运算符来表示,常见的有:
- 与(AND):
&&
- 或(OR):
||
- 非(NOT):
!
- 异或(XOR):通常在编程中使用
^
,但在某些语言中需要自定义实现。 - 与非(NAND):可以通过组合运算实现,即
!(A && B)
。 - 或非(NOR):同样可以通过组合运算实现,即
!(A || B)
。 - 同或(XNOR):可以通过
!(A ^ B)
实现。
2. 真值表
逻辑运算的结果可以通过真值表来表示,以下是每种运算的真值表示例:
-
与(AND)
A B A AND B true true true true false false false true false false false false -
或(OR)
A B A OR B true true true true false true false true true false false false -
非(NOT)
A NOT A true false false true -
异或(XOR)
A B A XOR B true true false true false true false true true false false false -
与非(NAND)
A B A NAND B true true false true false true false true true false false true -
或非(NOR)
A B A NOR B true true false true false false false true false false false true -
同或(XNOR)
A B A XNOR B true true true true false false false true false false false true
3. 硬件实现
在计算机硬件层面,逻辑运算通过逻辑门(如与门、或门、非门等)来实现。每个逻辑门根据输入的电平(高电平或低电平)执行相应的逻辑运算,并输出结果。
4. 应用场景
- 条件判断:如在
if
语句中使用逻辑运算来决定程序执行的路径。 - 循环控制:使用逻辑运算来判断循环是否继续。
- 状态管理:在复杂应用中,根据多个条件判断系统状态或用户权限。
逻辑运算可以帮助我们处理多种现实问题,以下是几个例子:
- 用户登录验证:在网站中,逻辑运算用于检查用户名和密码是否正确。例如,只有当用户名存在且密码匹配时,用户才能登录。
- 购物车结算:在电商平台,逻辑运算可以用于检查用户是否符合优惠条件,比如“如果用户是会员并且购物满100元,则可以使用折扣”。
- 交通信号控制:在交通信号灯系统中,逻辑运算用于控制灯的切换,例如“如果有车辆在检测区且信号灯是红灯,则变为绿灯”。
- 权限控制:在企业内部系统中,逻辑运算用于判断用户是否具有某项操作的权限,如“如果用户是管理员或是特定角色,则可以访问敏感数据”。
这些例子展示了逻辑运算在决策和控制流程中的重要性。
3
S连锁淘宝店共有3家,分别用a,b,c代表。a每天销售额1000元,b每天销售额3000元,c每天销售额2500元,毛利率是75%。
(1)S品牌每天各个店铺的毛利收入是多少钱?总共多少钱?
(2) 销售额分别是15英镑,35英镑,25英镑,毛利率是75%,S品牌每天各个店铺的毛利收入是多少钱?总共多少钱?整数部分是多少钱?
代码
#include <stdio.h> // 包含标准输入输出库int main() {// 问题(1)// 每家店铺的销售额float sales_a = 1000.0; // a店铺每天销售额float sales_b = 3000.0; // b店铺每天销售额float sales_c = 2500.0; // c店铺每天销售额// 毛利率float profit_margin = 0.75; // 毛利率设定为75%// 计算每家店铺的毛利收入float profit_a = sales_a * profit_margin; // a店铺的毛利收入float profit_b = sales_b * profit_margin; // b店铺的毛利收入float profit_c = sales_c * profit_margin; // c店铺的毛利收入// 总毛利收入float total_profit = profit_a + profit_b + profit_c; // 计算总毛利收入// 输出结果printf("问题(1):\n"); // 输出问题提示printf("a店铺毛利收入: %.2f元\n", profit_a); // 输出a店铺的毛利收入printf("b店铺毛利收入: %.2f元\n", profit_b); // 输出b店铺的毛利收入printf("c店铺毛利收入: %.2f元\n", profit_c); // 输出c店铺的毛利收入printf("总毛利收入: %.2f元\n\n", total_profit); // 输出总毛利收入// 问题(2)// 每家店铺的新销售额float sales_a_new = 15.0; // a店铺的新销售额float sales_b_new = 35.0; // b店铺的新销售额float sales_c_new = 25.0; // c店铺的新销售额// 计算新毛利收入float profit_a_new = sales_a_new * profit_margin; // a店铺的新毛利收入float profit_b_new = sales_b_new * profit_margin; // b店铺的新毛利收入float profit_c_new = sales_c_new * profit_margin; // c店铺的新毛利收入// 新总毛利收入float total_profit_new = profit_a_new + profit_b_new + profit_c_new; // 计算新的总毛利收入// 取整部分int integer_part = (int)total_profit_new; // 获取总毛利收入的整数部分// 输出结果printf("问题(2):\n"); // 输出问题提示printf("a店铺毛利收入: %.2f英镑\n", profit_a_new); // 输出a店铺的新毛利收入printf("b店铺毛利收入: %.2f英镑\n", profit_b_new); // 输出b店铺的新毛利收入printf("c店铺毛利收入: %.2f英镑\n", profit_c_new); // 输出c店铺的新毛利收入printf("总毛利收入: %.2f英镑\n", total_profit_new); // 输出新的总毛利收入printf("总毛利收入的整数部分: %d\n", integer_part); // 输出总毛利收入的整数部分return 0; // 返回0,表示程序正常结束
}
运行截图
4
请编程序将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为’C’,’h’,’I’,’n’,’a’,经过运算,使c1,c2,c3,c4,c5分别变为’G’,’l’,’m’,’r’,’e’。分别用putchar函数和printf函数输出这5个字符。
代码
#include <stdio.h> // 包含标准输入输出库// 定义加密函数,用于根据规律加密字母
char encrypt(char c) {// 计算替代字符,使用取模处理字母环绕return (c - 'A' + 4) % 26 + 'A'; // 将字符转换为相应的加密字符
}int main() {// 定义字符变量并赋初值,表示原字符串“China”char c1 = 'C'; // c1初始化为'C'char c2 = 'h'; // c2初始化为'h'char c3 = 'i'; // c3初始化为'i'char c4 = 'n'; // c4初始化为'n'char c5 = 'a'; // c5初始化为'a'// 处理并替代每个字符,进行加密c1 = encrypt(c1 + 32); // 将大写字符'C'转换为小写处理并加密c2 = encrypt(c2); // 对字符'h'进行加密c3 = encrypt(c3); // 对字符'i'进行加密c4 = encrypt(c4); // 对字符'n'进行加密c5 = encrypt(c5); // 对字符'a'进行加密// 使用putchar逐个输出字符putchar(c1); // 输出加密后的c1putchar(c2); // 输出加密后的c2putchar(c3); // 输出加密后的c3putchar(c4); // 输出加密后的c4putchar(c5); // 输出加密后的c5putchar('\n'); // 输出换行符// 使用printf一次性输出所有加密后的字符printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5); // 输出所有字符return 0; // 返回0,表示程序正常结束
}
运行截图
5
用switch语句实现,如下的成绩转换:
A:90-100;B:80-89;C:70-79;D:60-69;E:failed。”
代码
#include <stdio.h> // 包含标准输入输出库int main() {int score; // 定义变量score用于存储用户输入的成绩char grade; // 定义变量grade用于存储转换后的成绩等级// 提示用户输入成绩printf("请输入成绩(0-100):");scanf_s("%d", &score); // 从标准输入读取成绩。这里也可以写“scanf”// 检查输入成绩的范围if (score < 0 || score > 100) { // 如果成绩小于0或大于100printf("成绩输入错误,请输入0-100之间的成绩。\n"); // 输出错误提示return 1; // 返回1,表示程序异常结束}// 使用switch语句根据成绩范围转换为等级switch (score / 10) { // 将成绩除以10,用于判断成绩等级case 10: // 处理特殊情况,score为100case 9: // 处理成绩在90-99之间grade = 'A'; // 赋值为'A'break; // 退出switch语句case 8: // 处理成绩在80-89之间grade = 'B'; // 赋值为'B'break; // 退出switch语句case 7: // 处理成绩在70-79之间grade = 'C'; // 赋值为'C'break; // 退出switch语句case 6: // 处理成绩在60-69之间grade = 'D'; // 赋值为'D'break; // 退出switch语句case 5: // 处理成绩在50-59之间case 4: // 处理成绩在40-49之间case 3: // 处理成绩在30-39之间case 2: // 处理成绩在20-29之间case 1: // 处理成绩在10-19之间case 0: // 处理成绩在0-9之间grade = 'E'; // 赋值为'E',表示不及格break; // 退出switch语句}// 输出转换后的成绩等级printf("成绩等级为:%c\n", grade); // 输出成绩等级return 0; // 返回0,表示程序正常结束
}
运行截图
相关文章:

燕山大学23级经济管理学院 10.18 C语言作业
燕山大学23级经济管理学院 10.18 C语言作业 文章目录 燕山大学23级经济管理学院 10.18 C语言作业1C语言的基本数据类型主要包括以下几种:为什么设计数据类型?数据类型与知识体系的对应使用数据类型时需要考虑的因素 21. 逻辑运算符2. 真值表3. 硬件实现4…...

【880线代】线性代数一刷错题整理
第一章 行列式 2024.8.20日 1. 2. 3. 第二章 矩阵 2024.8.23日 1. 2024.8.26日 1. 2. 3. 4. 5. 2024.8.28日 1. 2. 3. 4. 第四章 线性方程组 2024.9.13日 1. 2. 3. 4. 5. 2024.9.14日 1. 第五章 相似矩阵 2024.9.14日 1. 2024.9.15日 1. 2. 3. 4. 5. 6. 7. 2024.9.…...

【C++语言】精妙的哈希算法:原理、实现与优化
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 哈希算法是计算机科学中的一项基本技术,广泛应用于数据检索、加密、缓存等领域。本文将深入探讨C++中的哈希算法,详细讲解其原理、实现、优化以及在不同应用场景中的使用。通过丰富的代码示例和数学推导,本文旨…...

基于STM32的手势电视机遥控器设计
引言 本项目设计了一个基于STM32的手势电视机遥控器,利用红外线传输和加速度传感器(或陀螺仪)检测用户的手势动作,用于控制电视的音量、频道切换等操作。通过对手势的实时检测和分类,系统能够识别左右、上下、旋转等手…...

2、图像的特征
一、角点检测-Harris 1、cv2.cornerHarris角点检测函数 在 cv2.cornerHarris 函数中,Sobel 算子用于计算图像的梯度,这是 Harris 角点检测的第一步。 cv2.cornerHarris(src, blockSize, ksize, k, dstNone, borderTypeNone)下面是各个参数的详细解释&…...

URL、URN和URI的区别
目录 一:URI二:URN三:URL1. URL格式 一:URI URI 是(Uniform Resource Identifier)统一资源标识符的缩写。用于唯一标识互联网上的资源。URI包含了URN和URL 二:URN URN是(Uniform …...

深入理解Spring框架几个重要扩展接口
本文介绍Spring框架的几个日常开发重要扩展接口,方便日常项目中按需扩展使用。 一、Processor 系列接口 用途: Processor 系列接口包括 BeanPostProcessor 和 BeanFactoryPostProcessor,它们的设计目的是在 Spring 容器启动过程中对 Bean 和…...

使用dotnet-counters和dotnet-dump 分析.NET Core 项目内存占用问题
在.NET Core 项目部署后,我们往往会遇到内存占用越来越高的问题,但是由于项目部署在Linux上,因此无法使用VS的远程调试工具来排查内存占用问题。那么这篇文章我们大家一起来学习一下如何排查内存占用问题。 首先,我们来看一下应用…...

1282:最大子矩阵
题目: 已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 1)子矩阵。 比如,如下4 4的矩阵 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 的最大子矩阵是 9 2 -4 1 -1 8 这个子矩阵的大小是15。 …...

C++编程语言:抽象机制:特殊运算符(Bjarne Stroustrup)
第19章 特殊运算符(Special Operators) 目录 19.1 引言 19.2 特殊运算符(Special Operators) 19.2.1 下标运算符(Subscripting) 19.2.2 函数调用运算符(Function Call) 19.2.3 解引用(Dereferencing) 19.2.4 递增和递减(Increment and Decrement) 19…...

图片无损放大工具Topaz Gigapixel AI v7.4.4 绿色版
Topaz A.I. Gigapixel是这款功能齐全的图象无损变大运用,应用可将智能机拍摄的图象也可以有着专业相机的高质量大尺寸作用。你可以完美地放大你的小照片并大规模打印,它根本不会粘贴。它具有清晰的效果和完美的品质。 借助AIGigapixel,您可以…...

Vue中计算属性computed—(详解计算属性vs方法Methods,包括案例+代码)
文章目录 计算属性computed3.1 概述3.2 使用3.3 计算属性vs方法Methods3.4 计算属性的完整写法 计算属性computed 3.1 概述 基于现有的数据,计算出来的新属性。 依赖的数据变化,自动重新计算 语法: 声明在 computed 配置项中,…...

Python程序设计 内置函数 日志模块
logging(日志) 日志记录是程序员工具箱中非常有用的工具。它可以帮助您更好地理解程序的流程,并发现您在开发过程中可能没有想到的场景。 日志为开发人员提供了额外的一组眼睛,这些眼睛不断关注应用程序正在经历的流程。它们可以存储信息,例…...

中标麒麟v5安装qt512.12开发软件
注意 需要联网操作 遇到问题1:yum提示没有可用软件包问题 终端执行如下命令 CentOS7将yum源更换为国内源保姆级教程 中标麒麟V7-yum源的更换(阿里云源) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Cento…...

每日算法一练:剑指offer——数组篇(3)
1.报数 实现一个十进制数字报数程序,请按照数字从小到大的顺序返回一个整数数列,该数列从数字 1 开始,到最大的正整数 cnt 位数字结束。 示例 1: 输入:cnt 2 输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1…...

Java代码说明设计模式
以下是使用 Java 代码分别说明设计模式中的工厂模式、抽象工厂模式(这里推测你可能想说的是抽象工厂模式而非虚拟工厂模式)、建造者模式和观察者模式。 一、工厂模式 工厂模式是一种创建对象的设计模式,它提供了一种创建对象的方式…...

Golang笔记_day06
一、GMP 调度器 1、调度器理解思路 理解golang的调度器要从进程到协程演进来说明: 进程--->线程--->协程---> golang的协程(goroutine) 从上图可以看出,进程到多线程到协程,最终目的就是为了提高CPU的利用率…...

「从零开始的 Vue 3 系列」:第十一章——跨域问题解决方案全解析
前言 本系列将从零开始,系统性地介绍 Vue 3 的常用 API,逐步深入每个核心概念与功能模块。通过详尽的讲解与实战演示,帮助大家掌握 Vue 3 的基础与进阶知识,最终具备独立搭建完整 Vue 3 项目的能力。 第十一章:跨域问…...

C语言结构体数组 java静动数组及问题
1. (1)先声明,后定义:如上一天 //(2).声明时直接定义 #define N 5 typedef struct student { int num; int score; }STU; int main(void) { STU class3[N] { {10,90},{14,70},{8,95} }; …...

uniapp项目结构基本了解
基本结构的解释 App.vue:应用的根组件,定义全局布局和逻辑。pages/:存放各个页面的 .vue 文件,定义应用的具体页面和功能模块。main.js:应用入口文件,初始化应用,挂载 App.vue。manifest.json&…...

常见Web知识1
List item 常见Web知识1 JSON: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。它通常用于客户端和服务器之间的数据传输。 JSON 结构 JSON 主要由两…...

新版idea菜单栏展开与合并
新版idea把菜单栏合并了看着很是不习惯,找了半天原来在这里展开 ① 点击文件 -> 设置 ② 点击外观与行为 -> 外观 -> 合并主菜单和窗口标题 然后确定,重启即可...

聊聊Go语言的异常处理机制
背景 最近因为遇到了一个panic问题,加上之前零零散散看了些关于程序异常处理相关的东西,对这块有点兴趣,于是整理了一下golang对于异常处理的机制。 名词介绍 Painc golang的内置方法,能够改变程序的控制流。 当函数调用了pan…...

复习:如何理解 React 中的 fiber
React 中的 Fiber 可以理解为 React 16 引入的一种新的协调(reconciliation)引擎,旨在提高 React 应用的性能和响应性。以下是对 React Fiber 的详细解释: 一、Fiber 的定义与背景 Fiber 是对 React 核心算法的一次重新实现,它将渲染工作分解成一系列小的任务单元,这些任…...

10分钟了解腾讯云混元大模型AIGC系列产品
前言 其实说到AIGC,作为开发者,大家其实已经见怪不怪了,那么AIGC是什么,这里我再简单科普一下。 AIGC的全称是Artificial Intelligence Generated Content (人工智能生成内容)或者说叫生成式人工智能&…...

Unity发送Http
本篇实现在Unity中发送Http请求。 讲解Get,Post,用于在Unity中进行数据对接。 一、Get IEnumerator Get() {string url "";//链接UnityWebRequest request UnityWebRequest.Get(url);//创建UnityWebRequest实例并设置请求方式为Getyield …...

微服务开发-Nacos服务治理
注册中心原理 流程如下: 服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心;调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署);调…...

鸿蒙开发:两个重磅更新,鸿蒙版微信要来了!
从媒体消息中,其实我们已经知道,华为纯血鸿蒙系统(HarmonyOS NEXT)于10月8日正式开启了公测,对应的官方文档,大家可以看到已由原来的Beta版本更新到了Release,NEXT终于迎来了正式版本。 文档更新…...

es kibana .logstash离线集群安装
es离线集群安装 下载对应的版本一般看你客户端引用的是什么版本我这里下载的是7.6.2 官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch 源码安装-环境准备:在etc/hosts文件添加3台主机 node-001 192.168.1.81 node-002 19…...

Java项目-基于springboot框架的基于协同过滤算法商品推荐系统项目实战(附源码+文档)
作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...