C语言编程练习---2021山东理工大学ACM 实验一J---X题解

J - C语言实验——格式化输出(常量练习)

Description

用c语言的基本输出格式打印下列内容:
100
A
3.140000

Input

本题目没有输入数据

Output

输出三行数据:
100
A
3.140000

Sample

Output 

100
A
3.140000
#include<stdio.h>
int main()
{
	printf("100\nA\n3.140000");
	return 0;
}

K - C语言实验——圆柱体计算

Description

已知圆柱体的底面半径r和高h,计算圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积。其中圆周率定义为3.1415926。

Input

输入数据有一行,包括2个正实数r和h,以空格分隔。

Output

输出数据一行,包括圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积,以空格分开,所有数据均保留2位小数。

Sample

Input 

1 2

Output 

6.28 3.14 12.57 6.28
#include<stdio.h>
#define pi 3.1415926
int main()
{
	float r, h;//定义半径和高两个变量
	scanf("%f %f", &r, &h);// 终端输入
		printf("%.2f %.2f %.2f %.2f", 2 * r * pi, pi*r*r,2*pi*r*h,pi*r*r*h);
		return 0;
}

L - C语言实验——温度转换

Description

输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9C=5(F−32)/9

Input

输入数据只有一个实数,即华氏温度。

Output

输出数据只有一个,即摄氏温度,保留2位小数。

Sample

Input 

32.0

Output 

0.00
#include<stdio.h>
int main(){
	double a = 0;
	scanf("%lf", &a);
	double c = 0;
	c = 5*(a - 32) / 9;
	printf("%.2lf",c);
	return 0;
}

M - C语言实验——单个字符输入和输出(顺序结构)

Description

用getchar()从键盘上输入一个字符,用putchar()打印出来!

Input

从键盘上输入一个字符!

Output

把刚刚输入的字符打印出来!

Sample

Input 

A

Output 

A
#include<stdio.h>
int main()
{
	char t;             //字符的输入用char
	scanf("%c", &t);   //字符的输入占位符是%c
	printf("%c\n", t); //字符的输出占位符是%c
	return 0;
}

N - C语言实验——转换字母(顺序结构)

Description

从键盘上输入一个小写字母,然后将小写字母装换成大写字母输出!

Input

从键盘上输入一个小写字母。

Output

小写字母装换成大写字母输出。

Sample

Input 

a

Output 

A
#include<stdio.h>
int main()
{
	char t;
	scanf("%c", &t);
	printf("%c", t - 'a' + 'A');//由小写换成大写
	return 0;
}

O - 实数的输出和占位

Description

输入一个实数,请你按如下要求输出:

第一行按双精度默认输出,

第二行双精度数输出共占 10 位,其中 3 位小数,右对齐,左补空格并在两端添加星号包裹,

第三行双精度数输出共占 10 位,其中 3 位小数,左对齐,右补空格并在两端添加星号包裹。

Input

一个double范围内的正实数 a 。 

Output

共三行,按题目描述输出。

Sample

Input 

123.56789

Output 

123.567890
*   123.568*
*123.568   *
#include<stdio.h>
int main()
{
	double a;//定义变量
	scanf("%lf", &a);//double的格式化输入占位符是%lf
	printf("%lf\n", a);//double的格式化输出占位符是%lf
	printf("*%10.3lf*\n", a);//共占十位,三位小数所以10.3,右对齐为正
	printf("*%-10.3lf*", a);//输出结果左对齐则为负的
	return 0;

}

P - 大整数的输入输出

Description

输入两个 long long 范围内的整数,输出他们的和。

Input

两个 long long 范围内的整数。

Output

输出的两个大整数的和,保证结果在 long long 范围内。

Sample

Input 

2222222222
3333333333

Output 

5555555555
#include<stdio.h>
int main()
{
	long long int a, b;
	scanf("%lld", &a);//long long下占位符是%lld
	scanf("%lld", &b);
	printf("%lld\n", a + b);
	return 0;
}

Q - 带’ 和 ”字符的输出

Description

输入一个字符,输出两行。

第一行将字符用 ' 包裹。

第二行将字符用 " 包裹。

Input

输入一个字符。

Output

按题目描述输出。

Sample

Input 

A

Output 

