第二次计算机实验

实验结论

Part1: printf()和scanf()  以及数据类型区分

/*格式控制符*/
#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\n", y, z);
    printf("y=%d, z=%d\n", y,z);
    printf("%8d,%2d\n", x,x);
    printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f);//数据长度超过预留长度时,填充完整数据,数据格式转变时会产生精度损失(以下显示的001)
    printf("%lf\n",m);
    printf("%3c\n", ch);
    printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
    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\n",a1,a2,a3);
    scanf("%c%c%c",&c1,&c2,&c3);
    printf("%c%c%c\n",c1,c2,c3);
    scanf("%lf,%lf",&x,&y);
    printf("%lf,%lf\n",x,y);
    return 0;
} 

     %d 按十进制整数输出 ,  %f 按浮点数输出 ,  %c 按字符输出,   %e 按指数形式输出 ,  %s 按字符串输出

    %5d  输出数据域宽为5 超出5则原样输出 ,  %lf double类型输出格式符,   %.3f 四舍五入位数  ,   %6.2f 宽度6,精度2

Part2: putchar() getchar()

/*getchar() */ 
#include <stdio.h>
int main() {
    char ch;
    ch = getchar();        // 用户从键盘输入字符,如果输入成功,输入的字符被赋值给ch 
    putchar(ch);        // 使用putchar()输出字符变量ch中存放的字符 
    printf("%c",ch);    // 使用printf()和格式符%c输出单个字符 
    return 0;
}
/*putchar()输出及字符不同表示*/

#include <stdio.h>
int main() {
    char ch;
    ch = 'A';
    putchar(ch);      // 参数ch是字符型变量 
    putchar(ch+32); // 参数ch+32是字符型表达式 
    putchar('\x41'); // 参数是字符型常量,是用十六进制表示的转义字符 
    putchar('\n'); // 参数\n是字符型常量,是转义字符,表示换行 
    return 0;
}

 Part3: if语句

/* 
单分支if语句使用示例
从键盘上输入两个整数分别给a和b
如果a>b,就交换,使得a里面存放小的数,b里面存放大的数 
*/  

#include <stdio.h>
int main() {
    int a,b;
    int t;   // 用于交换a和b时,作为中间变量 
    printf("输入两个整数给a和b:\n");
    scanf("%d%d",&a,&b);
    if(a>b) {
        t = a; 
        a = b;
        b = t; 
    }
    printf("a=%d, b=%d\n",a,b);
    return 0;
} 
/*
二分支if语句使用示例
从键盘上输入一个整数给n,判断n是奇数还是偶数 
*/ 

#include <stdio.h>
int main() {
    printf("输入一个整数给n:\n");
    scanf("%d",&n);
    if(n%2)
        printf("n是奇数.\n");
    else
        printf("n是偶数.\n");
    return 0;
} 
/*
多分支if语句示例
输入1,2,3...的不同整数,显示不同提示信息 
*/
#include <stdio.h>
int main() {
    int level;
    printf("输入现在状态等级(1-5):  ");
    scanf("%d",&level);
    if(level == 1) 
        printf("high翻了:)\n");
    else if(level == 2) 
        printf("low爆了:(\n");
    else
        printf("一言难尽,无法概括。。。\n");
    return 0;
} 

只有一条语句时,可以省略{ }

Part4: switch语句

/*
switch语句使用示例
输入1,2,3...的不同整数,显示不同提示信息  
*/
#include <stdio.h>
int main() {
    int level;
    printf("输入现在状态等级(1-5):  ");
    scanf("%d",&level);
    switch(level) {
        case 1: printf("high翻了:)\n"); break;
        case 2: printf("low爆了:(\n"); break;
        default: printf("一言难尽,无法概括。。。\n");
    }
    return 0;
} 

删去case后的break时 break用作中断,删去直接运行到下一个break或default

Part5: 简单编程

/*A,B,C or D*/
#include<stdio.h> 
int main(){
    int ch;
    printf("请输入你的答案(A,B,C or D);");
    ch=getchar();
    if(ch=='A')
        printf("corret");
    else
        printf("wrong");
    return 0; 
}

 此条语句输出结果与下一条switch输出相似

/*A,B,C or D*/
#include<stdio.h> 
int main(){
    int ch;
    printf("请输入你的答案(A,B,C or D);");
    ch=getchar();
    switch (ch){
    case 'A':printf("corret");break;
    case 'B':printf("wrong");break;
    case 'C':printf("wrong");break;
    case 'D':printf("wrong");break;
    default :printf("请重新输入\n");
    }
    return 0; 
}

 

实验总结与体会

 编码次数逐渐增加,编码条数也逐渐增多,一些小细节已经能够考虑到,分号和地址符虽然还是会忘记输入,但次数已经少了很多。在这次使用if 和switch进行编码的时候,不可避免地出现了一些问题,比如if 和swtich的使用格式,以及填充后方条件时产生的一些逻辑符号的错误。这些语句都较为简单基础,说不上难于理解,但在使用时我把大部分时间花在了思考如何写条件之上,我想我应该在编程的时候同时动动笔的话,编写速度会快很多。如果能另外去记忆理解一些知识的话我想对于我的帮助会更大些。老师在课堂上的进度是偏慢的,提前去接触掌握后边的知识是完全可以做到的。除此之外,就是去不断的练习,不断地试错,架构稳固的基础。今后当然也会遇到困难,但那些困难早已经被众多先行者跨过去了,我想,应该不差我一个。

猜你喜欢

转载自www.cnblogs.com/astraeus/p/10612403.html
今日推荐