专业课参考-语言程序设计_第1页
专业课参考-语言程序设计_第2页
专业课参考-语言程序设计_第3页
专业课参考-语言程序设计_第4页
专业课参考-语言程序设计_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

数据与数据类基本数程序加工处理的对象及其结数据类数据在计算机内存的表示形式:占用的基本数据类存单元数量、编码基本数据类构造数据类语言已经定义、可直接使构造数据类用户可根据自己的需要定义的新的类型共50 第2C语言的基本基本数据类字符字符◆

类型说整单精度浮点双精度浮点类型修饰

类型修短长有符无符

型说明符配合使共50 第3int:与机器的字长密切相关,16bit(2字节或32位(4字节)。采用二进制补码0 0 0 0 0 0 00 0 0 0 0 0 0 int型整数的最大 =215-11000000000000001int型整数的最小 =-215=-int型(16位)范围:-32768~int型(32位)范围:-231~231-共50 第4#includeintmain(

实际运行{inti,for(i=n=1;i<10;i++{n*=printf(”%d!=%d\n”,i,}return}

8!=-9!=-

例溢上下下共50 第5加修饰符数据类型的数 格式和取值范围shortint<==>int<==> <==>int<==>shortint<==>类 占用内存单 取值范unsigned 2字longint unsigned 4字-

0~ 0216- 232-

231-VC环境:sizeofchar:float:

int:double:

short:longdouble:

long:共50 第6一个失眠的程序员是这样试图睡觉1只羊,2只羊,„,32766只羊,32767只,-32768只羊,-32767„天呢,这个变量为什么是short?7上机题目:求最后3位数一般算法:a乘n后截取最后3位。问题关由于数据类型int的表示范围有限,当累乘last=(last*a)%float:采用IEEE754标准,32bit(4字节)double:采用IEEE754标准,64bit

二进制23二进制238s

规格化的有效数字V=(-2-23|尾数|1-2-

例0.000,000,12|尾数|2-128|阶码|2.9*10-39|阶码|共50 第9 有若干10元的 拿出若干张10元的 输入 希望交换几张10元输出1角的数量5角的数量1元的数据模1.8*a=1.5*b=0.1*a+0.5*b+c=#include"stdio.h"voidmain(){floatn,a,b,c;intflag=0;scanf("%f",&n);for(a=1;a<=100*n;a++)for(b=1;b<=20*n;b++)

行够小即认为for(c=1;c<=10*n;c++if(1.8*a==1.5*b&&1.8*a==2.0*c(a+5*b+10*c)==100*n printf("%.0f,%.0f,%.0f\n",a,b,上输入8,结果正change.为什么?}if(flag==0printf("No}#include"stdio.h"voidmain(){intn,a,b,c,scanf("%d",for(a=1;a<=100*n;a++)for(b=1;b<=20*n;b++)for(c=1;c<=10*n;c++if(18*a==15*b&&18*a==20*c(a+5*b+10*c)==100*n行一段时}if(flag==0printf("No}#include"stdio.h"voidmain(){intn,a,b,c,scanf("%d",for(a=1;!flag&&a<=100*n;a++)for(b=1;!flag&&b<=20*n;b++)for(c=1;!flag&&c<=10*n;c++if(18*a==15*b&&18*a==20*ca+5*b+10*c==100*n printf("%d,%d,%d\n",a,b,c);flag=1;问题:结问题:结果率有所提高if(flag==0printf("No}#include"stdio.h"voidmain(){intn,a,b,c,scanf("%d",for(a=1;!flag&&a<=100*n;a++ b= c=if(18*a==15*b&&18*a==20*ca+5*b+10*c==100*n{printf("%d,%d,%d\n",a,b,c);flag=1;}问题:结问题:结果率提高if(flag==0printf("No}数数据模1.8*a=1.5*b=0.1*a+0.5*b+c=解方程a=b=c=#include<stdio.h>intmain(){intn,a,b,if(n%8==0){a=b=c=a*9/10;}elseprintf("No}常10进制:0~9常8进制:0 以数字0开16进制:0~9,A~F/a~f,以0x或0X开实型常量(2种形式十进制:符号、整数、小数点和小数指数e或E和表示指数部分字符常字符串常共50 第16整型常量的不同表示方10进制: - 8进制: 16进制: 0XFF整型常量的类在整型表示范围内根据值大小默认类在常量后面加l或L,则认为是longint型。例如:都是longint型常量。10进制:-8进制16进制

0XFFl共50 第17IT码农、一名标准的本科小资, ——这个笑话不太冷1810-指数指数等价于1.8e-1.8*10--123e--123*10-指数:-.1e-等价于:-0.1*10-.1E-0.1*10-共50 第19常数定义与符号常常量定义形#define 宏命 定义符 命标识 宏替换名(一般用大写字符共50 第21常常量定义实11"#define使用方a=b+

s=3.14159*r*r;int

int共50 第22按运算类型分算术运3.逻辑

关系运位运7条件运9其它运按运算对象的数目分单目运三目运

自增自减运算指针运共50 第23&∧&∧¦

按按位或(双目)按位单

111187614~ b~

~a 共50 第24实例:已知:intx=7,y=10,z=1x&yx&z=x¦y=y¦z=x^y~x=–x=

(00000111&00001010= (00000111&00000001= (00000111¦00001010= (00001010¦00000001= (00000111^00001010= x<<2=28(00000111<<2=0001y>>2=x>>2=

(00001010>>2=0000(00000111>>2=0000共50 第25关于>>:右移一=缩小关于<<:左移一=扩大2关于因为:~=按位求求=求=求+1所以~x=-求-=求–1注意位运算是对二进制的位只能对int型、char型和long型进行位共注意位运算是对二进制的位只能对int型、char型和long型进行位共50 第26按运算符的优先级分为15按运算符的结合性分为2结 结优先级不同时:运算符优先级的决定了进行运算的。 共50 第27运算运算结合()[→8&→ -7^→++--!~+-*&(type)sizeof←6|→5→*/→4→+→3?→ →2=+=-=/=&=^=<<=←<<=>=→9==→1,→共50 第28 数据类行混合运算需隐式 ”类型转换采用强制类型转换符 共50 第31“隐式的”类型转换规1、运算中将所有char型数据都转型,floatdouble2、低级类型服从高级类型,并进行相

3、赋值以赋值运算符左边共50 第32例:inta,j,yfloatblong则 y=j+'a'+a*b-c/①计算j加字符'a'的ASCII码97,结果为int②计算a*b,运算结果为double型③将①和②的结果进行+运算,结果为double④计算c/d,结果为double⑤用③步结果减去④步结果,结果为double将⑤步的结果double型转换为整型,截double型数据的小数部分,压缩成int共50 第33C语言语句概按照C语言语句的作用说明语注释语

编程者对程序本身的解程序流程控制语句是“可执行”的语句构成程序的主共19 第34if-elsedo-标共19 第35按照C语言语句的功能分类控制语 控制程序 (流程函数调用语句由一个函数调用加一个分表达式语 赋值表达式加分空语复合语

只有一个分号共19 第36注释语控句{复合voidmain /*简控句{复合int表达式if(b>表达式函数调{c=a+b;函数调

说明语}else}

空语C的语句以分号(;)

共19 第37常见输入设备键盘鼠常见输出设备显示 、绘图#include<stdio共19 第38调用形%附加格式说明格式转附加格式说明符部分可以缺省 (地址)中scanf("%d",&x

共19 第39格式转换字 输入十 输入八进制整 输入十六 输入单个 输入字符 输入实数,可为附加格式说明 用于输入长整型数据及double 用于短整型数正整数用于指定输入数据占 共19 第40调用形printf("控制字符串",参数1,参数2,…,参数n)共19 第43格式转换字 以十进制形式输出整数 以八进制无符号形式输出整数 以十六进制无符号形式输出整数(不输 以无 以字符形式输出,仅输出 输出字 以小 以标准指数形式 选用%f或%e不输出无意义共19 第44附加说明 lm(正整.n(正整—

用于输出长整型数对实数,表示输出n位小数;输出的数据在输出域内向左对共19 第45首先要仔细审有什么特殊情况需要考输出什么结果?什么格共26 第46 0~180之。计算12:0011:59之间任意一个时刻指针之间的夹第1个数字代表小时(大于0小于等于12),第2个数字代([0,59])。输出建立数学模分针=360/60×m时针360/12×h=30h+=6m-30h-5m=5.5m-时针和分针间的最小夹角=如果角度 如果角度

用设计程序结输入小时h和分难点:输出格At12:00theangleis0.0degrees.At12:30theangleis165.0degrees.程序

void{floatx,y,scanf("%f%f",&x,&y);z=6*y-(30*x+y/2);if(z<=-180)z=elseif(z>-180&&z<0)z=-z;elseif(z>180)z=360-z;elsez=if(y<10printf("At%.0f:0%.0ftheangleis%.1fdegrees.\n",x,y,z);printf("At%.0f:%.0ftheangleis%.1f}要学会使用编译器的联机帮在TC2.0/3.0中用联机HELP功能Ctrl+F1 atleastncharacters,blank-padded atleastncharacters,0leftfill计算时#include"stdio.h"voidmain(){floath,a,m;constb=5;scanf("%f%f",&h,&m);h=h+m/60;h*b>m?a=(h*b-m)*6:a=(m-h*b)*6;a>180?a=360-a:a=a;printf("At%.0f:%02.0ftheangleis%.1fh,m,}共26 第57转移语句的作58格break语句的功

switch语句中结束case子句,使控制转到switch语句之外。59break语句的执行流while语 for语 do-while语表达表达式后续表达式后续执行表达式执行表达式表达式后续语60例C6_6101.C:求整数的最大的三例#include例{intj; longn;printf("Pleaseinputnumber:");scanf("%ld",&n);/*求的约数的可能取值从999到100*/for(j=999;j>=100;j--)ifn%j==0/*能够整除j,则是约数{printf(”3digitsin%ld=%d\n”,n,j /*制退出}}61break语句使用注1、在嵌套循环中,break语句仅能(当前层)循环2、若在循环语句中包含switch句,那么switch语句中的break语句仅能使控制退出switch语句。62continuecontinue语句格continuecontinue语句的功for语句,将控制转到执行表达式3和条whiledo-while语句,将控制转到条要使用continue语句。63continue语句的执行流表达表达式后续语表达式后续语执行表达式执行表达式表达式后续语64例例C6_6201.C1例main(要使要使用continue{printf("Inputscanf("%d",if(j<=0count++;sum+=j;}

/*束本次循环,不进/*数器/*累加if(count>0printf("Plusnumer:%d,averagecount,elseprintf("Plusnumer:0,averagevalue:}65goto语句格

gotogoto标号goto语句的功1、将控制转移到标号所指定的语句处继 goto语句的使用说在C语言中,goto语句并不是必不可少的语言成goto语句的地方都可以用其它66=4*a+6*d=则可以推出,首项a和公差d的取值范围为1<=a 1<=d可以使用穷举的方项ad的取67#include<stdio.h>main()

{inta,b,c,d,i;for(a=1;a<=5;++a)for(d=1;d<=3;

/*a的范围内穷举/*d的范围内穷b=a+(a+d)+(a+2*d)+(a+3*d/*四项的和c=a*(a+d)*(a+2*d)*(a+3*d);/*前四项的积*/if(b==26&&c==880 /*若满足条件}

goto

/*出二重循/*句标号for(i=0;i<=20;printf("%d,",}

/*出68main(

inta,b,c,di, /*flag:标志变量for(a=1a<=5&&flag++a)/*flag!=0是进行for(d=1;d<=3&&flag;{{if(b==26&&c==880)/*四项的/*四项的积/*满足条{fori=0i<=20 /*出结printf("%d,",flag /*制退出二重循环}}通过通过增加标志变量可以有效地控制循69return语句return表达return句的功返回70例统计一个整数的位例Inputanumber:Inputanumber:Itcontains5Inputanumber:-Inputanumber:-Itcontains2InputInputanumber:Itcontains1while(number!=0){number=number/10;count++;}while(number!=0){number=number/10;count++;}}77求12item=iitem=for(j=1;j<=i;j++item=item*

item=for(j=1;j<=i;j++)item=item*j;78例例{inti,doubleitem /*item存放阶乘的sum= fori=1i<=100i/*外层循环求{item /*每次求阶乘都从1开始连乘for(j=1;j<=i;j++)item=item*j;sum=sum+}

/*内层循环i!算法效率高吗printf("1!+2!+3!+…+100!=%e\n",1!+2!+3!+…

温馨提示

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

评论

0/150

提交评论