21xrx.com
2024-09-19 10:05:10 Thursday
登录
文章检索 我的文章 写文章
C++常见笔试题100道
2023-06-22 15:00:09 深夜i     --     --
C++ 笔试题 常见 100道 编程

C++是一种面向对象的编程语言,被广泛应用于软件开发、游戏制作、算法设计等领域。在C++的学习过程中,复习常见笔试题可以提高对该语言的理解和应用能力。下面列出100道常见的C++笔试题,供读者参考。

一、基础语法

1、请问下面的C++程序输出的内容是什么?

#include

using namespace std;

int main()

  cout<<"hello world"<

  return 0;

答案:输出hello world,并换行。

2、请问下面程序是否能够编译通过?如果不能,为什么?

#include

using namespace std;

int main()

  cout<<"hello world"<

  return 0;

答案:不能编译通过。因为该程序少了分号,应该改为cout<<"hello world"<

3、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

  int a=10

答案:输出3.0。因为a和b都是整型,所以相除的结果也是整型,导致了精度丢失。应该改为float c=(float)a/b;或float c=a/(float)b;。

4、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10,b=3;

  float c=(float)a/b;

  cout< <

  return 0;

}

答案:输出3.33333。因为a和b其中一个是浮点型,所以相除的结果也是浮点型,不会丢失精度。

5、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10,b=3;

  float c=(float)a/(float)b;

  cout< <

  return 0;

}

答案:输出3.33333。因为a和b都强制转换成了浮点型,所以相除的结果也是浮点型,不会丢失精度。

二、变量和运算符

6、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

  int a=10

答案:输出3。因为a和b都是整型,所以相除的结果也是整型,会丢失精度。

7、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

  float a=10

答案:输出3。因为c是整型,所以运算结果会向下取整。

8、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

  int a=10

答案:输出1。因为c是a除以b的余数。

9、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10,b=3;

  cout< <

  cout<<++b<

  return 0;

}

答案:输出10和4。因为a++是先使用a再将a加1,++b是先将b加1再使用b。

10、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10,b=3;

  cout<<(a>b)<

  return 0;

}

答案:输出1。因为a>b的结果是1(true)或0(false)。

三、流程控制

11、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10,b=3;

  if(a>b)

    cout<<"a is greater than b"<

  else

    cout<<"a is less than or equal to b"<

  return 0;

}

答案:输出a is greater than b。因为a大于b,所以执行if分支。

12、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10,b=3;

  if(a>b)

    cout<<"a is greater than b"<

  else if(a

    cout<<"a is less than b"<

  else

    cout<<"a is equal to b"<

  return 0;

}

答案:输出a is greater than b。因为a大于b,所以执行第一个if分支。

13、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int i,sum=0;

  for(i=0;i<10;i++)

  {

    sum+=i;

  }

  cout< <

  return 0;

}

答案:输出45。因为sum从0开始累加循环变量i,i从0加到9,最终sum的值为45。

14、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int i=0;

  while(i<10)

  {

    i++;

  }

  cout<<

  return 0;

}

答案:输出10。因为i从0开始,每次循环加1,最终i的值为10。

15、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int i=0;

  do

  {

    i++;

  }

  while(i<10);

  cout<<

  return 0;

}

答案:输出10。因为do-while循环至少会执行一次,所以i的初始值为0,循环一次后变为1,最终循环10次,i的值变为10。

四、数组和字符串

16、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a[5]=2;

  cout< <

  return 0;

}

答案:输出3。数组a[5]中,下标从0开始,所以a[2]的值为3。

17、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  char str[]="hello";

  cout< <

  return 0;

}

答案:输出e。字符串str[]中,下标从0开始,所以str[1]的值为'e'。

18、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  char str[]="hello";

  cout< <

  return 0;

}

答案:输出hello。因为cout<

19、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  char str[]="hello";

  str[1]='i';

  cout< <

  return 0;

}

答案:输出hillo。因为将str[1]的值改为'i',所以输出的是修改后的字符串。

20、请问下面的程序运行结果是什么?

#include

#include

using namespace std;

int main()

{

  string str="hello";

  cout< <

  return 0;

}

答案:输出e。字符串类型的下标也是从0开始,所以str[1]的值为'e'。

五、函数和指针

21、请问下面的程序运行结果是什么?

#include

using namespace std;

void swap(int a,int b)

{

  int temp=a;

  a=b;

  b=temp;

}

int main()

{

  int a=10,b=3;

  swap(a,b);

  cout<<<" "<<

  return 0;

}

答案:输出10和3。因为swap函数中,a和b是值传递,不会改变原来的变量。

22、请问下面的程序运行结果是什么?

#include

using namespace std;

void swap(int &a,int &b)

{

  int temp=a;

  a=b;

  b=temp;

}

int main()

{

  int a=10,b=3;

  swap(a,b);

  cout<<<" "<<

  return 0;

}

答案:输出3和10。因为swap函数中,a和b是引用传递,会改变原来的变量。

23、请问下面的程序运行结果是什么?

#include

using namespace std;

int add(int a,int b)

{

  int c=a+b;

  return c;

}

int main()

{

  int sum=add(10,3);

  cout< <

  return 0;

}

答案:输出13。因为add函数返回a和b的和,赋值给变量sum。

24、请问下面的程序运行结果是什么?

#include

using namespace std;

int max(int a,int b)

{

  if(a>b)

    return a;

  else

    return b;

}

int main()

{

  int a=10,b=3;

  int c=max(a,b);

  cout< <

  return 0;

}

答案:输出10。因为max函数会返回a和b中较大的一个数。

25、请问下面的程序运行结果是什么?

#include

using namespace std;

int main()

{

  int a=10;

  int *p=&a;

  cout<<*p<

  return 0;

}

答案:输出10。因为指针p指向变量a的地址,所以*p就是a的值。

六、面向对象

26、请问下面的程序运行结果是什么?

#include

using namespace std;

class Circle

{

public:

  double r;

  double getArea()

  {

    return 3.14*r*r;

  }

};

int main()

{

  Circle c;

  c.r=3;

  cout< <

  return 0;

}

答案:输出28.26。因为getArea函数会返回圆的面积。

27、请问下面的程序运行结果是什么?

#include

using namespace std;

class Person

{

public:

  string name;

  int age;

  void sayHi()

  {

    cout<<"Hi, my name is "< <<" and I am "< <<" years old."<

  }

};

int main()

{

  Person p;

  p.name="John";

  p.age=20;

  p.sayHi();

  return 0;

}

答案:输出Hi, my name is John and I am 20 years old.。因为sayHi函数会输出person的姓名和年龄。

28、请问下面的程序运行结果是什么?

#include

using namespace std;

class Point

{

public:

  int x,y;

  Point(int xx,int yy)

  {

    x=xx;

    y=yy;

  }

};

int main()

{

  Point p(1,2);

  cout< <<" "< <

  return 0;

}

答案:输出1和2。因为Point类中带有构造函数,可以直接初始化变量。

29、请问下面的程序运行结果是什么?

#include

using namespace std;

class Person

{

public:

  string name;

  int age;

  void sayHi()

  {

    cout<<"Hi, my name is "< <<" and I am "< <<" years old."<

  }

};

class Student:public Person

{

public:

  string major;

  void study()

  {

    cout<<"I am studying "< <<"."<

  }

};

int main()

{

  Student s;

  s.name="John";

  s.age=20;

  s.major="Computer Science";

  s.sayHi();

  s.study();

  return 0;

}

答案:输出Hi, my name is John and I am 20 years old.和I am studying Computer Science.。因为Student类继承自Person类,可以使用父类的成员函数和变量,同时也定义了自己的变量和函数。

30、请问下面的程序运行结果是什么?

#include

using namespace std;

class Animal

{

public:

  virtual void say()

  {

    cout<<"I am a generic animal."<

  }

};

class Dog:public Animal

{

public:

  void say()

  {

    cout<<"I am a dog."<

  }

};

int main()

{

  Animal *p=new Dog;

  p->say();

  return 0;

}

答案:输出I am a dog.。因为虚函数say会调用Dog类中的函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复