1、实验2 数据类型与表达式中 南 大 学实 验 报 告课程名称 c+程序设计 实验项目名称 实验4 实验5 实验6 指导老师 向瑶 实验学生班级 电子信息工程1503 实验学生姓名 陶韬 学号 0903130309 实验时间 2016.4.1至4.10 实验地点 校本部科技楼4楼实验成绩评定 实验二 数据类型与表达式实验2.1输入并运行下面的程序#includeusing namespace std;int main() int a,b; char c1,c2; cinab; c1=+a; c2=b+; coutc1=c1 ,c2=c2endl; return 0;因为连续输入求结果为了省去重复
2、编译运行我们可以加上一个while循环 改进后的代码为 #includeusing namespace std;int main() int a,b,flag; char c1,c2; while(flag!=0) coutab; c1=+a; c2=b+; coutc1=c1 ,c2=c2endl; return 0;实验2.1的运行结果输入 97 97 结果 c1=b ,c2=a对于c1 而言a先自加再赋给c1 对于c2而言 b先赋给c2再自加输入 97 353 结果 c1=b ,c2=a因为b的值为353 而353 的二进制表示为1 0110 0001 又char类型只占一个字节也就是八
3、位 所以截取 353的二进制的低八位0110 0001 也就是十进制的97 输入 40 64 结果 c1=),c2= 41对应的ASCII码值 对应的字符是)64对应的ASCII码值对应的字符是整型和字符型在一定范围内可以转换输入 -212 -216 结果 c1=- ,c2=(分析因为负数在计算机中是以补码的形式存在的-212+1=-211-211 的原码为 1000 0000 0000 0000 0000 0000 0000 0000 1101 0011(最高位为符号位)原码取反 1111 1111 1111 1111 1111 1111 1111 1111 0010 1100再加1 111
4、1 1111 1111 1111 1111 1111 1111 1111 0010 1101因为char类型只占一个字节也就是8位所以只去低八位 也就是0010 1101 换算成十进制也就是 45 而45对应的ASCII码值对应的char 为-216的原码为 1000 0000 0000 0000 0000 0000 1101 1000原码取反 1111 1111 1111 1111 1111 1111 0010 0111+1 1111 1111 1111 1111 1111 1111 0010 1000取低八位 0010 1000 40(实验2.2#includeusing namespac
5、e std;int main() char c1=c,c2=+,c3=+; coutI say:c1c2c3; coutttHe says:C+ is very intersting!n; return 0;实验2.2结果I say:”C+” He says :”C+ is very interesting”实验2.3#includeusing namespace std;int main() int i,j,m,n; i=8; j=10; m=+i+j+; n=(+i)+(+j)+m; coutitjtmtnendl; return 0;输出结果为10 12 19 41将第七八行改为m=i+
6、 +j+;n=(i+)+(j+)+m;输出结果为10 12 18 38将第九行cout语句改为cout+it+jt+mt+nendl;11 13 19 39再将cout语句改为couti+t+j+tm+tn+endl;10 12 18 38实验2.4.1代码#includeusing namespace std;main() char c5; int i=1; for(i=0;i5;i+)/把密码原文存储在一个字符数组中 cout请输入第i+1个字母ci; for(i=0;i5;i+)/进行加密 ci+=4; coutPassword is:; for(i=0;i5;i+)/输出加密后的密码
7、coutci; coutendl;输出结果请输入第1个字母C请输入第2个字母h请输入第3个字母i请输入第4个字母n请输入第5个字母aPassword is:GlmrePress any key to continue实验2.4.2改变c1 c2 c3 c4 c5 的初值为T,o,d,a,y对译码规律作如下补充:W用A代替,X用B代替,Y用C代替,Z用D代替。修改程序并运行。分析: W的ASCII码为87 A为65 所以减去22就可以代码#includeusing namespace std;main() char c5; int i=1; for(i=0;i5;i+)/把密码原文存储在一个字符
8、数组中 cout请输入第i+1个字母ci; for(i=0;i5;i+)/进行加密 if(ci=87)/ 对W X Y Z作特殊处理 ci-=22; else ci+=4; coutPassword is:; for(i=0;i5;i+)/输出加密后的密码 coutci; coutendl;运行结果请输入第1个字母T请输入第2个字母o请输入第3个字母d请输入第4个字母a请输入第5个字母yPassword is:XshePress any key to continue这里应该是题目出错了 题目原意应该是将小写的 w,x,y,z 替换为大写的W X Y Z因为大写的W X Y Z 就算加上4 还
9、是在字母表的范围内 这里给出了修改后题目的代码以及运行结果 望老师批评改正代码#includeusing namespace std;main() char c5; int i=1; for(i=0;i5;i+)/把密码原文存储在一个字符数组中 cout请输入第i+1个字母ci; for(i=0;i5;i+)/进行加密 if(ci=119)/ 对W X Y Z作特殊处理 ci-=54; else ci+=4; coutPassword is:; for(i=0;i5;i+)/输出加密后的密码 coutci; coutendl;运行结果#includeusing namespace std;ma
10、in() char c5; int i=1; for(i=0;i5;i+)/把密码原文存储在一个字符数组中 cout请输入第i+1个字母ci; for(i=0;i5;i+)/进行加密 if(ci=119)/ 对W X Y Z作特殊处理 ci-=54; else ci+=4; coutPassword is:; for(i=0;i5;i+)/输出加密后的密码 coutci; coutendl;实验2.4.3将译码规则修改为:将一个字母被它前面第四个字母代替,例如E用A代替,Z用U代替 ,D用Z代替,C 用y代替,B用x代替,A用w代替(这里是我修改后的题目 原题应该也是不严谨的)代码#inclu
11、deusing namespace std;main() char c5; int i=1; for(i=0;i5;i+)/把密码原文存储在一个字符数组中 cout请输入第i+1个字母ci; for(i=0;i5;i+)/进行加密 if(ci=65)/ 对W X Y Z作特殊处理 ci+=54; else ci+=4; coutPassword is:; for(i=0;i5;i+)/输出加密后的密码 coutci; coutendl;运行结果请输入第1个字母C请输入第2个字母h请输入第3个字母i请输入第4个字母n请输入第5个字母aPassword is:ylmrePress any key to continue
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1