با درود فراوان بر شما دوستان گرامی

پاسخ نمونه سوالات سری دوم را در ادامه مطلب بخوانید.

سوال 1) خروجی قطعه کد زیر را به صورت دستی محاسبه و روند اجرای آن را با رسم جدول خروجی نشان دهید.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

#include<iostream>

#include<conio.h>

 

using namespace std;

 

void function();

 

int main()

{

       register int i;

       for (i = 0; i < 5; i++)

       {

              function();

              _getch();

       }

       _getch();

}

 

void function()

{

       static int a = 1;

       int b = 0;

       static int c = 1;

       b = b + 1;

       a = a + 1;

       c = b*a;

       cout << b << a << c;

       cout << endl;

}

122

133

144

155

166

 



مثل سوال یکم سری یکم این سوال هم با هدف سنجش شما نسبت به درک تفاوت های کلاسهای حافظه طرح گردیده .و تنها با مطالعه مطالب مرتبط قادر به پاسخگویی خواهید بود.

و این هم جدول Trace برناممون:

i

a

b

c

0

1

2

0

1

1

2

1

 

3

0

1

 

3

2

 

4

0

1

 

4

3

 

5

0

1

 

5

4

 

6

0

1

 

6

5

 

 

 



سوال 2 ) برنامه ای بنویسید که دو عدد طبیعی را دریافت کند .سپس تابعی طراحی کنید که میانگین این دو عدد را محاسبه کرده و بازگرداند و سپس نمایش دهد.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#include<iostream>

#include<conio.h>

 

using namespace std;

 

float average(int a,int b);

 

int main()

{

       float x, y;

       cout << "Enter First Number : ";

       cin >> x;

       cout << "Enter Second Number : ";

       cin >> y;

       cout << "Average is : " << average(x, y);

       _getch();

}

 

float average(int a,int b)

{

       float x =(float)(a + b)/2;

       return x;

}

Enter First Number : 2

Enter Second Number : 5

Average is : 3.5


طریقه کارکردن این برنامه کاملا .واضح است و نیازی به توضیح ندارد.
تنها نکته ای که حائز اهمیت میباشد در خط 21 میباشد.آن هم آوردن کلمه float داخل پرانتز است.
(a + b)/2 یک مقدار صحیح و بدون اعشار است.و ما اگر مستقیما float x = (a + b)/2; را بنویسیم میبینیم که نتیجه یک عدد صحیح بدون اعشار است.آری آوردن یک نوع درداخل پرانتز قبل از عبارت خاصی ، آن را به نوع ذکر شده در داخل پرانتز تبدیل میکند.و ما از این تکنیک برای تبدیل نوع داده ای استفاده میکنیم.در اینجا ، این عبارت (float) نوع intکه نوع پیشفرض بود را به float تبدیل میکند و باعث میشود پاسخ ما دقیقتر محاسبه شود.

سوال 3 ) تابع بازگشتی power را بنویسید که دو عدد مثبت x و y  را به عنوان ورودی دریافت کند و مقدار x به توان y را برگرداند.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include<iostream>

#include<conio.h>

 

using namespace std;

 

double power(int,int);

 

int main()

{

       float x, y;

       cout << "Enter Base Number (x) : ";

       cin >> x;

       cout << "Enter Power Number (y) : ";

       cin >> y;

       cout << "Answer is : " << power(x, y);

       _getch();

}

 

double power(int x, int y)

{

       y--;

       if (y >= 0)

       {

              return (x*power(x, y));

       }

       else

              return(1);

}

Enter Base Number (x) : 2

Enter Power Number (y) : 3

Answer is : 8


سوال 4 *) برنامه ای بنویسید که آرایه []a با طول 5 را از کاربر بگیرد.از کاربر عدد دریافت کند تا تمام آرایه را مقدار دهی کند.سپس در تابعی با اعلام زیر ، بزرگترین عضو آرایه را بازگرداند.

int max(int a[], int n);


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#include<iostream>

#include<conio.h>

 

using namespace std;

 

int max(int a[], int n);

 

int main()

{

       const int size = 5;

       int arr[size];

       for (int i = 0; i < size; i++)

       {

              cout << "Enter "<< i + 1 <<"th Number : ";

              cin >> arr[i];

       }

 

       cout << "Max value is : " << max(arr, size);

       _getch();

}

 

int max(int a[], int n)

{

       int maxValue = a[0];

       int temp;

       for (int i = 1; i < n; i++)

       {

              if (a[i]>maxValue)

                     maxValue = a[i];

       }

       return maxValue;

}

Enter 1th Number : 10

Enter 2th Number : 6

Enter 3th Number : 21

Enter 4th Number : 25

Enter 5th Number : 18

Max value is : 25


پ.ن : در این سوال طول آرایه مان را 5 فرض کرده ایم.لطفا این تغییر را لحاظ فرمایید.

سوال + :برنامه ای بنویسید که خروجی زیر را چاپ کند :

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

#include<iostream>

#include<conio.h>

 

using namespace std;

 

int main()

{

       for (int i = 1; i < 8; i++)

       {

              for (int j = 1; j < i + 1; j++)

              {

                     cout << i*j << "  ";

              }

              cout << endl;

       }

       _getch();

}

 

 

 

 

 

 

1

 

 

 

 

 

4

2

 

 

 

 

9

6

3

 

 

 

16

12

8

4

 

 

25

20

15

10

5

 

36

30

24

18

12

6

49

42

35

28

21

14

7





امیدوارم مفید بوده باشه.در صورتی که سوالی داشتید تو بخش نظرات همین مطلب مطرح کنید.