男皮风衣中长款:一些C/C++、VB的题,高分悬赏!~

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 16:48:18
1、若有说明语句:double *p,a; 则能通过scanf语句正确给输入项读入数据的程序段是
A) *p = &a; scanf (“%f”, p);
B) *p = &a; scanf(“%f”, p);
C) p = &a; scanf(“%f”, *p);
D) p = &a; scanf(“%f”, p);

2、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已经正确定以,以下正确的程序段是:
A) while ( (ch = getchar() ) != ‘N’) printf (“%c”,ch);
B) while ( ch = getchar() != ‘N’) printf (“%c”,ch);
C) while ( ch = getchar() == ‘N’) printf (“%c”,ch);
D) while ( (ch = getchar() ) == ‘N’) printf (“%c”,ch);

3、现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向链表中连续的三个节点。
struct node
{
char data;
struct node * next;
}*p,*q,*r;

现要将p和r所指节点交换前后位置,同时要保证链表的连续,以下不能完成此操作的语句是:
A) q->next = r->next; p->next = r; r->next = q;
B) p->next = r; q->next = r->next; r->next = q;
C) q->next = r->next; r->next = q; p->next = r;
D) r->next = q; p->next = r; q->next = r->next;

4、有如下程序:
#include <iostream.h>
using namespace std;

class Base
{
public:
void fun1 () { cout << “Base\n”;}
virtual void fun2 () { cout << “Base\n”;}
};
class Derived : public Base
{
public:
void fun1 () { cout << “Derived\n”;}
void fun2 () { cout << “Derived\n”;}
};
void f ( Base & b) {b.fun1(); b.fun2();}

int main()
{
Derived obj;
f(obj);
return 0;
}

执行这个程序的输出结果是
A) Base B) Base C) Derived D) Derived
Base Derived Base Derived

1.D.
2.A.
3.D. (题目不正确吧,应该是交换q,r),D错误的原因是 第一个语句已经把q付给r->next,第三条语句q->next = r->next就变成q->next = q了。
4.B. fun1在Base类中没有定义成virtual,编译的时候就会直接指向定义的函数地址,所以在fun函数里,b.fun1就会调用Base类的fun1;fun2定义成virtual,所以是在运行是才计算函数地址的,所以当fun函数中传入Derived类,就调用Derived的fun2.

1.A
2.A
3.D
4.B

d
a
d
b
*p=&a只有在初始化时可以,如:
double a;
double *p=&a;

不懂啊

第三题错了,赋值号后是不可加变量值的.请您审核一下