问题 选择题

如图所示,在同时存在匀强电场和匀强磁场的空间中取正交坐标系Oxyz,一质量为m,电荷量为q的带正电粒子从原点O以速度v沿x轴正方向出发,下列说法正确的是(    )

A.若电场、磁场分别沿z轴正方向和x轴正方向,粒子只能做曲线运动

B.若电场、磁场均沿z轴正方向,粒子有可能做匀速圆周运动

C.若电场、磁场分别沿z轴负方向和y轴负方向,粒子有可能做匀速直线运动

D.若电场、磁场分别沿y轴负方向和z轴正方向,粒子有可能做平抛运动

答案

BCD

磁场沿x轴正方向,则与粒子运动的速度v的方向平行,粒子不受洛伦兹力的作用,只受到竖直向下的重力和竖直向上的电场力作用,若重力和电场力大小不相等,则粒子所受合力方向与速度方向不在同一直线上,粒子将做曲线运动;若相等,粒子将做匀速直线运动,所以A项错误。B项,磁场竖直向上,根据左手定则,洛伦兹力沿y轴正方向,若电场力和重力大小相等,则洛伦兹力刚好能提供向心力,则粒子可能在xOy平面内做匀速圆周运动,所以B项正确。C项,粒子受到竖直向下的电场力,竖直向上的洛伦兹力和竖直向下的重力,若重力和电场力的合力与洛伦兹力的大小相等,则粒子所受合力为零,粒子将做匀速直线运动,所以C项正确。D项,粒子受到沿y轴负方向的电场力,沿y轴正方向的洛伦兹力和竖直向下的重力,若洛伦兹力与电场力的大小相等,则粒子的合力就是竖直方向的重力,粒子将做平抛运动,所以D项正确。

单项选择题
多项选择题


试题源程序文件清单如下:
//proj3.cpp
#include<iostream>
using namespace std ;
class Person
char * idcardno ; //用动态空间存储的身份证号
char * name,//用动态空间存储的姓名
bool ismale ; //性别:true为男,false为女
public :
Person( const char * pid,const char * pname,bool pmale) ;
~Person( )
//**1************found**********
(1) ;

const char * getIDCardNO ( ) const return idcardno ;
const char * getName ( ) const return name ;
void rename( const char * new_name) ;
bool isMale( ) const return ismale ;
;
class Staff: public Person
char * department;
double salary;
public :
Staff( const char * id_card_no,const char * p_name,bool is_male,const char * dept,double sal) ;
~Staff( ) delete [ ] department;
const char * getDepartment( ) const return department;
void setDepartment( const char * d) ;
double getSalary( ) const return salary ,
void setSalary ( double s) salary=s ;
;
Person: :Person( const char * id_card_no,const char * p_name,bool is_male) :ismale(is_male)
idcardno=new char[ strlen( id_card_no) +1] ;
strcpy(idcardno,id_card_no) ;
name=new char[ strlen ( p_name) +1] ;
strcpy( name,p_name) ;

void Person: :rename( const char * new_name)
delete [ ] name;
//**2************found**********
(2) ;
strcpy( name,new_name) ;

Staff::Staff( const char * id_card_no , const char * p_name ,bool is_rnalc,
//**3************found**********
const char * dept,double sal) : (3)

deparlment=new char [ strlen ( clept) +1 ];
strcpy( department,dept) ;
salary=sal;

void Staff::setDepartment( consl char * dept)
delete [ ] department;
department=new char [ strlen ( dept) +1 ] ;
strcpy( department,dept) ;

int main( )
Staff Zhangsan ("123456789012345","张三",false,"人事部",1234.56 ) ;
Zhangsan. rename("张小丽") ;
cout<<Zhangsan. getName ( )<<Zhangsan. getIDCardNO ( )<<endl;
return 0;