1
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
#include<stdio.h>
void print(int a)
{
int i = 0;
int j = 0;
for(i=1; i<=a; i++)
{
for(j=1; j<=i; j++)
{
printf("%2d*%2d=%-3d",i,j,i*j);
}
printf("\n");
}
}
int main()
{
int num1 = 0;
printf("请输入行数,列数:");
scanf("%d",&num1);
print( num1);
system("pause");
return 0;
}
2.使用函数实现两个数的交换。
void swap(int *pa,int *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
int main()
{
int num1 = 0;
int num2 = 0;
printf("请输入:");
scanf("%d %d",&num1,&num2);
swap( &num1,&num2);
printf("%d %d",num1,num2);
system("pause");
return 0;
}
3.实现一个函数判断year是不是润年。
#include<stdio.h>
#include<Windows.h>
int leap_year(int year)
{
if(((year%100!=0) && (year%4==0)) || year%400==0)
{
return 1;
}
else
return 0;
}
int main()
{
int ret = 0;
int year = 0;
scanf("%d",&year);
ret = leap_year(year);
if(ret==1)
{
printf("%d是闰年",year);
}
else
printf("%d不是闰年",year);
system("pause");
return 0;
}
4.创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
#include<stdio.h>
#include<string.h>
void init(int arr[10])
{
int i = 0;
for(i=0; i<sizeof(arr)/sizeof(arr[0]); i++)
{
arr[i] = i;
}
}
void empty(int arr[10],int SZ)
{
memset(arr, 0, SZ*sizeof(arr[0]));
}
void reverse(int arr[10],int SZ)
{
int i = 0;
int temp = 0;
for (i = 0; i < SZ / 2; i++)
{
temp = arr[i];
arr[i] = arr[SZ-1 - i];
arr[SZ-1 - i] = temp;
}
}
int main()
{
int arr[10] = {1,2,3,4,5};
int sz = sizeof(arr)/sizeof(arr[0]);
init(arr);
empty(arr,sz);
reverse(arr,sz);
return 0;
}
5.实现一个函数,判断一个数是不是素数。
#include<stdio.h>
#include<Windows.h>
#include<math.h>
int panduan(int num)
{
int i =0;
for(i=2; i<num/2; i++)
{
if(num%i==0)
return 0;
}
return 1;
}
int main()
{
int num = 0;
int ret = 0;
scanf("%d",&num);
ret = panduan(num);
if(ret==1)
{
printf("%d是素数",num);
}
else
printf("%d不是素数",num);
system("pasue");
return 0;
}
6.有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
要求:
不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
#include<stdio.h>
#include<windows.h>
#include<assert.h>
#include<stdlib.h>
int my_strlen(char const*str)
{
int count = 0;
assert(str!=NULL);
while(*str++)
{
count++;
}
return count;
}
void reverse_str( char *left, char* right)
{
assert(left!=NULL);
assert(right!=NULL);
while(left<right)
{
char tmp = *left;
*left =*right;
*right=tmp;
left++;
right--;
}
}
void reverse( char * str)
{
char* cur=str;
char* left = str;
char *right = str+my_strlen(str)-1;
assert(str!=NULL);
reverse_str(left, right);
while(*cur)
{
char *start = cur;
while((*cur != ' ') && (*cur !='\0'))
{
cur++;
}
reverse_str(start, cur-1);
if(*cur == ' ')
cur++;
}
}
int main()
{
char arr[]="student a am i";
int ret = 0;
reverse(arr);
printf("%s",arr);
system("pause");
return 0;
}