实验2顺序结构程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》实验报告
----------------------------------------------------------------------------------------------
实验2顺序结构程序设计
一、实验目的
(1)掌握C语言中赋值语句的使用方法。
(2)掌握各种类型数据的输入与输出方法,能正确使用各种格式转换符。(3)掌握C语言的顺序结构程序设计。
二、实验内容与步骤
1.输入程序,观察程序运行结果
(1)输入并运行下面的程序,掌握用scanf()函数输入多个整型数据时,格式说明中无分隔符的正确使用。
/*c2-1.c*/
#include
int main()
{
int i,j;
printf("Enter i,j\n");
scanf("%d%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
return 0;
}
总结与反思:1.printf("E nter i,j\n");语句是对下面的输入语句起提示作用;2.本题
在scanf()语句中,输入两个整数之间可用空格、Tab或回车键分隔,但用其他的分隔符不能得到正确的值。
(2)输入并运行下面的程序,掌握用scanf()函数输入多个整型数据时,格式说明中逗号分隔符的正确使用。
/*c2-2.c*/
#include
int main()
{
int i,j;
printf("Enter i,j\n");
scanf("%d,%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
return 0;
}
总结与反思:本题在scanf()语句中,输入两个整数之间必须用逗号分割,用
其他的分隔符时第一个变量能得到正确的值,第二个变量不能得到正确的值。(3)输入并运行下面的程序,掌握格式scanf()函数中普通字符按原样输入的使用方法。
/*c2-3.c*/
#include
int main()
{
float i,j;
scanf("i=%f,j=%f",&i,&j);
printf("i=%.3f,j=%.3f\n",i,j);
return 0;
}
总结与反思:用scanf()函数输入内容,必须严格按照格式说明部分进行键入。
(4)输入并运行下面的程序,如果scanf()函数中格式与变量类型的对应关系错误,将不能得到正确的结果。
/*c2-4.c*/
#include
int main()
{
int i,j;
scanf("%f,%f",&i,&j);
printf("i=%d,j=%d\n",i,j);
return 0;
}
总结与反思:1.与int(基本整型)对应的应是%d,与float(浮点型)对应的是%f。
2.scanf()函数格式说明应与定义的变量类型一致!
(5)输入一个大写字母A,将它转换为小写字母a,输出小写字母a及对应的ASCII码值97,要求输出格式为“j=a,j=97”,完善下面程序中的输出语句。
/*c2-5.c*/
#include
int main()
{
int j;char i;
scanf("%c",&i);
j=i+32;
printf("j=%c,j=%d\n",j,j);
return 0;
}
总结与反思:输出语句用printf("格式说明",要输出的量);格式说明(除
去%d、\n等)是原样输出的,用要输出的量来代替%d,\n是换行符。
(6)输出以下程序,运行程序并按要求修改程序。
/*c2-6.c*/
#include
int main()
{
int a,b;
float d,e;
char c1,c2;
double f,g;
long m,n;
unsigned int p,q;
a=61;b=62;
c1='a';c2='b';
d=3.56;e=-6.87;
f=3157.890121;g=0.123
456789;
m=2147483547;n=-2147483548;
p=2147483547;q=4000000000;
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);
printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);
return 0;
}
②在此基础上修改程序的第8-13行。
问题来了:(a,b)(d)(m,n)(p,q)为何这样输出?
③改用scanf函数输入数据而不用赋值语句,scanf函数如下:
scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,& p,&q);
④将printf语句改为:
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);
printf("f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n",f,g,m,n,p,q);
⑤将p,q改用%o格式符输出。
⑥将scanf函数中的%lf和%ld改为%f和%d
总结与反思:1.1f和1d格式符分别用于输入double型和long型数据;2.%f系
统默认小数点后6位;
(7)将a、b两个变量的值交换后,如果按“a=2,b=1”的格式输出,完善下面程序中的输出语句。
/*c2-7.c*/
#include