实验1 C语言开发环境使用和数据类型、运算符、表达式

PART 1 验证性内容

问题:

1.结尾没有加“;”时回车到下一行的时候再输入下一行的语言首字对齐方式会发生变化,可以对上一行进行检查。

(这一点需要在不同软件里面试一下,在机房里的软件做出来是有这种变化的,但自己用Xcode就没有,而是直接会弹出语句错误提示,所以这一条可能不是全都适用)

2.把一些字符混淆,可能语法没有错误程序可以跑起来,但进行输出实验之后就会发现错误,所以每次写完之后多运行测试一下找找看有没有什么问题。

(这个是我当时敲错的内容,调试结果未提示错误,运行出来就很奇怪)

        printf ("d=%d,e=&d,f=%d\n",d,e,f);     →  输出结果e=&d

这一部分就是按照课本的例题把程序敲到电脑上,但是这个照猫画虎也画的是四不像,需要多多练习熟悉。

丢“;”各种,各种奇奇怪怪藏在数字上面的符号找起来很困难,最要命的是全角半角真的让人很头大¯\_(ツ)_/¯

PART 2 按要求写出符合要求的表达式 补全程序

(1)判断奇偶↓

 1 // 程序功能:
 2 // 要求用户从键盘输入一个整数,判断其是奇数还是偶数
 3 #include <stdio.h>
 4 int main(){
 5     int x;
 6     printf("输入一个整数: \n");
 7     scanf("%d",&x);
 8     if (x%2==1)
 9         printf("是奇数");
10     else
11         printf("是偶数");
12     return 0;
13     }

 运行结果↓

 这里就是一个“if ……else……”语句(参考网页:http://c.biancheng.net/c/if_else/0)

1º if 语句是一种分支结构,当条件满足时,有“执行该操作语句”和“跳过执行该操作语句”的两条分支。

2º 执行流程就是先判断关键词 if 后括号内的值,如果该值为逻辑真(非 0),则执行 if 后面的语句,接着执行 if 体后的其他语句;

否则,不执行该 if 体,直接执行 if 体后的其他语句。

3°当 if 体中的语句多于一条时,要用{ }把这些语句括起来形成一条复合语句‘(因为if 只能控制其后的一个语句)

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

在补充括号里面的条件表达式的时候强烈感觉到熟悉运算符超级重要,我自己很不熟悉字符要研究半天这里要用哪一个

完了定下来是这个运算符就看一眼课本看一眼键盘看一眼屏幕把它硬生生放进去,过程很麻烦,要多都练习熟悉。

(第二章感觉每一页都是超级基础超级重要的内容,一定要加油学习ʕ •ᴥ•ʔ)

(2)根据不同的输入,显示不同提示信息↓

/* 程序功能:
 要求用户从键盘输入1~7之间的整数
 如果输入的是1~5, 提示用户是工作日,要努力工作;
 如果输入的是6或7,提示用户是休息日,放松休息;
 否则,提示用户输入不在合法范围
 */
#include <stdio.h>
int main() {
    int days;
    
    printf("输入一个整数: \n");
    scanf("%d",&days);
    // 补足×××处的表达式,使得满足程序功能描述
    if(days <= 5 && days >= 1) // days在1到5之间

        printf("workdays, fighting\n");
    else
    {
        if( days == 6||days == 7)// days是6或7
        printf("weekend, relax~\n");
    else
        printf("Ooops, not in 1~7\n");
    }
    return 0;
}

运行结果↓

 

这里是“if……else……”嵌套了一个“if……else……”语句(参考网页:http://c.biancheng.net/view/163.html)

1º if…else if…else 的意思就是:“如果”第一个成立,就执行第一个;“否则如果”第二个成立就执行第二个;“否则”就执行第三个。

个人感觉这个网页讲的也都是“if……else……”,两个的嵌套我就照着他的框架看了一下程序,里面都是很基础很基础的内容

这两个都是在一个大网站“C语言中文网”看起来很厉害东西很多,具体还没有看很多,待测(´・ω・`)

(3)根据用户输入字符,判断如果是小写字母,则转换成大写;否则保持原样↓

// 功能:
// 从键盘上输入单个字符
// 如果是小写字母,则转换成大写后输出
// 否则,什么也不做,原样输出
#include <stdio.h>
int main() {
    char ch;
    
    printf("输入一个字符:\n");
    scanf("%c",&ch);
    
    // 根据程序功能描述,补足程序
    if(ch>='a' && ch<='z') // 如果ch是小写字母,补足判定ch是小写字母的表达式
       ch = ch - 32; //补足把ch中的小字母转换成大写字母的表达式语句
        // 说明:语句就是在表达式末尾加分号;
        printf("%c\n",ch);
    return 0;
}

运行结果↓

 

 这个就是利用字符的ASCII码的关系进行的运算,其他没有什么补充。

PART 3 编程练习

编写程序,实现把一个十进制整数转换成二进制。十进制整数由键盘输入,转换后的二进制数据输出到显示器上。↓

// 功能:
//编写程序,实现把一个十进制整数转换成二进制。十进制整数由键盘输入,转换后的二进制数据输出到显示器上。
#include <stdio.h>
int main()
{
    int n, b,i = 1;
    int a = 0 ;
    printf( "输入一个十进制数:\n" );
    scanf("%d",&n);
    while(n!=0)
    {
        b=n%2;
        n/=2;
        a+=b*i;
        i*=10;
    }
    printf("%d",a);
    return 0 ;
    
}

 运行结果↓

所以不难看出在运行小一点数字的时候这个程序是ok的,但数字超过1024就不可以了

(刚写出来很激动就123456随便按结果出来奇奇怪怪的数字,就开始一直试这个的最大值hahaha)

 然后把整型改成了长整型就是下面这一个  ↓

// 功能:
//编写程序,实现把一个十进制整数转换成二进制。十进制整数由键盘输入,转换后的二进制数据输出到显示器上。
#include <stdio.h>
int main()
{
    long n, b,i = 1;
    long a = 0 ;
    printf( "输入一个十进制数:\n" );
    scanf("%ld",&n);
    while(n!=0)
    {
        b=n%2;
        n/=2;
        a+=b*i;
        i*=10;
    }
    printf("%ld",a);
    return 0 ;
    
}

 运行结果↓

 

 比上一个程序可以转换的数字大了,但还是受限制的,要想要不受限制需要用数组写,但具体内容我还不是很清楚,待学习。

首次接触C语言真的感觉很陌生,本来对电脑不是很了解,仅局限于聊天看视频有时候写word文档或者PPT和Excel表格什么的

没有太大技术含量的操作,手机大可替代。然后看着这个一个个藏在数字上面的奇妙字符我真的感觉好难找,好希望有一款有单

独字符键的键盘。然后看了程序满脑子想的都是为什么他要这样他要那样不知道怎么学,学过的最有关联的就只有程序框图了,以后要好好下功夫了。

这次的实验报告我是按照任务part123写的,在每个part里就把写这个程序的总结感受什么的就随在下面,以后会更改一下格式(突然的deadline让报告写的有点仓促,以后会改进的)

猜你喜欢

转载自www.cnblogs.com/Anna0708/p/10574553.html