嵌入式笔试刷题(第61天)
1. 利用 while 语句,计算 1 - 1/2 + 1/3 - 1/4 + ... + 1/99 - 1/100 的值
答案解析:这是一道考察循环控制与数学计算的题目。使用 while 循环累加该级数,奇数项加,偶数项减。
#include <stdio.h>
int main() {
int i = 1;
double sum = 0.0;
while (i <= 100) {
if (i % 2 == 0)
sum -= 1.0 / i;
else
sum += 1.0 / i;
i++;
}
printf("Sum = %lf\n", sum);
return 0;
}
2. char *string1 = "12345"; 和 char string2[5] = "12345"; 的区别
答案解析:
- char *string1 = "12345";string1 是一个指针,指向只读字符串常量,不能修改其内容。
- char string2[5] = "12345";会发生越界错误,因为 "12345" 是 6 个字符(包含 \0),但 string2 的大小只有 5,无法存储完整字符串,会造成内存问题。
正确方式是:char string2[6] = "12345";
3. 用 C 语言中的指针编写字符串翻转函数
答案解析:
void reverse(char *str) {
char *start = str;
char *end = str;
char temp;
while (*end != '\0') {
end++;
}
end--; // 指向最后一个字符
while (start < end) {
temp = *start;
*start = *end;
*
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。
