| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1233 人关注过本帖
标题:[求助]这几个程序谁能讲解一下……?
只看楼主 加入收藏
轩辕龙虾
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-6-28
收藏
 问题点数:0 回复次数:17 
[求助]这几个程序谁能讲解一下……?
#include <iostream.h>
int i;
main()
{ i=5;
{ int i;
i=7;
::i=3; cout <<”i=”<<i<<endl;
}
cout <<”i=”<<i<<endl;
}
为什么答案是i=7
i=3

#include<iostream.h>
#include<string.h>
void main()
{ char *a[5]={ “sofa”,”chair”,”bed”,”table”,”desk”},*r;
r=a[0];
for(int i=1;i<5;i++)
if(strcmp(r,a[i])>0)r=a[i];
cout<<r<<endl;
}
答案是bed……怎么来的

#include <iostream.h>
void main( )
{char str[ ]=”1234567”;
int i;
for(i=0; i<7; i+=3)
cout<< str+i<<endl;
}
这段里的str+i……怎么说的啊?


还有……这段程序能不能详细讲一下,我一点也看不懂
#include <iostream.h>
class Point
{public:
Point(int x, int y){ _x=x;y=y;}
Point(char x, char y){ _x=x;y=y;}
void Display() {cout << ”(” << _x << ”, ” << _y << ”)” << endl;}
protected:
int _x, _y;
};
void main()
{
Point a(1, 2);
Point b(‘a’,’b’);

a.Display();
b.Display();
}



暂时就这些问题…………

[此贴子已经被作者于2007-6-29 21:02:41编辑过]

搜索更多相关主题的帖子: 讲解 
2007-06-29 21:00
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
第1题考察对变量生存周期的理解.
逐句分析:
#include <iostream.h>
int i; //全局, 整个程序期间生存, 标记为i1
main()
{ i=5; //修改i1=5
{ int i; //局部, 括号内生存, 标记为i2, i2 != i1
i=7; //修改i2=7
::i=3; //修改i1=3, 因为使用了:: 相当于使用了当前程序的命名空间
cout <<”i=”<<i<<endl; //局部, 打印i2, i2=7
}
cout <<”i=”<<i<<endl; //全局, 打印i1, i1=3
}

女侠,约吗?
2007-06-29 21:25
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
第2题考察对指针数组的理解
利用r指针指向目标字符串, 并分别与其他4个字符串比较, 令r指向字母顺序靠前的那个串(用strcmp)
这样, 最后得到的是按字母顺序排列最小的那个串, 即"bed" (b字母最靠前)

女侠,约吗?
2007-06-29 21:32
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
第3题考察数组名与指针的关系

数组名称是一个指向数组第1个元素的指针, 题中str[]是char型数组, str单独使用相当于char* str, 是个指针.
str + i 就是让str指针向后移动了i个元素,
所以第一次i==0, 没有移动, str指向"1", 所以输出"1234567"
第2次i==3, 移动了3个, str指向"4", 所以输出"4567"
第3次i==6, 移动6个, str指向"7", 所以输出"7"

女侠,约吗?
2007-06-29 21:41
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
第4题考察类的基本概念...

class Point句声明了类Point
public表示以下内容可以在其他函数中调用
与Point同名的Point()函数叫构造函数, 系统自动调用
下面还有一个Point(), 这叫重载(Overload), 根据函数参数的不同, 编译器自动选择相应的Point()调用.
Display()叫成员函数, 也叫方法
private表示以下内容只能在类里使用, 其他地方不能调用
int _x, _y叫成员变量, 也叫成员.
结束的时候用}; 不要漏了分号

main中利用Point类定义了2个Point对象(a和b), 带参数是使用了构造函数进行初始化(系统自动调用的,所以不用写成a.Point())
a.Display调用了在Point类中定义的Display方法.

大哥, 你一点也看不懂?.. 拜托你多看看书...

女侠,约吗?
2007-06-29 21:53
轩辕龙虾
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-6-28
收藏
得分:0 
…………那个程序确实一点也看不懂  总之谢谢你了的说   我先看看书
2007-06-29 21:57
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
多看书.. 多做练习.. 加油

女侠,约吗?
2007-06-29 22:02
cclearner
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-6-28
收藏
得分:0 
天哪,为什么
你们都知道得这么多。。。。
羡慕ing。。。。

好人哪,一群好人哪!!!!!!
2007-06-30 00:45
realnaoko
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-22
收藏
得分:0 
void Display() {cout << ”(” << _x << ”, ” << _y << ”)” << endl;}

这样是在声明函数的同时定义函数吗?

我看书上一般是先声名再定义的.
void Display();

void Display()
{
cout << ”(” << _x << ”, ” << _y << ”)” << endl;
}

2007-06-30 02:42
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

To cclearner
这些是比较基础的原理, 慢慢来, 你也能精通

To realnaoko
没错, 你的理解是正确的.


女侠,约吗?
2007-06-30 09:33
快速回复:[求助]这几个程序谁能讲解一下……?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025335 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved