1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9*9的乘法口诀表,输入12,输出12*12的乘法口诀表。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void multi_table(int n)
{
int i = 0;
int j = 0;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("%2d*%-2d=%-4d",i,j,i*j);
}
printf("\n");
}
}
int main()
{
int n = 0;
printf("请输入行数:");
scanf("%d", &n);
multi_table(n);
system("pause");
return 0;
}
2.使用函数实现两个数的互换。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void Swap(int *i,int *j)
{
int tmp = 0;
tmp = *i;
*i = *j;
*j = tmp;
}
int main()
{
int m = 0, n = 0;
int *p, *q;
p = &m;
q = &n;
scanf("%d%d", &m, &n);
printf("交换之前a,b的值:a=%d,b=%d\n", m, n);
Swap(p,q);
printf("交换之后a,b的值:a=%d,b=%d\n", m, n);
system("pause");
return 0;
}
3.实现一个函数判断year是不是闰年。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int is_leap(int year)
{
if ((year % 4 == 0) && (year % 10 == 0) || (year % 400 ==0))
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int i = 0;
scanf("%d", &i);
if ((is_leap(i)) == 1)
{
printf("%d是闰年\n",i);
}
else
{
printf("%d不是闰年\n", i);
}
system("pause");
return 0;
}
4.创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
void init(int a[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
a[i] = i;
printf("%d", a[i]);
}
}
void empty(int a[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
a[i] = 0;
printf("%d", a[i]);
}
}
void reverse(int a[], int sz)
{
int i = 0;
int left = 0;
int right = sz - 1;
for (i = 0; i < sz; i++)
{
while (left < right)
{
int tmp = a[left];
a[left] = a[right];
a[right] = tmp;
left++;
right--;
}
printf("%d", a[i]);
}
}
int main()
{
int a[5];
int sz = sizeof(a) / sizeof(a[0]);
printf("请对数组初始化:\n");
init(a, sz);
printf("\n");
printf("请对数组逆序:\n");
reverse(a, sz);
printf("\n");
printf("请清空数组:\n");
empty(a, sz);
printf("\n");
system("pause");
return 0;
}
5.写一个函数能够对整型数组进行二分查找。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int binary_search(int arr[], int key, int left, int right)
{
int mid = 0;
while (left <= right)
{
mid = left - (left - right) / 2;
if (arr[mid] > key)
{
right = mid - 1;
}
else if (arr[mid] < key)
{
left = mid + 1;
}
else
{
return mid;
}
}
if (left>right)
{
return -1;
}
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int key = 7;
int ret = binary_search(arr, key, 4, 9);
if (ret != -1)
{
printf("%d\n", ret);
}
else
{
printf("没找到\n");
}
system("pause");
return 0;
}