1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言阅读程序输出星号井号 第1章 C语言概述-python的长整型-WinFrom控件库|.net开

C语言阅读程序输出星号井号 第1章 C语言概述-python的长整型-WinFrom控件库|.net开

时间:2022-05-30 23:51:05

相关推荐

C语言阅读程序输出星号井号 第1章 C语言概述-python的长整型-WinFrom控件库|.net开

声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@QQ:80368704

第1章 C语言概述

1.1和1.2自己看吧........

1.3 简单的C语言程序介绍

例1.1

#include

void main() {

printf("This is a C program!/n");

}

1。关于#include

void main(){.........}

让我们从向黑板上书写文字开始吧.......我们写信有一定的格式, 大致分为3部分:开头、正文和结尾。

信是我们写来给别人看得,大家都使用诸如上面的格式, 无论什么人拿到信,均能很快知道, 是谁写的信,写给谁的,主要说的什么。 由此可见,人和人之间沟通的书面文字是有一定书写规范的。

那么同样的道理,作为人类和计算机之间沟通的书面文字(实质是就是 人向机器发出的命令的集合体——程序), 也要遵循一定的格式,而且 简单的C程序也大致分为3部分:开头、正文和结尾,和信比较如下图 :XXX,你好: -----------开头----------- #include

void main(){

。。。 -----------正文------------ 。 。 。

此致

敬礼 -----------结尾------------}

XXX

XX年XX月XX日

反过来说就是:

(1) 开头: #include

void main(){ 相当于 XXX,你好:

(2)正文: 你要让机器执行的命令写在开头和结尾之间 相当于 信的正文内容部分

(3)结尾: }相当于 此致 敬礼 XXX XX年XX月XX日

举例 : 我想让人和计算机完成写星号的任务,命令的对比如下:

现在要在黑板上写个星号* 现在要让在屏幕上写个星号*

对方:人 , 表达形式:信 对方:计算机 , 表达形式:c语言

xxx 你好: #include

void main(){

在黑板上写一个*号 printf("*");

此致}

敬礼

xxx

XX年XX月XX日

说明:

就像人类信的开头和结尾部分一般都是固定的一样,c语言程序的开始和结束部分一般也是固定的,简单程序更是如此,

开头照抄 #include void main(){ , 结尾照抄一个大括号 } .

比如 现在我要让在屏幕上写个#的程序如下 用c语言

#include ------------开头两句照抄

void main(){

printf("#"); ------------屏幕书写#的命令

} -----------结尾用个右大括号

再比如 现在我要让在屏幕上写两个井号#的程序如下用c语言

#include ------------开头两句照抄

