C语言开发环境使用和数据类型、运算符、表达式
Part 1
一、初识C语言
先恭喜自己打开了C语言世界的大门吧!( ̄▽ ̄)~■□~( ̄▽ ̄)
就我目前从书上和网络上对C语言的解释来看,总结了C语言的以下特性:
- 流行性:作为使用率常年排在世界前三的编程语言,它融合了计算机科学理论和实践的控制特性。这样一门流行的语言,用来编程会更易懂、更可靠。
- 高效性:C语言具有通常是汇编语言才有的微调控能力,可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。
- 可移植性:这意味着,在一种系统中编写的C语言稍作修改或不修改就能在其他系统运行。
- 强大切灵活:UNIX操作系统,其他语言(FORTRAN、Python、BASIC…)大多都是用C语言编写的。
当然瑕不掩瑜,C语言缺点同样存在(优点>>缺点),但不在此陈述。
二、使用C语言的7个步骤
我们中有大多数较少甚至没有过编程经历,面对C语言这一编译型语言,可能会对它无从下手,感慨道:“这谁顶得住啊”(囧)
为对其有个大概了解,姑且可以把编写C语言分成7个步骤:
- 定义程序的目标
- 设计程序
- 编写代码
- 编译
- 运行程序
- 测试和调试程序
- 维护和修改程序
三、最初的感受
我也是初次接触的啊,我刚开始也挺担心这些的。于是乎,我开始浏览书中的示例,面对程序里一些古怪的符号,会有一种似曾相识的感觉。因为里面很多符号都是基于英文单词的缩写或者修改之类的。看来学好编程,英语也不能落下呀!
四、Hello,world!
作为很多人运行的第一个简单的C程序,此处是以C程序常见的大体框架配上一个输出语句呈现的。
此处稍作修改,改为将自己的学号输出。
/* This is first C program */ #include <stdio.h> int main() { printf("201883300097"); return 0; }
这是一个极为基础的程序,想输出其他的简单语句,只需将学号替换即可。
五、继续体验
/* 求两个整数的积 */ #include <stdio.h> int product(int, int); int main (void) { int x, y, s; scanf_s("%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; }
我们可以从以上两个程序见到一些常出现的语句: #include <stdio.h>、int main()、{}、;、printf、return
这些都是最基本最常用也是必须掌握的,我们将在以后对其进行进一步的学习。
六、闪退问题!!!
相信在很多人第一次满怀期待等着hello,world出现时,会为了程序的输出在屏幕一闪而过而???某些窗口环境会在单独的窗口运行程序,然后在程序运行结束后自动关闭窗口。遇到这种情况,有一种方法是:在return语句前加一行代码getchar();
这行代码会让程序等待击键,窗口会在用户按下一个键后才关闭。
Part 2
七、补全程序
①奇偶判断
#include<stdio.h> int main() { int x; scanf_s("%d", &x); if (x % 2 == 0) printf("是偶数"); else printf("是奇数"); }
简单分析:if (x % 2 == 0)这是最关键的地方。%代表求余,==是C语言中的等于号。偶数是能被二整除的,即余数为0。
运行如下
②工作日和休息日的判断
#include<stdio.h> int main() { int days; printf("输入一个整数:\n"); scanf_s("%d", &days); //补足×××处的表达式,使得满足程序功能描述 if (days > 0 && days < 6)//days在1到5之间 printf("workdays,fighting\n"); else if (days == 6 || days == 7)//days是6或7 printf("weekend,relax~\n"); else printf("Ooops,notin1~7\n"); return 0; }
简单分析:这里是涉及到“与”和“或”的逻辑运算符。这与数学上直接的表达“且”和“或”是有很大区别的。
运行如下
③小写字母进行大写转换
#include<stdio.h> int main() { char ch; printf("输入一个字符:\n"); scanf_s("%c", &ch); //根据程序功能描述,补足程序 if (ch >= 'a' && ch <= 'z')//如果ch是小写字母,补足判定ch是小写字母的表达式 ch = ch - 32; //补足把ch中的小字母转换成大写字母的表达式语句 //说明:语句就是在表达式末尾加分号; printf("%c\n", ch); return 0; }
简单分析:这里更重要的是让我们认识到了字符,或者说是让我们感受到了ASCII码在C语言中的重要性。
运行如下
Part 3
八、尝试用C编程-十进制转二进制
#include <stdio.h> int main() { int transfer(int x); int x; printf("请输入一个十进制数:"); scanf_s("%d", &x); printf("转换成二进制数是:%d\n", transfer(x)); } int transfer(int x) { int p = 1, y = 0, yushu; while (1) { yushu = x % 2; x /= 2; y += yushu * p; p *= 10; if (x < 2) { y += x * p; break; } } return y; }
这是我找到的一个比较便于理解的代码,下面对它进行解读:
这里使用了一个while(1)的循环结构,需要当x<2才会跳出循环。变量yushu即是每次循环产生的一个余数,且这个余数=0或1。变量x在每次循环中都会被赋予一个新的值,这个值就是之前产生的商。
另外既然得到了每次被除后的余数1和0,那么需要对它们进行正确的排列。这里可以用到个位,十位,百位……来进行表达,即可得到正确的二进制表示。
运行如下
以上便是我的本次作业,感谢阅读!
Thanks~