当前位置: 首页 > article >正文

山东春季高考-C语言-综合应用题

(2018年)3.按要求编写以下C语言程序:

(1)从键盘上输入三个整数a、b、c,判断能否以这三个数为边构成三角形,若可以则计算机三角形的面积且保留两位小数;若不可以则输出“不能构成三角形”。

(提示:三角形的面积公式为:S=√P(P−a)(P−b)(P−c)  ̄,P=(a+b+c)/2)

(2)一个数列是:1/2,-3/2,5/3,-8/5,……,求这个数列的前20项之和。

#include <stdio.h>
#include <math.h>
int main() {
    int a, b, c;
    float s, p;
    scanf("%d %d %d", &a, &b, &c);
    if (a + b > c && a + c > b && b + c > a) {
        p = (a + b + c) / 2.0;
        s = sqrt(p * (p - a) * (p - b) * (p - c));
        printf("三角形的面积是: %.2f\n", s);
    } else {
        printf("不能构成三角形\n");
    }
    return 0;
}
#include <stdio.h>
main()
{
	int i,t;
	float a,b,m,sum;
	t=1;a=2;b=1;sum=0;  //t表示±,a表示分子,b表示分母,sum表示总数 
	for(i=1;i<=20;i++)
	{
		sum=sum+t*a/b;
		m=a;a=a+b;b=m;
		t=-t;
	}
	printf("sum=%f\n",sum);
 } 

(2019年)3.按要求编写以下C语言程序:

(1)统计自今年至2100年的闰年个数,输出具体年份(格式为:2020年),输出时一行只显示10个年份。(提示:年份能被4整除但不能被100整除或者能被400整除,即为闰年)

(2)求Sn=1+1/2+1/4+1/7+1/11+1/16+1/22+……+an的值,直到最后一项的值小于10的-5次方

#include<stdio.h>
main()
{
	int year,n=0;
	for(year=2019;year<=2100;year++){
	if(year%4==0&&year%100!=0||year%400==0){
		n++;
		printf("%d年 ",year);
		if(n%10==0) printf("\n");
		}
	}
	printf("至2100年,闰年有%d个",n);
}
 
#include<stdio.h>//需要核对
main(){
	int n=1;
	float s=1,m=1;
	while(m>=1e-5){
	m=1.0/(n+1.0/m);
	s=s*m;
	n=n+1;
	}
	printf("s=%f",s);
 } 

(2020年)3.按要求编写以下C语言程序:

#include<stdio.h> 
#include<math.h>
int main(){
	float x,y;
	printf("请输出x的值:");
	scanf("%f",&x);
	if(x<0)	y=x*x;
	else if(x<10)	y=2*x-1;
	else y=sqrt(x+5);
	printf("\n x=%f时,y=%f",x,y); 
}

(2)请编写程序,将11位评委给出的选手成绩存至一维数组,计算并输出选手的最终成绩(保留两位小数)。选手的最终成绩为去掉一个最高分和一个最低分的平均成绩。

#include<stdio.h>
int main(){
	int i;
	float a[11],min,max,sum,ave;
	printf("请输入评委给出的成绩:");
	for(i=0;i<11;i++)
	scanf("%f",&a[i]);
	max=min=sum=a[0];
	for(i=1;i<11;i++){
		sum+=a[i];
		if(a[i]>max)	max=a[i];
		if(a[i]<min)	min=a[i];
	} 
	ave=(sum-max-min)/9;
	printf("\n选手的最终得分为:%.2f\n",ave);
}

(2021年)3.按要求编写以下C语言程序:

(1)现有序列{2,3,7,8,10,12,13,15,16,17},输出其中的偶数及所有偶数的和

#include <stdio.h>  

int main() {  
    int a[] = {2, 3, 7, 8, 10, 12, 13, 15, 16, 17};  
    int sum = 0;  
    printf("偶数有:");  
    for (int i = 0; i < 10; i++) { // 由于题目中要求输出序列中的偶数,所以不使用步长为2  
        if (a[i] % 2 == 0) { // 判断是否为偶数  
            printf("%d ", a[i]);  
            sum += a[i]; // 偶数求和  
        }  
    }  
    printf("\n所有偶数的和为:%d\n", sum);  
    return 0;  
}

(2)在200米短跑比赛中,对前五名选手进行积分奖励,其他选手不在奖励行列。赋分规则为:第五名得2分,第四名比第五名多的2分,依次类推。

要求:先定义一个函数fun,实现根据名次进行赋分,再通过函数调用,对选手进行积分奖励。

