几道C语言的入门问题,给过程,在线等

1.下面不属于C语言整形常量的是()

A.01 B.0x1 C.08 D.8
2.在Visual C++6.0中,表示单精度的数是()
A. 2004.04 B. 2004.04f C. 2.00404e3 D. 0.200404e4
3.表达式0x14&0x18的值用16进制表示为_______.
4.测试char型变量b左边第5位是否为1的表达式是_______

5.当从键盘输入20 35时,输出的结果是_______

#include<stdio.h>
void main()
{
unsigned char a,b;
scanf("%x %x",&a,&b);
printf("%x",a&b);
}

1、C
A选项表示8进制的1;
B选项表示十六进制的1;
C选项错误,0开头的表示八进制的整数常量,范围是0-7,08显然超过了8进制的表示范围;
D选项表示十进制的8;

2、B
f表示单精度,不写的话默认都是双精度;

3、0X10;
两个十六进制的数进行按位与运算,首先把两个十六进制数化成二进制OX14:0010 0000
OX18:0011 0101,然后进行按位与,相同得1,不同得0
0010 0000
& 0011 0101
--------------
=0010 0000 把它化成十六进制就是OX10;所以答案是10;

4、(b>>3)&1=1就是1,如果=0就是0;
char是一个字节 8位 表示成xxxx 1xxx(假设左边起第五位是1),那么右移三位后,原来的第五位就是现在的最后一位了,和1进行按位与
XXXX XXX1
&0000 0001 结果就很明显了,如果第五位是1,结果就是1,否则为0;

5、0X10;
你输入的是十进制的20,35,但是你要先把他们转化成十六进制,在转化成二进制进行按位与运算,20->0XE->0000 1110(2);35->0x23->0010 1011(2)
0000 1110
& 0010 1011
——————

0000 0010 这就表示的十六进制的0X10 ;
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-22
C,以0开头是八进制,
D单精度有效位数是前七位,当然不包括小数点,但是小数点后面默认保留6位小数,如果不够6位用0填充。
ox10,&是个 位与运算符号
0x14&0x18 就是 0001 0100
& 0001 1000
--------------
= 0001 0000
确定 第5位是否为1只要与0x10进行位与
b&0x10 结果是1第5位就是 1否则为0
同样16进制的 20 35
0010 0000
&0011 0101
--------------
=0010 0000
ox10
第2个回答  2013-07-26

    C

    B

    0X10

    b&10000<<4==1

    0x10

解释:第五题,

20,35二进制分别为

1100

&

1011 =

———

1000=0x10

第3个回答  2013-07-22
1.C
2.B
3.10
4.b<<4>>7==1
5.20追问

为什么额

第4个回答  2013-07-22
1.C 0开头表示8进制后边的数应该是0-7
2.B f表示单精度,不写的话默认都是双精度
3.0x10 按位与
4.(b>>3)&0x1 == 1 确认b的bit3是否为1
5.20 %x把20,35当做16进制读取,读取后按位与,即0x20&0x35,然后以16进制输出结果追问

第四题答案是b&0x10
第五题怎么分析额20 和35分别转化为010000和110101(32位吗?)然后按位与放入到10000,化为16进制=10 额···无语了

追答

4.我看错了吗?怎么确认称第3位了?
要是要求的是验证第5位的话 你那个答案是可以的
b&0x10的意思就是: b按位与0001 0000 。如果B的第五位是1,那么运算结果就是0001 0000,如果第五位是0,运算结果就是0.
5. %x把 20,35当做16进制数读取,即0x20,0x35。0x20和0x35按位与,即0010 0000 & 0011 0101,结果是0010 0000即0x20, 再以16进制格式输出 就是输出20了。

第5个回答  2013-07-22
B。。。。D。。。。0x10。。。。b%32。。。。0x37。。。。

几道C语言的入门问题,给过程,在线等
A选项表示8进制的1;B选项表示十六进制的1;C选项错误,0开头的表示八进制的整数常量,范围是0-7,08显然超过了8进制的表示范围;D选项表示十进制的8;2、B f表示单精度,不写的话默认都是双精度;3、0X10;两个十六进制的数进行按位与运算,首先把两个十六进制数化成二进制OX14:0010 0000 OX...

几道c语言题目 菜鸟望高手解答
第一道题:输出的是:0 1 3 4 \/\/因为for循环 i从0到4 但是当i等于2的时候执行了continue,也就是直接跳转到下一次循环,所以2没有输出 第二题:t为2 因为 if-else 结构中的else是和最近一个if相匹配的,又因为if(x<y)不成立,所以直接执行输出语句,即输出2 第三题:3 6 9 因为x被...

请教几个简单的C语言问题!急!在线等!
1、3.4f表示按宽度为3精度为4的单精度浮点型输出。%05d或%.5d表示按宽度为5的整型输出,实际位数少于定义的宽度则在前面补以0。printf("%03d",34)编译运行输出结果为034 其中的0不是针对8进制数,而是表示实际位数少于定义的宽度则在前面补以0。对于单双精度实数%0n1.n2f等同于%n1.n2f.2...

C语言问题简单的很,菜鸟送分,在线等
1.程序分析:用第一个与最后一个交换。2.程序源代码:define N 5 main(){ int a[N]={9,6,5,4,1},i,temp;printf("\\n original array:\\n");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N\/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;} printf("...

C语言问题简单的很,菜鸟送分,在线等,超级高分,给我讲明白,否则关闭问题...
p--; \/\/令p指向字符串中的前一位 \/\/此时,p指向了字符串的最后一位 for( ; t > 0 ; t-- ) \/\/从后往前输出字符串的每一位,t每减小1就输出了一个字符,t=0的时候恰好每一位都已输出 { printf("%c",*p);p--; \/\/令p指向字符串的前一个字符 } printf("\\n");} ...

C语言问题简单的很,菜鸟送分,在线等
不就是输入一个正整数,然后反序输出么,关键部分无非就是 while(k!=0){ m=k%10;t=t*10+m;k\/=10;} 10可以直接取一个数的个位数,\/10则相当于将个位数去掉,把原来的十位数变成现在的个位数,然后就可以用%10取个位数(即原来的十位数),以此类推,可以取完该数的各位数....

c语言的基础问题菜鸟啊明天要教高手帮忙在线等啊~~
include <stdio.h> void main(){ int x,i;printf("please input a int number:");\/\/请输入一个数字:scanf("%d",x);\/\/输入数字 for (i=1,i<=9,i++){ printf("%d*%d=%d ",x,i,x*i);if(i mod 2 ==0)\/\/自动换行 printf("\/n");} } ...

C语言问题求解,在线等,急!!!
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。2、独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。3、init函数为输入并返回动态数组。include <stdio.h> include <malloc.h> int len=0;\/\/路面长度 int *init(...

c语言问题,菜鸟找高手。。在线等答案。。急
1.n=0;2.n=n*10+((S[i]-48)%10);

c语言的一些问题,在线等
答:1.C语言中,函数返回类型在定义中可以省略,此时函数返回类型隐含是:int 型 。2.C源程序文件的后缀名默认为 :.c 。3.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b\/b的值是:6.000000 4.程序段float x=165.323;printf(“x=%-10.2f”,x);执行时输出的结果为...

相似回答
大家正在搜