《C语言程序设计基础》课程单元总结与单元练习 答案
for(i=0;i<10;i++) { ;
printf(\ } }
4.下列程序的功能是求两个矩阵的和,请将程序补充完整。
#include
{ int a[3][4],b[3][4],c[3][4]; //数组c存放矩阵a与b的和 int i,j; for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf(\
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{ scanf(\ ); ; }
for(i=0;i<3;i++) { for(j=0;j<4;j++) } }
printf(\ putchar('\\n');
5.阅读下列程序,程序运行后的输出结果是 。
#include
{ char s[3][20]={“1234”,”234567”,”6789”};
int i,k;
for(k=0,i=1;i<3;i++)
if(strcmp(s[k],s[i])<0) k=i; puts(s[k]); }
*******************************************************************************
习题答案:
一.选择题
1.C
2.C
3.C
4.D
5.A
《C语言程序设计基础》课程单元总结与单元练习 答案
二.填空题
1.float a[4]={0} 0至3 16
2.0
3.x+=f[i];或x=x+f[i];
4.&b[i][j] c[i][j]=a[i][j]+b[i][j] 5.6789
*******************************************************************************
《C语言程序设计基础》课程单元总结与单元练习 答案
单元七 函数的使用
单元总结提升
在本单元中,如何使用自定义函数是核心内容。通过本单元的学习,我们应该知道: 1. 函数是构成C程序的基本单位,函数的使用为模块化程序设计奠定了基础。从用户使用的角度,函数分为 库 函数、 自定义 函数两种。 2. 库函数的使用包括 头文件包含 和 库函数调用 两个环节;用户自定义函数的使用包括 函数声明 、 函数定义 和 函数调用 三个环节。 3. 从函数的外观形式看,函数分为 有参 函数、 无参 函数两种。当主调函数调用无参 函数时,不需要向这些函数传递参数;当主调函数调用 有参 函数时,需要传递参数。 4. 用户自定义函数的一般形式为: 函数返回值类型 函数名(形式参数列表) //函数首部 { 函数体; } 其中第一行称为 函数首部 ,大括号“{}”括起来的部分称为 函数体 ,对于有返回值的函数,函数体中要包括 return 语句。 5.函数首部也称为函数原型,用函数原型声明函数时,形参名可以省略不写,而只写形参的类型,但形参的 类型 和 数量 必须与函数首部保持一致。 6.函数要先声明,然后才能使用,函数声明在程序中的位置有以下几种情况:(1)函数声明写在主调函数的外部,这时的函数声明为全局声明。(2)函数声明写在主调函数的说明语句中,这时的函数声明为局部声明。(3)函数的定义出现在主调函数之前,则函数声明可以省略。 7.函数的调用形式为:函数名(实际参数列表)。若调用无参函数,则实参为空;若调用有参函数,则在()内写出与形参类型、数量一致的实参。对于有参函数,函数调用过程中存在着参数传递的问题,参数传递有两种情况,其一为 值传递,其二为 地址传递。 8.函数在函数体中出现了对自身调用的语句,就称为函数递归调用。使用递归方法解决问题的关键是如何找出 递归关系 ,以及找出递归调用的 终止条件 。 9.带参宏定义的一般形式为: #define 宏名(形参列表) 字符串 。通常用带参数的宏定义代替简单公式型函数。
《C语言程序设计基础》课程单元总结与单元练习 答案
10.函数的存储类型有static和extern两种。 extern 型函数称为“外部函数”,可以被其他编译单位中的函数调用; static 型函数称为“内部函数”,只能被本编译单位的函数调用。 11.程序中变量的使用范围称为变量的作用域,每个变量都有自己的作用域。按照作用域的范围可分为两种: 局部变量 和 全局变量 。 12.变量的存储方式可分为“动态存储”和“静态存储”两种。动态存储变量包括 auto 和 regiest 两种类型;静态存储变量包括 static 和 extern 两种类型。静态存储变量若没有初始化,则默认初始值为 0 。static类型变量的值具有继承性,即本次调用的初值是上次调用结束时变量的值。
单元练习
一.选择题
1.关于使用函数的目的,以下不正确的说法是( )。
A.提高程序的执行效率
B.提高程序的开发效率 D.提高程序可读性
C.减少程序文件所占内存 2.以下正确的函数首部是( )。
A.void fun(int x,int y) C.void fun(int x,y)
B.void fun(int x;int y) D.void fun(x,y)
3.设函数fun的定义形式为:
void fun(char ch, float x) { ......}
则以下对函数fun的调用正确的是( )。
A.fun(\ C.fun('65',3.7);
B.t=fun('D',12.3); D.fun(65,65);
4.关于函数的实参和形参,以下正确的说法是( )。
A.实参和对应的形参各占用独立的存储单元 B.实参和对应的形参共同占用同一存储单元 C.只有当实参与形参重名时才共同占用存储单元 D.形参是虚拟的,不占用存储单元
5.当调用函数时,实参是一个数组名,则向函数传递的是( )。
A.数组的长度
B.数组的首地址
D.数组的每一个元素的值
C.数组的每一个元素的地址
《C语言程序设计基础》课程单元总结与单元练习 答案
6.将一个函数指定为static存储类别后,该函数将( )。
A.既可以被同一源文件中的函数调用,也可以被其他源文件中的函数调用 B.只能被同一源文件中的函数调用,不能被其他源文件中的函数调用 C.只能被其他源文件中的函数调用,不能被同一源文件中的函数调用 D.既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用 7.以下叙述正确的是( )。
A.全局变量的作用域一定比局部变量的作用域作用范围大 B.静态static类型变量的生存期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
二.填空题
1.假设已有#define M(r) r*r,则语句printf(“%d”,M(2+3));的执行结果为 。 2.以下程序输出结果为 。
#include
void main() { }
int x=2,y=3; fun(x,y);
printf(\x=x+y;y=x-y;x=x-y; printf(\
3.以下程序输出结果为 。
#include
void main() { }
int a=3,b=9; fun();
printf(\a=10;b=20;
4.以下程序输出结果为 。
#include
int f( ) //定义f函数,a为形参