【习题】函数调用
函数习题

第六章函数一、填空题1. 一个函数调用表达式能够作为左值的条件是:函数的返回值必须是______类型。
2. 假定一个函数的数组参数说明为char a[],则等价的指针参数说明为______。
3. 假定一个函数的二维数组参数说明为int w[][N],则等价的指针参数说明为______。
4. 假定一个参数说明为const int a,则在函数体中______(能够/不能够)改变a的值。
5. 假定一个参数说明为const char *p,则在函数体中______(能够/不能够)改变p所指向的存储空间的内容,但______改变p指针的内容。
6. 假定一个参数说明为int &x,则进行函数调用时,它是对应______的别名。
7. 一个函数带有函数声明时,则参数的默认值应该在______(函数定义/函数声明)中给出。
8. 在进行函数调用时,将把______传送给非引用参数,把实参的______传送给引用参数。
9. 函数执行中对引用参数的访问实际上就是对相应______的访问。
10. 当函数的返回类型为void 时,在函数体中可以使用______语句,否则必须使用______语句返回一个值。
11. 当实参为一个数组名时,对应的形参必须是______类型或______类型。
12. 变量的四种作用域分别为______、______、______和______。
13. 不同作用域范围内的变量______(能够/不能够)同名。
14. 当一个函数的非引用参数为a,假定它对应的实参也为a,则在函数体中对a的访问与对应的实参a______(有关/无关)。
15. 当一个函数的引用参数为a,假定它对应的实参也为a,则在函数体中对a的访问与对应的实参a______(有关/无关)。
这两个变量的作用域______(相同/不同)。
16. 当一个函数的引用参数为a,假定它对应的实参为b,则它们对应的作用域______(相同/不同),访问它们的存储空间______(相同/不同)。
C语言函数习题

.习题一、选择题1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。
A.auto 和staticB.auto和registerC.register和staticD.extern和register2、下述程序的输出结果是____A____。
long fun(int n){ long s;if(n==1|| n==2)s=2;else s=n-fun(n-1);return s;}main(){ printf(“%ld\n”,fun(3));}A.1B.2C.3D.43、C语言中形参的默认存储类别是____A________。
A.自动(auto)B.静态(static)C.寄存器(register)D.外部(extern)4、下面对函数嵌套的叙述中,正确的是_____B_____。
A.函数定义可以嵌套,但函数调用不能嵌套B.函数定义不可以嵌套,但函数调用可以嵌套14/ 1.C.函数定义和函数调用均不能嵌套D.函数定义和函数调用均可以嵌套5、下面关于形参和实参的说法中,正确的是____B_____。
A.形参是虚设的,所以它始终不占存储单元B.实参与它所对应的形参占用不同的存储单元C.实参与它所对应的形参占用同一个存储单元D.实参与它所对应的形参同名时可占用同一个存储单元6、关于全局变量的作用范围,下列说法正确的是____D_______。
A.本程序的全部范围B.离定义该变量的位置最接近的函数C.函数内部范围D.从定义该变量的位置开始到本文件结束7、调用一个函数,此函数中没有return语句,下列说法正确的是:该函数____D____。
A.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值8、以下函数调用语句中含有____B_____个实参。
fun ((exp1,exp2),(exp3,exp4,exp5));A.1B.2C.4D.59、以下程序的输出结果是__C______。
C语言程序设计(函数的定义及调用)习题与答案

