02-0. 整数四则运算(10)

本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。

输入格式:

输入在一行中给出2个正整数A和B。

输出格式:

在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。

输入样例:

3 2

输出样例:

3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
3 / 2 = 1
解题
#include <stdio.h>int main(){    int a = 0;    int b = 0;    scanf("%d %d",&a, &b);    printf("%d + %d = %d\n",a, b, a+b);    printf("%d - %d = %d\n",a, b, a-b);    printf("%d * %d = %d\n",a, b, a*b);    printf("%d / %d = %d\n",a, b, a/b);    return 0;}
02-1. 厘米换算英尺英寸(15)

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

5
6
解题
#include <stdio.h>int main(){    int cm = 0;    scanf("%d", &cm);    int foot= cm / 30.48;    int inch= ((cm / 30.48) - foot)*12;    printf("%d %d",foot,inch);    return 0;}

02-2. 然后是几点(15)

有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。

输入格式:

输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。

输出格式:

输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310
解题
方法一:#include <stdio.h>int main(){    int time,add,hour,minute,hour1,minute1,minute2;    //现在时间,和经过的时间,需要计算用到的小时和分钟

    scanf("%d %d",&time,&add); //输入现在时间和经过的时间    hour1=time/100;            //现在时间取小时出来    minute1=time%100;          //现在时间取分钟出来    minute2=hour1*60+minute1;  //把小时乘60加上分钟,算出现在时间总分钟数    minute=minute2+add;        //算出经过后的总分钟    hour=minute/60;            //求出小时部分    minute=minute%60;          //取余数求出分钟部分    printf("%d",hour*100+minute); //小时乘100加上分钟算出答案    return 0;}方法二:#include<stdio.h>int main(){    int time, add;               //现在时间,经过时间    int hour, minute;            //需要用到的小时,需要用到的分钟    scanf("%d %d", &time, &add); //输入现在时间,经过时间    hour = time / 100;           //得出小时    minute = time % 100;         //得出分钟   minute += add;                //分钟加上经过分钟数   while (minute >= 60)          //选择 当分钟小于等于60    {        minute -= 60;            //分钟数减去60        hour += 1;               //小时加上1

    }    while (minute < 0)           //选择 当分中数小于0    {        minute += 60;            //分钟加60        hour -= 1;               //小时减去1    }    printf("%d", hour * 100 + minute);//小时乘上100加上分钟数 然后输出    return 0;}

02-3. 逆序的三位数(10)

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

123

输出样例:

321
解题
#include <stdio.h>int main(){    int a,b,c,abc;    scanf("%d",&abc);

    a=abc/100;  //原数百位    b=abc/10%10;//原数十位    c=abc%10;   //原数个位

    printf("%d",c*100+b*10+a);    return 0;}

02-4. BCD解密(10)

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出格式:

输出对应的十进制数。

输入样例:

18

输出样例:

12
解题
方法一:
#include <stdio.h>int main(){   int x;               //输入一个值x

    scanf("%d",&x);     //%d读入一个十进制数x

    printf("%x",x);     //%x输出一个16进制x

    return 0;}方法二:#include <stdio.h>int main(){    int a,b,n;    scanf("%d",&n);      //输入值    a=n/16;              //取整 求出16进制个位    b=n%16;              //取余 求出16进制十位    printf("%d",a*10+b); //十位乘10加上个位,求出16进制数    return 0;}

03-0. 超速判断(10)

模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。

输入格式:

输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。

输出格式:

在一行中输出测速仪显示结果,格式为:“Speed: V - S”,其中V是车速,S或者是Speeding、或者是OK。

输入样例1:

40

输出样例1:

Speed: 40 - OK

输入样例2:

75

输出样例2:

Speed: 75 - Speeding
解题:
#include <stdio.h>

int main(int argc, const char * argv[]){

    int speed;

    scanf("%d",&speed);    if (speed>60)    {        printf("Speed: %d - Speeding\n",speed);

    }    else    {        printf("Speed: %d - OK\n",speed);    }

    return 0;}

