5道选择题:
1、以下程序段的输出结果是()
#include<stdio.h>
#include<string.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.8 C.9 D.6
3、如下函数的 f(1) 的值为( )
int f(int n)
{
static int i = 1;
if(n >= 5)
return n;
n = n + i;
i++;
return f(n);
}
A.5 B.6 C.7 D.8
4、下面3段程序代码的效果一样吗( )
int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;
A.(2)=(3) B.(1)=(2) C.都不一样 D.都一样
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.以上说法均不对
对于结构体对齐内容不理解的朋友可以去看下博主之前写的自定义类型详解,里面有关于这一问题的详细叙述
自定义类型详解_大海里的番茄的博客-CSDN博客
编程题1:
P5717 【深基3.习8】三角形分类 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
唯一需要注意的就是锐角和钝角的判断,因为很多人都把它们的判断方法忘记了
两条较短边的平方和大于最长边的平方,此三角形就是锐角三角形
两条较短边的平方和小于最长边的平方,此三角形就是钝角三角形
#include<stdio.h>
int main()
{
int a=0;int b=0;int c=0;
//代表着三角形的三边
scanf("%d %d %d",&a,&b,&c);
int max=a>b?a:b;
max=max>c?max:c;
//计算出三边的最大边
int min=a>b?b:a;
min=a>min?min:a;
//计算出三边的最小边
int sum=a+b+c;
//三边总和
a=max;
//令a为最大边
b=sum-min-max;
//令b为中间边
c=min;
//令c为最小边
if(b+c<=a)
//三角形成立条件,两边之和大于第三边,不满足肯定不是三角形
//拿较小的两条边来比较,如果较小的两边之和都能大于第三边就一定是三角形
{
printf("Not triangle");
}
else//是三角形才能进行后面的判断
{
if(b*b+c*c==a*a)
//勾股定理判直角
{
printf("Right triangle\n");
}
else if(b*b+c*c>a*a)
{
printf("Acute triangle\n");
}
else if(b*b+c*c<a*a)
{
printf("Obtuse triangle\n");
}
if(a==b||b==c||c==a)
//等腰三角形判断
{
printf("Isosceles triangle\n");
if(a==b&&b==c)
//先是等腰才是等边
{
printf("Equilateral triangle\n");
}
}
}
}
编程题2:
等差数列_牛客题霸_牛客网
根据等差数列的公式 首末相加*项数/2即是答案,那么计算首末端即可
#include <stdio.h>
int main() {
int head=0;
int end=0;
int n=0;
scanf("%d",&n);
head=2;
end=2+(n-1)*3;
printf("%d",(head+end)*n/2);
}
好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O