C语言小练习(叁)

news2024/11/16 4:42:14

个人练习:

编程题:

1.编写一个函数,通过输入球的半径,返回球的体积;

#include <stdio.h>
#define pi 3.14
//计算球体积的函数
double v_ball(double r)
{
	return 4.0 / 3.0 * pi * r * r * r;
}

int main()
{
	double a;
	printf("请输入球的半径\n");
	scanf("%lf",&a);
	double v = v_ball(a);
	printf("该球的体积为:%lf\n",v);
	return 0;
}

运行结果:

在这里插入图片描述

2.编写一个函数,通过输入一个数字字符,返回该数字

#include <stdio.h>
char num(char a)
{
	return a;
}

int main()
{
	int b;
	printf("请输入一个字符\n");
	scanf("%c",&b);
	int c = num(b);
	printf("该数字为:%d",c);
	return 0;
}

运行结果:

在这里插入图片描述

3.编写一个函数,输入四个数据分别表示2个点的x,y坐标,返回两点之间的距离;

#include <stdio.h>
#include <math.h>

double distance(int x,int y,int x1,int y2)
{
	return sqrt((x - x1) * (x - x1) + (y - y2) * (y - y2));
}

int main()
{
	int a,b,c,d;
	printf("请输入x的值y的值x1的值y1的值\n");
	scanf("%d,%d,%d,%d",&a,&b,&c,&d);
	double value = distance(a,b,c,d);
	printf("两点之间的距离为:%.2f",value);
	
	return 0;
}

运行结果:

在这里插入图片描述

4.编写一个函数,通过参数输入一个整型数,返回该数各位上数字的平方和;

#include <stdio.h>

int sq(int a)
{
	int sum = 0;
	while(a > 0)
	{
		int dight = a % 10;
		sum += dight * dight;
		a /= 10;
	}
	return sum;
}

int main()
{
	int b;
	printf("请输入一个数\n");
	scanf("%d",&b);
	int sum1 = sq(b);
	printf("该数的平方和为:%d\n",sum1);
	return 0;
}

运行结果:

在这里插入图片描述

5.编写一个函数,通过参数输入x的值,计算如下的数学函数值,当 x>5时, f(x) = 4x+7;否则 f(x) =-2x+3,返回结果值

#include <stdio.h>
int value(int x)
{
	int y;
	return (x > 5 ? y = 4 * x + 7 : y = -2 * x + 3);
	 
}
int main()
{
	int a;
	printf("请输入一个值\n");
	scanf("%d",&a);
	int b = value(a);
	printf("该值为:%d",b);
	
	return 0;
}

运行结果:

在这里插入图片描述

6.设计一个函数,用来求出多个数据的平均值;

#include <stdio.h>  
  
int calculateAverage() 
{  
    int sum = 0; // 初始化sum为0  
    for (int i = 0; i < 5; i++) 
	{ // 循环5次读取数据  
        int n;  
        scanf("%d", &n);  
        sum += n; // 将读取的值加到sum上  
    }  
    // 除以5得到平均值  
    int average = sum / 5;  
    return average;  
}  
  
int main() 
{  
    printf("请输入5个数据\n");  
    int average = calculateAverage(); // 调用函数计算平均值  
    printf("该组数的平均值为:%d\n", average);  
    return 0;  
}

运行结果:

在这里插入图片描述

7.设计一个函数,用来查找一个字符串中某个字符的位置;

#include <stdio.h>

// 查找字符在字符串中的位置的函数
int str(char a[], int len, char target) 
{
    for (int i = 0; i < len; i++) 
	{
        if (a[i] == target) 
		{
            return i; // 找到目标字符,返回它的下标
        }
    }
    return -1; // 如果未找到目标字符,返回 -1 表示未找到
}

int main() 
{
    char b[5];
    
    // 录入字符数组
    printf("请输入五个字符组成的字符串\n");
    for (int i = 0; i < sizeof(b) / sizeof(char); i++) 
	{
        scanf(" %c", &b[i]); 
    }
    
    // 查询目标字符
    char target_ch;
    printf("请输入你要查找的字符\n");
    scanf(" %c", &target_ch);

    // 调用查找函数
    int pos = str(b, sizeof(b) / sizeof(char), target_ch);
    
    // 输出结果
    if (pos != -1) 
	{
        printf("%c 字符的下标为:%d\n", target_ch, pos);
    } 
	else 
	{
        printf("未找到该字符:%c\n", target_ch);
    }
    
    return 0;
}

运行结果:

在这里插入图片描述

8.设计一个函数,把一个整型数字转成对应的字符串格式

