|
Программирование >> Структурное программирование
e) Прототип функции cube. f) Идентификатор у в прототипе функции cube. tinclude <iostream.h> int cube(int y); main () { int x; for (x = 1; X <= 10; x++) cout << cube(x) << endl; int cube(int y); { return у * у * y; 3.3. Напишите программу, которая проверяет, пол5ают ли на самом деле показанные на рис. 3.2 примеры вызовов математических библиотечных функций указанные результаты. 3.4. Напишите заголовки для каждой из следующих функций: a) Функция hipotenuse, которая принимает два аргумента с плавающей запятой с удвоенной точностью sidel и side2 и возвращает результат с плавающей запятой с удвоенной точностью. b) Функция smallest, которая принимает три целых значения х, у и Z и возвращает целое значение. c) Функция instructions, которая не получает ни одного аргумента и не возвращает значение. (Заметим, что такие функции обычно используются для выдачи на экран указаний пользователю). d) Функция intToFloat, которая принимает целый аргумент number и возвращает результат с плавающей запятой. 3.5. Напишите прототип для каждой из следующих функций: a) Функции, описанной в упражнении 3.4а. b) Функции, описанной в упражнении 3.4Ь. c) Функции, описанной в упражнении 3.4с. d) Функции, описанной в упражнении 3.4d. 3.6. Напишите объявление для следющих переменных: a) Целая count, которая должна содержаться в регистре. Начальное значение count равно 0. b) Переменная с плавающей запятой lastVal, сохраняющая свое значение между вызовами функции, в которой она определена. c) Внешняя целая number, чья область действия должна быть ограничена оставшейся частью файла, в котором она определена. 3.7. Найдите ошибку в каждом из следующих фрагментов программ и объясните, как можно исправить ошибку (смотри также упражнение 3.53): Глава 3 a) int g(void) { cout Внутри функции g endl; int h(void) { cout << Внутри функции h << endl; } b) int sum(int x, int y) { int result; result = X + y; c) int sum(int n) { if (n == 0) return 0; else n + sum(n - 1); d) void f (float a ) ; { float a; cout << a endl; e) void product (void) { int a, b, c, result; cout << Введите три целых числа: cin >> а b с ; result = а * b* с; cout << Результат равен << result; return result; 3.8. В каком случае прототип функции должен содержать объявление типа параметра float&? 3.9. Верно или нет, что все вызовы в С++ выполняются вызовом по значению. 3.10. Напишите законченную программу на С++, использующую встраиваемую функцию sphere Volume, которая предлагает пользователю ввести радиус сферы, вычисляет и печатает объем этой сферы, используя присваивание volume = (4/3 * 3.14159 * pow(radius, 3). Ответы на упражнения для самопроверки 3.1. а) функции, классы. Ь) вызова функции, с) локальная переменная, d) return, е) void, f) область действия, g) return; , return выражение; , закрывающая правая фигурная скобка функции, h) прототип функции, i) rand, j) srand. к) auto, register, extern, static. 1) automatic, m) register, n) глобальной, о) static, p) область действия функция, область действия файл, область действия блок, область действия прототип функции, q) рекурсивной, г) базовой, s) перегруженной, t) Унарная операция разрешения области действия (::). и) const, v) Шаблоны. 3.2. а) Область действия блок. Ь) Область действия блок, с) Область действия файл, d) Область действия файл, е) Область действия файл, f) Область действия прототип функции. 3.3. /* Проверка математических библиотечных функций */ #include <iostream.h> #include <iomanip.h> #include <math.h> main() { cout <<setiosflags (ios:: fixed ios:: showpoint) << setprecision(1) sqrt( 900.0 ) = sqrt(900.0) << endl sqrt( 9.0 ) = sqrt(9.0) << endl exp( 1.0 ) = << setprecision(6) exp(l.O) endl exp( << setprecision(1) 2.0 << ) = setprecision(6) exp(2.0) endl log( 2.718282 ) = setprecision(1) log(2.718282) endl log( setprecision(6) 7.389056 ) = setprecision(1) log(7.389056) endl; cout loglOC 1.0 ) = cout cout << << << << << << loglO ( loglO ( fabs( fabs( fabs ( ceil ( ceil ( floor( floor( pow endl 10.0 ) = 100.0 ) 13.5 ) = 0.0 ) = -13.5 ) = 9.2 ) = -9.8 ) = 9.2 << ) = -9.8 ) = loglO (1.0) endl loglO(lO.O) endl loglO (100.0) endl fabs(13.5) endl fabs(0.0) endl fabs(-13.5) endl; ceil(9.2) << endl ceil(-9.8) << endl floor(9.2) endl floor(-9.8) endl; [ 2.0 pow( 7.0 ) = << pow(2.0, 7.0) 9.0 0.5 II J II << pow(9.0, 0.5) endl << setprecision (3) fmod( 13.675 , 2.333 ) = fmod(13.675, 2.333) << endl setprecision(1) sin( 0.0 << )= sin(0.O)<< endl cos( 0.0 ) = <<cos(0.0) << endl << tan( 0.0 ) = tan(0.0) << endl; return 0; sqrt(900.0) =30.0 aqrt(9.0) =3.0 exp(1.0) =2.718282 exp(2.0) = 7.389056 log(2.718282) = 1.0 log(7.389056) =2.0 loglO(l.O) =0.0 loglO(10.0)= 1.0 loglO(1.000)=10.0 fabs(0.0)= 0.0 fabs(-13.5)= 13.5 ceil(9.2) =10.0 ceil(-9.8) = -9.0 floor(9.2) =9.0 floor(-9.8) = -10.0 pow(2, 7) = 128.0
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |