发布时间 : 星期六 文章C++编程练习题大全(带答案)更新完毕开始阅读bbcf524fd1f34693dbef3e02
#include
int a=2,b=4,i=0,x; x=a>b&&++i;
cout<<\:\ cout<<\:\}
解答:
本题主要考查“短路”表达式的运算。对于表达式中的“与”运算而言,只要有一个操作数为假,结果为假。所以当第一个操作数为假时,不在求解其它操作数。对于表达式中的“或”运算而言,只要有一个操作数为真,则结果为真。所以当第一个操作数为真时,不在求解其它操作数。本题中a>b为假,所以表达式a>b&&++i为假,而++i没有执行。故i为0。答案为:x:0 i:0
例题8:求解下列各表达式的值(其中x的值为100)。
(1) (a=1,b=2,c=3) (2) 1|3<<5
(3) 'a'+3&&!0%1
(4) x%2?“odd”:” even” 解答:
(1) 逗号表达式的值是其最后一个表达式的值。答案为:3。
(2) <<运算符的优先级高于|运算符,所以先算3<<5结果为96(二进制1100000),然后与1做按位与运算
则结果为97(二进制1100001)。答案为:97。
(3) 参与本题的运算符,按优先级由高到低依次是:!运算符、算术运算符、逻辑运算符。'a'+3时字符型
首先隐式转换成整型然后相加结果为100,!0%1即1%1结果为0,100&&0结果为0。答案为:0。 (4) 算术表达式的优先级高于条件表达式,所以先算x%2结果为0,0?”odd”:”even”结果为”even”。
本题完成判断一个数是奇数还是偶数,若该数为奇数,则表达式的值为”odd”,为偶数,则表达式的值为”even”。答案为:”odd”。
例题9:下列程序运行结果为:_______________。 #include
int a=23;
double b=23.123456789; cout< cout< cout< cout< cout< cout< 解答: 本题主要考查对格式化输入输出的掌握。 ①本题主函数中第三行输出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 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 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 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 int array[10]; enum month{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}; char *p; cout<<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ <<\ } 409--32