1. 判断字符串a是否大于b,应当使用( )
if (strcmp(a,b))     //只能判断是否相等
if (strcmp(a,b)>0)   YES

2. 执行下面代码 , i = 19
#define MA (x,y)  (x*y )
i=5;
i=MA(i,i+1)-7;
#define 宏定义只是替换,MA(i,i+1)替换成x = i,y = i + 1。执行 x * y == i * i + 1(注意此处i + 1没有括号)。所以结果是26,最终结果是19 (MA(i, i+1) --->>> i * i + 1,直接代入替换)

3.
以下逗号表达式的值为( 45 )。
(x=4*5, x*5), x+25 
计算 : (x=20 , 20*5) , 20+25 取最右边的值

4. 若有说明:int*p,m=5,n;则以下正确的程序段是()。

p=&n;scanf("%d",&p);

p=&;scanf("%d",*p)

scanf("%d”,&n); *p=n;

p=&n;*p=m; // YES 先将n地址赋给p,再将m的值赋给p指向的内存单元即赋值给n

p为指针,m和n为整型变量,指针读入时不能使用&或*,应直接使用p。*p=n为野指针赋值,p未指向某一内存单元。

5. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为
0~65535  // 0~2^16-1


6. 关于重载和多态正确的是(未解决)

如果父类和子类都有相同的方法,参数个数不同,将子类对象赋给父类后,由于子类继承于父类,所以使用父类指针
调用父类方法时,实际调用的是子类的方法
选项全部都不正确  // YES
重载和多态在C++面向对象编程中经常用到的方法,都只在实现子类的方法时才会使用
class A{
	void test(float a){cout<<"1";}
};
class B:public A{
	void test(int b){cout<<"2";}
};
A *a=new A;
B *b=new B;
a=b;
a.test(1.1);
结果是1

7. test.c文件中包括如下语句:文件中定义的四个变量,哪个变量不是指针类型? answer :b
#define INT_PTR int*
typedef int*int_ptr;
INT_PTR a,b;
int_ptr c,d;
#define 宏定义是一种替换,INT_PTR a,b即为 int* a,b 所以b为整形 ,typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
所以c,d都是指针

8. 有如下语句序列:
char str[10];cin>>str;
当从键盘输入”I love this game”时,str中的字符串是
"I"
cin>>

该操作符是根据后面变量的类型读取数据。

输入结束条件 :遇到Enter、Space、Tab键。

对结束符的处理 :丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab)