0
点赞
收藏
分享

微信扫一扫

C++二级2021年9月试卷及答案

新鲜小饼干 2024-11-06 阅读 9
c++二级

1.满足条件的数累加

int main()
{
    int m,n,sum=0;
    int i;
 
    cin>>m>>n;//输入m、n
    for(i=m; i<=n; i++) //在区间内循环
        if(i%17==0)//满足条件
            sum+=i;//累加
 
    cout<<sum<<endl;
    return 0;
}

2.统计字符数

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main() {
	int cnt[26];
	int max=0;
	int len;
	char str[1010];//字符串
	char ch;
	memset(str,0,sizeof(str));//清零
	memset(cnt,0,sizeof(cnt));//清零
	gets(str);//获取字符串 
	len=strlen(str);//获取长度 
	for(int i=0; i<len; i++) {//计数 
		cnt[str[i]-'a']++;//把计数器此字符的ASCII码-a的ASCII的那一项加一 
	}
	for(int i=0; i<26; i++) {//找最大值 
		if(cnt[i]>max) {//用大于号做判断不用考虑输出ASCII小的那个,用大于等于就需要考虑 
			ch=(char)i+'a';//i+a的ASCII转成字符保存 
			max=cnt[i]; 
		}
	}
	cout<<ch<<" "<<max; //输出出现次数最多的字符和该字符出现的次数
	return 0;
}

3.替换单词

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int flag = 0;
    string s,a,b;
    vector<string>words;  //用来保存各个单词
    vector<string>switch;  //用来保存各个单词
    getline(cin,s);  //为了接受一行带空格的字符串
    cin>>a>>b;
    //将s中的单词提取到words
    for(int i=0,j=0;i<s.size();++i){
        if(s[i]!=' ')               
            words[j] += s[i];
        else{
            ++j;
        }
 }
    for(int i=0;i<words.size();++i)
    {  //找到第一个要替换的单词并替换
        if((0 == strcmp(words[i],a)) &&(0 == flag))
        {
            switch.push(b);
            flag++
        }//将单词放到switch
        else
        {
            switch.push(words[i]);
        }
    }
    for(int i=0;i<switch.size();++i)
        {  //输出
        cout<<switch[i]<<" ";
    }
    return 0;
}

4.偶数降序输出

#include<bits/stdc++.h>
using namespace std;
const int N = 100;
int a[N];
bool cmp(int num1,int num2){
	return num1 >= num2;
}
main(){
	int n,t;
	int j=0; 
	
	cin>>n;
	for(int i = 0;i<n;i++){
		cin>>a[i];
	}
	
	for(int i=0;i<n;i++){
		if(a[i] % 2 == 0){
			t = a[i];
			a[j++] = t;
		}
	}
	sort(a,a+j,cmp);
	for(int i=0;i<j;i++){
		cout<<a[i]<<" ";
	}
	cout<<endl;
}

5.图像处理

#include<bits/stdc++.h>
using namespace std;
int a[1001][1001],n,m,i,j;
double b[1001][1001];
int main() {
	cin>>n>>m;
	for(i=1; i<=n; i++) {
		for(j=1; j<=m; j++) {
			cin>>a[i][j];
			b[i][j]=a[i][j];
		}
	}
	for(i=2; i<n; i++) {
		for(j=2; j<m; j++)
			b[i][j]=round(a[i-1][j]+a[i][j-1]+a[i+1][j]+a[i][j+1]+a[i][j])/5.0;
	}
	for(i=1; i<=n; i++) {
		for(j=1; j<=m; j++)
			printf("%.0lf ",b[i][j]);
		printf("\n");
	}
	return 0;
}

举报

相关推荐

0 条评论