实验1(19.3.20)

Posted zys-0119

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验1(19.3.20)相关的知识,希望对你有一定的参考价值。

 

【实验结论】

一、Part1:验证性内容。

1、输出学号。

这个不难,把C语言的基本框架拎出来,再加个printf函数输出就可以了。

#include<stdio.h>
int main(){
printf("201883300119");
return 0;
}

 PS:如果在printf("201883300119");这句中“”缺失的话系统会提示错误,因为它不符合格式化输出函数printf()的调用格式。(详见书本P45,有详细说明)

2、P3 例1.2

程序源代码如下:

#include<stdio.h>
int product(int,int);
int main(void){
int x,y,s;
scanf("%d%d",&x,&y);
s=product(x,y);
printf("The mul is:%d",s);
return 0;
}

int product(int a,int b){
int mul;
mul=a*b;
return mul;
}

 这里特别要注意语句后面的分号

这个程序还涉及到子函数的问题,除了要写出主函数的表达语句之外,还要定义一个子函数,定义子函数的语句在主函数之后。

3、P116页的三个习题

(1)题的代码

#include<stdio.h>
int main(){
    int a=5,b=7,c=100,d,e,f;
    d=a/b*c;
    e=a*c/b;
    f=c/b*a;
    printf("d=%d,e=%d,f=%d
",d,e,f);
    return 0;
} 

如果按照正常的数学思维,很容易以为:

d=71,e=71,f=71

然而,运行出来是这样的(手动滑稽)

技术图片

这就是优先级和运算顺序的体现。

(2)(3)题同理,提醒我们要格外小心优先级和运算顺序,就不多加赘述了。

-----------------------------------假装华丽的分割线--------------------------------------------

二、Part2.补全程序。

1、判断奇偶数。

话不多说,补全后的程序源代码如下:

#include<stdio.h>
int main(){
    int x;
    printf("输入一个整数:
");
    scanf("%d",&x);
    if (x%2==1)
    printf("是奇数
");
    else
    printf("是偶数
"); 
    return 0;
} 

运行结果:

技术图片                    技术图片                   技术图片

经验证无误

反思:写代码时,把if(x%2==1)中的“==”误写为“=”。

结果提示错误。

想了半天,才反应过来“=”是赋值运算符,“==”才是C语言的“等于”。

 

2、工作日/休息日的判定

放上源代码

#include<stdio.h>
int main(){
    int days;
    printf("输入一个1至7之间的整数:
");
    scanf("%d",&days);
    if(days>=1&days<=5)
    printf("workdays,FIGHTING!
");
    else if (days==6||days==7)
    printf("weekends,RELAX!
");
    else
    printf("Ooops,not in 1 to 7
");
    return 0;
} 

运行结果:

技术图片              技术图片          技术图片

经验证,无误。

这个也要注意运算符的优先级,之前因为没搞清楚优先级而总是输出一些奇怪的错误的结果,由于当时做实验时没拍下来,就不一一的分享和分析了。

注意:符号全部需要用英文符!!!(惨痛的教训)

为什么要说上面那句话呢,因为我不小心用了个中文的“;”在程序里,提示错误愣是没检查出来。。。。。。

 

3.英文小写转换为大写。

#include<stdio.h>
int main(){
    char ch;
    printf ("输入一个字符:
");
    scanf("%c",&ch);
    if(ch>=97&ch<=122)
    ch=ch-32; 
    else
    ch=ch; 
    printf("%c
",ch);
    return 0;
} 

运行结果:

技术图片                技术图片

经验证,无误。

掌握大小写字母A和a在ASCⅡ码数值差32,小写a的ASCⅡ码为97(十进制)就ok了。

 

【实验总结和体会】

1、首次实验,对操作系统不大熟悉,以及对一些基本的编码规则、语句规范理解不深,造成很多错误,花费时间过长。但是,熟能生巧。只有多练习,多熟悉,才能对C语言编程有更好的理解,才能又快、又准确地写出自己想要的程序。

2、语句需要在表达式后面加英文的分号“;”。别漏了!!!

 

2019.3.20

以上是关于实验1(19.3.20)的主要内容,如果未能解决你的问题,请参考以下文章

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

使用 React 实验性中继片段:缺少属性 '"$fragmentRefs"'

JSP 设计教师与学生不同登陆界面(带验证码)

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

20165315 缓冲区溢出漏洞实验

20165302 缓冲区溢出漏洞实验