ACM基础训练题库(含详细答案解析)_第1页
ACM基础训练题库(含详细答案解析)_第2页
ACM基础训练题库(含详细答案解析)_第3页
ACM基础训练题库(含详细答案解析)_第4页
ACM基础训练题库(含详细答案解析)_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ACM基础训练题库(含详细答案解析)本套题库为入门级ACM训练真题,涵盖语法基础、模拟、字符串、简单贪心、基础数学、数组遍历等高频考点,适配新手集训、校赛入门练习。所有题目均附标准输入输出样例、详细解题思路、可直接提交的AC代码,无特殊偏难考点,贴合日常竞赛刷题场景。题目一:整数求和题目描述给定两个整数a和b,计算并输出两个整数的和。输入格式一行输入两个整数a、b,数据范围:-1000≤a,b≤1000输出格式输出一个整数,为两数之和样例输入1235样例输出47解题思路本题为ACM最基础的输入输出题型,核心考察标准输入读取、整数运算、结果输出能力。只需读取两个整型数据,执行加法运算后直接输出结果即可,无需复杂判断和算法逻辑,注意兼容负数输入场景。AC代码(C++)PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

inta,b;

cin>>a>>b;

cout<<a+b<<endl;

return0;

}题目二:奇偶判断题目描述输入一个正整数n,判断该数是奇数还是偶数,偶数输出even,奇数输出odd。输入格式单行输入一个正整数n,1≤n≤10000输出格式根据判断结果,单独输出even或odd(小写英文)样例输入18样例输出1even样例输入29样例输出2odd解题思路利用取模运算判断奇偶性,整数对2取模,余数为0则为偶数,否则为奇数。本题重点考察分支判断语句的使用,注意输出字符串严格区分大小写,必须完全按照题目要求输出小写单词。AC代码(C++)PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intn;

cin>>n;

if(n%2==0)

{

cout<<"even"<<endl;

}

else

{

cout<<"odd"<<endl;

}

return0;

}题目三:最大值筛选题目描述输入三个整数,找出并输出其中的最大数值。输入格式一行输入三个整数,数据范围:-10000≤数值≤10000输出格式输出一个整数,为三个数中的最大值样例输入12-536样例输出36解题思路基础多条件判断题型,可通过两两比较的方式筛选最大值。先定义变量存储最大值,依次和三个数对比更新,也可直接使用多分支判断。需考虑负数、重复数值等特殊测试用例,保证代码兼容性。AC代码(C++)PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

inta,b,c,maxn;

cin>>a>>b>>c;

maxn=a;

if(b>maxn)maxn=b;

if(c>maxn)maxn=c;

cout<<maxn<<endl;

return0;

}题目四:字符串长度统计题目描述输入一串无空格的字符串,统计并输出字符串的字符个数。输入格式单行输入一个字符串,仅包含大小写字母、数字,无空格输出格式输出一个整数,为字符串长度样例输入ACM123样例输出6解题思路考察字符串基础操作,C++中可直接使用string类型的length()或size()方法获取字符长度,无需手动遍历计数。注意题目限定字符串无空格,直接读取整体字符串即可,无需特殊处理输入分隔问题。AC代码(C++)PlainText

#include<iostream>

#include<string>

usingnamespacestd;

intmain()

{

strings;

cin>>s;

cout<<s.length()<<endl;

return0;

}题目五:阶乘计算题目描述输入一个非负整数n,计算n的阶乘。规定0的阶乘为1。输入格式单行输入一个整数n,0≤n≤12输出格式输出一个整数,为n的阶乘结果样例输入10样例输出11样例输入25样例输出2120解题思路阶乘定义:n!=1*2*3*...*n,特殊值0!=1。本题考察循环语句的使用,通过循环累乘计算结果。数据范围n≤12,结果不会超出int整型范围,无需使用高精度运算,直接循环计算即可。AC代码(C++)PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intn;

longlongans=1;

cin>>n;

for(inti=1;i<=n;i++)

{

ans*=i;

}

cout<<ans<<endl;

return0;

}题目六:数组求和题目描述先输入一个整数n代表数组元素个数,再输入n个整数,计算并输出所有元素的总和。输入格式第一行:一个整数n(1≤n≤100)第二行:n个整数,用空格分隔输出格式输出数组所有元素的累加和样例输入410203040样例输出100解题思路考察数组遍历与循环累加逻辑。首先读取元素个数,再循环读取每一个数组元素,逐个累加至总和变量中,最终输出结果。本题是数组基础遍历的经典题型,是后续区间求和、最值统计题型的基础。AC代码(C++)PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intn,sum=0,x;

cin>>n;

for(inti=0;i<n;i++)

{

cin>>x;

sum+=x;

}

cout<<sum<<endl;

return0;

}题目七:回文字符串判断题目描述输入一个无空格字符串,判断该字符串是否为回文字符串。正读和反读完全一致即为回文,是则输出YES,否则输出NO。输入格式单行输入一个字符串,仅包含小写字母输出格式输出大写YES或NO样例输入1abba样例输出1YES样例输入2abc样例输出2NO解题思路核心思路:双指针比对。设置首尾两个指针,依次比对对应位置字符,若所有字符均相等则为回文,存在不等字符则不是。循环比对至中间位置即可,无需完整遍历,节省运算开销。AC代码(C++)PlainText

#include<iostream>

#include<string>

usingnamespacestd;

intmain()

{

strings;

cin>>s;

intl=0,r=s.size()-1;

boolflag=true;

while(l<r)

{

if(s[l]!=s[r])

{

flag=false;

break;

}

l++;

r--;

}

if(flag)cout<<"YES"<<endl;

elsecout<<"NO"<<endl;

return0;

}题目八:闰年判断题目描述输入一个年份,判断该年份是否为闰年。闰年规则:能被4整除且不能被100整除,或能被400整除的年份。是闰年输出yes,否则输出no。输入格式单行输入一个正整数年份输出格式输出小写yes或no样例输入12024样例输出1yes样例输入22000样例输出2yes样例输入31900样例输出3no解题思路严格按照闰年判定逻辑编写条件语句,两个满足条件二选一即可:1、年份能被4整除且不能被100整除;2、年份能被400整除。本题重点考察多条件逻辑运算的组合使用,需准确区分普通闰年和世纪闰年的规则。AC代码(C++)PlainText

#include<iostream>

usingnamespacestd;

intmain()

{

intyear;

cin>>year;

if((year%4==0&&year%100!=0)||(year%400==0))

{

cout<<"yes"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论