有关C++的问题,请各位帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/20 14:39:58
1. #include<iostream.h>
void main()
{
int a,*pa;
double d, *pd;
cout<<sizeof(pa)<<','<<sizeof(pd);
}
答案为什么是4和4呢?
2.#include<iostream.h>
void main()
{int i,*pi=&i;
Char c,*pc=&c;
*pi=Oxffffff;
pc=(char*)pi;
*pc=’\0’;
cout<<sizeof(int)<<endl;
cout<<hex<<i;
}答案是ffff00,为什么?
3.有函数定义如下:f(int a){…..}
并有定义float b=55.78;char a;则以下不合法的函数调用语句是(B)
A.f((1,7)) B.f(a) C.f(1,7) D.f(b)
注:我认为C也是错的
4. #include<iostream.h>
void swap(char *s1,char *s2)
{
char*t;
*t=*s1;
*s1=*s2;
*s2=*t;
}
void main()
{ char a='a',*s1=&a,b='b',*s2=&b;
swap(s1,s2);

*s1=t<<*s1<<','<<*s2;
}
帮我改一下吧!
5. #include<iostream.h>
void func(char**m)
{
++m;cout<<*m<<endl;}
void main

楼上已经回答了,我来补充一下最后一题。答案是7,而不是7.0,不要受定势思维的影响,浮点数小数位没有值的情况下,你也没有特殊说明要保留有效位数,小数部分不会显示。

1 任何int型和指针型变量在32位机器上大小都为4
2 一个char的大小是一个字节,而按照题目的答案,是低位存放在低地址的小数端(实际上答案是不严谨的,有的机器是低位存放高地址,成为大数端)所以,我觉得应该有两个答案0xffffff00 或者0x00ffffff
3 C不合法,C没有相应的重载函数,B可以隐式转换
4 不明白目的是什么
5 afternoon
6 A指针越界 B表示a数组第一个元素内容加上3以后为地址值的内存中内容,无意义C同理 D正确
7 这是函数指针声明,和函数原型没啥关系,只是说函数指针的类型为指向原型float(int,int)型 的函数,真正函数声明在别处
8 a,b分别表示输入正数和负数的个数
9 确实是7.0