实验二 数据类型、运算符
和表达式(1)
班级______________姓名___________指导老师_____________成绩___________
第_____________机房___________号机器 时间:________________________
实验目的:1,掌握C语言中数据类型的种类和作用。
2,掌握各种类型变量的定义和使用。
3,灵活运用算术运算符和算术表达式。
4,掌握深层次C程序的编辑、编译、连接和运行过程。
实验要求:1,实验前,务必预习实验内容,深刻理解其中的相关知识,先人工分析程序写出分析结果,然后上机运行、调试程序,得出最终正确结果。
2,实验中,认真思考所做的每一步操作,弄懂其中的道理。
3,实验后,精心总结经验教训,为今后学习奠定良好的基础。
实 验 内 容
一、读程序
要求:进一步学会运用Turbo C编辑C程序,不但要明白所给程序的含义,还要按要求得到正确的运行结果,并与分析结果相对比。
1,
#include <stdio.h>
main ( )
{char ch1,ch2; /*此行改为int ch1,ch2;再运行程序*/
ch1=65;ch2=’B’;
ch1=ch1+32;
ch2=ch1+1;
printf(“\n%c,%d”,ch1,ch1);
printf(“\n%c,%d”,ch2,ch2);
}
尝试新的程序运行方式。程序编辑完成后,按F9键编译,将光标放在ch1=ch1+32语句处,按Alt+R键,再按G键(或按F4键),使程序执行到光标所在处。此时,按Alt+B键,
再按W键(或按Ctrl+F7键),在Add Watch窗口中,输入ch1、ch2,按Enter键,查看编辑器下方的观察窗口(监视窗口)中,变量ch1、ch2的内容是多少。按Alt+R键,再按P键(或按Ctrl+F2键),使程序重新启动,再将光标放在printf语句处,用上述方法再查看变量ch1、
C语言程序设计上机指导与同步训练
·6·
·6·
ch2的变化。然后再按Ctrl+F9键,重新运行程序,切换到结果窗口,查看有何输出。
分析结果
运行结果
2,
#include <stdio.h>
main ( )
{float a,b,c,x;
a=-020;
b=0x11;
c=1.2e10;
x=b/a;
printf (“\na=%f,b=%f,c+33=%f,x=%f”,a,b,c+33,x);
}
分析结果
运行结果
3,
#include <stdio.h>
main ( )
{long x,y,z;
long a=3,b=7,c=5;
x=b/a;
y=b%c;
z=a%c+3;
printf("\nx=%ld,y=%ld,z=%ld”,x,y,z);
}
分析结果
运行结果
4,
#include <stdio.h>
void main( )
{
short int n=0x7fff;
short int m=n+1;
printf(“\nn=%d,m=%d”,n,m);
}
分析结果
运行结果
分析结果
运行结果
第一部分 C语言程序设计上机指导
·7·
·7·
二、完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。
1,求任意输入字符的ASCII码。
#include <stdio.h>
main( )
{ ;
printf(“输入一个字符”);
scanf(“%c”,&c);
i=(int)c;
printf(“\n\n%c的ASCⅡ 码为%d”,c,i);
}
2,输出与任意一个十进制数对应的八进制,十六进制数。
#include <stdio.h>
main( )
{int a;
scanf(“%d”,&a);
printf(“\n%d(10),%o(8)\n”,);
printf(,:%x(16)\n”,a,a);
}
3,求将460分钟换算成小时和分钟表示,然后输出。
#include <stdio.h>
main( )
{int i,h,m;;
h=i/60;
m=i-60*h;
printf(“\n\n%d minutes,%d hour%d minutes”,);
}
4,求表达式2a+b-10的值。(设a=16,b=15)
#include <stdio.h>
#include <math.h> /*调用标准数学函数*/
main( )
{float a,b,u;;
u=2*sqrt(a)+b-10;
printf(,u);
}
三、调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
C语言程序设计上机指导与同步训练
·8·
·8·
1,
#include <stdio.h>
main( )
{int k1=32769;
long k2=65536;
printf(“\n%d,%ld,%lo,%x\n”,k1,k2);
}
正确 运行结果,
错误所在,
错误
应改为,
2,
#include <stdio.h>
main( )
{char ch=’\t’; /*像使用其他字符那样来使用转义字符*/
printf(“\n%c%s”,c,“这是一个测试”);
}
正确 运行结果,
错误所在,
错误
应改为,
3,
#include <stdio.h>
main( )
{ch1=’a’;
ch2=98;
char ch3=’\103’,ch4=’\x44’;
clrscr( ); /*清除文本模式窗口的内容*/
printf(“%c%c\t%c\t%c\n”,ch1,ch2,ch3,ch4 );
printf(“\t\b%c%c\n”,ch1,ch2);
printf(“\t%c\r%c”,ch3,ch4);
}
正确 运行结果,
错误所在,
错误
应改为,
4,
#include <stdio.h>
main( )
{unsigned a=120.33;
double w,y,z;
double x=-80006.06;
第一部分 C语言程序设计上机指导
·9·
·9·
y=1.0/2*x;
z=1/2*x;
w=x%y;
printf(“\na=%d,x=%e,y=%f,z=%f,w=%f”,a,x,y,z,w);
}
正确 运行结果,
错误所在,
错误
应改为,
四、写程序
1,编程求
111
234
++的和(精确到小数点后两位)。
2,鸡兔同笼。总g3848数head=30,总g14062数feet=90。编程求鸡、兔g2520多少g2494。
3,求g8503方g1319的g1319g12227。设g17805g19283g10382,结果g1457g11053小数点后两位数字。