实验2 数据类型与表达式.docx

上传人:b****5 文档编号:27997869 上传时间:2023-07-07 格式:DOCX 页数:13 大小:16.66KB
下载 相关 举报
实验2 数据类型与表达式.docx_第1页
第1页 / 共13页
实验2 数据类型与表达式.docx_第2页
第2页 / 共13页
实验2 数据类型与表达式.docx_第3页
第3页 / 共13页
实验2 数据类型与表达式.docx_第4页
第4页 / 共13页
实验2 数据类型与表达式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验2 数据类型与表达式.docx

《实验2 数据类型与表达式.docx》由会员分享,可在线阅读,更多相关《实验2 数据类型与表达式.docx(13页珍藏版)》请在冰豆网上搜索。

实验2 数据类型与表达式.docx

实验2数据类型与表达式

 

中南大学

实验报告

 

课程名称c++程序设计

实验项目名称实验4实验5实验6

指导老师向瑶

实验学生班级电子信息工程1503

实验学生姓名陶韬

学    号0903130309

实验时间2016.4.1至4.10

实验地点校本部科技楼4楼

实验成绩评定

 

实验二数据类型与表达式

实验2.1

输入并运行下面的程序

#include

usingnamespacestd;

intmain()

{

inta,b;

charc1,c2;

cin>>a>>b;

c1=++a;

c2=b++;

cout<<"c1="<

return0;

 

}

因为连续输入求结果为了省去重复编译运行我们可以加上一个while循环改进后的代码为

#include

usingnamespacestd;

intmain()

{

inta,b,flag;

charc1,c2;

while(flag!

=0)

{

cout<<"请输入2个变量的值和一个控制变量除非控制变量为0\n否则程序将一直运行下去\n";

cin>>a>>b;

c1=++a;

c2=b++;

cout<<"c1="<

}

return0;

}

实验2.1的运行结果

输入9797结果c1=b,c2=a

对于c1而言a先自加再赋给c1对于c2而言b先赋给c2再自加

输入97353结果c1=b,c2=a

因为b的值为353而353的二进制表示为101100001又char类型只占一个字节也就是八位所以截取353的二进制的低八位01100001也就是十进制的97

输入4064结果c1=),c2=@

41对应的ASCII码值对应的字符是‘)’64对应的ASCII码值对应的字符是‘@’

整型和字符型在一定范围内可以转换

