seo发展现状,滁州做网站优化,招聘网站建设策划书,盘锦949公社最新招聘2023年第15届12月STEMA 一、选择题1. 定义字符串 string a “Hello C”#xff0c;下列选项可以获取到字符 ‘C’ 的是#xff08; #xff09;。2. 下列选项中数值与其它项不同的是#xff08; #xff09;。3. 定义变量 int i 0, a#xff0c;执行表达式 a --i 后 “Hello C”下列选项可以获取到字符 ‘C’ 的是 。2. 下列选项中数值与其它项不同的是 。3. 定义变量 int i 0, a执行表达式 a --i 后i 和 a 的值分别是 。4. 定义数组 int a[10] {4, 6, 1, 3, 8, 7, 2, 9, 0, 5}那么 *(a 5) 的值是 。5. 执行以下程序输出的结果是 。 二、编程题1. 求和2. 数位和为偶数的数3. 填涂颜色4. 外观数列5. 删除数字 一、选择题
1. 定义字符串 string a “Hello C”下列选项可以获取到字符 ‘C’ 的是 。
A.a[7] B.a[6] C.a[5] D.a[4]
答案B
2. 下列选项中数值与其它项不同的是 。
A.(1234)5 B.(302)8 C.(11000100)2 D.(c2)16 答案C
3. 定义变量 int i 0, a执行表达式 a --i 后i 和 a 的值分别是 。
A.-1、0 B.0、-1 C.-1、-1 D.0、0 答案C
4. 定义数组 int a[10] {4, 6, 1, 3, 8, 7, 2, 9, 0, 5}那么 *(a 5) 的值是 。
A.7 B.8 C.2 D.9 答案A
5. 执行以下程序输出的结果是 。
int func( int x, int y, int z )
{if( x 1 || y 1 || z 1 ) return 1;if( x y x z )return func( x, y - 1, z ) func( x, y, z - 1 ); if( y x y z )return func( x - 1, y, z ) func( x, y, z - 1 );return func( x - 1, y, z ) func( x, y - 1, z );
}
int main()
{cout func( 3, 3, 2 );return 0;
}A.5 B.6 C.7 D.8 答案B
二、编程题
1. 求和
题目描述 给定 n 个整数请计算出所有大于等于 10 的整数之和。 例如n 55 个整数分别为 10、20、4、30、9其中大于等于 10 的整数有 10、20、30它们的和为 6010 20 30。 输入描述 共两行 第一行输入一个整数 n1≤n≤1000 第二行输入 n 个整数 Pi1≤Pi≤100整数之间以一个空格隔开输出描述输出一个整数表示所有大于等于 10 的整数之和 样例输入 5 10 20 4 30 9 样例输出 60
#include bits/stdc.h
using namespace std;
int main() {int n, s 0;cin n;for (int i 1, x; i n; i) {cin x;if (x 10)s x;}cout s;return 0;
}2. 数位和为偶数的数
提示信息 偶数能被 2 整除的数。 数位和一个整数中所有数位上的数字之和。 例如整数 123数位和是 61 2 3。
题目描述 给定一个整数 n请找出 1 到 n 之间包含 1 和 n所有数位和为偶数的整数。 例如n 151 到 15 之间的整数为1、2、3、4、5、6、7、8、9、10、11、12、13、14、15数位和依次为1、2、3、4、5、6、7、8、9、1、2、3、4、5、6 数位和为偶数的是2、4、6、8、11、13、15。
输入描述 输入一个整数 n2≤n≤1000
输出描述 一行输出若干个整数表示 1 到 n 之间包含 1 和 n所有数位和为偶数的数并按照从小到大的顺序依次输出整数之间以一个空格隔开
样例输入 15
样例输出 2 4 6 8 11 13 15
#include bits/stdc.h
using namespace std;
int main() {int n;cin n;for (int i 1, x, y; i n; i) {x i;y 0;while (x) {y x % 10;x / 10;}if (y % 2 0)cout i ;}return 0;
}3. 填涂颜色
题目描述 给定一个由 n 行 m 列的小方格组成的矩阵图形接下来对该图形进行如下操作1、先选择其中 x 行将其填成黄色2、再选择其中 y 列将其填成黄色填色完成后请统计出有多少个小方格未被填色。
例如矩阵图形由 4 行 5 列的小方格组成先选择第 2、4 行将其填色再选择第 1、3、5 列将其填色。
填色完成后有 4 个小方格未被填色。 输入描述 共三行 第一行输入 4 个整数 nmxy分别表示矩阵的行数和列数以及选择填色的行数和列数 1≤x≤n≤100001≤y≤m≤10000整数之间以一个空格隔开 第二行输入 x 个不同的整数1≤整数≤n表示被填色的行号整数之间以一个空格隔开 第三行输入 y 个不同的整数1≤整数≤m表示被填色的列号整数之间以一个空格隔开 输出描述 输出一个整数表示填色完成后未被填色的小方格数量
样例输入 4 5 2 3 2 4 1 3 5
样例输出 4
#include bits/stdc.h
using namespace std;int main() {int n,m,x,y,a[10001];cin n m x y;for(int i1;ix;i) cin a[i];for(int i1;iy;i) cin a[i]; coutn*m-x*m-y*nx*y;return 0;
}#include bits/stdc.h
using namespace std;int arr[101][101]{0};
int main() {// 1、输入数据。// n行、m列、填充x行、填充y行、a用于循环输入行数或列数 int n,m,x,y,a,cnt0;cin n m x y;// 2、填充行 for(int i1;ix;i){cin a;for(int j0;jm;j){arr[a-1][j]1;}}// 3、填充列 for(int i1;iy;i){cin a;for(int j0;jm;j){arr[j][a-1]1;}} // 4、计算数量 for(int i0;in;i){for(int j0;jm;j){if(arr[i][j] 0){cnt; }}}coutendlcntendl;return 0;
}4. 外观数列
提示信息
外观数列是一个整数序列给定该数列的第一项数据之后从第二项开始每一项都是对前一项数据的描述。
例如
给定外观数列的第一项为 1
接下来第二项是对第一项数据的描述即“一个 1”记作 11
第三项是对第二项数据的描述即“两个 1”记作 21
第四项是对第三项数据的描述即“一个 2一个 1”记作 1211
第五项是对第四项数据的描述即“一个 1一个 2两个 1”记作 111221以此类推…
题目描述
给定外观数列的第一项 x 以及一个整数 n请计算出该外观数列第 n 项的值。
例如x 2n 3外观数列为
2
12
1112
3112
132112
…
外观数列第 3 项为 1112。
输入描述
输入两个整数 x1≤x≤100和 n1≤n≤30
输出描述
输出一个整数表示外观数列第 n 项的值
样例输入
2 3
样例输出
1112
#include bits/stdc.h
using namespace std;int main() {string s,new_s;int n,cnt;cin s n;for(int i2;in;i){cnt1;new_s.clear();for(int j0;js.size();j){if(s[j]s[j1]){cnt;}else{new_s cnt0;new_s s[j];cnt1;}}snew_s;}coutsendl;return 0;
}5. 删除数字
题目描述
老师在黑板上写了一个不超过 500 位的正整数 n1≤n10500要求同学们删除其中任意 k 个数字 剩余数字的顺序不变希望得到的数最大。
例如n 69134k 2从 69134 中删除 2 个数字将第一位 6 和第三位 1 删除得到的新数 934 是最大的。
输入描述
输入两个整数 n 和 k1≤n105000≤kn的位数整数之间以一个空格隔开
输出描述
输出一个整数表示删除 k 个数字后得到的最大数
样例输入
69134 2
样例输出
934
#include bits/stdc.h
using namespace std;int main(){ string n;int k;cin n k;for(int i1;ik;i){ // 遍历K次要删除K个数字int flag1;for(int j1;jn.size();j){ // 从第2个数字开始比如果这个数字 小于 后面的数字那么删除这个小的数字 if(n[j-1] n[j]){n.erase(j-1,1);flag0;break;} } if(flag){ // 如果一直到最后一个数字都是当前数字 大于 后面的数字那么删除最后一个数字 n.erase(n.size()-1,1);}}coutn;return 0;
} #include bits/stdc.h
using namespace std;int main() {string s;int k;cin s k;s9;for(int i1;ik;i){ // 要删除K个数字重复执行k次 for(int j0;js.size();j){ // 从头开始遍历遍历k次 if(s[j]s[j1]){ // 如果当前这个数字 小于 它后面的数字则删除并结束循环 s.erase(j,1);break;}} }s.erase(s.size()-1,1);couts;return 0;
}