计算机二级C语言过级经验,C语言基础102道练习题
分类:多线程

整理的102道C语言基础练习题,是我们老师总结出来的,我就是改了一下排版,应该对刚刚开始学习C语言有帮助的吧,希望能够帮到其他学者,图片 1我也是刚刚开始学的,菜鸟一个,大家一起努力啊图片 2,上传的文件名命名有些问题,是102道题,不是100道sorry。。。

前一段时间疯狂的学python,也逐渐认识到了python在某些方面的局限性以及写python在某些方面对自身锻炼不足。于是重新拾起大一曾经参加过的acm,准备用C好好加强自己造轮子的能力。

入门

ACM入门可以从语言、算法、阅读能力三个方面着手。

数学系大二的妹子分享自己过计算机二级的小小经验

C语言基础练习100题.pdf

大学四年中,第一年就学了C,当时觉得C语言是世界上最好的语言,用C实现了不少小功能。四年多过去,期间用过C++处理图像,用jsp写过后端,用Java写过小游戏,后来又用python爬虫,数据分析等等。

语言基础

语言基础偏指编程语言基础和其他计算机技能基础。IPCP世界总决赛使用的语言有C/C++、Java、Python2/Python3以及Kotlin。各分赛区支持的语言有所差异,但一定支持C/C++和Java。中国大学的计算机课程教授C++和Java语言。

提升编程能力需要多实践,多在计算机上实际操作。C语言自学入门推荐从《C Primmer Plus》开始,不必事无巨细地掌握书中的知识点,但求掌握语言框架理清思路,及时完成章节后面的思考题和练习题。C++/Java的学习可紧跟课程进度,完成课堂练习。

在计算机专业,课堂上学到的东西永远是不够的。

█ part 1

回过头来看看,还是觉得C最能锻炼一个人的思维能力,算法实现能力。去杭电OJ注册了一个号,从第一题开始写起,没想到第一题就浪费了很长时间。因此想着写下刷题日志,一方面激励自己,一方面也是和大家一起交流,共同进步。

算法基础

算法基础涉及数学能力以及算法知识。ACM是综合性的比赛,算法知识是重点考察的内容。

《算法导论》可能是程序人的“新华字典”。它是一本介绍算法知识的书籍,内容比较难,需要一定的数学基础。它并不是为ACM专门编写的书,但能实实在在地提升读者的算法水平。

此外,有许多ACM选手津津乐道的优秀书籍。比如清华大学出版社的《ACM国际大学生程序设计竞赛》系列丛书,以及《算法设计与分析——以ACM大学生程序设计竞赛在线题库为例》等。它们是专为ACM比赛编写的。

我们学校是大一下期开设的C语言课程。说老实话前半学期我真的是什么也没有听懂老师在讲什么。完全懵逼状态,每次上机的作业也是百度的根本一点思路都没有,而且班上大部分的同学都是这样。

我会每周写一次这方面的感悟,并把这一周所刷的题的答案公布出来,有共同志趣的朋友,可以一起研究,研究如何用最小的成本实现最美的程序。

阅读能力

IPCP的试题语言为英文,选手需要一定的英文阅读技能才能理解题目。不过不必刻意提升这方面能力,随着做题数量的增多,英语阅读能力自然慢慢增强。一般而言,比赛主办方允许选手携带字典参赛。

半期后我觉得不能再这样下去了。于是就开始恶补C语言。首先我在网络上去找C语言的基础视频讲课教程,最后在*“网易云课堂”*发现很多干货啊!而且可以下载下来我觉得自学非常方便!自学的时候一定要暂停做好笔记,没有听懂的还可以倒回去听一遍 ,真的非常方便实用!!特别推荐“网易云课堂”啊!给大家看一点我自学的笔记

图片 3

练习

互联网为程序人提供了实实在在的便利。有许多网上测评系统可以助我们一臂之力。这些线上测评系统题目难度由浅入深,风格各有特色。不必等到掌握一门编程语言再开始在网上练习,它们题目的梯度技能满足刚刚开始学习语言的新同学。完全可以边学边玩边练习。

