当前位置: 首页 > news >正文

中学加强校园网站建设郑州网站建设企业推荐

中学加强校园网站建设,郑州网站建设企业推荐,三明seo,注册公司注册地址怎么弄目录 前言#xff1a;临近期末#xff0c;接下来给大家分享一些经典的编程题#xff0c;方便大家复习。不一定难#xff0c;但都是入门的好题#xff0c;尽可能的吃透彻。因为据说期末考试的题很多来自pta上面的原题。 对于一些语言我是用c来写的#xff0c;不妨碍理解…目录 前言临近期末接下来给大家分享一些经典的编程题方便大家复习。不一定难但都是入门的好题尽可能的吃透彻。因为据说期末考试的题很多来自pta上面的原题。 对于一些语言我是用c来写的不妨碍理解大家把cingetline看作是c语言中的scanf把cout 看作是c语言中的printf 把#include看作是c的头文件。 循环 第一题求满足条件的斐波拉契数 第二题求n以内最大k个素数以及他们的和 第三题英文字母替换加密 第四题查验身份证 数组 第一题 第二题字符串字母大小写转换​编辑 第三题统计一行文本的单词个数 第四题求整数序列中出现次数最多的数 第五题交换最小值和最大值 第六题求矩阵各行元素之和 函数 第一题杨辉三角形 第二题歌词比赛打分 第三题数据排序 第四题近似求PI 第五题哥德巴赫猜想 第六题Jack cheng的烦恼3 ​指针 第一题字符串的连接 第二题删除字符串中数字字符 第三题输出学生成绩 第四题删除字符串中指定字母 第五题用指针方法求10个数最大和最小值之差 博主对大家说的话 最后的最后还是想给大家说相信在初学的过程中定然会有些吃力与不理解但可以适当地取舍先跳过把在能力范围内的题目先整懂相信自己一定能整明白只是时间问题就像翁恺老师在视频里说我们大家都是一个脑子你能搞懂的我也能搞懂。其实我开始在做一些题的时候也很吃力但当你能力慢慢提高之后再回过头来看这个题以及之前迷糊的题你会有新的感悟。相信通过以上题目大家对c语言基础有了新的理解感谢大家的阅读期待下次与你见面。 前言临近期末接下来给大家分享一些经典的编程题方便大家复习。不一定难但都是入门的好题尽可能的吃透彻。因为据说期末考试的题很多来自pta上面的原题。 对于一些语言我是用c来写的不妨碍理解大家把cingetline看作是c语言中的scanf把cout 看作是c语言中的printf 把#includebits/stdc.h看作是c的头文件。 循环 第一题求满足条件的斐波拉契数 分析为什么上这道题不是因为难而是因为有一年考到过斐波拉契函数所以记下来就好没什么好说的 #includestdio.h int fib(int n); int main() {int i, n;scanf(%d, n);//输入数for (i 1;; i) //让i来自增遍历所有斐波拉契数{if (fib(i) n) {printf(%d, fib(i));break;//一旦大于就跳出循环}}return 0; } int fib(int n) //斐波拉契函数 {if (n 2) {return 1;}else {return fib(n - 1) fib(n - 2);} } 第二题求n以内最大k个素数以及他们的和 思路首先要输出不超过n的最大的k个素数我们就先从n-1开始遍历然后看输出的格式肯定要定义一个数组arr来存放这些数字但数目又是有限的所以每得到一个素数k就要减一当k为0的时候跳出循环这样思路打开了然后最后输出的时候注意一下格式最后一个数字不用输出就OK了。 第三题英文字母替换加密 思路 按步就班这里我用c实现大家用c语言也是一个原理大家可以定一个字符数组然后用scanf 读取和 string str; getline(cin, str); 本质是一样然后呢求字符串长度len可以用strlen库函数来实现,cout大家就换成printf输出在判断是否是字母的语句可以换成用逻辑符号判断即在首字母和末尾字母的区间里面然后变成大写的可以换成str[i]-32来实现变成大写也是同理。总体的思路就是先遍历然后判断每一个字符是不是字母如果是那么是大写还是小写如果不是那么就不动自动输出。 #includebits/stdc.h using namespace std; string newstr(string str); int main() {string str;getline(cin, str);str newstr(str);cout str;return 0; } string newstr(string str) {int len str.size();for (int i 0; i len; i){if (isalpha(str[i]))//是字母{if (islower(str[i]))//shi xiao xie {str[i] toupper(str[i]);if (str[i] Z){str[i] A;}elsestr[i];}else{str[i] tolower(str[i]);if (str[i] z){str[i] a;}elsestr[i];}}}return str; } 第四题查验身份证 思路这道题相对来说还是比较难一般人写不出除非你是二班的人。 写法还是一个那就是读懂题意见招拆招。首先身份证不合格有两种一种是前十七个字符有字母另外一种就是第十八位字符为错误。并且要理解加权的意思最终我们要和验证码来比较我们可以验证码弄一个数组把验证码数组的下标当成我们加权求和然后%11的结果来比较是否相同。细节的地方就是在求和的时候因为sfz是字符数组要减去0才是我们计算的数字。 #includebits/stdc.h using namespace std; int main() {char str[11] { 1,0,X,9,8,7,6,5,4,3,2 };//验证吗char sfz[18];int jq[17] { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };int n, sum 0;cin n;int n1 n;int flag 0;while (n--){//cin.getline(sfz, 18);//输入身份证cin sfz;sum 0;for (int i 0; i strlen(sfz)-2; i)//{if (!(isdigit(sfz[i])))//说明存在字母{cout sfz endl;break;}else//不存在字母,则计算加权和{sum jq[i] * (sfz[i] - 0);}}if (sfz[17] ! str[sum % 11]){cout sfz endl;;}elseflag;}if (n1 flag){cout All passed;}return 0; } 数组 第一题 思路里面的sort你可以换成冒泡排序也是一样的做法cin你换成scanfcout换成printf。整体的思路你应该看的明白注意每一次算一个人的成绩时要把sum归0不然就会多算然后就是要输出单科平均成绩最大及序号没必要多开数组总成绩最大单科平均就最大人数都是一样的然后定义个变量记录下来就ok了 第二题字符串字母大小写转换 思路明白大小写转化之间的关系这里c实现和c实现都给大家呈现 #includestdio.h #includestring.h int main() {char s[100];scanf(%s,s);for(int i 0; s[i] ! #; i) {if (s[i] A s[i] Z) {s[i] 32;}else if (s[i] a s[i] z) {s[i] - 32;}}for (int i 0; s[i] ! #; i) {printf(%c,s[i]);}return 0; } c #includebits/stdc.h using namespace std; int main() {string s;for (int i 0; s[i] ! #; i){if (islower(s[i]))s[i] toupper(s[i]);else if (isupper(s[i]))s[i] tolower(s[i]);}for (int i 0; s[i] ! #; i) {printf(%c, s[i]);}return 0; }第三题统计一行文本的单词个数 这个题要考虑的情况也不少可能开头就有空格这里给大家介绍一种简洁的方式istringstream 在这段代码中的作用是将输入的字符串 line 转换为字符串流对象 iss然后我们可以使用 iss 从中逐个读取单词并进行处理。并且不会将空格读入 #includebits/stdc.h using namespace std; int main() {string line;getline(cin, line);istringstream iss(line);int count 0;string word;while (iss word){count;}cout count endl;return 0; } 第四题求整数序列中出现次数最多的数 思路这题没什么说的按部就班。用一个计数器出现一次加一次两次遍历如果比最大的次数大就更新。 #includestdio.h int main() {int n,i,j;scanf(%d,n);int a[10000];int count0;int max0,maxcount0;for(i0;in;i)scanf(%d,a[i]);for(i0;in;i){for(j0;jn;j){if(a[i]a[j])count;}if(countmaxcount){maxcountcount;maxa[i];}count0;}printf(%d %d,max,maxcount);return 0; } 第五题交换最小值和最大值 思路:一步步实现代码大家应该看得懂看不懂的留言。这是最朴实无华的写法了 #includestdio.h int main() {int n0;int a[10]{0};int max0;int min0;int t0;scanf(%d,n);//将所有数字存入数组a中 for (int i0;in;i){scanf(%d,a[i]);}//找出数组a中最小的元素元素大小比较找到小的哪个将下标值赋给min。循环之后a[min]就是数组a中最小的 for(int i1;in;i){if(a[i]a[min]){mini;}}//将数组a中最小的元素与a[0]交换位置 ta[min];a[min]a[0];a[0]t;//重复上述操作找到最大值 for(int i1;in;i){if(a[i]a[max]){maxi;}}//将最大值与元素数组最后一个交换位置 ta[max];a[max]a[n-1];a[n-1]t;//遍历并打印数组a的元素 for(int j0;jn;j){printf(%d ,a[j]);}return 0;} 第六题求矩阵各行元素之和 #include stdio.hint main(){int m, n;do{scanf(%d %d, m, n);}while( m1 || n6 ); // 确保m,n的范围int mat[m][n]; // 定义矩阵for( int i0; im; i ){int sum 0;for( int j0; jn; j ){scanf( %d, mat[i][j]); // 输入数据sum mat[i][j]; // 输入数据的同时累计一行的和}printf(%d\n, sum);}return 0; } 函数 第一题杨辉三角形 思路要写这个还是要知道这个杨辉三角怎么构成第一行第一个和每行最后一个都是1然后中间的项存在a[i][j]a[i-1][j]a[i-1][j-1]的规律 void fun(int a[N][N], int n) {for (int i 0; i n; i){a[i][0] 1;a[i][i] 1;for (int j 1; j i; j){a[i][j] a[i - 1][j] a[i - 1][j - 1];}} } 第二题歌词比赛打分 思路还是要知道指针的一些知识pi表示指针所指向的对象看不明白的可以看我指针的博客复习一下再来整 思路先找最高然后找最低用总的减去然后除总个数减2 double getScore(int* score, int total) {double max -1, min 101, sum 0;for (int i 0; i total; i){sum *(score i);if (*(score i) max){max *(score i);}if (*(score i) min){min *(score i);}}return (sum - max - min) / (total - 2); } 第三题数据排序 思路 排序算是一个重点这里给大家介绍两种简单的排序。 一个冒泡排序一个选择排序有点迷的可以去学一下 冒泡排序 void fun(int a[], int n) {for (int i 0; i n - 1; i){for (int j 0; j n - 1 - i; j){if (a[j] a[j 1]){int tempa[j1];a[j1]a[j];a[j]temp;}}} } 选择排序 void fun(int a[], int n) {int i, j, k;for (i 0; i n; i){for (j 0; j n; j){if (a[j] a[i]){k a[j];a[j] a[i];a[i] k;}}} } 第四题近似求PI 思路题目看似抽象其实仔细分析还是好整。观察出通项然后记得每一项都是在前一项的基础上再乘接着求和即可。 找通项规律i/2*i1每一项是在前一项的基础上乘 #includebits/stdc.h using namespace std; int main() {double i 1;double eps, sum 1;cin eps;double item 1;while (item eps){item item*1.0 * (i / (2 * i 1));i;sum item;}printf(PI %.5lf, sum * 2);return 0; } 第五题哥德巴赫猜想 思路这个题之前讲过再次搬出来说明它的重要性。这个题其实就是素数的那道题的变式关键是分解成最小的素数所以你从2开始遍历找到最小的就用n-最小的得到另外一个数如果这个数也是素数则符合条件跳出 第六题Jack cheng的烦恼3 思路道题也是素数的一个变式你只需要把n的每一位数提取出来求和然后判断是否为素数即可 指针 第一题字符串的连接 思路 先让指针s自增直到他指向\0然后开始赋值最后别忘了把\0填上去 //连接两个字符串思路就是s接受的是str1的地址t接受的是str2的地址那么要把t赋值到s的末端只需 //指向str1的指针s自增到/0的位置然后把str2赋给str1同时两种指针向后移动 //char* str_cat(char* s, char* t) //{ // char* p s; // while (*s ! \0) // { // s; // } // //出循环的时候s指向的是/0位置 // //开始把str2赋给str1 // int i 0; // while (*(ti) ! \0) // { // *(si) *(ti); // i; // } // *(s i) \0; // return p; //} 第二题删除字符串中数字字符 思路 首先要求得字符串的长度然后开始遍历判断是否是数字字符如果是就记录当前的位置将后续的字符往前移动最后要把i--原因就是当移动完之后如果不减的话回到循环体i之后会指向下一个位置这个时候如果有连续的数字字符就跳过了这个情况。 void delnum(char* s) {if (s NULL) {return;}char digit[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };int i 0;int len 0;while (*(s len) ! \0) {len; // 获取字符串长度}for (i 0; i len; i) {if (*(s i) 0 *(s i) 9) { // 判断是否为数字字符int j i;while (*(s j) ! \0) {*(s j) *(s j 1); // 将后续字符往前移动j;}i--;// 需要回退一步原因就是当是连续字符的时候你回到for循环的时候你的i又会加1那么它就不会处理当前的字符万一当前的字符是数字呢}} }第三题输出学生成绩 思路按步就班注意数据类型 #includebits/stdc.h using namespace std; int main() {double n, max -1, min 101;cin n;double sum 0, avg 0;int n1 n;while (n--){int score;cin score;sum score;if (score max)max score;if (score min)min score;}avg sum * 1.0 / n1;printf(average %.2lf\nmax %.2lf\nmin %.2lf,avg,max,min);return 0;} 第四题删除字符串中指定字母 思路这道题和前面的删除数字字符类似唯一要注意的就是要将i--防止指定的字母是连续的状态 #include iostream #include cstring using namespace std; int main() {char a[101] { 0 };char* p a;scanf(%s, a);int len strlen(a);int i, j;for (i 0; i len; i) {if (a[i] a) {j i;while (*(p j) ! \0) {*(p j) *(p j 1);j;}i--; // 由于删除一个字符需要将 i 回退一个位置len--; // 更新字符串长度}}cout a std::endl;return 0; }第五题用指针方法求10个数最大和最小值之差 思路很基础的指针题大家看代码即可 #includebits/stdc.h using namespace std; int main() {int arr[10];int* p arr;int min arr[0], max arr[0];for (int i 0; i 10; i){cin *(p i);if (*(p i) max)max *(p i);if (*(p i) min)min *(p i);}cout difference value max - min;return 0; }然后给大家扩展一下用指针实现冒泡排序 博主对大家说的话 最后的最后还是想给大家说相信在初学的过程中定然会有些吃力与不理解但可以适当地取舍先跳过把在能力范围内的题目先整懂相信自己一定能整明白只是时间问题就像翁恺老师在视频里说我们大家都是一个脑子你能搞懂的我也能搞懂。其实我开始在做一些题的时候也很吃力但当你能力慢慢提高之后再回过头来看这个题以及之前迷糊的题你会有新的感悟。相信通过以上题目大家对c语言基础有了新的理解感谢大家的阅读期待下次与你见面。
http://www.hkea.cn/news/14289314/

