P5704 字母大小写的转换(难度:入门)

题目思路:输入一个(大写)小写字母,输出一个(小写)大写字母。

知识点:2.3实训与实训指导1,ASCII码,char类型(按ASCII码值进行存储),<ctype.h>头文件toupper()tolower()函数

P5711 判断闰年(难度:入门)

题目思路:输入年份,判断是否闰年(能被4整除但不能被100整除,或能被400整除)

知识点:2.3实训与实训指导2除法,3.1.3 if…else选择结构,取余运算,3.1.2逻辑运算符(与,或,非),逻辑表达式的结果(真1,假0)

02 代码的运行:

noob1 Hello Nowcoder(入门,通过率36.02%)

知识点:1.2 c程序的基本结构

03 基本数据类型:

2.1.1 变量和常量和数据类型

2.1.3数据的输入与输出(putchar,getchar,printf,scanf)

noob2 牛牛学说话之-整数(入门,通过率48.88%)

题目思路:输入一个整数并输出

知识点:2.1.1 整数类型,数据的输入和输出

noob3 牛牛学说话之-浮点数(入门,通过率43.38%)

题目思路:输入一个浮点数并按固定格式输出

知识点:2.1.1 浮点数类型,格式化输出

noob4 牛牛学说话之-字符串(入门,通过率55.79%)

题目思路:输入一个字符串并输出

知识点:字符串的输入和输出

05 顺序结构:

2.2顺序结构程序设计

顺序结构是基本程序结构,是按照程序代码的书写顺序自上而下逐一执行

noob16 时间转换(入门,通过率47.92%)

题目思路:输入秒数转换成时分秒(总秒数除以3600得小时,剩下秒数除以60得分钟,最后剩下的为秒数)

知识点:算术运算(除法/,取余%)

noob18 牛牛学立体(入门,通过率68.31%)

题目思路:输入长宽高输出表面积和体积

知识点:多变量输入,算术运算(乘法*)

noob19 成绩(入门,通过率75.05%)

题目思路:输入科目成绩计算平均分

知识点:多变量运算,平均值

noob20 小乐乐求和(入门,通过率24.37%)

题目思路:输入整数n计算1+……+n的和

知识点:4.1.1 while语句,等差数列公式n*(1+n)/2

06选择结构:

noob22 判断闰年(入门,通过率43.24%)

题目思路:输入一个数判断其是否符合闰年的条件

知识点:if…else语句的使用,3.1.1关系运算符与关系表达式,3.1.2逻辑运算符与逻辑表达式,3.1.3if…else选择结构,实训三

noob28 四季(入门,通过率48.44%)

题目思路:输入一个数,判断其属于哪个月份所对应的季节

知识点:嵌套if语句的运用,3.1.3if…else选择结构,3.1.5swith…case选择结构

03 基本数据类型:

noob5 复读机(入门,通过率31.42%)

题目思路:输入整数型,长整型,浮点型,字符型,字符串的数据并输出

知识点:整型,长整型,浮点型,字符型,字符串数据的输入与输出,2.1.3数据的输入与输出

04 运算符与优先级:

noob6 牛牛学加法(入门,通过率63.49%)

题目思路:输入两个数,输出这两个数相加的结果

知识点:两数相加

noob7 疫情死亡率(入门,通过率40.26%)

题目思路:输入两个数,将两个数带入死亡率的计算公式中计算死亡率

知识点:整形转化为浮点型

noob8 计算带余除法(入门,通过率53.18%)

题目思路:输入两个数,计算其商与余数

知识点:商用/,除数用%

noob9 整数的个位(入门,通过率71.25%)

题目思路:输入一个数,计算它的个位数(n%10),前面的数字为10的倍数,只有个位数不是10的倍数,对,10取余便是其个位数字

知识点:%的用法

noob10 整数的十位(入门,通过率67.73%)

题目思路:输入一个数n,n/10(因为只有个位数不是10的倍数,所以得到的结果是去除了个位数字),然后再%10得到的就是此时的最后一位数字也就是十位数字

知识点:/和%的灵活运用

noob11 平方根(入门,通过率63.08%)

题目思路:用sqrt进行开平方(sqrt属于math.h头文件),再用int实现向下取整(int不管小数部分只保留其整数部分)

知识点:sqrt办法的运用,向下取整的实现

05 顺序结构:

noob12 反向输出一个四位数(入门,通过率44.01%)

题目思路:先将n/1000就得到了它的千位数字,然后n/100得到它的前两位数字再%10就得到了它的百位数字,n/10得到它的前三位数字再%10就得到十位数字,n%10得到它的个位数字。然后将个位数字*1000+十位数字*100+百位数字*10+千位数字,就将四位数翻转。

知识点:/和%的灵活运用

noob13 温标转换

思路:

先准备kfc三个变量,分别存储开尔文温度、华氏温度和摄氏温度。

