日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

蓝桥杯练习系统习题-基础训练

發布時間:2025/3/20 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯练习系统习题-基础训练 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

> 點個贊,看一看,好習慣!本文 **GitHub** [https://github.com/OUYANGSIHAI/JavaInterview](https://github.com/OUYANGSIHAI/JavaInterview) 已收錄,這是我花了 3 個月總結的一線大廠 Java 面試總結,本人已拿大廠 offer。

> 另外,原創文章首發在我的個人博客:[blog.ouyangsihai.cn](https://blog.ouyangsihai.cn),歡迎訪問。

文章推薦

  • 精選java等全套學習資源
  • 精選java電子圖書資源
  • 精選大數據學習資源
  • java項目練習精選

藍橋杯練習系統習題-基礎訓練

題目搜索方式:Ctrl+F—-> 輸入題目名稱—>定位到解答。

入門訓練(詳見 算法-藍橋杯習題(1-1))

基礎練習(詳見 算法-藍橋杯習題(2-1))

基礎練習(詳見 算法-藍橋杯習題(2-2))

算法訓練(詳見 算法-藍橋杯習題(3-1))

算法訓練(詳見 算法-藍橋杯習題(3-2))

算法訓練(詳見 算法-藍橋杯習題(3-3))

算法訓練(詳見 算法-藍橋杯習題(3-4))

算法訓練(詳見 算法-藍橋杯習題(3-5))

算法訓練(詳見 算法-藍橋杯習題(3-6))

算法提高(詳見 算法-藍橋杯習題(4-1))

算法提高(詳見 算法-藍橋杯習題(4-2))

歷屆試題(詳見 算法-藍橋杯習題(5-1))

歷屆試題(詳見 算法-藍橋杯習題(5-2))

基礎練習 閏年判斷

問題描述
給定一個年份,判斷這一年是不是閏年。

當以下情況之一滿足時,這一年是閏年:

  • 年份是4的倍數而不是100的倍數;

  • 年份是400的倍數。

    其他的年份都不是閏年。

    輸入格式
    輸入包含一個整數y,表示當前的年份。
    輸出格式
    輸出一行,如果給定的年份是閏年,則輸出yes,否則輸出no。
    說明:當試題指定你輸出一個字符串作為結果(比如本題的yes或者no,你需要嚴格按照試題中給定的大小寫,寫錯大小寫將不得分。

    樣例輸入
    2013
    樣例輸出
    no
    樣例輸入
    2016
    樣例輸出
    yes
    數據規模與約定
    1990 <= y <= 2050。

  • #include<stdio.h> main() { int y; scanf("%d",&y); if(y%4==0&&y%100!=0||y%400==0) printf("yes\n"); else printf("no\n"); return 0; }

    基礎練習 01字串

    問題描述
    對于長度為5位的一個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是:

    00000

    00001

    00010

    00011

    00100

    請按從小到大的順序輸出這32種01串。

    輸入格式
    本試題沒有輸入。
    輸出格式
    輸出32行,按從小到大的順序每行一個長度為5的01串。
    樣例輸出
    00000
    00001
    00010
    00011
    <以下部分省略>

    #include<stdio.h> main() { int a,b,c,d,e; for(e=0;e<=1;e++) for(d=0;d<=1;d++) for(c=0;c<=1;c++) for(b=0;b<=1;b++) for(a=0;a<=1;a++) printf("%d%d%d%d%d\n",e,d,c,b,a); return 0; }

    基礎練習 字母圖形

    問題描述
    利用字母可以組成一些美麗的圖形,下面給出了一個例子:

    ABCDEFG

    BABCDEF

    CBABCDE

    DCBABCD

    EDCBABC

    這是一個5行7列的圖形,請找出這個圖形的規律,并輸出一個n行m列的圖形。

    輸入格式
    輸入一行,包含兩個整數n和m,分別表示你要輸出的圖形的行數的列數。
    輸出格式
    輸出n行,每個m個字符,為你的圖形。
    樣例輸入
    5 7
    樣例輸出
    ABCDEFG
    BABCDEF
    CBABCDE
    DCBABCD
    EDCBABC
    數據規模與約定
    1 <= n, m <= 26。

    #include <stdio.h> #include <math.h> main() { int n,m,j,k; scanf("%d %d",&n,&m); if(n>=1&&m<=26) for(j=0;j<n;j++) { for(k=0;k<m;k++) printf("%c",65+abs(j-k)); printf("\n"); } return 0; } #include <stdio.h> #include <stdlib.h> #define MAXSIZE 26 //輸出 void Print(char matrix[MAXSIZE][MAXSIZE],int n,int m) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%c",matrix[i][j]); } printf("\n"); } } //實現字母圖形 void Drawing(int n,int m) { int i,j; int point=0; char str; char matrix[MAXSIZE][MAXSIZE]; for(i=0;i<n;i++) { str='A'; for(j=i;j<m;j++) { matrix[i][j]=str++; } str='A'; for(j=i-1;j>=0;j--) { matrix[i][j]=++str; } } Print(matrix,n,m); } int main() { int n,m; scanf("%d%d",&n,&m); Drawing(n,m); return 0; }

    基礎練習 數列特征

    問題描述
    給出n個數,找出這n個數的最大值,最小值,和。

    輸入格式
    第一行為整數n,表示數的個數。

    第二行有n個數,為給定的n個數,每個數的絕對值都小于10000。

    輸出格式
    輸出三行,每行一個整數。第一行表示這些數中的最大值,第二行表示這些數中的最小值,第三行表示這些數的和。
    樣例輸入
    5
    1 3 -2 4 5
    樣例輸出
    5
    -2
    11
    數據規模與約定
    1 <= n <= 10000。

    #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; }

    基礎練習 查找整數

    問題描述
    給出一個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。

    輸入格式
    第一行包含一個整數n。

    第二行包含n個非負整數,為給定的數列,數列中的每個數都不大于10000。

    第三行包含一個整數a,為待查找的數。

    輸出格式
    如果a在數列中出現了,輸出它第一次出現的位置(位置從1開始編號),否則輸出-1。
    樣例輸入
    6
    1 9 4 8 3 9
    9
    樣例輸出
    2
    數據規模與約定
    1 <= n <= 1000。

    #include<stdio.h> #define MaxSize 1000+5 main() { int n,i,a[MaxSize],s,m=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d ",&a[i]); } scanf("%d",&s); for(i=0;i<n;i++) { if(s==a[i]) { printf("%d\n",i+1); return 0; } } printf("-1\n"); return 0; }

    基礎練習 楊輝三角形

    問題描述
    楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的系數。

      
    它的一個重要性質是:三角形中的每個數字等于它兩肩上的數字相加。

      
    下面給出了楊輝三角形的前4行:

      
    1

      
    1 1

      
    1 2 1

      
    1 3 3 1

      
    給出n,輸出它的前n行。

    輸入格式
    輸入包含一個數n。

    輸出格式
    輸出楊輝三角形的前n行。每一行從這一行的第一個數開始依次輸出,中間使用一個空格分隔。請不要在前面輸出多余的空格。
    樣例輸入
    4
    樣例輸出
    1
    1 1
    1 2 1
    1 3 3 1
    數據規模與約定
    1 <= n <= 34。

    #include<stdio.h> main() { int n,x,y,a[35][35]={0}; int i,j; scanf("%d",&n); if(n>=1&&n<=34) //賦值對角線元素為1 { for(x=1;x<=n;x++) { a[x][1]=1; a[x][x]=1; } //賦值其他元素 for(x=3;x<=n;x++) for(y=2;y<=n;y++) a[x][y]=a[x-1][y]+a[x-1][y-1]; //輸出對應元素 for(j=1,x=1;x<=n;x++) { for(y=1;y<=j;y++) { printf("%d ",a[x][y]); } j++; printf("\n"); } } return 0; }

    基礎練習 特殊的數字

    問題描述
      153是一個非常特殊的數,它等于它的每位數字的立方和,即153=111+555+333。編程求所有滿足這種條件的三位十進制數。
    輸出格式
      按從小到大的順序輸出滿足條件的三位十進制數,每個數占一行。

    #include<stdio.h> 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; }

    基礎練習 回文數

    問題描述
      1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,編程求所有這樣的四位十進制數。
    輸出格式
      按從小到大的順序輸出滿足條件的四位十進制數。

    #include<stdio.h> main() { int a,b,i; for(a=1;a<=9;a++) for(b=0;b<=9;b++) { printf("%d%d%d%d\n",a,b,b,a); } return 0; } #include<stdio.h> int main() { int a,b,c,d,i; for(i=1000;i<=9999;i++) { a=i/1000; b=i/100%10; c=i/10%10; d=i%10; if(a==d&&b==c) printf("%d\n",i); } return 0; }

    基礎練習 特殊回文數

    問題描述
      123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
      輸入一個正整數n, 編程求所有這樣的五位和六位十進制數,滿足各位數字之和等于n 。
    輸入格式
      輸入一行,包含一個正整數n。
    輸出格式
      按從小到大的順序輸出滿足條件的整數,每個整數占一行。
    樣例輸入
    52
    樣例輸出
    899998
    989989
    998899
    數據規模和約定
      1<=n<=54。

    #include<stdio.h> main() { int n,a,b,c; scanf("%d",&n); for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) { if(n==2*a+2*b+c) printf("%d%d%d%d%d\n",a,b,c,b,a); } for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) { if(n==2*a+2*b+2*c) printf("%d%d%d%d%d%d\n",a,b,c,c,b,a); } return 0; } #include<stdio.h> int main() { int a,b,c,d,e,f,t,all; scanf("%d",&t); for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) for(d=0;d<10;d++) for(e=0;e<10;e++) { if(a==e) if(b==d) { all=a+b+c+d+e; if(all==t) printf("%d\n",a*10000+b*1000+c*100+d*10+e); } } for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) for(d=0;d<10;d++) for(e=0;e<10;e++) for(f=0;f<10;f++) { if(a==f) if(b==e) if(c==d) { all=a+b+c+d+e+f; if(all==t) printf("%d\n",a*100000+b*10000+c*1000+d*100+e*10+f); } } return 0; }

    基礎練習 十進制轉十六進制

    問題描述
      十六進制數是在程序設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號,分別表示十進制數的0至15。十六進制的計數方法是滿16進1,所以十進制數16在十六進制中是10,而十進制的17在十六進制中是11,以此類推,十進制的30在十六進制中是1E。
      給出一個非負整數,將它表示成十六進制的形式。
    輸入格式
      輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647
    輸出格式
      輸出這個整數的16進制表示
    樣例輸入
    30
    樣例輸出
    1E

    #include<stdio.h> main() { int a; scanf("%d",&a); if(0<=a&&a<=2147483647) printf("%X",a); return 0; } #include <stdio.h> #include <stdlib.h> char data[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; //輸出 void Print(char *num,int n) { int i; for(i=n-1;i>=0;i--) printf("%c",num[i]); printf("\0"); printf("\n"); } //將十六進制數轉換為十進制數 int Transform(char *num,long long value) { int n=0; while(value>=16) { num[n++]=data[value%16]; value/=16; } num[n++]=data[value%16]; return n; } int main() { long long value; char num[10]; int n; scanf("%I64d",&value); n=Transform(num,value); Print(num,n); return 0; }

    基礎練習 十六進制轉十進制

    問題描述
      從鍵盤輸入一個不超過8位的正的十六進制數字符串,將它轉換為正的十進制數后輸出。
      注:十六進制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。
    樣例輸入
    FFFF
    樣例輸出
    65535

    #include<stdio.h> #include<string.h> int main() { char a[9]; int i; unsigned int n=1,b=0; scanf("%s",a); for(i=strlen(a)-1;i>=0;i--) { if(a[i]<='9') b+=(a[i]-'0')*n; else b+=(a[i]-'A'+10)*n; n=16*n; } printf("%u\n",b); return 0; } #include<stdio.h> #include<string.h> #include<math.h> int main() { double sum=0,x; char a[8]; int len,i=0; gets(a); len=strlen(a); while(len) { if(a[len-1]>='A'&&a[len-1]<='F') x=(a[len-1]-'7')*pow(16,i++); else x=(a[len-1]-'0')*pow(16,i++); sum+=x; len--; } printf("%.0lf",sum); return 0; }

    基礎練習 十六進制轉八進制

    問題描述
      給定n個十六進制正整數,輸出它們對應的八進制數。
    輸入格式
      輸入的第一行為一個正整數n (1<=n<=10)。
      接下來n行,每行一個由0~{9}、大寫字母{A}~F組成的字符串,表示要轉換的十六進制正整數,每個十六進制數長度不超過100000。
    輸出格式
      輸出n行,每行為輸入對應的八進制正整數。
    注意
      輸入的十六進制數不會有前導0,比如012A。
      輸出的八進制數也不能有前導0。
    樣例輸入
    2
    39
    123ABC
    樣例輸出
    71
    4435274
    提示
      先將十六進制數轉換成某進制數,再由某進制數轉換成八進制。

    #include <cstdio> #include <iostream> #include <cstring> #include <string> #include <cmath> #include <algorithm> #include <set> using namespace std; char str[100005], num; void Fun(int i, int state) { int temp; if(i < 0) { if(num != 0) { printf("%d", num); } return; } if(state != 3) { temp = str[i] >= '0' && str[i] <= '9' ? str[i] - '0' : str[i] - 'A' + 10; temp <<= state; num |= temp; temp = num; num >>= 3; Fun(i - 1, state + 1); printf("%d", (temp & 1) + (temp & 2) + (temp & 4)); } else { temp = num; num >>= 3; Fun(i, 0); printf("%d", (temp & 1) + (temp & 2) + (temp & 4)); } } int main() { int n; scanf("%d", &n); while(n--) { num = 0; scanf("%s", str); Fun(strlen(str) - 1, 0); printf("\n"); } return 0; } #include <stdio.h> #include <stdlib.h> #include <string.h> #define MaxSize 100000 void saveB(char *b,char c3,char c2,char c1,char c0,int start) { b[start]=c3; b[start+1]=c2; b[start+2]=c1; b[start+3]=c0; } int htob(char *h,char *b) { int i,j; int hl=strlen(h); for(i=0;i<hl;i++) switch(h[i]) { case '0': { saveB(b,'0','0','0','0',4*i); break; } case '1': { saveB(b,'0','0','0','1',4*i); break; } case '2': { saveB(b,'0','0','1','0',4*i); break; } case '3': { saveB(b,'0','0','1','1',4*i); break; } case '4': { saveB(b,'0','1','0','0',4*i); break; } case '5': { saveB(b,'0','1','0','1',4*i); break; } case '6': { saveB(b,'0','1','1','0',4*i); break; } case '7': { saveB(b,'0','1','1','1',4*i); break; } case '8': { saveB(b,'1','0','0','0',4*i); break; } case '9': { saveB(b,'1','0','0','1',4*i); break; } case 'A': { saveB(b,'1','0','1','0',4*i); break; } case 'B': { saveB(b,'1','0','1','1',4*i); break; } case 'C': { saveB(b,'1','1','0','0',4*i); break; } case 'D': { saveB(b,'1','1','0','1',4*i); break; } case 'E': { saveB(b,'1','1','1','0',4*i); break; } case 'F': { saveB(b,'1','1','1','1',4*i); break; } } return 4*hl; } int btoo(char *b,char *o,int bl) { int i,j; int ol; int value; if(bl%3==0) ol=bl/3; else ol=bl/3+1; j=bl-1; for(i=ol-1;i>=0;i--) { if(i>0) o[i]=b[j]-48+(b[j-1]-48)*2+(b[j-2]-48)*4+48; else { switch(j) { case 2: o[i]=b[j]-48+(b[j-1]-48)*2+(b[j-2]-48)*4+48; break; case 1: o[i]=b[j]-48+(b[j-1]-48)*2+48; break; case 0: o[i]=b[j]; break; } } j=j-3; } return ol; } void printO(char *o,int ol) { int i=0; if(o[0]=='0') i=1; for(;i<ol;i++) { printf("%c",o[i]); } printf("\n"); } main() { char h[MaxSize]; char b[4*MaxSize]; char o[4*MaxSize/3+1]; int n,i,bl,ol; scanf("%d",&n); getchar(); for(i=0;i<n;i++) { gets(h); bl=htob(h,b); ol=btoo(b,o,bl); printO(o,ol); } }

    基礎練習 數列排序

    問題描述
      給定一個長度為n的數列,將這個數列按從小到大的順序排列。1<=n<=200
    輸入格式
      第一行為一個整數n。
      第二行包含n個整數,為待排序的數,每個整數的絕對值小于10000。
    輸出格式
      輸出一行,按從小到大的順序輸出排序后的數列。
    樣例輸入
    5
    8 3 6 4 9
    樣例輸出
    3 4 6 8 9

    #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; } #include <stdio.h> #include <stdlib.h> void Print(int *data,int n) { int i; for(i=0;i<n;i++) { printf("%d ",data[i]); } printf("\n"); } int Split(int *data,int pre,int rear) { int value=data[pre]; while(pre<rear) { while(data[rear]>=value && pre<rear) rear--; data[pre]=data[rear]; while(data[pre]<value && pre<rear) pre++; data[rear]=data[pre]; } data[pre]=value; return pre; } //快速排序 void QuickSort(int *data,int pre,int rear) { if(pre<rear) { int mid=Split(data,pre,rear); QuickSort(data,pre,mid-1); QuickSort(data,mid+1,rear); } } int main() { int i; int n; int *data; scanf("%d",&n); data=(int *)malloc(sizeof(int)*n); for(i=0;i<n;i++) { scanf("%d",&data[i]); } QuickSort(data,0,n-1); Print(data,n); return 0; }

    總結

    以上是生活随笔為你收集整理的蓝桥杯练习系统习题-基础训练的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。