济南大学复试上机代码(2015年)

问题1:输入弧度(正数)求正弦值、余弦值。当给定弧度小于2*PI时直接使用sin(x),cos(x)计算;当给定弧度大于2*PI时,转换到0--2*PI范围内求值。

#include<stdio.h>
#include<math.h>
#define PI 3.14
int main()
{
	float x;
	scanf("%f", &x);
	if (x <= 2 * PI)
	{
		printf("%f的正弦值为:%f", x, sin(x));
		printf("%f的余弦值为:%f", x, cos(x));
	}
		
	else
	{
		while (x > 2 * PI)
			x = x - 2 * PI;
		printf("%f的正弦值为:%f", x, sin(x));
		printf("%f的余弦值为:%f", x, cos(x));
	}
		

}

问题二:打车问题,输入路程值求应收费用。3km以内7元,大于3km小于5km大于3km的部分按照每公里1.2元收费,大于5km时,大于5km的部分按照1.8元没公里收费。

#include<stdio.h>
int main()
{
	int s;
	float sum;
	scanf("%d", &s);
	if (s <= 3)
		sum = 7;
	else if (s > 3 && s <= 5)
		sum = 7 + (s - 3) * 1.2;
	else
		sum = 7 + 2.4 + (s - 5) * 1.8;
	printf("应收费%.2f元", sum);
}

问题3:输出1-100每个数的平方根,每5个一行,保留小数点后4位。

#include<stdio.h>
#include<math.h>
int main()
{
	float x;
	for (int i = 1; i < 101; i++)
	{
		x = sqrt(i);
		printf("%.4f  ", x);
		if (i % 5 == 0)
			printf("\n");
	}
}

问题4:计算形如
2+22+222+2222+22222的结果,分别输入a和n,a代表数字,n代表加的个数。

#include<stdio.h>
int main()
{
	int a, n;
	scanf("%d %d", &a, &n);
	int sum = 0;
	int temp = 0;
	for (int i = 0; i < n; i++)
	{
		temp = a + temp * 10;
		sum += temp;
		printf("%d+", temp);
	}
	printf("=%d", sum);
}

问题五:给定一个数组,将数组对称交换,输出原数组和交换后的数组。

#include<stdio.h>
int main()
{
	int a[100], b[100];
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	for (int j = 0; j < n; j++)
	{
		b[n - j - 1] = a[j];
	}
	printf("原数组为:");
	for (int i = 0; i < n; i++)
	{
		printf("%d", a[i]);
	}
	printf("\n");
	printf("交换后的数组为:");
	for (int i = 0; i < n; i++)
	{
		printf("%d", b[i]);
	}
}

问题六:定义一个数组存放20本书的信息,书的信息包括书名、作者名、出版社、价格。给出一个要查找的书名,对数组进行查询,如果查询到结果将书的信息输出,否则输出不存在此记录。

#include<stdio.h>
#include<string.h>
#define N 3
struct bookstore
{
	char name[20];
	char writer[20];
	char chupanshe[50];
	int price;
};
void input(struct bookstore a[],int n)
{
	for (int i = 0; i < n; i++)
	{
		scanf("%s %s %s %d", &a[i].name, &a[i].writer, &a[i].chupanshe, &a[i].price);
	}
}
void search(struct bookstore a[], int n)
{
	char s[20];
	printf("请输入您要查询的书名:");
	scanf("%s", &s);
	int flag = 1;
	int i;
	for (i = 0; i < n; i++)
	{
		if (strcmp(a[i].name, s) == 0)
		{
			flag = 0;
			break;
		}
	}
	if (flag == 1)
		printf("不存在此记录");
	else
		printf("%s %s %s %d", a[i].name, a[i].writer, a[i].chupanshe, a[i].price);
}
int main()
{
	struct bookstore book[N];
	input(book, N);
	search(book, N);
}

问题七:输入10个整数,使用指针的方式通过调用函数输出数组的最大值和最小值。

#include<stdio.h>
int main()
{
	int a[10];
	for (int i = 0; i < 10; i++)
	{
		scanf("%d", &a[i]);
	}
	int* p, * q;
	p = a;
	int min, max;
	min = a[0];
	max = a[0];
	q = a;
	
	for (int i = 0; i < 10; i++)
	{
		if (min > *p)
			min = *p;
		p++;
	}
	for (int i = 0; i < 10; i++)
	{
		if (max < *q)
			max = *q;
		q++;
	}
	printf("the min is %d\n", min);
	printf("the max is %d", max);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值