实验二  顺序结构与输入/输出方法
一  实验目的
1  学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
2  掌握C语言中赋值语句的使用。
3  掌握C语言中各种数据的输入/输出方法,能正确使用基本格式符。
二  实验内容
输入下面的程序:
#include <stdio.h>
main()
{ int i,j,m,n;
i=8;j=10;
printf("%d,%d,%d,%d\n",i,j,m,n);    /* 5 */
m=++i;  n=j++;                      /* 6 */
printf("%d,%d,%d,%d\n",i,j,m,n);    /* 7 */
}
运行程序,分析第5行和第7行输出的不同。
调试分析:因为第五行的m,n没有赋初值,所以对应的m,n输出是乱的数字,第七行的m,n在第六行已赋初值,且i和j也相应的自加,结果如下图
⑴  将第6行按如下修改以后再运行,分析第5行和第7行输出的不同。
m=i++;  n=++j;                        /* 6 */
调试分析:m=i++是(m=i,i=i+1)。 n=++j;是(j=j+1,n=j)结果如下图
⑵  在程序最后增加两行,记录并分析该行的输出。
i=j=8;                              /* 8 */
printf("%d,%d,%d,%d\n",i,++i,j,j++); /* 9 */
    调试分析:结果如下图
2  运行以下程序,并分析输出结果
#include <stdio.h>
main()
{  int a=-2; long b; float c;
b=20000+20000;  c=1.23e-1;
printf("a=%d,%3d,%-3d,b=%Ld\n",a,a,a,b);
printf("a=%o,%x,%u\n",a,a,a);
printf("d=%f,%8.2f,%.2f\n",c,c,c);
printf("d=%e,%8.2e,%g\n",c,c,c);
printf("%c,%s,",'\072',"China");
printf("|-%5.2s|%5.2s|\n","China","China");
}
调试分析: 这个实验主要考察整型,长整型和浮点型等之间的输出,对浮点型小数点左右个数的考察,输出结果如下图
3  按格式要求输入、输出数据。
#include <stdio.h>
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%c",&c1,&c1,&c2);            /* 8 */
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);
}
运行该程序,按如下方式在键盘上输入数据,写出输出的结果。
a=3,b=7
85,71.82
Aa
  调试分析:主要是考察对输入输出的理解,以及输入输出要注意的问题,结果如下图:
【思考】程序第8行中,为什么变量c1要输入两次?
答:因为有3个%c,所以对应也要有总共3个输入,所以变量c1要输入两次,保证不出错。
4  以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A<回车>时程序的运行结果。
#include <stdio.h>
main()
{  int a;  float b;  char c;
scanf("%d,%f,%c",  &a,&b,&c );
printf("a= %d \n",a);
输出函数printf使用方法
printf("b= %f \n",b);
printf("c= %c \n",c);
}
调试分析: 输出结果如下图
5  指出以下程序的错误并改正,并上机把程序调通,记录输出的结果
#include <stdio.h>
main()
{  int a;
scanf("%f",a);
printf("a=%f, a);
char c;
c=A;
printf("%f,c)
}
主函数体可改为:
{  int a;
scanf("%d",&a);
printf("a=%d”, a);
char c;
c=’A’;
printf("%d”,c);
}
结果:输入5  回车输出:5A
6  编写根据圆柱体半径r,圆柱高h,求圆柱底周长l,底面积s,圆柱体积v的程序。要求用scanf输入数据,用printf输出计算结果,小数点后取3位数字。
键盘输入半径r为2.14,高h为3.48,记录程序运行后的输出结果。
程序如下:
#include <stdio.h>
main()
{float r,h,l,s,v;
scanf(“%f,%f”,&r,&h);
l=2*3.14159*r;
s=3.14159*r*r;
v=3.14159*r*r*h;
printf("圆柱底周长l为%.3f\n",l);
printf("底面积s为%.3f\n",s);
printf("圆柱体积v为%.3f\n",v);
}
运行结果如下:
三  思考题
编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:
程序如下:
#include<stdio.h>
main()
{
    char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
putchar(\n);
pritf(%c,%c\n,c1,c2);
}
⑴  变量c1,c2应定义为字符型或整型?还是二者皆可?
二者皆可
⑵  要求输出c1c2的ASCII码,应如何处理?用putchar函数还是printf函数?
printf函数
⑶  整型变量和字符型变量是否在任何情况下都可以互相代替?
在0127范围内可以互相代替
实验总结:本次实验主要是掌握使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用,掌握C语言中赋值语句的使用,掌握C语言中
各种数据的输入/输出方法,能正确使用各种格式转换符,通过本次实验加深了对顺序结构的输入输出的认识。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。