C语言这题为什么答案是49?

作者&投稿:仲孙肯 (若有异议请与网页底部的电邮联系)
c语言基础问题,为什么结果是49,b不应该自减1吗?~

代码正文第二行的计算顺序是
a='0' 赋值成功的话,相当于这条语句执行结果为true
对第一步的返回结果取反,为false
&&运算会短路,第二步的计算结果已经是false,所以跳过b--
所以b--并没有执行到。b还是1,数字‘0’的ascii码是48,所以最后的输出结果是49.

群:936之后是250最后是734,可以交流分享

x=getchar(); 得到的是 字符 1, 写成字符常量 是 '1'.
字符 1, 对应的 ASCII 码 数值 等于 十进制 49。
printf("%c %d
",x,x); 若用 %c 格式输出 就得 1,用 %d 格式输出 就得 ASCII 码 数值了。

这个结果是49,分析如下:

C语言中,int类型占4个字节char类型占1个字节float类型占4个字节,指针类型占4个字节

结构体中定义的各个数据类型所占字节数相加,就能得到结果。

根据题目信息,结构体中定义了整型数组,共10个元素,所以有40个字节,在加上其他的几种类型,即

40 + 1 + 4 + 4 = 49。

最终结果为49个字节。



如果未指定1字节对齐的话

struct cat 

{

int a[10];  // 40

charch;//1//因为4字节对齐这里会补3个字节

float f;   //4

double *p;  //4

}cat1;

是52 

===============

如果是1字对齐的话  

struct cat 

{

int a[10];  // 40

char ch;   //1

float f;   //4

double *p;  //4

}cat1;

那么是 49

在默认不说明前提的情况下 都是4字节对齐




C语言题目。这题答案第二个为什么输出是1?求解!详细好评!
因为y=1!=0所以y!=0为真,执行if(y>0)显然y>0所以执行printf ("%d", x=y&&1);这里有赋值操作 因为y=1为真,1为真,所以x为真=1;并输出结果为1 由于没有大括号,所以else if 和else都和最近的if配对,所以直接跳过 执行printf ("%d\\n", x);由于上面的执行中x=1所以,这里输出1 ...

C语言编程题这题我交在ACM上为什么答案错误
include<stdio.h> int main(){ int a[1000], n, i;while(scanf("%d", &n) != EOF){ for(i = 0; i < n; i++) scanf("%d", &a[i]);for(i = 0; i < n; i++) if(a[i]<0)printf("%d ", a[i]);for(i = 0; i < n; i++) if(a[i]>=0)printf("%d ...

C语言,这道选择题的答案是什么,求解,我怎么觉得答案是错的
这题答案选择A,a=87的原因是在输入的时候限制了读取的宽度为2,即%2d,使得他只读了两个字符,后面的6给了b,遇到空格结束读取。

c语言我这题为什么这样是错的 如图要计算10以内所有6整数的和 答案明显...
你的for循环后面多了一个分号,这个时候,你的sum=sum+i;就是0+12了,所以结果是12。把后面的分号去掉就可以了。满意请采纳!

c语言 这题里面常量赋值给变量 没搞懂为什么不可以 详细解释一下 求教...
严格说,应当先A。原因是'\\82'是通过转义字符\\,用八进制或16进制表示的ASCII码,但八进制的符号不能有8,所以非法;而十六进制的话'\\82'表示十进制130,赋给char型的a超限了(-128~+127)。但是C编译器在遇到这种情况后,在提示警告的同时会截断把最低位的‘2’赋给a。

C语言中,这道题答案为什么不是1.5,0.75 ?
这个题答案错了。应该是1和0.8。这样能理解吗?

C语言下面这题,请答案多少,过程.
楼上显然不对 k = 11 + 13 = 24 循环的条件是 i<7 并且 p[i] 是奇数, 所以当循环到 i = 2 时, 因为 p[i] = 14 不是奇数而退出。 所以 k = p[1] + p[2] = 11 + 13 = 24 这种题你要是想不大清楚, 可以这样写 include "stdio.h"main(){ int p[7] = {11,13,...

C语言,想问问这题为什么选A
define f(x) x*x#include <stdio.h>\/*int main(){int i;i=f(2+2)\/f(1+1);printf("%d\\n",i);}*\/\/\/这是原题的代码int main(){int i;i=2+2*2+2\/1+1*1+1;printf("%d\\n",i);}\/\/这应是宏展开后的代码我测试了一下,两种运行结果完全一致,都是10,答案可能有问题,你...

举例说明文字的作用
与此题类似,还有语言的社会功能是什么?已往考试不少同学面对这个问题不知道该怎么回答,其实第一章两节标题就是最基本的答案。2.怎样理解语言是一种特殊的社会现象?语言有没有阶级性?为什么?社会现象是和人类的生活有着密切联系的现象,语言就是社会现象。语言不但是社会现象,而且是一种特殊的社会现象。社会现象可分...

...亲给我说一下这两道题的答案,顺便给我讲讲为什么?
答案已运行验证 第一题为D,其中printf("a=%d,b=%d\\n",a,b)句末少分号;第二题为2345,其中程序中default;应该改成default:以上都是语法错误,所以我自行地改了。以下是具体分析:第一题 switch(x){ case 1: \/\/ 这里是满足条件的,即x=1所以进入执行 switch(y){ \/\/ 这里是判断y...

海淀区13221614082: C语言,为什么输入1之后的得到的是49,不是1 -
满吕舒肝: x=getchar(); 你程序中的x是按字符读取的,而不是按数字读取. 字符1在ASCII码表中对应的十进制数是49,将字符1(而不是数字1)对应的十进制数赋值给整数y,y的值是49 输出y的值,当然是输出49了.

海淀区13221614082: 用C语言编程:为什么a=100/2;结果a=49? -
满吕舒肝: #include void main(){ int a; a=100/2; printf("%d",a);}...

海淀区13221614082: C语言求解,为什么答案是51,而且去掉static用C++软件运行结果得到的是49 -
满吕舒肝: staticintj;//内部全局变量,编译器自动初始化位0.当fun函数中有intj=0;时,因局部变量j和全局变量j重名,所以内部的局部变量j有效,全局变量被屏蔽,所以每次执行fun函数都重新声明了局部变量j并初始化为0,函数结束后局部变量销毁,所以...

海淀区13221614082: c语言:为什么这题的答案是这个?? -
满吕舒肝: 因为while循环的判断条件, 如果(*x==*y)不满足, 则不再循环. 就是说, 如果第0个字符就不相等, 则不会循环,n=0. 如果第0个字符相等, 则执行 {x++;y++;n++;} 就是x, y都指向第1个字符, 且n=1. 以此类推.

海淀区13221614082: C语言一个简单题 -
满吕舒肝: 哥们,首先要纠正一下你的错误b=a%16不是1.75因为%是求余.b=a%16的值是12"运行*p=b+48后,*p应该为49才对"如果b是12肯定是不对的 但是*P的最终结果也不是49 因为 a=a/5; }while(a>0); 这两句要求你的循环要再执行两次

海淀区13221614082: c 语言 49数的立方等于一个数立方; 求49个数c 语言 49数的立方和等于一个数立方; 求这49个数也就是 a[1]^3+a[2]^3…………a[49]^3=a[50]^3求a[1],a[2]…... -
满吕舒肝:[答案] 意思没有表达清楚,不知道可不可以把原题贴出呀.不要你的表达.你的看不懂.

海淀区13221614082: c语言整型数据类型问题 在C语言中,不正确的int类型的常数是______. -
满吕舒肝:[选项] A. 32768 B. 0 C. 037 D. 0xAF 答案:A 为什么是A啊

海淀区13221614082: c语言程序帮忙查错(只有49行)! -
满吕舒肝: #include #include typedef struct emp{ char name[10]; int salary;}EP;int main(){ EP employee;/*建立一个临时...

海淀区13221614082: C语言第7题,为什么结果是23 -
满吕舒肝: 首先,初始化int变量x值为23.然后,进入do-while循环,首先执行一次循环体中的语句:printf("%d", x--); 因为自减运算符在变量x后面,所以x的值是在参与一次执行后减少,这里是在被以%d带符号10进制整数形式输出之后减少.所以输出的结果是23原来的值,输出之后,x的值立即自减1变为22.随后执行while的条件语句:while (!x) 这句代码表示当!x不等于0,即当x等于0时,进行下一次迭代,否则结束这个do-while循环.因为这里x的值是22,所以!x之后是0,所以do-while循环结束.main函数结束.

海淀区13221614082: C语言中这道题的答案为什么不是X< - 5||X>5 ? -
满吕舒肝: 这道题的答案就是 X<-5||X>5 ----给出的答案是错了的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网