1、简单变量做实参时,它和对应形参之间的数据传递方式是()。
A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定的传递方式正确答案:B2、若函数的调用形式如下:f((x1,x2,x3),(y1,y2))则函数形参个数是()。
A.5B.2C.3D.4正确答案:B3、下列程序段中,有错误的是()。
A. void change(int x, int y){int t;t=x; x=y; y=t;}B. int f2(int x){return (x>1?printf("Y"): putchar('N'));}C. int f(){int x;scanf("%d", &x);return x++, x+5;}D.int main(){float a=2.6 , b;b=max(2.1, 3.6)=a++;printf("%f", a+b);}正确答案:D4、以下说法正确的是()。
A.C程序中,被调用的函数必须在main()函数中定义B.C程序中的main()函数必须放在程序的开始处C.C程序总是从第一个定义的函数开始执行D.C程序总是从主函数main()开始执行正确答案:D5、关于函数原型,叙述错误的是()。
A.当自定义函数被放在了主调函数的后面,就需要在函数调用之前,加上函数的原型声明B.所有函数定义放在main函数之前,可以省略原型声明C.函数可以不必进行声明,可以放在程序的任意位置D.被调用函数在主调函数之前定义,可以省略函数原型声明正确答案:C6、下列函数定义中,正确的是()。
A.int max1(int a,b){return a>b?a:b;}B.int max1(a,b){int a,b;return a>b?a:b;}C.int max1(int a,int b){return a>b?a:b;}D.int max1(int a,int b);{return a>b?a:b;}正确答案:C7、以下函数返回值的类型是( )。
C语言 练习题(函数)

一、选择题1. 以下程序的运行结果是。
#include<stdio.h>int fun(int n){int m=0,f=-1,i;for(i=1;i<=n;i++){m=m+i*f;f=-f;}return m;}int main(){printf("m=%d\n",fun(10));return 0;}A.m=5 B.m=-6 C.m=6 D.m=-52. C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是。
A.地址传递B.单项值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式3. 以下程序有语法性错误,有关错误原因的正确说法是。
#include<stdio.h>int main(){int G=5,k;void prt_char ( );...k=prt_char(G);...}A.语句void prt_char( ); 有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线4. 以下程序的运行结果是。
#include<stdio.h>int fun(int a,int b){if(a>b) return (a+b);else return (a-b);}int main(){int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);return 0;}A.-16 B.-17 C.17 D.165. 以下程序的功能是计算函数F(x,y,z) = (x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include<stdio.h>#include<math.h>float f(float,float);int main( ){float x,y,z,sum;scanf("%f%f%f",&x,&y,&z);sum=f( )+f( );printf("sum=%f\n",sum);return 0;}float f(float a,float b){float value;value=a/b;return value;}A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y A.x-y, x+y B.x+y, x-y C.z+y, z-y D.z-y, z+y 6. 以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
c语言函数练习题附答案

函数一、选择题1.在c语言中以下不正确的说法是:()A.实参可以是常量、变量、或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致2.以下程序有语法性错误,有关错误原因的正确说法是:()int main(){ int G=5,k;void prt_char();……k=prt_char(G);……}A.语句void prt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线3.以下正确的说法是:()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和调用均可以嵌套4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参5.以下所列的各函数首部中,正确的是:()A、 void play(var :Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:()A、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、传递方式由用户指定7.有以下程序void fun (int a,int b,int c){ a=456; b=567; c=678;}int main(){ int x=10, y=20,z=30;fun (x,y,z);printf("%d,/%d,%d\n",x,y,z);return 0;}输出结果是:()A、30,20,10B、10,20,30C、456,567,678D、678,567,4568.下述函数定义形式正确的是()。
php函数练习题

php函数练习题答案一:(1)函数定义:function 函数名(参数1,参数2,...){函数体}(2)函数调用:函数名(参数1,参数2,...)1. 编写一个函数,实现计算两个数的和并返回结果。
函数定义:function add($num1, $num2){return $num1 + $num2;}函数调用:$result = add(5, 3);echo "两数之和为:" . $result;结果输出:两数之和为:82. 编写一个函数,实现计算数组元素的平均值并返回结果。
函数定义:function average($arr){$sum = array_sum($arr);$count = count($arr);return $sum / $count;}函数调用:$array = array(1, 2, 3, 4, 5);$result = average($array);echo "数组平均值为:" . $result;结果输出:数组平均值为:33. 编写一个函数,实现计算字符串的长度并返回结果。
函数定义:function strLength($str){return strlen($str);}函数调用:$string = "Hello World";$result = strLength($string);echo "字符串长度为:" . $result;结果输出:字符串长度为:114. 编写一个函数,实现将字符串中的大写字母转换为小写并返回结果。
函数定义:function toLowercase($str){return strtolower($str);}函数调用:$string = "Hello World";$result = toLowercase($string);echo "转换后的字符串为:" . $result;结果输出:转换后的字符串为:hello world5. 编写一个函数,实现判断一个数是否为偶数并返回结果。
C语言习题级答案

选折题1. int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A)。
A、1B、不一定C、3D、22.以下选项中不合法的用户标识符是 BA、DimB、printfC、_123D、A$3. int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是(C)。
A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;C、for(i=1;i<=6;i++)a[i][i]=i;D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;4.以下所列的C语言常量中,错误的是___A___。
A、1.2e0.5B、0xFFC、2LD、'\72'5.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、此说明语句不正确D、数组a中各元素都可得到初值,但其值不一定为06.以下正确的字符串常量是 DA、'abc'B、'A'C、OlympicGamesD、"\\\"7. C语言中,char类型数据占(C)。
A、8个字节B、4个字节C、1个字节D、2个字节8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是____D__。
A、非法的常量B、字符aC、字符eD、字符A9.以下函数的类型是(D)fff(float x){return 5;}A、与参数x的类型相同B、void 类型C、无法确定D、int类型10.以下叙述中正确的是(A)。
C程序设计(函数的声明与调用)习题与答案

1、以下关于函数的叙述中正确的是()。
A.每个函数都可以被其它函数调用(包括main函数)B.每个函数都可以被单独编译C.每个函数都可以单独运行D.在一个函数内部可以定义另一个函数正确答案:B2、对于函数,正确的说法是()。
A.必须包含函数体B.必须有返回信息C.必须有返回语句D.必须有形式参数正确答案:A3、以下叙述中正确的是()。
A.函数的定义和函数的调用均不可以嵌套B.函数的定义和函数的调用均可以嵌套C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义不可以嵌套,但函数的调用可以嵌套正确答案:D4、以下叙述中正确的是()。
A.C语言所有函数本质上都是外部函数B.C语言编译时不检查语法C.C语言的子程序有过程和函数两种D.C语言的函数可以嵌套定义5、以下函数定义正确的是()。
A.double f(int x,int y){ z=x+y ;return z ;}B.double f(int x,int y){ double z ;z = x+y ;return z ;}C.double f(int x,y){ double z=x+y ;return z ;}D.double f(x,y){ int x, y ;double z ;z=x+y;return z ;}正确答案:B6、若调用一个函数int f(),且此函数中没有return语句,则正确的说法是()。
A.该函数没有返回值B.该函数返回一个确定的值C.该函数返回一个不确定的值D.该函数返回一个系统默认值正确答案:C7、若定义函数:fun(int a,float b) {return a+b;}则该函数的返回类型是()。
A.不确定B.voidC.intD.float正确答案:C8、C语言规定,函数返回值的类型是由()决定的。
A.return语句中的表达式类型B.调用该函数时由系统临时C.调用该函数时的主调函数D.在定义函数时所指定的函数类型正确答案:D9、对于函数返回类型,不正确的说法是()。
c语言弟4章