相关文章:

  • 深圳有哪些招聘网站网站不公开简历做家教
  • 公司网站属于信息化建设吗博采网络
  • 做海外贸易网站北京到安阳的火车
  • 深圳建设企业网站多媒体展厅设计制作公司
  • 食品 技术支持 东莞网站建设专门建设网站的公司
  • 新网站多久被百度收录定制v软件免费下载
  • 网站建设和维护一年的费用设计一套网站费用
  • 安徽建设住房建设厅网站河南商务网站建设
  • 云龙微网站开发深圳企业网站建设费用
  • 哪些网站用c 做的多域名指向同一网站
  • 鲜花网站开发背景网站建设运维
  • 济南建设工程业绩公示的网站网络营销的四种策略
  • 免费网站注册域名阳江网上办事大厅
  • 网站建设质量体系审核指导做网站用哪几个端口 比较好
  • 黄页网站 php个人自助网站
  • 网站推广含义国外网站做盗版
  • 台州市椒江建设工程机械厂网站全国文明网联盟网站建设
  • 图片外链wordpress图片优化加速
  • 中国建设银行官方网站沈阳野花香社区在线观看播放
  • discuz做网站赚钱经历网页设计制作课程
  • 网站关键词做标签mysql的网站开发
  • 网站开发 验收周期推广员网站
  • php做企业网站需要多久世界街景地图怎么退订
  • 自己建网站流程要学什么学生版 建设网站软件下载
  • 网站如何做映射怎样如何做网站
  • 苏州那里可以建网站营销手段和技巧
  • 学校网站建设介绍佛山网站优化软件
  • 怎么做刷qq业务网站wordpress 访问空白
  • 怎么用网页源码做网站湖北省住房城乡建设厅网站
  • 网站建设服务亿企网络wordpress在线安装