300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 北理C语言压缩文本 北理C语言作业及答案2.doc

北理C语言压缩文本 北理C语言作业及答案2.doc

时间:2023-11-17 01:50:57

相关推荐

北理C语言压缩文本 北理C语言作业及答案2.doc

北理C语言作业及答案2.doc

34 北理工的恶龙成绩 10 / 折扣 0.8背景最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟,于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数杀死恶龙,于是找到你寻求帮助。输入第一行 龙头数 n , 勇士人数 m ( 1void mainint s0,t,i,j,m,n,a100,b100,c100;fori0;inprintf“bit is doomedn“;elsefori0;iajtai,aiaj,ajt;fori0;ibjtbi,bibj,bjt;t0;fori0;iint sumint m,int nint i;ifnmin;elseinsumm,n-1;returni;void mainint m,n;scanf“dd“,printf“The sum from d to d is d.n“,m,n,summ,n;H13安全的密码(选做)成绩 5 / 折扣 0.8随着电子设备的广泛运用,密码也渐渐融入每个人的生活。保护好密码,不仅关系到个人隐私,更关系到个人的财产和安全。一个安全的密码,最好由大小写字母、数字或符号组成。包含越多种类的字符,其安全性就越高。同时密码还需要有一定的长度,通常至少要由六个以上的字符组成。并不是每个人都喜欢这样复杂的密码,很多人在设置密码的时候,喜欢使用自己的名字或者生日,但这是很大的安全隐患。任务林晓炜正在设计一个网络交易系统,为了保证用户的密码安全,他需要一个程序,判断用户自己设置的密码是否安全,如果不安全,则给出提示。现在他向你求助,请你帮忙设计一个程序来解决这个问题。应当按照以下的规则来判断密码是否安全1. 如果密码长度小于 6 位,则不安全 2. 如果组成密码的字符只有一类,则不安全 3. 如果组成密码的字符有两类,则为中度安全 4. 如果组成密码的字符有三类或以上,则为安全 通常,可以认为数字、大写字母、小写字母和其它符号为四类不同的字符。输入输入的第一行是一个整数 N,表明后面有多少组密码。随后的 N 行输入包括 N 个密码,每个密码的长度均小于 20 个字符。输出针对每一个密码判断并输出它是否安全。对于不安全的密码输出 “Not Safe“,对于中度安全的密码输出 “Medium Safe“,对于安全的密码输出 “Safe“输入样例41234abcdefABC1231c3Gh输出样例Not SafeNot SafeMediumSafe Safe测试输入 期待的输出 时间限 制 内存限 制 额外进 程测试用例 1以文本方式显示1. 102. abcDEF3. ABC4. qw5. 6. ABCDEFGHIJKLMNOPQRST7. 123456789012345678908. 1aB9. 1 B10. a X 11. qwe123 strlengthstrlens; int n40,0,0,0; int kind0,i; ifstrlength0n15 char newstr19; int i; fori0;i0sic,i; else ifc-sign1; else ifp void main int n,i; scanf“d“, fori2;n1; ifni0 printf“dn“,i;n/i; else i; 38 回文字符串递归成绩 5 / 折扣 0.8有一种特殊形式的字符串,其正反序相同,被称为“回文字符串” 。例如 LeveL 就是一个回文字符串。输入字符串输出Yes 或者 No说明如输出 Yes,说明输入的字符串是一个回文字符串输出 No,说明输入的字符串不是一个回文字符串请使用递归算法实现。测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1以文本方式显示1. LeveL以文本方式显示1. Yes1 秒 64M 0 include include int funchar str,int a,int b ifstrastrb return 0 ; else ifaba1b else ifstrastrb return 1 void main char str100; scanf“s“,str; int n; nstrlenstr; switchfunstr,0,n-1 case 1printf“Yesn“;break; case 0printf“Non“;break; 39 求最大公约数 递归成绩 5 / 折扣 0.8请使用递归算法计算正整数 n 和 m 的最大公约数 GCDn,m。 m 当 m int gcdint n,int m ifm double funint n ifn1 return 1; ifn20 return funn-11.0/n; ifn21 return funn-1-1.0/n; void main int n,m; scanf“d“, ifn1 printf“1n“; else printf“0.6lfn“,funn; 42 子串反向递归成绩 10 / 折扣 0.8请编写一个递归函数 reversechar str, int start, int end ,该函数的功能是将串 str 中下标从 start 开始到 end 结束的字符颠倒顺序。假设 start 和 end 都在合理的取值范围。例如 执行前str“0123456“;start1 ;end4 执行后strr“0432156“ 要求在该函数中不使用新的数组,没有循环。注意只需要编写递归函数 reverse,系统中已经设置好了 main 函数。预设代码前置代码view plaincopy to clipboardprint1. /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ 2.3. include 4. int main 5. char str100; 6. int start, end; 7. getsstr; 8. scanf“dd“, 9. reverse str, start, end ; 10. printf“sn“, str; 11. return 0; 12. 13.14. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */include int main char str100;int start, end;getsstr;scanf“dd“, reverse str, start, end ;printf“sn“, str;return 0;/* PRESET CODE END - NEVER TOUCH CODE ABOVE */测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1以文本方式显示1. 01234562. 1 4以文本方式显示1. 04321561 秒 64M 0 测试用例 6以文本方式显示1. 01234562. 6 10以文本方式显示1. 01234561 秒 64M 0 测试用例 7以文本方式显示1. 01234562. 0 10以文本方式显示1. 65432101 秒 64M 0 /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */include int main char str100;int start, end;getsstr;scanf“dd“, reverse str, start, end ;printf“sn“, str;return 0;/* PRESET CODE END - NEVER TOUCH CODE ABOVE */void reverse char str, int start,int end int istart,jend,p0; char temporary; whilestrp0p;ifstartpjp-1;for;i include include include “stdlib.h“void main int n0,i0,j0,k0,b0;char a35000;int n10,n20;char s5000;int n30;int c0,c10;int temp0;char op;char str10010; char *result;scanf“d“,resultchar *malloc501*n;根据输入的 n 申请内存空间*result0in2n1n2;/*计算加法*/ifopfor;n10n1,n2,n3tempa0n1a1n2-96;tempc;iftemp10sn3temp1048;c1;elsesn3temp48;c0;forwhilen10tempa0n1-48;tempc;iftemp10sn348;c1;elsesn3temp48;c0;n1;n3;while n1whilen20tempa1n2-48;tempc;iftemp10sn348;c1;elsesn3temp48;c0;n2;n3;while n2ifcstrcatresult,“1“;strcatresult,s;strcatresult,“n“;if op/*计算减法*/else /*保证减数大于被减数*如果被减数大于减数,则交换 2 数,并设置变量*/ifstrcmpa0,a10;n1,n2,n3tempa0n1-a1n2;temp-c;iftemp0sn3temp48;c0;elsesn3temp58;c1;forwhilen10tempa0n1-48;temp-c;iftemp0sn3temp48;c0;elsesn3temp58;c1;n1;n3;ifc1strcatresult,“-“;/*消除减法结果高位的 0*/j0;whilesj48j;strcatresult,sj;strcatresult,“n“;else opfor iprintf“s“,result;getch;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。