当前位置:   article > 正文

C++第二章课后习题_设计c语言代码实现c语言中关键字、标识符、常量(如整数、浮点数、字符串)、运算符

设计c语言代码实现c语言中关键字、标识符、常量(如整数、浮点数、字符串)、运算符

如果可以,还请点个赞

2-1.C++语言有哪些主要特点和有点

解: 1全面兼容c 2面向对象的方法

2-2.下列标识符有哪些是合法的?

Program,-page,_lock,test2,3inl,@mail,A_B_C_D
解:第1、3、4、7个

2-3.例2-1中每条语句的作用是什么?

解:
#include //指示编译器将文件iostream.h中的代码
//嵌入到该程序中该指令所在的地方
void main() //主函数名,void 表示函数没有返回值
{ //函数体标志 
cout<<“Hello!\n”; //输出字符串Hello!到标准输出设备(显示器)上。
cout<<“Welcome to C++!\n”; //输出字符串Welcome to c++!
}

2-4请用C++声明一个常量PI,值为3.1416;再声明一个浮点型变量a,把PI的值赋给a

解:const float PI = 3.1416f;
float a = PI;

2-5在下面的枚举类型中,BLUE的值是多少?

解:enum Color{WHITE,BLACK = 100,RED,BLUE,GREEN = 300};
BLUE = 102
枚举类型是依次加一的

2-6注释有什么作用?C++中有哪几种注释的方法?他们之间有什么区别?

解:解释说明用。 在C++中,有两种给出注释的方法:一种是延用C语言方法,使用"/“和”/“括起注释文字。另一种方法是使用”//“,从”//"开始,直到它所在行的行尾,所有字符都被作为注释处理。

2-7什么叫做表达式?x = 5+7是一个表达式吗?他的值是多少?

解:由运算符、运算量和变量组成的式子。x = 5+7是表达式,它的值是12

2-8下列表达式的值是多少?

解:(1)201/4 = 50 //取整
(2)201%4 = 1 //取余
(3)201%4.0 = 50

2-9执行完谢列语句后,a,b,c三个变量的值为多少?

解:a = 30;
b = a++;
c= ++a;
a = 32,b = 30,c = 32

2-10在一个for语句中,可以给多个变量赋值吗?如何实现?

解:
int a[26];
for(int i = 0;i<26;i++){
cin>>a[i];
}

2-11执行完下列语句后,n的值为多少?

int n;
for(n = 0;n<100;n++){}
解:100

2-12写一条for循环,计数条件为n从100到200,步长为2;然后用while和do……while循环完成同样的循环。

解:#include
using namespace std;
int main(){
for(int n = 100;n<200;n++2){
cout<<n<<endl;
}
return 0;
}

2-13if(x=3)和if(x==3)这两条语句有什么区别?

解:if(x = 3)这条语句非零,永远正确,永远往下执行
if(x == 3)判断x是否等于3

2-14已知x,y两个变量,写一条简单的if语句,把较小的值赋给原本较大的变量

解:#include
using namespace std;
int main(){
int x,y;
cout<<“请输入第一个数”<<endl;
cin>>x;
cout<<“请输入第二个数”<<endl;
cin>>y;
if(x > y){
x = y;
}
else if(x < y){
y = x;
}
else{
x = x;
y = y;
}
cout<<x<<" "<<endl;
return 0;
}

2-15修改下面的程序中的错误,改正后它运行的结果是什么?

解:
#include
using namespace std;
int main(){
int i;
int j;
i = 10;
j = 20;
cout<<"i+j = <<i+j; //这句原样输出应为一对双引号“ ”,输出后的值为30
return 0;
}

编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。

解:#include
using namespace std;
int main(){
int a;
cout<<“请输入一个数字”<<endl;
cin>>a;
cout<<a;
return 0;
}

2-17C++有哪几种数据类型?简述其值域。编程显示你使用的计算机中的各种数据类型的字节数。

解:
#include <iostream.h> 
int main() 
{
cout << “The size of an int is:\t\t” << sizeof(int) << " bytes.\n"; 
cout << “The size of a short int is:\t” << sizeof(short) << " bytes.\n"; 
cout << “The size of a long int is:\t” << sizeof(long) << " bytes.\n"; 
cout << “The size of a char is:\t\t” << sizeof(char) << " bytes.\n";
cout << “The size of a float is:\t\t” << sizeof(float) << " bytes.\n";
cout << “The size of a double is:\t” << sizeof(double) << " bytes.\n";
return 0;
}
程序运行输出:
The size of an int is:4 bytes.
The size of an short is:2 bytes.
The size of an long int is:4 bytes.
The size of an char is:1 bytes.
The size of an float is:4 bytes.
The size of an double is:8 bytes.

