有兴趣的朋友可以看着题目自己做做,最后在和答案对比!相信能力会有所提升的。我现在只是刚刚开始学习c语言,如果有什么说的不对的地方,网路过的大佬,及时予以指正。多谢!
1、函数判断闰年
实现函数判断year是不是闰年。
函数判断闰年
实现函数判断year是不是闰年。
#include"stdio.h"
int panduan(int x) {
if (x % 4 == 0 && x % 100 != 0 || x % 400 == 0) {
return 1;
}
else
return 0;
}
int main() {
int year = 2000;
if (panduan(year)) {
printf("%d年是闰年", year);
}
return 0;
}
2、交换两个整数
实现一个函数来交换两个整数的内容。
/*
交换两个整数
实现一个函数来交换两个整数的内容。
*/
#include"stdio.h"
void jiaohuan(int *x, int *y) {
int z = 0;
z = *x;
*x = *y;
*y = z;
}
int main() {
int a = 9, b = 5;
printf("交换前 a=%d b=%dn", a, b);
jiaohuan(&a, &b);
printf("交换后 a=%d b=%dn", a, b);
return 0;
}
3、乘法口诀表
实现一个函数,打印乘法口诀表,口诀表的函数和列数自己制定
如:输入9,输出9*9口诀表,输入12,输出12*12乘法口诀表
/*
乘法口诀表
实现一个函数,打印乘法口诀表,口诀表的函数和列数自己制定
如:输入9,输出9*9口诀表,输入12,输出12*12乘法口诀表
*/
#include"stdio.h"
void print(int); // 声明函数
int main() {
int input = 0;
printf("请输入你要打印的乘法口诀表的行数?n");
scanf("%d", &input);
print(input);
return 0;
}
void print(int x) { // 此函数在主函数的调用之后,所以在前面要有声明。
int i = 0, j = 0;
for (i = 1; i
4、调用fun(2)返回值是多少?
int fun(int n) {
if (n == 5) {
return 2;
}
else
return 2 * fun(n + 1);
}
int fun(int n) {
if (n == 5) {
return 2;
}
else
return 2 * fun(n + 1);
}
5、打印一个数的每一位
递归的方式实现?
/*
打印一个数的每一位
递归的方式实现?
*/
#include"stdio.h"
void print(int a) {
if (a > 9) {
print(a / 10);
}
printf("%d ", a%10);
}
int main() {
int a = 122456;
print(a);
return 0;
}
6、求阶乘
递归和非递归分别实现求n的阶乘
/*
求阶乘
递归和非递归分别实现求n的阶乘
*/
#include"stdio.h"
int jiecheng(int n) {
int a = 1;
int i = 1;
for (i = 1; i
下面是递归的方式实现阶乘:
#include"stdio.h"
int jiecheng(int n) {
if (n
7、字符串逆序(递归实现)
编写一个函数reverse_string(char * string)(递归实现)
实现:
将参数字符串中的字符反向排列,不是逆序打印。
要求:
不能使用c函数库中的字符串操作函数。
比如:
char arr[]=”abcdef”;
逆序之后的数组内容变成fedcba。
#include"stdio.h"
// 下面是循环的方式实现功能
int my_strled(char* str) { // 计算传入的字符串中的字符个数
int count = 0;
while (*str != '') {
count++;
str++;
}
return count;
}
//void reverse_string(char *pa){
// int left = 0;
// int right = my_strled(pa) - 1; // 字符个数减1也就是最右边的下标
// while(left
下面是递归的方式实现:
#include"stdio.h"
int my_strlen(char* arr) {
int count = 0;
while (*arr != '') {
count++;
arr++;
}
return count;
}
void diandao(char* arr) {
int tem = *arr; // 第一步
int len = my_strlen(arr);
*arr = *(arr + len - 1); // 第二步
*(arr + len - 1) = ''; // 第三步
if (my_strlen(arr+1) >= 2) {
diandao(arr + 1); // 第四步
}
*(arr + len - 1) = tem; // 第五步
}
int main() {
char arr[] = "abcdef";
diandao(arr);
printf("%sn", arr);
return 0;
}
8、计算一个数的每位之和(递归实现)
写一个递归函数DigitSum(n),输入一个非负整数,返回组成他的数字之和。
例如,调用Digit(1729),则应该返回1+7+2+9,他的和是19
输入:1729,输出:19
///*
//计算一个数的每位之和(递归实现)
//写一个递归函数DigitSum(n),输入一个非负整数,返回组成他的数字之和。
//例如,调用Digit(1729),则应该返回1+7+2+9,他的和是19
//输入:1729,输出:19
//*/
#include"stdio.h"
int DigitSum(int n) {
if (n > 9) {
return n%10 + DigitSum(n / 10);
}
else
return n;
}
int main() {
int n = 1729;
int ret = DigitSum(n);
printf("%d", ret);
return 0;
}
9、 递归实现n的k次方
题目内容:
编写一个函数实现n的k次方,使用递归实现
#include"stdio.h"
double Fang(int n, int k) {
if (k > 0) {
return n * Fang(n, k - 1);
}
else if (k == 0)
return 1;
else
return 1.0 / Fang(n, -k);
}
int main() {
int n = 0;
int k = 0;
scanf("%d%d", &n,&k);
double ret = Fang(n, k);
printf("%lf", ret);
return 0;
}
以上就是今天早晨起来做的 9道题,主要是为了自己不忘记,或是忘记的时候看自己的代码熟悉的速度会更快,特此记录。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
听劝 不要什么盲目的学网络安全。 一,怎么入门? 1、Web 安全相关概念(2 周) 了解网络安全相关法律法规 熟悉基本概念(SQL 注入、上传、XSS、CSRF、一句话木马等)。 通过关键字(SQL 注入、上传、XSS、CSRF、一句话木马等)进行 Go…