实型数据N=(-1)^S*2^E*M,其中E在内存中存放的是的存放规则是怎样的?

这一模块中有很多经典算法,下面几个是同学们必须非常熟悉的:
(1) 质数问题
} if ( x= =6 ) y *= printf(&x=%d
y=%d\n&,x,y);
① 判断一个整数是否为质数(用一层循环可以解决)
会定义函数实现,函数原型:int prime(int n); 判断参数n是否为质数,如果是,返回1,如果不是,返回0。
② 找出一定范围内所有的质数(用两层循环可以解决)
会定义函数实现,函数原型:void prime(int low,int high); 找出从low到high范围内的所有质数,是质数则输出。如果函数需要返回该范围内的质数个数,则应该将返回值类型修改为int。
③能按一定的格式输出
(2)求最大公约数问题
可以用辗转相减或相除的方法都可以得到。
会定义函数实现,函数原型:int
gcd(int m,int n);在辗转相除法中,当余数为0时的除数即为最大公约数,注意循环控制方式的不同可能导致返回值的不一样。求最小公倍数:a*b/gcd(a,b)
(3)求和问题:
掌握求和问题中条件的控制方式、累加的方式:
① 可以根据求和的项数要求来求解,例如:求100项之和;
② 可以根据每一项的精度进行求解,例如:求到这一项的绝对值不超过1E-6为止,注意这时的循环条件应该为:while(fabs(term)&=1E-6),如果用do...while循环,条件也是这样表示。
③ 注意分子、分母、当前项、和分别用一个变量表示,正确定义变量的类型,正确解决变符号问题:s=-s;
(4)输出规则图形式问题
分析行号与当前行前导空格数、符号个数、符号形状之间的关系,正确控制换行。
(5)利用循环可以控制输入数据的范围,这在实验三的P23页。
scanf(”%d%d”,&a,&b);
} while (a&10||a&b||b&1000);
实现输入的a,b范围是:10&=a&=b&=1000
模块三:函数
C语言的源程序由一个或多个函数组成,其中必须有且只能有一个主函数main( ),程序执行总是从main函数开始的,也是因main函数的结束而结束整个程序。
C函数只可以嵌套调用,而不能嵌套定义
C函数可以在定义的时候调用自己,这就是直接递归方式
这一部分需要搞清楚以下问题:
(1)函数定义:包括函数首部和函数体,函数首部又包括了函数返回值类型
函数名(形式参数表),函数体是由一对大括号括起的语句系列组成,函数的形式参数名字是无关紧要的,若函数无需返回值,则将返回值类型可以定义为void。函数的返回值由首部的函数返回值类型决定,return后的表达式类型若与其不一致,则自动转换。函数只能返回一个值,如果一个函数需要返回多个信息,则要考虑其中的形式参数采用指针参数。
例如:int f(int a[],int n,int *max); 由函数返回数组a的前n个元素之和,而元素的最大值通过设定max指针,在函数体内求*max实现,外部调用时,要用一个地址实参对应于形式参数max。
(2)函数原型:函数应当先定义后被调用,如果出现调用先于定义的情况,则必须对后定义的函数在调用点之前进行原型声明,函数原型就是函数定义的首部最后加一个分号,在原型声明中形式参数名字可以缺省。
(3)函数调用:形式为:函数名(实在参数表),实在参数与形式参数对应的要求是:个数相同、对应位置的类型最好一致
(4)形式参数类型:有值形式参数,这时实在参数将值赋值到值形式参数变量中;指针形式参数,这时将实参的地址赋值到指针形式参数中,虽然都是单向传递,但是可以通过在被调函数中修改指针所指向的内容达到修改实参变量的目的。如:swap(int *x,int *y),在该函数体内交换的是*x和*y的值;对swap的几种正确与错误实现需要能正确理解。如果函数原型为:swap(int *x,int y),在函数体内交换*x 和y的值,则主函数中的调用形式应该为:swap(&a,b);只有实参a可能会得到改变,无法完成a、b互换的目的。
(5)变量的作用域问题:
全局变量――在所有函数之外定义的变量,作用于定义点到程序结束处,但应去除掉同名局部量的作用域部分。
局部自动变量――在某函数内部定义的变量,包括形式参数也是,其作用域只在本函数内,生命期为:所在函数被调用时分配空间,该函数当次结束时空间不复存在。下次再调用则重新分配空间。在不同函数中定义的局部量可以同名,因此形式参数可以与实在参数同名,
因为处于不同的函数。
局部静态变量――在某函数内部定义的变量,有static关键字,其作用域只在本函数内,生命期为:所在函数被调用时在静态存储区分配空间,只初始化一次,本次函娄数调用结束后仍然存在,其值保留,但是在函数之外的其余部分均不可见,等该函数再次被调用时,该变量就在原来值的基础上继续变化。
(6)函数的递归:会阅读递归函数,并能对简单的调用得到运行结果,理解递归的条件:有明确的边界条件;原问题可转化为新问题,新旧问题的解决方法一样。
1、若用一维数组名作为函数调用时的实在参数,则实际上传递给形参的是______。
2、若在主函数中定义了数组变量:int arr[20],并调用了函数f(arr),则下列关于函数f
的原型声明,哪几个是完全等效的______。
f(int x[20]);
f(int x[ ]);
f(int x[10 ]);
f(int *x);
3、以下程序的输出结果是______。
#include &stdio.h&
fun (int n)
if (n= =0 || n= =1)
s = n+ fun( n-1 );
void main ( )
for (i=1;i&4;i++)
printf(&%4ld\n&, fun(i));
此题中既有递归调用,又有静态局部变量的使用这两个重要的知识点。
教材中的习题P194,5.3也是涉及静态局部变量的使用。
教材中的习题P375,9.2是利用递归进行十进制向二进制的转换问题,大家可以思考用类似方法实现十进制向其它进制的转换
4、有函数原型为void f(int,int *);主函数中有变量定义:int a, *p=&a; 则下列几种调用正确的是____?
A、 f(a,p);
B、f(*p,&a);
C、f(a,*p);
D、f(*p,a);
E、f(a,&a);
F、f(*p,p);
G、f(a,a);
H、f(p,p);
5、会结合数组、结构体类型,用多个函数完成一个程序。
模块四:数据类型
C语言源程序中所处理的任何数据(常量或变量)都是属于某一种数据类型的,数据类型将决定该类型的值在内存中占用空间的大小、数据值的表现形式及数据范围、可进行的运算及操作、变量值的组成情况等。
C中数据类型分为:基本类型、构造类型、指针类型、空类型四大类,其中基本类型包括整型、实型、字符型、枚举型;构造类型有:数组类型、结构体类型、共同体类型,指针类型的特殊性在于其变量中存放的是内存地址信息而不是内存中的值。
这一模块的重点是数组、结构体、指针类型。
(1)数组类型:
基本知识:一维及二维数组变量的定义及初始化、如何正确访问元素、一维字符数组操作字符串、会正确输入输出数组的元素、正确输出字符串,掌握string.h函数中的一些常用函数的使用,如:两个字符串的比较(例如:判断串s1是否大于s2,不能用s1&s2,而应该用strcmp(s1,s2)&0)、字符串的赋值、字符串的连接等。
算法:首先要理解一维数组名作实参和形式能数传地址的实质;
掌握在一维数组中:输入数组所有元素、输出数组所有元素、寻找最大数、最小数、求元素的平均值、查找某一个值是否是数组中的元素、数组元素逆置、某种常见排序算法等。 数组元素实际个数随着输入动态统计的方法:应当设定一个输入结束标志,在输入该标志之前的元素都依次作为数组的有效元素,该标志不计入内,用如下代码输入以-1为结尾标志的数组并输出所有的有效元素:
#include &stdio.h&
void main()
int a[100],num=0,i=0;
scanf(&%d&,&a[i++]);
}while (a[i-1]!=-1);
for (i=0;i&i++)
printf(&%5d&,a[i]);
printf(&\n%d\n&,num);
1、有数组定义int a[m][n],则在a[i][j]之前的元素的个数为______。
2、 以下一维数组的定义正确的是___
A、 int n=3, a[n];
B、#define N=3
C、 const int n=3; int a[n];
D、#define N
int a[N*3];
3、以下一维数组定义及初始化正确的是____
A、int a[ ];
B、int a[]={1,2,3}
C、int a[3]={1,2,3,4}
D、int a[3]={,2,}
4、以下选择中,能正确定义二维数组的是______。
A、int x[ ][2];
B、int x[ ][2] ={2*2};
C、int x[2][ ]={1,2,3,4 };
D、int a[2][3]={ , {1} };
5、若定义int m[10]={9,1,15,6,2,11,8,7,19,3};则m[m[1]+2*m[4]]的值是______,*m+m[8]的值为______。
6、下列字符数组定义与初始化不正确的是____
A、char s[ ]=”abc”;
B、char s[]={”abc”};
C、char s[3]={‘a’,’b’,’c’};
D、char s[3]=”abc”;
7、下列关于数组的描述中不正确的是______。
A、可以对字符型数组进行整体输入、输出
B、可以对整型数组进行整体输入、输出习题答案-1~5_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
习题答案-1~5
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢C程序设计复习题答案(1) 2_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C程序设计复习题答案(1) 2
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢c语言第二章习题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
c语言第二章习题
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 内存区域分别存放什么 的文章

 

随机推荐