《c 程序设计基础》qa-第二章-c 程序设计基础_第1页
《c 程序设计基础》qa-第二章-c 程序设计基础_第2页
《c 程序设计基础》qa-第二章-c 程序设计基础_第3页
《c 程序设计基础》qa-第二章-c 程序设计基础_第4页
《c 程序设计基础》qa-第二章-c 程序设计基础_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C++程序设计基础

Q&A(1)第二章北京邮电大学信通院方莉

mrs.fangli@

2Q&AP38,2.1Q:下列变量名不合法的有哪些?为什么?

A12-3、123、m123、_123、WhileA:A12-3:变量名中不能有’-‘符号123:变量名不能一数字开始_123:变量名中不能有空格编辑ppt3Q&AP38,2.3Q:32位机中,int、float、double类型在内存中各多少字节?在VC环节下longdouble变量在内存中占用多少字节?A:分别占用4、4、8字节。longdouble变量在内存中占用8字节,和double相同。编辑pptQ&AQ:转义字符?A:\ooo1-3位8进数\xhh1-2位16进数

字符a:0x61:0141#include<iostream>usingnamespacestd;voidmain(){ cout<<"输出字母:"<<'\x61'<<endl;cout<<"输出字母:"<<'\141'<<endl; cout<<"输出字母:"<<'a'<<endl;}4编辑ppt5Q&AP39,2.10Q:下列的转义字符中哪个是不正确的?为什么?‘\\’,‘\’‘,’\089‘,'\0'A:'\089'是不正确的。因为89不是八进制数。编辑ppt6Q&A运算符的优先级编辑ppt规律一、按照操作数个数来区分,一元运算符高于二元运算符,二元运算符高于三元运算符;规律二、按照运算符的作用来区分,级别最高的是那些不是严格意义上的运算符,次之是算术运算符,位移运算符,关系运算符,位运算符,逻辑运算符,赋值运算符。此外还有两特别的地方需要注意:一、同为关系运算符,但==和!=的级别低于其它四个;二、一元运算符、条件运算符、赋值运算符是右结合的,其它的都为左结合;Q&A编辑pptQ&Aintx=1,y=0;

!x&&x+y&&++y;c=a>b?a:b;

inti=8,j=4,k;

k=i<j?++i:++j;第一种方案:c=((a>b)?a:b);第二种方案:c=(a>(b?a:b));第三种方案:(c=a)>(b?a:b);值为:0,x=1,y=0i=8,j=5,k=5编辑ppt9Q&A运算符的结合性:运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的方向处理。例子:1:inta,b=1,c=2;

a=b=c;

(右左)a=(b=c)2:a==b==0(左右)(a==b)==0编辑ppt10Q&AP38,2.2Q:

