C语言变量赋值二道题

(1)以下能正确地定义整型变量a,b和c并为其赋初值5的语句是______.
A int a=b=c=5;
B int a,b,c=5;
C a=5,b=5,c=5;
D a=b=c=5;
书上明确写着:在变量说明中,不允许连续给多个变量赋初值。如下述说明是错误的:
int a=b=c=5必须写成int a=5,b=5,c=5; 但答案为什么是A?是书上错了吗?
(2)已知ch是字符型变量,下面不正确的赋值语句是_____。
A ch='a+b';
B ch='\0'; \0是什么啊?
C ch='7'+'9';
D ch=“\”; 这是啥?

(1)选A。你看得书可能有错误,在定义变量类型的时候直接赋值
int a=b=c=5;
这样赋值是可以的。但是不能这样写:
int a,b,c;
a=b=c=5;
这样就错了。也就是说在定义类型时直接赋值,可以出现“a=b=c=5”这种形式,否则不行,必须写成:
int a,b,c;
a=5;
b=5;
c=5;

(2)选D和A。因为A也不对,'a'+'b'才是a和b的ASCII码相加后的值,'a+b'则只能看成是一个字符串,一个字符串当然不能赋给一个字符变量,楼主可以上机试验一下,这种赋值是提示错误的。B是正确的,'\0'是一个字符,表示空操作,就是什么也不干。C也正确,'7'+'9'表示'7'和'9'的ASCII码相加后的值所对应的字符,应该是'p'。D就不说了,明显错误的。所以这道题如果不是楼主打错就应该是出错了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-09
这么久的题目了..我来纠正下吧

首先是第二题 D ch="\" " "这个符号是字符串 ,所以"/"并没错,而选项A;因为 ' ' 符号是用在单个字符的所以是错的,所以选A

然后是第一题 这个地方选项A是错的,如果你是以考试为主你相信书就好了,其实这题我认为是个语文问题..题目说:整型变量a,b和c并为其赋初值5,“并为其”是不是指的是c呢?这下大家明白答案了吧,是B哦
第2个回答  2009-03-04
第一题明显没有对的

第二题
'a+b'可以理解成256进制,赋值给ch的是最低8位的'b'。注意字符常量的类型是int,你在''里最多可以写4个字符(转义算一个字符)。比如'1234'相当于0x31323334
'\0' 这就是0
D首先""就不对 "\"这样就更不对了本回答被提问者采纳
第3个回答  2009-03-04
1> A
排除法就可以知道了。
B只给c赋值了a,b没有
C和D没有定义

2> D

2>A:'a+b'是指a和b的ASCII相加的值
B:'\0'表示结束符或空字符
C:是'7'的ASCII加上‘9’的ASCII
D:是两个字符是一个字符串‘\’和‘\0’
第4个回答  2009-03-04
书上对了,C,D没有定义类型先排除,B只对c赋值了。A从右往左读5赋给c,c赋给b,b再付给a。第二题A不对\0是转义字符和\n类似

求C语言高手:设x喂int型变量,则执行语句x=10;x+=x-=x-x;后,x的值为...
x+=x-=x-x是这样计算的:因为赋值表达式是右结合的,所以自右向左运算。x-=x-x,x-x=0,x-=0则后面的表达式值为10且此时x的值为10;x+=10,即就是x=x+10,那么x=20.第二道题是逗号表达式啊,选择最近的一个表达式;n=(6*4,n+6),n*2;其实就是n=6*4=24 ...

两道c语言编程,能不能帮忙分析一下结果为什么不同?
第二道:因为STU中的char name[10]声明的name是个数组,当b=a操作后b就是a的拷贝,但后面对b中的数组的操作不会影响对a中的数组。所以输出结果应该是Zhao,m,290,Qian,f,350。余同上。指针和数组拷贝后都有两个实体,但数组是对两个实体操作,而两个实体指针指向的目标却是同一个。尽管f中对...

C语言中运算
详情请查看视频回答

c语言题目 求大佬
后缀自增\/自减表达式的值就是变量的当前值。例如有变量b=4,则表达式b++的值也是4。执行自增\/自减表达式之后,变量的值变为原值+1\/-1。这称为自增\/自减表达式的副作用。例如有变量b=4,执行表达式b++后,b的值变为5。第一道题求的是执行完表达式a++和b++后变量a和b的值,而第二道题求...

两个关于C语言的问题。
1、在x=3的状态下进入do循环,第一次运行printf语句,首先使 x -= 2 ,x的内容减掉2,输出x的当前值,所以输出了1。接着进行循环条件判断,先进行 --运算,使x的内容变为0,!0的计算结果为真,循环继续进行。第二次运行printf首先 x-=2 即 x = 0-2,使x的内容变为-2,并被输出。当x...

c语言不太会第二道题
p = a 表示指针变量p指向数组a的首地址,即指向a[0]元素的首地址。++p 表示指针变量p移向下一个位置,即p指向a[1]的位置。p = *p +2 表示p指向的位置的元素的值在原有基础上增加2,即a[1] = a[1] + 2 = 3。格式输出时,按右结合性进行运算,但实际输出结果按从左到右输出。(p++...

C语言习题请高手帮忙解答
1.1:-200 2500 2:i=-200,j=2500 3: i=-200 j=2500 2.i=12 j=0 k=0 3. 复合语句在语法上被认为是一条语句。空语句形式是只有一个分号的空行 4.C语句最后用分号结束

四道初级C语言题目 哪位好心人帮我做下 谢谢啦
第一题,1空s[i]!='\\0',2空j++ 第二题 for( i = 0; i < 10; i++)s=s+sqrt( ( x[i] - 1 )* (x[i] - 1 ) + ( y[i] * y[i] ) );第三题 1空 sum =pst->math+pst->english+pst->computer,2空&st[i]第四题sum=0;for( i=0; i<10; i++) if( a...

C语言编程第二道求x =1-1\/2!+1\/4!-1\/6!…精确到小数点后五位
include "stdio.h"int main(int argc,char *argv[]){double x,t;int n;for(x=t=n=1;t>0.00001;n++){t=t\/(n+n)\/(n+n-1);x += n&1 ? -t : t;}printf("The result is about %f\\n",x);return 0;}运行结果:

C语言连接复制函数的二道题目求大神告知 谢谢了
第一题:答案肯定错了!首先strcat的功能你应该明白吧,strcat(a,b)就是将字符串b的开头与字符串a的结尾相连。这里字符串p是abcd,字符串r是123de,所以连接后的结果为abcd123de。这点我利用程序运行后得到了证实:第二题:当然长度是4了!因为你strlen(strcpy(p,"ABCD"))这里求长度的时候,首先...

相似回答