A Hello World!(printf练习)
Problem Description
很高兴你能上机实践所学的C语言知识!
编程不是在课本上的几页纸就能学会的,你必须多思考、多上机才能真正学会一门编程语言,这也是我们出这些题目的初衷。
这些题目都是课本上的基本题目,主要目的是让大家巩固课堂上所学到的,希望大家能够认真对待!
为了便于调试题目,做这些题目时可以先在CodeBlocks、DevC++或Microsoft VC++6.0中调试成功后再提交。
下面我们就开始吧:
利用C语言基本格式显示以下内容: Hello World!
Input
本题没有输入数据
Output
输出字符串Hello World!输出后需要换行。
Sample Input
Sample Output
Hello World!
Hint
Source
#include
#include
int main() //main()总是第一个被调用的函数
{
printf("Hello world!\n");
return 0;
}
B 输出字符串
Problem Description
在屏幕上输出一行信息:This is a C program.
Input
无输入数据。
Output
输出字符串This is a C program.
Sample Input
Sample Output
This is a C program.
Hint
Source
wy
#include
#include
int main()
{
printf("This is a C program.\n");
return 0;
}
注意:1.只需将A程序中的“Hello world!\n”换为“This is a C program.\n”
2.注意语句最后的标点“.”
C 图形输出(字符常量练习)
Problem Description
用基本输出语句打印以下图形:
#
##
###
####
#####
######
Input
本题目没有输入数据
Output
输出图形由6行组成,第1行有1个#号,第i行有连续的i个#号:
#
##
###
####
#####
######
Sample Input
Sample Output
# ## ### #### ##### ######
Hint
Source
#include
int main()
{
printf("#\n##\n###\n####\n#####\n######\n");
return 0;
}
# include
int main()
{
printf("#\n");
printf("##\n");
printf("###\n");
printf("####\n");
printf("#####\n");
printf("######\n");
return 0;
}
注意: 转义序列通常有两种功能。第一个是编码一个句法上的实体,如设备命令或者无法被字母表直接表示的特殊数据。第二种功能,也叫字符引用,用于表示无法在当前上下文中被键盘录入的字符(如字符串中的回车符),或者在当前上下文中会有不期望的含义的字符(如C语言字符串中的双引号字符",不能直接出现,必须用转义序列表示)。在后面那种情况,转义序列是一种由转义字符自身和一个被引用的字符组成的一个二合字母(digraph)情形
转义字符 |
意义 |
ASCII码值(十进制) |
\a |
响铃(BEL) |
007 |
\b |
退格(BS) ,将当前位置移到前一列 |
008 |
\f |
换页(FF),将当前位置移到下页开头 |
012 |
\n |
换行(LF) ,将当前位置移到下一行开头 |
010 |
\r |
回车(CR) ,将当前位置移到本行开头 |
013 |
\t |
水平制表(HT) (跳到下一个TAB位置) |
009 |
\v |
垂直制表(VT) |
011 |
\\ |
代表一个反斜线字符''\' |
092 |
\' |
代表一个单引号(撇号)字符 |
039 |
\" |
代表一个双引号字符 |
034 |
\? | 代表一个问号 | 063 |
\0 |
空字符(NUL) |
000 |
\ddd |
1到3位八进制数所代表的任意字符 |
三位八进制 |
\xhh |
十六进制所代表的任意字符 |
十六进制 |
D 求两个整数之和
Problem Description
求两个整数之和,不从键盘输入数据,直接使用赋值语句(a=123;b=456)输入数据,然后计算两个整数之和输出。
Input
无输入数据。
Output
输出a和b之和。
Sample Input
Sample Output
sum is 579
Hint
Source
wy
# include
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
Problem Description
Calculate a+b.
Input
Two integer a,b (0<=a,b<=10).
Output
Output a+b.
Sample Input
1 2
Sample Output
3
Hint
问:怎样输入输出?
答:你的程序应该从标准输入(stdin)中读取数据,而将结果写到标准输出(stdout)。比如,在C语言中你可以使用“scanf”,在C++语言中则可以使用“cin”来输入;输出可以使用C语言的“printf”或者C++语言的“cout”。
注意:不要向标准输出写入题目要求输出结果之外的其他数据,否则你会被判为“Wrong Answer”,即错误的运行结果。
你的程序也不能试图读或写任何文件,否则你可能被判为“Runtime Error”(运行时错误)或“Wrong Answer”(错误结果)。
下面是这道题的一个C++或者G++的程序。
#include //请注意include的使用,如果使用#include 在G++编译器上将出现“Compile Error”
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
return 0;
}
注意:对于GCC或者G++,main()函数的返回值必须是int型,否则可能导致“Compile Error”,即编译错误。
下面是这道题的一个C或者GCC的程序。
#include
int main()
{
int a,b;
scanf("%d %d",&a, &b);
printf("%d\n",a+b);
return 0;
}
下面是一个Java的代码示例,请注意,当提交语言为Java时,您的类名必须为Main
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int a, b; a = reader.nextInt(); b = reader.nextInt(); System.out.println(a + b); reader.close(); } }
Source
#include
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
F 交换两个整数的值(顺序结构)
Problem Description
交换两个变量的值,由终端输入两个整数给变量x、y,然后交换x和y的值后,输出x和y。
Input
从键盘输入两个整数变量x和y;
Output
在交换x、y的值后将x和y输出!
Sample Input
4 6
Sample Output
6 4
Hint
Source
#include
int main()
{
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
c=b;
b=a;
a=c;
printf("%d %d",a,b);
return 0;
}
#include
int main()
{
int a,b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d %d",b,a);
return 0;
}
G 逆置正整数
Problem Description
输入一个三位正整数,将它反向输出。
Input
3位正整数。
Output
逆置后的正整数。
Sample Input
123
Sample Output
321
Hint
注意130逆置后是31
Source
crq
#include
int main()
{
int x,X,a,b,c;
scanf("%d",&x);;
a=x%10;
b=x/10%10;
c=x/100%10;
X=a*100+b*10+c*1;
printf("%d\n",X);
return 0;
}
注意:整数的余数仍为整数
H 买糖果
Problem Description
小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?
Input
输入爸爸给小瑜的钱n元,n为整数。
Output
小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用空格分隔。
Sample Input
2
Sample Output
6 2
Hint
Source
#include
int main()
{
int a,b,c;
scanf("%d",&a);
b=a*10/3;
c=a*10-b*3;
printf("%d %d",b,c);
return 0;
}
I 三个整数和、积与平均值
Problem Description
给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。
Input
输入只有三个正整数a、b、c。
Output
输出一行,包括三个的和、乘积、平均数。 数据之间用一个空格隔开,其中平均数保留小数后面两位。
Sample Input
2 3 3
Sample Output
8 18 2.67
Hint
Source
#include
int main()
{
int a,b,c,sum;
float p;
scanf("%d %d %d",&a,&b,&c);
sum =a+b+c;
p=sum/3.0;
printf("%d %d %.2f",sum,a*b*c,p);
return 0;
}
J 格式化输出(常量练习)
Problem Description
用c语言的基本输出格式打印下列内容:
100
A
3.140000
Input
本题目没有输入数据
Output
输出三行数据:
100
A
3.140000
Sample Input
Sample Output
100 A 3.140000
Hint
Source
#include
int main()
{
printf("100\nA\n3.140000\n");
return 0;
}
K 圆柱体计算
Problem Description
已知圆柱体的底面半径r和高h,计算圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积。其中圆周率定义为3.1415926。
Input
输入数据有一行,包括2个正实数r和h,以空格分隔。
Output
输出数据一行,包括圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积,以空格分开,所有数据均保留2位小数。
Sample Input
1 2
Sample Output
6.28 3.14 12.57 6.28
Hint
Source
#include
#define p 3.1415926
int main()
{
float r,h,L,DS,CS,V;
scanf("%f %f",&r,&h);
L=2*p*r;
DS=p*r*r;
CS=L*h;
V=DS*h;
printf("%.2f %.2f %.2f %.2f",L,DS,CS,V);
return 0;
}
L 温度转换
Problem Description
输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9。
Input
输入数据只有一个实数,即华氏温度。
Output
输出数据只有一个,即摄氏温度,保留2位小数。
Sample Input
32.0
Sample Output
0.00
Hint
Source
#include
#include
int main()
{
float C,F;
scanf("%f",&F);
C=5*(F-32)/9;
printf("%.2f",C);
return 0;
}
注意:不要忘记乘号“*”
M 单个字符输入和输出(顺序结构)
Problem Description
用getchar()从键盘上输入一个字符,用putchar()打印出来!
Input
从键盘上输入一个字符!
Output
把刚刚输入的字符打印出来!
Sample Input
A
Sample Output
A
Hint
Source
#include
#include
int main()
{
char a;
a=getchar();
putchar(a);
return 0;
}
#includeint main() { char A; A=getchar(); putchar(A); return 0; }