输入-212-216结果c1=-,c2=(

分析因为负数在计算机中是以补码的形式存在的

-212+1=-211

-211的原码为1000000000000000000000000000000011010011(最高位为符号位)

原码取反1111111111111111111111111111111100101100

再加11111111111111111111111111111111100101101

因为char类型只占一个字节也就是8位所以只去低八位也就是00101101换算成十进制也就是45而45对应的ASCII码值对应的char为‘-’

-216的原码为10000000000000000000000011011000

原码取反11111111111111111111111100100111

+111111111111111111111111100101000

取低八位00101000——————40——————‘(’

实验2.2

#include

usingnamespacestd;

intmain()

{

charc1='c',c2='+',c3='+';

cout<<"Isay:

\""<

cout<<"\t\t"<<"Hesays:

\"C++isveryintersting!

\""<<'\n';

return0;

 

}

实验2.2结果

Isay:

”C++”Hesays:

”C++isveryinteresting”

实验2.3

#include

usingnamespacestd;

intmain()

{

inti,j,m,n;

i=8;

j=10;

m=++i+j++;

n=(++i)+(++j)+m;

cout<

return0;

 

}

输出结果为

10121941

将第七八行改为

m=i+++j++;

n=(i++)+(j++)+m;

输出结果为

10121838

将第九行cout语句改为

cout<<++i<<’\t’<<++j<<’\t’<<++m<<’\t’<<++n<

11131939

再将cout语句改为

cout<

10121838

 

实验2.4.1

代码

#include

usingnamespacestd;

main()

{

charc[5];

inti=1;

for(i=0;i<5;i++)//把密码原文存储在一个字符数组中

{

cout<<"请输入第"<

cin>>c[i];

}

for(i=0;i<5;i++)//进行加密

{

c[i]+=4;

}

cout<<"Passwordis:

";

for(i=0;i<5;i++)//输出加密后的密码

{

cout<

}

cout<

 

}

输出结果

请输入第1个字母

C

请输入第2个字母

h

请输入第3个字母

i

请输入第4个字母

n

请输入第5个字母

a

Passwordis:

Glmre

Pressanykeytocontinue

实验2.4.2

改变c1c2c3c4c5的初值为‘T’,‘o’,‘d’,‘a’,‘y’对译码规律作如下补充:

W用A代替,X用B代替,Y用C代替,Z用D代替。

修改程序并运行。

分析:

W的ASCII码为87A为65所以减去22就可以

代码

#include

usingnamespacestd;

main()

{

charc[5];

inti=1;

for(i=0;i<5;i++)//把密码原文存储在一个字符数组中

{

cout<<"请输入第"<

cin>>c[i];

}

for(i=0;i<5;i++)//进行加密

{

if(c[i]<=90&&c[i]>=87)//对WXYZ作特殊处理

c[i]-=22;

else

c[i]+=4;

}

cout<<"Passwordis:

";

for(i=0;i<5;i++)//输出加密后的密码

{

cout<

}

cout<

 

}

运行结果

请输入第1个字母

T

请输入第2个字母

o

请输入第3个字母

d

请输入第4个字母

a

请输入第5个字母

y

Passwordis:

Xshe}

Pressanykeytocontinue

 

这里应该是题目出错了题目原意应该是将小写的w,x,y,z替换为大写的WXYZ

因为大写的WXYZ就算加上4还是在字母表的范围内

这里给出了修改后题目的代码以及运行结果望老师批评改正

代码

#include

usingnamespacestd;

main()

{

charc[5];

inti=1;

for(i=0;i<5;i++)//把密码原文存储在一个字符数组中

{

cout<<"请输入第"<

cin>>c[i];

}

for(i=0;i<5;i++)//进行加密

{

if(c[i]<=122&&c[i]>=119)//对WXYZ作特殊处理

c[i]-=54;

else

c[i]+=4;

}

cout<<"Passwordis:

";

for(i=0;i<5;i++)//输出加密后的密码

{

cout<

}

cout<

 

}

运行结果

#include

usingnamespacestd;

main()

{

charc[5];

inti=1;

for(i=0;i<5;i++)//把密码原文存储在一个字符数组中

{

cout<<"请输入第"<

cin>>c[i];

}

for(i=0;i<5;i++)//进行加密

{

if(c[i]<=122&&c[i]>=119)//对WXYZ作特殊处理

c[i]-=54;

else

c[i]+=4;

}

cout<<"Passwordis:

";

for(i=0;i<5;i++)//输出加密后的密码

{

cout<

}

cout<

 

}

实验2.4.3

将译码规则修改为:

将一个字母被它前面第四个字母代替,例如E用A代替,Z用U代替,D用Z代替,C用y代替,B用x代替,A用w代替(这里是我修改后的题目原题应该也是不严谨的)

代码#include

usingnamespacestd;

main()

{

charc[5];

inti=1;

for(i=0;i<5;i++)//把密码原文存储在一个字符数组中

{

cout<<"请输入第"<

cin>>c[i];

}

for(i=0;i<5;i++)//进行加密

{

if(c[i]<=68&&c[i]>=65)//对WXYZ作特殊处理

c[i]+=54;

else

c[i]+=4;

}

cout<<"Passwordis:

";

for(i=0;i<5;i++)//输出加密后的密码

{

cout<

}

cout<

 

}

运行结果

请输入第1个字母

C

请输入第2个字母

h

请输入第3个字母

i

请输入第4个字母

n

请输入第5个字母

a

Passwordis:

ylmre

Pressanykeytocontinue

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1