void main(){ printf("##"); ------------屏幕书写#的命令} ----------- 结尾用个右大括号

我们看到程序是如此的相似, 开头和结尾完全相同,

2.关于printf

屏幕书写命令是printf("XXXX");其中XXXX就是向屏幕上书写的内容比如 在屏幕上写两个星 ** 的程序如下,c语言

#include ------------开头两句照抄

void main(){printf("**"); ------------屏幕书写**的命令} ----------- 结尾用个右大括号

我们让计算机向屏幕上书写的术语叫 "输出",而且可以向屏幕输出的内容 可以是字母,数字以及#!@$%&^&*)(*_等等好多东西.现在我们让计算机向屏幕上输出一串英文文字"This is a C program !" , C程序显然如下:

#include ------------------开头两句照抄

void main(){printf("This is a C program !");---屏幕输出命令

} -----------结尾用个右大括号

3. 关于'/n'

现在让我们将如下图案输出到屏幕上:

** *

* * *

很容易想到的程序是:

#include

void main(){printf("*");

printf("* *");

printf("* * *");

}

计算机执行此程序后屏幕显示如下:

为什么会这样呢?解释这个问题必须先说明一些关于屏幕的基础知识。。。。。

早期计算机的屏幕整个区域被分成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

void main( ){

printf("_ _ * _ _ _ _ _ _ _ _ _ ......_ _ _ _ _ _ _");

/*星号后面有05月18日个空格*/

printf("_ * _ * _ _ _ _ _ _ _ _ ......_ _ _ _ _ _ _");

/*第2个星号后面有05月18日个空格*/

printf("* _ * _ * _ _ _ _ _ _ _ ......_ _ _ _ _ _ _");/*第3个星号后面有05月18日个空格*/

}

空格太多了,能省吗?

当然,printf支持从某行的某位置直接将输出位置变到下一行的行首,称为换行控制。

在需要换行的位置,加'/n',比如:我们刚才的程序用'/n'改变如下:

#include

void main(){

printf("_ _ * /n");/*在从(1,1)开始先输出_ _ *,然后'/n'将当前输出位置移动到第2行的行首(1,2)*/

printf("_ *_ * /n");/*在从(1,2)开始先输出 * _ *_ *,然后'/n'将当前输出位置移动到第3行的行首(1,3)*/

printf("* _ *_ * /n");

/*在从(1,3)开始先输出 * _ * _ *,然后'/n'将当前输出位置移动到第3行的行首(1,4)*/

}

那么,有没有能让我们指定输出位置到任意的行列呢?比如:现在指定在(5,5)输出一个星号。

有!!!!,gotoxy(5,5);可以定位输出位置到(5,5);

#include

void main(){

gotoxy(5,5);

printf("*");

}

当gotoxy(5,5);将输出位置定在(5,5)后,printf输出一个星号到该位置上。

至于用gotoxy()函数实现我们上面的星号组成的3角形,留给读者思考了。

总结:例1.1的知识点3个:

1。关于简单C程序的基本结构的介绍

#include

void main(){.........}

2。关于屏幕输出的基础知识和printf

3. 关于 '/n'的应用

例1.2#include

void main(){

int a,b,sum;

a=123;

b=456;

sum=a+b;

printf("sum=%d/n",sum);

}

一、数据存储和使用变量

在开始讲解以前,先按我的要求完成一个数学题的求解:

1.设有3个变量a,b,sum,(a,b,sum均∈整数)

2.已知 a=123,b=456, 有 sum=a+b3.求 sum

4.答案不要告诉我,而是把结果写在黑板上,

写时用“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句, 乙了解到将有3个变量,这3个变量将用于整数计算。

2.第2句,乙了解到此时需要让甲给出a和b的具体整数值,因此乙将一直等待,当甲给出a和b的具体的整数值后,乙继续进行解题,即进入第3步。

3.第3句,

乙将a和b相加求出sum的值

4.第4句,乙将sum的值用指定的格式写在黑板上:sum=?

现在,我是甲方,计算机是乙方,道理相同,对机器描述的第2步做更改如下:

a=123;b=456; 改成 scanf("%d%d",&a,&b);

就可以让计算机在按步骤解题时,到达第2步停下来等待,直到我给出a、b的具体值,才再继续。

完整的程序如下:

#include

void main(){

int a,b,sum;

scanf("%d%d",&a,&b);

sum=a+b;

printf("sum=%d/n",sum);

}

程序运行如下:

123 456↓ /*↓表示按Enter键,即按回车键*/sum=579

例1.3

#include

void main(){

int max(int x,int y);

int a,b,c;

scanf("%d,%d",&a,&b);

c=max(a,b);

printf("max=%d/n",c);

}

int max(int x, int y)

{

int z;

if(x>y)z=x;

else z=y;

return z;

}

让甲、乙、丙 3 个人合作完成求 2 个数中较大者的任务:

甲:提供 2 个整数给乙

乙:等待,直到甲给出 2 个整数 a,b

呼叫丙,并且将 a,b 两数告诉丙

等待,直到丙回复一个整数,

将该整数用 ”max=?” 的格式写在黑板上。

丙:将呼叫者给出的两个整数分别给变量 x 和 y

找出 x,y 中较大的数,将其回复给呼叫者。

将甲改称 ren

乙改称 main

丙改称 max 更具体且严格的描述如下:

习题1.5

请参考如下图案输出到屏幕上的讲解:** *

* * *

习题1.5参考答案:

#include

void main(){

printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /n");

printf(" Very good!/n");

printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /n");

}

习题1.61.给你一个标准c的较经典并且好理解的解答:int max(int x,int y)

{

int z;

if(x>y)z=x;

else z=y;

return z;

}

main()

{

int a,b,c,max_abc;

scanf("%d%d%d",&a,&b,&c);

max_abc=max(a,b);

max_abc=max(max_abc,c);

printf("max=%d",max_abc);

}

参考文献:《C语言程序设计》 谭浩强 第一章例1.3

2.求最大值,用函数的较精简的写法int max(int x,int y)

{

int z;

if(x>y)z=x;

else z=y;

return z;

}

main()

{

int a,b,c,maxium;

printf("please input 3 number/n");scanf("%d%d%d",&a,&b,&c);

maxium=max(max(a,b),c); /*a和b大的那个数和c比较大小*/printf("%d",maxium);/*输出a,b,c三个当中最大的那个数*/getch();}

3 要说写法较简单的,给你一个main()

{

int a,b,c,max;

scanf("%d%d%d",&a,&b,&c);

printf(" max=%d",((max=(a>b)?a:b))>c?max:c);

getch();

}

4 实质相同的好理解的,给你一个main()

{

int a,b,c,max;

printf("please input 3 number/n");

scanf("%d,%d,%d",&a,&b,&c);

if(a

else max=a;

if(max

max=c;

printf("max=%d/n",max);

}

5 要输出最大值和最小值怎么写?

给你一个标准c的较经典并且好理解的解答:

#includeint max(int x,int y)

{

int z;

if(x>y)z=x;

else z=y;

return z;

}

int min(int x,int y)

{

int z;

if(x

else z=y;

return z;

}

main()

{

int a,b,c,max_abc,min_abc;

scanf("%d%d%d",&a,&b,&c);

max_abc=max(a,b);

max_abc=max(max_abc,c);

printf("max=%d ",max_abc);

min_abc=min(a,b);

min_abc=min(min_abc,c);

printf(" min=%d/n",min_abc);

getch();

}

参考文献:《C语言程序设计》 谭浩强 第一章例1.3

6 要输出a,b,c,d,e,f,g中的最大值和最小值怎么写?int max(int x,int y)

{

int z;

if(x>y)z=x;

else z=y;

return z;

}

int min(int x,int y)

{

int z;

if(x

else z=y;

return z;

}

main()

{

int a,b,c,d,e,f,g,max_abc,min_abc;

scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g);

max_abc=max(a,b);

max_abc=max(max_abc,c);

max_abc=max(max_abc,d);

max_abc=max(max_abc,e);

max_abc=max(max_abc,f);

max_abc=max(max_abc,g);

printf("max=%d ",max_abc);

min_abc=min(a,b);

min_abc=min(min_abc,c);

min_abc=min(min_abc,d);

min_abc=min(min_abc,e);

min_abc=min(min_abc,f);

min_abc=min(min_abc,g);

printf(" min=%d/n",min_abc);

}

参考文献:5

7.输入a,b,c,输出最大值MAX,中间值MID,最小值MIN#include

main()

{

int a,b,c;

int t;

printf("/nintput a :");

scanf("%d",&a);

printf("/nintput b :");

scanf("%d",&b);

printf("/nintput c :");

scanf("%d",&c);

/*将a,b,c的值按由大到小重新排列*/

if(a

if(a

if(b

printf("max: %d mid: %d min: %d /n",a,b,c);

getch();

}

8 请问有更经典的解法吗? 学习了循环和数组以后,再。。。。。。。。。

OVER

C语言阅读程序输出星号井号 第1章 C语言概述-python的长整型-WinFrom控件库|.net开源控件库|HZHControls官网...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。