实验2 实验报告_第1页
实验2 实验报告_第2页
实验2 实验报告_第3页
实验2 实验报告_第4页
实验2 实验报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌大学实验报告学生姓名: 刘鑫 学号:6103113093 专业班级:计科133实验类型:口验证□综合□设计口创新实验日期:. 实验成绩:. —一、 实验项目名称数据类型、运算符和表达式二、 实验目的了解C++语言中数据类型的意义;掌握不同数据类型之间的赋值的规律;学会有关C++语言的有关运算符,以及包含这些运算符的表达式,特别是是++和一运算符的使用。进一步熟悉C++程序的编辑环境。三•实验内容整型整型数据有短整型(short)、整型(int)、长整型(long)3种,无符号(unsigned)整型也相应有3种,它们在内存中的存储方式均相同,区别在于字长(所占内存字节数)以及符号位。本实验通过观察整型数据的输出变化,体会整型的存储方式。输入以下程序:#include<iostream>usingnamespacestd;intmain(){shorta,b;unsignedc,d;longe,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(“%d,%d\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);}编译并运行之,观察其输出结果。并思考以下问题:将一个负整数赋给无符号的变量,会发生什么结果?为什么?将一个大于32767的长整数赋给整型变量,会发生什么结果?为什么?将一个长整数赋给无符号变量,会发生什么结果?为什么?改变程序中各变量的值:a=65580;b=-40000;e=65535;f=65580;再次运行程序并分析结果。2、算术与逻辑运算输入以下程序:#include<iostream>usingnamespacestd;intmain(){intx,y,z,f;x=y=z=1;f=--x|1y--&&z++;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;cout<<"z="<<z<<endl;cout<<"f="<<f<<endl;}编译并运行之,输出其运行结果将第6行改成:f二x—||y—&&z++;编译并运行之,输出其运行结果,和此前的运行结果是否相同?为什么?3、 输入以下源程序,输出程序的运行结果并进行适当分析。#include<iostream>usingnamespacestd;intmain(){inta=1,b=2;intx,y,z;cout<<(a++)+(++b)<<endl;cout<<a%b<<endl;x=!a〉b;y=a--&&b;z=(x+y,a++,b++);cout<<a<<endl<<b<<endl;cout<<x<<endl<<y<<endl<<z<<endl;}4、 输出输入以下程序(v部分),并补充空白部分,使得能按照以下格式输出结果:i=1j=2k=3x=2.20000,y=3.40000,z=-5.60000x=2.200000e+000,y=3.400000,z=-5.6x+y=5.60y+z=-2.20z+x=-3.40u=47215cl= ‘a'or97c2= ‘b'or9897和98分别为a与b的ASCII码。以下为程序。请在计算机上验证是否正确。#include<iostream>usingnamespacestd;main(){inti=1,j=2,k=3;unsignedu=47215;floatx=2.2,y=3.4,z=-5.6;charcl=„a',c2='b‘;printf(“ ",i,j,k);printf(“ ", x,y,z);printf(“ ", x,y,z);TOC\o"1-5"\h\zprintf(“ ", x+y,y+z, z+x);printf(“ ", u);printf(“ ", c1,c1,c2, c2);}5、 编写C++源程序,实现如下功能:输入一个三位整数,将它反向输出。样式输入:Pleaseinputaninteger(100〜999):235样式输出:Theintegeris:5326、 编写C++源程序,实现如下功能:输入三个整数,求出其中最小数(要求使用条件表达式)。7、 编写C++源程序,实现如下功能:输入平面上某点横坐标x和纵坐标y,若该点在由下图表示的方块区域内,则输出1;否则,输出0(不采用选择结构)。四、实验环境PC微机,Windows操作系统,VisualC++程序集成环境五、实验步骤步骤1、按题目要求完成实验内容1、2、3、4,回答题中问题并分析。第一题:2结果a答:4294967196;原因:计算机中数据用补码表示,int型量最高位是符

