蓝桥杯入门题 赛前练一练,喝前摇一摇

简介: 这是一个C语言编程题目集,包含10个不同的任务。任务包括:1) 打印所有5位01串,2) 找出n个数的最大值、最小值和,3) 搜索整数在数列中的位置,4) 找出立方和等于自身的三位数,5) 找出回文数,6) 对数列进行排序,7) 将秒转换为HH:MM:SS格式,8) 比较两个字符串是否相同,9) 数字的中文读法,10) 计算阶乘。每个任务都有对应的代码示例。

@[toc]

蓝桥杯入门题

1.顺序输出这32种01串。
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。
#include <stdio.h>

int main()
{
   
  int a,b,c,d,e;
  for(a=0;a<=1;a++)
       for(b=0;b<=1;b++)
            for(c=0;c<=1;c++)
                 for(d=0;d<=1;d++)
                      for(e=0;e<=1;e++)
                          printf("%d%d%d%d%d\n",a,b,c,d,e);
   return 0;
}
2.n个数的最大值,最小值,和。
给出n个数,找出这n个数的最大值,最小值,和。
#include <stdio.h>
#define MaxSize 10000

main()
{
   
    int n;
    int sum=0,min=MaxSize,max=-MaxSize;

    scanf("%d",&n);
    while(n--)
    {
   
        int temp,st;
        scanf("%d",&temp);

        if(temp>max)
        {
   
            max=temp;
        }
        if(temp<min)
        {
   
            min=temp;
        }
        sum+=temp;
    }
    printf("%d\n%d\n%d\n",max,min,sum);

    return 0;
}
3.基础练习 查找整数
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
#include <stdio.h>

int main()
{
   
   int n;
    int m;
    int sum;
    int arr[n];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
   
      scanf("%d",&arr[i]);
    }
    scanf("%d",&m);
    for(int i=0;i<n;i++){
   
      if(m==arr[i]){
   
           printf("第%d",i+1);
             return 0;
      }
    }

   return 0;
}
4.特殊的数字
 153是一个非常特殊的数,它等于它的每位数字的立方和,
 即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
#include<stdio.h>

int main()
{
   
    int i,j,k;
    int n;

    for(i=1;i<=9;i++)
    for(j=0;j<=9;j++)
    for(k=0;k<=9;k++)
    {
   
        if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
        printf("%d%d%d\n",i,j,k);
    }
    return 0;
}
5.回文数
 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位
#include<stdio.h>

int main()
{
   
    int i,j,k,s;
    int n;

    for(i=1;i<=9;i++)
    for(j=0;j<=9;j++)
    for(k=0;k<=9;k++)
    for(s=0;s<=9;s++)
    {
   
        if(i==s&&j==k)
        printf("%d%d%d%d\n",i,j,k,s);
    }
    return 0;
}
6.数列排序
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
  第一行为一个整数n。
  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
  输出一行,按从小到大的顺序输出排序后的数列。
#include <stdio.h>

int main()
{
   
    int n,i,j,s,a[200];

    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
   
        scanf("%d",&a[i]);
    }

    i=n+1;

    while(i--)
    for(j=1;j<i;j++)
    {
   
        if(a[j]>a[j+1])
        {
   
            s=a[j+1];
            a[j+1]=a[j];
            a[j]=s;
        }
    }

    for(i=1;i<=n;i++)
    printf("%d ",a[i]);

    return 0;
}
7.日期转换
 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间。
 <H>表示时间,<M>表示分钟,而<S>表示秒,它们都是整数且没有前导的“0”。
 例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。
输入格式
  输入只有一行,是一个整数t(0<=t<=86399)。
输出格式
  输出只有一行,是以“<H>:<M>:<S>”的格式所表示的时间,不包括引号。
#include <stdio.h>

int main()
{
   
   int t,h,m,s;
    scanf("%d",&t);
    h=n/3600;
    m=n/60%60;
    s=n%60;
    printf("%d:%d:%d",h,m,s);
}
8.字符比较
给定两个仅由大写字母或小写字母组成的字符串
#include <stdio.h>
#include <string.h>

int main()
{
   
   char arr1[100];
   char arr2[100];
   scanf("%s",arr1);
    scanf("%s",arr2);
    if(strcmp(arr1,arr2)==0){
   
      printf("相同");
    }else{
   
     printf("不相同");
    }
    return 0;
}
9.数的读法
问题描述
  Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染

色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。
  比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念

出来的。
  所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法:
  十二亿三千四百五十六万七千零九
  用汉语拼音表示为
  shi er yi san qian si bai wu shi liu wan qi qian ling jiu
  这样他只需要照着念就可以了。
  你的任务是帮他设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的

规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。
  注意必须严格按照规范,比如说“10010”读作“yi wan ling yi shi”而不是“yi wan 

ling shi”,“100000”读作“shi wan”而不是“yi shi wan”,“2000”读作“er qian”而

不是“liang qian”。
#include<stdio.h>
#include<string.h>
int main()
{
   
    char a[100];int i,j,k,l;
    char b[20][10]={
   "ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    char c[20][10]={
   "","","shi","bai","qian","wan","shi","bai","qian","yi","shi"};
    gets(a);
    l=strlen(a);
    for(i=0;i<l;i++){
   
        j=a[i]-48;
        if(j==0){
   if(i<l-1)if(a[i+1]!=48)printf("%s ",b[j]);}
        else 
        if((l-i==2||l-i==6||l-i==10)&&j==1)printf("%s ",c[l-i]);
        else if(a[i-1]==48&&j==1)printf("%s ",c[l-i]);
        else printf("%s %s ",b[j],c[l-i]);
    }
    printf("\n");
    return 0;
}
10.阶乘计算
问题描述
  输入一个正整数n,输出n!的值。
  其中n!=1*2*3*…*n。
#include <stdio.h>
#include <string.h>
#define MaxSize 3000+5

void resultProduct(int P[],int num)
{
   
    int i,tp=0,st=0;

    for(i=0;i<MaxSize;i++)
    {
   
        st=tp;
        tp=(P[i]*num+st)/10;
        P[i]=(P[i]*num+st)%10;
    }

    return 0;
}
目录
相关文章
|
1月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
110 0
|
6月前
|
测试技术
蓝桥杯刷题|03入门真题
蓝桥杯刷题|03入门真题
|
6月前
|
测试技术
蓝桥杯刷题|01入门真题
蓝桥杯刷题|01入门真题
|
6月前
|
测试技术
蓝桥杯刷题|02入门真题
蓝桥杯刷题|02入门真题
|
算法
【AcWing刷题】蓝桥杯专题突破-动态规划-dp入门(17)
【AcWing刷题】蓝桥杯专题突破-动态规划-dp入门(17)
116 0
|
Java
蓝桥杯 入门训练 Fibonacci数列 (Java)
蓝桥杯 入门训练 Fibonacci数列 (Java)
70 0
|
Java
蓝桥杯 入门训练 圆的面积(Java)
蓝桥杯 入门训练 圆的面积(Java)
83 0
|
Java
蓝桥杯 入门训练 序列求和 (Java)
蓝桥杯 入门训练 序列求和 (Java)
89 0
|
C语言 C++
蓝桥杯入门训练试题集
蓝桥杯入门训练试题集
107 0