首页 > 其他分享 >三日一练-C语言百题(001-005)

三日一练-C语言百题(001-005)

时间:2023-04-10 23:45:17浏览次数:43  
标签:百题 一练 include int scanf C语言 printf main 十进制

进制转换:

 1 //C语言算法:十进制转为二进制
 2 #include<stdio.h>  
 3 int main()  
 4 {  
 5     int b,i,c=0,a[30];  
 6     scanf("%d",&b);  
 7     while(b!=0)  
 8     {  
 9         i=b%2;  
10         a[c]=i;  
11         c++;  
12         b=b/2;  
13     }  
14     c--;//因为c代表存入数据的长度而下表范围是0~c-1  
15     for(;c>=0;c--)//倒序输出即为这个数字对应的二进制  
16     {  
17         printf("%d",a[c]);    
18     }  
19     printf("\n");   
20     return 0;  
21 }  
22 
23 /****************样例二*********************************/
24 # include <stdio.h>
25 
26 int main()
27 {
28     int i, n = 0, b[16];
29     scanf("%d", &i);    //对十进制数的读取
30 
31     for ( ; i; i>>=1)     //把i右移一位 i = i >>1;
32         b[n++] = i&1;
33     for (; n; )
34         printf("%d", b[--n]);   //二进制数一个个输出
35     //  getchar();
36         printf("\n");
37     return 0;
38 }
39 举例:
40     123
41     1111011
42     
43     
44     /********************对十进制数取反***************************/
45         5的二进制是00000101,取反后是11111010,因为%d是按照有符号十进制数字输出,
46     所以会把11111010按照有符号十进制数字处理,根据进制转换的规则对11111010先减一,
47     再取反,得到00000110,即6,但是有符号数中的符号位是1,所以会输出-6。
48     
49     输入一个十进制整数,将他们对应的二进制数的各位反序,形成新的十进制数输出??
50     
51 参考:
52 #include <stdio.h>
53 void main()
54 {
55     int i,j,n;
56     scanf("%d",&n);
57     for(i=n,j=0;i;i/=2)
58         j=j*2+i%2;
59     printf("%d\n",j);
60 }
61 /***********************************/
62 #include <stdio.h>
63 int main()
64 {
65 int m,n=0,p=1;
66 scanf("%d",&m);  
67 for(;m;)
68 {
69 n=(1-m%2)*p+n;
70 m/=2;
71 p*=2
72 }
73 printf("%d\n",n);
74 }
75 /********************************/
76 #include <stdio.h>
77 void main()
78 {
79     int i,n;
80     scanf("%d",&n);  //n大于0
81     for(i=1;i<n;i*=2);
82     i=(i-1)&~n;
83     printf("%d\n",i);
84 }
85 /****************************/

 

标签:百题,一练,include,int,scanf,C语言,printf,main,十进制
From: https://www.cnblogs.com/xiaosanxian/p/17304752.html

相关文章

  • 三日一练-C语言百题(006)
    进制转换:16进制转10进制1//201803062C语言十六进制字符串转十进制3需求:比如我有一个字符串,定义为char*a=“2B4AFF8071”,里面是十六进制表示,4我要每次依次取其中两位比如2B,转换成十进制“43”,然后再存入另一个字符串char*b或5字符数组charb[],接着取4A,依次......
  • C语言中的位运算符和源码反码补码的浅解
    位运算符【与(&);或(|);非(~);异或(^);移位运算符(<<和>>)】对于有符号(正负)的而言:1)二进制的最高位是符号位:0表示正数,1表示负数2)正数的原码,反码,补码都一样3)负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)4)负数的补码=它的反码+1 5) 0在计算机种分+0与-0,它们的原码,补码,反码......
  • 逍遥自在学C语言 | 位运算符&的高级用法
    前言在上一篇文章中,我们介绍了&运算符的基础用法,本篇文章,我们将介绍&运算符的一些高级用法。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、位掩码位掩码是一种用于按位操作的......
  • 01 | C语言异常处理(jmp_buf、setjmp、longjmp)
    首先说明,C语言中的异常处理主要还是错误码的思路.其次,C语言中是有返回两次的函数的,比如说fork()函数在C语言中是没有trycatch块的,但并不代表没有异常处理。接下来我们简单明确三个概念,最后来一个简单的小例子。1.三个概念使用一个jmp_buf的类型变量来充当异常......
  • C语言学习第五天
    打字练习软件typespeed  1、安装:sudoapt-getinstalltypespeed  2、打开typespeed保证窗口至少80*24一、Windows下获取方向键:  1、导入#include<conio.h>  2、通过getch()的返回值获取键盘上的键值    上:72 下:80 左:75 右:77二、Lin......
  • C语言GCC编译错误(收集)
    错误一: 实参类型不兼容这是Linux下编写的UDP方式通信的服务器端代码:intret_rec=recvfrom(soc_fd,//上面定义的UDP套接字 msg, //接收数据缓存区 128, //接收数据缓冲区,大小 0, // 和发送端一样的标记 from_addr,//......
  • VS2019使用C语言进行websocket编程
    一直在写C#代码好多年不写C语言代码了,记录一下之前某个项目里用C写的一个websocket服务,用C的优势是写的东西体积小性能高,但是写业务的话还得用C#、Java之类的语言,不然会折腾死人。。。 用VisualStudio新建一个C++(因为不能直接建C语言项目)项目,我演示就创建一个控制台项目。项......
  • 自用纯C语言实现任务调度(可用于STM32、C51等单片机)
    前言  这个任务调度模块的实现是形成于毕设项目中的,用在STM32中,断断续续跨度2个月实现了一些基本功能,可能后面再做其他项目时会一点点完善起来,也会多学习相关知识来强化模块的实用性和高效性,毕竟用自己自主实现出来的功能还是蛮舒心的。任务调度模式结构  整体上的结构属于......
  • C语言程序环境
    前言早期的程序员,使用的是二进制语言编写代码,之后发展出汇编语言,B语言,C语言等等,其中,二进制语言是机器可以识别的语言,但对于程序员来说理解可能较为困难,发展到C语言时,我们所写的代码已经经过不断优化,使得程序员能清晰的明白代码的含义,但最终,我们要想机器识别出我们所写的代码,还需要......
  • C语言的回调函数原来这么简单
    手机端阅读:C语言的回调函数原来这么简单 了解开发语言的朋友应该都会对回调函数有所了解,在很多的程序开发语言中都能看到回调的身影。很多场景下,当某个条件成立以后我们希望代码执行某些指定的部分,这个时候可以考虑使用回调函数的方式,这样做思路更加的清晰,也能使代码结构的逻辑更加......