C++练习题及答案

标准答案习题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!
***************
yangzhenning
解:
# 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×(保留字)
snake算法
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
'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))
(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=1
(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不定

本文发布于:2024-09-20 15:04:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/569823.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   函数   变量   常量
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议