C基础练习题
练习1:将123的第三位取反 并打印取反后的值 0111 1011
是对123的二进制数进行操作:也就是将0111 1011 的第三位(位数从0开始)取反为:01110011
经过计算器验证正确性:
参考代码:
#include <stdio.h>
int main()
{
int num=123,a;
a=(1<<3)^num;
printf("%d\n",a);
return 0;
}
练习2:将123的第三、四、五位取反 并打印取反后的值:
与练习1同理:这是选择任意的三位进行取反。但是这些位数小于8
参考代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int num=123,a,b,c,d;
printf("shu ru yao gai de san wei:");
scanf("%d%d%d",&b,&c,&d);
a=num^(1<<b)^(1<<c)^(1<<d);
printf("%d\n",a);
return 0;
}
练习3:定义一个整形变量:int num = 123; 将该数据组成倒序数据即:num = 321,然后输出结果
参考代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int num=123,a,b,c,d;
a=num/100;
c=num%10;
b=num/10%10;
d=a+b*10+c*100;
printf("%d\n",d);
return 0;
}
练习4(使用三目运算符):定义一个变量存储年份:int year = 2023; 通过程序判断该年份是否为闰年,如果是闰年,则输出“闰年”,否则输出"平年";
判断闰年条件:
1、所在年份能被4整除,但是不能被100整除 例如:2004是闰年,1999不是闰年
2、所在年份能被400整除 例如:2000是闰年,1900不是闰年
以上两个条件,只要满足一个,则该年份为闰年。
参考代码:#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
/*定义一个变量存储年份:int year = 2023;
* 通过 程序判断该年份是否为闰年
* 如果是闰年,则输出“闰年”,否则输出"平年";
*判断闰年条件:
1、所在年份能被4整除,但是不能被100整除 例如:2004是闰年,1900不是闰年
2、所在年份能被400整除 例如:2000是闰年,1900不是闰年
以上两个条件,只要满足一个,则该年份为闰年。*/
int year;
printf(" enter years:");
scanf("%d",&year);
(year%4==0 && year%100!=0) || year%400==0?printf("yes\n"):printf("no\n");
return 0;
}