[C++ Exercises] Day 2012-3-13

NO.1(常量的后缀和前缀)

说明下列文字常量的区别 
         (a) 'a', L'a', "a", L"a" 
         (b) 10, 10u, 10L, 10uL, 012, 0xC 
         (c) 3.14, 3.14f, 3.14L 


NO.2(C++命名规则)

下列名字哪些是非法的, 请改正之 
         (a) int double = 3.14159;     (b) int  _; 
         (c) string namespace;   (d) string catch-22; 
         (e) char 1_or_2 = '1'; (f) float Float = 3.14f; 
(f) int a(45);


NO.3(const,注意const的位置)

下列表达式中p表示何种含义

假设 int a = 3;

(a)const int p = 1;
(b)const int* p = &a;
(c)int const *p =&a;
(d)int* const p = &a;
(e)const int* const p =&a;
(f)const int const *p = &a;

NO.4(引用&)

下面的语句哪些是错误的,请改正之
假设 char ch = 'y';
(a) char& refch = ch;
(b) char& refch = ch;
char chch = 'o';
refch = chch;
(c) int i = 89;
char& refch = 89;

NO.5(数组)

问答题
(a) char* str ="abcde";
str占多少字节? 语句 str[2] = 'p' 可以正确执行吗?
(b) char str[] = "abcde";
str占多少字节? 语句 str[2] = 'p' 可以正确执行吗?
(c) char str[20] = "abdce";
sizeof(str)为多少? strlen(str)为多少?语句 str[2] = 'p' 可以正确执行吗?

下列哪些语句是错的,如何改正?
(a) int a[] ={1,5,6,8,6};
(b) int a[12] = {1,8,6,5,4,85}
(c) int a[3] = {0};
(d) int a[];
(e) int b[3] = {1,2,30};
int a[3]; a = b;


NO.6(指针)
 已知下列定义 
         int ival = 1024, ival2 = 2048; 
         int *pi1 = &ival, *pi2 = &ival2, **pi3 = 0; 
 说明下列赋值将产生什么后果 哪些是错误的 
         (a) ival = *pi3;   (e) pi1 = *pi3; 
         (b) *pi2 = *pi3;   (f) ival = *pi1; 
         (c) ival = pi2;    (g) pi1 = ival; 
         (d) pi2 = *pi1;    (h) pi3 = &pi2; 


指针是C 和C++程序设计一个很重要的方面 也是程序错误的常见起源 例如 
        pi = &ival2; 
        pi = pi + 1024; 
几乎可以保证 pi 会指向内存的一个随机区域 这个赋值在做什么 什么时候它不是一个 错误


 下面一段程序输出结果是什么?
  void fun(char* p)
{
++p;
}
int main()
{
char str[] = "LiuFang";
fun(str);
cout<<str<<endl;
}

NO.7(表达式)

以下代码的输出结果是什么?

int a = 3;
int b = 4;
int c = 0;
if(a || ++b)
{
cout<<b<<endl;
}
if(c++ || a)
{
cout<<a<<endl;
}
if(a && ++c)
{
cout<<c<<endl;
}
if(flase && ++a)
{
cout<<a<<endl;
}

问答题
已知 a,b,c为整形常量,请回答以下问题。
int d = k = a;  //① 其中k 没有在该语句之前定义

int e = a * b / c;
int f  = a / c * b;
double g = a * b / c;
double h =  a / c * b;
表达式①正确吗? e 和f相等吗?g和f 呢? 如果a 、b、c均为浮点型常量呢?


复合赋值操作符有哪些?他们等价于哪些写法?
         +=    -=  *=   /=  %= 
         <<=   >>= &=   ^=  |= 
前缀++和--与后缀++和--的区别是什么?


NO.8

操作符的优先级

NO.9

类型转换,隐式类型转换

NO.10(语句)

写一个简单的if -else 语句,要求再语句中再嵌套if-else

写一个简单的swith语句,要求体现default关键字的用法。

写一个for循环语句,要求顺序输出一个数组,但是控制变量递减。

do-while和while-do有什么区别?他们和for呢?什么时候用while什么时候用for?

break和continue有什么作用?应该在什么地方使用?



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值