A - C语言实验——Hello World!(printf练习)
Description
很高兴你能上机实践所学的C语言知识!
编程不是在课本上的几页纸就能学会的,你必须多思考、多上机才能真正学会一门编程语言,这也是我们出这些题目的初衷。
这些题目都是课本上的基本题目,主要目的是让大家巩固课堂上所学到的,希望大家能够认真对待!
为了便于调试题目,做这些题目时可以先在CodeBlocks、DevC++或Microsoft VC++6.0中调试成功后再提交。
下面我们就开始吧:
利用C语言基本格式显示以下内容: Hello World!
Input
本题没有输入数据
Output
输出字符串Hello World!输出后需要换行。
Sample
Output
Hello World!
#include<stdio.h>
int main( )
{
printf("Hello World!\n");
return 0;
}
B - C语言实验——输出字符串
Description
在屏幕上输出一行信息:This is a C program.
Input
无输入数据。
Output
输出字符串This is a C program.
Sample
Output
This is a C program.
# include<stdio.h>
int main( )
{
printf("This is a C program.\n");
return 0;
}
C - C语言实验——图形输出(字符常量练习)
Description
用基本输出语句打印以下图形:
#
##
###
####
#####
######
Input
本题目没有输入数据
Output
输出图形由6行组成,第1行有1个#号,第i行有连续的i个#号:
#
##
###
####
#####
######
Sample
Output
# ## ### #### ##### ######
#include<stdio.h>
int main( )
{
printf("#\n");
printf("##\n");
printf("###\n");
printf("####\n");
printf("#####\n");
printf("######\n");
return 0;
}
D - C语言实验——求两个整数之和
Description
求两个整数之和,不从键盘输入数据,直接使用赋值语句(a=123;b=456)输入数据,然后计算两个整数之和输出。
Input
无输入数据。
Output
输出a和b之和。
Sample
Output
sum is 579
#include<stdio.h>
int main ( )
{
int a, b, sum;
a=123;
b=456;
sum=a+b;
printf("sum is %d\n",sum);
return 0;
}
E - A+B Problem
Description
Calculate a + b.
Input
Two integer a, b (0 <= a, b <= 10).
Output
Output a + b.
Sample
Input
1 2
Output
3
#include<stdio.h>
int main ( )
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d",a+b);
return 0;
}
F - C语言实验——交换两个整数的值(顺序结构)
Description
交换两个变量的值,由终端输入两个整数给变量x、y,然后交换x和y的值后,输出x和y。
Input
从键盘输入两个整数变量x和y;
Output
在交换x、y的值后将x和y输出!
Sample
Input
4 6
Output
6 4
#include<stdio.h>
int main( )
{
int x, y;
scanf("%d %d",&x,&y);
printf("%d %d",y,x);
return 0;
}
G - C语言实验——逆置正整数
Description
输入一个三位正整数,将它反向输出。
Input
3位正整数。
Output
逆置后的正整数。
Sample
Input
123
Output
321
Hint
注意130逆置后是31
#include<stdio.h>
int main ( )
{
int a,b,c,e,s,t;
scanf("%d",&a);
b=a/100;
c=a%100;
e=c%10;
s=c/10;
t=e*100+s*10+b;
printf("%d",t);
return 0;
}
H - C语言实验——买糖果
Description
小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?
Input
输入爸爸给小瑜的钱n元,n为整数。
Output
小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用空格分隔。
Sample
Input
2
Output
6 2
#include<stdio.h>
int main( )
{
int a,b,c;
scanf("%d",&a);
b=a*10/3;
c=a*10%3;
printf("%d %d",b,c);
return 0;
}
I - C语言实验——三个整数和、积与平均值
Description
给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。
Input
输入只有三个正整数a、b、c。
Output
输出一行,包括三个的和、乘积、平均数。 数据之间用一个空格隔开,其中平均数保留小数后面两位。
Sample
Input
2 3 3
Output
8 18 2.67
#include<stdio.h>
int main( )
{
int a,b,c,s,sum;
float t;
scanf("%d %d %d",&a,&b,&c);
sum=a+b+c;
s=a*b*c;
t=sum/3.0;
printf("%d %d %.2f\n",sum,s,t);
return 0;
}
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\n");
printf("A\n");
printf("3.140000\n");
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>
int main()
{
int r,h;
double s,t,v,c,a;
a=3.1415926;
scanf ("%d %d",&r,&h);
c=a*2*r;
t=a*r*r;
s=h*c;
v=t*h;
printf ("%.2f %.2f %.2f %.2f",c,t,s,v);
return 0;
}
L - C语言实验——温度转换
Description
输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9。
Input
输入数据只有一个实数,即华氏温度。
Output
输出数据只有一个,即摄氏温度,保留2位小数。
Sample
Input
32.0
Output
0.00
#include <stdio.h>
int main()
{
double c,f;
scanf ("%lf",&f);
c=5*(f-32)/9;
printf ("%.2f\n",c);
return 0;
}
M - C语言实验——单个字符输入和输出(顺序结构)
Description
用getchar()从键盘上输入一个字符,用putchar()打印出来!
Input
从键盘上输入一个字符!
Output
把刚刚输入的字符打印出来!
Sample
Input
A
Output
A
#include <stdio.h>
int main()
{
char a;
scanf ("%c",&a);
printf ("%c",a);
return 0;
}
N - C语言实验——转换字母(顺序结构)
Description
从键盘上输入一个小写字母,然后将小写字母装换成大写字母输出!
Input
从键盘上输入一个小写字母。
Output
小写字母装换成大写字母输出。
Sample
Input
a
Output
A
#include<stdio.h>
int main ( )
{
char x,y;
scanf ("%c",&x);
y=x-32;
printf ("%c",y);
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 x;
scanf ("%lf",&x);
printf ("%f\n",x);
printf ("*%10.3f*\n",x);
printf ("*%-10.3f*\n",x);
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 x,y,z;
scanf ("%lld %lld",&x,&y);
z=x+y;
printf ("%lld\n",z);
return 0;
}
Q - 带’ 和 ”字符的输出
Description
输入一个字符,输出两行。
第一行将字符用 ' 包裹。
第二行将字符用 " 包裹。
Input
输入一个字符。
Output
按题目描述输出。
Sample
Input
A
Output
'A'
"A"
#include<stdio.h>
int main ( )
{
char x;
scanf ("%c",&x);
printf ("\'%c\'\n",x);
printf("\"%c\"\n",x);
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,b,c;
scanf ("%d%%%d%%%d",&a,&b,&c);
printf ("%d%%%d%%%d",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,b,c;
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",a);
printf ("%x\n",a);
printf ("%X\n",a);
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",a);
printf ("*%08o*\n",a);
printf ("*%-8o*\n",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",a);
printf ("*%08d*\n",a);
printf ("*%-8d*\n",a);
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",a);
printf ("*%8d*\n",a);
printf ("*%-8d*\n",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",a);
printf ("*%4c*\n",a);
printf ("*%-4c*\n",a);
return 0;
}