#include <stdio.h>  

// 定义赋分函数  
int fun(int rank) {  
    if (rank == 5) {  
        return 2; // 第五名得2分  
    } else if (rank == 4) {  
        return 4; // 第四名得4分  
    } else if (rank == 3) {  
        return 6; // 第三名得6分  
    } else if (rank == 2) {  
        return 8; // 第二名得8分  
    } else if (rank == 1) {  
        return 10; // 第一名得10分  
    } else {  
        return 0; // 其他名次得0分  
    }  
}  

int main() {  
    int ranks[5];  
    int scores[5];  

    // 输入前五名选手的名次  
    printf("请输入前五名选手的名次(1-5):\n");  
    for (int i = 0; i < 5; i++) {  
        printf("选手 %d 名次: ", i + 1);  
        scanf("%d", &ranks[i]);  
    }  

    // 通过赋分函数计算得分  
    for (int i = 0; i < 5; i++) {  
        scores[i] = fun(ranks[i]);  
    }  

    // 输出每位选手的名次和得分  
    printf("\n名次与得分:\n");  
    for (int i = 0; i < 5; i++) {  
        printf("选手 %d 名次 %d 得分 %d\n", i + 1, ranks[i], scores[i]);  
    }  

    return 0;  
}

(2022年)2.某校团委需统计各班学生“青年大学习”的完成情况,请按要求编写C程序。

(1) 定义函数count,计算班级“青年大学习”完成比(=已完成人数/应完成人数*100%)。

(2) 在 count 函数中,根据完成比输出对应等级,对应关系为:完成比≥90%为“优秀”≥80%为“良好”,≥60%为“合格”,其他情况为“不合格”。

(3) 通过主函数对 count函数进行调用。

#include <stdio.h>
void count(int x,int y){
	float z;
	int m;
	z=(float)x/y;
	m=(int)(z*100)/10;
	printf("完成率=%lf%",z*100);
	printf("完成情况:");
	switch(m){
	 case 10:
	 case 9:printf("优秀");break;
	 case 8:printf("良好");break;
	 case 7:
	 case 6:printf("合格");break;
	 default:printf("不合格");
	}
}
main(){
	int a,b;
	printf("请输入完成人数和总人数:"); 
	scanf("%d,%d",&a,&b);
	count(a,b);
}

(2023年)用公式sin(x)=x-x的3次方/3的阶乘

24模拟

#include <stdio.h>
double f(double x,int n){
	double s=1;
	int i;
	for(i=1;i<=n;i++) s*=x+n;
	return s; 
}
main(){
	int i,n;
	double s=0,t=-1,x;
	scanf("%lf,%d",&x,&n);
	for(i=1;i<=n;i++){   
		s+=t*f(x,i)/(2*i+1);
		t=-t;
	}
	printf("s=%f\n",s); 
}


http://www.kler.cn/a/405179.html

相关文章:

  • 46并发编程(线程、进程)
  • 实战 | C#中使用YoloV8和OpenCvSharp实现目标检测 (步骤 + 源码)
  • Flink升级程序和版本
  • RPC安全可靠的异常重试
  • ARIA 属性详解:增强网页可访问性的关键工具
  • (二)Ubuntu22.04+Stable-Diffusion-webui AI绘画 中英双语插件安装
  • WPF里面的C1FlexGrid表格控件添加RadioButton单选
  • Hive离线数仓结构分析
  • 树莓派2装FreeBSD14.1 Raspberry Pi2 install FreeBSD14.1 00000121:error:0A000086:SSL
  • ✅✅✅【Vue.js】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本
  • 深度学习中的正则化技术
  • C++中的组合模式
  • 「Mac玩转仓颉内测版23」基础篇3 - 深入理解整数类型
  • Ubuntu24.04解决向日葵安装libgconf-2-4依赖问题
  • 鸿蒙学习高效开发与测试-ArkUI 框架(2)
  • MySQL 视图使用详解
  • [C#] 关于数组的详细解释以及使用注意点
  • 【QT常用技术讲解】QSettings把中文输入到配置文件
  • Nuxt.js 应用中的 webpack:configResolved事件钩子
  • 二叉树遍历相关算法题|后序遍历非递归|下到上左到右层次遍历|先序遍历非递归(C)
  • QT简单设计 网格布局 QT5.12.3环境 C++实现
  • 【pytorch-04】:线性回归案例(手动构建)
  • mongoDB回顾笔记(一)
  • springboot嗨玩旅游网站
  • 11.21 深度学习-tensor常见操作
  • Project指针pointer 作业