C语言练习作业1

1.在屏幕上显示一个短句“Hello World!”。
/*显示“Hello World!”*/
#include<stdio.h>	//编译预处理命令
int main(void){		//主函数
	printf("Hello World!");		//调用printf()函数输出文字
	return 0;
}
2.在屏幕上显示两个短句“Programming is fun.”和“And programming in C is even more fun!”,每行显示一句。
/*显示两行文字*/
#include<stdio.h>	//编译预处理命令
int main(void){		//主函数
	printf("Programming is fun.\n");
	printf("And programming in C is even more fun!\n");
	return 0;
}
3.输出倒三角图案,行数为4行。
/*显示倒三角图案*/
#include<stdio.h>	//编译预处理命令
int main(void){		//主函数
	char c;
	int rows = 4;
	int i, j;
		
	scanf("%c",&c);
	for (i = 0; i < rows; i++) {
		for (j = 0; j < i; j++) {
			printf(" ");
		}
		for (j = 0; j < rows - i; j++) {
			printf("%c",c);
		}
			printf("\n");
		}
		
	return 0;
}
4.求华氏温度100℉对应的摄氏温度。c表示摄氏温度,f表示华氏温度,计算公式为c=5/9×(f-32)。
/*将华氏温度转换为摄氏温度*/
#include<stdio.h>	
int main(void){	
	int celsius,fahr;  //celsius表示摄氏度,fahr表示华氏度
	
	fahr=100;
	celsius=5*(fahr-32)/9;
	
	printf("fahr=%d,celsius=%d\n",fahr,celsius);
	return 0;
}
5.计算物体自由下落的距离:一个物体从100米的高空自由落下,求它在前3秒内下落的垂直距离。设重力加速度为10m/s²。
/*求距离*/
#include<stdio.h>	
int main(void){	
	float height;  //高度
	int time=3;  //时间为3秒
	int g=10;  //重力加速度
	
	height=0.5*g*time*time;
	printf("下降的高度为%.2f米\n",height);
	
	return 0;
}
6.为鼓励居民节约用水,自来水公司采取用水量按月分段计费的办法,居民应交水费y(元)与月用水量x(吨)的函数关系式如下(设x>=0)。输入用户的月用水量x吨,计算并输出该用户应支付的水费y元(保留两位小数)。
/*计算二分段函数*/
#include<stdio.h>	
int main(void){	
	double x,y;
	
	printf("请输入用水量(单位:吨):");
	scanf("%lf",&x);
	if(x<=15&&x>=0){
		y=4*x/3;
		printf("%.2lf吨水应交水费%.2lf元",x,y);
	}
	else if(x>15){
		y=2.5*x-10.5;
		printf("%.2lf吨水应交水费%.2lf元",x,y);
	}
	else{
		printf("ERROR!");
	}
	
	return 0;
}
7.坚持的力量。以第一天的能力值为基数,用initial表示,能力值相比前一天提高的值factor就是努力参数,坚持天数为day,让我们一起来看看坚持的力量。输入能力的初始值initial、努力参数factor和坚持天数day,根据公式result=initial(1+factor)^day计算出坚持努力后达到的能力值,输出时保留两位小数。
/*坚持的力量*/
#include<stdio.h>	
#include<math.h>
int main(void){	
	int day;//天数
	double initial,factor,result;//初始值,努力参数,结果
	
	printf("请输入initial、factor、day,用空格隔开:");
	scanf("%lf%lf%d",&initial,&factor,&day);
	
	result=pow(initial*(1+factor),day);
	printf("坚持%d天后达到的能力值为%.2lf",day,result);
	
	return 0;
}
8.输入两个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加1℉。计算公式为c=5×(f-32)/9,其中c表示摄氏温度,f表示华氏温度。
/*输出华氏-摄氏温度转换表*/
#include<stdio.h>	
int main(void){	
	int fahr,lower,upper;//华氏度,温度下限,温度上限
	double celsius;//摄氏度
	
	printf("请输入温度下限和温度上限(用空格隔开):");
	scanf("%d%d",&lower,&upper);
	
	if(lower>upper){
		printf("ERROR!");
	}
	else{
		printf("fahr  celsius\n");
		for(fahr=lower;fahr<=upper;fahr++){
			celsius=(5.0/9.0)*(fahr-32);
			printf("%3.d%8.2lf\n",fahr,celsius);
		}
	}
	
	return 0;
}
9.累加求和。输入一个正整数n,求\sum_{i=1}^{n}i
/*累加求和*/
#include<stdio.h>	
int main(void){	
	int n;
	int sum=0;
	
	printf("请输入正整数n:");
	scanf("%d",&n);
	
	for(int i=0;i<=n;i++){
		sum+=i;
	}
	printf("从1至n的累加和为:%d",sum);
	
	return 0;
}
10.输入一个正整数n,计算1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+...的前n项和。
/*求前n项和*/
#include<stdio.h>	
int main(void){	
	int denominator,flag,n;  //denominator为分母,flag为正负号,n为项数
	double item,sum;  //item为单项值,sum为求和结果
	
	flag=1;  //flag表示第i项的符号,初始值为正
	denominator=1;  //denominator表示第i项的分母,初始值为1
	item=1;//第一项初值
	sum=0;//求和结果初值
	
	printf("请输入一个正整数n:");
	scanf("%d",&n);
	
	for(int i=1;i<=n;i++){
		sum+=item;
		flag=-flag;//正负号交替
		denominator=denominator+2;//下一项分母增加
		item=flag*1.0/denominator;//下一项值
	}
	
	printf("前n项和为%lf",sum);
	
	return 0;
}
11.从键盘输入一个正整数n,计算n!。
/*计算n!*/
#include<stdio.h>	
int main(void){	
	int n;
	double product=1;//阶乘结果初始化
	
	printf("请输入一个正整数n:");
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		product*=i;
	}
	printf("n!=%.0lf",product);
	
	return 0;
}
12.输入一个正整数n,生成一张2的乘方表,输出2^{0}2^{n}的值,可以调用幂函数计算2的乘方。
/*输出乘方表*/
#include<stdio.h>	
#include<math.h>
int main(void){	
	int n;
	double power;
	
	printf("请输入一个正整数n:");
	scanf("%d",&n);
	printf("2^i =  power\n");
	printf("---------------\n");
	
	for(int i=0;i<=n;i++){
		power=pow(2,i);
		printf("2^%d =  %.0lf\n",i,power);
	}
	
	return 0;
}
13.输入一个正整数n(n<=16)生成一张阶乘表,输出0!到n!的值。要求定义和调用函数fact(n)计算n!,然后在程序中调用该函数。
/*输出阶乘表*/
#include<stdio.h>	
double fact(int n){
	double product=1;
	
	for(int i=1;i<=n;i++){
		product*=i;
	}
	
	return product;
}