第一阶段的练习不妨从杭州电子科技大学的在线评测系统(HDOJ)和北京大学的在线评测系统(POJ)开始。北京大学的在线评测系统可能是中国最早的线上评测系统之一。它的网站模板是开源的,因此许多在线评测系统(包括航电OJ在内)使用的是它的模板。尽管POJ似乎已经超过两年没有举行过线上比赛了,但POJ一直是编程爱好者十分热衷的网站。HDOJ在POJ的基础上做了一些调整和改进。HDOJ不断举行赛事,刚刚举办过百度之星线上竞赛。理论上可以从任何一个OJ开始玩,但基于上面的原因我推荐从航电OJ开始玩。

可以先试着解决OJ的第一道练习,题目编号通常为1000。通过解决编号1000的题目会使你对整个OJ的流程有所了解。遇到问题不妨看看OJ的FAQ(Frequently Asked Questions)。讨论区卧虎藏龙,时常有大神分享自己的成功代码。

看FAQ时可以了解到OJ使用的编译器和其他运行环境信息,大多数OJ使用的C语言编译器支持C99标准,也就是《C Primer Plus(第五版)》中介绍的C标准。(也就意味着C11标准不能使用,影响比较大的一点是:不能在for循环中的第一个语句初始化循环控制变量)

下面介绍一些OJ的黑话。AC=Accepted,程序判定为正确解答。AK=All Killed,在比赛时限内做完所有赛题,无题可做了。线下比赛可能有学长送你小红花。PE=Presentation Error,程序正确但是输出的格式不对。WA=Wrong Answer,程序写得不对哦。CE=Compilation Error,程序格式不对无法编译。TLE/MLE/OLE=Time/Memory/Ouput Limit Exceeded,超出时间/内存/输出限制。

把航电OJ的5000道题差不多做完或者想换换OJ的时候,可以尝试在Virtual Judge上接触更多题目。Virtual Judge近年来逐渐流行。本质上Virtual Judge不是一个OJ,它能够在别的OJ上抓取题目并且能让你提交自己的解答。也就是说在VJudge一个平台上你可以做到许多其他OJ平台的题目。目前VJudge支持的OJ有POJ、ZOJ、UVALive等32个OJ。

图片 4自学笔记

三月第三周.png

比赛

不时参加线上比赛对提升能力很有帮助。许多OJ会不定期地举办比赛,这里介绍HihoCoder,Hiho不定期举行比赛。有的赛事奖品颇丰,喜欢的同学千万不要错过。

字丑请大家忽略不计哈哈。虽然这些笔记都是及其基础的。但是我想说其实万事开头难。基础没问题,至少你能看懂程序了吧!你能知道老师在讲什么了吧!你能知道题目要求你做什么 了吧!知道简单的程序怎么写了吧!是的,好的开头是成功的一半。后来我就能够听懂老师在讲什么了,基本的程序也会写真的给我了我极大信心!!

上周六刚刚开始写,比较生疏,结果一个周末就做出了六题,还是比较水的六题,算是一个开始,也算是对acm的致敬吧。

链接

Lightyears在Github上维护了一个仓库,打算把他自己对航电OJ题目的解答放到仓库里。目前仓库还处于初始阶段,有兴趣的同学不妨看看吧。

[文] Lightyears

█ part 2

ID 1000

后来“网易云课堂”的基础课程自学完以后,就开始自学我们发的教科书。其实大家都知道大学的课程比较少,想要学好的话上课的时间完全不够啊。

#include <stdio.h>  
int main(void)
{
    int a, b;
    while (scanf("%d%d", &a, &b) != EOF)
        printf("%dn", a + b);
    return 0;
}

我们使用的教材是清华大学出版社谭浩强c程序设计第四版。

这题很简单,但是骚就骚在它题目要求了,要end of file。因此用scanf输入时后面必须有个是否等于EOF的判断。

图片 5C语言教材

ID 1001

教材的每一章每一节前面都有特别详细的讲解。黑字的加粗部分就是重点。然后正常字体分部分就是对重点的解释。但是如果上课听过的这些一看就懂的。然后每一节后面都有例题,我建议大家可以先读了题目自己做一遍,再对照答案看自己错在那里,或者写不完程序就可以看看自己没有写上的到底是哪一个部分,是输出部分呢还是逻辑部分呢。多做几道题就会发现自己那个方面有薄弱的地方然后多练习。我大概花了两个月的课余时间看完书。之后我觉得大部分程序是没有问题的,上机也比较得心应手了 。当时也快期末考试了,还记得100分的题考了87,自己觉得还是不错了。

