资源描述
实验报告_实验3 顺序结构程序设计(学号_姓名)
一、实验目的:
1、熟悉赋值运算符的使用,能根据需要构建相应的赋值表达式,掌握两变量交换数据的方法;
2、继续熟悉整数相除、取余运算及数据类型转换等内容,能实现四舍五入保留指定位小数的算法;
3、熟悉常用数学函数的使用;
4、通过样例加深对printf()常用格式控制符功能的理解,掌握printf()函数的使用;
5、掌握scanf()函数的使用,能正确输入数据;
6、掌握顺序结构程序设计的方法,能够画传统的流程图和N_S流程图。
二、实验内容
1、(基础题)编写程序,将10000秒转换成以“xx时xx分xx秒”格式输出。
(提示:可考虑整数的/、%运算)
#include<stdio.h>
int main()
{
int h,m,s,a;
a=10000;
h=10000/3600;
m=10000%3600/60;
s=10000%60;
printf("%d时º¡À%d分¤?%d秒?\n",h,m,s);
return 0;
}
2、(基础题)编程实现:先定义两个整数变量,然后输入两个值,再交换这两个变量的值,最后输出交换后的新值。如下图所示:
问题:
#include<stdio.h>
int main()
{
int a,b,temp;
printf("inter a,b: ");
scanf("%d,%d",&a,&b);
printf("交?换?前¡ã,ê?a=%d,b=%d\n",a,b);
temp=a;
a=b;
b=temp;
printf("交?换?后¨®,ê?a=%d,b=%d\n",a,b);
return 0;
}
(1) 语句组:a=b; b=a; 能交换a、b的值吗?
不能
(2) 若不能,如何改进?
使用第三变量再进行交换操作
(3)画出程序的传统流程图。
3、(基础题)运行下列程序,体会printf()中“格式控制符”的用法,并回答相关问题:
#include <stdio.h>
int main( )
{
int k=1234;
double f=12345.0123456789;
char * p="China";
printf ("%%d格式符:\n");
printf ("%d\n",k);
printf ("%6d\n",k);
printf ("%06d\n",k);
printf ("%2d\n\n",k);
printf ("%%f格式符:\n");
printf ("%f\n",f);
printf ("%lf\n",f);
printf ("%15f\n",f);
printf ("%15.4f\n",f);
printf ("%-15f\n",f);
printf ("%-15.4f\n",f);
printf ("%.2f\n",f);
printf ("%30.20f\n\n",f);
printf ("%%e格式符:\n");
printf ("%e\n",f);
printf ("%15e\n",f);
printf ("%15.4e\n",f);
printf ("%-15e\n",f);
printf ("%-15.4e\n",f);
printf ("%.2e\n",f);
printf ("%30.20e\n\n",f);
printf ("%%s格式符:\n");
printf ("%s\n",p);
printf ("%10s\n",p);
printf ("%-10s\n\n",p);
return 0;
}
问题:请说明格式控制符%d、%f、%e、%s的基本用法。
%d:用来输入有符号的十进制整数
%f:用来输入实数,可以用小数形式或指数形式输入
%e:与f作用相同
%s:用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。
4、(基础题)分析、运行下列程序,要让各变量得到对应的值:a=3, b=7, x=8.5, y=71.82, c1=’A’, c2=’a’。问键盘上该如何输入?并回答相关问题。
#include <stdio.h>
int main( )
{
int a, b;
float x, y;
char c1,c2;
scanf("a=%d,b=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("a=%d, b=%d\n",a,b);
printf("x=%f, y=%f\n",x,y);
printf("c1=%c,c2=%c\n\n",c1,c2);
return 0;
}
问题:
(1) scanf()函数应如何书写?
Scanf(格式控制,地址表列)
(2) 输入不同类型数据时,应注意什么?
1、 scanf函数中的”格式控制”后面应当是变量地址,而不是变量名;
2、 如果再”格式控制字符串”中除了格式声明以外还有其他字符,则在输入数据是在对应的位置上应输入与这些字符相同的字符;
3、 在用%c格式 声明输入字符时,空格字符和转义字符中的字符都作为有效字符输入;
4、 在输入数值数据时,如输入空格、回车、Tab键或遇非法字符认为该数据结束;
5、(提高题)以下程序实现的功能是:输入一个double类型的数据,使该数保留两位小数,对第三位小数进行四舍五入处理,然后输出此数,查验处理是否正确。请根据注释和运行截图填充程序。
程序代码:
#include <stdio.h>
int main( )
{
double x;
printf("Enter x=");
scanf("%lf",&x);
printf("(1) x=%f.....原始数据\n",x);
printf("(2) x=%.2f.....格式控制数据\n",x);
x=_____________; //x扩大100倍
x=_____________; //x增加0.5
x=_____________; //对x 取整后再赋值给x
x=_____________; //x缩小100倍
printf("(3) x=%f.....处理后数据\n",x);
return 0;
}
程序运行截图:
#include <stdio.h>
int main( )
{
double x;
printf("Enter x=");
scanf("%lf",&x);
printf("(1) x=%f.....原始数据\n",x);
printf("(2) x=%.2f.....格式控制数据\n",x);
x=x*100; //x扩大倍
x=x+0.5; //x增加0.5
x=(int)x; //对x 取整后再赋值给x
x=x/100; //x缩小倍
printf("(3) x=%f.....处理后数据\n\n",x);
return 0;
}
6、(提高题)改错题:以下程序有多处错误,若按下列截图所示格式输入、输出数据,请在程序的相应位置上改正错误。
程序代码:
main
{
double a, b, c, s, v ;
printf(input a, b,c :\n);
scanf("%d %d %d",a, b,c);
s=a*b; /*计算长方形面积*/
v=a*b*c; /*计算长方体面积*/
printf("%d %d %d",a, b,c);
printf("s=%f\n",s,"v=%d\n",v);
}
运行截图:
#include <stdio.h>
int main()
{
double a, b, c, s, v ;
printf("input a, b,c :");
scanf("%lf%lf%lf",&a,&b,&c);
s=a*b; /*计算长方形面积*/
v=a*b*c; /*计算长方体面积*/
printf("a=%f, b=%f, c=%f\n",a, b,c);
printf("s=%f, v=%f\n\n",s,v);
return 0;
}
展开阅读全文