C语言小练习(叁)

个人练习:

编程题:

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;
}

运行结果:

在这里插入图片描述

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值