尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

C++从基础语法到递归、重载与宏定义

C++从基础语法到递归、重载与宏定义 题目及题解1 判定素数编写程序用一个函数判定输入的某个数是否为素数。12345678910111213141516171819#include iostream#include cmath// 判定素数函数boolisPrime(intn) {if(n 2)returnfalse;for(inti 2; i sqrt(n); i) {if(n % i 0)returnfalse;}returntrue;}intmain(){intnum;std::cout 输入一个整数: ;std::cin num;if(isPrime(num)) std::cout num 是素数 std::endl;elsestd::cout num 不是素数 std::endl;return0;}2 统计奇偶数从键盘依次输入一列整数输入0结束编写函数统计输入的整数序列中的奇数个数和偶数个数在主函数中调用该函数并求输入的整数序列中的奇数个数和偶数个数。1234567891011121314151617#include iostream// 统计函数通过引用返回结果voidcountNumber(intodd,inteven) {intval;while(std::cin val val ! 0) {if(val % 2 0) even;elseodd;}}intmain(){intoddCount 0, evenCount 0;std::cout 请输入一列整数0结束: std::endl;countNumber(oddCount, evenCount);std::cout 奇数: oddCount 个偶数: evenCount 个 std::endl;return0;}3 带默认参数的阶乘定义一个带默认参数值的函数求 n ! n! n!在主函数中调用两次该函数一次给出实参另一次不给实参体会默认值的意义。1234567891011121314#include iostreamlonglongfactorial(intn 5) {longlongres 1;for(inti 1; i n; i) res * i;returnres;}intmain(){// 给出实参std::cout 3! factorial(3) std::endl;// 不给实参使用默认值 5std::cout 默认(5!) factorial() std::endl;return0;}4 求a ! b ! c ! a! b! c!a!b!c!求 a ! b ! c ! a!b!c! a!b!c! 的值要求用两个函数实现函数 fac 求 n ! n! n!函数 add 求三者之和。 a a a、 b b b、 c c c 的值由主函数输入最终得到的值在主函数中输出。1234567891011121314151617#include iostreamlonglongfac(intn) {longlongres 1;for(inti 1; i n; i) res * i;returnres;}longlongadd(longlongx,longlongy,longlongz) {returnx y z;}intmain(){inta, b, c;std::cout 输入 a, b, c: ;std::cin a b c;std::cout 结果: add(fac(a), fac(b), fac(c)) std::endl;return0;}5 判定闰年编写一个程序判定用户输入的年份是否为闰年。闰年的判定用名为 isLeapYear 的 bool 型函数实现。12345678910111213#include iostreamboolisLeapYear(intyear) {return(year % 4 0 year % 100 ! 0) || (year % 400 0);}intmain(){inty;std::cout 输入年份: ;std::cin y;if(isLeapYear(y)) std::cout 是闰年 std::endl;elsestd::cout 不是闰年 std::endl;return0;}6 递归求斐波那契数列12345678910111213#include iostreamintfib(intn) {if(n 1 || n 2)return1;returnfib(n - 1) fib(n - 2);}intmain(){intn;std::cout 输入 n: ;std::cin n;std::cout 第 n 个数是: fib(n) std::endl;return0;}7 验证哥德巴赫猜想写一个函数验证哥德巴赫猜想一个不小于6的偶数可以分解为两个素数之和。要求在主函数中输入一个偶数 n n n判定 n n n 与6的大小。如果 n n n 不小于6则调用函数 gotbaha在 gotbaha 函数中再调用判定素数的函数 prime并在主函数中输出“633”形式的结果。如果 n n n 小于6则程序结束。1234567891011121314151617181920212223242526#include iostream#include cmathboolprime(intn) {if(n 2)returnfalse;for(inti 2; i sqrt(n); i) {if(n % i 0)returnfalse;}returntrue;}voidgotbaha(intn) {for(inti 2; i n / 2; i) {if(prime(i) prime(n - i)) {std::cout n i (n - i) std::endl;return;}}}intmain(){intn;std::cout 输入一个偶数: ;std::cin n;if(n 6 n % 2 0) gotbaha(n);elsestd::cout 程序结束 std::endl;return0;}8 函数重载 add使用 add 作为重载函数名分别定义求3个整数之和的函数和求两个浮点数之和的函数并编程实现。123456789#include iostreamintadd(inta,intb,intc) {returna b c; }floatadd(floata,floatb) {returna b; }intmain(){std::cout 3个整数和: add(1, 2, 3) std::endl;std::cout 2个浮点数和: add(1.5f, 2.5f) std::endl;return0;}9 内联函数求和在主函数中输入两个数 m , n m, n m,n用内联函数求和并输出结果。123456789#include iostreaminlineintgetSum(intm,intn) {returnm n; }intmain(){intm, n;std::cin m n;std::cout 和为: getSum(m, n) std::endl;return0;}10 头文件实现最大值编写一个程序将求两个实数中较大值的函数放在一个头文件中在源程序文件中包含该头文件并实现输入3个实数求出最大值。my_max.h1234#ifndef MY_MAX_H#define MY_MAX_HinlinedoublegetMax(doublea,doubleb) {return(a b) ? a : b; }#endifmain.cpp12345678910#include iostream#include my_max.hintmain(){doublea, b, c;std::cin a b c;doubleres getMax(getMax(a, b), c);std::cout 最大值: res std::endl;return0;}11 带参数的宏求乘积编写一个程序输入两个整数求它们的乘积。用带参数的宏实现。123456789#include iostream#define MUL(a, b) ((a) * (b))intmain(){intx, y;std::cin x y;std::cout 乘积: MUL(x, y) std::endl;return0;}12 递归逆序输出编写一个递归函数将整数的每个位上的数字按相反的顺序输出。例如输入5678输出8765。12345678910111213141516#include iostreamvoidreverse(intn) {if(n 0)return;std::cout n % 10;reverse(n / 10);}intmain(){intn;std::cout 输入整数: ;std::cin n;if(n 0) std::cout 0;elsereverse(n);std::cout std::endl;return0;}结尾到此这篇关于C从基础语法到递归、重载与宏定义的文章就介绍到这了
返回列表