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有什么作用?应该在什么地方使用?