• 10周慕课+期中模拟测试


    A. 计算球体积(格式化输出)

    时间限制1s

    内存限制128MB

    题目描述

    根据输入的半径值,计算球的体积。

    输入

    输入一个实数,表示球的半径。

    输出

    输出对应的球的体积,计算结果保留三位小数。

    1. #include
    2. int main()
    3. {
    4. float r,v;
    5. scanf("%f",&r);
    6. v=(4*3.1415926*r*r*r)/3;
    7. printf("%.3f",v);
    8. }

    B. 求N以内的完数

    一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子:

    输入

    N

    输出

    ? its factors are ? ? ?

    1. #define _CRT_SECURE_NO_WARNINGS
    2. #include
    3. int main()
    4. {
    5. int i,N,j, sum; //i表是N以内的可能完数,N表示范围的最大值,j表示可能的因数,sum表示因数求值
    6. scanf("%d", &N);//输入范围
    7. printf("%d以内的完数为:", N);
    8. sum = 0;//对sum初始化
    9. for (int i = 1; i <= N; i++)
    10. {
    11. for (int j = 1; j
    12. {
    13. if (i % j == 0)
    14. {
    15. sum += j;
    16. }
    17. }
    18. if (sum == i)//判断是否为完数
    19. printf("%5d", sum);
    20. sum = 0;//对sum初始化,否则会是原先的sum值
    21. }
    22. return 0;
    23. }

    C. 箱子匹配

    每个箱子都有长宽高,我们需要判断一个箱子能否放入另一个箱子中。

    例如有箱子A的尺寸是 3 x 4 x 5,箱子B的尺寸 是 5 x 6 x 4,经过比较判断,可以知道箱子A能够放入箱子B中,我们就说箱子A匹配箱子B。

    注意,当两个箱子尺寸相等,我们也认为它们匹配。

    输入

    第一行输入参数T,表示有T个测试实例

    第二行输入第1组实例的箱子A的长、宽、高,输入数值为小于1000的自然数

    第三行输入第1组实例的箱子B的长、宽、高,输入数值为小于1000的自然数

    以此类推

    输出

    如果两个箱子匹配,输出yes,否则输出no。逐行输出每一组的箱子匹配结果。

    1. #include
    2. int main()
    3. {
    4. int t;
    5. int a,b,c;
    6. int d,e,f;
    7. scanf("%d",&t);
    8. for(int i=1;i<=t;i++){
    9. scanf("%d%d%d",&a,&b,&c);
    10. scanf("%d%d%d",&d,&e,&f);
    11. if(a<=b){
    12. int n;
    13. n=a;a=b;b=n;
    14. }
    15. if(a<=c){
    16. int n;
    17. n=a;a=c;c=n;
    18. }
    19. if(b<=c){
    20. int n;
    21. n=b;b=c;c=n;
    22. }
    23. if(d<=e){
    24. int n;
    25. n=d;d=e;e=n;
    26. }
    27. if(d<=f){
    28. int n;
    29. n=d;d=f;f=n;
    30. }
    31. if(e<=f){
    32. int n;
    33. n=e;e=f;f=n;
    34. }
    35. if((a<=d&&b<=e&&c<=f)||(a>=d&&b>=e&&c>=f))
    36. printf("yes\n");
    37. else
    38. printf("no\n");
    39. }
    40. }

    D. 标识符(循环)

    C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线。c89规定标识符在31个字符以内,且不能是关键字。 假设忽略关键字比较,采用c89标准。输入一行,判断是否合法标识符。

    输入

    第一行,测试次数

    每组测试数据一行字符

    输出

    对每组测试数据,若为C语言合法标识符,输出YES,否则输出NO。

    1. #include
    2. #include
    3. int main() {
    4. char ascii[63];
    5. int i,j;
    6. for(i=0; i<10; i++) ascii[i]='0'+i;
    7. for(j=0; j<26; j++ ) ascii[i++]='a'+j;
    8. for(j=0; j<26; j++) ascii[i++]='A'+j;
    9. ascii[62]='_';
    10. int n;
    11. scanf("%d",&n);
    12. while(n--) {
    13. int flag=1;
    14. char c[100];
    15. scanf("%s",c);
    16. if(c[0]!='_'&&!(c[0]>='a'&&c[0]<='z')&&!(c[0]>='A'&&c[0]<='Z')) flag=0;
    17. else {
    18. for(int i=1; i<strlen(c); i++) {
    19. int temp=1;
    20. for(int j=0; j<63; j++) {
    21. if(c[i]==ascii[j]) temp=0;
    22. }
    23. if(temp) {
    24. flag=0;
    25. break;
    26. }
    27. }
    28. }
    29. if(flag) printf("YES\n");
    30. else printf("NO\n");
    31. }
    32. }

    A. 求a+aa+aaa+…+aa..a之和(循环)

    编程计算a+aa+aaa+…+aa..a(n个a)的值,a的取值范围为0—9,n的取值范围为0—5。n和a的值都由键盘输入,均为整数。

    输入

    键盘输入a和n

    输出

    求和

    1. #include
    2. int main()
    3. {
    4. int a,n,s=0,x;
    5. scanf("%d",&a);
    6. scanf("%d",&n);
    7. x=a;
    8. for(int i=1;i<=n;i++){
    9. s+=x;
    10. x=x*10+a;
    11. }
    12. printf("%d",s);
    13. }

    B. 找好人(循环)

    某学校有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。四个人的回答分别是:
    A说:不是我
    B说:是C
    C说:是D
    D说:C胡说。
    已知三人说的是真话,一个人说的是假话,现在编程求出做好事的到底是谁?

    要求: 编程求解,直接输出答案得0分。

    输入

    无输入

    输出

    X

    (X表示A,,B,C,D中的一人)

    1. #include
    2. int main()
    3. {
    4. char A,B,C,D,x;
    5. for(x=='A';x<='D';x++){
    6. if(((x!='A')+(x=='C')+(x=='D')+(x!='D'))==3)
    7. printf("%c",x);
    8. }
    9. return 0;
    10. }

    C. 鸡兔同笼(循环)

    一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物

    输入

    第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)

    输出

    输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开 如果没有满足要求的答案,则输出两个0。

    1. #include
    2. int main()
    3. {
    4. int n,a;
    5. int min,max;
    6. scanf("%d",&n);
    7. for(int i=1;i<=n;i++){
    8. scanf("%d",&a);
    9. if(a%2==1)
    10. printf("0 0\n");
    11. else
    12. {
    13. if(a%4==0){
    14. min=a/4;
    15. max=a/2;
    16. printf("%d %d\n",min,max);
    17. }
    18. else{
    19. max=a/2;
    20. min=a/4+1;
    21. printf("%d %d\n",min,max);
    22. }
    23. }
    24. }
    25. }

    D. 特殊四位数(循环)

    已知四位数3025具有一个特殊性质:它的前两位数字30与后两位数字25之和是55,而55的平方正好等于3025。编程找出所有具有这种性质的四位数。输出格式:每一个四位数自占一行

    输入

    输入测试次数t (t大于0)

    后跟t行,每行输入一个正整数

    输出

    对每组测试数据,输出YES或NO,表示是否特征四位数。

    1. #include
    2. int main()
    3. {
    4. int t,n;
    5. int a,b,c;
    6. scanf("%d",&t);
    7. for(int i=1;i<=t;i++){
    8. scanf("%d",&n);
    9. if((n>=1000)&&(n<=9999)){
    10. a=n/100;b=n%100;
    11. c=a+b;
    12. if(c*c==n)
    13. printf("YES\n");
    14. else{printf("NO\n");}
    15. }
    16. else{printf("NO\n");}
    17. }
    18. }

    E. 开灯问题

    有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000

    输入

    输入一组数据:n和k

    输出

    输出开着的灯编号

    1. #include
    2. int main()
    3. {
    4. int n,k;
    5. int i,j,m;
    6. int sum;
    7. scanf("%d %d",&n,&k);
    8. printf("1");
    9. for(i=2;i<=n;i++){
    10. sum=0;
    11. for(j=2;j<=k;j++){
    12. if(i%j==0)
    13. sum+=1;
    14. }
    15. if(sum%2==0)
    16. printf("% d",i);
    17. }
    18. printf("\n");
    19. }

  • 相关阅读:
    软考 -结构化开发
    树的重心学习
    Vue el-table序号与复选框hover切换
    搜索与图论 ---- 匈牙利算法
    背景图片属性
    【Hadoop】-Apache Hive使用语法与概念原理[15]
    【牛客网】Verilog快速入门-基础语法(1)
    Java---数组(练习)
    C#基础入门教程-数据类型
    【C++风云录】走进量子世界:探索C++工具库助力量子计算与量子编程
  • 原文地址:https://blog.csdn.net/weixin_62431082/article/details/127644385