复试练手

  • 由键盘输入的n个整数,输出其中最大和最小数。其中,n由用户通过键盘输入。
    输入:n = 10
    92 756 43 32 45 78 67 82 99 65
    输出:756 (最大)
    32 (最小)
//由键盘输入的n个整数,输出其中最大和最小数。其中,n由用户通过键盘输入。
//输入:n = 10
//92  756  43  32  45  78  67  82  99  65
//输出:756 (最大)
//32  (最小)
#include<stdio.h>
int max_num(int x[],int n)
{
	int max = x[0];
	for (int i = 0; i < n; i++)
		if (max < x[i])   max = x[i];
	return max;
}
int min_num(int x[], int n)
{
	int min = x[0];
	for (int i = 0; i < n; i++)
	if (min > x[i])   min = x[i];
	return min;
}
void main()
{
	int n;
	int x[100];
	printf("请输入数据个数n=");
	scanf("%d", &n);
	printf("请输入n个正数:\n");
	for (int i = 0; i < n; i++)
		scanf("%d", &x[i]);
	printf("最大值:%d\n", max_num(x, n));
	printf("最小值:%d\n", min_num(x, n));
}
  • 编写程序求e的值,当通项小于10^-7停止计算。e≈1+1/1!+1/2!+……+1/n!
#include<stdio.h>
void main()
{
	int n,i = 1;
	float  e = 1, t = 1, v = 1;
	while (t>1e-7)
	{
		e += t;
		i++;
		v = v*i;
		t = 1.0 / v;
	}
	printf("e = %f", e);
}
  • 编写摄氏温度、华氏温度转换程序。要求:从键盘输入一个摄氏温度,屏幕就显示对应的华氏温度,输出取两位小数。转换公式:F=(C+32)×9/5。
#include<stdio.h>
void main()
{
	float temp_c,temp_f;
	printf("请输入一个摄氏温度:");
	scanf("%f", &temp_c);
	temp_f = (temp_c + 32.0) * 9.0/ 5.0;
	printf("对应的华氏温度是:%.2f\n", temp_f);
}
  • 试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。
#include<stdio.h>
void main()
{
	int num;
	printf("输入正整数:");
	scanf("%d", &num);
	if (num % 5 == 0 && num % 7 == 0)
		printf("yes!\n");
	else
		printf("no!\n");
}
  • 判断数m是否为素数(只能被1和它本身整除的整数)
#include<stdio.h>
#include<math.h>
int is_prime(int n)
{
	int i;
	for (i = 2; i <= sqrt((double)n); i++)
		if (n%i == 0)
		{
			return 0;
			break;
		}
	return 1;
}

int main()
{
	int n;
	printf("输入一个整数:");
	scanf("%d", &n);
	if (is_prime(n)) 
		printf("%d 是素数\n", n);
	else 
		printf("%d 不是素数\n", n);
}
  • 对15个数进行排序,按从小到大的顺序输出。
#include<stdio.h>
//排序函数
void sort(int *a)  
{
	int t;
	for (int k = 0; k < 15;k++)
	for (int m = k+1; m < 15;m++)
	if (a[k]>a[m])
	{
		t = a[k];
		a[k] = a[m];
		a[m] = t;
	}

}

void main()
{
	/*****将一串数字压入数组中*******/
	int a[15];
	int i = 0;
	char y;
	printf("请输入15个数字,以空格隔开,按回车键结束:\n");
	do {
		scanf("%d", &a[i]);
		i++;
	} while (y = getchar() != '\n');
	/*******************************/
	sort(a);

	//输出数组中数据
	for (int j = 0; j < i; j++)
		printf("%d  ", a[j]);
	printf("\n");
}
  • 求这样一个三位数,该三位数等于其中每位数字的的阶乘之和。
    即; abc=a!+b!+c!
    输出: 145
#include<stdio.h>
int fun(int num);
int is_num(int num) //判断三位数等于其中每位数字的的阶乘之和
{
	int fact,num1,num2,num3;
	num1 = num / 100;
	num2 = num % 100 / 10;
	num3 = num % 100 % 10;
	fact = fun(num1) + fun(num2) + fun(num3);
	/*printf("百位数:%d\n", num1);
	printf("十位数:%d\n", num2);
	printf("个位数:%d\n", num3);
	printf("百位数阶乘:%d\n", fun(num1));
	printf("十位数阶乘:%d\n", fun(num2));
	printf("个位数阶乘:%d\n", fun(num3));
	printf("阶乘和=%d\n", fact);*/
	if (num == fact)
		return 1;
	else
		return 0;
}
int fun(int num)
{
	int mul = 1;
	for (int i = 1; i <= num; i++)
	{
		mul *= i;
	}
	return mul;
}
void main()
{
	int num;
	printf("输入一个三位数:");
	scanf("%d", &num);
	if (is_num(num))
		printf("YES!");
	else
		printf("NO!");
}
  • 有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8 ,21/13,
    编程,求出这个数列的前20项之和。
    输出: 32.660259
#include<stdio.h>
void main()
{
	int i = 0 , t;
	double  m = 1, n = 2, sum = 0;
	while (i < 20)
	{
		//k = n / m;
		//printf("%f\n", k);
		sum = sum + n/m;
		t = m;
		m = n;
		n = t + n;
		i++;
	}
	printf("答案:%f\n", sum);
}
  • 编程序,从键盘输入一整数,然后按反向输出。比如原数为12345,应输出54321.
    输入:56832
    输出:23865
#include <stdio.h>
 
int main(void) 
{
    long n,m;
    scanf("%ld",&n);
    for(m=0;n;n/=10)
    {
        m=m*10+n%10;
    }
    printf("%ld\n",m);
    return 0;
}
  • 循环分离n位数
#include<stdio.h>
int main()
{
	int n, i;//定义整型变量
	scanf("%d", &n);//输入赋值
	for (; n>0;){//对变量取余输出余数,变量除10,直到变量等于0
		printf("%d", n % 10);//输出余数
		n /= 10;//变量除10
	}
	printf("\n");
	return 0;
}
  • 编程,统计输出整数100至100000之间所有数字之和为5的整数的总个数。
    输出120
#include<stdio.h>
int separate(int num)
{
	int sum=0 ;
	for (; num;)
	{
		sum += num % 10;
		num /= 10;
	}
	return sum;
}
void main()
{
	int n = 0;
	for (int i = 100; i <= 100000; i++)
	if (separate(i) == 5)
	{
		n++;
		//printf("%d\n", n);
	}
	printf("总个数:%d\n", n);
}
  • 写一个函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字之间加一个下划线;并在主函数中进行测试。
    输入:1990,
    输出:1_9_9_0
#include<stdio.h>
void main()
{
	int n;
	printf("输入一个四位数:");
	scanf("%d", &n);
	printf("%d", n / 1000);
	printf("_");
	printf("%d", n % 1000 / 100);
	printf("_");
	printf("%d", n % 1000 % 100 / 10);
	printf("_");
	printf("%d", n % 1000 % 100 % 10);
	printf("\n");
}
  • 编程序,有键盘输入一个字符串,将字符串中除小写元音字母以外的字符打印出来。
    输入:My name is Tom!
    输出:My nm s Tm!
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四硕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值