实验报告2-(样例)
- 格式:doc
- 大小:85.50 KB
- 文档页数:7
实验报告2课程C语言程序设计实验名称数据类型、运算符和表达式第页专业信息与计算科学班级__04__ 学号___105042009014 _ 姓名叶兰实验日期:2010 年 3 月13日评分一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2、掌握不同的数据类型之间赋值的规律。
3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
4、进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容1、练习使用C语言中数据类型的种类和作用。
2、练习各种类型变量的定义和使用。
3、灵活运用算术运算符和算术表达式。
4、练习深层次C程序的编辑、编译、连接和运行过程。
三、实验环境(1)硬件:PC机(2)软件:Windows 操作系统、VC++ 6.0和TC2.0四、实验步骤(描述实验步骤及中间的结果或现象。
在实验中做了什么事情,怎么做的,发生的现象和中间结果)1.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2;c1=’a’;c2=’b’;printf(“%c %c\n”,c1.c2);}(1)运行此程序,得到如下结果:(2)在上面printf语句的下面再添加一个printf语句:Printf(“%d %d\n”,c1,c2);再运行,得到如下结果:(3)将第4行该为:Int c1,c2;使之运行得到如下结果:(4)再将5,6行改为:c1=a;c2=b;再使之运行,运行结果出现两个错误:Compiling...sy2.cppE:\叶兰\试验2\sy2.cpp(5) : error C2065: 'a' : undeclared identifierE:\叶兰\试验2\sy2.cpp(6) : error C2065: 'b' : undeclared identifierError executing cl.exe.sy2.obj - 2 error(s), 0 warning(s)(5)再将5,6行改为:c1=”a”;c2=”b”;再使之运行,运行结果又出现两个错误:Compiling...sy2.cppE:\叶兰\试验2\sy2.cpp(5) : error C2440: '=' : cannot convert from 'char [2]' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast E:\叶兰\试验2\sy2.cpp(6) : error C2440: '=' : cannot convert from 'char [2]' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast Error executing cl.exe.sy2.obj - 2 error(s), 0 warning(s)(6)再将5,6行改为:c1=300;c2=400;再使之运行,得到如下结果:2.输入并运行下面的程序:#include<stdio.h>void main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c\n”,c4,c5);}个人分析结果为:aa bb cc abce t实际运行结果为:程序中的”’\101’,’\116’”代表八进制数,转化成十进制刚好是65、78,在ASCII 码表中刚好对应A与N。
3.输入并运行下面的程序:#include<stdio.h>Void main(){int a,b;unsigned c,d;long e,f;a=100;b=—100;e=50000;f=32767;c=a;d=b;printf(“%d,%d\n”,a,b);printf(“%u,%u\n”,a,b);printf(“%u,%u\n”,c,d);c=a=e;d=b=f;printf(“%d,%d\n”,a,b);printf(“%u,%u\n”,c,d);}运行得到如下结果:对照程序和运行结果分析如下:(1)将一个负整数赋值给一个无符号变量,无法执行,得到的是一个随机数。
他们在内存中的表示形式为:(2)将一个大于32767的长整数赋值给整型变量,可以实现,仍是原来的值。
(3)将一个长整数赋值给无符号变量,可以实现,仍是原来的值。
4、输入并运行下面的程序:#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d\n”,i,j,m,n);}(1)运行结果如下:该运行结果与我运行改程序前的估计不同,我估计的结果为:8、10、9、11.查阅书本第57页后得知,++i,--i代表在使用i之前先使i的值加(减)1,i++,i—代表在使用i之后使i的值加(减)1。
(2)将7、8行改为:m=i++;n=++j;再次运行,结果如下:(4)将程序改为:#include<stdio.h>void main(){int i,j;i=8;j=10;printf(“%d,%d, \n”,i++,j++);}运行结果如下:(4)在(3)的基础上,将printf语句改为:printf(“%d,%d, \n”++i,++j);运行结果如下:(5)再将printf语句改为printf(“%d,%d,%d,%d\n”,i,j,i++,j++);再次运行此程序,得到如下结果:(6)将程序改为:#include<stdio.h>void main(){int i,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j; \* m=m+(i++),n=n-(--j) *\printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);}运行该程序,得到结果如下:5、按要求编写程序,将“China”译成密码,密码规律:用原来字母后面第四个字母代替原来的字母。
(1)编写的程序如下:#include<stdio.h>void main(){int a='C',b='h',c='i',d='n',e='a';a=a+4;b=b+4;c=c+4;d=d+4;e=e+4;printf("%c%c%c%c%c\n",a,b,c,d,e);}运行结果如下:(2)改变a,b,c,d,e的初值为:‘T’,‘o’,‘d’,‘a’,‘y’,译码规律:用‘A’代替‘W’,用‘B’代替‘X’,用‘C’代替‘Y’,用‘D’代替‘Z’。
编写的程序如下:#include<stdio.h>void main(){int a='T',b='o',c='d',d='a',e='y';a=a-'W'+'A';b=b-'W'+'A';c=c-'W'+'A';d=d-'W'+'A';e=e-'W'+'A';printf("%c%c%c%c%c\n",a,b,c,d,e);}运行结果如下:(3)译码规律改为:将一个字母被它前面第四个字母代替。
编写程序如下:#include<stdio.h>void main(){int a,b,c;printf("请输入字母:\n");scanf("%d",&a);b='a';c=b-4;printf("%c\n",c);}运行该程序,系统没有检查出错误,但运行结果是错的,如下:我进行了修改与补充,但结果仍是错的,该实验失败。
(参照《C程序设计题解与上机指导》P238 实验2的要求完成)五、实验结果与讨论(描述最终得到的结果,并进行分析说明,可能的误差原因)这次试验有成功的例子,但也有失败的例子,实验过程中还有很多细节的地方没有注意到,像标点符号等,仍需改进。
六、总结(说明实验过程中遇到的问题及解决办法;新发现或个人的收获;未解决/需进一步研讨的问题或建议新实验方法等)通过这次试验我发现C程序中有很多特别的符号,不认识的话,不仅自己编写不出一个比较完整的程序,可能连别人编写好的程序我们都看不懂,所以一定要熟悉这些符号。