资源描述
一、 顺序结构
1. 从键盘输入一个大于0的实数,编程计算并输出以该数位半径的圆面积、圆周长及球体积(取圆周率为3.14)要求输出时有适当的文字说明
测试数据:输入 2.5
输出圆周长15.700000 圆面积 19.625000 球体积为65.416667
2. 从键盘输入两个大于0的实数,编程计算并输出以其为长和宽的矩形的周长和面积。要求输出时有适当的文字说明
测试数据:输入 1.2 3.5
输出矩形周长9.400000 矩形面积4.200000
3. 从键盘输入一个华氏温度值,计算并输出其摄氏温度的值。
提示:摄氏温度c=(5/9)*(f-32) f为华氏温度
测试数据:输入华氏温度值 100
输出摄氏温度值 37.777778
4. 从键盘输入三个实数,计算并输出它们的和及积。
测试数据:输入 1.1 2.2 3.5
输出和 6.800000 积8.470000
5、从键盘输入三个整数,计算并输出它们的和及平均值
测试数据:输入 2 5 7
输出和 14.000000 平均值 4.666667
6、输入一个三位数,依次输出该数的符号和百位、十位、个位数字。
测试数据:输入 -752
输出和 符号 - 百位 7 十位 5 个位 2
5.
二、 选择结构
1. 从键盘输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。
2. 从键盘输入三个实数a、b、c,输出其中最大的数。
测试数据: 输入5.3 6.5 2.1
输出最大数 6.5
3. 从键盘输入一个正整数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则输出“yes”,否则输出“no”。
测试数据:(1)输入 12 输出 yes
(2)输入 16 输出no
4. 从键盘输入1到7之间的某个正整数,输出表示一星期中相应的某一天的英文单词:Monday、 Tuesday等等,用switch语句做。
测试数据: 输入 7
输出 Sunday
5. 从键盘输入一百分制成绩(实数),将其转换为成绩等级并输出:大于等于90分为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
测试数据: 输入 63
输出 D
6. 从键盘输入一个3位正整数,判断并输出该数是否是“水仙花数”,若是则输出“yes”,否则输出“no”(“水仙花数”是指一个3为数,其各位数字的立方和等于该数本身。例如153=13+53+33)
测试数据:(1) 输入 407 输出 yes
(1) 输入 150 输出no
7、某商场举行促销活动,根据顾客购买商品的总金额v给予相应的折扣,金额越大,折扣越高,具体如下:
v<200元 没有折扣
200≤v<400元 5%折扣
400≤v<800元 10%折扣
800≤v<1600元 15%折扣
1600≤v元 20%折扣
编程实现输入顾客购买商品的总金额,输出顾客实际需要支付的金额积极优惠的金额。
测试数据: 输入 3000
输出应付金额2400.000000元 优惠 600.000000元
7.
8. 三角形判断。从键盘输入3个正整数作为三角形3条边的边长值,判断这3条边能否构成三角形,如果能构成三角形,再判断是等边三角形、等腰三角形还是一般三角形,输出器相应的结果(“不能构成三角形”,“一般三角形”,“等腰三角形”,“等边三角形”)注:等腰三角形不包括三条边都相等的特例
测试数据:(1) 输入 3 2 1 输出 “不能构成三角形”
(2) 输入 3 5 6 输出“一般三角形”
(3) 输入 3 5 3 输出“等腰三角形”
(2) 输入 3 3 3 输出“等边三角形”
9. 从键盘输入表示月份的一个正整数,输入其对应的季度。用switch语句编程。
测试数据:(1) 输入 3 输出 “第一季度”
(2) 输入15 输出 “月份输入错误”
10. 从键盘x的值,根据下面的函数计算并输出y的值。
y=
测试数据:(1) 输入 0 输出 20
(2) 输入15.3 输出 45.300000
(3) 输入-10.5 输出 -0.500000
一、
二、 循环结构
1. 编程计算并输出n的阶乘(n为从键盘输入的任意一个小于20的正整数)
测试数据:输入 3
输出 6
2. 编程计算输出1到 100之间的奇数之和。
输出结果 2500
3. 编写求的程序。
输出结果 2046
4. 求(即求1!+2!+3!+...+20!) 。
输出结果 268040729
5. 编程计算并输出1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的和,n为从键盘输入的一个正整数。
测试数据:输入 3
输出 6
6. 有一分数序列,编程计算并输出这个数列的前20项之和。(要求结果保留两位小数)
输出结果 32.66
7. 编程输出1-100之间所有素数
8. 输入两个正整数 m和 n,求其最大公约数和最小公倍数。
测试数据: 输入 m=12, n=24
输出 最大公约数 12 最小公倍数 24
9. 编程输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如 153是一个水仙花数,因为 153=
输出结果:水仙花数有:153 370 371 407
10. 3025这个数具有一种独特的性质:将它平分为两段,即30和25,使之相加后求平方,即(30+25),恰好等于3025本身。请求出具有这样性质的全部四位数。
输出结果: 2025 3025 9801
11. 两位数13和62具有很有趣的性质:把它们个位数字和十位数字对调,其乘积不变,即13*62=31*26。编程序求共有多少对这种性质的两位数(个位与十位相同的不在此列,如11、22,重复出现的不在此列,如 13*62与62*13)。
输出结果:共有64对
12. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6 的因子为1、2、3,而6=1+2+3,因此6 是“完数”。编程序找出1000之内的所有完数。
输出结果 6 28 496
13. 有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的最小四位数。
输出结果 8712
14. 给出一个不多于4位的正整数,要求:①求出它是几位数②按逆序打印出各位数字。
测试数据: 输入 5632
输出 它是4位数 逆序为 2365
15. 编程输出如下九九乘法表.
16. 古代数学中的百马百担问题。假设大马一次驮4担,中马一次驮2担,小马4匹驮1担,三种马一共驮100担粮食。编程列出所有可能的方案(每种马均有),并统计共有多少种方案
输出结果 共有19种方案
17. 编程输出1600——2000年间所有闰年的年号,要求每5个年份为一行输出。
注:某年份能被4整除但不能被100整除或者能被400整除则称为闰年
18. 编程求s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n),n为从键盘输入的一个正整数。
三、 数组
1. 从键盘输入10个数,编程计算并输出它们的和及平均数。
2. 有一个整数数组,内放10个整数。编程输出其中最小数和它的下标,然后把它和数组中最前面的元素对换位置重新输出该数组。
3. 从键盘输入一个3×3的矩阵,编程分别计算并输出两条对角线上元素之和
4. 输出如下形式的杨辉三角形的n行(n为从键盘输入的一个正整数,例如输入n值为6时,输出如下形式的杨辉三角形)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
5. 从键盘输入一行英文字符,编程输出其中的单词个数(单词之间以空格分隔)。
四、 函数
1. 编写函数,求级数S=1+2+3+...n,并在主函数中求:
#include <stdio.h>
int f(int);
void main( )
{ float s;
s=(float)(f(3)+f(4)+f(5))/(f(5)+f(6)+f(7));
printf("SUM=%f\n",s);
}
int f( )
{
}
输出结果 SUM=0.484375
2. 编写一个递归函数f(n),求1+2+3+……+n的值
#include"stdio.h"
int f(int n)
{
}
main()
{int x,s;
scanf("%d",&x);
s=f(x);
printf("%d",s);
}
3. 以下给定程序的功能是:读入一个整数(2≤k≤10000),打印它的所有质因子(所有为素数的因子)。如:若输入2310,则应输出2、3、5、7、11.
请补充完整程序中函数f()的定义,使程序能得到正确的结果。注意:不要修改main()函数,也不得更改程序的结构
#include"stdio.h"
int f(int n)
{
}
main()
{int j,k;
scanf("%d",&k);
for(j=2;j<=k;j++)
if((!(k%j))&&f(j))
printf("%4d",j);
}
4. 以下程序中,fun()函数的功能是:根据形参m计算如下公式的值:
t=1+1/2+1/3+1/4+……+1/m
例如:输入5,则应输出2.283333
请补充完整程序中函数fun()的定义,使程序能得到正确的结果。注意:不要修改main()函数,也不得更改程序的结构
#include"stdio.h"
double fun(int m)
{
}
main()
{int m;
scanf("%d",&m);
printf("t=%lf",fun(m));
}
5. 编写一个函数num(),求二维数组所有元素的和,要求二维数组的行、列以及数组通过函数参数传递,并通过主函数调用求2行3列的数组的所有元素之和。
#include <stdio.h>
int num( )
{
}
void main()
{ int a[2][3],i,j;
int p=0,n=2,m=3;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
p=num(a,n,m);
printf("%d",p);
}
6. 在主函数中初始化一个3行4列的矩阵并将每个元素都输出,然后调用子函数sum(),分别计算每一行的元素之和,将和直接存放在每行的第一个元素中,返回主函数之后输出各行元素的和。
#include <stdio.h>
void sum( )
{
}
void main()
{int a[3][4],i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
sum(a,3,4);
for(i=0;i<3;i++)
{printf("%3d",a[i][0]);
printf("\n");
}
}
五、指针
1. 用指针的方法,把输入的一个字符串按逆序重新排序其字符,并输出。
2. 用指针的方法,将键盘输入的两个字符串连接起来形成一个新字符串。
3. 用指针的方法,将键盘上输入的一串数值字符串转换为数值输出。如输入:‘-132’,则输出为:-132。
展开阅读全文