🌞 “去努力吧,最坏的结果不过是大器晚成!”
Day02
📝 一.选择题
1.🎈、以下程序段的输出结果是( )
#include <stdio.h>
int main()
{
char s[] = "\\123456\123456\t";
printf("%d\n", strlen(s));
return 0;
}
A: 12 B: 13 C: 16 D: 以上都不对
2.🎈若有以下程序,则运行后的输出结果是( )
#include <stdio.h>
#define N 2
#define M N+1
#define NUM (M+1)*M/2
int main()
{
printf("%d\n", NUM);
return 0;
}
A: 4 B: 8C: 9 D: 6
3.🎈如下函数的 f(1) 的值为( )
#include <stdio.h>
int f(int n)
{
static int i = 1;
if (n >= 5)
return n;
n = n + i;
i++;
return f(n);
}
int main()
{
printf("%d\n", f(1));
return 0;
}
A: 5 B: 6 C: 7 D: 8
4.🎈下面3段程序代码的效果一样吗( )
int b;
const int* a = &b;
int const* a = &b;
int* const a = &b;
A: (2)=(3) B: (1)=(2) C: 都不一样 D: 都一样
5.🎈5、对于下面的说法,正确的是( )
A: 对于 struct X{short s;int i;char c;},sizeof(X)等于sizeof(s) + sizeof(i) + sizeof(c)
B: 对于某个double变量 a,可以使用 a == 0.0 来判断其是否为零
C: 初始化方式 char a[14] = “Hello, world!”; 和char a[14]; a = “Hello, world!”;的效果相同
D: 以上说法都不对
🔭我们也可以编译运行得到该结果:
#include <stdio.h>
struct X
{
short s;
int i;
char c;
};
int main()
{
struct X x;
printf("%d\n", sizeof(x));
printf("%d", sizeof(x.s) + sizeof(x.i) + sizeof(x.c));
return 0;
}
📝二.编程题
1.🎈验证尼科彻斯定理,即:任何一个整数 m 的立方都可以写成 m 个连续奇数之和。例如:
13=1
23=3+5
33=7+9+11
43=13+15+17+19
输入一个正整数 m(m≤100) ,将 m 的立方写成 m 个连续奇数之和的形式输出。 注意:本题含有多组输入数据。数据范围:1≤m≤100
OJ链接【牛客网题号: HJ76 尼科彻斯定理】【难度:简单】
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
int n = 0;
scanf("%d", &n);
int first = pow(n, 2) - (n - 1);
int i = 0;
for (i = 0; i < n; i++)
{
printf("%d",first);
first += 2;
if (i < n - 1)
{
printf("+");
}
}
return 0;
}
✅自测运行:
🎈2、等差数列 2,5,8,11,14, … 。(从 2 开始的 3 为公差的等差数列),求等差数列前 n 项和。
注意:本题有多组输入
输入描述:输入一个正整数 n 。
输出描述:输出一个相加后的整数。
数据范围: 1≤n≤1000
OJ链接【牛客网题号: HJ100 等差数列】【难度:简单】
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int ret = 2;
int sum = 0;
for (i = 0; i < n; i++)
{
sum += ret;
ret += 3;
}
printf("%d\n", sum);
return 0;
}
🔭样例输出: