ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言练习题

2021-10-23 13:02:15  阅读:194  来源: 互联网

标签:练习题 十六进制 转换 二进制 C语言 数为 int 十进制


1、float类型变量f和0如何比较相等和不相等?
#include<stdio.h>

int main()

{
float f = 1.0;

float f1 = f/3;   // f1 = 1/3
   
float f2 = f1*3;  //f2 = 1
float f_result = f1 - f2/3;    //f_result = 0 

if(0.0f == f_result)

{

printf("f_result== 0/n");

}

else

{

printf(“f_result!= 0/n”);

}

return 0;

}

2、十进制算术表达式:3512+764+48+5的运算结果,用二进制表示为:11111100101
方法1: 3
512+764+48+5=2021
十进制2021转换为二进制为:11111100101
方法2:3512+764+48+5=111000000000+1111000000+1001000+101
=11000000000+111000000+100000+101
=11111100101

3、十进制数2006等值于十六进制数为:7D6
先将十进制数2006转换为二进制为:11111010110
再从右到左四个编码为一组合,即转换为十六进制数为:7D6

4、将十进制数字转换为二进制,123.5,200.30
十进制数123.5转换为二进制数为:1111011.1
十进制数200.30转换为二进制数为:11001000.0100110011001100

5、将二进制数字转换为八进制,01011010110111110011110111110101
将二进制数字转换为八进制,只要将二进制数字从右到左三三分组,不够三位数的补0占位。
即001 011 010 110 111 110 011 110 111 110 101
所以转换后的八进制数为:13267636765

6、将二进制数字转换为十六进制,01011010110111110011110111110101
将二进制数字转换为十六进制,只要将二进制数字从右到左四四分组,不够四位数的补0占位。
即0101 1010 1101 1111 0011 1101 1111 0101
所以转换后的十六进制数为:5ADF3DF5

7、将二进制数字转换为十进制(假设为1字节),010111010,11110101,11111111
将二进制数010111010转换为十进制数为:90
将二进制数11110101转换为十进制数为:245
将二进制数11111111转换为十进制数为:255

8、将十进制数转换为十六进制50,100,12345
将十进制数转换为十六进制,必须先将十进制数转换为二进制数,再把二进制数四四分组后转换为十六进制。
十进制50转换为二进制数为:00110010,即0011 0010,转换后的十六进制数为:32;
十进制100转换为二进制数为:01100100,即0110 0100,转换后的十六进制数为:64;
十进制12345转换为二进制数为:11000000111001,即0011 0000 0011 1001,转换后的十六进制数为:3039

9、利用函数实现判断给定的年份是否为闰年。函数自行设计并测试。
程序如下所示:
int main()
{
int year;
printf(“年份”);
scanf_s("%d",&year);
if(year%40 || year%100!=0 || year%4000)
{
printf("%d是闰年\n", year);
}
else
{
printf("%d不是闰年\n", year);
}

return 0;

}

10、利用函数实现判断一个数字是否为素数,函数自行设计并测试。
程序如下:
int main()
{
int A;
scanf_s("%d", &A);//从输入终端获取值

for(int i=2; i<A; i++)
{
	if(A%i==0)
	{
            printf("%d不是素数\n", A);

	}
     }
             return 0;

}

11、利用函数实现求a,b,c三个数的最小值,函数自行设计并测试。
程序如下:
int main()

{

  int max;

  int a,b,c;

  printf("输入三个数:");

  scanf_s("%d %d %d",&a,&b,&c);

  max=a>b?a:b;

  max=c>max?c:max;

  printf("Max为%d",max);

  return 0; 

}

12、利用函数实现求两个数的最大公约数,函数自行设计并测试。
程序如下:
int main()

{

   int a = 0, b = 0;

   printf("输入两个数:");

   scanf_s("%d%d",&a,&b);

   while(a!=b)

 {
    
   if(a>b)
    
   {
   a = a - b;

    }
    if(a<b)

    {
   b = b - a;

    }
 }
   printf("%d\n",a);

   return 0;

}

标签:练习题,十六进制,转换,二进制,C语言,数为,int,十进制
来源: https://blog.csdn.net/weixin_58368590/article/details/120919637

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有