1、小学生C语言编程练习小学生C语言编程练习C语言编程练习(001):编程基础之输入输出题1:编程描述:输入三个整数,把第二个输入的整数输出。输入:只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。输出:只有一行,一个整数,即输入的第二个整数。样例输入123 456 789样例输出456题2:编程描述:读入一个单精度浮点数,保留3位小数输出这个浮点数。输入:只有一行,一个单精度浮点数。输出:也只有一行,读入的单精度浮点数。样例输入12.34521样例输出12.345题3:编程描述:读入一个双精度浮点数,保留12位小数,输出这个浮点数。输入:只有一行,一个双精度浮点数。输出:也只
2、有一行,保留12位小数的浮点数。样例输入3.1415926535798932样例输出3.141592653580题4:编程描述:读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。输入:共有四行:第一行是一个字符;第二行是一个整数;第三行是一个单精度浮点数;第四行是一个双精度浮点数。输出:输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。样例输入a122.33.2样例输出a 12 2.300000 3.200000题5:编程描述:读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,
3、“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。输入:一个双精度浮点数。输出:输出有四行:第一行是按“%f”输出的双精度浮点数;第二行是按“%f”保留5位小数输出的双精度浮点数;第三行是按“%e”输出的双精度浮点数;第四行是按“%g”输出的双精度浮点数。样例输入12.3456789样例输出12.34567912.345681.234568e+00112.3457题6:写出下面程序的运行结果。#include #include main() int a=202; double b=2323.34345; printf(“a=%dn”,a); printf(“2*a=%dn”,2*a)
4、; printf(“a=%2dn”,a); printf(“%3lfn”,b); printf(“%20.2lfn”,b); printf(“%-20.2lfn”,b); printf(“%.2lfn”,b); system(“pause”); return 0;输出(答案) 题7:写出下面程序运行至注释处时各变量的值。#include main() int a=3; int b=2; /注释1 int aa,bb; a+; b-; /注释2 aa=a+; bb=-b; /注释3 return 0;答案:注释1处:注释2处:注释3处:题8:写出下面程序的运行结果。#include #inclu
5、de main() int a; double b; char c; scanf(“%c %d,%lf”,&c,&a,&b); printf(“结果是:n”); printf(“%c %d %.2lf”,c,a,b); system(“pause”); return 0;输出(答案) 题9:编程问题:鸡兔同笼,共有12个头、40只脚,求鸡和兔子各有多少?算法描述:(1)计算兔子的数量 rabbit=(40-2*12)/2 (2)计算鸡的数量 chick=40- rabbit (3)输出鸡和兔子的数量chick和rabbit的值 (4)算法结束题10:编程问题:已知旅行的距离s、汽车平均速度为v
6、、每公升汽油可以行驶的公里数k以及每公升汽油的价格p,求驾驶汽车旅游所花费的时间和购买汽油的钱数。分析:(1)汽车行驶时间 t=s/v (2)所用汽油总数 liter=s/k (3)旅行总共花费购买汽油的钱 total=liter*p算法描述:(1)屏幕提示输入距离s、平均速度v、每公升汽油可行驶的公里数k、每公升汽油的价格p的值; (2)计算汽车行驶时间; (3)计算所用汽油总数; (4)计算旅行总共花费; (5)输出旅行花费的时间和花费的钱; (6)算法结束题11:编程问题:假如你有一些糖果,第一天你吃了总数的一半多一颗;第二天你又吃了剩下的一半多一颗;第三天又吃了剩下的一半多一颗。结果发
7、现,剩下的糖果数量恰好是你的幸运数字。你能从幸运数字开始算出原来一共有多少颗糖果吗?算法描述:(1)屏幕提示输入你的幸运数字n ; (2)计算第三天吃糖之前,你手中的糖果数量x=(n+1)*2; (3)计算第二天吃糖之前,你手中的糖果数量x=(x+1)*2; (4)计算第一天吃糖之前,你手中的糖果数量x=(x+1)*2; (5)输出x的值; (6)算法结束题12:编程(日期书写格式)描述:对于日期年月日的写法,不同的国家有不同的书写格式;请按年、月、日的形式读入日期,然后分别输出中国式写法(年.月.日,如 1998.12.25)、英国式写法(日/月/年,如25/12/1998)和美国式写法(月
8、/日/年,如12/25/1998)。输入:屏幕提示,从键盘输入当前的年、月、日。输出:中、英、美式日期写法。问题分析:题中涉及的变量有三个,用year表示年,month表示月,day表示日,类型均为整型。算法描述:(1)屏幕提示从键盘输入年、月、日分别赋值给变量year、month、day ; (2)输出中国式日期写法; (3)输出英国式日期写法; (4)输出美国式日期写法; (5)算法结束样例输入year,month,day=2016 7 22样例输出中国式日期格式是:2016.7.22英国式日期格式是:22/7/2016美国式日期格式是:7/22/2016请按任意键继续题13:编程(数字分
9、离splitnum)描述:随机产生一个四位整数(或屏幕提示从键盘输入一个四位整数),计算并输出各位数字之和。问题分析:(1)随机生成在数字a到b之间的任意整数之方法:srand(time(NULL); /使用当前时间设置随机数生成器种子number=a+rand()%(b-a) /随机产生一个介于a与b之间的整数 (2)如何拆分一个四位数number:可用 % 和 / 运算符实现;用a、b、c、d分别代表个、十、百、千位的数字,则a=number%10; /求模(number除10后的余数)b=number/10%10; /number被10整除后再求模c=number/100%10; /nu
10、mber被100整除后再求模d=number/1000; /number被1000整除算法描述:(1)随机产生一个四位数存放在number变量中; (2)将number中的各位数字拆分出来存放在a、b、c、d变量中; (3)求a、b、c、d的和并赋值给变量s; (4)输出number和s的值; (5)算法结束题14:编程(时间戳times转换为标准时间格式)描述:LINUX时间戳表示从1970年1月1日0时0分0秒开始到该时刻的秒数。(简单起见,设定一年12个月,每月固定为30天)输入:输入一个整数n(0n2147483647)。输出:一行,日期格式(形如 1970.4.19)。问题分析:(1
11、)根据n的数据范围,其数据格式应该设计为long; (2)一天时间换算为秒则是24*60*60=86400秒;一个月为86400*30=2592000秒;根据问题中的设定一年12个月,每月固定30天,则可以算出一年为2592000*12=31104000秒; 将n整除一年的秒数得到年y;将其余数再整除一个月的秒数得到月m;再将整除月的余数整除一天的秒数得到天d;以此类推还可得到时、分、秒。算法描述:(1)输入n的值; (2)求y的值; (3)求m的值; (4)求d的值; (5)按日期格式输出y+1970,m,d; (6)算法结束题15:编程(求长方形的面积)描述:从键盘读入长方形的边长a、b,
12、计算其面积和周长,并输出。题16:编程描述:输入:用时、分、秒表示时间长度,把它转换为秒数。题16:编程描述:老农昨天捡了3块石头,他想今天再去捡一块,让这4块石头正好一共重20千克,问他该捡一块多少千克的石头? 要求输入这三块石头的重量,输出一个数表示农夫应该去捡一块多少千克的石头。题17:写出下面程序的运行结果。#include #include main() char ch1,ch2,ch3; int i; scanf(“%c”,&ch1); ch2=ch1-1; ch3=ch1+1; i=ch1; printf(”ord char pred succn”); printf(“%d %c %c %cn”,i,ch1,ch2,ch3); system(“pause”); return 0;输出(答案)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1