C++编程练习题大全(带答案) 联系客服

发布时间 : 星期六 文章C++编程练习题大全(带答案)更新完毕开始阅读bbcf524fd1f34693dbef3e02

#include void main() {

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 #include void main() {

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 #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