牛客网-编程语言初学练习赛(第一场)题解

比赛地址:https://ac.nowcoder.com/acm/contest/310#question

A.B.C没什么好说的,根据题目要求输出就行,注意换行

D-显示Hello World的代码

注意双引号, 反斜杠的输出(转义序列的使用)

核心代码:

	printf("printf(\"Hello, world!\\n\");\n");

E也不用说

F-缩短二进制

 

根据题目要求输出即可

核心代码:

	int a = 1234;
	printf("%#o %#X\n", a, a);

 G-十六进制转十进制

算就完事儿了

提示:%md(这里m代表数字)表示输出字宽为m的十进制整数

小技巧:题目要求输出十六进制ABCDEF的十进制数,你先写个程序,以十六进制形式输入ABCDEF,然后以十进制形式输出,看一下输出结果,复制粘贴,按格式输出这个数就OK啦,傻蛋才去硬算,如下

	int n;
	scanf("%x", &n);
	printf("%15d\n",n );

H和I不用说

说一下 J - printf的返回值

这个题很多人卡住了奥,一看就是基础不行

大家要知道一件事儿:printf是个函数,他是有返回值的,printf的返回值是它的第一个参数(即双引号里面的)字符的个数,数据类型是int

 而且还要注意一点,看好输出的格式

核心代码:

	 int  a = printf("Hello world!");
	 printf("\n");
	 printf("%d\n", a);

K不用说

看L和M,这俩是一个事儿

 要知道,scanf的第一个参数,双引号里如果有除了转换符等那些你常写的,比如%d %c %s %f等,的字符,你输入的时候必须得输入相同的字符,才能输入正确

反之,你想按照题目的格式,就在scanf第一个参数里按照格式写

L和M的输入部分核心代码:

	int a, b;
	scanf("a=%d,b=%d", &a, &b); // L
	float id, a, b, c;
	scanf("%f;%f,%f,%f", &id, &a, &b, &c); // M

 N题,看好备注

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>



int main(){
	int a, b, c;
	scanf("%4d%2d%2d", &a, &b, &c);
	printf("year=%d\n",a);
	if(b < 10) printf("month=0%d\n",b);
	else printf("month=%d\n", b);
	if(c < 10)
	printf("date=0%d\n",c);
	else
	printf("date=%d\n",c);
	//system("pause");
	return 0;
}

 O题,注意输出格式就行了

PS:

关于做这些题的一些个人建议:

    这些题是帮助我们学习的,我们要在做题中学习,而不是为了做题而做题

    遇到不会的地方,去查相关的知识点,百度 谷歌等搜索引擎走一套呗,不要急着找别人,要养成自学能力,自己动手解决问题带来的收获是巨大的

    千万不要,千万不要,千万不要自己不思考,不动手,而跟别人要代码,这样即使你看会了,你的收获与记忆是很小的,毫不夸张的说,这个比赛现在是到了第五场,还没到那种特别需要动脑子的问题,没有没思路这一说

    这些题都是很基础,很基础的,非常适合初学者学习和熟练代码能力,所以请以这种去学习的态度去做这些题,而不是要为了做题而做题

2018.12.27 15:19     寝室

猜你喜欢

转载自blog.csdn.net/qq_43005180/article/details/85281787