请给出五个C++类的初学者熟悉的练习,并给出代码和代码解释
时间: 2023-09-25 21:06:46 浏览: 120
### 回答1:
1. 输入输出:编写一个程序,将用户输入的整数输出到屏幕上。
代码:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("您输入的整数是:%d\n", num);
return 0;
}
```
解释:该程序使用了输入输出函数scanf和printf。首先提示用户输入一个整数,然后使用scanf函数将用户输入的整数存储到变量num中,最后使用printf函数将num变量的值输出到屏幕上。
2. 条件语句:编写一个程序,判断用户输入的整数是否为偶数,并输出相应的信息。
代码:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d是偶数\n", num);
} else {
printf("%d是奇数\n", num);
}
return 0;
}
```
解释:该程序使用了条件语句if-else。首先提示用户输入一个整数,然后使用scanf函数将用户输入的整数存储到变量num中,判断num是否为偶数,如果是就输出相应的信息,否则输出另一条信息。
3. 循环语句:编写一个程序,计算1到100之间所有整数的和。
代码:
```c
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
printf("1到100之间所有整数的和为:%d\n", sum);
return 0;
}
```
解释:该程序使用了循环语句for。首先定义一个变量sum用于存储所有整数的和,然后使用for循环计算1到100之间所有整数的和,最后输出结果。
4. 数组:编写一个程序,输入5个整数,然后输出它们的平均值。
代码:
```c
#include <stdio.h>
int main() {
int nums[5];
int sum = 0;
printf("请输入5个整数:");
for (int i = 0; i < 5; i++) {
scanf("%d", &nums[i]);
sum += nums[i];
}
double avg = (double) sum / 5;
printf("这5个整数的平均值为:%f\n", avg);
return 0;
}
```
解释:该程序使用了数组和循环语句for。首先定义一个长度为5的整型数组nums用于存储输入的整数,然后使用for循环输入5个整数,并累加它们的和,最后计算平均值并输出结果。
5. 函数:编写一个函数,判断一个整数是否为素数。
代码:
```c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d是素数\n", num);
} else {
printf("%d不是素数\n", num);
}
return 0;
}
```
解释:该程序定义了一个判断素数的函数isPrime,并在主函数中调用该函数。isPrime函数使用了循环语句for和条件语句if,首先判断num是否小于等于1,如果是就返回0,否则使用for循环判断num是否能被2到num/2之间的数整除,如果能就返回0,否则返回1。在主函数中,使用scanf函数读取用户输入的整数,然后调用isPrime函数判断该整数是否为素数,并输出相应的信息。
### 回答2:
1. C 类的初学者熟悉的练习之一是求和。这个练习可以通过编写一个程序来实现,如下所示:
```c
#include <stdio.h>
int main() {
int num1, num2, sum;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("两个数的和是:%d\n", sum);
return 0;
}
```
在这段代码中,我们定义了三个整型变量`num1`、`num2`和`sum`,并通过用户的输入给`num1`和`num2`赋值。然后,我们将`num1`和`num2`相加的结果赋给`sum`,并将`sum`打印输出。
2. 第二个练习是判断奇偶数。下面是一个实现这个功能的代码示例:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:\n");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d 是偶数。\n", num);
} else {
printf("%d 是奇数。\n", num);
}
return 0;
}
```
在这段代码中,我们定义了一个整型变量`num`,通过用户的输入给`num`赋值。然后,通过对`num`取模运算,如果结果为0,则`num`是偶数;否则,`num`是奇数。
3. 第三个练习是判断是否为闰年。下面是一个实现这个功能的代码示例:
```c
#include <stdio.h>
int main() {
int year;
printf("请输入一个年份:\n");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
return 0;
}
```
在这段代码中,我们定义了一个整型变量`year`,通过用户的输入给`year`赋值。然后,通过一系列的条件判断,判断`year`是否为闰年。
4. 第四个练习是计算阶乘。下面是一个实现这个功能的代码示例:
```c
#include <stdio.h>
int main() {
int num, i;
long long factorial = 1;
printf("请输入一个正整数:\n");
scanf("%d", &num);
for (i = 1; i <= num; i++) {
factorial *= i;
}
printf("%d 的阶乘是:%lld\n", num, factorial);
return 0;
}
```
在这段代码中,我们定义了一个整型变量`num`和一个长整型变量`factorial`,通过用户的输入给`num`赋值。然后,通过一个`for`循环计算`num`的阶乘,并将结果赋给`factorial`,最后将结果打印输出。
5. 最后一个练习是计算斐波那契数列。下面是一个实现这个功能的代码示例:
```c
#include <stdio.h>
int main() {
int num, i;
long long fibonacci[50];
printf("请输入一个正整数(不超过50):\n");
scanf("%d", &num);
fibonacci[0] = 0; // 第一项
fibonacci[1] = 1; // 第二项
for (i = 2; i <= num; i++) {
fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
}
printf("斐波那契数列的前 %d 项是:\n", num);
for (i = 0; i <= num; i++) {
printf("%lld ", fibonacci[i]);
}
printf("\n");
return 0;
}
```
在这段代码中,我们定义了一个整型变量`num`和一个长整型数组`fibonacci`,通过用户的输入给`num`赋值。然后,我们初始化`fibonacci`的前两项,再通过一个`for`循环计算出剩余的项,并将结果存储在`fibonacci`数组中。最后,我们打印输出前`num`项斐波那契数列的值。
### 回答3:
1. 根据名字的首字母排序字符串列表(代码及解释):
```python
names = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
names.sort()
print(names)
```
这段代码先创建一个包含字符串的列表names,并使用sort方法对列表进行修改以实现按照名字的首字母进行排序。最后打印出排序后的列表。
2. 计算一个数的阶乘(代码及解释):
```python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
result = factorial(5)
print(result)
```
这段代码定义了一个递归函数factorial,用于计算传入参数n的阶乘。在函数中判断如果n为0或1,则返回1;否则使用递归方式计算n和n-1的乘积。最后调用函数,传入参数5,并将结果打印出来。
3. 判断一个字符串是否为回文(代码及解释):
```python
def is_palindrome(word):
reversed_word = ''.join(reversed(word))
return word == reversed_word
result = is_palindrome('level')
print(result)
```
这段代码定义了一个函数is_palindrome,用于判断传入的字符串word是否为回文。在函数中通过将字符串反转生成一个新字符串reversed_word,然后判断反转字符串和原字符串是否相等,若相等则返回True,表示是回文;否则返回False。最后调用函数,传入参数'level',并将结果打印出来。
4. 计算列表中所有元素的平均值(代码及解释):
```python
def calculate_average(numbers):
total = sum(numbers)
average = total / len(numbers)
return average
result = calculate_average([1, 2, 3, 4, 5])
print(result)
```
这段代码定义了一个函数calculate_average,用于计算传入的列表numbers中所有元素的平均值。在函数中首先通过sum函数求出列表中所有元素的和,然后除以列表长度得到平均值。最后调用函数,传入参数[1, 2, 3, 4, 5],并将计算结果打印出来。
5. 统计字符串中每个字符出现的次数(代码及解释):
```python
def count_characters(string):
character_count = {}
for character in string:
if character in character_count:
character_count[character] += 1
else:
character_count[character] = 1
return character_count
result = count_characters('hello')
print(result)
```
这段代码定义了一个函数count_characters,用于统计传入的字符串string中每个字符出现的次数。在函数中创建一个空字典character_count,然后遍历字符串中的每个字符,如果字符已经在字典中,则将对应的计数加1;否则将字符添加到字典中,并设置计数为1。最后返回统计结果字典。最后调用函数,传入参数'hello',并将结果打印出来。
阅读全文