'A'
"A"
#include<stdio.h>
int main()
{
	char t;
	scanf("%c",&t);
	printf("\'%c\'\n",t);//一个/代表输出一个',其他都是和以前一样的
	printf("\"%c\"\n",t);
	return 0;
}

R - '%'字符的输入输出

Description

输入三个用 `` % `` 分割的正整数 a b c 代表月,日,年,

要求按照输入样式原样输出。

Input

三个int范围内的正整数,中间用 `` %`` 分割。

Output

按题目描述原样输出。

Sample

Input 

9%17%2018

Output 

9%17%2018
#include<stdio.h>
int main()
{
	int a = 0; int b = 0; int c = 0;
	scanf("%d%%%d%%%d%%",&a,&b,&c);//里面代表输入一个正整数%%代表输入%
	printf("%d%%%d%%%d\n",a,b,c);//%%代表输出%
	return 0;
}

S - ‘\’字符的输入输出

Description

输入三个用 `` \ `` 分割的正整数 a b c 代表日,月,年,

要求按照输入样式原样输出。

Input

三个int范围内的正整数,中间用 `` \ `` 分割。

Output

按题目描述原样输出。

Sample

Input 

9\17\2018

Output 

9\17\2018
​
#include<stdio.h>
int main()
{
	int a = 0; int b = 0; int c = 0;
	scanf("%d\\%d\\%d\\", &a, &b, &c);
	printf("%d\\%d\\%d", a, b, c);
	
	return 0;
}

​

T - 十六进制数输出和占位

Description

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行以十六进制输出(字母小写),

第三行以十六进制输出(字母大写)。

Input

一个int范围内的正整数 a 。 

Output

共三行,按题目描述输出。

Sample

Input 

456

Output 

456
1c8
1C8
#include<stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	printf("%d\n%x\n%X", a, a, a);//十六进制小写用%x表示大写用%X表示
	return 0;

}

U - 八进制数输出和占位

Description

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行以八进制靠右输出,不足 8 位左补 0 并在两端添加星号包裹,

第三行以八进制靠左输出,不足 8 位右补空格并在两端添加星号包裹。

Input

一个int范围内的正整数 a 。 

Output

共三行,按题目描述输出。

Sample

Input 

123

Output 

123
*00000173*
*173     *
#include<stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	printf("%d\n*%08o*\n*%-08o*", a, a, a);
	return 0;
}

V - 十进制输入输出和其它非空格占位

Description

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行整数靠右原样输出,不足 8 位左补 0 并在两端添加星号包裹,

第三行整数靠左原样输出,不足 8 位右补空格并在两端添加星号包裹。

Input

一个int范围内的正整数 a 。 

Output

共三行,按题目描述输出。

Sample

Input 

123456

Output 

123456
*00123456*
*123456  *
#include<stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	printf("%d\n*%08d*\n*%-8d*", a,a,a);
	/*十进制中占位符还是% d, 同样 % 0几d控制宽度同时会改变默认,
	变成右对齐,带上0会用0填充,
	所以后面%-8d是左对齐且控制宽度没有用0填充*/
	return 0;

}

W - 十进制输入输出和空格占位

Description

输入一个整数,请你按如下要求输出:

第一行按原样输出,

第二行按原样靠右输出,不足 8 位左补空格并在两端添加星号包裹,

第三行按原样靠左输出,不足 8 位右补空格并在两端添加星号包裹。

Input

一个int范围内的正整数 a 。 

Output

共三行,按题目描述输出。

Sample

Input 

123456

Output 

123456
*  123456*
*123456 *
#include<stdio.h>
int main()
{
	int a;
	scanf("%d", &a);
	printf("%d\n*%8d*\n*%-8d*", a, a, a);
	return 0;
}

X - 字符型数据输出和占位

Description

输入一个字符,请你按如下要求输出:

第一行字符数据默认输出,

第二行字符型数据输出共占 4 位,右对齐,左补 3 个空格并在两端添加星号包裹,

第三行字符型数据输出共占 4 位,左对齐,右补 3 个空格并在两端添加星号包裹。

Input

输入一个字符 。 

Output

共三行,按题目描述输出。

Sample

Input 

c

Output 

c
*   c*
*c   *
#include<stdio.h>
int main()
{
	char a;
	scanf("%c", &a);
	printf("%c\n*%4c*\n*%-4c*", a, a, a);
	return 0;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恰逢*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值