PTA-运算符编程练习

7-1 Camp0201-算术运算符

作者 王和兴

单位 东北大学秦皇岛分校

本题输入两个整数a和b,请计算a+b,a-c,a*b,a/b和a%b的值。

输入格式:

在一行中给出2个整数a和b。

输出格式:

分五行分别输出对应的值。

输入样例:

在这里给出一组输入。例如:

3 2

输出样例:

3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
3 / 2 = 1
3 % 2 = 1

解答:

#include <iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<a<<" + "<<b<<" = "<<a+b<<endl;
    cout<<a<<" - "<<b<<" = "<<a-b<<endl;
    cout<<a<<" * "<<b<<" = "<<a*b<<endl;
    cout<<a<<" / "<<b<<" = "<<a/b<<endl;
    cout<<a<<" % "<<b<<" = "<<a%b<<endl;
    return 0;
}

7-2 Camp0202-/运算符

作者 王和兴

单位 东北大学秦皇岛分校

给出两个float型的变量a和b,请计算a/b的值。

输入格式:

在一行中给出2个浮点数a和b。

输出格式:

在一行中输出a/b的值。

输入样例:

3.0 2.0

输出样例:

在这里给出相应的输出。例如:

1.5

 解答:

#include <iostream>
using namespace std;
int main()
{
    float a,b;
    cin>>a>>b;
    cout<<a/b;
    return 0;
}

7-3 Camp0203-再来/运算符

作者 王和兴

单位 东北大学秦皇岛分校

给出两个整型变量a和b,请计算a整除以b得到的商以及正常进行除法a÷b的值。

输入格式:

在一行中给出2个整数a和b。

输出格式:

分为两行。
第一行输出a/b的值。
第二行输出a÷b的值。

输入样例:

3 2

输出样例:

在这里给出相应的输出。例如:

3 / 2 = 1
3 ÷ 2 = 1.5

解答:

#include <iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    double c = (double)a;
    double d = (double)b;
    cout<<a<<" / "<<b<<" = "<<a/b<<endl;
    cout<<a<<" ÷ "<<b<<" = "<<c/d<<endl;
    return 0;
}

7-4 Camp0204-关系运算符

作者 王和兴

单位 东北大学秦皇岛分校

给出两个整型变量a和b,利用关系运算符判断a与b之间的关系是否成立。

输入格式:

在一行中给出2个整数a和b。

输出格式:

请参考样例输出。
首先输出读入的变量的值,此后根据运算关系分为多行输出,如果关系成立,输出TRUE,否则输出FALSE。其中:
第一行输出a==b的判断结果。
第二行输出a!=b的判断结果。
第三行输出a>b的判断结果。
第四行输出a<b的判断结果。
第五行输出a≥b的判断结果。
第六行输出a≤b的判断结果。

输入样例:

3 2

输出样例:

a = 3, b = 2
a == b? FALSE
a != b? TRUE
a > b? TRUE
a < b? FALSE
a >= b? TRUE
a <= b? FALSE

解答:

#include <iostream>
using namespace std;
int main()
{
    int a, b;
    cin >> a >> b;
    cout << "a" << " = " << a << "," << " b" << " = " << b << endl;
    cout << "a == b? " << (a == b ? "TRUE" : "FALSE") << endl;
    cout << "a != b? " << (a != b ? "TRUE" : "FALSE") << endl;
    cout << "a > b? " << (a > b ? "TRUE" : "FALSE") << endl;
    cout << "a < b? " << (a < b ? "TRUE" : "FALSE") << endl;
    cout << "a >= b? " << (a >= b ? "TRUE" : "FALSE") << endl;
    cout << "a <= b? " << (a <= b ? "TRUE" : "FALSE");
    return 0;
}

7-5 Camp0205-逻辑运算符

作者 王和兴

单位 东北大学秦皇岛分校

给出三个整型变量a、b和c,判断下列的逻辑关系是否成立。
① a>b 且 b>c
② a<b 且 b>c
③ a>b 或 b>c
④ a>b 或 c>a
⑤ !a

输入格式:

在一行中给出3个整数a、b、c。

输出格式:

请参考样例输出。
首先输出读入的变量的值,此后根据运算关系分为多行输出,如果关系成立,输出TRUE,否则输出FALSE。

输入样例:

1 2 3

输出样例:

a = 1, b = 2, c = 3

   逻辑表达式      运算结果
-------------    --------
a > b 且 b > c     FALSE
a < b 且 b > c     FALSE
a > b 或 b > c     FALSE
a > b 或 c > a     TRUE
!a                 FALSE

解答:

#include <iostream>
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<"a"<<" = "<<a<<", "<<"b"<<" = "<<b<<", "<<"c"<<" = "<<c<<endl;
    cout<<endl;
    cout<<"   逻辑表达式      运算结果"<<endl;
    cout<<"-------------    --------"<<endl;
    cout<<"a > b 且 b > c     "<<(a>b&&b>c?"TRUE":"FALSE")<<endl;
    cout<<"a < b 且 b > c     "<<(a<b&&b>c?"TRUE":"FALSE")<<endl;
    cout<<"a > b 或 b > c     "<<(a>b||b>c?"TRUE":"FALSE")<<endl;
    cout<<"a > b 或 c > a     "<<(a>b||c>a?"TRUE":"FALSE")<<endl;
    cout<<"!a                 "<<(!a?"TRUE":"FALSE")<<endl;
    return 0;
}

