首页 > 编程语言 >C++U2-第12课-单元测评(二)

C++U2-第12课-单元测评(二)

时间:2023-11-12 19:46:28浏览次数:42  
标签:main 12 定义 int s1 C++ U2 using include

上节课作业部分(点击跳转)

单元测评2题目和答案解析

1、

 

2、

 

 3、不定长数组,不允许不初始化列,可以不初始化行;

 

 4、比较常见的字符的ASCII码,空格为32,字符0为48,大写字母A为65,小写字母a为97

 

 5、abs为绝对值函数,正数的绝对值是本身,负数的绝对值为相反数,ceil表示向上取整7

 

 6、值传递和引用传递,值传递形参的改变不会改变实参,引用传递形参的改变会改变实参8

 程序阅读题1:第一行输出的是字符串s1,注意是遍历输出字符串s1,每输出一个字符后后面还输出了一个空格,所以第一个选D 第二个考察的是string中的+表示拼接,首先s1=s1+s2,表示将s2拼接到s1后,结果赋值给s1,s1为abcabc,然后s1+=s2也是同样的效果,在s1为abcabc的基础上再拼接abc,结果为abcabcabc9

 程序阅读题2:注意输入的两行三列的二维数组是从下标1开始存放的,但输出是从0开始输出10

 

 编程题1、

解析:先获取最后一个字符保存到新字符串,再遍历原字符串每个字符加到新字符串后面,遍历到倒数第2个就可以啦;然后正序输出;

#include <iostream>
using namespace std;

int main(){
    string s;
    cin >> s;
    string ans;
    ans += s[s.size() - 1];
    for (int i = 0; i < s.size() - 1; i++) {
        ans += s[i];
    }
    cout << ans;
    return 0;
}
View Code

 

 2、

 

定义变量n存储边长
外层循环控制正方形的行数
内层循环控制正方形的列数
每一行结束要换行

#include <iostream>
using namespace std;

int main() {
    //定义变量n存储边长
    int n;
    cin >> n;
    //外层循环控制正方形的行数
    for (int i = 1; i <= n; i++) {
        //内层循环控制正方形的列数
        for (int j = 1; j <= n; j++) {
            cout << '&';
        }
        //每一行结束要换行
        cout << '\n';
    }
    return 0;
}
View Code

 

3、

二维数组
解析:如图

#include <iostream>
using namespace std;

int a[109][109],b[109][109];
int main(){
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            cin >> a[i][j];
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            b[i][j] = b[i][j - 1] + a[i][j];
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            cout << b[i][j] << " ";
        }
        cout << "\n";
    }
    return 0;
}
View Code

 

4、

 

解析
定义变量a,b,c存储3个实数并输入

定义一个函数,用来求三个实数中的最大值

调用函数计算式子的结果并保留两位小数输出

#include<iostream>
using namespace std;
//定义一个函数,用来求三个实数中的最大值
double maxx(double a,double b,double c){
    double mx = a;
    if(b >= a) mx = b;
    if(c >= mx) mx = c;
    return mx;
}
int main(){
    //定义变量a,b,c存储3个实数并输入
    double a,b,c;
    cin >> a >> b >> c;
    //调用函数计算式子的结果并保留两位小数输出
    printf("%.2f",maxx(a,b,c)/(maxx(a+b,b,c)*maxx(a,b,b+c)));
    return 0;
}
View Code

 

 

 

 

上节课作业部分:

1、[【字符串】宝石与石头]

解析
【题意分析】
输入两个字符串,一个为宝石类型,一个为拥有的石头类型,求拥有的宝石的数量。

【思路分析】
1、定义变量,输入两个字符串

2、遍历手中的石头,判断是否为宝石,循环嵌套

​ 1、外循环为拥有的石头,内循环为宝石的种类

3、输出答案,拥有的宝石数量

【参考代码】
#include<iostream>
#include<string>
using namespace std;
int main()
{
    //1、定义变量,输入两个字符串 
    string s,t;
    int sum = 0;  //统计拥有的宝石的数量 
    cin >> s >> t;  
    //2、遍历手中的石头,判断是否为宝石,循环嵌套 
    for(int i = 0; i < t.size(); i++)   //手中拥有的石头 
    {
        for(int j = 0; j < s.size(); j++)  //宝石的类型 
        {
            if(t[i] == s[j])
                sum++;
        }
    }
    //3、输出答案,拥有的宝石数量
    cout << sum;
    return 0;
}
View Code

2、[【数学】列车到达时间]

【思路分析】
1、定义变量,输入

2、实际到达的时间 = (到达时间 + 延误时间) % 24

【参考代码】
#include<iostream>
using namespace std;
int main()
{
    //1、定义变量,输入
    int arr , del;
    cin >> arr >> del; //到达时间  延误时间
    //2、实际到达的时间 = (到达时间 + 延误时间)%24
    cout << (arr + del) % 24; 
    return 0;
}
View Code

3、【双重循环】三元组]

【思路分析】
1、定义变量,输入

2、双层循环,枚举 a 和 b

3、根据 a 和 b,得出 c

4、判断 c 是否符合题意,需满足 a * a + b * b = c * c 且 c 小于等于 n

【参考代码】
#include<iostream>
#include<cmath> 
using namespace std;
int main()
{
    //1、定义变量,输入
    int n , a , b , c , sum=0;
    cin >> n;
    //2、枚举 a 和 b 
    for(int i = 1; i <= n; i++)  //a
    { 
        for(int j = 1; j <= n; j++)  //b
        {
            //3、根据 a 和 b,得出 c
            a = i;
            b = j;
            c = sqrt(a * a + b * b);
            //4、判断 c 是否符合题意 
            if(c * c == a * a + b * b && c <= n)
                 sum++ ;     
        }
    }
    cout << sum; //数目 
    return 0;
}
View Code

