2015年复试-----C语言编程题

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

#include<stdio.h>
#include<math.h>
int main()
{	double x;
	double PI=3.1415926;
	scanf("%lf",&x);
	if(x<2*PI)
	{
	printf("正弦值:%lf,余弦值:%lf",sin(x),cos(x));
	}
	else{
		x=fmod(x,2*PI);
		printf("正弦值:%lf,余弦值:%lf",sin(x),cos(x));
	}
} 
3.1415926
正弦值:0.000000,余弦值:-1.000000
--------------------------------
Process exited after 15.56 seconds with return value 0
请按任意键继续. . .

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

#include<stdio.h>
int main() {
	float bill=0,s,km;
	printf("请输入路程值:" );
	scanf("%f",&s);
	if(s<=3) {
		bill=7;
	} else if(s>3&&s<=5) {
		km=s-3;
		bill=7+(1.2*km);
	} else {
		km=s-5;
		bill=9.4+(1.8*km);
	}
	printf("%.2f",bill);
}
请输入路程值:8.2
15.16
--------------------------------
Process exited after 2.589 seconds with return value 0
请按任意键继续. . .

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

#include<stdio.h>
#include<math.h>
int main(){
	float c;
	for(int i=1;i<=100;i++){
		c=sqrt(i);
		printf("%.4f      ",c);
		if(i%5==0)printf("\n");
	}
}
1.0000      1.4142      1.7321      2.0000      2.2361
2.4495      2.6458      2.8284      3.0000      3.1623
3.3166      3.4641      3.6056      3.7417      3.8730
4.0000      4.1231      4.2426      4.3589      4.4721
4.5826      4.6904      4.7958      4.8990      5.0000
5.0990      5.1962      5.2915      5.3852      5.4772
5.5678      5.6569      5.7446      5.8310      5.9161
6.0000      6.0828      6.1644      6.2450      6.3246
6.4031      6.4807      6.5574      6.6332      6.7082
6.7823      6.8557      6.9282      7.0000      7.0711
7.1414      7.2111      7.2801      7.3485      7.4162
7.4833      7.5498      7.6158      7.6811      7.7460
7.8102      7.8740      7.9373      8.0000      8.0623
8.1240      8.1854      8.2462      8.3066      8.3666
8.4261      8.4853      8.5440      8.6023      8.6603
8.7178      8.7750      8.8318      8.8882      8.9443
9.0000      9.0554      9.1104      9.1652      9.2195
9.2736      9.3274      9.3808      9.4340      9.4868
9.5394      9.5917      9.6437      9.6954      9.7468
9.7980      9.8489      9.8995      9.9499      10.0000

--------------------------------
Process exited after 0.2692 seconds with return value 0
请按任意键继续. . .

4、给定一个数组,将数组对称交换,输出原数组和交换后的数组。

#include<stdio.h>
void in(int a[],int n)
{
	printf("请依次输入数组的各元素(空格分隔):");
	for(int i=0; i<n; i++)
	{
		scanf("%d",&a[i]);
	}
}
void out(int a[],int n) 
{
	printf("对称交换后的数组为:");
	for(int i=0; i<n; i++) 
	{
		printf("%d ",a[i]);
	}
}
void swap(int a[],int n) 
{
	int t;
	for(int i=0; i<(n/2); i++) 
	{
		t=a[i];
		a[i]=a[n-1-i];
		a[n-1-i]=t;
	}
}
int main() 
{
	int n;
	int a[n];
	printf("请输入数组的长度:");
	scanf("%d",&n);

	in(a,n);
	swap(a,n);
	out(a,n) ;
}

请输入数组的长度:5
请依次输入数组的各元素(空格分隔):1 2 3 4 5
对称交换后的数组为:5 4 3 2 1
--------------------------------
Process exited after 7.601 seconds with return value 0
请按任意键继续. . .

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

分析:
定义一个结构体数组20本书的书名、作者名、出版社、价格。
查询用for循环+if判断语句。
#include<stdio.h>
#include <string.h>
# define max 20
struct bookinfo {
	char name[max];
	char author[max];
	char publish[max];
	int price;
} book[20];
int main() {
	for(int i=0; i<20; i++) {
		printf("请输入要存放的第%d书的书名、作者、出版社、价格:",i+1);
		scanf("%s %s %s %d",book[i].name,book[i].author,book[i].publish,&book[i].price);
	}
	char bookname[max];
	printf("请输入要查询书的书名:");
	scanf("%s",bookname);
	for(int i=0; i<20; i++) {
	if(strcmp(bookname,book[i].name)==0)
	{
	printf("要查询书的信息:%s %s %s %d\n",book[i].name,book[i].author,book[i].publish,book[i].price);
	}
	}


}


请输入要存放的第1书的书名、作者、出版社、价格:红楼梦 李小萌 人民出版社 55
请输入要存放的第2书的书名、作者、出版社、价格:西游记 王小明 清华出版社 65
请输入要查询书的书名:西游记
要查询书的信息:西游记 王小明 清华出版社 65

--------------------------------
Process exited after 44.6 seconds with return value 0
请按任意键继续. . .

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

#include<stdio.h>
int min(int a[]) {
	int min=a[0];
	for(int i=1; i<10; i++) {
		if(min>a[i]) {
			min=a[i];
		}
	}
	return min;
}
int max(int a[]) {
	int max=a[0];
	for(int i=1; i<10; i++) {
		if(max<a[i]) {
			max=a[i];
		}
	}
	return max;
}

int main() {
	int  da,xiao,a[10];
	//一个装有10个整形指针的数组
	int (*p)(int a[10]);
	//输入 
	printf("请输入十个数:");
	for(int i=0; i<10; i++) {
		scanf("%d",&a[i]);

	}
	//求最大值 
	p=max;
	da=(*p)(a);
	//求最小值 
	p=min;
	xiao=(*p)(a);
	printf("max:%d,min:%d",da,xiao);
}
请输入十个数:77 88 22 33 123 555 1 0 -1 6
max:555,min:-1
--------------------------------
Process exited after 25.89 seconds with return value 0
请按任意键继续. . .

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值