7-6 Camp0206-判断字母大小写

作者 王和兴

单位 东北大学秦皇岛分校

判断用户输入的是大写字母还是小写字母。

输入格式:

输入一个英文字母。

输出格式:

输出该字母是大写字母还是小写字母。

输入样例:

G

输出样例:

字母G是大写字母。

 解答:

#include <iostream>
using namespace std;
int main()
{
    char ch;
    cin>>ch;
    if(ch>='A'&&ch<='Z')
    {
        cout<<"字母"<<ch<<"是大写字母。";
    }
    else{
        cout<<"字母"<<ch<<"是小写字母。";
    }
    return 0;
}

7-7 Camp0207-位运算符

作者 王和兴

单位 东北大学秦皇岛分校

给定两个整数a与b(其中0<b<10),请输出a与b进行 位与、位或、位异或、位左移、位右移运算及对a按位取反的结果。

输入格式:

在一行中输入两个整数a,b,以空格分隔。

输出格式:

请参考样例分为多行分别输出对应结果

输入样例:

8 5

输出样例:

8 & 5 = 0
8 | 5 = 13
8 ^ 5 = 13
8 << 5 = 256
8 >> 5 = 0
~8 = -9

 解答:

#include <stdio.h>
int main(void)
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d & %d = %d\n",a,b,a&b);
    printf("%d | %d = %d\n",a,b,a|b);
    printf("%d ^ %d = %d\n",a,b,a^b);
    printf("%d << %d = %d\n",a,b,a<<b);
    printf("%d >> %d = %d\n",a,b,a>>b);
    printf("~%d = %d\n",a,~a);
    return 0;
}

7-8 Camp0208-类型转换

作者 王和兴

单位 东北大学秦皇岛分校

将用户输入的float型数据的整数和小数部分分别输入。

输入格式:

输入一个float型的浮点数。

输出格式:

分为两行,第一行输出其整数部分,第二行输出其小数部分。

输入样例:

3.141593

输出样例:

在这里给出相应的输出。例如:

3
0.141593

解答:

#include <iostream>
using namespace std;
int main()
{
    float a;
    cin>>a;
    int b = (int)a;
    cout<<b<<endl;
    cout<<a-b<<endl;
    return 0;
}

7-9 Camp0209-下标运算符

作者 王和兴

单位 东北大学秦皇岛分校

请输出一个一维整型数组中指定下标的数组元素值。

输入格式:

输入分为3行。
第一行为n,表示接下来要输入的数组元素个数。
第二行为n个整数,以空格分隔。
第三行为一个下标值。

输出格式:

输出共一行,输出对应的元素的值。

输入样例:

5
1 2 3 4 5
3

输出样例:

4

 解答:

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n+1];
    int s;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    cin>>s;
    cout<<a[s]<<endl;
    return 0;
}

7-10 Camp0210-逗号表达式求值

作者 王和兴

单位 东北大学秦皇岛分校

C++通过逗号运算符和逗号表达式来支持灵活的编程需求。
通过对形如(表达式1, 表达式2, ….., 表达式n)的逗号表达式求值,能够在一条语句中顺序求解各个表达式的值,并将表达式n的值作为整个表达式的值。

现在对a=(b, c=2*b, d=b+c, e=d/2,f=b+c+d+e,g=f*10)这样一个逗号表达式求值,其中b的值为用户输入的整数,且所有表达式的运算结果均在整数范围内,现在请您在一行中输出指定表达式的值。

输入格式:

在一行中输入b值和指定的表达式序号,二者以空格分隔。如果序号为0则表示整个表达式的值。

输出格式:

在一行中输出指定表达式的值。

输入样例:

3 6

输出样例:

220

解答:

#include <iostream>
using namespace std;
int main()
{
    int a, b;
    int c, d, e, f, g;
    int n;
    cin >> b >> n;
    switch (n) {
        case 0:
        n=0;
        a = (b, c = 2 * b, d = b + c, e = d / 2, f = b + c + d + e, g = f * 10);
        cout << a << endl;
        break;
    case 1:
        n = 1;
        a = b;
        cout << a << endl;
        break;
    case 2:
        n = 2;
        a = (b, c = 2 * b);
        cout << a << endl;
        break;
    case 3:
        n = 3;
        a = (b, c = 2 * b, d = b + c);
        cout << a << endl;
        break;
    case 4:
        n = 4;
        a = (b, c = 2 * b, d = b + c, e = d / 2);
        cout << a << endl;
        break;
    case 5:
        n = 5;
        a = (b, c = 2 * b, d = b + c, e = d / 2, f = b + c + d + e);
        cout << a << endl;
        break;
    case 6:
        n = 6;
        a = (b, c = 2 * b, d = b + c, e = d / 2, f = b + c + d + e, g = f * 10);
        cout << a << endl;
        break;
    default:
        break;
    }
    return 0;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值