int main(void){	
	int n;
	
	printf("请输入一个正整数n:");
	scanf("%d",&n);
	printf("i! =  fact(i)\n");
	
	for(int i=0;i<=n;i++){
		printf("%d! =  %.0lf\n",i,fact(i));
	}
	
	return 0;
}
14.简单的猜数游戏。输入你所猜的整数(假定1~100),与计算机产生的被猜数比较,若相等,显示猜中;若不等,显示与被猜数的大小关系。
/*简单的猜数游戏*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
	int guess;
	int target;
	char choice;
	srand(time(NULL));  // 初始化随机数生成器
	
	target = rand() % 100 + 1;  // 生成1到100之间的随机数
	
	do {
		printf("请输入你猜测的整数(1~100):");
		scanf("%d", &guess);
		
		if (guess == target) {
			printf("恭喜你猜中了!\n");
			break;
		} else if (guess < target) {
			printf("你猜的数小了。\n");
		} else {
			printf("你猜的数大了。\n");
		}
		
		printf("是否继续猜数?(Y/N):");
		scanf(" %c", &choice);  // ※注意空格,用于吸收换行符
		
	} while (choice == 'Y' || choice == 'y');
	
	return 0;
}
15.奇偶分家。输入一个正整数n,再输入n个非负整数,统计奇数和偶数各有多少个?
/*奇偶分家*/
#include <stdio.h>
int main() {
	int count_ji=0,count_ou=0,n,number; 
	//count_ji记奇数个数,count_ou记偶数个数,n为输入数字总个数,number用于判断奇偶
	
	printf("请输入数字个数n:");
	scanf("%d",&n);
	printf("请输入数据:\n");
	for(int i=0;i<n;i++){
		scanf("%d",&number);
		
		//判断奇偶
		if(number%2==0)
			count_ou++;
		else
			count_ji++;
	}
	
	printf("输入的数据奇数个数有%d个,偶数个数有%d个",count_ji,count_ou);
	
	return 0;
}
16.统计指定数量学生的平均成绩与不及格人数。输入一个非负整数n,在输入n个学生的成绩,计算平均分,并统计不及格成绩的学生人数。
/*成绩统计*/
#include <stdio.h>
int main() {
	int n,fail=0;//n为总人数,fail为不及格人数
	double score,sum=0,average;//sum为总分,average为平均分
	
	printf("请输入学生人数:");
	scanf("%d",&n);
	if(n==0)
		printf("学生人数不能为0!");
	else{
		for(int i=1;i<=n;i++){
			printf("请输入第%d个学生的成绩:",i);
			scanf("%lf",&score);
			if(score>100||score<0){
				printf("成绩不合法!");
				i--;
			}
			else{
				sum+=score;
				
				if(score<60)
					fail++;
			}
		}
		
		average=sum/n;
		
		printf("平均分为:%.2lf\n",average);
		printf("不及格人数为:%d",fail);
	}
	
	return 0;
}
17.求解简单的四则运算表达式。输入一个形式如“操作数  运算符  操作数”的四则运算表达式,输出运算结果,要求对除数为0的情况作特别处理。
/*求解四则运算表达式*/
#include <stdio.h>

