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