77问答网
所有问题
一个c语言题
一个c语言题为什么答案是-1
举报该问题
推荐答案 2017-05-21
这个题跟整数的储存方式有关。
unsigned short类型:占两个字节,即16位,没有符号位,计数范围从0000 0000 0000 0000(0)~1111 1111 1111 1111(65535)。当把65535赋值给a时,对应地址里储存的是1111 1111 1111 1111。
int类型:也是占两个字节(16位),但有一位符号位,最高位为1时为负数,计数范围是(负数用补码表示)从-32768~+32767:
0111 1111 1111 1111(最大正数32767)
0000 0000 0000 0001(最小正数1)
0000 0000 0000 0000(0)
1111 1111 1111 1111(最大负数-1)
1000 0000 0000 0000(最小负数-32768)
能够看出,当把a(16个1)赋值给b时,b的值也是16个1,但这16个1用%d格式打印时,因%d格式对应int型变量,而16个1在int类型解读为-1,所以,输出-1。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/pG8NGqIpWGY8vq8vGY.html
其他回答
第1个回答 2017-05-21
short a=65535;使变量a的二进制为16个1,表示这个数就是-1,将它赋给int型变量b时要对a进行称号位扩展,最后得到32位二进制1。输出的是b,自然就是-1了。
第2个回答 2017-05-21
整型的每一种都有无符号(unsigned)和有符号(signed)两种类型,一般int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数
65535转成二进制为:1111 1111 1111 1111
相似回答
搞懂这8
个C语言
问题,你也能进大厂
答:
·f)
一个
指向有10个整型数数组的指针(A pointerto an array of 10 integers)。 6、关键字static的作用是什么? 在
C语言
中,关键字static有三个明显的作用:第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 第二、static修饰全局变量的时候,...
C语言
问题,编写
一个
程序计算矩形的面积和周长
答:
1.代码参考:(边长可以是整数也可以是小数;实现乘法的运算符是*)2.代码参考:
C语言
问题:C语言中没有逻辑量,在判断
一个
量是否为真时以( ) 代表...
答:
C语言
没有专门bool(布尔)类型数据,在C语言中用0表示假,其余非0整型数据表示真。例如 int i=7,j=0;if(i) printf("%d",i);if(j) prinftf("%d",j);结果只会显示7。
c语言
问题 编写
一个
函数,求出一个给定的数字的所有因子,如72=2*2*...
答:
//设定
一个
范围足够的数组存放因子while(i<=x){ if((x%i)==0) { x=x/i ;a[j]=i; j++; i=2;} else i++;//由于一个数的因子会小于或等于本身,所以可以//以此设定跳出条件,用遍历的思想去从2开始逐个寻找因子//如果那个数是因子之一则可以被整除if((x%i)==0)//以此作为判断条件,而一个...
C语言题目
:
一个
数如果恰好等于它的因子之和,这个数就称为“完数...
答:
include <conio.h> void main(){ int m,i,s;for(m=
1
;m<=1000;m++) //从1开始到1000循环结束 { s=0;//初始化因子之和s为0 for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子 if(m%i==0) //如果m能整除i,则i为m的因子 s=s+i;//将因子累加 if(s==m) //如果...
C语言
期末复习
试题
赶紧复习起来
答:
C语言
期末
题库试题
赶紧复习
1
,下列定义变量的语句中错误的是--- A,int _int B、double int_ C、char For D、float US$答案:D一一知识点:常量、变量和标识符 2.以下不合法的用户标识符是--- A、j2_KEY B、DoubleC、4d D、_8 答案:C一知识点:常量、变量和标识符 3.以下...
求大佬解决
C语言
问题
答:
题目
要求用指针函数,既返回值为指针类型的函数。在主函数接收返回值并输出打印。从输入的学生中找出有不及格的学生,并输出其不及格的课目成绩。(在打印所有学生的同时就筛选出存在不及格的学生,可减少循环次数,本题只有3个学生,假设更多的话)。下面是代码:include <stdio.h> include <malloc.h> ...
大家正在搜
c语言编程题库100题
大一c语言经典编程题
大一c语言必背编程题
大一c语言编程题库
大一c语言常考编程题
c语言必考编程题
c语言编程题经典100例
c语言选择题
c语言常考的编程题
相关问题
一个C语言题目
一个C语言题目
c语言的一个题
一个c语言编程题
c语言的一个题
一个C语言问题
一个C语言问题
c语言一简单习题