一、实验目的
(1)了解C 语言数据类型的意义,掌握基本数据类型变量的特点和定义方法。
(2)学会使用C 的算术运算符,以及包含这些运算符的算术表达式。
(3)掌握自加(++)和自减(--)运算符的使用。
(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程。
二、实验要点
基本数据类型包括整型、字符型、实型。
三、实验要求
(1)上机前先阅读和编写以下要调试的程序。
(2)上机输入和调试程序并存在磁盘上。
(3)检查实验结果是否正确。
四、实验内容
第一次实验内容:
- 重新开始一个新的程序
关闭所有工作空间,点击Visual C++ 6.0窗口的关闭按钮即可退出Visual C++ 6.0集成环境,再次进入Visual C++ 6.0集成环境,输入以下程序:
1. /* c1-3.c C语言的第三个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { int a=38; 5. printf("%d,%5d,%-5d\n",a,a,a); 6. printf("%d,%o,%x,%u\n",a,a,a,a); 7. }
注意观察两个printf函数语句输出结果有何不同?
- 在Visual C++ 6.0集成环境,输入以下程序:
1. /* c1-4.c C语言的第四个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { long int a=32767; 5. printf("a=%ld\t",a); 6. printf("a=%u\t",a); 7. printf("a=%d\n",a); 8. }
将程序中的a改为a=65535,并再次运行程序,观察结果。
- 在Visual C++ 6.0集成环境,,输入以下程序:
1. /* c1-5.c C语言的第五个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { char c1=97,c2=98; 5. int a=97,b=98; 6. printf("%3c,%3c\n",c1,c2); 7. printf("%d,%d\n",c1,c2); 8. printf("\n%c %c\n",a,b); 9. }
观察程序运行结果,掌握int与char类型数据的互通性。
- 在Visual C++ 6.0集成环境,输入以下程序:
1. /* c1-6.c C语言的第六个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { int a,b;a=2; 5. b=1%a; 6. printf("%d\n",1/a); 7. printf("b=%d\n",b); 8. printf("%f %f\n",(float)(1/a),(float)b); 9. }
观察程序运行结果,从中掌握类型转换运算符的使用。
- 在Visual C++ 6.0集成环境,输入以下程序:
1. /* c1-7.c C语言的第七个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { int i,j; 5. i=3; j=4; 6. printf("%d,%d\n",i++,++j); 7. printf("%d,%d\n",i,j); 8. printf("%d,%d\n",-i++,-++j); 9. }
观察程序运行结果,从中掌握自加自减运算符的使用。
- 在Visual C++ 0集成环境,输入以下程序
1. /* c1-8.c C语言的第八个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { int a,b;a=5; 5. a-=a*a; 6. printf("a=%d\n",a); 7. b=(a=3*5,a*4,a+5); 8. printf("a=%d, b=%d\n",a,b); 9. }
观察程序运行结果,从中掌握复合赋值运算符、逗号运算符的使用。
- 下面程序,计算输出当x=2.5,a=7,y=4.7时,表达式
x + a % 3 * (int) (x + y) % 2 / 4的运算结果z的值。
1. /* c1-9.c C语言的第九个程序 */ 2. #include "stdio.h" 3. void main( ) 4. { int a=7; 5. float x=2.5,y=4.7, z ; 6. z= x + a % 3 * (int) (x + y) % 2 / 4; 7. printf("z=%f\n",z); 8. }
第二次实验内容:
1. 调试程序,分析输出结果
(1)输入并运行以下程序。
1. main() 2. { float a,b; 3. a=123456.789e5; 4. b=a+20; 5. printf("a=%f,b=%f\n",a,b); 6. }
将第二行改为:
double a,b;
重新运行该程序,分析运行结果。
说明:由于实型变量的值是用有限的存储单元存储的,因此其有效数字的位数是有限的。float型变量最多只能保证7 位有效数字,后面的数字是无意义的,不能准确表示该数。
(2)输入并运行以下程序。
1. main() 2. { char c1,c2; 3. c1=97;c2=98; 4. printf("%c %c\n",c1,c2); 5. printf("%d %d\n",c1,c2); 6. }
① 将第二行改为:
int c1,c2;
再运行。
② 再将第三行改为:
c1=300;c2=400;
再运行,分析运行结果。
说明:字符型数据可作为整型数据处理,整型数据也可以作为字符型数据处理,但应注意字符数据只占一个字节,它只能存放0-255 范围的整数。
2.完成以下代码,并把程序调通,写出运行结果。
下面的程序计算由键盘输入的任意两个整数的平均值:
1. main() 2. { int x,y ; 3. float a; 4. scanf(“%d,%d”,&x,&y); 5. a=(x+y)/2; 6. printf("The average is :%f ",a);