复试编程训练三

21.用原来字母后面的第四个字母代替原来的字母。"China"-->“Glmre”

用赋初值的办法

#include <stdio.h>

int main()
{
    char c1='C',c2='h',c3='i',c4='n',c5='a';
    c1+=4;
    c2+=4;
    c3+=4;
    c4+=4;
    c5+=4;
    printf("密码是:%c%c%c%c%c",c1,c2,c3,c4,c5);

    printf("\n");
    return 0;
}

运行结果:

22.要求按考试成绩的等级输出百分制分数段

#include <stdio.h>

int main()
{
    char grade;
    scanf("%c",&grade);
    switch(grade)
    {
    case 'A':
        printf("90~100\n");
        break;
    case 'B':
        printf("80~89\n");
        break;
    case 'C':
        printf("70~79\n");
        break;
    case 'D':
        printf("60~69\n");
        break;
    default:
        printf("60(不包括)以下\n");
    }

    return 0;
}

运行结果:

23.用switch处理菜单命令

#include <stdio.h>

void action1(int a,int b)
{
    printf("a-b=%d\n",a-b);
}
void action2(int a,int b)
{
    printf("a+b=%d\n",a+b);
}
int main()
{
    int a=15,b=23;
    char ch;
    ch=getchar();
    switch(ch)
    {
    case 'A':
        action1(a,b);
        break;
    case 'B':
        action2(a,b);
        break;
    }
    return 0;
}

运行结果:

注释:若switch的case语句不用break跳出,则结果如下:

24.给出一个不多于5位数的正整数:1.求它是几位数;2.分别输出每位数字;3.按逆序输出各位数,原为123,输出321

#include <stdio.h>

int main()
{
    int num;
    scanf("%d",&num);
    int place;   //求输入数字的位数
    if(num>9999)
        place=5;
    else if(num>999&&num<10000)
        place=4;
    else if(num>99&&num<1000)
        place=3;
    else if(num>9&&num<100)
        place=2;
    else
        place=1;
    printf("%d是%d位数\n",num,place);
    int a,b,c,d,e;//得到每位数
    a=num/10000;
    b=num/1000%10;
    c=num/100%10;
    d=num%100/10;
    e=num%10;
    printf("逆序输出各位数:");
    switch(place)  //逆序输出各位数
    {
    case 5:
        printf("%d %d %d %d %d\n",e,d,c,b,a);
        break;
    case 4:
        printf("%d %d %d %d\n",e,d,c,b);
        break;
    case 3:
        printf("%d %d %d\n",e,d,c);
        break;
    case 2:
        printf("%d %d\n",e,d);
        break;
    case 1:
        printf("%d\n",e);
        break;
    }

    return 0;
}

运行结果:

25.求m和n的最大公约数和最小公倍数

#include <stdio.h>

int main()
{
    int m,n,t,maxy,minb;   //maxy为最大公约数,minb为最小公倍数
    scanf("%d %d",&m,&n);
    if(m<n)   //将m与n的小者放在n中
    {
        t=n;
        n=m;
        m=t;
    }
    for(int i=1; i<=n; i++) //求最大公约数
        if(n%i==0&&m%i==0)
            maxy=i;
    minb=m*n/maxy;   //求最小公倍数
    printf("最大公约数为%d,最小公倍数为%d\n",maxy,minb);
    return 0;
}

运行结果:

26.输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数

#include <stdio.h>

int main()
{
    char ch;
    int a=0,b=0,c=0,d=0;
    while((ch=getchar())!='\n')
    {
        if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
            a++;
        else if(ch>='0'&&ch<='9')
            b++;
        else if(ch==' ')
            c++;
        else
            d++;
    }
    printf("英文字母:%d个\n数字:%d个\n空格:%d个\n其他:%d个\n",a,b,c,d);
    return 0;
}

运行结果:

27.求Sn=a+aa+aaa+aaaa+...(n个a)的值。例如:2+22+222+2222+...(5个2)

#include <stdio.h>

int main()
{
    int a,n,sum=0,i=1,temp=0;  //temp为每个加上的元素
    scanf("%d %d",&a,&n);
    while(i<=n)
    {
        temp=temp*10+a;  //下一个元素为上一个元素的*10+a
        sum+=temp;
        i++;
    }
    printf("%d\n",sum);
    return 0;
}

运行结果:

28.求sum(n!),即1!+2!+...+n!

#include <stdio.h>

