zoukankan      html  css  js  c++  java
  • 【实验二】C语言表达式编程应用及输入输出函数

    实验任务一

     1 // ex1.cpp 
     2 #include <stdio.h>
     3  int main() {
     4     int a=5, b=7, c=100, d, e, f;
     5         
     6     d = a/b*c;
     7     e = a*c/b;
     8     f = c/b*a;
     9     printf("d=%d, e=%d, f=%d
    ",d,e,f);
    10         return 0;
    11  }

    分析结果:d=0,e=71,f=70

    运行结果:

    程序剖析: 第6行:d=a÷b×c

          第7行:e=a×c÷b

          第8行:f=c÷b×a

    与数学运算结果不同的原因是:程序计算时所带入和输出的数据都是整型int,是不精确的(无浮点型精确),在计算过程中会产生精度损耗以造成结果误差。

    实验任务二

     1 // ex2.cpp
     2 
     3 #include <stdio.h>
     4 int main() {
     5     int x=1234;
     6     float f=123.456;
     7     double m=123.456;
     8     char ch='a';
     9     char a[]="Hello, world!"; // 定义一个数组a,数组中存放字符串常量hello,world!
    10     int y=3, z=4; 
    11     
    12     printf("%d %d
    ", y, z);
    13     printf("y=%d, z=%d
    ", y,z);
    14     printf("%8d,%2d
    ", x,x);
    15     printf("%f, %8f, %8.1f, %0.2f, %.2e
    ",f,f,f,f,f);
    16     printf("%lf
    ",m);
    17     printf("%3c
    ", ch);
    18     printf("%s
    %15s
    %10.5s
    %2.5s
    %.3s
    ",a,a,a,a,a);
    19     
    20     return 0;
    21 }

    第12~18行中所用格式符:

    %d:十进制整型

    %8d:占8个宽度的十进制整型

    %f:十进制浮点型

    %8f:占8个宽度的十进制浮点型

    %8.1f:占8个宽度其中小数点后占1个宽度的十进制浮点型

    %0.2f:小数点后占2个宽度的十进制浮点型

    %.2e:小数点后占2个宽度的科学计数法浮点型

    %lf:十进制长浮点型

    %3c:占3个宽度的字符

    %s:字符串

    %15s:占15个宽度的字符串

    %10.5s:占10个宽度且只取右结合性下5位宽度的原字符串

    %2.5s:“同理”

    %.3s:“同理”

     实验任务三

     1 #include <stdio.h> 
     2 int main() { 
     3     double x,y; 
     4     char c1,c2,c3; 
     5     int a1,a2,a3; 
     6     scanf("%d%d%d",&a1,&a2,&a3); 
     7     printf("%d,%d,%d
    ",a1,a2,a3); 
     8     scanf("%c%c%c",&c1,&c2,&c3); 
     9     printf("%c%c%c
    ",c1,c2,c3); 
    10     scanf("%lf,%lf",&x,&y); 
    11     printf("%.1lf,%.1lf
    ",x,y); 
    12     return 0; 
    13 }

    改正:原代码中第6行缺少&符号、原代码中第10、11行缺少l表示的long。

    运行结果:

     实验任务四

     1 // ex4.cpp
     2 // 判断字符类型 
     3 #include <stdio.h>
     4 int main() {
     5     char x;
     6     
     7     x = getchar();
     8     
     9     if(x>=48&&x<=57) // 判断x是数字字符表达式 
    10         printf("%c是数字字符
    ", x);
    11     else if(x>=65&&x<=122) // 判断x是大写或小写英文字母的表达式 
    12         printf("%c是英文字母
    ", x);
    13     else
    14         printf("%c是其它字符
    ", x);
    15     
    16     
    17     return 0;
    18 } 

    判断条件如代码第9、11行所示添加。

    运行结果:

    实验任务五

     1 // ex5.cpp
     2 #include <stdio.h>
     3 int main() {
     4     char ans1, ans2;
     5     
     6     printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) :  ");
     7     ans1 = getchar();  // 从键盘输入一个字符,赋值给ans1
     8     
     9     getchar(); // 思考这里为什么要加这一行 
    10     
    11     printf("
    动手敲代码了没? (输入y或Y表示敲了,输入n或N表示木有敲) :  ");
    12     ans2 = getchar();
    13     
    14     if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y'))
    15         printf("
    罗马不是一天建成的:)
    ");    
    16     else
    17         printf("
    罗马不是一天毁灭的。。。
    ");
    18 
    19     return 0;
    20 } 

    (插入了第14行的if条件

    运行结果:

    其中,第9行的目的我认为是收集回车键的输入,以进行下一个输入的收集,若删去则无法输入。

    实验任务六

     1 #include<stdio.h>
     2 #include<math.h>
     3 int main(){
     4     int n,a,sum,q;
     5     scanf("%d",&n);
     6     a = 2;
     7     q = 2;
     8     sum = a*(pow(q,n)-1)/(q-1)+1;
     9     printf("n = %d时,sum = %d",n,sum);
    10     return 0; 
    11 }

    运行结果:

    (实验原题目有错误,答案已经被我修复


    ~实验结论~

    实验任务一

    (已书写在实验任务中

    实验任务二

    (已书写在实验任务中

    实验任务三

    (已书写在实验任务中

    实验任务四

    (已书写在实验任务中

    实验任务五

    (已书写在实验任务中


    ~实验总结~

    1. 语法是严格要求的,逻辑是十分残酷的。算法是程序的骨架,数据是程序的肌肉和表皮。
      本次实验主要是学习应用实践输出格式字符、逻辑规则、数学计算。以实用为主。
    2. 本次实验我花了点时间,通过书本及互联网,例题的启示,自己总结、摸索出语言的规则和一般广泛使用标准。日后自己在做类似的题型时出现BUG也能即时发现并且顺利修复。
      目前我还很生疏,是个freshman,但总是要花时间熟练的,罗马不是一天建成的。
    3. 希望能和同学们一起探讨更多的程序逻辑、算法,一起解决BUG。

    Thanks for reading


  • 相关阅读:
    HBase入门,看这一篇就够了
    【从零开始学CenterNet】6. CenterNet之loss计算代码解析
    cobbler使用DTK自动化做RAID
    linux批量免密登陆
    《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(下)
    《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(中)
    Python基础-v1
    js实现二维数组转置
    冰蝎3.0 流量特征分析 附特征
    关于 PDF相关整改建议的pdf后门事件分析
  • 原文地址:https://www.cnblogs.com/yinjx/p/13894366.html
Copyright © 2011-2022 走看看