C语言省二级理论考试复习.ppt_第1页
C语言省二级理论考试复习.ppt_第2页
C语言省二级理论考试复习.ppt_第3页
C语言省二级理论考试复习.ppt_第4页
C语言省二级理论考试复习.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1,主要内容,C语言文件结构 数据类型及对应变量的使用 语句 算法,2,C语言文件结构,一 编译预处理(文件包含、宏定义) 二 全局变量定义(或外部变量声明) 三 函数声明 四 函数定义1 函数定义2 ,3,一 编译预处理,1 文件包含 #include sqrt,pow,fabs,abs,sin,cos,tan,asin,acos,atan #include strcpy, strcat, strlen, strcmp #include isalpha, isspace, isalnum, isdigit, isupper, islower, toupper, tolower #include atoi, atol, atof, itoa, ltoa,4,一 编译预处理,2 宏定义 exp3 #define len(x1,y1,x2,y2) sqrt( (x1-x2)*(x1-x2) + (y1-y2)* (y1-y2) ) Exam2/53 #define N 100 详情请见 第7章 编译预处理.ppt,5,二 全局变量定义 (或外部变量声明),全局变量定义在函数的外部 外部变量声明可以在任何位置,6,三 函数声明,函数声明可以放在任何位置(函数内/外均可) float f(float x),a,b; float f(float y),a,b; float f(float),a,b;,#include void main() float f(float x), a, b; scanf(“%f“, ,7,四 函数定义,返回值类型 函数名(参数列表) 变量定义(声明) 函数声明 语句 ,8,四 函数定义,例:编写程序,输入一个正整数n,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+1/n,函数返回值的类型是double,9,四 函数定义,例:编写程序,输入100个学生的英语成绩,统计并输出该门课程的平均分以及不及格学生的人数。,10,四 函数定义,某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month),计算公式如下。客户打算在530年的范围内选择还清贷款的年限,想得到一张“还款年限月还款额表”以供参考。 money=loan*rate(1+rate)month/(1+rate)month-1) (1)定义函数cal_power(x,n)计算x的n次幂(即x n),函数返回值类型是double。 (2)定义函数cal_money(loan,rate,month) 计算月还款额,函数返回值类型是double,要求调用函数cal_power(x,n)计算x的n次幂。 (3) 定义函数main(),输入贷款本金loan(元)和月利率rate,输出“还款年限月还款额表”,还款年限的范围是530年,输出时分别精确到年和元。要求调用函数cal_money(loan,rate,month)计算月还款额。,11,数据类型及对应变量的使用,char ch,str80,*pstr; int a,a10,*pa; float b,b10,*pb; double d,d10,*pd;,pstr = str; *pstr = 1; *(pstr+1) = 2; pstr1 = 3; gets(pstr); pa = a; pa1 = 1; pa = a2; pa1 = 1;,struct STUDENT char name20; int ID; char sex; int score; st,s5,*ps; struct STUDENT stu,stus10; struct STUDENT *pstu=,ps = ,12,语句,赋值 运算:数学、逻辑、关系 if else switch 循环:for , do while, while 转向:break, continue 函数调用:库函数、自定义函数,13,算法,素数的判断、统计 求阶乘、1/阶乘、幂; 数列 数组的和,最大/小值、平均值 排序:冒泡、选择 回文字符串、回文数字(整数各位数字之和),14,素数的判断,int Prime(int n) int isPrime = 1; /1表示是素数 int i,k=sqrt(n); /k也可以取n/2或n-1; for( i=2; i=k; i+ ) if( n % i = 0 ) isPrime = 0; break; return isPrime; ,return 0;,return 1;,15,素数的判断,void main() int n; scanf(“%d”, /不是素数 ,素数的统计,int Prime(int a ,int n) int numOfPrime = 0; int j,i,k; for(j=0; jk ) /aj是素数 numOfPrime+; return numOfPrime; ,17,阶乘 100!,int i,t=1; for(i=1; i=100; i+) t *= i;,1/阶乘 1/100!,int i; float t = 1; for(i=1; i=100; i+) t /= i;,阶乘之和 1!+2!+100!,int i,t=1,sum=0; for(i=1; i=100; i+) t *= i; sum += t; ,18,幂 xn,float x; int n,i,t=1; scanf(“%f%d“,1/幂 1/xn,float x; int n,i,t=1; scanf(“%f%d“,数列 1+1/2+1/3+1/4+1/100,float sum=0,t; int i; for(i=1; i100; i+) t = 1.0/i; sum += t; ,正负数列 1-1/2+1/3-1/4+-1/100,float sum=0,t; int i; int flag = 1; for(i=1; i100; i+) t = 1.0/i; t *= flag; sum += t; flag = -flag; ,数组元素的和,float sum=0; int a10 = 1,2,3,4,5,6,7,8,9,10, i; for(i=0; i10; i+) sum += ai; ,数组元素的平均值,float sum=0; int a10 = 1,2,3,4,5,6,7,8,9,10, i; for(i=0; i10; i+) sum += ai; sum /= 10;,21,数组元素的最大值,int a10 = 1,2,3,4,5,6,7,8,9,10, i; int max = a0; for(i=1; i10; i+) if( max ai ) max = ai; ,22,冒泡法:相邻两元素比较,int a10 = 10,2,8,4,6,5,7,3,9,1, i,j,temp; for(i=0; iaj+1) temp = aj; aj = aj+1; aj+1 = temp; ,选择法:某一元素与其后的所有元素进行比较,int a10=10,2,8,4,6,5,7,3,9,1; int i,j,temp; for(i=0; iaj) temp = ai; ai = aj; aj = tem; ,int a10=10,2,8,4,6,5,7,3,9,1; int i,j,temp; for(i=0; iaj ) k = j; if( k != i ) temp = ai; ai = ak; ak = temp; ,24,回文字符串判断,#include int fun(char *str) int n=strlen(str),i; for(i=0; in/2; i+) if( stri != strn-i-1 ) return 0; /非回文 return 1; /是回文 ,25,回文字符串判断:不用strlen,int fun(char *str) int n=0,i; /计算字符串长度 while(strn !=0) n+; for(i=0; in/2; i+) if( stri != strn-i-1 ) return 0; /非回文 return 1; /是回文 ,26,回文字符串判断,#include #include void main( ) char str80; int i, n=80 ; gets(str); for(i=0; in/2; i+) if( stri != strn-i-1 ) printf(“Non”); /非回文 printf(“Yesn”); /是回文 ,正确吗?,27,回文数判断: 求余得数字 除法缩减位数,int fun(long m) int n=0, a20,i; while( m != 0 ) an = m%10; m /= 10; n+; for(i=0; in/2; i+) if( ai != an-i-1 ) return 0; /非回文 return 1; /是回文 ,28,一个整数的各位数字之和,#include #include void main( ) int n,s=0; scanf(“%d“, ,29,#include int fun(int x,int y) int k; for(k=xy?y:x; y%k!=0 | x%k!=0; k-); ret

温馨提示

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

评论

0/150

提交评论