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

1.若有定义inta=3;求表达式a&0377的值是__2.已有定义:inta=3,b=10,c=15;求表达式a|b&c的值是__3.设有定义:floata=2,b=4... 1.若有定义int a=3;求表达式a&0377的值是__
2.已有定义:int a=3,b=10,c=15;求表达式 a|b&c的值是__
3.设有定义:float a=2,b=4,h=3;以下C语言表达式与代数式计算结果不相符的是
A)(a+B)*h/2 B)(1/2)*(a+B)*h
C) (a+B)*h*1/2 D)h/2*(a+B)
4.以下程序运行后的输出结果是____
main()
{int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
}
5.有以下程序
void f(int y,in*x)
{y=y+*x;*x=*x+y;}
main()
{int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出的结果是___
6.以下程序中给指针p分配三个double型动态内存单元,请填空。
#include <stdio.h>
main()
{double *p;p=(double ____________*)
malloc(____________);
p[0]=1.5;p[1]=2.5;p[2]=3.5,
printf("%f%f%f\n",p[0],p[1],p[2]);
}
7.下列程序的运行结果是:___
#include <string.h>
char *ss(char *s)
{return s+strlen(s)/2;}
main()
{char *p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
}
8.下面程序的运行结果是:___
int f(in a[],int n)
{if(n>1)return a[0]+f(&a[1],n-1);
else return a[0];}
main()
{int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
9.请以下程序的两个空填写适当内容,使程序能正确运行。
______________(double,double);
main()
{double x,y;
scanf("%lf%lf",&x,___);
printf("%lf\n",max(x.y));
}
double max(double a,double b)
{ return(a>b?a:b);}
10.用十进制表示表达式"12|012"的值是____
俺请大家在做每一道题时把你们的思路写出来!
统统回答正确的,解释详细的,将追加积分!
这些题的答案是
第一题题目有错,应该是int a=1234,求a&0377
1.210 2.11 3.C 4.20 0 5.8 4 6.3*sizeof(double) 7.efgh 8.6 9.double max &y 10.14
另外,第六题,第一题,第三题.
希望大家重点的研究以上三题,把它们的思路说一下,谢谢了!
展开
 我来答
linmate
推荐于2016-10-04 · TA获得超过431个赞
知道小有建树答主
回答量:466
采纳率:0%
帮助的人:348万
展开全部
第一题: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() {int x=10,y=20,t=0;
if(x==y)t=x; //这里没有加{},固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));
百度网友dc3e6b3d1ed
2006-07-23
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
我说老兄,你到底学过编程没有?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
srhouyu
2006-07-23 · TA获得超过2407个赞
知道大有可为答主
回答量:1198
采纳率:37%
帮助的人:929万
展开全部
这些还有什么可侃的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式