#include <stdio.h>
int main()
{
    int n, sum, i;
    while (scanf("%d", &n) != EOF)
    {
        sum = 0;
        for (i = 0; i <= n; i++)
        {
            sum += i;
        }
        printf("%dnn", sum);
    }
    return 0;
}

█ part 3

ID 2000

过了年大二上学期我们就要大学生计算机二级考试。这个时候已经有了上学期C语言的基础以后,我就快速进入了刷题状态。

#include <stdio.h>  
int main()
{
    char a, b, c, temp;
    while (scanf("%c%c%c", &a, &b, &c) != EOF)
    {
        getchar();//不加getchar()函数不正确  
        if (a > b)
        {
            temp = a;
            a = b;
            b = temp;
        }
        if (c <= a)
        {
            temp = c;
            c = b;
            b = temp;
            temp = b;
            b = a;
            a = temp;
        }
        else if (c > a && c < b)
        {
            temp = c;
            c = b;
            b = temp;
        }
        printf("%c %c %cn", a, b, c);
    }
    return 0;
}

这里划重点了!!!如果小伙伴们在考试一个月之前没有C语言或者VF的基础,建议大家直接进入刷题状态吧。C语言刷题有一个专业的软件,是模拟真实考试情况的刷题,每次做完还会有打分基础。如下图

这一题,前面必须加上getchar()以此来消化输入三个字符后打出的很容易忽略的空格。

图片 6二级C语言图片 7二级office

ID 2001

如图就是软件包。如果有需要的小伙伴可以留言私信我。

#include <stdio.h>  
#include<math.h>
int main()
{
    double a, b, c, d;
    double e;
    while (scanf("%lf %lf %lf %lf", &a, &b, &c, &d) != EOF)
    {
        e = sqrt((c - a)*(c - a) + (d - b)*(d - b));
        printf("%.2lfn", e);
    }
    return 0;
}

安装下来就可以直接打开使用了。考试的真题也是从这里面选择的!总共有100多套题!建议大家先开始刷填空题改错题和程序题,选择题先放在一边。因为填空题、改错题、程序题三大题就有60分了。而且填空题改错题这两大题都特别有规律,大家刷个20 套左右就会有一个明显的感觉!!程序题有简单的有难的,刷完题一定要做到简单程序题必对,难的程序题有思路。因为有些题真的很难,用我们老师的话来说就是那么难的题实在被你抽题遇到了就算你倒霉了!!刷完100多套题我花了半个月,没有什么基础的我认为慢慢来一个月也没有问题。大家fighting!!

ID 2002

现在说一下选择题部分。里面的题型大概有C语言基础知识、运算符、强制转换类型、位运算、break与continue区分、循环结构、数组、字符串、实参与形参、指针。我觉得除了C语言基础知识背不到的其他能够读懂程序的话都能够做。40分的选择题20分 没有问题!!

#define PI 3.1415927
#include <stdio.h>  
int main()
{    
    double r;
    double V;
    while (scanf("%lf", &r) != EOF)
    {
        V = (4.0/3.0) * PI * r * r * r;
        printf("%.3lfn", V);
    }
    return 0;
}

大概就是这么多吧。好像叽叽喳喳说了这么多也没有说清楚。如果有小伙伴想要 更多的资料和询问欢迎咨询啊。PS:当时二级考了90分顺利通过好高兴。相当于在大一期间过了英语四级,普通话二,计算机一级二级。加油加油!!

这一题要注意,如用4/3得到的是1,因为系统默认3、4都是整型数字。

图片 8最后放一张自己的拍的夜景图

ID 2003

#include<stdio.h>

int main()
{
    double num;
    while (scanf("%lf", &num) != EOF)
    {
        if (num >= 0)
            printf("%.2lfn", num);
        else
            printf("%.2lfn", -num);
    }
    return 0;
}

本文由10bet手机官网发布于多线程,转载请注明出处:计算机二级C语言过级经验,C语言基础102道练习题

上一篇:以前做ACM的时候用的 下一篇:半冷半热,越知道自己不想要什么
猜你喜欢
热门排行
精彩图文