C语言程序设计 顺序结构

发布时间:2024年01月23日

前言

???C语言程序设计实验-顺序结构,分享一下。

(1)理解运算符的优先级和结合性。?
(2)掌握算术表达式、赋值表达式的表示方法及运算顺序。?
(3)掌握printf()和scanf()函数的调用方法。?
(4)掌握 getchar()、putchar()、puts()和 gets()函数的调用方法。

程序题目及实现

(1)十进制数的分解与组合。从键盘输入1个4位的整数a,分解出每一个位数字,按逆序的数字组合出新的整数b。计算a+b。例如,输入:6829+9286=16115。 程序的结构及部分语句如下,请在“…”处添加语句完成整个程序并调试正确。程序中,变量d0,d1,d2,d3分别保存整数从个位到千位的每个数字。 程序的基本框架如下:?
#include <stdio.h>?
void main()?
{ ?int a,b,temp;?
?int d0,d1,d2,d3;?
?printf("请输入 1 个 4 位数字的整数:");?
?scanf("%4d",&a);?
………?
printf("%4d+%4d=%d\n",a,b,a+b); }?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

void main(){
	int a, b, temp;
	int d0, d1, d2, d3;
	printf("请输入 1 个 4 位数字的整数:");
	scanf("%4d", &a);
	d0 = a % 10; // 个位数
	d1 = a / 10 % 10; // 十位数 
	d2 = a / 100 % 10; //百位数
	d3 = a / 1000; //千位数
	b = d0 * 1000 + d1 * 100 + d2 * 10 + d3;
	printf("%4d+%4d=%d\n", a, b, a + b);
}

(2)假定高速公路的通行费用按实际行驶里程进行收费,现行标准为收费比率rate=0.40元/公里。某小型汽车的百公里平均耗油量为7.5升,试编写程序计算汽车的通行总费用(假设目前汽油价格为8.27元/升)。?

要求:输入行驶里程,输出对应的通行费用,汽油价格使用符号常量表示。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

int main() {
	float rate = 0.40, L1 = 7.5, L2 = 8.27, S, P;

	printf("请输入行驶里程:");
	scanf("%f", &S);

	P = rate * S + S / 100 * L1 * L2;
	printf("该车对应的通行费用:%.3f", P);
}

(3)编程完成数学公式的计算,从键盘输入x的值(实数x>0),显示的结果四舍五入保留4位小数。?
提示:调用库函数log(x),sqrt(x)求x的平方根,函数的参数和返回值都是double型。这些函数对应的头文件是math.h。?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <math.h> 

int main() {
	double x,y;
	printf("请输入实数 x > 0 的值:");
	scanf("%lf", &x);
	y = log(x + sqrt(x * x+1)) ;
	printf("输出结果为:%.4lf", y);
}

(4)随机产生2个大写字母并显示出来,然后将它们做按位异或运算,并以十六进制格式显示运算结果。?
提示:调用库函数rand()产生随机数,将随机整数与26进行求余运算转换成大写字母。rand()函数对应的头文件是stdlib.h。?

#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h> 
#include <time.h> 

void main() {
	char a, b;
	srand(time(NULL));
	a = rand() % 26 + 65;
	b = rand() % 26 + 65;

	printf("随机产生2个大写字母为:%c,%c\n", a, b);
	printf("它们做按位异或运算并以十六进制格式显示运算结果:%X", a ^ b);
}

(5)拓展题(选)?
数数的手指:一个小女孩正在用右手手指数数,从1到1000。如下图所示,她从拇指算作1开始数起,然后食指为2,中指为3,无名指为4,小指为5。接下来调转方向,小指算作6,无名指为7,中指为8,食指为9,接下来拇指算作10,如此反复。问如果继续这种方式数下去,最后结束时停在哪个手指上?请编程,从键盘输入n,从1数到“n”,输出最后停在哪根手指上。


?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

void main() {
	int a,n;

	printf("输入1到1000的数字:");
	scanf("%d", &n);
	a = n % 10;

	switch (a)
	{
	case 1:
		printf("该数字停在拇指上");
		break;
	case 2:
		printf("该数字停在食指上");
		break;
	case 3:
		printf("该数字停在中指上");
		break;
	case 4:
		printf("该数字停在无名指上");
		break;
	case 5:
		printf("该数字停在小指上");
		break;
	case 6:
		printf("该数字停在小指上");
		break;
	case 7:
		printf("该数字停在无名指上");
		break;
	case 8:
		printf("该数字停在中指上");
		break;
	case 9:
		printf("该数字停在食指上");
		break;
	case 0:
		printf("该数字停在拇指上");
		break;
	default:
		printf("输入错误!!!");
		break;
	}
}

总结

????????在本次实验中,对于其中用到的一些函数和关键字都还是比较生涩难懂,还需要不断的练习巩固。对于其中的一些程序代码也是生疏,写代码的速度也比较慢,需要一些时间的练习。相信在以后的学习中,能过发现自己的不足并改正,可以有更多的进步。

文章来源:https://blog.csdn.net/weixin_58063872/article/details/135708108
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。