解答:
本题主要考查对格式化输入输出的掌握。 ①本题主函数中第三行输出a,b,’\\t’为转义字符,其含义是跳过一个制表位。不设置输出宽度时,默认输出6位有效数字,超出部分四舍五入。所以该行输出为:23 23.1235。
② setprecision(n)设置显示精度,最少显示一位有效数字。如果不重新设置,则其保持效力,所以使用
409--29
完后要还原为6位默认值。第四行中设置setprecision(0)与setprecision(1)作用相同,结果显示一位有效数字即为:2e+001。
③ setiosflags(ios::fixed)为固定的浮点显示,其后跟setprecision(n)表示小数点后显示精度为n。所以第五行输出结果为:23.1234568。
④ setiosflags(ios::scientific)为指数显示,当其整数部分宽度大于设置的显示精度(默认为6位)时,以指数形式显示结果。否则根据设置的(或默认的)显示精度显示n位有效数字。所以第六行输出结果为:23.12346。
⑤ setiosflags(ios::showbase)为指定在数值前输出进制。hex置基数为16,且该操作保持效力,所以使用完后应该恢复为默认值10进制。第九行输出结果为:0x17 0x17。
⑥setw(n) 设域宽为n个字符,setfill(c) 设填充字符为c ,setiosflags(ios::left)为左对齐。第十一行输出结果为:23********。 答案为:
23 23.1235 2e+001 23.1234568 23.12346 0x17 0x17 23********
【习题】 一、 选择题
1. 下列数据类型不是C++语言基本数据类型的是( )。
(a)字符型 (b)整型 (c)浮点型 (d)数组
一、 下列字符列中,可作为C++语言程序自定义标识符是( )。选择题
2.
(a)x (b)-var (c)new (d)3i 3. 下列数中哪一个是8进制数( )。
(a)0x1g (b)010 (c)080 (d)01b
4. 已知a=1,b=2,c=3,则表达是++a||-b&&++c的值为( )。
(a)0 (b)1 (c)2 (d)3 5. 下列表达式选项中,( )是正确的。
(a)++(a++) (b)a++b (c)a+++b (d)a++++b 6. 已知枚举类型定义语句为:( )。
enum color{RED,BLUE,PINK=6,YELLOW,GREEN,PURPLE=15}; 则下列叙述中错误的是( )。
(a)枚举常量RED的值为1 (b)枚举常量BLUE的值为1 (c)枚举常量YELLOW的值为7 (d)枚举常量PURPLE的值为15 7. 下列程序的运行结果正确的是( )。
#include #include void main() {
const double pi=3.1415926;
cout< < <(a) 3.142
3.142
**3.14159260 (b) 3.14
3.142
409--30
**3.14159260 (c) 3.14
3.14
3.14159260** (d) 3.14
3.142
***3.1415926
8. 若int x=3,y=5;则表达式x&y++%3的值为( )。
(a)0 (b)1 (c)2 (d)3 9. 下列常量正确的是( )。
(a) ”hello (b)1FL (c) 3.14UL (d) 1.8E-3 World”
10. 若char x=97;,则变量x包含几个字符( )。
(a)1个 (b)2个 (c)4个 (d)8个
二、 填空题
1. c++语言标示符是以字母或__________开头的,由字母、数字、下划线组成。 2. 在C++语言中,char型数据在内存中的存储形式是__________。
3. 在内存中,存储字符‘x’占用1个字节,存储字符串“x”要占用________个字节。 4. 符号常量可以用宏定义define和__________表示。 5. 转义字符序列中的首字符是_________。 6. 空字符串的长度是__________。
7. 表达式cout<<’\\n’;还可以表示为__________。
8. 若要为unsigned int定义一个新的名字UINT应采用的语句是__________。 9. 以下程序不借助第3个变量实现a,b值得交换,请填空。
#include Void main() {
int a,b;
cout<<”输入a,b:”; cin>>a>>b;
a=___a+b_______; b=_____a-b_____; a=______(a-b)/2;
cout<10. 大多数C++程序都要包含头文件__________。该文件中包含了所有输入/输出流操作所需的基本信
息。当使用带参数的操作时,程序中必须包含头文件__________。
三、 编程题
1. 编写一个程序,输入一个三位数,分别输出该数的百位、十位和个位。
2. 编写一个程序打印出各种基本数据类型、几个你自己定义的复合数据类型的大小。使用sizeof运
算符。
【参考答案】
一、 选择题
1. d 2. a 3. b 4. b 5. c 6. a
409--31
7. b 8. c 9. d 10. a 二、 填空题
1. 下划线 2. ASCII 3. 2 4. const 5. \\ 6. 0
7. cout<8. typedef unsigned int UINT; 9. a+b a-b a-b
10. iomanip.h iostream.h 三、 编程题 1.
#include void main() {
int num,var1,var2,var3;
cout<<\请输入一个三位数:\ cin>>num;
if(num>999||num<100) //用于检查输入数据的合法性 cout<<\您的输入有误!\ else { var1=num/100; var2=(num-var1*100)/10; var3=num; cout<<\百位数为:\ <<\十位数为:\ <<\个位数为:\ } }
2.
#include #include void main() {
int array[10]; enum month{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}; char *p; cout<<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ }
409--32