C++程序理解题求助!

时间:2022-08-02 10:35:41
刚刚接触c++不到一个月,一直报着教课书在看
找了点题目来做就傻了
以下题目还求各位帮忙
目的:理解程序的流程;得出执行的结果
*******************************************
1.#include <iostream.h>
void main(void)
{int x=6;
     do{
       cout<<(x -=2)<<'\t';
}while(!(--x));}
*******************************************
2.#include <iostream.h>
void  main(void)
{ char *s="2473";
     char c;
     while (c=*s++)
     switch (c-'2'){
       case 0:
       case 1:  cout<<(char) (c+4);
       case 2:  cout<<(char) (c+4)<<’\n’; break; 
       case 3:  cout<<(char) (c+3);
       default:  cout<<(char) (c+2) <<’\n’; break;}
     cout<<endl;}
*******************************************
3.#include <iostream.h>
void  sub(int x, int y, int *z)
{ *z=y-x;}
void main(void )
{ int a, b, c;
     sub(10,5,&a);
     sub(7,a,&b);
     sub(a,b, &c);
     cout<< a<<','<<b<<','<<c<<'\n';}
*******************************************
4.#include<iostream.h>
class Myclass{
public:
  Myclass (int a){x=a; cout<<”This is”<<x<<”constructor.”<<endl;}
  ~Myclass( ){ cout<<”This is”<<x<<”destructor.”<<endl;}
private:
  int x;};
void main(void)
{Myclass c(1); }
*******************************************
5.#include <iostream.h>
  int  f(int x)
{ static int u=1;
      x+=x;  return u*=x;
    }
    void main( void )
{ int x=10;
     cout<<f(x)<< ‘\t’;
     cout<<f(x)<<endl;}
*******************************************
6.#include<iostream.h>
int f(int x)
{ static int u=1; 
 x+=x;
 return u*=x;}
void main(void)
{ int x=10;
 cout<<f(x)<<’\t’;
 cout<<f(x)<<endl;}
*******************************************
7.#include<iostream.h>
void main(void)
{ char *p=”abcdefgh”,*r;
 int *q;
 q=(int*)p; q++;
 r=(char*)q; 
cout<<r<<endl;}
*******************************************
8.#include<iostream.h>
int fun(int a,int b)
{int i;
 for(i=(a>b?a:b);i<=a*b;i++)
   if (i%a==0&&i%b==0) return i;}
void main(void)
{ cout<<fun (2,5)<<endl;}
*******************************************
9.#include<iostream.h>
void main(void)
{
      int sum,k;
      for(sum=0,k=1;k<1000;k++) 
{if(k%9==0)break;
sum+=k;}
       cout<<sum<<endl;}
*******************************************
10.#include<iostream.h>
int x=100;
void main(void)
{  int x=10,k=20;
   { int x=20;   k=::x;
     cout<<x<<’\t’<<k<<endl;}
 cout<<x<<’\t’<<k<<endl;}
*******************************************
在此向各位请教,求诸位能赐教
最好能把程序解释一下,有助在下理解
谢了!

5 个解决方案

#1


用VC跟踪调试一下不就清楚了。

#2


4.#include<iostream.h>
class Myclass{
public:
  Myclass (int a){x=a; cout<<”This is”<<x<<”constructor.”<<endl;}
  ~Myclass( ){ cout<<”This is”<<x<<”destructor.”<<endl;}
private:
  int x;};
void main(void)
{Myclass c(1); }

Myclass is a class name ,c is a object,c(1)--->initializtion

6.#include<iostream.h>
int f(int x)
{ static int u=1; 
 x+=x;
 return u*=x;}
void main(void)
{ int x=10;
 cout<<f(x)<<’\t’;
 cout<<f(x)<<endl;}
static int u-->静态变量
x+=x ---> x = x+x
u*=x----> u= u*x


大哥,还是自己看吧。我写得也没有耐心了。
这些都是最基础的。....死也要自己理解。

#3


多谢jsjjms!

#4


建议先看语法,一定要弄懂再看代码,这些都非常简单,基本上没有涉及到什么算法,大部分都是多了些循环判断的。最后那个10里的k=::x;取的是全局变量x。

#5


去下载个编译器设个断点就能看明白啦~~~

#1


用VC跟踪调试一下不就清楚了。

#2


4.#include<iostream.h>
class Myclass{
public:
  Myclass (int a){x=a; cout<<”This is”<<x<<”constructor.”<<endl;}
  ~Myclass( ){ cout<<”This is”<<x<<”destructor.”<<endl;}
private:
  int x;};
void main(void)
{Myclass c(1); }

Myclass is a class name ,c is a object,c(1)--->initializtion

6.#include<iostream.h>
int f(int x)
{ static int u=1; 
 x+=x;
 return u*=x;}
void main(void)
{ int x=10;
 cout<<f(x)<<’\t’;
 cout<<f(x)<<endl;}
static int u-->静态变量
x+=x ---> x = x+x
u*=x----> u= u*x


大哥,还是自己看吧。我写得也没有耐心了。
这些都是最基础的。....死也要自己理解。

#3


多谢jsjjms!

#4


建议先看语法,一定要弄懂再看代码,这些都非常简单,基本上没有涉及到什么算法,大部分都是多了些循环判断的。最后那个10里的k=::x;取的是全局变量x。

#5


去下载个编译器设个断点就能看明白啦~~~