21xrx.com
2025-06-19 12:43:50 Thursday
文章检索 我的文章 写文章
「C++期末考试题及答案」-山东大学
2023-07-10 04:54:54 深夜i     --     --
C++ 期末考试 题目 答案 山东大学

C++期末考试题及答案是很多学习C++的同学最关心的话题之一。在日前,山东大学发布了一份C++期末考试题及答案,引起了广泛关注。以下是该考试题及答案的具体内容。

一、选择题

1.下列程序执行结果是什么?

#include <iostream>
using namespace std;
int main() {
  char *str1 = "C++", *str2 = "Coding";
  cout << str1 + 1 << str2 + 2 << endl;
 
  return 0;
}

A. ++Coding

B. P+2ding

C. ++P+ding

D. C+

答案是:C。str1 + 1 表示 str1 指针向后移动一位,指向 C,str2 + 2 表示 str2 指针向后移动两位,指向 d,因此输出 C+ding。

2.在 C++ 中下列语句正确的是( )

A. int *a = 1;

B. int a[] = 1; int *p = a;

C. int a[]; int *p = a;

D. int *p = new int();

答案是:D。

二、填空题

1.下列程序运行结果是什么?

#include <iostream>
#include <cmath>
using namespace std;
int main() {
  double x = -3.1415926;
  double y = floor(fabs(x));
  cout << y << endl;
 
  return 0;
}

答案是:3。

2.下列程序运行结果是什么?

#include <iostream>
using namespace std;
void func(int x) {
  if (x == 0)
   throw 1;
  else if (x == 1)
   throw "error!";
 
}
int main() {
  try {
   func(0);
  } catch(int e)
   cout << "int: " << e << endl;
  catch(char* e) {
   cout << "char*: " << e << endl;
  }
 
  return 0;
}

答案是:int: 1。

三、编程题

1.编写一个程序,从标准输入读取一个字符串,并将字符串中所有小写字母转换为大写字母后输出。

#include <iostream>
using namespace std;
int main() {
  string str;
  getline(cin, str);
  for (int i = 0; i < str.length(); i++) {
   if (islower(str[i])) {
     cout << (char)toupper(str[i]);
   } else {
     cout << str[i];
   }
  }
 
  return 0;
}

2.编写一个程序,输入一个整数 n,输出所有小于等于 n 的素数。

#include <iostream>
#include <cmath>
using namespace std;
bool is_prime(int num) {
  if (num <= 1)
   return false;
 
  int sqrt_num = sqrt(num);
  for (int i = 2; i <= sqrt_num; i++) {
   if (num % i == 0)
     return false;
   
  }
  return true;
}
int main() {
  int n;
  cin >> n;
  for (int i = 2; i <= n; i++) {
   if (is_prime(i))
     cout << i << " ";
   
  }
 
  return 0;
}

以上就是山东大学C++期末考试题及答案的内容。这份试卷涵盖了C++语言的基础知识和编程能力,对于学习C++的同学们来说是不可多得的宝贵资源。

  
  

评论区