这节课由于只讲了输入输出,所以题目难度偏简单,各位在完成题目之余多复习,对题目多思考,多拓展,看我的题解如果看不懂可以来问我或者根据原题去C语言网找到原题,去看各位大佬的题解。
A题:
原题:题目1001:
[编程入门]第一个HelloWorld程序
代码部分:
#include<stdio.h>
int main()
{
printf("**************************\n");
printf("Hello World!\n");
printf("**************************");
return 0;
}
题解:
很简单的一道题,”Hello World!“大概是所有人初学C语言输出的第一句话吧。这题在输出Hello World的基础上,增加了两行花边,主要考察转义字符的使用(\n很常用)
PS:遇见这种固定输出,记得善用ctrl+c和ctrl+v
B题:
原题:题目 1005:
[编程入门]温度转换
代码部分:
#include "stdio.h"
int main(){
float f;
scanf("%f",&f);
float c;
c=5*(f-32)/9;
printf("c=%.2f",c);
}
题解:
依旧是简单的输入输出问题,不过附加了浮点数计算。注意,因为我这里定义f的类型是float,如果你定义的类型是double,就该把%f换成%lf,printf处同理,换成%.2lf。
C题:
原题:题目 1006:
[编程入门]三个数找最大值
代码部分:
#include "stdio.h" //方法一,三目运算符
int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
int max;
max=a>=b?a:b;
max=max>=c?max:c;
printf("%d",max);
}
#include<stdio.h> //方法二:if else
int main(){
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
max=a;
}else{
max=b;
}
if(c>max){
max=c;
}
printf("%d\n",max);
return 0;
}
题解:
方法一:题目是输入a、b、c三个值,输出其中最大值,除了需要a,b,c三个变量以外,还需要一个变量max存放最大值,第一段三目运算将a和b中较大的值赋给max,第二段三目运算将max(即a和b中较大的)和c中较大的值赋给max(答案),此时的max是a,b,c中最大的值
方法二:题目是输入a、b、c三个值,输出其中最大值,除了需要a,b,c三个变量以外,还需要一个变量max存放最大值,先拿a和b比较,如果a>b则max存放a的值,否则存放max的值,再拿c和max比较(因为max中存放的是a,b中最大的),如果c>max,则把c中的值替换max中的值,输出max
D题:
原题:题目 1055:
二级C语言-进制转换
代码部分:
#include "stdio.h"
int main(){
int a;
scanf("%d",&a);
printf("%o",a);
return 0;
}
题解:
1、%d-以十进制形式输出带符号整数;
2、%o-以八进制形式输出无符号整数(不输出前缀O);
3、%x-以十六进制形式输出无符号整数(不输出前缀OX);
4、%u-以十进制形式输出无符号整数;
5、%f-以小数形式输出单、双精度实数;
6、%e-以指数形式输出单、双精度实数;
7、%g-以%f%e中较短的输出宽度输出单、双精度实数;
8、%c-输出单个字符;
9、%s-输出字符串;
本题考察基础输入输出与输出类型格式
E题:
原题:题目 1951:
求平方和
代码部分:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int ans=a*a+b*b;
printf("%d",ans);
return 0;
}
题解:
没什么难的,读入两个整数,再输出两个整数的平方和,看代码就可以看懂啦
F题:
原题:题目 1952:
求长方形面积
代码部分:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int c=2*a+2*b;//周长
printf("C:%d\n",c);
int s=a*b;//面积
printf("S:%d",s);
return 0;
}
题解:
和E题其实是一样的,不过注意题目的输出格式,不要忘记了“C:”和“S:”
G题:
原题:题目 1953:
三位数分解
代码部分:
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
int hundred=a/100;//百位
int ten=a/10%10;//十位
int bits=a%10;//个位
printf("%d\n",hundred);
printf("%d\n",ten);
printf("%d",bits);
return 0;
}
题解:
做这题之前,我们要先知道一个知识点,int类型不管在进行除法运算还是取余运算时,结果都是向下取整的。所以我们可以利用这个特性来取出一个整数的每一位,比如123这个数,我想取最后一位,可以用123对10取余,得到的就是个位数3,如果我想取出第二位,那么我就先用123除以10,得到12,再用12对10取余,得到的就是十位数2,以此类推。
PS.如果题目是给你一个50位数,难道要写50行printf吗?
PPS.如果本题没有告诉你是几位数,那么该怎么做呢?
PPPS.关于本题,可以去中国大学MOOC看翁恺老师的课,他有专门的一节课讲了这个知识点,视频全长16:59,不会占用太长时间的(顺便强推翁恺老师的C语言课,讲得很好)