第十一次作业
Posted T.X
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一次作业相关的知识,希望对你有一定的参考价值。
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> #define N 100 int main() { int i,b[5]={0}; char a[N]; printf("请输入一串字符。\\n"); gets(a); for(i=0;a[i]!=\'\\0\';i++) { if(a[i]>=\'A\'&&a[i]<=\'Z\') b[0]++; else if(a[i]>=\'a\'&&a[i]<=\'z\') b[1]++; else if(a[i]==\' \') b[2]++; else if(a[i]>=\'0\'&&a[i]<=\'9\') b[3]++; else b[4]++; } printf("大写字母有%d个,小写字母有%d个,空格有%d个,数字有%d个,其他字符有%d个",b[0],b[1],b[2],b[3],b[4]); return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次
#include<stdio.h> int main() { int i,a=3; char result[]={"taoxu"},answer[7]; do { printf("请输入答案:\\n"); fgets(answer,7,stdin); answer[5]=\'\\0\'; /*在你答案是\\0的位置,直接进行赋值。 */ if(strcmp(answer,result)==0) { printf("welcome!\\n"); break; } else { if(a==1) { printf("输入错误,没有机会了。"); break; } else printf("输入错误,请重新输入,你还有%d次机会。",--a); } }while(a!=0); return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include<stdio.h> #include<string.h> #define N 100 int huiwen(char a[]); int main() { char str[N]; printf("请输入字符串:\\n"); gets(str); if(huiwen(str)) { printf("是回文数。\\n"); } else { printf("不是回文数。\\n"); } return 0; } int huiwen(char a[]) { int i,j=-1; j=strlen(a)-1; for(i=0;i<j;i++,j--) { if(a[i]!=a[j]) { return 0; } } return 1; }
实验总结:使用除gets和puts以外的字符串处理函数时要记得使用头文件string.h。
scanf函数输入字符串里不能包含空格,需要使用gets函数。
gets函数:\\n等不会读入数组,会转化为\\0,会将其从缓冲区读走。
用循环输出字符串时,判断应为str[]不等于\\0;
测出字符串实际长度后应减一,应为数组下标是从0开始的。
gets函数不安全,使用fgets函数。
字符串结束标志也占一个字符长度,注意不要越界!
(三)课程体会(请回答以下问题)
1. 经过一个学期的学习,你统计过一共写了多少行代码吗?与开学初相比,你对C语言或者程序设计有了哪些认识和理解?
答:作业加上平时练习和帮同学改的代码,应该超过四千行了吧;现在感觉c语言没那么神秘了,理解后觉得挺容易掌握的。
2. 在C语言的学习过程中,你有什么经验和教训分享给大家?
我认为码代码一定要冷静,静能生慧,只有头脑保持冷静才能减少错误的发生,尤其是发现错误时,一定要保持冷静,逐条去分析,或者采用一些技巧去调试;有不懂的问题一定要及时解决,等问题越攒越多,就像多米诺骨牌,以后再想跟上进度就难了;基础不好一定要课前预习,课后复习,并且多练,在老师讲之前,一定要抽时间去预习课本或者看网课,大概了解老师下一节课所讲的内容是什么,提前做好准备,课上把老师讲的重点记下来,课后做作业前复习下老师在群里发布的课件,有不懂的代码,不要光看,自己照猫画虎去码,多码几遍,分析分析就会明白的。
3. 对于采用技术博客提交作业这种形式,你有什么看法,对你有帮助的地方在哪里?你觉得还可以做哪些改进?,如果下一届的学弟学妹们入学了,你会给他们推荐这种教学形式吗?
我觉得这种形式特别好,可以把自己的学习记录,知识点以及所犯的错误都记录下来,回头去看自己一步步走过的脚步,心里满满的成就感,也方便自己复习所学过的知识,通过班级博客,也可以知道其他同学的学习情况,他们有好的思路,自己可以很方便的学习。
4. 对于这门课程,对于老师和助教的工作,你有什么好的建议或者意见,都可以提出来,我们一起改进。
老师和几位学长都很认真负责,自己能在大学遇到,很幸运,印象很深刻的是,有时就算是晚上十二点问老师问题,老师都能帮助我解决;宝清哥跟崧哥也是,什么时候问问题,都会不厌其烦的讲解,不光是C语言上的问题,其他科和学校生活上也总是告诉我们很多经验,谢谢你们!
以上是关于第十一次作业的主要内容,如果未能解决你的问题,请参考以下文章