号位,为1时表示负值,为0时表示正值。将一个负数赋给无符号变量时,程序会将该数的符号位数1当做一位数通过无符号整形表示出来得到大于32768的数。b答:出现负数;原因:ong型数据赋给int型变量时,将低16位值送给int型变量,而将高16位截断舍弃。c答:4294951760;原因:计算机中数据用补码表示,程序将长整数的符号位1通过无符号整形表达出来,结果大于32768。3:源程序:#include<iostream>#include<cstdio〉usingnamespacestd;intmain(){shorta,b;unsignedc,d;longe,f;}a=65580;b=—40000;e=65535;f=65580;}printf("%d,%d\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);c=a;d=b;■C:\Users\ASUS\Deskto戸\计算机卖验iyiti.ex?44,2553644,25536kl,444294967295,44Processexitedwithreturnualue0Pressanvkeytocontinue. . .分析:第一行:因为a,b是短整型常量,能表示-32768~32767,上述a,b在赋值是已超过可表示的最大范围,故会在一开始发生溢出,表示为44,25536。在后面的输出中因未超出int能表示的范围,故原样输出。第二行:a=44、b=25536为正数,未超出unsigned能表示的范围,故在a、b赋值给c、d并用unsigned型表示,原样输出。第三行:e、f为long型常量,且数值超出short型表示范围,故在赋值给a、b时数值被截断,表示为-1、44.第四行:a=-1在赋值给c时,计算机将数据已补码形式表示出来,故得到c=4294967295,b未超出short型表示范围,故原样输出第二题:结果■C:\Users\ASUS\Deslcto计算机实验iyiti.ex?X=0Lp=0E=2f=1Processexiteduithreturnualue0Pressanykeytocontinue. . .2:*C:\Users\ASUS\De&kto汁算机实验iyiti.exebe=0=1*=1f=1Processexiteduithreturnualue0Pressanykeytocontinue. . .3:分析:++和--运算符位于变量前和后,其运算规则是不同的。运算符号在前表示先进行自增自减运算,后使用变量,而运算符号在后则运算规则相反,故两次输出结果不同。

第三题:结果:第三题:结果:分析:在源程序中,输出结果第一行是因为a先参与运算后自增,b先自增后参与运算,显示为4;第二行是因为a在上行自增为2,b自增为3,在%运算后显示2;第三行是因为a先自减后自增,值不变,为2;第四行b自增一次,由3变为4,显示4;第五行因为!a为0,而0<3,即x=0,输出为0,;第六行a--&&b为真,输出为1,;第七行显示最后一个表达式的值,为3。第四题:源程序#include<iostream〉#include<cstdio〉usingnamespacestd;intmain(){inti=1,j=2,k=3;unsignedu=47215;floatx=2.2,y=3.4,z=-5.6;charc1='a',c2='b';printf(i=%d,j=%d,k=%d\n",i,j,k);printf(X=%7.5fry=%7.5ffz=%7.5f\ny,x,y,z);printf(X=%e,y=%f,z=%3.1f\n",x,y,z);printf(X+y=%4.2f,y+z=%4.2f,z+x=%4.2f\n",x+y,y+z,z+x);printf("z=%u\n",u);printf(C1='%c'or%dc2='%c'or%d\n",c1,c1,c2,c2);return0;}结果C:\U5er&\ASUS\Deskto戸\计算机实验\disanti.exei=l,j=2,k=3x=2.20000,y=3.40000,z=-5.60000x=2.200000e+000,y=3.400000,z=-5.6x+y=5.60,y+z=~2.20,z+x=-3.40L=47215卜1='己'op97c2=JbJof98Processexitedwithreturnualue0Pressanpkeytocontinue...步骤2、编写程序完成实验内容5、6、7第五题:源程序#ineludeviostream>usingnamespacestd;intmain。{cout<v"Pleasei叩utanintenger(100~999)"«endl;inta;cin>>a;a=a/100+100*(a%10)+10*(a/10%10);coutvvavvendl;}■C:\Users\ASUS\DesktoPleaseinputanintenger<100™1999>684486Processexiteduithreturnualue0Pressankeytocontinue...第六题:源程序#includeviostream>usingnamespacestd;intmain()coutvv"请在您要输入的三个数之间用空格键分开"vvendl;

inta,b,c,x,y;cin>>a»b»c;a>b?x=b:x=a;x>c?y=c:y=x;coutvvyvvendl;匚:\U匚:\Users\ASUS\Deskto汁算机实验炬雋蠱要输入的三个数之间用空格键分开729Processexitedwithreturnvalue0Pressanykeytocontinue...结果:第七题:源程序:#includeviostream>usingnamespacestd;intmain(){intx,y,z;cin>>x>>y;z=((x>-2)&&(x<2))&&(y>-2)&&(y<2);coutvvz;}IC:\Users\ASUS\Desk±op\计算机实验\5.exeProcessexitedwithreturnvalue0Pressanijkeytocontinue...结果

步骤3、参照实验一的报告书写规范,完成此次实验报告的编写六、实验数据及处理结果***/*写出实验内容的算法(用流程图或伪语言表示)、完整的源程序、结果并能对结果的正确性及上机时产生的问题进行分析*/答:源程序,结果在上面已经附上;下面是是NS图第一题:a=100 ,b=-100 ,e=50000,f=32767c=a,d=b输出整形变量a,b,换行输出整型变量c,a=100 ,b=-100 ,e=50000,f=32767c=a,d=b输出整形变量a,b,换行输出整型变量c,d,换行c=a=e,d=b=f输出整型变量a,b,换行输出无符号变量才c,d第二题:x=y=z=f第三题:a=1,b=2输出(a++)+(++b),换行输出a%b,换行x=!a>b;y=a-_&&b;z=(x+y,a++,b++)输出a,换行,输出b,换行输出x,换行,输出y,换行,输出z,换行第四题:i=1,j=2,k=3,无符号变量u=47215,浮点数x=2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论