暑期培训-7月9日记录

一、主要内容:

1. sizeof函数和strelen函数

sizeof判断数据类型(表达式)的长度,strlen统计字符串长度,到0\0为止。

2. 负数在内存中以补码(反码+1)形式储存,最高位是符号位,01负。

3. 不同类型数据间运算时,需要转换类型(小转大),例如有符号数(-128~127)转换成无符号(0~255),负数符号也会参与运算。

4. const修饰只读变量,不可直接通过变量名更改对应内存中的值。

5. 运算符:

(1) /%常用来求出某数据的各个位数,从而可以对它们做新的操作。以下是将正确输入的数反向输出的代码:

    int a,ge,shi,bai;

    scanf("%d",&a);
    if(a>99&&a<1000) //锁定在3位数字
    {
        ge = a%10;
        shi = a/10%10;
        bai = a/100;
    }
    else
    {
        printf("input error\n");
    }
	
    printf("%d\n",ge*100+shi*10+bai);

(2) <<>>可让数据逐位左移右移,下面是以此以此实现判断字符中1的个数的代码:

    char a,b,i;
    scanf("%c",&a);//8位
    for(i=0;i<8;i++)
    {
        if((a<<i)&0x80)
        {
            b++;
        }       
    }
    printf("%d\n",b);

6. continuebreak的区别:前者条件达成时可跳出本层循环,后者跳出全套循环。

二、作业:

1.求两个数的最大公约数,最小公倍数。

    int max,min,mul,temp;

    printf("Please input two num.\n");
    scanf("%d,%d",&max,&min);
    mul = max*min; //求出两数据的乘积
    if(max<min)//判断输入的两个数据的大小判断是否进行位置的交换
    {
        temp = max;
        max = min;
        min = temp;
    }
    while((max%min)!='\0')//辗转相除求出最大公约数
    {
        temp = min;
        min = max%min;
        max = temp;
    }
    printf("最大公约数:%d.\n",min);
    printf("最小公倍数:%d.\n",mul/min); 

结果截图:


2. 200~300之间不能被3整除的数,5个一行输出。

    int i,j;
    for(i=200; i<=300; i++)
    {
        if(i%3!=0)
        {
            printf("%5d",i);
            if((++j)%5==0)
            {
                printf("\n");
            }
            else
                printf("\t");
        }
    }

	return 0;


猜你喜欢

转载自blog.csdn.net/jsxyma/article/details/80977303