更好的理解Python--C语言程序设计入门
C语言是不支持中文的(Python支持)
运算器和控制器是机算机的核心部件,这两部分合称中央处理单元,简称CPU。
编译:借助一个程序,(就像一个翻译),把你的程序翻译成计算机真正能懂得语言---机械语言---写的程序,然后,这个机器语言写的程序就可以执行----(此过程能够确保运算性能)
解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行(解释型没有编译过程,而是通过解释器对程序作出解释,然后直接运行)
(程序语言在两者区分方便并非非白即黑,很多编程语言两者皆可)
(python解释器在执行任何一个Python程序文件时,首先进行的动作都是先对文件中的Python源代码进行编译,编译的主要结果是产生一组Python的字节码,然后将解释的结果交给Python虚拟机,由虚拟机按照顺序一条一条地执行字节码,从而实现对Python程序的执行动作)
#include <stdio.h>int main(){/* 我的第一个 C 程序,此符号是C语言中的注释符号,上面不是注释 */printf("Hello, World! \n");return 0;}
#include <stdio.h>int main(){return 0;}
做一个简单的计算:
# include <stdio.h>int main(){printf("%d",12+34);return 0;}输出:46
int main(){int price = 0;printf("请输入金额(元):");scanf("%d", &price); //此处表示输入int change = 100-price;printf("找您%d元",change);return 0;}
#include<stdio.h>int main() /*求两个数之和*/{int a,b,sum; /*定义3个整型变量*/a=234;b=432;sum=a+b;printf("sum is %d\n",sum); /*类似于Python的.format()*/return 0;}
认识流程图:
流程图表示算法,
流程图的符号:
用流程图解决问题:
NS图:省去了流程先,使用特定意义的图形和简要的文字说明构成另一种形式的流程图:
用N-S图表示C语言开发步骤:
实战练习:(切记Python语言和C语言的区别)
int main(){int i,j,n;printf("输入三角形的层数:");scanf("%d",&n); //&n取位符n(变量),将输入的值赋值给n,scanf输入函数类型与Python的input()函数for(i=1;i<=n;i++) //for循环, i++自增,当大循环执行一次,小循环执行多次{for(j=1;j<=n-i;j++)printf("+");for(j=1;j<=2*i-3;j++)printf("*");printf("\n"); //不隶属于上面一个循环}scanf("%d,&n");return 0;}
空心三角形:尝试,视图理解一下(运行一下,还是很好理解的)
# include<stdio.h>int main(){int i,j,n;printf("输入三角形的层数:");scanf("%d",&n);for (i=1;i<=n;i++ ){if (i==1){for(j=1;j<=n-i;j++)printf(" ");printf("*\n");}else if(i==n){for(j=1;j<=i-1;j++)printf("* ");printf("*\n");}else{for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=2*i-3;j++)printf(" ");printf("*");printf("\n");}}return 0;
你喜欢我吗?
#include <windows.h> //引用窗口消息对话框#include <stdio.h>int main (){int ret; //定义变量do //做什么直到什么。。。。{ret = MessageBox(NULL, "你喜欢我吗?", "你好!", MB_YESNO | MB_ICONINFORMATION);}//MessageBox 消息框,while (IDNO == ret); //直到的条件printf("看来你确实很喜欢我\n");printf("\n");return 0;}
三角形测试:
int main(){int i;char s[]="J!Mpwf!Zpv\1"; // []代表数组 ,char代表字符型,for(i = 0;putchar(s[i]-1);i++)printf("\n");return 0;}
游戏练习1;
#include <stdlib.h>#include <stdio.h>#include <time.h>int main(){int goal;int x,j,k,flag=0;long i;printf("=========这是一个猜数字的游戏=========\n\n");printf("===你必须在10次之内猜中数字才能获胜===\n\n");printf("==========猜数字期间会有提示==========\n\n");printf("============数字在500以内哦===========\n\n");srand( (unsigned)time( NULL ) );goal=rand()%500;for(j=1;j<=10;j++){printf("这是第%d次,你准备猜:",j);scanf("%d",&x);for(k=0;k<3;k++){printf(". ");}if(goal==x){flag=1;break;}else if(goal<x)printf("你猜的数偏大\n");else if(goal>x)printf("你猜的数偏小\n");}if(flag==1)printf("========猜对了!!你真厉害!!========\n");if(flag==0)printf("======很遗憾,下次继续努力吧....======\n");return 0;}
游戏练习2:
#include <stdlib.h>#include <stdio.h>#include <time.h>int main(){int qian,bai,shi,ge;int guess,guessqian,guessbai,guessshi,guessge;int guessweizhi=0,guessshuzi=0;int count,n;int goal;int RandArray[9]={1,2,3,4,5,6,7,8,9};srand((unsigned)time(NULL));count=1;n=rand()%9;ge=RandArray[n];RandArray[n]=RandArray[8];n=rand()%8;shi=RandArray[n];RandArray[n]=RandArray[7];n=rand()%7;bai=RandArray[n];RandArray[n]=RandArray[6];n=rand()%6;qian=RandArray[n];printf("-----这是一个猜数字的游戏,你需要准确的猜出每一位才能获胜-----\n\n");printf("---------当你猜的数字正确但位置不正确时会有相应的提示---------\n\n");printf("-------------数 据 不 会 重 复 , 也 不 会 包 含 0 ------------\n\n");printf("--------------------放 弃 游 戏 请 输 入 0--------------------\n\n");printf("--------------- \003 祝 \003 你 \003 玩 \003 的 \003 开 \003 心 \003 --------------\n");while(1){printf("这是第%d次,你准备猜:",count);loop:scanf("%d",&guess);if(guess==0) break;else if(guess>9999||guess<1234){printf("数据有误请重新输入");goto loop;}guessqian=guess/1000;guessbai=guess/100%10;guessshi=guess/10%10;guessge=guess%10;guessweizhi=0,guessshuzi=0;if(guessqian==guessbai||guessqian==guessshi||guessqian==guessge||guessbai==guessshi||guessbai==guessge||guessshi==guessge){printf("不得输入重复数据,请重新输入\n");goto loop;}if(guessqian==qian) guessweizhi++;if(guessbai==bai) guessweizhi++;if(guessshi==shi) guessweizhi++;if(guessge==ge) guessweizhi++;if(guessweizhi==4) break;if(guessqian==bai||guessqian==shi||guessqian==ge) guessshuzi++;if(guessbai==qian||guessbai==shi||guessbai==ge) guessshuzi++;if(guessshi==qian||guessshi==bai||guessshi==ge) guessshuzi++;if(guessge==qian||guessge==bai||guessge==shi) guessshuzi++;printf("你猜中了%d个数据及位置,你猜中了%d个数据但位置不对\n",guessweizhi,guessshuzi);count++;}if(guessweizhi==4) printf("你真棒!!!\n");else printf("下次在努力吧!\n");return 0;}