{z=x%y;x=y;y=z;}
return x;}
【答案】8
3.
#include <stdio.h>
func(int a,int b)
{static int m=0,i=2;
i+=m+1;
m=i+a+b;
return m;}
}
【答案】[1] r!=0 [2]fmax(m,n) [3] a,b
3.编写函数,根据整型形参m的值,计算公式t=1-1/22-1/32……1/m2的值。例如,若m=5,则应输出0.536389。
#include <stdio.h>
#define N 5
float fun(int m)
for (n=__[1]___;n<2009;n++)
if(_ [2]__)
printf("year:%d is a leap! \n",n);
}
【答案】[1]1000 [2] fun(n)
2.编写两个函数,分别求出两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
{n++; t= t/10;} /*求出M是几位的数*/
t=m;
while(t)
{if(t/(int)pow(10,n-1)!=t%10) /*比较其最高位和最低位*/
return 0;
else
{t=__[1]___; /*去掉其最高位*/
7.
#include <stdio.h>
#define f(x) x*x
C语言习题级答案2

选折题1. int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A)。
A、1B、不一定C、3D、22.以下选项中不合法的用户标识符是 BA、DimB、printfC、_123D、A$3. int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是(C)。
A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;C、for(i=1;i<=6;i++)a[i][i]=i;D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;4.以下所列的C语言常量中,错误的是___A___。
A、1.2e0.5B、0xFFC、2LD、'\72'5.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0C、此说明语句不正确D、数组a中各元素都可得到初值,但其值不一定为06.以下正确的字符串常量是 DA、'abc'B、'A'C、OlympicGamesD、"\\\"7. C语言中,char类型数据占(C)。
A、8个字节B、4个字节C、1个字节D、2个字节8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是____D__。
A、非法的常量B、字符aC、字符eD、字符A9.以下函数的类型是(D)fff(float x){return 5;}A、与参数x的类型相同B、void 类型C、无法确定D、int类型10.以下叙述中正确的是(A)。
习题5

习题5和参考解答1)选择题(1)在下列关于C函数定义的叙述中,正确的是()。
A.函数可以嵌套定义,但不可以嵌套调用B.函数不可以嵌套定义,但可以嵌套调用C.函数不可以嵌套定义,也不可以嵌套调用D.函数可以嵌套定义,也可以嵌套调用【答案】B【解析】C语言规定:函数不可以嵌套定义,但可以嵌套调用。
(2)以下描述错误的是()。
A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将为形参分配内存单元D.调用函数时,实参与形参的类型应该一致【答案】B【解析】调用函数时实参与形参各自占用独立的内存单元。
(3)以下说法正确的是()。
A.对于用户自定义函数,在使用之前必须加以说明B.说明函数必须指明其参数类型和返回类型C.函数可以返回一个值,也可以什么值也不返回D.空函数不完成任何操作,所以在程序设计中没有用处【答案】C【解析】在主函数之前定义的函数不必声明;传统函数说明不说明参数类型。
(4)函数调用不可以()。
A.出现在执行语句中B.出现在一个表达式中C.作为一个函数的实参D.作为一个函数的形参【答案】D【解析】函数的形参只能是变量。
(5)函数调用语句“func((exp1,exp2),(exp3,exp4,exp5));”包含的实参个数为()。
A.1 B.2 C.4 D.5【答案】B【解析】本题主要考查对于函数形参的理解。
(6)将一个函数声明为static后,该函数将()。
A.既可以被同一源文件中的函数调用,也可以被其他源文件中的函数调用B.只能被同一源文件中的函数调用,不能被其他源文件中的函数调用C.只能被其他源文件中的函数调用,不能被同一源文件中的函数调用D.既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用【答案】B【解析】静态函数只能被同一编译单元(源文件)中的函数调用。
(7)以下叙述中错误的是()。
A.在不同函数中可以使用相同名称的变量B.函数中的形参是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数的复合语句中定义的变量在本函数范围内有效【答案】D【解析】在一个函数内的复合语句中定义的变量只在本复合语句范围内有效。
C语言习题

第7章函数一.填空题1.C语言中从函数的形式分可分为无参函数和。
2.在C语言中,一个自定义函数一般由两部分组成,它们是函数首部和。
3.从用户使用角度看,函数有两种:标准函数和。
4.若一个函数不需要形参,则在定义该函数时应使形参表为空或者放置一个标识符。
5.有函数调用fun1(x+y, (y,z), 10, fun((x,y-1))); 函数fun1有个参数。
6.已知函数定义:void dothat(int n, d ouble x) { …… },其函数声明的两种写法为_________________________,_________________________。
7.C语言变量按其作用域分为和;按其生存期分为___________和。
8.C语言变量的存储类别有,,和。
9.凡在函数中未指定存储类别的局部变量,其默认的存储类别为。
10.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为。
11.C语言中,形式参数的缺省存储类型是。
12.C语言中,若为指定函数是内部函数或外部函数,则默认该函数是。
二.选择题1.以下正确的说法是___________。
A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
2.以下正确的函数定义是___________。
A)double fun(int x, int y); B)int fun(int x,y){ z=x+y ; return z ; } { int z ; return 3;}C)double fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ; z=x+y;z=x+y ; return z ; } return z ; }3.C语言中,简单变量做实参和形参时,以下正确的说法是___________。
c语言第八章 函数

