声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:80368704
第1章 C语言概述
1.1和1.2自己看吧........ 例1.1#include<stdio.h> printf("This is a C program!/n"); } 1。关于#include<stdio.h> 让我们从向黑板上书写文字开始吧....... XXX,你好: -----------开头----------- #include<stdio.h>
。。。 -----------正文------------ 。 。 。
此致 反过来说就是: (2)正文: 你要让机器执行的命令写在开头和结尾之间 相当于 信的正文内容部分 (3)结尾: } 相当于 此致 敬礼 XXX XX年XX月XX日 举例 : 我想让人和计算机完成写星号的任务,命令的对比如下: 现在要在黑板上写个星号* 现在要让在屏幕上写个星号* 对方:人 , 表达形式:信 对方:计算机 , 表达形式:c语言 xxx 你好: #include<stdio.h>
在黑板上写一个*号 printf("*");
此致 } 说明:
#include<stdio.h> ------------开头两句照抄 再比如 现在我要让在屏幕上写两个井号#的程序如下 用c语言 #include<stdio.h> ------------开头两句照抄 我们看到程序是如此的相似, 开头和结尾完全相同, 2.关于printf 屏幕书写命令是printf("XXXX");其中XXXX就是向屏幕上书写的内容 #include<stdio.h> ------------开头两句照抄
#include<stdio.h> ------------------开头两句照抄
3. 关于'/n'现在让我们将如下图案输出到屏幕上: * 很容易想到的程序是: #include<stdio.h>
计算机执行此程序后屏幕显示如下: 为什么会这样呢?解释这个问题必须先说明一些关于屏幕的基础知识。。。。。 早期计算机的屏幕整个区域被分成25行80列,如下所示:总共80x25个位置,每个位置可以放一个字符。 设列为x轴,行为y轴,原点是屏幕左上角, 用(x,y)表示屏幕上第x列第y行的输出位置,比如第3列,第5行表示为(3,5),注意:(列,行) 假设系统最初将当前输出位置设定在(1,1),printf将在以(1,1),(2,1),(3,1)(4,1).....的顺序从左到右放置输出内容,直到第一行最右端的(80,1),再从第2行最左端的(1,2)开始显示,(2,2),(3,2),.......,当第2行放满,再放第3行,......如此直到25行全部写满后,上卷屏。
现在明白上面的程序输出的结果是为什么了吧。 如何能输出那个图案呢? 让我们来分析一下,画一个显示了预想图案的屏幕: 用"_"表示空格(键盘上有空格的欧),改写程序如下 #include<stdio.h> printf("_ _ * _ _ _ _ _ _ _ _ _ ......_ _ _ _ _ _ _"); printf("_ * _ * _ _ _ _ _ _ _ _ ......_ _ _ _ _ _ _"); printf("* _ * _ * _ _ _ _ _ _ _ ......_ _ _ _ _ _ _"); } 空格太多了,能省吗? 当然,printf支持从某行的某位置直接将输出位置变到下一行的行首,称为换行控制。 在需要换行的位置,加'/n',比如:我们刚才的程序用'/n'改变如下: #include<stdio.h> printf("_ _ * /n"); printf("_ *_ * /n"); printf("* _ *_ * /n"); } 那么,有没有能让我们指定输出位置到任意的行列呢?比如:现在指定在(5,5)输出一个星号。 有!!!!,gotoxy(5,5);可以定位输出位置到(5,5); #include<stdio.h> gotoxy(5,5); } 当gotoxy(5,5);将输出位置定在(5,5)后,printf输出一个星号到该位置上。 至于用gotoxy()函数实现我们上面的星号组成的3角形,留给读者思考了。
总结:例1.1的知识点3个: 1。关于简单C程序的基本结构的介绍 2。关于屏幕输出的基础知识和printf 3. 关于 '/n'的应用
例1.2 一、数据存储和使用变量
在开始讲解以前,先按我的要求完成一个数学题的求解: 1.设有3个变量a,b,sum,(a,b,sum均∈整数)
你能按要求完成本题目吗?我想你应该能写下:sum=579 好,以上我是让“人”计算并写出结果, 下面如果让机器完成上述问题的解答,我该如何把问题描述给机器呢?我们一句一句对比着来: 对方:人 对方:计算机 设有3个变量a,b,sum,(a,b,sum均∈整数) int a,b,sum;/*int 表示后面写的3个是整数变量*/ 已知 a=123,b=456,sum=a+b 求 sum a=123,b=456;sum=a+b; 答案不要告诉我,而是把结果写在黑板上 printf("sum=%d",sum); 写时用"sum=?"的格式, ?用sum具体值代替 /*printf表示向屏幕写, 写时用"sum=%d"的格式, %d用sum具体值代替,%d就是?*/ 二、scanf("......",.......); 将上面对人的描述的第2步做更改如下: 2.任意给定 a和 b, 有sum=a+b 举例:有甲和乙两个人,甲把上面的题目让乙做,那么乙解题的详细步骤如下: 1. 第1句, 2. 第2句, 3. 第3句, 4. 第4句, 现在,我是甲方,计算机是乙方,道理相同,对机器描述的第2步做更改如下: a=123;b=456; 改成 scanf("%d%d",&a,&b); 就可以让计算机在按步骤解题时,到达第2步停下来等待,直到我给出a、b的具体值,才再继续。 完整的程序如下: #include<stdio.h> 程序运行如下: 123 456 ↓ /*↓表示按Enter键,即按回车键*/ sum=579 例1.3 int max(int x, int y) 让甲、乙、丙 3 个人合作完成求 2 个数中较大者的任务: 甲:提供 2 个整数给乙 乙:等待,直到甲给出 2 个整数 a,b 呼叫丙,并且将 a,b 两数告诉丙 等待,直到丙回复一个整数, 将该整数用 ”max=?” 的格式写在黑板上。 丙:将呼叫者给出的两个整数分别给变量 x 和 y 找出 x,y 中较大的数,将其回复给呼叫者。
将甲改称 ren 乙改称 main 丙改称 max 更具体且严格的描述如下:
习题1.5<;/font> 请参考如下图案输出到屏幕上的讲解: <;p> *
习题1.5参考答案: #include<stdio.h> printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /n"); printf(" Very good!/n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /n"); } 习题1.6 2.求最大值,用函数的较精简的写法 main()
3 要说写法较简单的,给你一个 4 实质相同的好理解的,给你一个 if(a<b) max=b; if(max<c) printf("max=%d/n",max);
5 要输出最大值和最小值怎么写? 给你一个标准c的较经典并且好理解的解答:
6 要输出a,b,c,d,e,f,g中的最大值和最小值怎么写? 7.输入a,b,c,输出最大值MAX,中间值MID,最小值MIN 8 请问有更经典的解法吗? 学习了循环和数组以后,再。。。。。。。。。 OVER |