10月29日实验

#ex1
#include<stdio.h> int main(){ int a =5,b=7,c=100,e,d,f; d=a/b*c;//d=0 其对应的数学式为d=(a/b)*c e=a*c/b;//e=71 其对应的数学式为e=(a*c)/b f=c/b*a;//f=70 其对应的数学式为f=(c/b)*a printf("d=%d,e=%d,f=%d ",d,e,f)
/*
* 变量d e f计算结果不同的原因是因为以上程序中的所有变量均为整形,无法取到小数点之后的数字,
*使得答案出现大的误差
*/
return 0;
}


#include<stdio.h>
int main(){
    int x=1234;
    float f=123.456;
    double m=123.456;
    char ch='a';
    char a[]="Hello World";//定义一个数组a,数组中存放字符串常量hello,world!
    int y=3,z=4;
    printf("%d %d
",y,z);
    printf("y=%d,z=%d
",y,z);
    printf("%8d,%2d
",x,x);
    /*
    *由实验结果看%2d所对映的数据输出为4位,C语言的规定中
    *%mdm为指定的输出字段的宽度。如果数据的位数小于m则左端补以空格,若大于m,则按实际位数输出。
    */ 
    printf("%f,%8f,%8.1f,%0.2f,%.2e
",f,f,f,f,f);
    /* 
    *%f数输出的最后一位会出现一个1,这种情况是因为十进制与二进制转换时有误差。
    *%mf改数据的输出于%m同规则 
    *%m.nf输出8位小数占一位被舍去的第一位四舍五入。
    *%0.nf输出的数小数占两位被舍去的第一位四舍五入。
    *%.2e指数型小数小数点前都为1位,%m.ne m为整个数据输出后占的位数,n为该数小数点后占的位数。 
    */ 
    printf("%lf
",m);//取双精度型所以这里在小数点后6位输出的情况下,不会出现最后一位为1的情况 。 
    printf("%3c
",ch);//输出3位不够左边补齐。 
    printf("%s
%15s
%10.5s
%2.5s
%.3s
",a,a,a,a,a);//m.ns中n表示输出字符串前面的多少位。(剩余规则与前面一致) 
    return 0; 
} 

#include<stdio.h>
int main(){
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    scanf("%d%d%d",&a1,&a2,&a3);
    /*
    *&是取地址操作符,当接收元素不是地址时要用&获得变量的地址,当接收元素已经是地址时就不用&了
    *比如输入的是数字组的时候。 
    */
    
    printf("%d,%d,%d
",a1,a2,a3);
    scanf("%c%c%c",&c1,&c2,&c3);// 输入时不能有空格 
    printf("%c%c%c
",c1,c2,c3);
    scanf("%lf,%lf",&x,&y);//因为定义的x与y是双精度型小数,所以输入所对应的也应是双精度型 
    printf("%f,%lf
",x,y);
    return 0;
} 

#include<stdio.h>
int main(){
 char x;
 x=getchar();
 if(x>=48&&x<=57)
 printf("%c是数字字符 ",x);
 else if((x>=65&&x<=90)||(x>=97&&x<=122))
 printf("%c是英文字符 ",x);
 else
 printf("%c是其他字符",x);
 return 0;
}

#include<stdio.h>
int main(){
    char ans1,ans2;
    printf("复习了没?(复习了就输入y或Y,没有就输入n或N):");
    ans1=getchar();
    getchar();
    printf("
动手敲代码了吗?(敲了就输入y或Y,没有就输入n或H):");
    ans2=getchar();
    if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y'))//因为该处为逻辑判断所以需要输入“==” 
    printf("
罗马不是一天建成的:)
");
    else 
    printf("
罗马不是一天毁灭的。。。
");
    return 0;
      
}

#include<stdio.h>
#include<math.h>
int main (){
    int n,a,z,c;
    c=2;
    printf("请输入n的值,n>=1且n<=10
");
    scanf("%d",&n);
    z=pow(c,n);
    a=1*(1-z)/(1-c);
    printf("%d",a);
    return 0;
    
} 

#include<stdio.h>
int main(){
    int a,b,c,d,e,f,g,h;
    a=10,b=12,c=a,d=a,h=6;
    while(b>0&&h>0)
    {b-=2,a=b,c=a,d=a,h-=1,e=5-h,f=e,g=e;
    while (e-->0){
        printf("	");
    }
    while(a-->0){
        printf(" 0	");
    }
    printf(" 0
");
    while (f-->0){
        printf("	");
    }
    while(c-->0){
        printf("<H>	");
    }
    printf("<H>
");
    while (g-->0){
        printf("	");
    }
    while(d-->0){
        printf("I I	");
    }
    printf("I I

");
    
    }
    
    return 0;
} 

实验1 2 3 5的实验总结都在代码的注释里

关于实验4有一点需要注意:65到128所对应的字符不只有英文字符,91到96所对应的字符不是英文字符,需要去掉。 

原文地址:https://www.cnblogs.com/2967271912lala/p/13910617.html