《c程序设计基础》qa-第二章-c程序设计基础.ppt

上传人:wuy****n92 文档编号:72953554 上传时间:2023-02-14 格式:PPT 页数:33 大小:889.50KB
返回 下载 相关 举报
《c程序设计基础》qa-第二章-c程序设计基础.ppt_第1页
第1页 / 共33页
《c程序设计基础》qa-第二章-c程序设计基础.ppt_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《《c程序设计基础》qa-第二章-c程序设计基础.ppt》由会员分享,可在线阅读,更多相关《《c程序设计基础》qa-第二章-c程序设计基础.ppt(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C+程序设计基础程序设计基础 Q&A(1)第二章第二章北京邮电大学信通院北京邮电大学信通院方莉方莉 2Q&AvP38P38,2.12.1vQ:下列变量名不合法的有哪些?为什么?下列变量名不合法的有哪些?为什么?A12-3、123、m123、_ 123、WhilevA:A12-3:变量名中不能有变量名中不能有-符号符号123:变量名不能一数字开始变量名不能一数字开始_ 123:变量名中不能有空格:变量名中不能有空格3Q&AvP38P38,2.32.3vQ:32 Q:32 位机中,位机中,intint、floatfloat、double double 类型在内存中各类型在内存中各多少字节?在多少字

2、节?在VC VC 环节下环节下long double long double 变量在内存中变量在内存中占用多少字节?占用多少字节?vA A:分别占用分别占用4 4、4 4、8 8 字节。字节。long double long double 变量在内存中占用变量在内存中占用8 8 字节,和字节,和double double 相同。相同。4vQ&AvQ:Q:转义字符?转义字符?vA A:ooo 1-3ooo 1-3位位8 8进数进数 xhh 1-2 xhh 1-2位位1616进数进数 字符字符a a:0 x61:01410 x61:0141#include#include using namesp

3、ace std;using namespace std;void main()void main()coutcout输出字母:输出字母:x61endl;x61endl;cout cout输出字母:输出字母:141endl;141endl;coutcout输出字母:输出字母:aendl;ab?a:b;vint i=8,j=4,k;k=ib)?a:b);第二种方案:c=(a(b?a:b);第三种方案:(c=a)(b?a:b);值为:值为:0,x=1,y=0i=8,j=5,k=59Q&Av运运算算符符的的结结合合性性:运运算算量量两两侧侧的的运运算算符符优优先先级级相相同时,则按运算符的结合性所规定

4、的方向处理。同时,则按运算符的结合性所规定的方向处理。v例子:例子:v1 1:int a,b=1,c=2;a=b=c;(右右左左)a=(b=c)a=(b=c)v2 2:a=b=0 a=b=0 (左左右右)(a=b)=0(a=b)=010Q&AvP38P38,2.22.2vQ:2.2 下列表达式不正确的有哪些?为什么?下列表达式不正确的有哪些?为什么?A.int a=a;B.char c=102;C.char c=”abc”;D.char c=n;?vA:只有表达式:只有表达式C 不正确。不能将字符串赋值给一不正确。不能将字符串赋值给一个字符变量。个字符变量。11vQ&AvP38,2.5vQ:以

5、下以下C+的操作符中,符合优先级从高到的操作符中,符合优先级从高到底正确排列的是底正确排列的是_?A.+=&B.=+&C.+&=D.&+=vA:A12Q&AvP39P39,2.72.7vQ:2.7 设设 a 为整型变量,表达数学关系为整型变量,表达数学关系1a1&a5 a=2|a=3|a=4 !(a=5)13Q&AvP39P39,2.122.12vQ:2.12 若定义了若定义了double t;则表达式则表达式t=1,t+5,t+的值是多少?的值是多少?vA:1.014Q&AvP39P39,2.132.13vQ:2.13 若定义了若定义了double x,y;则表达式则表达式x=2,y=x+5

6、/2 的值是多少?的值是多少?vA:4.015Q&AvP39P39,2.142.14vQ:2.14 Q:2.14 若定义了若定义了int x=100;int x=100;则表达式则表达式x+100?x+100?x+100:x+200 x+100:x+200 的值是多少?的值是多少?vA:30116Q&AvP39P39,2.152.15vQ:2.15 若定义了若定义了int a=10,b;则计算表达式则计算表达式b=a|+a 后,后,a 的值是多少?的值是多少?vA:10vQQ:2.6 2.6 若有以下定义若有以下定义:char a;int b;float c;double:char a;int

7、 b;float c;double d;d;则表达式则表达式 a*b+d-c a*b+d-c 值的类型是什么?值的类型是什么?vA A:doubledoubleQ&AQ&Av2.18 2.18 以下程序通过以下程序通过for for 语句重复相加语句重复相加0.01 0.01 共共10 10 次,最后判定相加结果次,最后判定相加结果和和0.1 0.1 是否相等。请写出运行的结果,并进行解释。是否相等。请写出运行的结果,并进行解释。void main()void main()float a=0.1,b=0.0;float a=0.1,b=0.0;for(int i=0;i10;i+)b=b+0.

8、01;for(int i=0;i10;i+)b=b+0.01;coutbendl;coutbendl;if(a=b)coutif(a=b)cout相等相等endl;endl;else coutelse cout不相等不相等endl;endl;v答案:运行结果是:答案:运行结果是:0.10.1,不相等,不相等v因为因为float float 数在机器内部是按浮点数存放的。看到的数和机器内部的数数在机器内部是按浮点数存放的。看到的数和机器内部的数存在差别。看到的存在差别。看到的0.10.1在机器内部不一定刚好是在机器内部不一定刚好是0.10.1。这是实数运算时必。这是实数运算时必须注意的。须注意的

9、。19Q&Av2.19 2.19 以下程序执行的结果是什么?为什么?如果数据定义以下程序执行的结果是什么?为什么?如果数据定义为为double double 类型,结果又将如何?类型,结果又将如何?void main()void main()float a=5.0000001,b=5.0000002;float a=5.0000001,b=5.0000002;coutsetprecision(8)b-aendl;coutsetprecision(8)b-aendl;v答案:答案:0 0v因为因为float float 数本身的精度所限制。即使规定输出精度是数本身的精度所限制。即使规定输出精度是

10、8 8 位,位,也只能显示为也只能显示为0 0。v定义为定义为double double 类型后,结果是类型后,结果是9.9999999e-0089.9999999e-008。20Q&AvI/OI/O流的格式控制输出流的格式控制输出v 库文件库文件 iomanip:iomanip:(manipulator)(manipulator)v常用操纵符:常用操纵符:setiosflags(ios:left)setiosflags(ios:left):左对齐:左对齐setiosflags(ios:right)(setiosflags(ios:right)(默认默认):右对齐:右对齐setiosflags

11、(ios:fixed)(setiosflags(ios:fixed)(默认默认):定点方式表示浮点数:定点方式表示浮点数与与setprecision(int n)setprecision(int n)结合,控制小数点右边输出位数结合,控制小数点右边输出位数setiosflags(ios:scientific)setiosflags(ios:scientific):指数方式显示:指数方式显示与与setprecision(int n)setprecision(int n)结合,控制指数法小数点右边输出位数结合,控制指数法小数点右边输出位数21Q&Avsetiosflags(ios:fixedset

12、iosflags(ios:fixed)):定点方式表示浮点数:定点方式表示浮点数与与setprecision(int n)setprecision(int n)结合,控制小数点右边输出位数结合,控制小数点右边输出位数22Q&Avsetiosflags(ios:scientific)setiosflags(ios:scientific):指数方式显示:指数方式显示与与setprecision(int setprecision(int n)n)结结合合,控控制制指指数数法法小小数数点点右右边边输输出出位数位数23Q&Av常用操纵符:常用操纵符:setfill(c)setfill(c):设置填充字符

13、:设置填充字符setw(n)setw(n):设置域宽为:设置域宽为n n只对其后输出的第一个数据有效;只对其后输出的第一个数据有效;setw(0)setw(0):默认按实际输出;:默认按实际输出;setw(n)setw(n):if nif n实际输出的位数,按实际输出,不损失数实际输出的位数,按实际输出,不损失数据精度;据精度;setprecision(int n)setprecision(int n):显示浮点数的数字个数。:显示浮点数的数字个数。直接输出或直接输出或setprecision(0):setprecision(0):输出输出6 6位有效数字;位有效数字;若按其他精度,按设置的精

14、度输出。若按其他精度,按设置的精度输出。vQQ:隐式类型转换和:隐式类型转换和coutcout输出输出 float f;float f;f=17/7;f=17/7;float num=1;float num=1;coutnumendl;coutnumendl;coutfendl;coutfc+b?a+b:cd?a+c:b+d 的值是多少?v答案:4参考答案参考答案v2.16 写出下列程序的运行结果?(1)#include using namespace std;void main()int a1,a2;int i=5,j=7,k=0;a1=!k;a2=i!=j;cout”a1=”a1t”a2=

15、”a2endl;v答案:a1=1 a2=1参考答案参考答案v2.16 写出下列程序的运行结果?(2)#include using namespace std;void main()int a=0;couta+endl;cout+aendl;int b=10;coutb-endl;cout-bendl;couta+bendl;v答案:0210810参考答案参考答案v2.16 写出下列程序的运行结果?(3)#include using namespace std;void main()short i=65536;cout iendl.;/在16 位机上运行v答案:0参考答案参考答案v2.16 写出

16、下列程序的运行结果?(4)#include#include using namespace std;void main()coutsetfill(*)setw(5)1endlsetw(5)12endlsetw(5)123endl;coutsetiosflags(ios:left)setw(5)1endlsetw(5)12endlsetw(5)123endl;答案:*1*12*1231*12*123*参考答案参考答案v2.17 以下两个程序执行的结果分别是什么?为什么?程序 1:void main()short k=1000,p;p=k*k;coutpendl;程序2:void main()sh

17、ort k=1000,p;p=k*k/k;coutpendl;v答案:程序 1 的结果是16960。因为计算结果超过short 的最大值,溢出了。程序2 的结果是1000。参考答案参考答案v2.20写出下列程序的运行结果,并解释这些为运算实现的操作写出下列程序的运行结果,并解释这些为运算实现的操作#includeusing namespace std;void main()Int x=0 x98FDECBA;couthexuppercase;cout(x|0 xFF)endl;cout(x0 xFF)endl;cout(x&0 xFF)endl;vFFFFFFBAv98FDEC45v98FDEC00

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com