蓝桥杯练习题笔记--1000~1015

蓝桥杯练习题笔记



前言

例如:随着嵌入式的不断发展,C语言变得十分重要,本文主要介绍了蓝桥杯的练习题,通过习题加深我们的熟练度。


提示:以下是本篇文章正文内容

一、1001~1015

1000

题目:输入两个整数a和b,计算a+b的和。

代码如下(C):

#include<stdio.h>
int main()
{
    int a,b;
    while(~scanf("%d%d", &a, &b))//可连续输入
    	printf("%d\n",a+b);
    return 0;
}

代码如下(C++):

#include<iostream>
using namespace std;
int main()
{
    int a,b;
    while(cin>>a>>b) //可连续输入
    	cout<<(a+b)<<endl;
    return 0;
}

1001

题目:请参照本章例题,编写一个C程序,输出以下信息:

Hello World!

代码如下(C):

#include<stdio.h>
int main()
{
    printf("**************************\n");
    printf("Hello World!\n");
    printf("**************************\n");
    return 0;
}

代码如下(C++):

#include<iostream>
using namespace std;
int main()
{
    cout << "**************************" << endl;
    cout << "Hello World!" << endl;
    cout << "**************************" << endl;
    return 0;
}

1002

题目:编写一个程序,输入a、b、c三个值,输出其中最大值。

代码如下(C):

#include<stdio.h>
 
int max(int x, int y)
{
    return x > y ? x : y;//三目运算符
}
 
int main()
{
    int a, b, c, m;
    scanf("%d%d%d", &a, &b, &c);
    printf("%d", max(max(a, b), c));
    return 0;
}

代码如下(C++):

/*******************************************************************************
 #include< algorithm >是C++的标准模版库(STL)中最重要的头文件之一,
 提供了大量基于迭代器的非成员模板函数。以下将介绍几个常用的库函数:
一、max(),min()和swap()
max(x,y)  //返回两个元素中值最大的元素
min(x,y)  //返回两个元素中值最小的元素
swap(x,y)  //用来交换x和y的值
二、reverse()
反转排序指定范围中的元素,reverse(a,b) 可以将数组指针在[a,b]之间的元素或容器的迭代器在[a,b]范围内的元素进行反转。
三、fill()
fill() 可以把数组或容器中的某一段区间赋为某个相同的值。
四 、 sort()
排序函数,默认为递增排序。
五、next_permutation()
返回给定范围中的元素组成的下一个按字典序的排列,即给出一个序列在全排列中的下一个序列。
********************************************************************************/
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    int x1 = max(a, b);  // 把 a,b 中大的值赋给 x1
    int x2 = max(x1, c); // 把 x1,c 中大的值赋给 x2
    cout << x2 << endl;  // 输出最大值
    return 0;
}

1003

题目:要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.

例如,字母"A"后面第4个字母是"E".“E"代替"A”。因此,“China"应译为"Glmre”。

代码如下(C):

#include <stdio.h>
int main()
{
    char s[11];                             //定义一个长度为10的字符串(注意有结尾符)
    gets(s);                                //输入字符串
    for (int i = 0; s[i] != '\0'; i++)      //循环到结尾符'\0'时停止循环
    {
        if (s[i] >= 'A' && s[i] <= 'Z')             //判断是否为大写字母
        {
        	/*** 此处取余数26很巧妙 ***/
            s[i] = (s[i] + 4 - 'A') % 26 + 'A';     //大写字母后移
        }
        if (s[i] >= 'a' && s[i] <= 'z')             //判断是否为小写字母A
        {
            s[i] = (s[i] + 4 - 'a') % 26 + 'a';     //小写字母后移
        }
    }
    puts(s);                                //输出字符串
    return 0;
}

代码如下(C++):

#include<iostream>
using namespace std;
int main()
{
 char c1, c2, c3, c4, c5;
 cin >> c1 >> c2 >> c3 >> c4 >> c5;
 c1 += 4;
 c2 += 4;
 c3 += 4;
 c4 += 4;
 c5 += 4;
 cout << c1 << c2 << c3 << c4 << c5 << endl;
 return 0;
}

1005

题目:输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9,取位2小数。

代码如下(C):

#include"stdio.h"
int main()
{
    double f,c;
    scanf("%lf", &f);
    c=5 * (f - 32) / 9;
    printf("c = %0.2lf", c);
    return 0;
}

代码如下(C++):

#include<iostream>
#include<iomanip>
using namespace std ;
int main()
{
    float f ;
    cin >> f ;
    float c = 5 * (f - 32) / 9 ;
    cout << fixed << setprecision(2) << "c=" << c << endl ;
    /******************************************************
    fixed是小数点的意思,表示下面要对小数点后进行设置,
    setprecision是设置精度,括号中的数表示保留几位精度输出, 
    如果不用fixed,直接使用setprecision(int)则表示保留几位有效数字
    *******************************************************/
    return 0 ;
}

