L3-看程序写结果 题型分析及题库
送分题一道:
c字符题目一道:
关于字符与数字之间的转换的:
-32 +48 这类字眼估计经常出现;
配合一定的判断条件 要格外注意不要走神
数组一道:
估计各种循环+跳转,数组的值各种变换,排序啥的
以不变应万变
大概率是整型数组,也可能出现字符数组,二维数组等
函数/结构体/递归等一道:
没啥好说的,加油吧!
下面进入我们的专项练习课,每四道题讲解一次,做题时间:40分钟;
1.
#include<iostream>
using namespace std;
int main()
{
int i,n,m,ans;
cin>>n>>m;
i=n;
ans=0;
while(i<=m){
ans+=i;
i++;
}
cout<<ans<<endl;
return 0;
}
输入:10 20
输出:_________
2.
#include<iostream>
#include<string>
using namespace std;
int main()
{
string map= "2223334445556667778889999";
string tel;
int i;
cin>>tel;
for(i=0;i<tel.length();i++)
if((tel[i]>='0') && (tel[i]<='9') )
cout<<tel[i];
else if( (tel[i]>='A') && (tel[i]<='Z'))
cout<<map[tel[i]-'A'];
cout<<endl;
return 0;
}
输入:CCF-NOIP-2011
输出:_______________
3.
#include<iostream>
#include<cstring>
using namespace std;
const int SIZE = 100;
int main()
{
int n,i,sum,x,a[SIZE];
cin>>n;
memset(a,0,sizeof(a));
for(i=1;i<=n;i++){
cin>>x;
a[x]++;
}
i=0;
sum=0;
while(sum<(n/2+1)){
i++;
sum+=a[i];
}
cout<<i<<endl;
return 0;
}
输入:
11
4 5 6 6 4 3 3 2 3 2 1
输出:
4.
#include<iostream>
using namespace std;
int solve(int n,int m)
{
int i,sum;
if(m==1) return 1;
sum=0;
for(i=1;i<n;i++)
sum+= solve(i,m-1);
return sum;
}
int main()
{
int n,m;
cin>>n>>m;
cout<<solve(n,m)<<endl;
return 0;
}
输入:7 4
输出:_________
1.#include<iostream>
using namespace std;
void swap(int &a,int &b){ int t;t=a;a=b;b=t;}
int main(){
int a1,a2,a3,x;
cin>>a1>>a2>>a3;
if(a1>a2) swap(a1,a2);
if(a2>a3) swap(a2,a3);
if(a1>a2) swap(a1,a2);
cin>>x;
if(x<a2)
if(x<a1) cout<<x<<' '<<a1<<' '<<a2<<' '<<a3<<endl;
else cout<<a1<<' '<<x<<' '<<a2<<' '<<a3<<endl;
else
if(x<a3) cout<<a1<<' '<<a2<<' '<<x<<' '<<a3<<endl;
else cout<<a1<<' '<<a2<<' '<<a3<<' '<<x<<endl;
return 0;
}
输入:
91 2 20
77
输出:
2.#include<iostream>
using namespace std;
int rSum(int j)
{
int sum=0;
while(j!=0)
{
sum=sum*10+(j%10);
j=j/10;
}
return sum;
}
int main()
{
int n,m,i;
cin>>n>>m;
for(i=n;i<m;i++)
if(i==rSum(i))
cout<<i<<' ';
return 0;
}
输入:90 120
输出:_______________
3.#include<iostream>
#include<string>
using namespace std;
int main(){
string s;int i;char m1,m2; m1=' ';m2=' ';
getline(cin,s);
for(i=0;i<s.length();i++)
if(s[i]>m1){
m2=m1;m1=s[i];
}
else if(s[i]>m2)
m2=s[i];
cout<<int(m1)<<' '<<int(m2)<<endl;
return 0;
}
输入:Expo 2010 Shanghai China
输出:______________
字符 |
空格 |
'0' |
'A' |
'a' |
ASII码 |
32 |
48 |
65 |
97 |
4.#include<iostream>
using namespace std;
const int NUM=5;
int r(int n)
{
int i;
if(n<=NUM) return n;
for(i=1;i<=NUM;i++)
if(r(n-i)<0)
return i;
return -1;
}
int main(){
int n;cin>>n;
cout<<r(n)<<endl;
return 0;
}
(1)输入:7
输出: (4分)
(2)输入:16
输出: (4分)
1.#include <iostream>
using namespace std;
int a,b;
int work(int a,int b){
if (a%b)
return work(b,a%b);
return b;
}
int main(){
cin >> a >> b;
cout << work(a,b) << endl;
return 0;
}
输入:20 12
输出:_______