1.ASCII码转换
转换以下ASCII码为对应字符并输出它们:73,32,99,97,110,32,100,111,32,105,116,33
#include <stdio.h>
int main()
{
char arr[] = { 73,32,99,97,110,32,100,111,32,105,116,33 };
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
printf("%c ", arr[i]);
}
return 0;
}
//I can do it !
2.小乐乐排电梯
小乐乐学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯,电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟),请帮助小乐乐计算还需多长时间可以到达楼上(假设最初电梯在1层)
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d\n", (n / 12) * 4 + 2);
return 0;
}
3.大小写转换
实现字母的大小写转换,多组输入输出
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (ch >= 'A' && ch <= 'Z')
{
ch += 32;
}
printf("%c\n", ch);
getchar();//去除\n
}
return 0;
}
4.乘法口诀表
实现一个函数,打印乘法口诀表,口诀表的行和列数自己指定
//1*1=1
//2*1=2 2*2=4
//3*1=3 3*2=6 3*3=9
#include <stdio.h>
void print_table(int n)
{
int i = 1;
for (i = 1; i <= n; i++)
{
//打印一行
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d ", i,j,i * j);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
print_table(n);
return 0;
}
5.字符串逆序(递归实现)
编写一个函数reverse_string(char * string),将参数字符串中的字符反向排列,不是逆序打印。
- 非递归实现方法
#include <stdio.h>
#include <string.h>
void reverse_string(char *str)
{
//指针形式
int len = strlen(str);
char* left = str;
char* right = str + len - 1;
while (left<right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[] = "abcdef";//fedcba
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
#include <stdio.h>
#include <string.h>
void reverse_string(char arr[])
{
//数组形式
int len = strlen(arr);
int left = 0;
int right = len - 1;
while (left < right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
int main()
{
char arr[] = "abcdef";//fedcba
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
- 递归实现方法
#include <stdio.h>
#include <string.h>
void reverse_string(char* str)
{
int len = strlen(str);
char tmp = *str;
*str = *(str + len - 1);
*(str + len - 1) = '\0';
if(strlen(str+1)>=2)
reverse_string(str + 1);
*(str + len - 1) = tmp;
}
int main()
{
char arr[] = "abcdef";//fedcba
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
6.计算每一个数的每位之和(递归实现)
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
#include <stdio.h>
int DigitSum(unsigned int n)
{
if (n > 9)
{
return DigitSum(n / 10) + n % 10;
}
else
{
return n;
}
}
int main()
{
unsigned int num = 0;
scanf("%d", &num);
int ret = DigitSum(num);
printf("%d\n", ret);
return 0;
}
7.递归实现n的k次方
编写一个函数实现n的k次方,使用递归实现
#include <stdio.h>
double Power(int n, int k)
{
if (k > 0)
return n * Power(n, k - 1);
else if (k == 0)
return 1;
else
return 1.0 / Power(n, -k);
}
int main()
{
int n = 0;
int k = 0;
scanf("%d %d",&n,&k);
double ret = Power(n, k);
printf("%lf\n", ret);
return 0;
}
8.数组操作
创建一个整型数组,完成对数组的操作
#include <stdio.h>
void init(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = 0;
}
}
void print(int arr[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void reverse(int arr[], int sz)
{
int left = 0;
int right = sz - 1;
while (left < right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr, sz);
reverse(arr, sz);
print(arr, sz);
//print(arr, sz);
初始化
//init(arr,sz);
//print(arr, sz);
return 0;
}
9.交换数组
将数组A中的内容和数组B中的内容进行交换(数组一样大)
#include <stdio.h>
int main()
{
int arr1[] = { 1,3,5,7,9 };
int arr2[] = { 2,4,6,8,0 };
int sz = sizeof(arr1) / sizeof(arr1[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
int tmp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = tmp;
}
return 0;
}