新年快乐!!哪位高手进来帮帮忙吧
今年刚学的C语言 闻csdn上高手如云 特上来请教几个小问题 还望大家帮忙 多谢!!
请勿必用C语言写啊!!
问题1:#include<stdio.h>
main()
{
int a=24,b=12;
int c;
c=a&&b;
printf("%d\t",c);
c=a||b;
printf("%d\t",c);
}
上面是位与 ,位或 算法 , 与或怎么用呢? 而且要打印成 二进制 ,八进制,十六进制 的怎么写呢?
问题2:#include<stdio.h>
main()
{
int x[2][3]={3,8,6,2,4,9};
int **p,s;
p=x;
s=**p+*(*p+1)+*(*p+2);
printf("The first three numbers' addation is:%d\n",s);
s=**(p+1)+*(*(p+1)+1)+*(*(p+1)+2);
printf("The last three numbers' addation is:%d\n",s);
s=*(*p+2)+**(p+1);
printf("The two middle numbers' addation is:%d\n",s);
}. 请大家帮帮改改这个程序吧 要求用指针算出这个二位数组前三个数 ,后三个数,中间两个数的和。
问题3:#include<stdio.h>
main()
{
int a,b;
a=10,b=20;
printf("%d,%d",a,b);
swap(&a,&b);
printf("%d,%d",a,b);
}
swap(px,py)
int *px,*py;
{
int temp;
temp=*px;
*px=*py;
*py=temp;
}
子函数改成 temp=px;px=py;py=temp为什么不行呢?
问题4:#include<stdio.h>
main()
{
int a,b;
int *pa,*pb;
a=7,b=5;
pa=&a,pb=&b;
printf("%d",pb-pa);
}请问此题中 ,pb-pa是什么意思呢?
问题点数:100、回复次数:8Top
1 楼efanl(传说中的一凡……)回复于 2003-02-02 14:23:03 得分 10
1.你指的是异或(XOR)吧?异或即“相同为0,不同为1”,
1^1 =0, 0^0 =0, 1^0 =1, 0^1 =1
至于打印n进制数,只要循环取模再整除就行了,比如说:
char *bitch = "0123456789ABCDEF";
//m是原数,打印成n进制数
//...
for (i =0; m !=0; m /= n)
{
a[i++] = m % n;
}
//最后反向输出bitch [a [i] ]就行了。
以上程序段适合2-16进制Top
2 楼efanl(传说中的一凡……)回复于 2003-02-02 14:27:34 得分 10
2.改成这样,我在VC6下调试通过:
#include "stdafx.h"
main()
{
int x[2][3]={3,8,6,2,4,9};
int s;
int (*p)[3];
/*~~~~~~~~~~~~第一处*/
p=x;
s=**p+*(*p+1)+*(*p+2);
printf("The first three numbers' addation is:%d\n",s);
s=**(p+1)+*(*(p+1)+1)+*(*(p+1)+2);
printf("The last three numbers' addation is:%d\n",s);
s=*(*p+1)+*(*(p+1)+1);
/*~~~~~~~~~~~~~~~~~~~~第二处*/
printf("The two middle numbers' addation is:%d\n",s);
}Top
3 楼efanl(传说中的一凡……)回复于 2003-02-02 14:29:39 得分 10
3.你要交换的是“指针指向的值”,而
temp=px;px=py;py=temp显然交换的是指针指向的地址。Top
4 楼hddhddhdd(还刀的)回复于 2003-02-02 14:41:32 得分 0
我来接分,多少给点Top
5 楼efanl(传说中的一凡……)回复于 2003-02-02 14:49:06 得分 10
4.是变量b和a的地址差,按sizeof (int)算,在VC6下是-1。
to hddhddhdd(还刀的):
我正想贴第四题,系统提示我说连续回复不能超过三篇,呵呵,你真及时呀。Top
6 楼cupidvenus(小鱼儿)回复于 2003-02-02 14:53:57 得分 50
问题1:
位与应是&
位或应是|
“与或”疑为“异或”,异或是^
打印成二进制得自己写程序完成,八进制用%o,十六进制用%x
问题2:
#include<stdio.h>
main()
{
int x[2][3]={3,8,6,2,4,9};
int (*p)[3],s;
p=x;
s=**p+*(*p+1)+*(*p+2);
printf("The first three numbers' addation is:%d\n",s);
s=**(p+1)+*(*(p+1)+1)+*(*(p+1)+2);
printf("The last three numbers' addation is:%d\n",s);
s=*(*p+2)+**(p+1);
printf("The two middle numbers' addation is:%d\n",s);
}
问题3:
temp=px;px=py;py=temp交换的是指针指向的地址,而不是指针指向的地址所保存的数值
问题4:
pb-pa是两指针地址之差Top
7 楼efanl(传说中的一凡……)回复于 2003-02-02 15:01:39 得分 10
to 小鱼儿:
第四题3,8,6,
2,4,9
我还以为中间两数是指8和4呢,呵呵呵Top
8 楼Daybreakspider(明)回复于 2003-02-02 15:54:42 得分 0
多谢efanl 和 小鱼儿 的帮忙 !!Top




