日常刷题篇(入门)

简介: 我从简单到难,一起走上漫漫刷题路!我会持续在我的博客中更新我每天刷题的内容!相互交流!

我从简单到难,一起走上漫漫刷题路!

我会持续在我的博客中更新我每天刷题的内容!

相互交流!

大家一键三连,多多关注!

这是今天我给大家带来的题!以后难度逐渐加深!


1.交换数组

将数组A中的内容和数组B中的内容进行交换。(数组一样大)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int i;
    int temp[4];
    int str1[4] = { 1,2,3,4 };
    int str2[4] = { 5,6,7,8 };
    for (i = 0; i <= 3; i++)
    {
        temp[i] = str1[i];
        str1[i] = str2[i];
        str2[i] = temp[i];
    }
    for (i = 0; i <= 3; i++)
    {
        printf("%d ", str1[i]);
    }
    printf("\n");
    for (i = 0; i <= 3; i++)
    {
        printf("%d ", str2[i]);
    }
    return 0;
}

2.数组操作

创建一个整形数组,完成对数组的操作

  1. 实现函数init() 初始化数组为全0
  2. 实现print()  打印数组的每个元素
  3. 实现reverse()  函数完成数组元素的逆置。


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

#define _CRT_SECURE_NO_WARNINGS 1
#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[] = { 1,2,3,4,5,6,7,8,9,0 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  print(arr, sz);
  reverse(arr, sz);
  print(arr, sz);
  init(arr, sz);
  print(arr, sz);
  return 0;
}

3.冒泡排序

实现一个对整形数组的冒泡排序


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void bubble_sort(int arr[], int sz)
{
  int flag = 0;
  for (int i = 0; i < sz - 1; i++)
  {
    for (int j = 0; j < sz - 1 - i; j++)
    {
      if (arr[j] > arr[j + 1])
      {
        int temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
        flag = 1;
      }
    }
    if (flag == 0)
    {
      break;
    }
  }
}
int main()
{
  int arr[] = { 9,8,7,4,5,6,1,2,3,0 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  bubble_sort(arr, sz);
  for (int i = 0; i < 10; i++)
  {
    printf("%d ", arr[i]);
  }
  return 0;
}

4.学生基本信息输入输出

描述

依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。

数据范围:学号满足 1≤n≤20000000  ,各科成绩使用百分制,且不可能出现负数

输入描述:

学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。

输出描述:

学号,3科成绩,输出格式详见输出样例。


#include <stdio.h>
int main() {
 double m,k,p;
 int d;
 scanf("%d;%lf,%lf,%lf",&d,&m,&k,&p);
  if(m>=0&&(int)m<m)
  m=m+0.001;
  printf("The each subject score of No. %d is %.2lf, %.2lf, %.2lf.",d,m,k,p);
    return 0;
}

5.牛牛的空格分隔

描述

牛牛从键盘读入一个字符,一个整数,一个单精度浮点数,按顺序输出它们,并用空格分隔,浮点数保留 6 位小数。

输入描述:

读入一个字符,一个整数,一个单精度浮点数用换行符隔开,

输出描述:

按顺序输出字符、整数、单精度浮点数,用空格分隔,浮点数保留 6 位小数


#include <stdio.h>
int main() {
    char a;
    int b;
    float c;
    scanf("%c%d%f",&a,&b,&c);
    printf("%c %d %.6f",a,b,c);
    return 0;
}

6.交换两个变量(不创建临时变量)

不允许创建临时变量,交换两个整数的内容

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  int a = 10;
  int b = 20;
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
  printf("a=%d b=%d\n", a, b);
  return 0;
}

7.二进制中1的个数

输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。

数据范围:−231<=n<=231−1- 2^{31} <= n <= 2^{31}-1−231<=n<=231−1

即范围为:−2147483648<=n<=2147483647

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  int num = 0;
  int i = 0;
  int count = 0;
  scanf(" %d", &num);
  for (i = 0; i < 32; i++)
  {
  if (num & (1 << i))
    count++;
  }
  printf("二进制中1的个数:%d", count);
  return 0;
}

8.打印整数二进制的奇数位和偶数位

获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列

#include <stdio.h>
int main()
{
  int m = 0;
  scanf("%d", &m);  
  int i = 0;  
  for (i = 31; i >= 1; i -= 2)
  {
    printf("%d ", (m >> i) & 1);
  }
  printf("\n");
  for (i = 30; i >= 0; i -= 2)
  {
    printf("%d ", (m >> i) & 1);
  }
  return 0;
}

9.两个整数二进制位不同个数

输入两个整数,求两个整数二进制格式有多少个位不同

#include<stdio.h>
int num(int m,int n)
{
  int count=0;
  int t=m^n;
  while(t)
  {
     t=t&(t-1);
     count++;
  }
  return count;
}
int main()
{
  int m=0;
  int n=0;
  scanf("%d %d",&m,&n);
  int ret=num(m,n);
  printf("%d\n",ret);
  return 0;
}


相关文章
|
存储 算法 C语言
日常刷题篇(入门)
我从简单到难,一起走上漫漫刷题路! 我会持续在我的博客中更新我每天刷题的内容! 相互交流!
日常刷题篇(入门)
我从简单到难,一起走上漫漫刷题路! 我会持续在我的博客中更新我每天刷题的内容! 相互交流!
|
C语言 C++
基础刷题篇(入门)
我从简单到难,一起走上漫漫刷题路! 我会持续在我的博客中更新我每天刷题的内容! 相互交流!
|
JavaScript 前端开发
牛客前端宝典——刷题 ##Day13
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
175 0
牛客前端宝典——刷题 ##Day13
|
文字识别 前端开发 开发者
牛客前端宝典——刷题 ##Day5
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
128 0
牛客前端宝典——刷题 ##Day5
|
前端开发 JavaScript 测试技术
牛客前端宝典——刷题 ##Day12
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
166 0
牛客前端宝典——刷题 ##Day12