2-18输出ASCII码为32~127的字符

解:
#include
using namespace std;
int main(){
for(int i = 32;i<127;i++){
cout<<(char)i<<" "<<endl;
return 0;
}

2-19运行下面的程序,观察其输出,与你的设想是否相同?

解:
#include
using namespaec std;
int main(){
unsigned int x;
unsigned int y = 100;
unsigned int z = 50;
x = y-z;
cout<<"Difference is : “<<x<<endl;
x = z-y;
cout<<”\nNow difference is : "<<x<<endl;
return 0;
}

2-20运行下面的程序,观察其输出,体会i++与++i的差别。

解:
#include

int main()

{

int myAge = 39; // initialize two integers

int yourAge = 39;

cout << “I am: " << myAge << " years old.\n”;

cout << “You are: " << yourAge << " years old\n”;

myAge++; // postfix increment

++yourAge; // prefix increment

cout << “One year passes…\n”;

cout << “I am: " << myAge << " years old.\n”;

cout << “You are: " << yourAge << " years old\n”;

cout << “Another year passes\n”;

cout << “I am: " << myAge++ << " years old.\n”;

cout << “Let’s print it again.\n”;

cout << “I am: " << myAge << " years old.\n”;

cout << “You are: " << yourAge << " years old\n”;

return 0;

}
程序运行输出:

I am 39 years old

You are 39 years old

One year passes

I am 40 years old

You are 40 years old

Another year passes

I am 40 years old

You are 41 years old

Let’s print it again

I am 41 years old

You are 41 years old

2-21什么叫变量?什么叫常量?

解:
不同常量的值不可以修改,所以常量在定义的时候必须初始化,任何尝试修改常量的操作都会导致编译出错。

变量可以通过赋值来改变值,变量可以在定义时不进行初始化。

2-22变量有哪几种存储类型?

解:
auto(自动)
extern(外部)
static(静态)
register(寄存器)

2-23写出下列表达式的值

解:
1.2<3&&6<9
2.!(4<7)
3.!(3>5)||(6<2)
1.true 2.false 3.true

2-24若a,b,c分别等于1,2,3,下列各式的结果是?

解:
1.a|b-c
2.a^b&-c
3.a&b|c
4.a|b&c
1.-1 2.1 3.3 4.3

2-25若a=1,下列各式的结果是什么?

解:
1.!a|a //1
2.~ a | a //-1
3. a ^ a //0
4. a >> 2 //0

2-26编写一个完整的程序,实现功能,向用户提问:现在正在下雨吗?,提示用户输入Y或N。若输入为Y,显示正在下雨,为N则显示没有下雨,否则继续提问,现在正在下雨吗? 有没有会的,用C➕➕程序写出来

解:
#include
using namespace std;
int main() {
char n;
do {
cout << “现在正在下雨吗” << endl;
cout << “请输入Y或N” << endl;
cin >> n;
} while ( n != ‘Y’ && ‘N’);
if (n == ‘Y’)
cout << “现在正在下雨” << endl;
if (n == ‘N’)
cout << “现在没有下雨” << endl;
return 0;
}

2-27编写一个完整的程序:运行时向用户提问“你考试考了多少分”(0-100),接受输入后判断其等级并显示出来,规则如下:

等级:优 90小于等于分数小于等于100
良 80小于等于分数小于90
中 60小于等于分数小于80
差 0小于等于分数小于60
解:
#include
using namespace std;
void main()
{
cout<<“你考试考了多少分”(0-100):”<<endl;
int i;
cin>>i;
if(i<=100&&i>=90)cout<<“\n优”;
if(i<=90&&i>=80)cout<<“\n良”;
if(i<=80&&i>=60)cout<<“\n中”;
if(i<=60&&i>=0)cout<<“\n差”;

}

2-28实现一个简单的菜单程序,运行时显示"Menu:A(dd) D(elete) S(ort) Q(uit),Select one: “提示用户输入。输入A、D、S时分别提示"数据已经增加、删除、排序”

解:
#include
using namespace std;
int main()
{
char n;
cout<<"Menu: A(dd) D(elete) S(ort) Q(uit),Select one: "<<endl;
cin>>n;
while(n!=‘Q’)
{
switch(n)
{
case ‘A’:
{
cout<<“数据已经增加”<<endl;break;
}
case ‘D’:
{
cout<<“数据已经删除”<<endl;break;
}
case ‘S’:
{
cout<<“数据已经排序”<<endl;break;
}
}
cin>>n;
}
return 0;
}

2-29用穷举法找出1到100的质数并显示出来。使用do…while循环语句实现。

解:
1.用while:

include<iostream.h>

void main()
{int i,j,n,m;
i=2;
while(i<101)
{m=1;n=i/2;j=2;
while(j<=n)
{ if(i%j==0)
{m=0;
breake;
}
j++;
}
if(m)
cout<<i<<“”;
i++;
}
}

2.用do…while

#include<iostream.h>

void main()
{int i,j,n,m;
i=2;
do
{m=1;n=i/2;j=2;
do
{if(i%j==0)
{m=0;
breake;
}
j++;
}while(j<=n);
if(m)
cout<<i<<“”;
i++;
}while(i<101);
}

3.用for

include<iostream.h>

void main()
{int i,j,n,m;
for(i=2;i<101;i++)
{m=1;
n=i/2;
for(j=2;j<=k;j++)
{if(i%j==0)
{m=0;
breake;
}
}
if(m)
cout<<i<<“”;
}}

2-30比较break语句和continue语句的不同用法

#include
using namespace std;
int main(){
for(int i = 0;i<10;i++){
if(i%2==0){
continue;
}
else{
break;
}
}
return 0;
}

3-31声明一个表示时间的结构体,可以精确表示年,月,日,小时,分,秒,提示用户输入值,然后完整地显示出来。

在这里插入图片描述

2-32在程序中定义一个整型变量,赋予1~100的值。要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while和do……while语句实现。

解:
while:

#include <iostream>
using namespace std;
int main() {
	int a = 99;
	int b;
	cout << "请猜一个1-100的数" << endl;
	cin >> b;
	while (b!=a)
	{
		cout << "猜错了,再猜" << endl;
		cin >> b;
	}
	cout << "恭喜你,回答正确" << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

do……while

#include <iostream>
using namespace std;
int main() {
	int a = 99;
	int b;
	cout << "请猜一个1-100的数" << endl;
	cin >> b;
	do{
		cout << "猜错了,再猜" << endl;
		cin >> b;
	} while (b != a);
	cout << "恭喜你,回答正确" << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2-33声明枚举类型weekday,包括SUNDAY和SATURDAY七个元素在程序中声明weekday类型的变量,对其赋值,声明整型变量,看看能否对其赋weekday类型的值

解:
不能对枚举类型的变量赋值,但是枚举类型的值可以赋给整型变量
在这里插入图片描述

2-34口袋中有红黄蓝白黑5种颜色的球若干。每次从口袋中取出3个不同颜色的球,问有多少种取法?

解:

#include <stdio.h>
 
void main()
{
	enum color {red,yellow,blue,white,black};
	enum color i, j, k, pri;
	int n = 0, loop;
 
	for(i=red;i<=black;i++)
		for(j=red;j<=black;j++)
			if (i != j)
			{
				for (k = red; k <= black; k++)
				{
					if ((k != i) && (k != j))
					{
						n = n + 1;
						printf("%-4d", n);
						for (loop = 1; loop <= 3; loop++)
						{
							switch (loop)
							{
								case 1:pri = i; break;
								case 2:pri = j; break;
								case 3:pri = k; break;
								default:break;
							}
 
							switch (pri)
							{
								case red:printf("%-10s", "red"); break;
								case yellow:printf("%-10s", "yellow"); break;
								case blue:printf("%-10s", "blue"); break;
								case white:printf("%-10s", "white"); break;
								case black:printf("%-10s", "black"); break;
								default:break;
							}
						}
						printf("\n");
					}
				}
			}
 
	printf("\ntotal:%5d\n", n);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

2-35输出九九乘法表

解:

#include <iostream>
using namespace std;
int main() {
	for (int i = 0; i <= 9; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			cout << j << "*" << i << "=" << i * j << " ";
		}
		cout << endl;
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2-36有符号整数和无符号整数,在计算机内部是如何区分的?

解:
它们在计算机内是用补码表示的,最高一位是符号位,0表示正,1表示负。
无符号的整数没有符号位。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/76305
推荐阅读
相关标签
  

闽ICP备14008679号