教学进程
8.2
函数的调用
【练习题 】
用函数实现求两个实数的和。
#include <stdio.h> void main() /*主调函数*/ { float add(float x, float y); /*函数声明*/ float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); 因函数声明与函数首 printf("sum is %f\n",c); 部一致,故把函数声 } 明称为函数原型。 float add(float x,float y) /*被调函数首部*/ { float z; z=x+y; 用函数原型来声明函数,能减少 return(z); 编写程序时可能出现的错误。 }
教学进程
8.2.3 函数的调用
定义函数时,函数名后括号中的变量称为形式参数,即形参。 定义函数时,函数名后括号中的变量称为形式参数,即形参。 在主函数中调用函数时,函数名后括号中的表达式称为实际 参数,简称实参。
【例 】 输入两个整数,要求用一个函数求出其中的大者,并 在主函数中输出此数。
教学进程
a
b
c
d
e
f
教学进程
运行结果: 【例】 函数调用的简单例子。
**************** How do you do! ****************
/*主调函数*/ /*主调函数* #include <stdio.h> void main() { void printstar(); printstar(); void print_message(); print_message(); printstar(); print_message(); printstar(); }
C语言程序设计第6章 练习题

一、单项选择题题目1在下面的函数声明语句中存在着语法错误的就是( )。
a、AA(int, int)b、AA(int a; int b)c、AA(int a, int)d、AA(int a, int b)题目2如果一个函数定义仅允许为所在的程序文件调用,则应在该函数定义的最前面添加的关键字为( )。
a、externb、staticc、defaultd、auto题目3假定一个函数定义为“extern char* f1(char*x){return x;}”,表示该函数作用域的关键字为( )。
a、externb、charc、intd、char*题目4假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的就是( )。
a、ff(a)b、ff(a[0])c、ff(&a[0])d、ff(a+3)题目5假定一个函数原型语句为“int f1(int a[],int n);”,与数组参数等价的表示为( )。
a、int** ab、int& ac、int* ad、int a题目6假定一个函数的参数说明为const int a,则在函数体中不能进行的操作就是( )。
a、a==0b、a=10c、printf("%d",a)d、intx=a题目7在函数体中定义的变量具有( )。
a、文件作用域b、局部作用域c、函数作用域d、全局作用域题目8在函数外定义的变量,若带有作用域关键字static,则它具有( )。
a、全局作用域b、文件作用域c、函数作用域d、局部作用域题目9在函数体中定义一个静态变量时,选用的存储属性关键字为( )。
a、staticb、registerc、externd、auto题目10假定一个函数原型为“void ff(int a[],int n)”,则对应的函数指针类型为( )。
a、*ff(int[],int)b、void(*ff)(int*a,int)c、void*ff(int*a,int)d、int (*ff)(int*a,int)二、判断题题目11函数定义格式中的参数表被称为实参表。
C语言程序设计复习题二及参考答案

C语言程序设计复习题二一.单项选择题1.按照C语言的规定,能作为用户标识符的是()。
A)int B)5a C)abc_123 D)unsigned2.编译操作的功能是把源程序转换成()。
A)源程序B)目标程序C)可执行程序D)汇编程序3.定义下面语句,编译会出错的是()。
A)char a='x'; B)char a='\t'; C)char a='cc'; D)char a='\101';4.以下选项中正确的定义语句是()。
A)double x; y; B)double x=y=7; C)double x=7, y=7; D)double, x, y;5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0) B)(x-y<0) C)(x-y<0 || x-y>0) D)(x-y==0)6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)x++ B)x+=1 C)++x D)x+18.若有定义语句:int x=10;,则表达式x-=x+x的值为()。
A)-20 B)-10 C)0 D)109.有以下程序void main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是()。
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,110.以下叙述中正确的是()。
A)C语言是一种非结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计不提倡模块化的设计方法11.有以下程序#include <stdio.h>void main(){ char e1,e2;e1=’A’+’8’-‘4’;e2=’A’+’8’-‘5’;printf(“%c,%d\n”,e1,e2);}已知字母A的ASCII码为65,程序运行后的输出结果是()A)E,68 B)D,69 C)E,D D)输出无定值12.有以下程序void main(){ int a=0,b=0;a=10; /*给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b);}程序运行后输出结果是()。
计算机二级C语言知识点与习题试卷 (5)

A) 栈是"先进先出"的线性表B) 队列是"先进后出"的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构参考答案:D【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。
2、支持子程序调用的数据结构是()。
A) 栈B) 树C) 队列D) 二叉树参考答案:A【解析】栈支持子程序调用。
栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。
3、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
A) 10B) 8C) 6D) 4参考答案:C【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。
4、下列排序方法中,最坏情况下比较次数最少的是()。
A) 冒泡排序B) 简单选择排序C) 直接插入排序D) 堆排序参考答案:D【解析】冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是5、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序参考答案:C【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。
A) 软件测试的目的是发现错误并改正错误B) 对被调试的程序进行"错误定位"是程序调试的必要步骤C) 程序调试通常也称为DebugD) 软件测试应严格执行测试计划,排除测试的随意性参考答案:A【解析】软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A)错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数调用
【实验目的】:
1. 掌握函数的定义和调用方法。
2. 练习重载函数的使用。
3. 练习有默认参数值的函数的使用。
4. 练习使用系统函数。
5. 熟悉多文件工程结构。
【实验内容】:
1.编写函数int add(int x, int y),实现两个整型数据x,y的求和功能。
·要求:使用Visual C++的Debug调试功能,记录在函数调用时实参和形参的值的
变化。
2.编写一个求x的n次方的程序int pow(int m, int n),计算m的n次方的结果。
3.利用上题中设计两个函数,设计一个求两个整数的平方和的程序。
要求如下:
a)主函数中调用求和函数: int add(int x, int y);
b)求和函数add中调用上题设计的int pow(int m, int n)函数来计算其平方。
4.多文件程序结构:一个文件可以包含多个函数定义,但是一个函数的定义必须完
整的存在于一个文件中。
要求:
a)将add函数的声明部分放在头文件(add.h)中,实现部分放在源文件(add.cpp)中。
b)将pow函数的声明部分放在头文件(pow.h)中,实现部分放在源文件(pow.cpp)
中。
c)在main函数中调用add函数,计算从屏幕终端输入的两个数据之和。
(main函
数的实现在main.cpp中)
5.将第2题设计的pow函数修改成为递归函数。
6.设计一个函数int fac(int n),利用函数的递归调用,来计算n!(n的阶乘)。
·要求:单步调试程序,记录递归函数的调用过程。
7.使用系统函数pow(x,y)计算x y的值,注意包含头文件cmath。
8.从键盘输入两个数字,分别赋值给变量a、b,设计一个子函数swap,实现这两个数字交换次序。
(注:根据需要自己设计函数的参数及返回值)
·要求:使用Visual C++的Debug调试功能,记录在函数调用时实参和形参的值的变化。
9.设计一个函数,求圆的面积。
要求:在主函数中调用子函数calArea计算圆的面积。
并将calArea函数设计为内联函数。
10.编写重载函数Maxl可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。
11. 设计一个函数calPrice,计算购买一类商品的价格。
(1)为calPrice定义3个参数,分别是该商品的单价、购买该商品的数量(默认为
1件)、该商品的折扣(默认是8折)。
(2)在主函数中调用calPrice
●若只输入单价,则默认只购买了1件商品,并默认以8折计算金额;
●若只输入单价、数量,以8折计算总金额;
●若同时输入单价、数量和折扣,则以指定的折扣计算总金额。
12.利用函数的重载,通过为calPrice设计不同的参数个数,实现第9题的要求。
13.编写两个名为sumOfSquare的重载函数,分别求两整数的平方和及两实数的平方和。
【实验体会】:。