第十一次作业

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语言上的问题,其他科和学校生活上也总是告诉我们很多经验,谢谢你们!

 

posted @ 2016-12-14 18:07  T.X  阅读(237)  评论(1编辑  收藏  举报