您好,欢迎访问三七文档
《C语言程序设计》考试时间:7月4日下午选择题25*2,判断10*1,阅读程序(程序填空和程序执行结果)6*4,编程题(3个顺序、分支、循环)要求:◦选择、判断填涂在机读卡上(查自己的姓名代码,写清楚名字、准考证号(学号)、姓名代码,并涂好)◦阅读程序和编程做在答题纸上。P3:算法的特性p9:C语言程序的基本特点(书中+课件中主要以课件中的特点理解和记忆)(另补充:注释符/**/是对语句的解释,编译时并不检查注释中的语句;所有语句总是以;结束)P10:标识符的正确判断课后选择题1.数据的基本类型:整型、字符型、实型2.字符、字符串常量的表示形式,变量的正确定义、赋值◦变量必须先定义再使用,变量要区分大小写,sum和Sum是不同的变量,通常变量用小写,符号常量用大写表示;给变量正确赋值(赋同一个值时,不能连续赋值)floata=5,b=5,c=5;√floata=b=c=5;×◦各种变量的类型符号3.运算符:算术运算、关系运算、逻辑运算、自增自减运算、复合赋值运算、条件运算。所有运算符都会考到它们的用法◦各个运算符的表示方法、用法、优先级,会正确计算◦算术运算:/,%◦关系运算:等于==(=不要混淆),不等于!=◦逻辑运算:&&(与)、||(或)、!(非)◦关系和逻辑运算的结果是逻辑值1(真)或0(假);1个量在判断是真或假时,非0的任何值为真,0为假。◦5=3值为1,!3的值为0,5&&3值为1◦自增自减运算:i=2;i++,或--i的值◦复合赋值运算:会展开计算,i=2;执行i-=i*2后,i?◦条件运算:会正确求值,i=1,j=2,ij?i:j;的结果是2◦!、++/--、强制类型转换算术运算关系运算&&||条件运算赋值运算逗号运算4.数据类型转换:p33图2-3,由低向高转换,有小数必然是double型的数据课后选择、程序分析题1.输入输出函数printf、scanf、getchar、putchar以及gets、puts,需要加#includestdio.h2.格式字符:掌握%d,%c,%f的基本用法,是输出什么类型数据,理解转义字符\n,\t,\r的功能。3.用printf、scanf函数,依据程序语句正确的输入输出:◦inta,b;◦(1)scanf(”%d,%d”,&a,&b);printf(”%d,%6d”,a,b);◦(2)scanf(”a=%d,b=%d”,&a,&b);printf(”a=%d,b=%d”,a,b);4.printf、scanf和getchar、putchar对比:◦putchar、getchar只能输出/输入一个字符型数据◦printf、scanf能输出/输入多个多类型数据5.理解编译预处理命令以#开头,理解define和include的格式和基本用法。#defineN10N代表常数10课后选择题(2),程序分析(1),编程题(6)1.顺序结构中补充的交换两个变量例题2.if语句的单分支、双分支、多分支及if的嵌套。掌握if和else的配对原则,灵活应用。◦else总是与它上面的,最近的,统一复合语句中的,未配对的if语句配对。◦分段函数的求解(4-2,4-6)◦判断奇偶数问题(4-3,i%2==0(偶数),i%2==1(奇数))◦求最大或最小值问题(4-4)3.理解switch语句的基本功能:◦不加break,从某一个case分支开始执行,后面所有的语句都要执行,不再判断;◦每个case分支加入break后,执行某个case分支后就跳出switch结构;◦default是当所有分支都不相同时,执行default分支。#includestdio.hvoidmain(){inti=10;switch(i){case9:i++;case10:i++;case11:i++;default:i++;}printf(“%d”,i);}判断闰年问题(4-10):若加一个范围输出1900-2016年的所有闰年判断等边三角形或求三角形面积的问题(4-11+3-18)3个数的问题:比较大小,求最大值最小值,按序输出小到大,反向输出等#includestdio.hvoidmain(){intyear;printf(Inputyear:);scanf(%d,&year);if(year%400==0||year%4==0&&year%100!=0)printf(%disaleapyear.\n,year);elseprintf(%disnotaleapyear.\n,year);}{intyear;for(year=1900;year=2016;year++){if(year%400==0||year%4==0&&year%100!=0)printf(%5d,year);}}大小写字母问题:如果是大写字母输出,或转换为小写字母(课件)◦大写字母的条件:ch=‘A’&&ch=‘Z’◦小写字母的条件:ch=‘a’&&ch=‘z’◦数字的条件:ch=‘0’&&ch=‘9’课后选择,编程题2,3,4在顺序结构中,要顺序求值◦a=1,b=2◦a=a-b;◦b=b+a;◦a=a+b;1.掌握while,do-while,for语句的格式和功能;while和do-while的区别、执行过程;会判断循环条件和循环体的执行次数。2.break和continue的特点和区别:◦break用于switch语句和循环语句,跳出整个循环◦continue只用于循环语句,跳出本次循环,加速循环◦for(i=1,s=0;i=9;i++)◦{if(i%4==0)break;◦if(i%3!=0)continue;/*i不是3的倍数,执行continue*/◦s=s+i;}3.循环和分支中,所有的内嵌语句只能识别到第一个;处,若包含多条语句一定要加{}◦while(真){a=1;b=2;c=3;}inta=1,b=2,c=3;if(ab)c=a;a=b;b=c;a、b、c的值?相关问题、例题:求和问题:100个数(奇、偶数)奇数:i=1;while(i=100){s=s+i;i=i+2;}偶数:i=0;while(i=100){s=s+i;i=i+2;}某范围内输出能被某个数(7)整除:if(i%7==0)n!:5-45-6,5-12(Fib)课后选择,程序分析(1,2),编程1,2,4(找最大数),7(水仙花)1.一个数组一旦定义,无论是一维还是二维,它的大小是固定的,类型必须相同2.一维、二维数组的定义、引用及初始化元素的各种方法。◦inta[10]={0,1,2,3,4,5,6,7,8,9};inta[10];◦#defineN5◦inta[5+N];◦一维、二维数组在定义时不能动态定义,不能是变量,只能是常数或符号常量、或常量的表达式。如inta[i];inta[i][j];(错)◦引用时可以是变量,如a[i],但不能越界,没有元素a[10],a[0]~a[9]◦元素a[6]的值是多少?◦二维数组定义:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};◦或者inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};◦引用时,a[0][0]~a[2][3],a[i][j],不能越界,a[0][3]的值是多少?或值为8的元素的下标是多少?3.相关概念:数组名表示了数组的起始地址。同一个函数中不允许变量名和数组名同名等4.字符数组和字符串的差别:字符数组‘a’,一个字符就是一个元素,数组长度=初值个数;字符串有结束标志\0,数组长度字符串实际长度5.一个字符串在计算存储空间时要+\0;在计算长度时\0不计算在内。如“hello”占存储空间6字节,长度为5个字符。6.字符串处理函数:strcpy,strcmp,strlen,会分析计算,对字符串实现赋值、比较的功能时要用函数strcpy和strcmp,不能直接比较和赋值。(课件中)例2:从键盘上输入10个整数,找出10个数中最大者并输出。可用循环或一维数组求解6-3数组求Fib数列课后选择,程序分析(1,3),编程11.正确分析函数的定义、调用、声明。函数类型函数名(形参){函数体}函数的首部+;=函数的声明函数名(实参);#includestdio.hdoublefun(intm)/*求m!函数定义*/{doubletn=1;inti=1;while(i=m){tn=tn*i;i++;}returntn;}voidmain()/*求x!/y!*/{intx,y;scanf(%d,%d,&x,&y);doublec;c=fun(x)/fun(y);printf(%f,c);}doublefun(intm);2.概念:函数必须先定义,再调用,但函数定义可以放在主调函数后面,在主调函数中需有函数声明。函数不能嵌套定义,但可以嵌套调用。3.如果函数要回传数据,则回传结果通过返回语句return实现,函数返回值的类型由定义该函数时所指定的函数类型决定;若定义时没有指定函数类型,隐含为int4.(课件中)实参和形参的传递关系:◦函数定义中是形参,只能是变量,在调用函数时才分配内存;◦函数调用时是实参,可以是常量、变量;◦传递方向是实参传给形参,形参不能传给实参,是单向的值传递;◦实参和形参个数必须一致,类型相容,位置一一对应,但名字可以不同。5.变量:根据作用域分为全局变量和局部变量,◦局部变量:定义的函数内或结构内有效,不同的函数内可以使用同名的变量,但需要在各自的函数内定义。◦全局变量:从定义的位置开始到本文件结束;◦若全局变量和局部变量同名,在局部变量范围内,全局变量失效,局部变量有效。6.存储类型:自动(auto),静态(static),外部(extern),寄存器(register),其中默认的存储类别是自动的(auto);7.给出两个函数会分析调用函数,得到结果7-7,7-8,利用n!求1!+2!+…+n!课后选择(1,3-8),程序分析(1,2)利用n!求1!+2!+…+n!#includestdio.hdoublefun(intk)/*定义函数:k!*/{doublet=1;inti;for(i=1;i=k;i++)t=t*i;return(t);}voidmain(){inti,n;doublesum=0;scanf(%d,&n);for(i=1;i=n;i++)sum=sum+fun(i);printf(%f,sum);}P113第5章1.计算(m+n)!#includestdio.hdoublefun(intk){doublet=1;inti;for(i=1;i=k;i++)t=t*i;return(t);}voidmain(){intm,n;doublesum=0;scanf(%d,%d,&m,&n);sum=fun(m+n);printf(%f,sum);}#includestdio.hvoidmain(){doublet=1;inti,m,n;scanf(%d,%d,&m,&n);for(i=1;i=m+n;i++)t=t*i;printf(%f,t);}第3章课后编程题3.将摄氏温度C转换为华氏温度F=9C/5+32.#includestdio.hvoidmain(){floatc,f;scanf(“%f”,&c);f=9*c/5.0+32;printf(“F=%f”,f);}5.已知r,h,求圆周长l,面积s,圆柱体积v#definePI3.14#includestdio.hvoidmain(){floatr,h,l,s,v;scanf(“%f,%f”,&r,&h);l=2*PI*r;s=PI*r*r;v=s*h;printf
本文标题:复习
链接地址:https://www.777doc.com/doc-2784394 .html