C++习题第02章 基本数据类型、运算符与表达式
- 格式:doc
- 大小:87.00 KB
- 文档页数:11
一、选择题1、C语言中的数据的基本类型包括()A、整型、实型、字符型和逻辑型B、整型、实型、字符型和结构体C、整型、实型、字符型和枚举型D、整型、实型、字符型和指针型2、在C语言中,不合法的int型常量是()A、32767B、0678C、0XABCD、32768L3、在C语言中,运算对象必须是整型数的运算符是()A、%B、\C、%和\ D、**4、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是()A、1B、2C、2.0D、2.55、若t为double类型,表达式t=1,t+5,t++的值就是()A、1B、6.0C、2.0 D、 1.06、若有定义:int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为()A、9B、4C、3D、27、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____A、22B、264C、144 D、 -2648、以下结果为整数的表达式(设有int i;char c;float f;)( ).A.i十f B.i*c C.c十f D.i十c十f9、以下不正确的语句(设有int p,q)是( )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q;10、以下使i的运算结果为4的表达式是( )。
A.int i=0,j=0; (i=3,(j十十)十i);B.int i=1,j=0; j=i=((i=3)*2);C.int i=0,j=1; (j==1)?(i=1);(i=3);D.int i=1,j=1; i+=j十=2;11、下列四组选项中,均不是C语言关键字的选项是( ).A)define B)getc C)include D)whilei f char sanf gotype printf case pow12、设char ch;以下正确的赋值语句是(B).A.ch='123'; B.ch=\xff'; C.ch='\08’; D.ch="\”;13、下面四个选项中,均是合法整形常量的选项是( ).A)160 B)-0xcdf C)-01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x14、设n=10,i=4、则赋值运算n%=i+1执行后,n的值是( ).A.0 B.3 C.2 D.115、下面四个选项中,均是不合法浮点数的选项是( ).A)160. B)123 C)-.18 D)-e30.12 2e4.2 123e4 0.234e3 .e5 0.0 1e316、下面四个选项中,均是合法浮点数的选项是( ).A)+1e+1 B)-.60 C)123e D)-e35e-9.4 12e-4 12e-.4 .8e-403e2 -8e5 +2e-1 5.e-017、逗号表达式(a=3*5,a*4),a十15的值为( ),a的值为( )。
第二章数据类型,运算符与表达式一.选择题1.不合法的字符常量是(B)。
A)…\t?B) “A” C)…a?D)?\x32?2、合法的字符常量是(D)。
A)…\084?B) …\84? C)…ab?D)?\x43?2.(B)是C语言提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char3.在以下各组标识符中,合法的标识符是(4)。
(1)A)B01 B)table_1 C)0_t D)k%(2)A)Fast_ B)void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)Int C)_xy D)w_y234.属于合法的C语言长整型常量的是(B)。
A)5876273 B)0L C)2E10 D)(long)58762735.下面选项中,不是合法整型常量的是(B)。
A)160 B)-0xcdg C)-01 D)-0x48a6.判断int x = 0xaffbc;x的结果是(B)(turbo c 版本)。
A)赋值非法B)溢出C)为affb D)为ffbc7.下面选项中,均是合法浮点数的是(B)。
A)+1e+1 B)-.60 C)123e D)-e3A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4A)03e2 B)-8e5 C)+2e-1 D)5.e-08.在C语言中,要求参加运算的数必须是整数的运算符是(C)。
A)/ B)* C)% D) =9.在C语言中,字符型数据在内存中以(D)形式存放。
A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是(C)。
A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;11.(B)是非法的C语言转义字符。
A)…\b?B)…\0xf? C)…\037? D)…\??12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中(B),是正确的。
2.1 C语⾔的数据类型2.2 常量与变量2.2.1 标识符命名2.2.2 常量2.2.3 变量2.3 整型数据2.3.1 整型常量2.3.2 整型变量2.4 实型数据2.4.1 实型常量2.4.2 实型变量2.5 字符型数据2.5.1 字符常量2.5.2 字符串常量2.5.3 转义字符2.5.4 符号常量2.5.5 字符变量2.6 运算符2.6.1 算术运算符2.6.2 ⾃增和⾃减2.6.3 关系和逻辑运算符2.1 C语⾔的数据类型C语⾔有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。
尽管这⼏种类型数据的长度和范围随处理器的类型和C语⾔编译程序的实现⽽异,但以b i t为例,整数与C P U字长相等,⼀个字符通常为⼀个字节,浮点值的确切格式则根据实现⽽定。
对于多数微机,表2 - 1给出了五种数据的长度和范围。
表2-1 基本类型的字长和范围类型长度(bit)范围char(字符型)80~255int(整型)16-32768~32767float(单精度型)32约精确到6位数double(双精度型)64约精确到12位数void (空值)0⽆值表中的长度和范围的取值是假定CPU的字长为16 bit。
C语⾔还提供了⼏种聚合类型(aggregate types),包括数组、指针、结构、共⽤体(联合)、位域和枚举。
这些复杂类型在以后的章节中讨论。
除void类型外,基本类型的前⾯可以有各种修饰符。
修饰符⽤来改变基本类型的意义,以便更准确地适应各种情况的需求。
修饰符如下:• signed(有符号)。
• unsigned(⽆符号)。
• long(长型符)。
• short(短型符)。
修饰符signed、short、long和unsigned适⽤于字符和整数两种基本类型,⽽long还可⽤于double(注意,由于long float与double意思相同,所以ANSI标准删除了多余的long float)。
第2章数据类型运算符和表达式习题1. 单项选择题(1) 以下选项中,正确的C 语言整型常量是 D 。
A. 32LB. 510000C. -1.00D. 567(2) 以下选项中, D 是不正确的C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a"(3) 在C 语言中,字符型数据在计算机内存中,以字符的C 形式存储。
A. 原码B. 反码C. ASCII 码D. BCD码(4) 字符串的结束标志是 C 。
A. 0B. '0'C. '\0'D. "0"(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为B。
A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算(6) 逻辑运算符中,运算优先级按从高到低依次为D。
A. &&,!,||B. ||,&&,!C. &&,||,!D. !,&&,||(7) 表达式!x||a==b 等效于 D 。
A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)(8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是A 。
A. 0,0B. 0,1C. 1,0D. 1,1(9) int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为 A 。
A. 2,3B. 2,0C. 3,0D. 3,2(10) 设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量a 的值是B 。
A. 3B. 0C. 9D. -12(11) 在以下一组运算符中,优先级最低的运算符是 D 。
第02章基本数据类型、运算符与表达式1. 选择题(1)在32位机中,int型字宽为()字节。
A) 2 B) 4 C) 6 D) 8(2)下列十六进制的整型常数表示中,错误的是()。
A) 0xad B) 0X11 C)0xA D) 4ex(3)设n=10,i=4,则执行赋值运算n%=i-1后,n的值是()。
A) 0 B) 1 C) 2 D) 3(4)若有a=2,b=4,c=5,则条件表达式a>b?a:b>c?a:c的值为()。
A) 0 B) 2 C) 4 D) 5(5)若有a=1,b=2,则表达式++a==b的值为()。
A) 0 B) 1 C) 2 D) 32.简答题(1)指出下列数据中哪些可作为C++的合法常数?(a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) ″A″(f) .55 (g) ’\\’ (h) 0XCD (i) 8E7 (j) π(2)指出下列符号中那些可作为C++的合法变量名?(a) ab_c (b) β (c) 3xyz (d) if (e) cin(f) a+b (g) NAME (h) x! (i) _temp (j) main(3)根据要求求解下列各表达式的值或问题。
(a) (int)3.5+2.5(b) (float)(5/2)>2.4(c) 21/2+(0xa&15)(d) 设int i=10,则表达式i&&(i=0)&&(++i)的值是多少?该表达式运算结束后变量i的值为多少?(e) 设int a=1,b=2,c=3;,求表达式a<b!=c的值。
(f) 设int i=1;,则i++||i++||i++的值是多少?表达式运算结束后变量i的值是多少?(g) 设int a,b;,求表达式(a=1,a++,b=1,a&&b++)?a+1:a+4的值。
(h) 设int x=5;,求表达式x+=x-=x*x的值。
(i) 设int x=0,y=2;,则语句if(x=0)y++;执行完毕后变量y的值是多少?(j) 设int a=2,b=3;,执行表达式c=b*=a-1后变量c的值是多少?(k) 写出判断字符型变量s1的值为’0’~’9’的正确的C++表达式。
(l) 若给定条件表达式(N)?(c++):(c--),写出与N功能等价的表达式。
3.读程序写结果(1)设有以下程序段,请根据要求回答相应问题。
Int a,b,c,x;a=2;b=3;c=7;d=19;x=d/b%a;x=d%c+b/a*5+5;(2)设有以下程序段,请根据要求回答相应问题。
Int a,b,c;a=b=c=0;a=(++b)+(++c);a=b=c=0;a=(b--)+(--c);(3)写出与下列数字表达式相对应的C++表达式。
(a)a2+2ab+b2(b)4/3πR3(c)5/9(F-32)(d)a≤b≤c(4)#include<iostream.h>void func(int x,int y=10,int z=20);void main(){func(11,12,13);func(11);func(11,12);}void func(int x,int y,int z){cout<<x+y+z<<endl;}(5)#include<iostream.h>viod main(){ int x,y=5;If(x=y!=0)cout<<″x=″<<x<<endl;elsecout<<″x=″<<x++<<endl;cout<<endl;}4.编程题(1)编写程序,提示用户输入三角形的三条边长,判断该三角形是否为直角三角形,若是则输出结果以及三角形面积。
(2)编写程序,求解各种数据类型的存储长度并显示出来,在其中找出存储长度最大和最小的两种数据类型并输出。
(3)编写程序输入一个华氏温度,将其转换为摄氏温度并输出。
已知华氏稳定转换为摄氏度的计算公式如下:C=(F-32)*5/9其中,F为华氏温度,C为摄氏温度。
(4)编写程序输入一个十进制表示的正整数,将其转化为二进制表示并输出结果。
习题参考答案第1章C++语言概述1.填空题(1)函数说明,函数体(2)声明区,主程序区,函数定义区(3)多态性(4)namespace,using(5)std(6)cin,>>(7)//(8)对数据的操作2.判断题(1)对(2)错(3)错(4)错(5)错3.改错题(1)没有函数体,应改为void main() {};(2)语句没有分号,应改为using namespace myspace;(3)cout和操作符<<共同完成输出的功能,应改为cout<<" Input your name:";(4)应改为#include <iostream.h>4.简答题(略)5.编程题(略)第2章基本数据类型、运算符与表达式1.选择题(1)B (2)D (3)B (4)D (5)B2.简答题(1)(a)、(c)(e)、(f)、(g)、(h)、(i)(2)(a)、(g)、(i)、(j)(3)(a)5.5(b)0(c)20(d)0,0(e)1(f)1,2(g)3(h)-40(i)2(j)3(k)s1>='0'&&s1<='9'(l)N!=03.读程序写结果(1)0,15(2)(1、1、1),(-1、-1、-1)(3)(a)a*a+2*a*b+b*b(b)4.0/3.0*3.1415926*R*R*R(c)5.0/9.0*(F-32)(d)b>=a&&b<=c(4)364143(5)x=14.编程题(略)第3章C++的控制语句1.选择题(1)B (2)A (3)A (4)C (5)A2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)12 23 3 34 4 4 45 5 5 5 5(2)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1(3)j的值为0;i的值为2;4.编程题(略)第4章函数1.填空题(1)void(2)静态全局变量,static(3)函数重载(4)inline(5)递归函数(6)宏定义命令,文件包含命令,条件编译命令2.判断题(1)错(2)错(3)错(4)错(5)错(6)对(7)错(8)错(9)对(10)对3.读程序写结果(1)x=7,y=4x=9,y=5(2)34.56101(3)162228(4)12 15 18 21 24(5)2,1,4,1,3,2,1,4.简答题(略)5.编程题(略)第5章构造数据类型1.选择题(1)C (2)D (3)A (4)B (5)C2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)153(2)422 5 6 8 10(3)65535,21(4)419(5)6904(6)43214.编程题(略)第6章类和对象1.填空题(1)类,对象,类(2)数据成员,成员函数(3)不能(4)private,protected,public,private(5)成员函数(6)friend(7)类名,作用域运算符(8)对象名.成员名,指针变量名->成员名,(*指针变量名).成员名(9)构造,析构,构造,析构(10)常量数据,引用数据(11)全局,数据类型,所属的类(12)常成员,只读(13)成员,友元(14)类数据成员,类成员函数(15)this(16)浅拷贝2.选择题(1)C (2)C (3)B (4)C (5)B(6)C (7)D (8)B (9)C (10)D(11)A (12)C (13)D (14)D (15)B3.改错题(1)man1.salary=1000.00; 不能在类外访问类的私有成员(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值}后缺少分号“;”(3)成员函数void setdata(float x1,float y1,float r);没有实现(4)构造函数名point()应与类名同名,为Point没有头文件包含#include <iostream.h>4.读程序写结果题(1)x=0,y=0x=100,y=200(2)x=100,y=200x=1000,y=2000t=3.14(3)Sta::fun2()=10s.fun2()=11r.a=20(4)Constructor1 called!x=0Constructor2 called!x=100Destructor called!Destructor called!(5)575.简答题(略)6.编程题(略)第7章继承和派生1.填空题(1)继承(2)基类,派生类(3)private,protected,public,private(4)不可访问,保护,公有(5)私有(6)单(一),多(重)(7)赋值兼容规则(8)静态,动态(9)抽象类2.选择题(1)B (2)A (3)B (4)C (5)B(6)A (7)D (8)B (9)B (10)B(11)D (12)B3.改错题(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2000;和y.b3=3000;语句。
(2)本题的错误主要是成员函数的访问权限问题:由于派生类Derived是基类Base 的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。
对于类的不可访问和保护成员在类外是不能访问的,故main 函数中的语句obj.funl();,obj.fun2(); 和obj.fun3(); 是错误的。
4.读程序写结果题(1)d=110b=190d=110d=110(2)d=110b=190d=110b=90(3)基类B1的构造函数被调用基类B3的构造函数被调用基类B2的构造函数被调用派生类D的构造函数被调用派生类D的析构函数被调用基类B2的析构函数被调用基类B3的析构函数被调用基类B1的析构函数被调用(4)ABCDD(5)ABDD(6)AABDD(7)ABCDD(8)5255.简答题(略)6.编程题(略)第8章运算符重载1.填空题(1)函数重载(2)重载为类的成员函数,重载为类的友元函数(3)Operator(4)1,2(5)友元2.选择题(1)B (2)D (3)A (4)D (5)B(6)C (7)C (8)C3.简答题(略)4.编程题(略)第9章模板1.填空题(1)类模板,函数模板(2)类,对象(3)数据类型(4)fun(5)2.选择题(1)C (2)B (3)C (4)B (5)D3.简答题(略)4.编程题(略)第10章文件1.填空题(1)FILE,stdio.h(2)stdio.h,fopen,fclose(3)顺序,随机(4)cin,>>,cout,<<(5)ios(6)fstream,open,close(7)文件指针的当前位置,文件开头,文件尾2.选择题(1)B (2)B (3)A (4)D (5)B(6)D (7)C (8)B (9)A (10)B3.简答题(略)4.编程题(略)第11章string类与标准模板库STL 1.填空题(1)字符数组,string类(2)string(3)容器,迭代器,算法(4)顺序,关联(5)指针(6)函数模板2.简答题(略)3.编程题(略)第12章异常处理1.填空题(1)throw,try,catch(2)多(3)数据类型(4)catch(…)(5)相反2.判断题(1)错(2)对(3)错(4)错(5)错3.简答题(略)4.编程题(略)。