1、[【循环的应用】螺旋矩阵]

【思路分析】
1、定义变量,输入

2、由内到外递增,看成由外到内递减

3、重复螺旋状

4、每一圈四个方向构成,分别为下 左 上 右

​ 4.1、 向下移动,在变动的是行,从第 l 行到第 r 行

​ 4.2、向左移动,在变动的是列,从第 r-1 列到第 l 列

​ 4.3、向上移动,在变动的是行,从第 r-1 行到第 l 行

​ 4.4、向右移动,在变动的是列,从第 l+1 列到第 r-1 列

5、一圈结束后,往内部继续螺旋

​ 5.1、样例,第一圈的起点为25,第二圈的起点为9,第三圈的起点为1

【参考代码】
#include <bits/stdc++.h>
using namespace std;
int a[105][105], n;
int main()
{
    //1、定义变量,输入 
    cin >> n;
    //2、由内到外递增,看成由外到内递减  
    int l = 1, r = n, cnt = n * n;  //起点坐标(l,r)
    //3、重复螺旋状 
    while (l <= r)
    {
        //4、每一圈四个方向构成,分别为下 左 上 右 
        //4.1、 向下移动,在变动的是行,从第 l 行到第 r 行 
        for (int i = l; i <= r; i++)
        {
            a[i][r] = cnt--;
        }
        //4.2、向左移动,在变动的是列,从第 r-1 列到第 l 列 
        for (int i = r - 1; i >= l; i--)
        {
            a[r][i] = cnt--;
        }
        //4.3、向上移动,在变动的是行,从第 r-1 行到第 l 行
        for (int i = r - 1; i >= l; i--)
        {
            a[i][l] = cnt--;
        }
        //4.4、向右移动,在变动的是列,从第 l+1 列到第 r-1 列  
        for (int i = l + 1; i <= r - 1; i++)
        {
            a[l][i] = cnt--;
        }
        //5、一圈结束后,往内部继续螺旋
        //5.1、样例,第一圈的起点为25,第二圈的起点为9,第三圈的起点为1 
        l++, r--; 
    }

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            printf("%8d",a[i][j]);
        }
        cout << "\n";
    }
    return 0;
}
View Code

 

标签:main,12,定义,int,s1,C++,U2,using,include
From: https://www.cnblogs.com/jayxuan/p/17827639.html

相关文章

  • 11月12日基础的网页设计以及阴影的设计box-shadow属性
    目录基础的网页设计html的代码css的代码阴影效果添加基础的网页设计html的代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>今天网页</title><linkrel="stylesheet"href="样式.css"......
  • c++ lambda表达式
    一、lambda语句介绍在cppreference中对lambda的解释是:一个能够捕获作用域中变量的未命名函数对象个人认为就是一个用于快速定义一个匿名函数的语句使用格式1.capture子句,lambda的核心,通过改变[]中的值,来设定捕获的范围2.参数列表,可选,用于确定捕获参数的类型3.mutable,可选......
  • Ubuntu22.04 安装nvm
    介绍本文记录了Ubuntu22.04上安装nvm的步骤,一并记录下过程中遇到的问题。操作步骤1、在github找到nvm的master分支,复制install.sh脚本的内容,粘贴至本地。打开以下链接,把install.sh的脚本搬运到Ubuntu上。https://github.com/nvm-sh/nvm/blob/master/install.sh在ubuntu上执行......
  • openGauss学习笔记-121 openGauss 数据库管理-设置密态等值查询-使用JDBC操作密态数据
    openGauss学习笔记-121openGauss数据库管理-设置密态等值查询-使用JDBC操作密态数据库121.1连接密态数据库连接密态数据库需要使用驱动包gsjdbc4.jar,具体JDBC连接参数参考基于JDBC开发章节介绍。JDBC支持密态数据库相关操作,需要设置enable_ce=1,示例如下。publicstaticConne......
  • 11.12日记
    度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念“资源容器”(ResourceContainer,简称Container)表示,Container是一个动......
  • C++ 内存分区
    C/C++内存管理C/C++内存分布转载https://www.coonote.com/note/cpp-memory-management.htmlC/C++程序内存分配的几个区域:栈区(stack)在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集......
  • 2023.11.12——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.mybatis明日计划:学习......
  • debian12 安装ch343驱动
    前言最近心血来潮,装了一台debian12玩,安装完毕arduino后发现没有ch343驱动,倒是在ls/lib/modules/6.1.0-13-amd64/kernel/drivers/usb/serial/找到了ch341.ko,现在尝试自己安装ch343驱动正文安装过程主要参考了这篇博客:CH342/CH343/CH344/CH347/CH9101/CH9102/CH9103/CH910......
  • 212-c# url下载pdf,url请求,有参数,且携带cookies
    usingSystem;usingSystem.Net;usingSystem.Net.Http;usingSystem.Net.Http.Headers;usingSystem.Threading.Tasks;classProgram{staticvoidMain(){//设置要下载的PDF文件的URLstringpdfUrl="https://example.com/path/to/your/pdf......
  • 11月12日基础的网页设计以及阴影的设计box-shadow属性
    目录基础的网页设计html的代码css的代码基础的网页设计html的代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>今天网页</title><linkrel="stylesheet"href="样式.css">&......