资源描述
实验二 数据类型、运算符和表达式应用
一、实验目的
1.掌握C语言数据类型的种类和作用;
2.熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;
3.掌握不同的类型数据之间赋值的规律;
4.灵活运用各种运算符及其表达式;
5.掌握C 语言中++、――运算符的运算规则。
6.进一步熟悉C程序的结构特点,学习简单程序的编写方法。
二、实验学时数
2学时
三、实验步骤
(一)阅读程序
1. 输入并运行以下程序,观察运行结果。
#include<stdio.h>
void main()
{
char c1,c2;
c1=97;c2=98;
printf("%c,%c\n",c1,c2);
}
(1)在此基础上加入以下printf语句,并运行。
printf("%d,%d\n",c1,c2);
分析结果
a,b
97,98
运行结果
a,b
97,98
(2)将第二行改为以下语句,并运行。
int c1,c2;
分析结果
a,b
运行结果
a,b
(3)将第三行改为以下语句,并运行。
c1=300;c2=400;
分析结果
, ,
运行结果
, , ?
2.若x的值为10,输出结果为什么
#include <stdio.h>
main()
{
float x,y;
scanf("%f",&x);
printf("\n2.4*x-1/2=%f",2.4*x-1.0/2);
printf("\nx%%2/5-x=%f",(int)(x)%2/5-x);
printf("\n(x-=x*10,x/=10)=%f",(x-=x*10,x/=10));
}
分析结果
2.4*x-1/2=23.500000
x%2/5-x=-10.000000
(x-=x*10,x/=10)=-9.000000
运行结果
2.4*x-1/2=23.500000
x%2/5-x=-10.000000
(x-=x*10,x/=10)=-9.000000
3.(1)
行号
1 #include <stdio.h>
2 main()
3 {
4 int i , j , m , n ;
5 i=8; j=10;
6 m=++i;
7 n=j++;
8 printf(“%d,%d,%d,%d”,i,j,m,n);
}
分析结果
9,11,9,10
运行结果
9,11,9,10
(2) 将第6、7行改为:m=i++;
n=++j;
分析结果
9,11,8,11
运行结果
9,11,8,11
(3)程序改为:
#include <stdio.h>
main()
{
int i , j , m=0 , n=0 ;
i=8; j=10;
m+=i++;
n-=--j;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
分析结果
9,9,8,-9
运行结果
9,9,8,-9
(二)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.求任意输入字符的ASCⅡ码。
main( )
{char a; int b;
printf(“输入一个字符”);
scanf(“%c”,&a);
b=(int)a;
printf(“\n\n%c的ASCⅡ码为%d”,a,b);
}
2、输出任意一个十进制数对应的八进制,十六进制数。
#include<stdio.h>
main( )
{ int a;
scanf(“%d”,&a);
printf(“\n%d(10) ,%o(8), %x(16)\n”, a,a,a );
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.行号 #include <stdio.h>
1 main( )
2 {int u=v=89;
3 printf(“\nu=%d,v=%d”,u,v);
}
正确
运行结果:u=89,v=89
错误
错误所在行:2
应改为:int u=89,v=89;
2.下面的程序试图计算由键盘输入的任意两个整数的平均值:
行号 #include <stdio.h>
1 main()
2 {
3 int x,y,a;
4 scanf("%x,%y",&x,&y);
5 a=(x+y)/2;
6 printf("The average is %d:", a);
7 }
调试无语法错误后,分别使用下列测试用例对上述程序进行测试:
2,6 1,4 -1,-3 -2,4 2,0
错误
错误所在行:4
应改为:scanf(“%d,%d”,x,y);
运行结果:
The average is 4
The average is 2
The average is -2
The average is 1
The average is 1
分析上述几组测试用例。通过测试,你发现程序有什么错误了吗?若有错误,请指出错误原因。
(四)编写程序
1. 编程求的和(精确到小数点后两位)。
#include<stdio.h>
void main()
{float sum;
sum=1.0/2+1.0/3.0+1/4.0;
printf(“sum=%.2f”,sum);
}
2.输入圆半径(5),输出圆的周长。
#include<stdio.h>
#define PI 3.1415926
void main()
{float r,l;
scanf("%f",&r);
l=2*PI*r;
printf("l=%f",l);
}
5
展开阅读全文