#include <stdio.h>
//转化函数
void int_to_string(int n,char a[])
{
	sprintf(a,"%d",n);
}

int main()
{
	int b;
	char a[20];
	
	printf("请输入一个整型数字\n");
	scanf("%d",&b);
	
	 int_to_string(b,a);
	 
	printf("%d的字符串格式为:%s\n",b,a);
	
	return 0;
}

运行结果:

在这里插入图片描述

9.设计一个函数,统计字符串中大写字母的个数

#include <stdio.h>
//统计大写字母
char str(char a[],int len)
{
	int k;
	for(int i = 0;i < len;i++)
	{
		if( a[i] >=65 && a[i] <= 90)
		{
			 k++;
		}
	}
	return k;
}
int main()
{
	char s[6];
	printf("请输入长度为6的字符串\n");
	
	for(int i = 0;i < sizeof(s) / sizeof(char);i++)
	{
		scanf("%c",&s[i]);
	}
	printf("该字符串中大写字母的个数为:%d",str(s,sizeof(s) / sizeof(char)));
	
	return 0;
}

运行结果:

在这里插入图片描述

10.设计函数,实现strcmp 的功能;

#include <stdio.h>
//比较字符串的函数
char str(char st[],char st2[],int len)
{
	for(int i = 0;i < len;i++)
	{
		for(int j = 0;j < len;j++)
		{
			if(st[i] == st2[j])
			{
				printf("两个字符串相同\n");
				return 0;
			}
			else if(st[0] < st2[j])
			{
				return -1;
			}
			else if(st[0] > st2[j])
			{
				return 1;
			}
		}
	}
	return 0;
}

int main()
{
	//定义数组
	char a[5],b[5];
	//初始化字符串
	printf("请输入第一个长度为5的字符串\n");
	for(int i = 0;i < sizeof(a) / sizeof(char);i++)
	{
		scanf(" %c",&a[i]);
	}
	printf("请输入第二个长度为5的字符串\n");
	for(int i = 0;i < sizeof(b) / sizeof(char);i++)
	{
		scanf(" %c",&b[i]);
	}
	//函数的调用
	printf("该字符串的返回值为:%d",str(a,b,sizeof(a) / sizeof(char)));
	
	return 0;
}

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.编写函数,用于判断输入的字符是不是个数字。是返回1,不是返回0

#include <stdio.h>
//判断
char str(char a[],int len)
{
	for(int i = 0;i < len;i++)
	{
		if(a[i] < 65 || a[i] >122)
		return 1;
	}
	return 0;
}

int main()
{
	//初始化
	char b[6];
	printf("请输入长度为6的字符串\n");
	//录入值
	for(int i = 0;i < sizeof(b) / sizeof(char);i++)
	{
		scanf("%c",&b[i]);
	}
	printf("返回值为:%d\n",str(b, sizeof(b) / sizeof(char)));
	
	return 0;
}

运行结果:
在这里插入图片描述
在这里插入图片描述

12.设计一程序,实现一个简单的计算器。

要求:有菜单函数 和加、减、乘、除的函数 主函数调用这些函数实现程序的功能.要求菜单函数能

够输出如下的界面

1、加法 2、减法 3、乘法 4、除法 0.退出

#include <stdio.h>
//实现乘法运算的函数
int a(int x,int y)
{
	return x * y;
}
//实现加法运算的函数
int b(int x,int y)
{
	return x + y;
}
//实现除法运算的函数
int c(int x,int y)
{
	return x / y;
}
//实现减法运算的函数
int d(int x,int y)
{
	return x - y;
}

int main()
{
	int n,q,w;
	printf("计算器v1.0\n");
	printf("1为加法,2为减法,3乘法,4除法,0退出\n");
	printf("请输入两个数字以及操作方式\n");
	scanf("%d,%d,%d",&q,&w,&n);
	switch(n)
	{
		case 1:
		printf("计算结果为:%d\n",b(q,w));
		break;
		case 2:
		printf("计算结果为:%d\n",d(q,w));
		break;
		case 3:
		printf("计算结果为:%d\n",a(q,w));
		break;
		case 4:
		printf("计算结果为:%d\n",c(q,w));
		break;
		case 0:
		printf("退出\n");
		break;
		default:
		printf("操作非法\n");
	}
	
	return 0;
}

运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

13.设计函数实现冒泡排序;

#include <stdio.h>