1008

题目:给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

代码如下(C):

#include<stdio.h>
int main()
{
    int score;
    scanf("%d",&score); 
    switch(score/10)
    {
    	/***************************************************************
    	C 库函数 int putchar(int char) 把参数 char 指定的字符(一个无符号字符)
    	写入到标准输出 stdout 中。
    	***************************************************************/
        case 9:
            putchar('A');
            break;
        case 8:
            putchar('B');
            break;
        case 7:
            putchar('C');
            break;
        case 6:
            putchar('D');
            break;
        default:
            putchar('E');      
    }
}

代码如下(C++):

#include<bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    if(n>=90) cout<<"A"<<endl;
    else if(n<90&&n>=80) cout<<"B"<<endl;
    else if(n<80&&n>=70) cout<<"C"<<endl;
    else if(n<70&&n>=60) cout<<"D"<<endl;
    else cout<<"E"<<endl;
    return 0;
}

1012

题目:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

代码如下(C):

#include<stdio.h>
int main()
{
   int num=0,letter=0,space=0,other=0;
   int c;
   while((c=getchar())!='\n')
   {
       if(48<=c&&c<=57)
       num++;
       else if(65<=c&&c<=90||97<=c&&c<=122)
       letter++;
       else if(c==32)
       space++;
       else other++;
   }
   printf("%d %d %d %d",letter,num,space,other);
   return 0;
}

代码如下(C++):

/*******************************************************
头文件:<ctype.h>
函数:
    (1)int isalpha(int ch);
            判断ch是否为字母,如果是返回非0,反之返回0;
    (2)int isdigit(int ch);
            判断ch是否为数字,如果是返回非0,反之返回0;
    (3)int islower(int ch);
            判断ch是否为小写字母,如果是返回非0,反之返回0;
    (4)int isupper(int ch);
            判断ch是否为大写字母,如果是返回非0,反之返回0;
 *******************************************************/
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int main ()
{
	char str[100]; 
	int alpha=0, digit=0, space=0, other=0;
	
	gets(str); //字符串的输入 
	
	for(int i=0; i<strlen(str); i++)
	{
		if(isalpha(str[i]))
			++alpha;
		else if(isdigit(str[i]))
			++digit;
		else if(str[i]==32)
			++space;
		else
			++other;
	}
	
	cout << alpha << " " << digit << " " << space << " " << other << endl;
	
	return 0;
} 

1013

题目:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。

代码如下(C):

#include <stdio.h>
#include <math.h>
int main() 
{
    int n;
    scanf("%d", &n);
    long count = 0;
    for (int i = 1; i <= n; ++i) 
        count += (2 * (1 - pow(10, i)) / (1 - 10));
    printf("%d", count);
    return 0;
}

代码如下(C++):

#include<iostream>
using namespace std;
int main()
{
    int n;
    int t = 2;
    int Sn = 0;
    cin >> n;
    for(int m=n; m>0; m--)
    {
        Sn += t*m;
        t   = t*10;
    }
    cout << Sn << endl;
    return 0;
}

1015

题目:求以下三数的和,保留2位小数 1~a之和 1~b的平方和 1~c的倒数和

代码如下(C):

#include"stdio.h"
int main()
{
    double a,b,c,sum1=0,sum2=0,sum3=0,i,sum=0;
    scanf("%lf",&a);
    scanf("%lf",&b);
    scanf("%lf",&c);
    for(i=1;i<=a;i++)                 //开始和结束非常重要
    {
        sum1+=i;    
    }
    for(i=1;i<=b;i++)
    {
        sum2+=i*i;
    }
    for(i=1;i<=c;i++)
    {
        sum3+=1.0/i;                  //注意要用1.0/i
    }
    sum=sum1+sum2+sum3;
    printf("%.2lf",sum);
    return 0;
}

代码如下(C++):

#include<iostream>
#include<cstdio>
using namespace std ;
int main()
{
    int a,b,c ;
    cin>>a>>b>>c ;
    int nSuma = 0,nSumb = 0 ;//a,b部分和 
    float fSum = 0,fSumc = 0 ;//总和,c部分和 
    for(int i = 1;i <= a;i++)
    {
        nSuma += i ;//直接累加 
    }
    for(int i = 1;i <= b;i++)
    {
        nSumb += i * i ;//平方累加 
    }
    for(float i = 1;i <= c;i++)
    {
        fSumc += 1 / i ;//倒数累加 
    }
    fSum = nSuma + nSumb + fSumc ;
    printf("%.2f\n",fSum) ;//printf更方便格式输出
    //cout的输出方法:cout<<fixed<<setprecision(2)<<nSum<<endl ; 
    //fixed表示小数点,setprecision()为设置精度 
    return 0 ;
}

总结

以上就是今天学习的内容,C与C++头文件中提供了大量能使我们快速便捷地处理数据的库函数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值