实验2 顺序结构程序设计
2.1 实验目的
1.掌握C语言数据类型的概念,熟悉如何定义一个整型、实型和字符型的变量,以及对它们赋值的方法。
2.掌握输出函数printf()及输入函数scanf()的各种格式控制符的用法。
3.掌握顺序结构程序设计方法及执行过程。
4.进一步熟悉C程序的编辑、编译、连接、运行的过程。
2.2 示例程序
【实验2.1】输入并运行以下程序。
#include<stdio.h>
main()
{
printf("What's "); /*输出What's */
printf("your "); /*输出your */
printf("name?\n"); /*’\n’是换行符*/
}
说明:
1.程序的运行结果为“What’s your name?”。
2.printf()函数中只有“格式控制字符串”部分,且只包含普通字符,所以会原样输出。
3.前两行的printf()函数中无换行符’\n’,不进行换行操作,第3行的printf()函数中包含换行符’\n’,字符串输出后换行,这样3个字符串输出到一行上。
【实验2.2】编写已知半径r为15求圆面积的程序。
#include <stdio.h>
#define PI 3.14159 /*定义符号常量PI*/
main()
{
float radius,area; /*定义浮点型变量radius,area*/
radius=15.0; /*给半径radius赋值 */
area=PI*radius*radius; /*计算圆面积area */
printf("area=%f\n", area ); /*输出圆面积*/
}
说明:
1.程序的运行结果为“area=706.857727”。
2.程序的第2行定义了符号常量PI。这样做的好处是程序中出现的所有PI,其值均为3.14159,既简化了程序,又提高了阅读性。
输出函数printf使用方法3.注意printf()函数中的“格式控制字符串”部分,area=为普通字符,所以会原样输出。
【实验2.3】整型变量的输出程序。
#include <stdio.h>
main( )
{
int a=126; /*定义整型变量a并赋值*/
long b=-1234567; /*定义浮点型变量a并赋值*/
unsigned c=50000; /*定义无符号变量c并赋值*/
printf("%d,%o,%x\n",a,a,a); /*分别按十进制、八进制及十六进制输出*/
printf("%5d,%-5d\n",a,a); /*分别按右对齐、左对齐格式输出*/
printf("%10ld,%3u\n",b,c); /*指定宽度输出*/
}
说明:
1.程序的运行结果为:(︺代表一个空格)
126,176,7e
︺︺126,126︺︺
︺︺-1234567,50000
2.数据按八进制、十六进制形式输出时,不显示进制标记(o、0x、0X等前缀)。
3.当输出数据的位数超出指定的宽度时,会突破指定的宽度限制,以确保输出数据的正确性。
【实验2.4】写出下面程序的输出结果。
#include <stdio.h>
main( )
{
int a;
float b;
printf("Enter a and b:",a,b); /*输出提示*/
scanf("%d%f",&a,&b); /*输入a、b的值*/
printf("\na=%d,b=%f\n",a,b); /*输出a、b的值*/
}
说明:
1.运行程序,若输入为“10︺22”,则输出的结果为:
a=10,b=22.000000
2.将输入语句改为“scanf("%3d%5f",&a,&b);”,运行程序,若输入“1︺123.4”,则输出结果为:
a=10,b=123.400002
从运行结果看,浮点数在输出时存在误差。
3.输入语句仍为“scanf("%3d%5f",&a,&b);”,运行程序,若输入为“123456”,则输出的结果为:
a=123,b=456.000000
变量a取3位得到123,变量f取5位,由4开始取出3位456,小数部分为6个0。
2.3 阅读程序
【实验2.5】输入并运行以下程序。给出注释和运行结果。
#include <stdio.h>
main( )
{
int a=123; /* */
float b=123.456; /* */
printf("%d,%5d\n",a,a);
printf("%f,%13f,%e,%15e,%g,%6g\n",b,b,b,b,b,b);
printf("%9.5f,%8.2f,%.0f,%-10.2f\n",b,b,b,b);
}
说明:
1.运行程序,输出的第一行结果为:
2.输出的第二行结果为:
3.输出的第三行结果为:
分析上述三行输出结果。
【实验2.6】输入并运行以下程序。给出注释和运行结果。
#include <stdio.h>
main( )
{
int a,b,c;
printf("Enter a,b="); /* */
scanf("%o,%x",&a,&b); /* */
c=a*b;
printf("%d,%o,%x\n",c,c,c); /* */
}
说明:
1.“%o”表示从键盘上输入八进制数据,输入时各位数字只能在0~7范围内。“%x”表示从键盘上输入十六进制数据,输入时各位数字只能在0~9、a~f范围内。
2.运行程序,输入“12,1a”输出的结果为:
分析上述输出结果。
2.4 完善程序
【实验2.7】输入并完善以下程序,使程序在两行输出。
#include <stdio.h>
main( )
{
int a,b;
a=8;
b=9;
printf("__________",a,a,a*a); /*输出8*8=64*/
printf("%d*%d=%d\n",___________); /*输出8*9=72*/
}
【实验2.8】程序实现从键盘输入3个变量的值,其中a=5,b=6,c=7,将3个变量的值进行交换,使得a=6,b=7,c=5。输入并完善以下程序。
#include <stdio.h>
main()
{
int a,b,c,__________; /*定义4个变量*/
printf("Enter a,b,c="); /*输出提示*/
scanf("%d%d%d",__________); /*输入3个变量的值*/
temp = a;
__________;
b=c;
__________;
printf("a=%d b=%d c=%d\n",a,b,c); /*输出处理后的数据*/
}
2.5 改错程序
【实验2.9】下面程序的功能是:给定三角形的底a和高h,求三角形面积。请改正程序中的错误,并调试。
注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。
【含有错误的程序代码】
#include <stdio.h>
main()
{
float a;
double area;
printf("Enter a,h=");
scanf("%f %f",a,h);
area=a*h/2;
printf("area=%d\n",area);
}
【实验2.10】下面程序的功能是:给定梯形的上底a、下底b和高h,求梯形面积。请改正程序中的错误,并调试。
注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。
【含有错误的程序代码】
#include <stdio.h>
main()
{
float a,b,h,area;
printf("Enter a,b,h=");
scanf("%f%f%f",&a,&b,&h);
area=1/2*(a+b)*h;
printf("area=%8.2f\n",area);
}
2.6 自己练习
1.编写程序,从键盘输入两个整数542561689和1351387245,计算并输出它们的和。
2.编写程序,从键盘输入四个整数a、b、c、d,a和d交换,b和c交换,输出交换后的值。
提示:实现交换两个变量的值的方法有两种(请对两种方法进行比较):
(1) 中间变量法。设t为中间变量,利用如下三条语句来交换变量a和b的值。
t = a: a = b: b = t
(2) 算术方法。利用如下三条语句来交换变量a和b的值。
a = a + b: b = a – b: a = a - b
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论