然后scanf输入k摄氏温度。请注意:1.scanf读取double类型变量时,一定要使用%lf,用%f会报错;2.不要忘记取地址符&。

然后根据给出的公式计算出f。

最后printf输出就可以了!(这里用%f和%lf都一样)

当然也可以合并计算,省去c这个变量,直接用f=(k-273.15)*1.8+32.0,更简洁。

不过三个变量可以组成kfc,会比较好吃。

知识点:2.1.3数据的输入与输出

noob14 绕距

思路:

输入起点终点的坐标,根据公式,分别计算de和dm,再相减得到d。

计算de需要用到乘方和平方根函数(pow和sprt),这些都在头文件math.h里,一定别忘了加。

这里x1x2y1y2均为整数,所以习惯性地先乘了1.0变成浮点数。但其实这里不进行这步操作也一样,因为pow和sqrt的参数默认是double类型,传入int型时会自动先隐式转换为double再计算。不过涉及整数和浮点数混合运算时乘1.0总归不是一个坏习惯。

计算dm时我使用了a?b:c三元运算符,即判断式a的真假,若a为真则返回b,为假则返回c。若x1大于x2就返回x1-x2,反之就是x2-x1。

当然也可以用math头文件下的取绝对值函数fabs(x1-x2)。

最后把算出来的结果输出就好了。

知识点:pow和sqrt函数

noob15 求四位数各个数位之和

思路:

定义并输入n,计算n的四个数位。

个位数直接模10就能得到。

因为n是整数,所以进行除法运算后如果结果是浮点数,会直接向下取整,即只保留整数部分。以1357为例,1357/10会得到135,此时再模10,就能得到十位数5了。百位数和千位数同理。

最后把这四个数加起来就是我们要的结果,输出即可。

知识点:2.1.2表达式→算术运算符→%和/。

noob17 计算机内存

思路:

每个整数占用4字节。所以只需计算一共有多少字节,再除以4就可以了。

知识点:2.1.1变量和常量及数据类型

noob21 明天星期几?

思路:

本题考查选择结构,使用else-if结构。

如果今天是星期一到星期六之间的某天,明天就是今天的数字+1。如果今天是星期天,那么明天就是星期一。即当d在1和6之间时,输出d+1,当d=7时,输出1。

当然也可以用switch-case,或者说这种“判断条件是某表达式的有限个固定值的等值匹配”的选择结构很适合用switch,不过本题可以简单的分为d=7和d=其他数字两种情况,所以就没必要把case 1-7全写一遍了。

当然,也是因为本题可以简单的分为两种情况,所以还有一种写法,就是使用a?b:c三目运算符,一行就可以解决:

printf(“%d”,(d==7?1:d+1));

(注意,请务必使用比较运算符==,不要写成=。这种情况是不会报错的,如果代码复杂,可能连错哪了都找不到。)

知识点:3.1.3 if-else选择结构

noob23 比大小

思路:

比较a和b两个整数谁大谁小。

共有三种情况,a>b就输出>,a<b就输出<,相等则输出=。

知识点:3.1.3 if-else选择结构

noob24 卡拉兹函数

思路:

根据n的奇偶性进行不同的运算并输出结果,用if-else选择结构。

因为只有两种情况,所以也可以用三目运算符a?b:c都行。

知识点:3.1.3 if-else选择结构

noob25 牛妹数

思路:

本题也是简单的选择结构。

需要注意的点:

1.判断条件有两个,n大于50和n为偶数,这两个表达式必须同时成立才输出yes,故使用&&连接。

2.如果用a?b:c的话,需要注意输出的是字符串,所以前面引号里要用%s。代码如下:

printf(“%s”,((n>50&&n%2==0)?”yes”:”no”));

知识点:3.1.3 if-else选择结构

noob26 牛牛是否被叫家长

思路:

计算abc的平均数,大于60输出NO。小于60输出YES。

知识点:3.1.3 if-else选择结构

noob27 最大最小值

思路:

三个数字比较大小。这个的写法还挺很多样的。

1.最基础的if-else嵌套,先比较前两个数,再将较大的那个和第三个数比较。关键代码如下:

if(a>b) {

if(a>c) max=a;

else max=c;

} else {

if(b>c) max=b;

else max=c;

}

最小值同理。很好理解,不过有点长。

2.三目运算符。很简洁,两行就能解决。关键代码如下:

max=(((a>b)?a:b)>c?((a>b)?a:b):c);

min=(((a<b)?a:b)<c?((a<b)?a:b):c);

3.直接调用库函数。这个和三目运算符那个差不多,不过需要头文件math.h。

math.h里有fmax/fmin函数,会返回两个参数中较大/较小的那个。关键代码如下:

max=fmax(fmax(a,b),c);

min=fmin(fmin(a,b),c);

知识点:3.1.3 if-else选择结构(嵌套版)

第二次培训AC代码