每日坚持:练习题

简介: 每日坚持:练习题

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,

输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。


#include <stdio.h>
void print1(int n)
{
  int i = 0;
  int j = 0;
  for (i = 1; i <= n; i++)
  {
  for (j = 1; j <= i; j++)
  {
    printf("%d*%d=%2d  ", i, j, i * j);
  }
  printf("\n");
  }
}
int main()
{
  int n = 0;
  scanf_s("%d", &n);
  print1(n);
  return 0;
}


2.使用函数实现两个数的交换。


#include <stdio.h>
void print2(int* pa, int* pb)
{
  int tmp = *pa;
  *pa = *pb;
  *pb = tmp;
}
int main()
{
  int x = 0;
  int y = 0;
  scanf_s("%d %d", &x, &y);
  printf("x=%d y=%d\n", x, y);
  print2(&x, &y);
  printf("x=%d y=%d\n", x, y);
  return 0;
}

3.实现一个函数判断year是不是润年。


#include <stdio.h>  
//1是闰年
int print3(int y)
{
  if ((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0))
  {
  return 1;
  }
  return 0;
}
int main()
{
  int y = 0;
  scanf_s("%d", &y);
  if (print3(y) == 1)
  {
  printf("闰年\n");
  }
  else
  {
  printf("不是闰年\n");
  }
  return 0;
}


4.实现一个函数,判断一个数是不是素数。


#include <stdio.h>
int my_su(int n)
{
  int i = 0;
  int flag = 0;   //flag=1为素数
  for (i = 2; i < n; i++)
  {
  if (n % 1 != 0)
  {
    flag = 1;
  }
  }
  return flag;
}
int main()
{
  int n = 0;
  scanf_s("%d", &n);
  if (my_su(n) == 1)
  {
  printf("是素数\n");
  }
  else
  {
  printf("不是素数\n");
  }
  return 0;
}


5.

创建一个数组,

实现函数init()初始化数组、

实现empty()清空数组、

实现reverse()函数完成数组元素的逆置。

要求:自己设计函数的参数,返回值。


#include <stdio.h>
//实现函数init()初始化数;
void init(int arr[], int n) {
  for (int i = 0; i < n; i++) {
  arr[i] = i;
  }
}
//实现函数empty()清空数组;
void empty(int arr[], int n) {
  memset(arr, 0, sizeof(arr[0]) * n);
}
//实现函数reverse()完成数组元素的逆置。
void reverse(int arr[], int n) {
  int left = 0;
  int right = n - 1;
  while (left < right) {
  int tmp;
  tmp = arr[left];
  arr[left] = arr[right];
  arr[right] = tmp;
  left++;
  right--;
  }
}
int main() {
  int arr[] = { 0 };
  int i, n;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
  scanf("%d", &arr[i]);
  }
  init(arr[i], n);
  empty(arr[i], n);
  reverse(arr[i], n);
  for (i = 0; i <= n; i++) {
  printf("%d", arr[i]);
  }
  return 0;
}

下面代码仅供参考!!(可能有些许错误)!!!


#include <stdio.h>
void empty(int arr[], int sz)
{
  int i = 0;
  for (i = 0; i < sz; i++)
  {
  arr[i] = 0;
  }
  ini(arr, sz);
}
void ini(int arr[],int sz)
{
  int i = 0;
  for (i = 0; i < sz; i++)
  {
  scanf_s("%d", &arr[i]);
  }
  reverse(arr, sz);
}
void reverse(int arr[], int sz)
{
  int i = 0;
  for (i = sz - 1; i >= 0; i--)
  {
  printf("%d ", arr[i]);
  }
}
int main()
{
  int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
  int sz = 0;
  sz = sizeof(arr) / sizeof(arr[0]);
  empty(arr,sz);
  return 0;
}
相关文章
|
4月前
|
移动开发 前端开发 JavaScript
HTML+CSS练习题【详解】
HTML+CSS练习题【详解】
73 0
|
11月前
练习题:暗恋
练习题:暗恋
43 0
C语言知识-学习练习题系列-3
C语言知识-学习练习题系列-3
C语言知识-学习练习题系列-5
C语言知识-学习练习题系列-5
C语言知识-学习练习题系列-6
C语言知识-学习练习题系列-6
C语言知识-学习练习题2
C语言知识-学习练习题2
C语言知识-学习练习题系列-4
C语言知识-学习练习题系列-4
|
算法 Unix Shell
|
存储 测试技术 调度
C/C++练习题(一)
1. volatile 关键字在 C++ 中的性能和 C 的一样? 作用是一样的,但是其内部实现原理可能不同。 2. scanf 格式化输入是怎么赋值的? 由于scanf输入的数据个数是不定的,从键盘输入的数据会进入缓冲流,然后将输入的数据赋值给scanf的参数。
1694 0
|
C++
C/C++练习题(三)
1、对下面两个文件编译后,运行会输出什么? // 第一个文件a.c #include extern char p[]; extern void f(); int main() { f(); printf("a.
719 0