不知道结果仍义无反顾地才是勇士。
三,打印整数二进制的奇数位和偶数位
题目内容:
获取一个整数二进制序列中所有的奇数位和偶数位,分别打印出二进制序列
#include <stdio.h>
//打印整数二进制的奇数位和偶数位
int main()
{
int i = 0;
int num = 0;
scanf("%d", &num);
//获取奇数位
for (i = 30; i >= 0; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");
//获取偶数位
for (i = 31; i >= 1; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
return 0;
}
四,下面代码结果是什么?
#include <stdio.h>
int i;
int main()
{
i--;
if (i > sizeof(i))
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
全局变量,静态变量都是放在静态区的
全局变量,静态变量不初始化的时候,默认会被初始化为0
局部变量,是放在栈区,不初始化,默认值是随机值
五,X形图案
描述:
用循环打印"*"组成的X形图案
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成"X"的反斜线和正斜线的长度
输出描述:
针对每行输入,输出用''*''组成的X形图案
#include <stdio.h>
//用循环打印"*"组成的X形图案
int main()
{
int n = 0;
while (scanf("%d",&n)==1)
{
int i = 0;
int j = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i == j)
printf("*");
else if (i + j == n - 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
六,获得月份天数
描述:
编程实现,输入年份和月份,计算这一年这个月有多少天
输入描述:
多组输入,一行有两个整数,分别表示年份和月份,用空格分隔
输出描述:
针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天
#include <stdio.h>
//获得月份天数
int is_leap_year(int y)
{
return (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0));
}
int main()
{
int y = 0;
int m = 0;
int d = 0;
int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
while (scanf("%d%d", &y, &m) == 2)
{
int d = days[m];
if ((is_leap_year(y))==1&&(m==2))
{
d++;
}
printf("%d\n", d);
}
return 0;
}