03-1. 三天打鱼两天晒网(15)

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

输入格式:

输入在一行中给出1个不超过1000的正整数N。

输出格式:

在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。

输入样例1:

103

输出样例1:

Fishing in day 103

输入样例2:

34

输出样例2:

Drying in day 34

解题:

#include <stdio.h>

int main(int argc,constchar * argv[])

{

//一天-二天-三天-四天-五天

//打鱼-打鱼-打鱼-晒网-晒网

//三天打鱼两天晒网,周期是5天,除以5,余数为4即前三天为打鱼,第四天为晒网,整除的话也是晒网。

int n;

scanf("%d",&n);

if ((n%5)==4||(n%5)==0) //余数为4,或者整除无余数,显示晒网

{

printf("Drying in day %d\n",n);

}

else                    //否则显示为打鱼

{

printf("Fishing in day %d\n",n);

}

return0;

}

03-2. 用天平找小球(10)

三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。

输入格式:

输入在一行中给出3个正整数,顺序对应球A、B、C的重量。

输出格式:

在一行中输出唯一的那个不一样的球。

输入样例:

1 1 2

输出样例:

C
解题
#include <stdio.h>

int main(int argc, const char * argv[]){    //三个小球找出不同,即对三个数字比价运算    int a,b,c;    scanf("%d %d %d",&a,&b,&c);

    //满足条件1 a=b    if (a==b)    {        printf("C");  //a=b时,输出c    }    //else if 否则,满足条件2 b=c    else if(b==c)    {        printf("A");    }    //else if 否则,满足条件3 a=c    else if(a==c)    {        printf("B");    }    return 0;}

03-3. 12-24小时制(15)

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的“:”符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:在scanf的格式字符串中加入“:”,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串“AM”或表示下午的字符串“PM”。如“5:6 PM”表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM

输入样例:

21:11

输出样例:

9:11 PM
解题
#include <stdio.h>

int main(int argc, const char * argv[]){    int m,n;

    scanf("%d:%d",&m,&n);    //&&逻辑 与    if (m>=0 && m<12) {        printf("%d:%d AM\n",m,n);//满足条件1 m大于等于0 并且m小于12    }    else if (m==12){        printf("%d:%d PM\n",m,n);//满足条件2 m等于12    }    else if (m>12 && m<=24){   //满足条件4 大于12 并且小于等于24        printf("%d:%d PM\n",m%12,n);    }    return 0;}

03-4. 成绩转换(15)

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:

  • 大于等于90分为A;
  • 小于90且大于等于80为B;
  • 小于80且大于等于70为C;
  • 小于70且大于等于60为D;
  • 小于60为E。

    输入格式:

    输入在一行中给出1个整数的百分制成绩。

    输出格式:

    在一行中输出对应的五分制成绩。

    输入样例:

    90
    

    输出样例:

    A
    解题
    #include <stdio.h>
    
    int main(int argc, const char * argv[]){
    
        int grade=0;    scanf("%d",&grade);    //满足条件1 大于等于90分为A    if (grade>=90) {        printf("A\n");    }    //满足条件2 小于90且大于等于80为B    else if (grade<90 && grade>=80){        printf("B\n");    }    //满足条件3 小于80且大于等于70为C    else if (grade<80 && grade>=70){        printf("C\n");    }    //满足条件4 小于70且大于等于60为D    else if (grade<70 && grade>=60){        printf("D\n");    }    //满足条件5 小于60为E    else if (grade<60){        printf("E\n");    }    return 0;}

04-0. 求符合给定条件的整数集(15)

给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

输入格式:

输入在一行中给出A。

输出格式:

输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

输入样例:

2

输出样例:

234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 54
3
解体
#include <stdio.h>//a开始的的连续3个数。无重复的组合。每行六个,每个间有空格int main(){    int a;    scanf("%d",&a);    //这里需要a,a+1,a+2,a+3,所以需要连续的三个循环    int i,j,k;    int cnt=0;    i=a;    while (i<=a+3) {        j=a;        while (j<=a+3) {            k=a;            while (k<=a+3) {                if (i!=j) {                    if (i!=k) {                        if (j!=k) {                            cnt++;                            printf("%d%d%d",i,j,k);                            if (cnt==6) {                                printf("\n");                                cnt=0;                            }else {printf(" ");}                        }                    }                }

                k++;            }            j++;        }        i++;    }

    return 0;}
 

