理工软件工程考研-语言程序设计c2012-d04new_第1页
理工软件工程考研-语言程序设计c2012-d04new_第2页
理工软件工程考研-语言程序设计c2012-d04new_第3页
理工软件工程考研-语言程序设计c2012-d04new_第4页
理工软件工程考研-语言程序设计c2012-d04new_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运算符(单目 自 – 自 说为单目运算,只能作用于变只能对int、char、long和指针变量进行功x=x+–x=x–x=x+(前缀x–x=x–(后缀共50 第2前缀:先自增(自减)再 : 再自增(自减前缀与后缀的区y= <==>x=yx;x先1再赋y= <==>y=xx+1;x先赋值再加1

共50 第3实例:int 因为在表达式中没有其它运算,结果一样y=在赋值运算之前,x先加1x赋给结果yxxx+1yx;x=2,y=2y=先将x赋值yx结果yx++yxxx=2,y=共50 第4注意,以下操作是错误x=++(i+j)+1;j=++(5+x);y=++x*逻逻辑上虽然正共50 第5运算符(赋值运算: 赋值组合运算:e1op= 等于于:e1e1op其中:op为下列10个运算符之+ */%<<>>|&共50 第6运算符(赋值运算: 赋值组合运算:e1op= 等于于:e1e1op例:x+= <==>x=x+x*=y+1;x>>=2;

x=x*(y+1);x=x*y+1;x=x>>2;共50 第7循环嵌在循环体中,又包含有循环语句例C3_5107.C:输出下三角形乘法九12345678912436948字符方式下屏幕显示的特屏幕上的字符只能从上到下逐行显示,同内,只能从左到右逐字显示8显示要程序架构(伪语言描述whilen{while制显示一m字符 输出一个需要的字符列计数器}行数计}9例C3_5107.C123456789123446895689假设:行i(1<=i<=9j则i行中共要输i个数据每个数据i*j10#include{inti=1,j;while(i<=9)

例例/*i:行计数 j:列计数器/*制打印表printf("%4d",i++printf("\nwhile(i<=9

{j= /*列计数器置1whileji/*嵌套的二重循环。输出第i{printf("%4d",i*jj /*列计数器+1}printf("\n");i++;外层外层循环体执行1次,内层循环要完整执行1}

/*行输出结束,输出\n/*行计数器+111例#include例main({inti,for(i=1;i<10;i++printf("%4d",i); /*打印表头*/printf("\n for(i=1i<10i+ /*制打印表for(j=1;j<=i;j++printf((j==i)?"%4d\n":"%4d",}函数printf?等价于:if(j==i)printf("%4d\n",i*j); printf("%4d",i*j);12字符型的类字符型常量:用单引号括起来的单个字符 ’#’’0’’2’’+’’;’字符定界符:转义符:改变后续字符的原 ’\t’’\’’字符型变量的charscanf("%c"&ch/*入1个字符字符型变量的printf("%cch/*1个字共50 第20字符输从键盘读入一个字符,存入变量ch中字符输出:putcharch向显示器上输出变量ch例:#includestdio.h"main(){charc=getchar( /*出字}共19 第23开开{char输出字符ch=getchar(输出字符结结

共19 第24例C2_7301.C:将从键盘输入的一行字#includestdio.h"intmain(){charch=getchar();while(ch!=’\n’)

例{putchar(ch); /*出该*/ch=getchar/*下一输}return}共19 第25到读入字母a时才停止。开ch=读入一个字开ch=读入一个字成成不成结ch=读入显示控制条程序主

ch’a’ch=getchar();while(ch!=’a’) putchar(ch);ch=getchar();}27开ch=读开ch=读入main({char成结ch=读入下成结ch=读入下一个显示{putchar(chch=getchar(}}do-while语句如何28典型非数值(图型)问题-例例1:在一行中输出m*要求:从键盘输入m值,输出一m个*号。例:输入m=4,输出的图形如下:***基本语句输出一*基本算重复m次:输出一个输出一个

scanf("%d",&m);while(m>0) }printf39典型非数值(图型)问题-例#include<stdio.h>intmain(){intm;scanf("%d",&m);while(m>0) }return0;

#include<stdio.h>voidmain(){intm;scanf("%d",&m);for(;m>0;m-- }}

40典型非数值(图型)问题-例例2:输出边长m的正方要求:从键m值,输出mm个*例:输入m=4,输出的图形如************算法分析与设1m,2m行,m个加细输入mfor(k=1;k<=m;k输出一行:m个*

41加细输入for(k=1;k<=m;k++ m*}加细输入for(k=1;k<=m;k++ for(j=1;j<=m;j++printf("\n")}42例#includestdio.h>例{intk,m,scanf(”%d”,&mfork=1k<=mk+ /*制输出mforj=1j<=mj+/*出一行中的m个*}}分析方法——逐步43典型非数值(图型)问题-例例3:输出边长m的平行四边形例:输入m=4,输出的图形如下:▋▋▋***▋▋***▋******算法分析与设在正方型每行*号的前面先输出若干个空格。对于第k行,1<=k<=mm-k个空格。44#includestdio.h>intmain(){intk,m,

intscanf(”%d”,&mfork=1k<=mk /*m{forj=1j<=mj+/*出一行中的m个**/forfor(i=1;i<=m-k;i++)printf(””);return}45#include<stdio.h>intmain(){intk,m,j,scanf(”%d”,&mfork=1k<=mk+ /*制输出mfori=1i<=m-ki++/*制输出m-k个空格printf(”forj=1j<=mj+/*出一行中的m个*}return}

行内格

46典型非数值(图型)问题-例三角形。例:输入h=4,输出的图形如下:12*3****4******分析1、按行输出。h2、程序的关键是:找出每一行中要输的数量和*的数量3、对于图形中k行要输出h-k和2k-147分析h-k2k-1算法设输入输出h行;对第k行,每行输出h-k个空格和2k-1个*对第2步进行加细2.0for(k=1;k<=h;k++{h-k个空格;输出2k-1个*;}48例程序例#include<stdio.h>voidmain(){inth,k,j;scanf("%d",&h);fork=1k<=hk /*制打h{for(j=1;j<=h-k;j++) /**/printf("");for(j=1j<=2*k-1j/***/printf("\n")}}怎样输出一个等腰梯型49*************换一个思路分对于第k1<=k<=h

需要输出h+k-1个字符(空格*号对第k行的第j个字符:若j<=h-k 输出空格 输出*50换一个思路分对于第k1<=k<=h需要h+k-1个字符(*号k行的第j个字符,j<=h-k空其它情况输出算法设fork=1k<=h /*h{for(j=1;j<=h+k-1;j++)/*行内字符*/ (j<=h-k)打印空格; 打印*号;}51例例#include<stdio.h>voidmain(){inth,k,j;scanf("%d",&h);fork=1k<=hk /*出hfor(j=1;j<=h+k-1;j/*if(j<=h-k)printf(" printf("\n")}}52典型非数值(图型)问题-例例4h值,输出*号组成的菱形。例:输入h=4,输出的图形如下: 空格数3*12233 *******************分析对于第j行,若m个空n个*号j<=h时,为上三角,则:mh-jn2j-h<j<=2h-1时,为下三m=j-n宽=2h-1-2(j-h)=4h-1-53算法for(j=1j<=2*h-1j++)控制打为上则m=h-jn2j-否则:mj-hn4h-1-2j输出m个空格;输出n个*;}加细循 if(j<=h){m=h-j;n=2*j- {m=j-h;n=4*h-1-2*j;for(k=1;k<=m;k++for(k=1;k<=n;k++)}

printf("

54例程序例#includevoidmain({inth,k,j,m,nscanf("%d",forj=1j<=2*h-1j+ /*输出行数 if(j<=h){m=h-j;n=2*j- {m=j-h;n=4*h-1-2*j;for(k=1;k<=m;k++for(k=1;k<=m;k++printf("for(k=1;k<=n;k++/**}}55例程序例#include<stdio.h>voidmain(){inth,k,j,m,nscanf("%d",forj=1j<=2*h-1j+/*控制总{if(j<=h){m=h-j;n=2*j-1; {m=j-h;n=4*h-1-2*j;for(k=1km+n;k++)/*输出*/if(k<=mprintf("");/*输出空*/elseprintf("*");/*输出**/}}}56典型非数值(图型)问题-例例4h值,输*号组成的菱形。例:输入h=4,输出的图形如下:----空格数32*号数量3331*******************分h

-(h-1)~h-1j行,若m个空n个*则:mn

2(h-m)-57例程序例#include<stdio.h>voidmain(){inth,k,j,m,nscanf("%d",forj=-h+1j<=h-1j+/*行数{m=j<0?–j:n=2*(h-m)-fork=1k<=m+nk++)/*行内格if(k<=m)printf(”

/*}}

/*输出*58123452345分析51234输出123452345分析51234输出aij与i、列j的关mj行的j,之后依次递增,但以m为模:aij=(i+j-2)%m+59程序#includevoidmain({inti,j,m;printf("EnterM:");scanf("%d",

例for(i=1i<=mi+ /*制输mforj=1j<=mj/*出行中的printf("%d",(i+j-2)%m+1);}}60典型非数值(图型)问题-例例6:打印回形方例:输入m=5,m=6,输出的图形如下:111111111111222112222112321123321122211233211111112222111111分析:关键是找aijij的关

61将图形分为四个111111111111222112222112321123321

12222111111111123321222min(m-i+1,m-62#definemin(x,y)((x)<(y)?(x):(y))voidmain(){intk,j,m;printf("EnterM:");scanf("%d",

例for(k=1k<=m /*制打印m{for(j=1;j<=m;if(k<=(m+1)/2

/*制打印行中的数字if(j<=(m+1)/2)printf("%d",min(k, printf("%d",min(k,m-if(j<=(m+1)/2)printf("%d",min(m- printf("%d",min(m-k+1,m-j+1));}}63典型非数值(图型)问题-例例7:打印数字三角形。输入高m94569456=当:i,j>=1ai+1,1=ai,1+iai,j+1=ai,j+i+j23456i行打

m-i+1个数若 则:ai+1,1=ai,1+i例:a21=a11+1=1+1=2ai,1,则:ai,j+1=例:a22=a21+2+1=2+2+1=5,a23=a22+2+2=5+2+2=9a62=a61+6+1=16+6+1=23,a63=a62+6+2=23+6+2=3164递推公式

=

例程

ai+1,1=ai,1+iai,j+1=ai,j+i+j

voidmain({inti,j,m,n,scanf("%d",&mfor(i=1;i<=m;i++

/*k是第一列元素的值forj=1j<=m-i+1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论