下面有一些关于C语言问题,希望大伙儿侃侃,最好解释详细,谢谢呢

2021-03-18 05:51:45 字数 1287 阅读 9945

1楼:匿名用户

第一题:3

这是一道位运算,a&0377等同于011&011111111的运算,这两个与一下值为011,也就是3

第二题:11

这也是位运算,先把3,10,15化为二进制,依次为:011,1010,1111.a|b&c先运行b&c得到1010,再跟a或运算(一位一位或)得到1011,也就是11.

第三题: d) h/2*(a+b)

h/2等于1,而代数中等于1.5.这是因为h为整型,h/2后也是整形,0.5舍去.

第四题:20 0

以上格式写得让人误会,我重写一下,你就会明白.

main() ,固if语句范围只有第一个;为此

x=y;y=t;

printf("%d,%d\n",x,y);

}第五题:8 4

void f(int y,int*x) x是按地址传,而y是按值传,当值传到函数里时,*x可以改变x的值,而y不能返回.保持原来的值...

第六题:

这是c语言的内存动态分配,不是很掌握,没有把握,希望其它好心人帮忙一下补齐.

第七题:efgh

这道我简单说下,语言点太多,要是不明白,发消息给我,我就这题说详细.

return s+strlen(s)/2,返回的是一个指针,s指向首元素a,strlen(s)/2=4,固返回的指针指向第五个元素e.主函数中的 printf打印从第五个元素之后的字串.

第八题:6

这是一道递规调用.主函数传给函数时f()时,a=a[3]首元素是1;返回1+f(&a[1],2);f(&a[1],2)在调用函数时a=a[1],但此时首素是2而不是1;返回1+2+f(&a[1],1);最后调用函数,a=a[2],首元素为3,也只有一个;返回1+2+3,得到6

第九题:double max,&y

这题不需要解释吧....还是简单讲一下,第一个空是函数声明;要与定义的函数相符,第二个空,输入时要加&,为什么呢?我们要把输入的值传给变量对应的地址,固用地址符&

最后一题:14

位运算;12|012化简得到:001100|001010=001110,换算成10进制得到14

其中注意,012是八进制,1对应001,2对应010,一整个001010,因为两个要等长,固补0;

哇,一口气做完,真是够累的...好久没这么做了...

呵呵,又来了;

我补充一下第六题,我看一下书,明白了.

p=(double *) malloc(3*sizeof(double));

2楼:百度网友

我说老兄,你到底学过编程没有?