pta c++ week1

1.使用提取符(<<)可以输出各种基本数据类型的变量的值,也可以输出指针值 T

2.预定义的插入符从键盘上接收数据是不带缓冲区的。 T

3.有代码如下:

int n;
string s;
cin>>n;
getline(cin, s);
cout<<s.size()<<endl;

则在输入以下数据后得到结果是( )。 ans:0

1
Hello World

 4.下列表达错误的是( ) ans:B

A.cout<<setw(5)

B.cout<<fill('#')

C.cout.setf(ios::uppercase)

D.cin.fill("#")

5.本题要求实现一个函数,获取从键盘连续输入的两个字符和一个整数。 注意:空格和换行都可以作为有效字符被接收

ans:

#include<iostream>

using std::cin;

using std::cout;

using std::endl;

void input(char* c1, char* c2, int* i);

int main()

{

   char ch1, ch2;

   int i;

   input(&ch1, &ch2, &i);

   cout << ch1 << endl << ch2 << endl <<  i << endl;

   return 0;

}

void input(char* c1, char* c2, int* i)

{

    cin.get(*c1);           //这里有*

    cin.get(*c2);

    cin >> *i;

}

7.本题要求实现一个函数,获取从键盘输入的字符串,以‘#’作为字符串输入的结束。获取的字符串的字符个数不超过19个。

#include<iostream>

void input(char* s);

int main()

{

   char str[20];

   input(str);

   std::cout << str << std::endl;

   return 0;

 }

void input(char* s)

{

      std::cin.getline(s, 20, '#');

}

8.输入一个长度不超过50的由小字字母构成的字符串,输出由这个字符序列构成的最大的正方形。

#include<iostream>

#include<string>

using namespace std;

int main()

{

    string str;                   

    int side, row(1);           

    cin >> str;                   

    side = str.length() / 4 + 1;     //竟然可以直接str.length  

    for(int i=0; i<side; i++)   

        cout << str[i];

    if(side > 1)                   

    {

        cout<<endl;

        for(; row<side-1; row++)

        {

            cout << str[(side - 1) * 4 - row];

            for(int k=0; k<side-2; k++)

                cout << ' ';

            cout << str[(side - 1) + row] << endl;

        }

        for(int i=0; i<side; i++)

            cout << str[(side - 1) * 3 - i];

    }

    return 0;

}

9.

从键盘输入一个数作为正五边形的边长,计算并输出该正五边形的周长和面积。

计算正五边形的面积公式为: S=a2×25+10×5​​/4

#include<iostream>

#include<math.h>

#include <iomanip>

using namespace std;

int main()

{

    float size;

    float length,area;

    cin >> size;

    length = 5 * size;

    area = size * size * sqrt(25 + 10 * sqrt(5)) / 4;

    cout << setprecision(6) << area << endl;

    cout << length << endl;

    return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值