文章目录
C语言编程入门训练(一)
该专题为编程入门级别,适合大一大二同学使用,题目涉及编程基础语法,基本结构等。
练习一:实践出真知
题目描述
于老师经常告诉我们“学习编程最好的办法就是上机实践,因为你要对计算机下指令,想让计算机帮你干活,就得多和计算机‘交流’,实践才能出真知。”
输入描述:
无
输出描述:
Practice makes perfect!
代码如下:
#include <stdio.h>int main(){printf("Practice makes perfect!");return 0;}
练习二:我是大v
题目描述:
每个人都想成为大V (VIP:Very Important Person),但要一点一点积累才行,先从小v做起。要求输出由小写字母v组成的大V。
输入描述:
无
输出描述:
v v v v v
备注:
换行使用转义字符‘\n’
代码如下:
#include <stdio.h>int main(){printf("v v\n");printf(" v v\n");printf(" v\n");return 0;}
练习三:有容乃大
题目描述
确定不同整型数据类型在内存中占多大(字节),输出不同整型数据类型在内存中占多大(字节)。
输入描述:
无
输出描述:
不同整型数据类型在内存中占多大(字节),具体格式详见输出样例,输出样例中的?为不同整型数据类型在内存中占的字节数。
输出样例如下:
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 <stdio.h>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在屏幕输出信息,他想输出一架小飞机。请帮他编写程序输出这架小飞机。
输入描述:
无
输出描述:
代码如下:
#include <stdio.h>int main(){printf(" ** \n");printf(" ** \n");printf("************\n");printf("************\n");printf(" * * \n");printf(" * * \n");return 0;}
练习五:缩短二进制
题目描述
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
输入描述:
无
输出描述:
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
备注:
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
代码如下:
#include <stdio.h>int main(){printf("0%o 0X%X",1234,1234);return 0;}
注意:是%X,大写的X,这样才能打印出16进制下的大写字母。这一点要严格按照要求来!!
练习六:十六进制转十进制
题目描述
BoBo写了一个十六进制整数ABCDEF,他问KiKi对应的十进制整数是多少。
输入描述:
无
输出描述:
十六进制整数ABCDEF对应的十进制整数,所占域宽为15。
备注:
printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数。
代码如下:
#include <stdio.h>int main(){printf("%15d",0xABCDEF);return 0;}
注意:ABCDEF表示16进制的数字,前面要加上0x
练习七:printf的返回值
题目描述
KiKi写了一个输出“Hello world!”的程序,BoBo老师告诉他printf函数有返回值,你能帮他写个程序输出printf(“Hello world!”)的返回值吗?
输入描述:
无
输出描述:
包括两行:
第一行为“Hello world!”
第二行为printf(“Hello world!”)调用后的返回值。
代码如下:
#include <stdio.h>int main(){int ret = printf("Hello world!");printf("\n");printf("%d\n",ret);return 0;}
注意:不要把换行的\n放在ret的printf中
int ret =printf("Hello world!\n")
这样计算printf的返回值是错误的。
练习八:成绩输入输出
题目描述
输入3科成绩,然后把三科成绩输出,成绩为整数形式。
输入描述:
一行,3科成绩,用空格分隔,范围(0~100)。
输出描述:
一行,把3科成绩显示出来,输出格式详见输出样例。
示例1
输入
60 80 90
输出
score1=60,score2=80,score3=90
代码如下:
#include <stdio.h>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.、
代码如下:
#include <stdio.h>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
输出
1 1 1 1 1 1 1 1 1 11 1 1 1 1
代码如下:
#include <stdio.h>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 类型
特别练习:关机小程序
设计一个关机小程序
#include <string.h>#include <windows.h>#include <stdio.h>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;}
效果展示:
执行代码后
关机程序关闭!