int main()
{
    int n,t=1,sum=0;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
        t=t*i;
        sum+=t;
    }
    printf("Result:%d\n",sum);
    return 0;
}

运行结果:

29.求sum(k)+sum(k²)+sum(1/k)

#include <stdio.h>

int main()
{
    int k1,k2,k3;
    double sum=0.0;
    for(k1=1; k1<=100; k1++)
        sum+=k1;
    //printf("%.2lf\n",sum);
    for(k2=1; k2<=50; k2++)
        sum+=k2*k2;
    //printf("%.2lf\n",sum);
    for(k3=1; k3<=10; k3++)
        sum+=1.0/k3;
    printf("%.2lf\n",sum);
    return 0;
}

运行结果:

30.输出所有的水仙花数,各位数字的立方和等于该数本身。如:153=1+5*5*5+3*3*3

#include <stdio.h>
#include <math.h>
int main()
{
    int num,a,b,c;
    for(num=100; num<1000; num++)
    {
        a=num%10;
        b=num/10%10;
        c=num/100;
        if(num==pow(a,3)+pow(b,3)+pow(c,3))
            printf("%d\n",num);
    }
    return 0;
}

运行结果:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 南京大学复试一般是分为C线和非C线两种类型。C线成绩相对更加优秀,所以通过C线复试的考生需要参加上机考试。上机考试的时间一般为个小时。 上机考试是通过计算机技术进行的实践性考试,以考查考生在计算机相关领域的专业知识和实际操作能力。考试内容可能包括编程、数据库操作、系统管理等等。 上机考试的要求相对较高,考生需要具备良好的计算机操作技能和解决问题的能力。在考试过程中,时间也是非常宝贵的,考生需要快速准确地完成各项任务。 考试结束后,考官会根据考生的表现进行评分和评价。考生需要展现出自己的实际能力和对计算机科学的充分了解,才能获得一个好的成绩。 总的来说,南京大学复试C线上机考试时间为个小时,需要考生对计算机技术有较深入的了解和实际操作能力。通过合理安排时间,认真准备,相信每位考生都能取得令人满意的成绩。 ### 回答2: 南京大学复试C上机的时间为个小时。在这个小时内,考生需要完成一系列的测试和编程任务。 首先,考生可能会接受一些基础知识的测试,以评估他们对一些基本概念的理解和掌握程度。这些测试可能包括操作系统、网络和数据库等方面的知识,以及一些基础的编程语言和算法概念。 接下来,考生可能会面对一些编程任务。可能会提供一些具体的问题或场景,要求考生使用所学的编程语言和技术来解决。这些任务可能涵盖各种不同的编程领域,例如数据结构、算法设计、软件开发等。考生需要有效地分析问题、设计算法和编写代码来实现预期的功能。 在这个环节中,考生可能需要利用自己的编程能力和解决问题的能力来完成任务。要求考生能够使用合适的编程语言、工具和技术,并且能够有效地调试和测试自己的代码,确保其正确性和可靠性。 总之,南京大学复试C上机的个小时是考察考生在编程方面的能力和知识的时间。通过这一环节,学校可以更加全面地评估考生的实际操作能力和解决问题的能力,为录取提供有力参考。 ### 回答3: 南京大学的复试一般分为C、上机和面试个部分,其中上机环节持续个小时。上机是考察考生计算机应用能力的环节,对考生的编程能力、解决问题的能力以及思维逻辑能力有一定要求。 在上机考试中,考生可能会面临各种编程题目或者实际问题,要求考生在规定的时间内使用计算机解决问题或完成编程任务。这个环节主要考察考生的计算机基础知识和实践能力,考察其是否具备一定的编程能力和灵活运用计算机工具的能力。 由于时间有限,考生在上机考试中需要快速理解题目需求并采取有效的解题方法,同时考生也需要合理规划时间,分配给各个环节以保证任务的完成。考生需要熟练掌握一门编程语言,并运用其语法知识和算法设计技巧解决问题。 在上机考试中,考官会对考生的代码进行评判和分析,考察其代码的可读性、可靠性和效率性等方面。因此,考生在写代码时应注意注释的规范性、变量和函数的命名规范以及代码的结构清晰程度。 总之,南京大学的上机环节具有较高的难度,要求考生具备扎实的计算机知识和编程能力。考生需要充分准备并在复试过程中展现出自己的实践能力和解决问题的能力,以期在竞争激烈的复试中脱颖而出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值