实验二 顺序结构与输入/输出方法
一 实验目的
1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
2 掌握C语言中赋值语句的使用。
3 掌握C语言中各种数据的输入/输出方法,能正确使用基本格式符。
二 实验内容
1 输入下面的程序:
#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应定义为字符型或整型?还是二者皆可?
二者皆可
⑵ 要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?
printf函数
⑶ 整型变量和字符型变量是否在任何情况下都可以互相代替?
在0—127范围内可以互相代替
实验总结:本次实验主要是掌握使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用,掌握C语言中赋值语句的使用,掌握C语言中
各种数据的输入/输出方法,能正确使用各种格式转换符,通过本次实验加深了对顺序结构的输入输出的认识。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论