int pos =(int )x1+(int )x2;
int pos =int(x1)+int(x2);
将他们作为double类型相加,再进行转换,可采取下述方法之一
int pos = (int)(x1+x2);
int pos = int (x1+x2);
char actor[30];
short betsie[100];
float chuck[13];
long double dipsea[64];
arrary
array
array
array
int arr[5] {1,3,5,7,9};
int even = arr[0] + arr[4];
cout< char str1[] = “cheeseburger”; string str2 = “Waldorf Salad”; fish a ={“shark”,100,100.1}; enum Response{No,Yes,Maybe}; 有效,打印出该字符串首字符的地址 第二句没有指明应该读取多少数据。所以address被分配的内存可能不够用来存放用户输入的数据,从而导致数组越界,发生程序崩溃或者某些不可预知的后果。 1.入口条件循环和出口条件循环之间的区别是什么?各种c++循环分别属于其中的哪一种? 入口循环就是程序在执行循环体中的语句之前先检查循环条件;出口循环是在执行循环体中的语句之后检查循环条件。for循环和while循环都是入口条件循环;do while循环为出口条件循环。 01234 0369 6 k= 8 如何在循环体中包括多条语句? 下面的语句是否有效?如果无效,原因是什么?如果有效,它将完成什么工作? a. int x={1,024} 语句a是有效的,表达式1,024为逗号表达式,该表达时的右侧表达式的值,由于024为8进制数,对应的十进制数为20,因此x的值应为20,即x=20。 cin>>ch将跳过空格、换行符和制表符,其他两种格式将读取这些字符。 1 .请看下面两个计算空格和换行符数目的代码片段: 第二个格式比第一个格式好在哪里? 第二个版本比第一个版本效率更高,因为在第一个中对于每个字符都需要判断两次,而在第二个版本中,如果字符为空格,在经过if判断确定为空格后,该字符肯定不是换行符,第二个else if的判断直接跳过,节省判断时间。 ++ch的数据类型依旧是char型,但对于char+1最终类型为int型,因此当++ch换成ch+1后,输出的是数字。 则输出将是什么(还记得吗,输入被缓冲)? 对于bool变量而言,!!x与x是相同的,但对于其他类型变量不一定相同,例如!!5=1,!!5≠5。 创建一个条件表达式,其值为变量的绝对值。也就是说,如果变量x为正,则表达式的值为x;但如果x为负,则表达式的值为-x–这是一个正值。 用switch改写下面的代码片段: 改代码后 使用数字作为菜单选项和case标签,限定了用户只有输入数字的时候才能有效,若用户错误的输入非整数类型,导致程序被挂起。而使用字符作为菜单选项和case标签,当用户输入错误类型,程序能正确通过default部分提示用户输入错误,用户体验更加友好,提高了程序的容错性和健壮性。 9.请看下面的代码片段
struct fish
{
char kind[30];
int weight;
double length;
}
double *ptr = &ted;
cout<<*ptr<<endl;
float *ptr = treacle;
cout<<*ptr<<endl;//第一个元素
cout<<*(ptr+9)<<endl;//最后一个,注意是加9
int num;
cin>>num;
int *ptr = new int [num];
vector<int> vi(num);
struct fish{char name[10];int weight;double length;};
fish *ptr = new fish;
cin>>ptr->length;
cout<<ptr->weight<<endl;
delete ptr;
#include
第五章
int i;
for(i=0;i<5;i++)
cout<<i;
cout<<endl;
int j;
for(j=0;j<11;j+=3)
cout<<j;
cout<<endl<<j<<endl;
12
int j=5;
while(++j<9)
cout<<j++<<endl;
8
int k=8;
do
cout<<"k="<
int i;
for(i=1;i<=64;i*=2)
cout<<i<<" ";
将语句放在一对大括号中形成一个复合语句或代码块。
b. int y=1,024;
语句b也是有效的,但是逗号运算符的优先级低于赋值运算符,因此b中表达式等效为(int y=1),024;。
第六章
//version 1
while(cin.get(ch)) //quit on eof
{
if(ch==' ')
spaces++;
if(ch=='\n')
newlines++;
}
//version 2
while(cin.get(ch)) //quit eof
{
if(ch==' ')
spacees++;
else if(ch=='\n')
newlines++;
}
// ifelse.cpp -- using the if else statement
#include
#include
假设输入如下(请在每行末尾按回车键):
Hi!
Send $10 or $20 now!
输入输出结果为Hi!
H$i$!$
$Send $10 or $20 now!
S$e$n$d$ $ct1=9,ct2=9
a.weight大于或等于115,但小于125。
b.ch为q或Q。
c.x为偶数,但不是26.
d.x为偶数,但不是26。
e.donation为1000-2000或guest为1。
f.ch是小写字母或大写字母(假设小写字母是依次编码的,大写字母也是依次编码的,但在大小写字母间编码是不连续的)。
//a
weight>=115 && weight<125
//b
ch=='q' || ch=='Q'
//c
x%2==0 && x!=26
//d
x%2==0 && x%26!=0
//e
donation>=1000 && donation<=20000 || guest==1
//f
(ch>='a' && ch<='z') || (ch<='Z' && ch>='A')
x>=0 ? x : -x;
if(ch=='A')
a_grade++;
else if(ch=='B')
b_grade++;
else if(ch=='C')
c_grade++;
else if(ch=='D')
d_grade++;
else
f_grade++;
switch(ch)
{
case 'A' : a_grade++;
break;
case 'B' : b_grade++;
break;
case 'C' : c_grade++;
break;
case 'D' : d_grade++;
break;
default : f_grade++;
break;
}
// switch.cpp -- using the switch statement
#include
int line = 0;
char ch;
while(cin.get(ch))
{
if(ch=='Q')
break;
if(ch!='\n')
continue;
line++;
}
int line = 0;
char ch;
while(cin.get(ch) && ch!='Q')
{
if(ch=='\n')
line++;
}