1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void print_kjb(int line)
{
int i = 0;
for (i = 1; i <=line; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%2d ", i, j, i*j);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
print_kjb(n);
system("pause");
return 0;
}
2.使用函数实现两个数的交换。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void swap(int *pa, int *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
int main()
{
int a = 0, b = 0;
scanf("%d%d", &a, &b);
swap(&a, &b);
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
3.实现一个函数判断year是不是润年。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int is_leap(int year)
{
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100) != 0))
{
return 1;
}
return 0;
}
int main()
{
int year = 0;
scanf("%d", &year);
int ret = is_leap(year);
if (ret == 1)
{
printf("%d 是闰年\n", year);
}
else
{
printf("%d 不是闰年");
}
system("pause");
return 0;
}
4.创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void init(int arr[],int size)
{
int i = 0;
for (i = 0; i < size; i++)
{
arr[i] = i;
}
}
void reverse(int arr[], int size)
{
int left = 0;
int right = size - 1;
while (left < right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
void print(int arr[], int size)
{
int i = 0;
for (i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void empty(int arr[], int size)
{
int i = 0;
for (i = 0; i < size; i++)
{
arr[i] = 0;
}
}
int main()
{
int arr[10];
int size = sizeof(arr) / sizeof(arr[0]);
init(arr, size);
print(arr, size);
reverse(arr, size);
print(arr,size);
empty(arr, size);
print(arr, size);
system("pause");
return 0;
}
5.给定两个整形变量的值,将两个值的内容进行交换。
#include <stdio.h>
void swap(int *pa,int *pb)
{
int tmp=*pa;
*pa=*pb;
*pb=tmp;
}
int main()
{
int a=0;
int b=0;
int tmp=0;
scanf("%d",&a);
scanf("%d",&b);
// tmp=a;
// a=b;
// b=tmp;
swap(&a,&b);
printf("a=%d\nb=%d\n",a,b);
return 0;
}
6. 不允许创建临时变量,交换两个数的内容(附加题)
#include<stdio.h>
int main()
{
int a=3;//0011
int b=5;//0101
a=a^b;//0110
b=a^b;//0011
a=a^b;//0101
printf("a=%d\nb=%d\n",a,b);
return 0;
}
7.求10 个整数中最大值。
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int max=0;
int i=0;
max=arr[0];
for(i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
if(arr[i]>max)
{
max=arr[i];
}
}
printf("max=%d\n",max);
return 0;
}
4. 写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1
程序原型:
int count_one_bits(unsigned int value)
{
// 返回 1的位数
}
#include <stdio.h>
//int count_one_bits( int value)//返回1的个数
//{
// int count=0;
// int i=32;
// while(i)
// {
// if(value & 1==1)
// {
// count++;
// }
// value=value>>2;
// i--;
// }
// return count;
//}
int count_one_bits( int num)//返回1的个数
{
int count=0;
while(num)
{
count++;
num=num & (num-1);
}
return count;
}
int main()
{
unsigned int num=0;
int ret=0;
scanf("%d",&num);
ret=count_one_bits(num);
printf("count=%d\n",ret);
return 0;
}
本文出自 “顺势而为” 博客,请务必保留此出处http://lk123456.blog.51cto.com/10831443/1775969