// 函数声明
double calculate(double num1, char operator, double num2);

int main(void) {
	double num1, num2;
	char operator;
	
	// 获取用户输入的表达式
	printf("请输入一个形式如“操作数 运算符 操作数”的四则运算表达式:\n");
	scanf("%lf %c %lf", &num1, &operator, &num2);
	
	// 检查除数是否为0
	if (operator == '/' && num2 == 0) {
		printf("除数不能为0!\n");
	} else {
		double result = calculate(num1, operator, num2);
		printf("运算结果为:%.2lf\n", result);
	}
	
	return 0;
}

// 计算函数
double calculate(double num1, char operator, double num2) {
	double result;
	
	// 根据运算符执行对应的计算操作
	switch (operator) {
	case '+':
		result = num1 + num2;
		break;
	case '-':
		result = num1 - num2;
		break;
	case '*':
		result = num1 * num2;
		break;
	case '/':
		result = num1 / num2;
		break;
	default:
		printf("无效的运算符!\n");
		result = 0;
		break;
	}
	
	return result;
}
18.统计英文字母和数字字符。输入一个正整数n,再输入n个字符,统计其中英文字母、数字字符和其他字符的个数。
/*统计字符,包括英文字母、数字字符和其他字符*/
#include<stdio.h>
int main(void){
	int n,digit,letter,other;
	char ch;
	
	digit=letter=other=0;//赋初值为0
	printf("请输入一个正整数n:");
	scanf("%d",&n);
	getchar();//吸收换行符
	printf("请输入n个字符:");
	for(int i=1;i<=n;i++){
		ch=getchar();
		if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){//英文字符
			letter++;
		}else if(ch>='0'&&ch<='9'){//数字字符
			digit++;
		}else{//其他字符
			other++;
		}
	}
	
	printf("英文字符有%d个,数字字符有%d个,其他字符有%d个\n",letter,digit,other);
	
	return 0;
}

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你代码有bug!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值