2.2下列表达式不正确的有哪些?为什么?A.inta=’a’;B.charc=102;C.charc=”abc”;D.charc=’\n’;?A:只有表达式C不正确。不能将字符串赋值给一个字符变量。编辑ppt11Q&AP38,2.5Q:以下C++的操作符中,符合优先级从高到底正确排列的是_________?A.+>=&&B.>=+&&C.+&&>=D.&&+>=A:A编辑ppt12Q&AP39,2.7Q:2.7设a为整型变量,表达数学关系1<a<5的C++表达式可以有哪些?A:可以是:a>1&&a<5a==2||a==3||a==4!(a<=1)&&!(a>=5)编辑ppt13Q&AP39,2.12Q:2.12若定义了doublet;则表达式t=1,t+5,t++的值是多少?A:1.0编辑ppt14Q&AP39,2.13Q:2.13若定义了doublex,y;则表达式x=2,y=x+5/2的值是多少?A:4.0编辑ppt15Q&AP39,2.14Q:2.14若定义了intx=100;则表达式x++>100?x+100:x+200的值是多少?A:301编辑ppt16Q&AP39,2.15Q:2.15若定义了inta=10,b;则计算表达式b=a||++a后,a的值是多少?A:10编辑pptQ:2.6若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型是什么?A:doubleQ&A编辑pptQ&A2.18以下程序通过for语句重复相加0.01共10次,最后判定相加结果和0.1是否相等。请写出运行的结果,并进行解释。voidmain(){floata=0.1,b=0.0;for(inti=0;i<10;i++)b=b+0.01;cout<<b<<endl;if(a==b)cout<<"相等"<<endl;elsecout<<"不相等"<<endl;}答案:运行结果是:0.1,不相等因为float数在机器内部是按浮点数存放的。看到的数和机器内部的数存在差别。看到的0.1在机器内部不一定刚好是0.1。这是实数运算时必须注意的。编辑ppt19Q&A2.19以下程序执行的结果是什么?为什么?如果数据定义为double类型,结果又将如何?voidmain(){floata=5.0000001,b=5.0000002;cout<<setprecision(8)<<b-a<<endl;}答案:0因为float数本身的精度所限制。即使规定输出精度是8位,也只能显示为0。定义为double类型后,结果是9.9999999e-008。编辑ppt20Q&AI/O流的格式控制输出库文件iomanip:(manipulator)常用操纵符:setiosflags(ios::left):左对齐setiosflags(ios::right)(默认):右对齐setiosflags(ios::fixed)(默认):定点方式表示浮点数与setprecision(intn)结合,控制小数点右边输出位数setiosflags(ios::scientific):指数方式显示与setprecision(intn)结合,控制指数法小数点右边输出位数编辑ppt21Q&Asetiosflags(ios::fixed)):定点方式表示浮点数与setprecision(intn)结合,控制小数点右边输出位数编辑ppt22Q&Asetiosflags(ios::scientific):指数方式显示与setprecision(intn)结合,控制指数法小数点右边输出位数编辑ppt23Q&A常用操纵符:setfill(c):设置填充字符setw(n):设置域宽为n只对其后输出的第一个数据有效;setw(0):默认按实际输出;setw(n):ifn<实际输出的位数,按实际输出,不损失数据精度;setprecision(intn):显示浮点数的数字个数。直接输出或setprecision(0):输出6位有效数字;若按其他精度,按设置的精度输出。编辑pptQ:隐式类型转换和cout输出floatf; f=17/7; floatnum=1; cout<<num<<endl; cout<<f<<endl;A:12Q&A编辑pptQ:P15,flaot和double型的数据在机器中都是以浮点数的格式存放。对于float型数据,最小的数据分辨率为1/224=0.00000059604644775390625,也就是保证7位有效数字?A:Float为单精度,内存中占4个字节,有效数位是7位。Q&A编辑ppt2023年4月13日浮点数存储IEEE754标准:浮点数(单精度),用32bit存储双精度数,用64bit存储Se’(8bit)M’(23bit)Se’(11bit)M’(52bit)e’=e+27-1e’=e+210-1M’为M的小数部分,采用1.xxxx格式,并隐藏最高位的1,增加一位有效位。编辑ppt参考答案2.11若定义了inta=1,b=2,c=3,d=4;则表达式a+d>c+b?a+b:c<d?a+c:b+d的值是多少?答案:4编辑ppt参考答案2.16写出下列程序的运行结果?(1)#include<iostream>usingnamespacestd;voidmain(){inta1,a2;inti=5,j=7,k=0;a1=!k;a2=i!=j;cout<<”a1=”<<a1<<’\t’<<”a2=”<<a2<<endl;}答案:a1=1a2=1编辑ppt参考答案2.16写出下列程序的运行结果?(2)#include<iostream>usingnamespacestd;voidmain(){inta=0;cout<<a++<<endl;cout<<++a<<endl;intb=10;cout<<b--<<endl;cout<<--b<<endl;cout<<a+++b<<endl;}答案:0210810编辑ppt参考答案2.16写出下列程序的运行结果?(3)#include<iostream>usingnamespacestd;voidmain(){shorti=65536;cout<<i<<endl.;//在16位机上运行}答案:0编辑ppt参考答案2.16写出下列程序的运行结果?(4)#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){cout<<setfill('*')<<setw(5)<<1<<endl<<setw(5)<<12<<endl<<setw(5)<<123<<endl;cout<<setiosflags(ios::left)<<setw(5)<<1<<endl<<setw(5)<<12<<endl<<setw(5)<<123<<endl;}答案:****1***12**1231****12***123**编辑ppt参考答案2.17以下两个程序执行的结果分别是什么?为什么?程序1:voidmain(){shortk=1000,p;p=k*k;cout<<p<<endl;}程序2:voidmain(){shortk=1000,p;p=k*k/k;cout<<p<<endl;}答案:程序1的结果是16960。因为计算结

温馨提示

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

评论

0/150

提交评论