标准答案习题1
英文手写字体
1.1 简述C++语言程序的结构特点。
答:
(1)C++程序由一个或多个函数组成,其中至少有一个主函数main(),程序从主函数开始执行,由主函数来调用其他函数。
(2)C++函数由说明部分与函数体组成,函数体由变量定义和执行语句两部分组成。其中函数体中语句和变量说明以分号结束。一般函数结构如下:
# 编译预处理命令
函数类型 <;函数名>(形式参数)
{ /* 注释 */
变量说明;
中英文翻译执行语句; // 注释内容
}
(3)程序书写规则为同一层语句同列书写、内层语句缩进两个字符、函数定义在第一列书写。严格区分字母的大小写,即大写与小写代表两个不同变量。(4)C++输入/输出通过流cin和cout来实现的
1.2 简述C++程序开发的步骤。
答:
(1)分析问题。根据实际问题,分析需求,确定解决方法,并用适当的工具描述它。
(2)编辑程序。编写C++源程序,并利用一个编辑器将源程序输入,保存到计算机中的某一个文件中。文件的扩展名为.cpp。
(3)编译程序。编译源程序,产生目标程序。目标程序文件的扩展名为.obj。(4)连接程序。将一个或多个目标程序与库函数进行连接后,产生一个可执行文件。可执行文件的扩展名为.exe。
(5)运行调试程序。运行可执行文件,分析运行结果。若有错误进行调试修改。在编译、连接和运行程序过程中,都有可能出现错误,此时要修改源程序,并重复以上过程,直到得到正确的结果为止。
1.3设计一个C++程序,输出以下信息:
***************
Hello!
***************
解:
# include <iostream.h>
void main()
{ cout<<" ***************"<<'\n';
cout<<" Hello!"<<'\n';
cout<<" ***************"<<'\n';
}
1.4设计一个C++程序,输入三个学生的成绩,求其总成绩。
解:
# include <iostream.h>
main()
{ int s1,s2,s3,sum;
cout<<"请输入三个学生的成绩:";
cin>>s1>>s2>>s3;
sum=s1+s2+s3;
cout<<"sum="<<sum<<'\n';
}
1.5设计一个C++程序,输入a、b二个整数,用sub()函数求两数之差。
解:
#include <iostream.h>
void main(void)
{ int sub(int x,int y);
int a,b,m;
cout<<"Input a,b:";
cin>>a>>b;
光棍节宣言m=sub(a,b);
cout<<"a-b= "<<m<<endl;
}
int sub(int x,int y)
{ int z;
z=x-y;
return(z);
}
习题2
2.1简述标识符定义。指出下列用户自己定义的标识符中哪些是合法的?哪些是非法的?如果是非法的,为什么?
答:
xy √ Book√ 3ab×(不能数字开头) x_2 √ switch×(保留字)integer√
page-1×(不能包含“-”) _name√ MyDesk√ #NO×(不能包含“#”)y.5×(不能包含“.”) char×(保留字)
2.2. C++语言中有哪些数据类型?
答: C++数据类型
基本类型
导出类型
整型
实型
字符型 char
无值型 void
短整型 short int
整型 int
长整型 long int
单精度型 float
双精度型 double
数组
指针
结构体
共同体
类
图2.1 C++的数据类型
2.3 什么是常量?什么是变量?
答:
在程序执行过程中,其值不能被改变的量称为常量。
在程序执行过程中,其值可以改变的量称为变量。变量必须用标识符来命名。
2.4下列常量的表示在C++中是否合法?若合法,指出常量的数据类型;若非法,指出原因。
答:
-123 √(整型,十进制)0321√(整型,八进制).567√(浮点型,十进制小数)1.25e2.4 ×(指数部分有“.”,必须是整数)
32L√(长整型,十进制)
'\t'√ (字符型,字符常量)"Computer"√(字符型,字符串常量)'x'√ (字符型,字符常量)"x"√(字符型,字符串常量) '\85'×(85不是八进数)
2.5 字符常量与字符串常量有什么区别?
答:
C++中字符常量为用单引号括起来的单个字符,而字符串常量为用双引号括起来的多个字符,且字符串最后加入结束标志’\0’。
2.6 求出下列算术表达式的值:
(1)x+a%3*(int)(x+y)%2/4 设x=2.5,y=4.7,a=7
答:
按优先级先计算强制类型转换:(int)(2.5+4.7)=7
再按左结合性计算:a%3*7%2/4=7%3*7%2/4=1 *7 % 2/ 4=7%2/4=1/4=0
最后计算x+0=2.5+0=2.5
(2)(float)(a+b)/2-(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5
答:
按优先级先计算强制类型转换:(float)(a+b)/2=5.0 /2=2.5
(int)x%(int)y=(int)3.5%(int)2.5=3%2=1
最后计算(float)(a+b)/2-(int)x%(int)y=2.5-1=1.5
(3)'a'+x%3+5/2-'\24' 设x=8
aiku
'a'+x%3+5/2-'\24'=97+8%3+5/2-24=97+2+2-20=81
‘\24’为八进制,‘\24’=024(八进制)=2*8+4(十进制)=20(十进制)'a'的ASCII码为97
2.7 写出以下程序的运行结果。
#include <iostream.h>
void main(void)
{ int i,j,m,n;
i=8;j=10;
m=++i;n=j++; //i=9 m=9 ,n=10 j=11
cout<<i<<'\t'<<j<<'\n';
cout<<m<<'\t'<<n<<'\n';
}
搭档英语怎么说
答:
程序运行结果:
9 11
9 10
2.8 将下列数学表达式写成C++中的算术表达式。
(1)(2)
(3)(4)h
解:算术表达式自主招生成绩
(1) (a+b)/(x-y)
(2)sqrt(p*(p-a)*(p-b)*(p-c))diplomatic
(3)sin(x)/2/m 或 sin(x)/(2*m)
(4)(a+b)/2*h
2.9 在C++语言中如何表示“真”和“假”?系统又是如何判断一个量的“真”和“假”的?
答:
C++语言中用“1”表示“真”,“0”表示“假”。
系统判断“真”和“假”的方法为:一个量非零为“真”,等于零为“假”
2.10设有变量说明:
int a=3,b=2,c=1;
求出下列表达式的值:
(1)a>b (2)a<=b (3)a!=b (4)(a>b)==c (5)a-b==c
解:(1)1 (2) 0 (3)1 (4)1 (5) 1
2.11设有变量说明:
int a=3,b=1,x=2,y=0;
求出下列表达式的值:
(1)(a>b)&& (x>y) (2)a>b && x>y
(3)(y||b) && (y||a) (4)y||b && y||a
落第是什么意思(5)!a || a>b
解:(1)(a>b)&& (x>y)=(3>1) && (2>0) = 1 && 1=1remind的用法
(2)a>b && x>y=3>1 && 2>0 = 1 && 1=1
(3)(y||b) && (y||a)= (0||1) && (0||3)=1 && 1=1
(4)y||b && y||a = y|| (b && y) ||a =0 || (1 && 0) || 3=0 || 0 || 3= 0 ||
3 =1
(5)!a || a>b =!3 || 3>1 =0 || 1 =1
2.12设有变量说明:
int w=3,x=10,z=7;
char ch='D';
求出下列表达式的值。
(1)w++||z++ (2)!w>z
(3)w && z (4)x>10 || z<9
(5)ch>='A' && ch<='Z'
解:
(1)w++|| z++ = 3 || 7 =1 (先用后加,w=4,z=8)
(2)!w>z =!3 > 7 = 0 >7 = 0
(3)w && z = 3 && 7 =1
美国情景喜剧
(4)x>10 || z<9 = 10>10 || 7<9 = 0 || 1 =1
(5)ch>='A' && ch<='Z' = 'D'>='A' && 'D'<='Z' =1 && 1 =1
2.13设a、b的值分别为6、7;指出分别运算下列表达式后 a、b、c、d的值。(1)c=d=a (2)b+=b
(3)c=b/=a (4)d=(c=a/b+15) 解:
(1)c=d=a c=(d=6) =6 a=6,b=7,c=6,d=6
(2)b+=b b=b+b=14 a=6,b=14,c,d不定
(3)c=b/=a c=(b=b/a)=(b=7/6)=1 a=6,b=1,b=1,c=1,d不定