// 实现冒泡排序的函数
void bubble_sort(int a[], int len) 
{
    int t;
    for (int i = 0; i < len - 1; i++) 
	{
        for (int j = 0; j < len - i - 1; j++) 
		{
            if (a[j] > a[j + 1]) 
			{
                t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
}

int main() 
{
    int z[10];

    // 输入待排序的10个数
    printf("请输入10个数:\n");
    for (int i = 0; i < 10; i++) 
	{
        scanf("%d", &z[i]);
    }

    // 调用冒泡排序函数
    bubble_sort(z, sizeof(z) / sizeof(int));

    // 输出排序后的结果
    printf("冒泡排序后的数为:");
    for (int i = 0; i < 10; i++) 
	{
        printf(" %d", z[i]);
    }
    printf("\n");

    return 0;
}

运行结果:

在这里插入图片描述

14.编写一个函数,将数组中的数据首尾互换

#include <stdio.h>
//收尾互换的函数
void sw(char a[],int len)
{
	char t;

	t = a[0];
	a[0] = a[len - 1];
	a[len - 1] = t;
	
}

int main()
{
	char b[10];
	//初始化
	printf("请输入长度为10的字符\n");
	
	for(int i = 0;i < sizeof(b) / sizeof(char);i++)
	{
		scanf(" %c",&b[i]);
	}
	
	sw(b,sizeof(b) / sizeof(char));
	
	printf("交换的数据为:\n");
	
	for(int i = 0;i < sizeof(b) / sizeof(char);i++)
	{
		printf("%c",b[i]);
	}

	return 0;
}

运行结果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993693.html

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

相关文章

InfluxDB Studio 下载,时序数据库Windows图形界面操作

下载地址&#xff1a; https://github.com/CymaticLabs/InfluxDBStudio/releases解压缩后&#xff0c;双击 InfluxDBStudio.exe 运行。 参考 windows下 influxDB 操作工具 InfluxDBStudio 吐槽 现在 CSDN 太恶心了&#xff0c;动不动就让订阅或者积分下载资源。诚然&#…

【Python学习-UI界面】pyqt5页面布局

1、布局分类 序号类别描述1QBoxLayout可将小部件垂直或水平排列。它的派生类有QVBoxLayout&#xff08;用于垂直排列小部件&#xff09;和QHBoxLayout&#xff08;用于水平排列小部件&#xff09;。2QGridLayout对象呈现为行和列排列的单元格网格。该类包含addWidget()方法&am…

艾迈斯欧司朗推出突破性8通道915nm SMT脉冲激光器,开创激光雷达应用新时代

8通道915nm SMT脉冲激光器可增强自动驾驶汽车的远距离激光雷达系统&#xff1b;经过AEC-Q102认证的8通道QFN封装&#xff0c;具有高性能和高效率&#xff0c;采用艾迈斯欧司朗专有的波长稳定技术&#xff1b;基于20多年的脉冲激光器技术经验。 中国 上海&#xff0c;2024年8月8…

JAVA开发学习-day21

JAVA开发学习-day21 1. 删除表单数据 根据ElementUI的官方组件指南&#xff0c;为表单每列的数据添加删除按钮 <el-table :data"tableData" style"width: 100%"><el-table-column prop"id" label"ID" width"180"…

那些你应该掌握的linux命令

一、路径授权 要给 a 用户 b 路径的所有操作权限,可以使用以下命令&#xff1a; sudo chown -R a:a /b sudo chmod -R 770 /b1.sudo chown -R a:a /b chown 命令用于更改文件或目录的所有者和所属组。-R 选项表示递归地应用于目录及其内部的所有文件和子目录。a:a 表示将所有…

24/8/8算法笔记 条件筛选决策树根节点

筛选决策树的根节点是建立决策树过程中的一个重要步骤&#xff0c;主要原因包括&#xff1a; 减少计算量&#xff1a;选择合适的根节点可以减少树的深度&#xff0c;从而减少模型训练和预测时的计算量。 提高模型性能&#xff1a;选择最佳分裂点可以最大化模型的性能&#xff…

更换低版本jdk8后的idea页面怎么换回来

一、问题阐述 一开始我的idea是下面的界面&#xff1a; 这个页面美观&#xff0c;简洁。后来因为工作需要&#xff0c;从jdk17切换到jdk8的时候&#xff0c;页面变了 这个没有前面的好看&#xff0c;怎么回事&#xff1f; 二、解决方案 1、file——setting 2、搜索ui——New UI…

全新博客X主题/简约WordPress主题模板/主题巴巴/免授权版源码+自适应设计

源码简介&#xff1a; 博客X这款超酷的Wordpress主题&#xff0c;是主题巴巴团队打造的设计杰作。想象一下&#xff0c;你的博客首页能展示那些炫酷的幻灯片置顶文章、还有各种精心策划的专题列表&#xff0c;这些内容模块的设计简直吸睛了&#xff0c;能让来访的用户眼前一亮…

JAVA集中学习第四周学习记录(三)

系列文章目录 第一章 JAVA集中学习第一周学习记录(一) 第二章 JAVA集中学习第一周项目实践 第三章 JAVA集中学习第一周学习记录(二) 第四章 JAVA集中学习第一周课后习题 第五章 JAVA集中学习第二周学习记录(一) 第六章 JAVA集中学习第二周项目实践 第七章 JAVA集中学习第二周学…

SSL VPN综合实验

一、实验目的及拓扑 实验目的&#xff1a;构建企业内网和企业分支站点&#xff0c;其中企业内网通过防火墙实现双机热备并且与企业分支固定站点实现站点到站点IPsec VPN互联&#xff0c;与企业分支移动站点实现SSL VPN互联&#xff0c;企业内网各主机可以实现对分支站点内网的…

可观测性(observability)

一、定义 wiki百科的定义 In software engineering, more specifically in distributed computing, observability is the ability to collect data about programs’ execution, modules’ internal states, and the communication among components.[1][2] To improve obser…

8月最新ChatGPT系统源码SparkAi系统,支持AI换脸+智能体GPTs应用+AI绘画+AI视频+文档分析

一、文章序言 人工智能技术正在快速发展&#xff0c;AI语言模型、AI绘画和AI视频已经在多个领域得到了广泛应用。这些技术不仅在科技创新方面表现出色&#xff0c;还在艺术创作、内容生产和商业应用中展示出巨大的潜力。 SparkAi创作系统是一款基于ChatGPT和Midjourney开发的…

矩阵乘法的结合律的证明

矩阵的乘法在矩阵运算中相较于加法更加复杂&#xff0c;对矩阵乘法的运算律的证明也更复杂&#xff0c;但其中对结合律的证明是最难的&#xff0c;因为它涉及到3个矩阵的相乘。本证明不同于其他一些比较粗浅的用方阵去证明或者用三个含很少元素的简单矩阵做一个例证&#xff0c…

App渗透测试(工具使用)

Python工具 在文件中打开终端&#xff0c;执行如下命令进行装库。 python3 -m pip install -r txt文件 执行如下命令扫描 python3 .py -i apk文件

Docker最佳实践(七):安装MinIO文件服务器

大家好&#xff0c;欢迎各位工友。 Minio是一个开源免费的高性能对象存储服务器&#xff0c;专为大规模数据集和高并发访问而设计。它具有出色的读写性能和低延迟&#xff0c;可以满足对数据速度和效率要求较高的应用场景。本篇呢我们就来演示一下如何在Docker中搭建Minio容器&…

MySQL数据库基础:约束

&#x1f48e;我的主页&#xff1a;MySQL &#x1f48e;1. 约束的概述 约束是作用于表中字段的规则&#xff0c;用于限制存储在表中的数据 目的&#xff1a;保证数据库中数据的正确性&#xff0c;有效性和完整性 &#x1f48e;2. 约束的分类 &#x1f48e;2.1 非空约束 非空…

linux之top

要在 Linux 系统上查看 CPU 使用情况&#xff0c;可以使用top命令&#xff1a; 根据您提供的 top 命令的输出&#xff0c;我们可以看到系统的一些基本信息和当前运行的进程。下面是输出的主要部分的解释&#xff1a; 仅供参考&#xff1a; 系统概述: 时间&#xff1a;当前时间…

MATLAB(R和C++)大肠杆菌合成生物机械数学模型

&#x1f3af;要点 &#x1f3af;合成大肠杆菌生物学网络 | &#x1f3af;量化基因型-表型图 | &#x1f3af;化学诱导离散浓度下培养细菌评估整个浓度范围内的表达模式 | &#x1f3af;定性更改合成模型拓扑结构、定量更改相互作用的强度 | &#x1f3af;开发机械数学模型 | …

新增题目同步到ES

文章目录 &#x1f31e; Sun Frame&#xff1a;SpringBoot 的轻量级开发框架&#xff08;个人开源项目推荐&#xff09;&#x1f31f; 亮点功能&#x1f4e6; spring cloud模块概览常用工具 &#x1f517; 更多信息1.创建ES的索引和映射1.创建索引2.创建映射 2.sun-club-infra …

C语言 ——— 学习、使用memmove函数 并模拟实现

目录 memmvoe函数的功能 学习memmove函数​编辑 模拟实现memmove函数 memmvoe函数的功能 memmvoe函数的功能类似于memcpy函数&#xff0c;都是内存拷贝&#xff0c;唯一的区别是memcpy函数不能成功拷贝原数据&#xff0c;而memmvoe函数可以 举例来说&#xff1a; [1, 2, 3…