
1以下正确的函数定义是(.doc
13页一、选择题1.以下正确的函数定义是( )A.double fun(int x, int y) B.double fun(int x,y){ z=x+y; return z ; } { int z; return z;}C.fun (x,y) D.double fun (int x, int y){ int x, y; double z ; { double z ;z=x+y; return z;} return z;}【答案】D 【说明】其返回值与函数类型相符2.若调用一个函数,且此函数中没有 return 语句,则正确的说法是 ( )A.该函数没有返回值 B.该函数返回若干个系统默认值C.能返回一个用户所希望的函数值 D.返回一个不确定的值【答案】A3.以下不正确的说法是( )A.实参可以是常量,变量或表达式B.形参可以是常量,变量或表达式C.实参可以为任意类型D.如果形参和实参的类型不一致,则以形参类型为准【答案】B 【说明】形参只能是变量或数组。
4.C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( )A.地址传递 B.值传递C.有实参传给形参,再由形参传给实参 D.由用户指定传递方式【答案】B 【说明】地址传递是在实参和形参是数组的情况下进行的5.C 语言规定,函数返回值的类型是决定于 ( )A.return 语句中的表达式类型 B.调用该函数时的主调函数类型C.调用该函数时由系统临时 D.在定义函数时所指定的函数类型【答案】D 6.若用数组名作为函数调用的实参,传递给形参的是( )A.数组的首地址 B.数组中第一个元素的值C.数组中的全部元素的值 D.数组元素的个数【答案】A 7.如果在一个函数中的复合语句中定义了一个变量,则该变量( )A.只在该复合语句中有定义 B.在该函数中有定义C.在本程序范围内有定义 D.为非法变量学习情境五 函数与编译预处理习题解答C 语言程序设计实训指导与习题解答122【答案】C 【说明】因为该变量为局部变量8.下面程序的输出是( )。
int i=2;printf("%d%d%d",i*=2,++i,i++);A.8,4,2 B.8,4,3 C.4,4,5 D.4,5,6【答案】A9.已知一个函数的定义如下:double fun(int x, double y){ }则该函数正确的函数原型声明为( )A.double fun (int x,double y) B.fun (int x,double y)C.double fun (int ,double ); D.fun(x,y) ;【答案】A 10.以下不正确的说法是( )A.全局变量,静态变量的初值是在编译时指定的B.静态变量如果没有指定初值,则其初值为 0C.局部变量如果没有指定初值,则其初值不确定D.函数中的静态变量在函数每次调用时,都会重新设置初值【答案】D【说明】静态局部变量在其函数调用结束后仍然可以保留变量值11.以下任何情况下计算平方数时都不会引起二义性的宏定义是( )A.#define POWER(x) x*x B.#define POWER(x) (x)*(x)C.#define POWER(x) (x*x) D.#define POWER(x) ((x)*(x))【答案】D12.以下正确的叙述是( )。
A.C 语言的预处理功能是指完成宏替换和包含文件的调用B.C 语言的预处理指令只能位于 C 源程序文件的首部C.凡是 C 源程序中行首以“#”标识的控制行都是预处理指令D.C 语言的编译预处理就是对源程序进行初步的语法检查答案】B13.C 语言提供的预处理功能包括条件编译,其基本形式是:#XXX 标识符程序段 1 #else程序段 2#endif这里 XXX 可以是( )A.define 或 include B.ifdef 或 include C.ifdef 或 ifndef 或 define D.ifdef 或 ifndef 【答案】D 第 6 章 函数习题解答 123二、填空题1.C 语言函数返回类型的默认定义类型是 答案】整型2.函数调用语句:fun((a,B.,(c,d,e)) 实参个数为 答案】23.函数的实参传递到形参有两种方式: 和 答案】传值、传址4.在一个函数内部调用另一个函数的调用方式称为 在一个函数内部直接或间接调用该函数成为函数 的调用方式。
答案】嵌套调用 递归5.C 语 言 变 量 按 其 作 用 域 分 为 和 ; 按 其 生 存 期 分 为 和 答案】全局变量 局部变量 动态变量 静态变量6.已 知 函 数 定 义 : void dothat(int n,double x) { … }, 其 函 数 声 明 的 两 种 写 法 为 和 答案】dothat(int n,double x) { … } dothat(int,double) { … }7.C 语言变量的存储类别有 , , 和 答案】自动变量和寄存器变量 静态外部变量 静态局部变量 外部变量8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为 答案】自动9.在一个 C 程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为 答案】静态全局变量10.变量被赋初值可以分为两个阶段:即 和 答案】定义时赋值 运行中赋值11.下面程序的运行结果是 。
define MAX(a,b) (a>b?a:b)+1main(){ int j=6,k=8,f;printf("%d\n",MAX(j,k));} 【答案】912.下面程序的运行结果是 define A 4#define B(x) A*x/2main(){ float c,a=4.5;c=B(a );printf("%5.1f\n",c );} 【答案】9.013.以下程序的输出结果是 include "stdio.h"#define F(y) 3.84+y#define PR(A. printf("%d",(int)(A.)C 语言程序设计实训指导与习题解答124#define PRINT(A. PR(A.;putchar('\n')main(){ int x=2;PRINT(F(3)*x);}【答案】914.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行main(){ int x=2,y=3;printf("%d\n",pow(x,y));}【答案】#include 15.下面程序的运行结果是 main(){ int a=10,b=20,c;c=a/b;#ifdef DEBUGprintf("a=%d,b=%d",a,b );#endifprintf("c=%d\n", c );}【答案】c=0 16.下面程序的运行结果是 。
define DEBUGmain(){ int a=14,b=15,c;c=a/b;#ifdef DEBUGprintf("a=%d,b=%d, ",a,b );#endifprintf("c=%d\n", c );}【答案】a=14,b=15,c=0三、程序阅读题1.写出下面程序的运行结果func(int a,int B.{ static int m=0,i=2;i+=m+1;m=i+a+b;return (m);}main(){ int k=4,m=1,p1,p2;p1=func(k,m); p2=func(k,m);printf("%d,%d\n",p1,p2); }【答案】8,172.写出下面程序的运行结果define MAX 10int a[MAX], i;第 6 章 函数习题解答 125sub1(){ for(i=0; ifun(int n){ int k,r;for(k=2; k1) printf("*"); r=n%k;}}if(n!=1) printf("%d\n",n);}main(){ int n;scanf("%d",&n);printf("%d=",n);if(n0) { d=s%10;if(d%2=0) { t=d*sl+t;sl*=10;}s/=10;}return(t);}【答案】错误long fun(long s){ long t, sl=1;int d;t=0;while(s=0)num[i]++;}}C 语言程序设计实训指导与习题解答128【答案】错误fun(char s[], int num[5]){ int k; i=5;for(k=1; k0)num[i]++;}}4.函数 fun 的功能是:根据整型形参 m,计算如下公式的值:y=1-1/2×2-1/3×3-…-1/m×m判断下面程序的正误,如果错误请改正过来。
fun(int m){ double y=0, d;int I;for(i=100,i='0'&&s[i]='0' && s[i]a[mid]) ② ;else return(mid);}return(-1);}【答案】① x2=mid-1 ② x1=mid +12.del 函数的作用是删除有序数组 a 中的指定元素 x,n 为数组 a 的元素个数,函数返回删除后的数组 a 元素个数,请填空使程序完整int del(int a[10],int n,int x){ int p=0,i;while(x>=a[p]&&p① ;main(){ float x,y,z,f;scanf("%f,%f,%f",&x,&y,&z);f=fun( ② );f+=fun( ③ );printf("f=%d",f);}float fun(float a,float b){ return(a/b);}【答案】① #include ② x+y,x-y ③ z+y,z-yC 语言程序设计实训指导与习题解答1304.avg 函数的作用是计算数组 array 的平均值返回,请填空使程序完整float avg(float array[10]){ int i;float avgr, sum=0;for(i=1; ① ; i++)sum+= ② ;avgr=sum / 10;③ ;}【答案】① i1)【参考程序】long ff(int n){ long f;if(nv){ t=u; u=v; v=t;}a=u; b=v;while((r=b%a )!=0){ b=a; a=r;}return(a);}lcd(u,v,h)int u,v,h;{ return(u*v/h);}3.写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
参考程序】main(){ char str0[100];gets。












