机考30 翻译24 单词17
题目88字符串排序问题描述明明刚刚开始学英文对于26个英文字母的顺序总是记不住每次默写英文字母的时候顺序总是前后颠倒。明明的爸爸对此相当着急想有没有很好的办法来帮助明明记住字母的顺序。一天明明的爸爸突然想到了一个游戏能够帮助明明记住英文字母。这个游戏如下给明明一个任意长度的英文字串其中只包含小写字母然后让明明对字符串中的字母排序然后再把排完序的字符串写出来如果连续写对10次的话明明的爸爸就会奖励他带他出去吃KFC。 例如有一个字符串为asdf经过排序后的字符串就是adfs。 明明显然对这个游戏非常感兴趣其实明明更感兴趣的是那顿KFC接受了他爸爸的提议玩起了这个游戏。但是明明的爸爸在出题目考明明的时候自己却犯了难用英文随便写出一个无序的英文字符串是很简单的但是排序的话却要费一些功夫而且还不能出错否则就无法知道明明做的对不对了。于是明明的爸爸请你帮忙帮他写一个排序程序来输出排序后的字符串。明明爸爸的问题可以归结为输入一行字符串全部由小写字母构成对字符串按26个英文字母的先后顺序进行排序然后输出。输入说明你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据每组测试数据仅占一行每行由一个字符串组成字符串中只包含小写字母字符串的长度不超过100个字符。每组测试数据与其后一组测试数据之间没有任何空行第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。输出说明对于每一组测试数据你写的程序要求计算出一组相应的运算结果并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为一个排序后的字符串。每组运算结果单独形成一行数据其行首和行尾都没有任何空格每组运算结果与其后一组运算结果之间没有任何空行第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。总结使用选择排序对字符串进行排序printf(%s\n, str) 直接输出整个字符串不需要遍历字符数组一个一个进行输出#include stdio.h #include string.h int main(){ char str[201]; while(fgets(str, sizeof(str), stdin) ! NULL){ str[strcspn(str, \n)] \0; int len strlen(str); for(int i 0; i len - 1; i){ for(int j i 1; j len; j){ if(str[i] str[j]){ char temp str[i]; str[i] str[j]; str[j] temp; } } } printf(%s\n, str); } return 0; }题目89回文问题问题描述输入一串字符其长度小于200判断该串字符是否构成回文。 所谓回文是指从左到右和从右到左读一串字符的值是一样的如ABCBA。输入说明你的程序需要从标准输入设备通常为键盘中读入多组测试数据。每组输入数据由一行字符组成它们之间没有空格在行首和行尾没有多余的空格。输出说明对每组测试数据你的程序需要向标准输出设备通常为启动该程序的终端依次输出一组对应的答案构成回文的输出Yes 反之输出 No。所有数据前后没有多余的空格两组数据之间也没有多余的空行。总结将输入的字符串存储在字符数组 str[] 中使用 isPalindrome() 函数判断字符串是否为回文字符串是则输出Yes不是输出No#include stdio.h #include string.h //判断字符数组长度len是否是回文 int isPalindrome(char str[], int len){ for(int i 0; i len / 2; i){ if(str[i] ! str[len - 1 - i]) return 0; } return 1; } int main(){ char str[201]; while(fgets(str, sizeof(str), stdin) ! NULL){ str[strcspn(str, \n)] \0; int len strlen(str); if(isPalindrome(str, len)) printf(Yes\n); else printf(No\n); } return 0; }题目90字符串中找整数问题描述对于一个字符串编程找出其中的所有整数。例如字符串“a12bc34d05”其中有整数12、34、5。输入说明程序输入包括多行每一行都是一串字符字符串长度不超过500。字符串中的字符只有字母与数字。输出说明程序输出为多行每行第一个数代表所对应的字符串中整数的总个数。紧跟其后的依次是每个整数数和数之间有一个空格。行与行之间没有多余空行行首行尾没有多余空格总结1. str[] 数组存储字符串num[] 数组存储字符串中的数字count记录数字的个数num[] 数组的长度2. 遍历字符串的每个字符如果当前字符是小写字母a-z跳过这个字符继续下一个设置flag 0标记是否开始提取数字如果当前字符是数字0-9循环处理连续的数字num[count] num[count] * 10 当前数字值令flag 1表示找到了数字移动到下一个字符直至下一个字符不为数字count3. 输出共有几个数字即 count 值紧跟着输出每个数字的值#include stdio.h #include string.h int main(){ char str[501]; while(fgets(str, sizeof(str), stdin) ! NULL){ str[strcspn(str, \n)] \0; int count 0, len strlen(str); int num[50]; for(int i 0; i 50; i) num[i] 0; for(int i 0; i len; ){ if(str[i] a str[i] z){ i; continue; } int flag 0; while(str[i] 0 str[i] 9){ num[count] num[count] * 10 str[i] - 0; i; flag 1; } if(flag 1){ count; } } printf(%d, count); for(int i 0; i count; i){ printf( %d, num[i]); } printf(\n); } return 0; }3.25遍历字符串遇到数字开始记录num直到遇到字母将字母前的数字若不为0记录在 result[] 中直至遍历完整个字符串输出 result[] 长度后逐个输出 result[] 中的每个值#include stdio.h #include string.h int main(){ char str[501]; while(scanf(%s, str) ! EOF){ int len strlen(str), idx 0, num 0; int result[50]; for(int i 0; i len; i){ if(str[i] 0 str[i] 9) num num * 10 str[i] - 0; else{ if(num ! 0) result[idx] num; num 0; } } printf(%d, idx); for(int i 0; i idx; i) printf( %d, result[i]); printf(\n); } return 0; }翻译IV.计算机科学的主要分支计算机科学可以被分成四个主要领域软件开发计算机结构硬件人机接口技术设计最高效的人类使用计算机的方式和人工智能使计算机表现智能的尝试。软件开发致力于创造高效运行的计算机程序。计算机结构致力为确切的计算机需求开发最佳的硬件。人工智能AI和人机接口技术领域经常涉及软件和硬件的开发区解决确切的问题。1.软件开发关于开发计算机软件计算机科学家和工程师研究各个领域和软件设计技术例如用在确切程序中的编程语言和算法的最好种类怎么高效地存储和检索信息和特定软件-计算机组合的计算的限制。软件设计者在开发一个程序时必须考虑很多因素。经常一个领域必须牺牲程序性能为了软件的整体性能。例如计算机仅有有限的内存容量软件设计者必须限制包含在程序中的特征的数量以致于它所需的内存不会超过其设计对应系统的供应能力。软件工程是软件开发的一个领域在这个领域计算机科学家和工程师研究推动正确的可信赖的和健壮的计算机程序的高效开发的方法和工具。计算机科学这个分支的研究认为软件生命周期的所有阶段从正式的问题规范开始逐步推进至解决方案的设计程序实现程序测试以及程序维护。软件工程师开发软件工具和工具的集合统称为编程环境为了改进开发流程。例如工具可以帮助管理被一个程序员团队写出的大程序的很多组成。单词