04-1. 水仙花数(20)

水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例 如:153 = 13 + 53+ 33。 本题要求编写程序,计算所有N位水仙花数。

输入格式:

输入在一行中给出一个正整数N(3<=N<=7)。

输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。

输入样例:

3

输出样例:

153
370
371
40
7
解题
#include <stdio.h>

int main(){

    int n;    scanf("%d",&n);    n=3;    int first=1;    int i=1;    while (i<n) {        first  *=10;        i++;    }    //printf("first=%d\n",first);    //遍历100-999    i=first;    while (i<first*10) {        int t=i;        int sum=0;        do{            int d=t%10;            t/=10;            int p=d;            int j=1;            while (j<n) {                p *=d;                j++;            }            sum +=p;        }while (t>0);        if (sum==i) {            printf("%d\n",i);        }        i++;    }        return 0;}

04-2. 打印九九口诀表(15)

下面是一个完整的下三角九九口诀表:

1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

本题要求对任意给定的1位正整数N,输出从1*1到N*N的部分口诀表。

输入格式:

输入在一行中给出一个正整数N(1<=N<=9)。

输出格式:

输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例:

1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16

解题
#include <stdio.h>

int main(){    int n;    scanf("%d",&n);

    int i,j;    i=1;    while (i<=n) {        j=1;       while (j<=i) {        printf("%d*%d=*%d",j,i,i*j);        if (i*j<10) {            printf("   ");        }else {            printf("  ");        }        j++;    }    printf("\n");    i++;    }    return 0;}

04-3. 统计素数并求和(20)

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出2个正整数M和N(1<=M<=N<=500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31

输出样例:

7 143

解题
#include <stdio.h>

int main(int argc, const char * argv[]){

    int m,n;    int i;    int cnt=0;    int sum=0;    scanf("%d %d",&m,&n);    if (m==1)        m=2;    for (i=m; i<=n; i++) {        int isPrime=1;        int k;        for (k=2; k<i-1; k++) {            if (i%k==0) {                isPrime=0;                break;            }        }    //判断i是否是素数        if (isPrime) {            cnt++;            sum+=i;        }    }    printf("%d %d\n",cnt,sum);    return 0;}

04-4. 猜数字游戏(15)

猜数字游戏是令系统随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。

输入格式:

输入第一行中给出2个不超过100的正整数,分别是系统产生的随机数、以及猜测的最大次数N。随后每行给出一个用户的输入,直到出现负数为止。

输出格式:

在一行中输出每次猜测相应的结果,直到输出猜对的结果或“Game Over”则结束。

输入样例:

58 4
70
50
56
58
60
-2

输出样例:

Too big
Too small
Too small
Good Guess!
解题
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int m = 0, n = 0;
  5. //  int m = rand()%100+1;
  6. //  int n = rand()%100+1;
  7. int count = 0;
  8. int a = 0;
  9. int guess=0;
  10. int over=0;
  11. scanf("%d %d",&m,&n);
  12. while(count<n&&over==0)
  13. {
  14. over=0;
  15. scanf("%d",&guess);
  16. if(guess<0)
  17. {
  18. printf("Game Over\n");
  19. over=1;
  20. }
  21. else if(guess==m&&count==0)
  22. {
  23. printf("Bingo!\n");
  24. over=1;
  25. }
  26. else if(guess==m&&count<3)
  27. {
  28. printf("Lucky You!\n");
  29. over=1;
  30. }
  31. else if(guess==m)
  32. {
  33. printf("Good Guess!\n");
  34. over=1;
  35. }
  36. else if(guess>m)
  37. {
  38. printf("Too big\n");
  39. }
  40. else if(guess<m)
  41. {
  42. printf("Too small\n");
  43. }
  44. count++;
  45. }
  46. if(over==0)
  47. {
  48. printf("Game Over\n");
  49. }
  50. return 0;
  51. }

05-0. 求序列前N项和(15)

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出部分和的值,精确到小数点后2位。题目保证计算结果不超过双精度范围。

输入样例:

20

输出样例:

32.66
解题
#include <stdio.h>

int main(){    int n;    double dividend,divisor;    double sum=0;    int i;    double t;

    scanf("%d",&n);    //n=20000;    dividend=2;    divisor=1;    for (i=1;i<=n; i++) {        sum+=dividend/divisor;        t=dividend;        dividend=dividend+divisor;        divisor=t;}    printf("%.2f\n",sum);    return 0;}

05-1. 约分最简分式(15)

分数可以表示为“分子/分母”的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。

输入格式:

输入在一行中给出一个分数,分子和分母中间以斜杠“/”分隔,如: 12/34 表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。

提示:在scanf的格式字符串中加入“/”,让scanf来处理这个斜杠。

输出格式:

在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用“分子/分母”的形式表示分数。如 5/6表示6分之5。

输入样例:

60/120

输出样例:

1/2
解题
#include <stdio.h>

int main(){    int dividend,divisor;    scanf("%d/%d",&dividend,&divisor);

    int a=dividend;    int b=divisor;    int t;    while (b>0) {        t=a%b;        a=b;        b=t;    }     printf("%d/%d\n",dividend/a,divisor/a);

    return 0;}

05-1. 约分最简分式(15)

分数可以表示为“分子/分母”的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。

输入格式:

输入在一行中给出一个分数,分子和分母中间以斜杠“/”分隔,如: 12/34 表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。

提示:在scanf的格式字符串中加入“/”,让scanf来处理这个斜杠。

输出格式:

在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用“分子/分母”的形式表示分数。如 5/6表示6分之5。

输入样例:

60/120

输出样例:

1/2
解题
#include <stdio.h>

int main(){    int dividend,divisor;    scanf("%d/%d",&dividend,&divisor);

    int a=dividend;    int b=divisor;    int t;    while (b>0) {        t=a%b;        a=b;        b=t;    }     printf("%d/%d\n",dividend/a,divisor/a);

    return 0;}

05-2. 念数字(15)

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出“fu”字。十个数字对应的拼音如下:

0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu

输入格式:

输入在一行中给出一个整数,如: 1234 。

提示:整数包括负数、零和正数。

输出格式:

在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si

输入样例:

-600

输出样例:

fu liu ling ling
解题

#include <stdio.h>

int main(){    int x;    scanf("%d",&x);

    if (x<0) {        printf("fu ");        x=-x;    }    int mask=1;    int t=x;    while (t>9) {        t/=10;        mask*=10;    }    do{        int d= x/mask;        switch (d) {            case 0:printf("ling");break;            case 1:printf("yi");break;            case 2:printf("er");break;            case 3:printf("san");break;            case 4:printf("si");break;            case 5:printf("wu");break;            case 6:printf("liu");break;            case 7:printf("qi");break;            case 8:printf("ba");break;            case 9:printf("jiu");break;        }        if (mask>9) printf(" ");            x%=mask;            mask/=10;    }while (mask>0);            printf("\n");            return 0;        }

05-3. 求a的连续和(15)

输入两个整数a和n,a的范围是[0,9],n的范围是[1,8],求数列之和S = a+aa+aaa+...+aaa...a(n个a)。 如a为2、n为8时输出的是2+22+222+...+22222222的和。

输入格式:

输入在一行中给出两个整数,先后表示a和n。

输出格式:

在一行中输出要求的数列之和。

输入样例:

2 4

输出样例:

2468
解题
#include <stdio.h>

int main(int argc, const char * argv[]){

    int a,n;    scanf("%d %d",&a,&n);

    int sum=0;    int i;    int t=0;    //0*10+2 2*10+2 (2*10+2)*10+2    for (i=0; i<n; i++) {        t=t*10+a;        sum+=t;    }    printf("%d\n",sum);    return 0;}

06-0. 混合类型数据格式化输入(5)

本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:

输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:

在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:

2.12 88 c 4.7

输出样例:

c 88 2.12 4.70
解题
  1. #include <stdio.h>
  2. int main()
  3. {
  4. double a ;
  5. int b ;
  6. char c ;
  7. double d ;
  8. scanf("%lf %d %c %lf",&a,&b,&c,&d);
  9. //  printf("%lf %d %c %lf",a,b,'c',d);
  10. printf("%c %d %.2lf %.2lf",c,b,a,d);
  11. return 0;
  12. }

06-1. 简单计算器(20)

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。

输入格式:

输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。

输出格式:

在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

输入样例:

1+2*10-10/2=

输出样例:

10

  1. #include <stdio.h>
  2. int main() {
  3. char symbol = '0' ;
  4. int result, a;
  5. int i = 0;
  6. scanf("%d", &result);
  7. while(symbol != '=') {
  8. scanf("%c", &symbol);
  9. if(symbol == '=')
  10. break;
  11. scanf("%d", &a);
  12. if(symbol == '+')
  13. result = result + a;
  14. else if(symbol == '-')
  15. result = result - a;
  16. else if(symbol == '*')
  17. result = result * a;
  18. else if(symbol == '/') {
  19. if(a != 0)
  20. result = result / a;
  21. else
  22. i = 1;
  23. }
  24. else
  25. i = 1;
  26. }
  27. if(i)
  28. printf("ERROR\n");
  29. else
  30. printf("%d\n", result);
  31. return 0;
  32. }

06-2. 字符串字母大小写转换(10)

输入一个以#结束的字符串,本题要求将小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其它字符不变。

输入格式:

输入在一行中给出一个长度不超过40的、以#结束的非空字符串。

输出格式:

在一行中按照要求输出转换后的字符串。

输入样例:

Hello World! 123#

输出样例:

hELLO wORLD! 123
解题
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #define STRING_SIZE 40
  4. int main() {
  5. int i = 0;
  6. char str[STRING_SIZE + 1] ;
  7. gets(str);
  8. while(str[i] != '#') {
  9. if(str[i]>=97 && str[i]<=122)
  10. str[i] = str[i] - 32 ;
  11. else if(str[i]>=65 && str[i]<=90)
  12. str[i] = str[i] + 32 ;
  13. ++i;
  14. }
  15. str[i] = '\0';
  16. printf("%s\n", str);
  1. return 0;
  2. }

06-3. 单词长度(15)

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格;最后的‘.’不计算在内。

输入格式:

输入在一行中给出一行文本,以‘.’结束。

提示:用scanf("%c",...);来读入一个字符,直到读到‘.’为止。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It's great to see you here.

输出样例:

4 5 2 3 3 4

解题

  • #include <stdio.h>
  • #include <string.h>
  • #define STRING_SIZE 1000
  • int main() {
  • char str[STRING_SIZE + 1];
  • char *i ;
  • int len ;
  • gets(str);
  • i = strtok(str, " .") ;
  • while(i != NULL) {
  • len = strlen(i) ;
  • i = strtok(NULL, " .") ;
  • if(i != NULL)
  • printf("%d ", len);
  • else
  • printf("%d", len);
  • }
  • return 0;
  • }

  • #include <stdio.h>
  • #include <string.h>
  • #define STRING_SIZE 1000
  • int main() {
  • char str[STRING_SIZE + 1];
  • char *i ;
  • int len ;
  • gets(str);
  • i = strtok(str, " .") ;
  • while(i != NULL) {
  • len = strlen(i) ;
  • i = strtok(NULL, " .") ;
  • if(i != NULL)
  • printf("%d ", len);
  • else
  • printf("%d", len);
  • }
  • return 0;
  • }

中国大学MOOC-翁恺-C语言程序设计习题集(学习笔记)相关推荐

  1. 翁恺C语言程序设计:学习笔记1

    解释与编译 解释(Python):借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行(不是直接运行,而是在这个帮助程序上运行): 编译(C):借助一个程序,就像一个翻译,把你的程序翻译成计 ...

  2. 中国大学MOOC翁恺C语言PTA入门练习(更新中)

    目录 7-1 重要的话说三遍 (5 分) 7-2 I Love GPLT (5 分) 7-3 输出带框文字 (5 分) 7-4 输出菱形图案 (5 分) 7-5 输出倒三角图案 (5 分) 7-6 厘 ...

  3. 中国大学MOOC课程《Python语言程序设计》课后练习第一周

    中国大学MOOC课程<Python语言程序设计>课后练习第一周 1.字符串拼接 python从2.6版本后增加了format函数,用来代替%s,%r等格式化字符串: # -*- codin ...

  4. 中国大学 MOOC 课程 《Python 语言程序设计》第六周

    中国大学 MOOC 课程 <Python 语言程序设计>第六周 一.lambda函数 1,lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式.l ...

  5. 浙大翁恺pat练习题_PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)...

    2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和.差.积 ...

  6. 数字特征值 中国大学生mooc 翁恺 C语言

    题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x,如果x和n的奇偶性相 ...

  7. 奇偶个数 中国大学生mooc 翁恺 C语言

    题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果输入 ...

  8. 中国大学MOOC课程《Python语言程序设计》第五章 七段数码管绘制 引发的时间问题和海龟速度问题

    这门课主要内容就是用海龟绘制当前的时间,引发学生们对函数功能的运用以及模块化思维的思考.在自己抄写代码时发现了时间问题,还有海龟速度问题,都已解决,具体如下.首先是代码如下: import turtl ...

  9. 中国大学MOOC课程《Python语言程序设计》第6章 文本词频人物统计 threekingdoms三国演义代码及解析

    以下内容为嵩天老师在课堂上讲解的,分析三国演义中top20人物,也就是出现次数最高的20个人物.为方便童鞋们拷贝,我把代码及解析放到下面,且我多费了点人工,整出top30.通过这个例子可以很好地理解解 ...

最新文章

  1. 洛谷P4568 飞行路线 最短路k条免费
  2. 使用antd报less的错误
  3. 表单提交中get 和post方式的区别
  4. Spring事务传播行为7种类型 --- 看一遍就能记住!
  5. linux win10 时间同步服务器,windows和linux下服务器时间如何校正?
  6. 路由器访问控制列表详解
  7. hp液晶显示器测试软件,专业4K标准 惠普DreamColor Z32x显示器测试
  8. 怎么批量修改文件夹名称?
  9. uniapp 获取屏幕高度并赋值
  10. 日常Bug:0xC0000135
  11. html文件做屏保win10,win10系统把屏保设置为桌面壁纸的处理方法
  12. python相对导入常见问题和解决方案
  13. Java Web注册表单编写
  14. 数学建模学习记录——数学规划模型
  15. 【LWIP】LWIP协议|相关知识汇总|LWIP学习笔记
  16. 音响功放用R型变压器有什么好处?
  17. 华为自研系统鸿蒙为什么也要基于linux来开发?
  18. MacBook上有哪些好用的学习类软件
  19. 888d标签软件 deli_得力DL-888D条码标签打印机驱动
  20. STM32 蓝牙平衡小车(一)硬件原理图

热门文章

  1. 翻棋子游戏与Nim游戏
  2. 通信领域的dB计量单位
  3. 盘点2018上半年最受欢迎的前端开发!
  4. 基于51单片机的计步器步数检测无线蓝牙APP上传方案原理图设计
  5. 5.服务网关:GateWay
  6. C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯
  7. 2021-2027全球及中国红外探测器芯片行业研究及十四五规划分析报告
  8. 知识点滴 - X射线和伽马射线有什么区别?
  9. 计算机网络安全叙述,计算机网络安全涉及
  10. 计算机界五位巾帼英雄