C语言编程入门训练(一)
该专题为编程入门级别,适合大一大二同学使用,题目涉及编程基础语法,基本结构等。
练习一:实践出真知
题目描述
于老师经常告诉我们“学习编程最好的办法就是上机实践,因为你要对计算机下指令,想让计算机帮你干活,就得多和计算机‘交流’,实践才能出真知。”
输入描述:
无
输出描述:
Practice makes perfect!
代码如下:
代码语言:javascript复制#include
int main()
{
printf("Practice makes perfect!");
return 0;
}
练习二:我是大v
题目描述:
每个人都想成为大V (VIP:Very Important Person),但要一点一点积累才行,先从小v做起。要求输出由小写字母v组成的大V。
输入描述:
无
输出描述:
代码语言:javascript复制 v v
v v
v
备注:
换行使用转义字符‘n’
代码如下:
代码语言:javascript复制#include
int main()
{
printf("v vn");
printf(" v vn");
printf(" vn");
return 0;
}
练习三:有容乃大
题目描述
确定不同整型数据类型在内存中占多大(字节),输出不同整型数据类型在内存中占多大(字节)。
输入描述:
无
输出描述:
不同整型数据类型在内存中占多大(字节),具体格式详见输出样例,输出样例中的?为不同整型数据类型在内存中占的字节数。
输出样例如下:
代码语言:javascript复制The size of short is ? bytes. The size of int is ? bytes. The size of long is ? bytes. The size of long long is ? bytes.
#include
int main()
{
printf("The size of short is %d bytes.n",sizeof(short));
printf("The size of int is %d bytes.n",sizeof(int));
printf("The size of long is %d bytes.n",sizeof(long));
printf("The size of long long is %d bytes.n",sizeof(long long));
return 0;
}
练习四:小飞机
题目描述
KiKi学会了printf在屏幕输出信息,他想输出一架小飞机。请帮他编写程序输出这架小飞机。
输入描述:
无
输出描述:
代码如下:
代码语言:javascript复制#include
int main()
{
printf(" ** n");
printf(" ** n");
printf("************n");
printf("************n");
printf(" * * n");
printf(" * * n");
return 0;
}
练习五:缩短二进制
题目描述
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
输入描述:
无
输出描述:
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
备注:
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
代码如下:
代码语言:javascript复制#include
int main()
{
printf("0%o 0X%X",1234,1234);
return 0;
}
注意:是%X,大写的X,这样才能打印出16进制下的大写字母。这一点要严格按照要求来!!
练习六:十六进制转十进制
题目描述
BoBo写了一个十六进制整数ABCDEF,他问KiKi对应的十进制整数是多少。
输入描述:
无
输出描述:
十六进制整数ABCDEF对应的十进制整数,所占域宽为15。
备注:
printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数。
代码如下:
代码语言:javascript复制#include
int main()
{
printf("d",0xABCDEF);
return 0;
}
注意:ABCDEF表示16进制的数字,前面要加上0x
练习七:printf的返回值
题目描述
KiKi写了一个输出“Hello world!”的程序,BoBo老师告诉他printf函数有返回值,你能帮他写个程序输出printf(“Hello world!”)的返回值吗?
输入描述:
无
输出描述:
包括两行: 第一行为“Hello world!” 第二行为printf(“Hello world!”)调用后的返回值。
代码如下:
代码语言:javascript复制#include
int main()
{
int ret = printf("Hello world!");
printf("n");
printf("%dn",ret);
return 0;
}
注意:不要把换行的n放在ret的printf中
代码语言:javascript复制int ret =printf("Hello world!n")
这样计算printf的返回值是错误的。
练习八:成绩输入输出
题目描述
输入3科成绩,然后把三科成绩输出,成绩为整数形式。
输入描述:
一行,3科成绩,用空格分隔,范围(0~100)。
输出描述:
一行,把3科成绩显示出来,输出格式详见输出样例。
示例1
输入
60 80 90
输出
score1=60,score2=80,score3=90
代码如下:
代码语言:javascript复制#include
int main()
{
int CHN=60;
int MATH=80;
int ENG=90;
scanf("%d %d %d",&CHN,&MATH,&ENG);
printf("score1=%d,score2=%d,score3=%d",CHN,MATH,ENG);
return 0;
}
练习九:学生基本信息输入输出
题目描述
依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩。
输入描述:
学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。
输出描述:
学号,3科成绩,输出格式详见输出样例。
示例1
输入
17140216;80.845,90.55,100.00
输出
The each subject score of No. 17140216 is 80.85, 90.55, 100.00.、
代码如下:
代码语言:javascript复制#include
int main()
{
int num;
float C;
float Math;
float Eng;
scanf("%d;%f,%f,%f",&num,&C,&Math,&Eng);
printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",num,C,Math,Eng);
return 0;
}
练习十:字符金字塔
题目描述
输入一个字符,用它构造一个三角形金字塔。
输入描述:
输入只有一行,一个字符。
输出描述:
该字符构成的三角形金字塔。
示例1
输入
1
输出
代码语言:javascript复制 1
1 1
1 1 1
1 1 1 1
1 1 1 1 1
代码如下:
代码语言:javascript复制#include
int main()
{
char c;
scanf("%c", &c);
int i = 0;
//每行
for (i = 0; i < 5; i )
{
//打印每行的内容
int j = 0;
for (j = 0; j < 4 - i; j )
{
//打印每行的空格
printf(" ");
}
//打印每行的*_
for (j = 0; j <= i; j )
{
printf("%c ", c);
}
printf("n");
}
注意:输入的类型是字符类型,不要写成int 类型
特别练习:关机小程序
设计一个关机小程序
代码语言:javascript复制#include
#include
#include
int main()
{
char c[20] = { 0 };
system("shutdown -s -t 60");
again:printf("请注意你的电脑将在1分钟后关机,如果输入:我是猪,就取消关机n请输入:>");
scanf("%s", &c);
if (strcmp(c, "我是猪") == 0)
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
效果展示:
执行代码后
关机程序关闭!
未完待续…
C语言编程入门训练(二)已更新