函数的实参可以是常量,变量或表达式
- 格式:docx
- 大小:11.98 KB
- 文档页数:2
第6章函数思考与练习一、填空题1. 若一函数是以return;结束运行的,说明该函数是()函数。
答案:无返回值解析:在无返回值函数的函数体中可用return;语句结束函数的运行。
2. 作为()的函数调用,即使有返回值也被舍弃不用。
答案:语句解析:作为语句调用的函数,一般为无返回值函数,即便有返回值也会被舍弃不用。
3. C++依据调用中实在参数在()上或()上的不同来确定调用的是重载函数的哪一个。
答案:数量类型解析:重载函数必须在参数的数量或类型上有所不同,这些不同之处可以是函数返回值类型的不同、函数参数的类型不同、参数的个数不同以及参数的顺序不同,系统会根据这些不同选用合适的函数。
4. 在函数外定义的变量称为()变量。
答案:全局解析:全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。
其作用域是从定义该变量的位置开始至源文件结束。
5. 已知int incr(int n) {return n+1;} 和long incr(long n) { return n+1;} 是一个函数的模板的两个实例,则该函数模板的定义是()。
答案:template <class T>T incr(T n){return n+1;}解析:模板函数是可以用来创建一个通用功能的函数,支持多种不同形参,定义格式为:template <class 类型参数>返回类型函数名(函数参数表){ ……} //函数体即在函数定义的前面加上template <class 类型参数>。
二、选择题1. 从函数原型看,返回值类型为int的函数有()。
A. int F(char n);B. char F(int n);C. double F(int n);D. F(double n);答案:A解析:函数的定义格式如下:类型修饰符函数名(形式参数表) 函数体其中类型修饰符为函数返回值的数据类型,若类型修饰符的值为int,则函数的返回值类型为int。
三、判断题(10道小题,共10分)1、C 语言具有简洁明了的特点。
(1分)正确2、预处理命令的前面必须加一个“#”号。
(1分)正确3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。
(1分)正确4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
(1分)正确5、continue 不是结束本次循环,而是终止整个循环的执行。
(1分)错误6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分)错误7、.函数的实参传递到形参有两种方式值传递和地址传递(1分)正确8、直接访问就是直接利用变量的地址进行存取直接访问(1分)正确9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。
(1分)正确10、文件指针和位置指针都是随着文件的读写操作在不断改变。
(1分)错误11、C 语言标准格式输入函数scanf() 的参数表中要使用变量的地址值。
(1分)正确12、浮点型常量的指数表示中,e 是可以省略的。
(1分)错误13、任何表达式语句都是表达式加分号组成的。
(1分)正确14、在switch语句中,每一个的case常量表达式的值可以相同。
(1分)错误15、do-while循环的while后的分号可以省略。
(1分)错误16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。
正确17、C语言函数返回类型的默认定义类型是void(1分)错误18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分)正确19、枚举类型中的元素都具有一个整型值。
(1分)正确20、C 语言是一种具有某些低级语言特征的高级语言。
(1分)正确21、case语句后如没有break,顺序向下执行。
(1分)正确22、do-while循环至少要执行一次循环语句。
(1分)正确23、数组名能与其它变量名相同。
超星系统兰州工业学院-计算机语言(C语言)所有答案【单选题】以下叙述中不正确的是:A、在不同的函数中可以使用相同名字的变量。
B、函数中的形式参数是局部变量。
C、在一个函数内定义的变量只在本函数范围内有效。
D、在一个函数内的复合语句中定答案是:正确答案: D【单选题】以下说法不正确的是:A、实参可以是常量,变量或表达式。
B、形参可以是常量,变量或表达式C、实参可以为任何类型。
D、形参应与其对应的实参类型一致。
答案是:正确答案: B【单选题】以下程序的输出结果是:#includefloat funint ,int y{ return y;}void main{ int a=2,b=5,c=8;答案是:正确答案: B【单选题】若使用一维数组名作函数参数,则以下正确的说法是:A、必须在调用函数中说明此数组的大小。
B、实参数组类型与形参数组类型可以不匹配。
C、在被调用函数中,不需要考虑形参数组的大小。
D、答案是:正确答案: A【单选题】凡是函数中未指定存储类别的局部变量,其隐含的存储类别为:A、autoB、staticC、eternD、register答案是:正确答案: A【单选题】以下正确的说法是:A、用户若需调用标准库函数,调用前必须重新定义。
B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义。
系统根本不允许用户重新定义标准库函数。
D、用户答案是:正确答案: B【单选题】已有如下数组定义和 f 函数调用语句,则在 f 函数的说明中,对形参数组array 的正确定义方式为:int aB、fin答案是:正确答案: C【单选题】在C语言中,函数的隐含存储类别是:A、autoB、staticC、eternD、无存储类别答案是:正确答案: C【单选题】以下正确的函数声明形式是:A、double funint ,int yB、double funint ; int ydouble funint ,int y;D答案是:正确答案: C【单选题】C语言规定,函数返回值的类型是由______ A、return 语句中的表达式类型所决定B、调用该函数时的主调函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函答案是:正确答案: D【单选题】函数调用不可以()A、出现在执行语句中B、出现在一个表达式中C、作为一个函数的实参D、作为一个函数的形参答案是:正确答案: D【单选题】以下正确的说法是:A、定义函数时,形参的类型说明可以放在函数体内B、return 后边的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类答案是:正确答案: C【单选题】若用数组名作为函数的实参,传递给形参的是:A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数答案是:正确答案: A【单选题】以下只有在使用时才为该类型变量分配内存的存储类说明是:A、auto和staticB、auto和registerC、register和staticD、etren和register答案是:正确答案: B【单选题】C语言规定:简单变量作为实参时,它和对应形参之间的数据传递方式是______A、地址传递B、单向值传递C、由实参传给形参,再由形参传回给实参D、由用户指定的传递方式答案是:正确答案: B【单选题】以下程序的输出结果是:void main{int i;char w={"susan","ary"};fori=1;i<3;答案是:正确答案: D【单选题】以下程序的输出结果是:void main{char arr="12345";scanf"%s",s;strcats,"6789答案是:正确答案: C【单选题】以下程序的输出结果是:void main{char str="hello!\0world!\t\\\n"; ain{int i,j,a={1,2,3,4,5,6,7,8,9},t; fori=0;i<3;i{答案是:正确答案: D【单选题】以下程序的输出结果是:void main{int ,a={1,2,3,4,5,6,7,8,9};for=0;<3;esain{ char a="AAaaBB9EMW";i答案是:正确答案: B【单选题】下面程序的输出结果是:#includeusing namesain{ int a={4,0,2,3,1},i,j,t; fori=1;i<5答案是:正确答案: C【单选题】以下程序的输出结果是:void main{int i,j,n,a={3,4,1,2,-6};fori=0;i<5;iforj=i1;j<答案是:正确答案: C【单选题】下面程序的运行结果是:void main{char ch="6543ab21";int i,s;fori=0,s=0;ch<=答案是:正确答案: D【单选题】以下正确的定义语句是:A、float f={11, 22, 33, 44, 55}; B、int a={-1,0,6,1,2,3};C、char ch={a,答案是:正确答案: C【单选题】以下对数组元素正确引用的是:A、float f;s;d=8;D、答案是:正确答案: C【单选题】在VC60中,定义了数组int a;则a数组在内存中占用了_______个字节A、10B、20C、40D、不确定答案是:正确答案: C【单选题】以下错误的数组定义是A、double d;B、#define N 10 int aD、int n=10;答案是:正确答案: D【单选题】下列程序的输出结果是______。
章节11111111111111111111111111112222222222222333333 3 3 3 3 34 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 45 5 5 5 5 5 5 5 5 5 5 5 5 56 6 6 6 6 6 6 6 66 6 67 7 7 7 7 7 7 7 7 7 7 7 78 8 8 8 8 8 8 8 8 8 8 8 8问题将C程序编译成目标文件,其扩展名为EXE。
C语言中,关键字及编译预处理命令用小写字母书写。
C语言中,不能在变量名、函数名、关键字中插入空格和空行。
C语言中,程序中用/*…*/括起来的内容是程序的注释。
C程序中以冒号作为语句的结束符。
C语言中,为了区别一般的变量,符号常量必须用大写字母表示。
C语言中,变量必须先定义后使用。
程序中的“=”是赋值号,与数学中等号的功能相同。
也可以写多个语句。
C程序的书写格式比较自由,一行内可写一个语句,C语言中,用char只能定义字符变量,不能定义字符串变量。
字符数据在内存以ASCII码存储,占2个字节,用7位二进制表示。
C语言中,强制类型转换后,原变量的值和数据类型不变。
增1(或自增)、减1(或自减)运算符都是双目运算符。
C语言中,当把一个实型数据赋给整型变量时系统将自动截掉小数部分。
C语言中,在进行混合运算时,数据类型由高级向低级转换。
C语言中,putchar函数的功能是把一字节代码输出到标准输出设备。
字符串数据用格式说明“%s”来输出。
C语言中,字符数据用格式说明“%c”来输出,4表示小数位数。
C语言中,格式说明“%10.4f”中10表示数据输出的最小宽度,整数在存储时不会产生误差,实数在存储时也不会产生误差。
C语言中,输入数据的个数和类型必须与scanf函数中的说明符一一对应。
输入/输出格式符是%f。
用float定义的实型变量(按ANSI标准)在内存占8个字节,字符数据与整型数据可互相赋值。
判断题1.函数若无返回值,则它一定无形参。
×2.在C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。
×3.C程序总是从main( ) 函数的第一条语句开始执行的。
√4.同一函数内可以有多个return语句。
√5.main函数中的变量名不可以与其它函数相同。
×6.C程序可由多个函数组成,但必须有并且只有一个主函数main。
√7.在C语言中的每个函数必须要有一个明确的return语句才能返回调用程序。
×8.主函数中定义的变量的作用域仅限于主函数内。
√9.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
√10.C程序执行总是从第一个函数开始。
×11.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
×12.被main函数调用的函数只能是库函数。
×13.函数说明指的是在程序中设定一个函数模块。
×14.在C程序中,若对函数类型未加说明,则函数的隐含类型为void。
×15.形参可以是常量、变量或表达式。
×16.函数调用可以作为一个函数的形参。
×17.C语言规定,实参应与其对应的形参类型一致。
√18.定义函数时,形参的类型说明可以放在函数体内。
×19.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。
√20.全局变量可以被任何一个函数中的任何一个表达式使用。
×21.函数的隐含存储类型是extern。
√22.定义在main函数后的任何函数都需在main中进行函数声明。
×23.a是一维数组名,数组元素a[1]还可以写作“*(a++)”。
×24.C语言中数组名是指针常量。
√25.构成数组的各个元素必须具有相同的类型。
√26.数组元素的下标可以选用正整数或正实数。
×27.数组名可以作为参数进行传递。
√28.若有定义“int a[4][5];”,则在数组元素a[3][3]前有12个元素。
C语言函数是什么C语言函数是什么C程序的全部工作都是由各式各样的函数完成的,所以也把C语言称为函数式语言。
下面店铺带大家一起来看看详细内容,希望对大家有所帮助!想了解更多相关信息请持续关注我们店铺!由于采用了函数模块式的结构,C语言易于实现结构化程序设计。
使程序的层次结构清晰,便于程序的编写、阅读、调试。
在C语言中可从不同的角度对函数分类。
1. 从函数定义的角度看,函数可分为库函数和用户定义函数两种。
(1)库函数由C系统提供,用户无须定义,也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。
在前面各章的例题中反复用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函数均属此类。
(2)用户定义函数由用户按需要写的函数。
对于用户自定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。
2. C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。
(1)有返回值函数此类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。
如数学函数即属于此类函数。
由用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。
(2)无返回值函数此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。
这类函数类似于其它语言的过程。
由于函数无须返回值,用户在定义此类函数时可指定它的返回为“空类型”,空类型的说明符为“void”。
3. 从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。
(1)无参函数函数定义、函数说明及函数调用中均不带参数。
主调函数和被调函数之间不进行参数传送。
此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。
(2)有参函数也称为带参函数。
在函数定义及函数说明时都有参数,称为形式参数(简称为形参)。
计算机二级考试C++练习题答案一单选题1). 结构化程序设计主要强调的是( )A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性正确答案:D2). 下面关于C++流的叙述中,正确的是( )。
A.cin是一个输入流对象B.可以用ifstream定义一个输出流对象C.执行语句序列char* y=″PQMN″;cout<D.执行语句序列char x[80];cin.getline(x,80);时,若输入Happy new year,则x中的字符串是″Happy″正确答案:A答案解析:本题考查C++流的概念和I/()的格式化。
cin是istream类的对象,即输入流对象。
ifstream是输入文件流,类不能定义个输出流对象。
getline函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内容中删除该终止字符,所以D选项中的语句序列后x中字符串应该是Happy new year。
3). 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
A.函数调用可以作为独立的语句存在B.函数调用可以无返回值C.函数调用可以出现在表达式中D.函数调用可以作为、一个函数的形参正确答案:D答案解析:本题考查函数的调用方式。
函数的形参和实参具有以下特点:①形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放分配的内存单元,因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量;②实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参,因此应通过预先用赋值、输入等办法使实参获得确定值;③实参和形参在数量上、类型上、顺序上应严格一致,否则会发生″类型不匹配″的错误;④函数调用中发生的数据传送是单向的。
即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
XXX《C语言》2020秋期末考试试题答案试卷总分:100得分:100一、单选题(共35道试题,共70分)1.若有说明int a[][3]={1,2,3,4,5,6,7};则a数组行数的大小为()。
A.2B.3C.4D.不确定答案:B2.若调用一个函数,且此函数中没有return语句,则正确的说法是该函数()。
A.没有返回值B.返回若干个系统默认值C.返回一个用户所希望的函数值D.返回一个不确定的值答案:D3.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""括起时,寻找被包含文件的方式是A.直接按照系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按照系统设定的标准方式搜索C.仅仅搜刮源程序所在目录D.仅仅搜索当前目录答案:B需求代做加微boge4.C语言规定:在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必需在末了谜底:C5.以下程序段的作用是()。
inta[]={4,0,2,3,1},i,j,t;for(i=1;i=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t; }A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)答案:B6.以下说法正确的选项是()。
A.x'+5是一个错误的表达式D.(int)x+y?和(int)(x+y)是完全等价的表达式谜底:C7.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必需包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,解释说明只能位于一条语句的背面谜底:D8.下面函数调用语句含有实参的个数fun((exp1,exp2),(exp3,exp4,exp5));A.1为()。
一、选择题1、一个C程序中可以包含多个不同名的函数,但有且仅有一个。
(A)function (B)include (C)main (D)stdio2、在C语言中,每个语句和数据定义都是用结束的。
(A)分号(B)逗号(C)句号(D)括号3、不是C语言中提供的合法关键字。
(A)switch (B)print (C)case (D)default4、在C语言中,数据类型属于基本类型的是。
(A)整型、实型、字符型(B)空类型、枚举型(C)结构体类型、实型(D)数组类型、实型5、下面四个选项中,均为不合法的用户标识符的是。
(A)A p_0 do (B)float la0 a(C)b-a goto int (D)123 temp INT6、语句int i=3,k; k=(i++)+(i++)+(i++); 执行后k和i的值分别为。
(A)9和6 (B)12和5 (C)18和6 (D)15和57、判断字符串a和b相等,应当使用。
(A)if ( a = = b ) (B)if ( !strcmp (a , b) )(C)if ( strcpy ( a , b ) ) (D)if ( strcmp (a , b) )8、设a,b,c都是int型变量,且a=3,b=4,c=5 ;则以下表达式中,值为0的是。
(A)a&&b (B)a<=b (C)a||b+c&&b-c (D)!((a<b)&&!c||1) 9、用于表示输入输出的程序流程图的图形是。
(A(C(D10、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。
(A)scanf(―%2d%2d%2d‖,&i,&j,&k);(B)scanf(―%d %d %d‖,&i,&j,&k);(C)scanf(―%d,%d,%d‖,&i,&j,&k);(D)scanf(―i=%d,j=%d,k=%d‖,&i,&j,&k);11、能正确表示―x的取值范围介于[1,10 ]和[200,210 ]之间―的表达式是。
C语⾔程序设计题⽬及解答-06⼀、判断题 (28分)1. C程序是由函数构成的,每⼀个函数完成相对独⽴的功能。
2分2. 被main函数调⽤的函数只能是库函数。
2分3. ⼀个函数中只允许有⼀条return语句。
2分4. return后⾯括号⾥的表达式的值即是此函数的值。
2分5. 空函数没有返回值,除此之外,有些函数可以带回⼀个或⼀个以上的返回值。
2分6. 程序进⾏编译时,不为形式参数分配存储空间.2分7. 只有在函数被调⽤时,其形式参数才临时地占有存储空间.2分8. 函数若⽆返回值,则它⼀定⽆形参.2分9. 如果函数类型不定义为空类型,即使在return后⾯没有表达式,⽽实际上函数也是有⼀个不确定的返回值的.2分10. ⼀个C语⾔源程序⽂件中,有且只能有⼀个主函数2分11. 函数必须有形参2分12. 函数必须有return语句2分13. c程序总是从程序的第⼀条语句开始执⾏.2分14. 函数调⽤语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是52分⼆、选择题 (22分)1.C语⾔规定,在⼀个源程序中,main函数的位置( )。
[C] 2分A. 必须在最开始B. 必须在系统调⽤的库函数的后⾯C. 可以任意D. 必须在最后2.⼀个数据类型为void的函数中可以没有return语句,那么函数被调⽤时( ). [A] 2分A. 没有返回值B. 返回⼀个系统默认值C. 返回值由⽤户临时决定D. 返回⼀个不确定的值3.以下叙述中正确的是( )。
[A] 2分A. 构成C程序的基本单位是函数B. 可以在⼀个函数中定义另⼀个函数4.下列叙述中,不正确的叙述项是()。
[D] 2分A. 函数调⽤时,形参变量只有在被调⽤时才被创建(分配存储单元)B. 函数调⽤时,实参可以是常量、变量或表达式C. 定义变量时,省略对变量的存储类别定义,则变量是⾃动型变量D. 语句return(a,b);则函数可以返回两个值5.传值调⽤的特点是()。
形式参数与实际参数函数的参数分为两种,分别是形式参数与实际参数。
①形式参数:在定义函数时函数名后⾯括号中的变量名称称为形式参数(简称形参),即形参出现在函数定义中。
形参变量只有在被调⽤时才会为其分配内训单元,在调⽤结束时,即刻释放所分配的内存单元。
因此,形参只在函数内部有效,只有当函数被调⽤时,系统才为形参分配存储单元,并完成实参与形参的数据传递。
在函数未被调⽤时,函数的形参并不占⽤实际的存储单元,也没有实际值。
②实际参数:主调函数中调⽤⼀个函数时,函数名后⾯括号中的参数称为实际参数(简称实参),即实参出现在主调函数中。
实参可以是常量,变量,表达式,函数等,⽆论实参是何种类型的量,在进⾏函数调⽤时,它们都必须具有确定的值,以便把这些值传递给形参。
因此应预先⽤赋值,输⼊等办法使实参获得确定值。
说明:在被定义的函数中,必须指定形参的类型。
实参与形参的类型应相同或赋值兼容。
实参和形参在数量上,类型上,顺序上应该严格⼀致,否则会发⽣类型不匹配的错误。
C语⾔中函数的值传递有两种,⼀种是传递数值(即传递基本类型的数据,结构体数据),另⼀种是传递地址(即传递存储单元的地址)。
1.传数值:调⽤函数时,给形参分配存储单元,并将实参对应的值传递给形参,形参的值的改变并不会影响实参。
调⽤结束后,形参所占内存单元被释放,实参仍保持原值不变。
该⽅法只能是实参向形参传递数据,即该⽅法是单向传递。
传数值,实参的值时基本数据类型,结构体类型数据,实参可以是常量,变量或表⽰式,其值类型是整形,实型,字符型,数组元素等数据⽽不能是数组名或指针等数据。
当函数调⽤时,先为形参分配独⽴的存储单元,同时将实参的值赋值给形参变量。
因此,在函数体执⾏中,形参函数的任何改变都不会改变实参的值。
数值传递中,形参的值改变不会影响实参实例:#include <stdio.h>int main(){int n,m;void swap(int,int); //声明函数printf("please input two numbers:");scanf("%d%d",&n,&m);printf("n=%d,m=%d\n",n,m); //第⼀次输出swap(n,m); //第⼆次输出printf("n=%d,m=%d\n",n,m); //第三输出}void swap(int x,int y) //定义函数{int i;i=x;x=y;y=i;printf("x=%d,y=%d\n",x,y);}运⾏结果:please input two numbers:5 7n=5,m=7x=7,y=5n=5,m=7由此可见,调⽤swap函数只交换了两个形参的值,⽽实参的值并没有发⽣变换。
31以下叙述中不正确的是_____。
A.?在不同的函数中可以使用相同名字的变量B.?函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效参考答案D 32 C++语言中函数返回值的类型决定于语句中的表达式类型B.调用函数的主调函数类型C.调用函数时变量的类型D.定义函数时所指定的函数类型参考答案D 33使用值传递方式将实参传给形参,下列说法正确的是A.形参是实参的备份B.实参是形参的备份C.形参和实参是同一对象D.形参和实参无联系参考答案A 34若有如下的函数定义:int sum( int a, float b){ return a+(int)b; }则下列函数原型不正确的是(????? )。
sum( int, float );sum( int x, float y );sum( int b, float a );sum( int a=10, float b );参考答案D 35在下面的函数声明中,存在着语法错误的是A.void bc(int a, int) ;bc(int, int);bc (int, int x=5) ;bc(int x; int y);参考答案D36下列叙述中错误的是()。
A.一个函数中可以有多条return语句B.调用函数必须在一条独立的语句中完成C.函数中通过return语句使函数值返回D.主函数名main也可以带形参参考答案B以下语句的输出结果是________enum? weekday {sun, mon=3, tue, wed, thu};?weekday?? workday;? workday=wed;cout<<workday<<endl;参考答案B37不能放在声明区的语句是__________。
语句?B.变量定义语句C.函数声明语句D.类定义语句参考答案A38在函数内部或复合语句内部定义的变量称为____________。
C语言函数参数传递问题C语言函数参数传递问题导语:在一些C语言教材和参考资料中,常常把函数参数传递分为“数值传递”和“地址传递”两种方式,这种概念模糊的分类方法给初学者的理解造成一定程度的困难。
下面就由店铺为大家介绍一下C语言函数参数传递问题,欢迎大家阅读!1概述函数是C语言程序的基本构成模块,通过使用函数,不仅可以省去重复代码的编写,还可以使程序更加模块化,从而有利于程序的阅读、修改和完善。
对于C语言的初学者来说,准确理解函数参数的传递方式是难点之一。
一些C语言程序设计教材[1][2]中把函数间的参数传递分为“数值传递”和“地址传递”两种方式,这种分类很容易使初学者混淆概念,更不能抓住参数传递的本质。
2传递方式和数据类型“值传递”是函数参数的唯一传递方式。
函数的参数分为实际参数(简称实参)和形式参数(简称形参),在定义函数时使用的参数叫形参,在调用函数时使用的参数叫实参。
实参可以是常量、变量或表达式,但要求它们有确定的值。
实参与形参的结合只有一种方式,即“值传递”,把实参的值赋给形参变量。
“值传递”具有单向性,只能把实参传给形参,而不能由形参回传给实参。
不同数据类型的`函数参数对主调函数中变量的作用有所不同。
函数参数可取的数据类型为基本类型、构造类型、指针类型或空类型,如图所示。
空类型表示该函数为无参函数,在此不作介绍。
其余数据类型又可分为三类:普通类型,包括基本类型、结构体类型和共用体类型;指针类型;数组类型。
函数参数为普通类型时,对函数的调用不用影响到主调函数中变量的值;函数参数为指针类型或数组类型时,对函数的调用可以修改主调函数中有关变量的值。
3普通类型变量作为函数参数普通变量作为函数参数时,对形参的修改不会影响到实参。
如下例所示,通过“值传递”,形参x保存了实参a的值,形参y保存了实参b的值,因为形参和实参是相互独立的不同变量,所以在swap函数中对形参x和y进行的交换不会反映到实参a和b中。
**学院2019—2020学年度第一学期期末考核试卷课程名称: C 语言程序设计 考核类型: 考查 考核形式: 闭卷学生所在院系: 班 级: 试 卷: A1.未指定存储类别的变量,其隐含的存储类别为( )。
A. autoB. staticC. externD. register 2. 以下选项中不合法的变量名称是( )。
A .abB .fileC .mainD .printf 3. 下面合法的C 语言字符常量是( )。
A. '\t'B. "A"C. 65D. A 4. 字符(char)型数据在微机内存中的存储形式是( )。
A . 反码B . 补码C . EBCDIC 码D . ASCII 码 5. 下列字符数组初始化语句中,不正确的是( )。
A .char c[]='goodmorning';B .char e[20]="goodmorning":C .char c[]={'a','b','c','d'};D .char c[]={"ffgoodmorning"}; 6. 表达式: 10!=9的值是 ( )。
A. trueB. 非零值C. 0D. 1 7. 在下列选项中,不正确的赋值语句是 ( )。
A. ++t;B. n1=(n2=(n3=0));C. k=i=j;D. a=b+c=1; 8. 为表示关系x ≥y ≥z,应使用C 语言表达式( )。
A. (x>=y)&&(y>=z) B. (x>=y)AND(y>=z) C. (x>=y>=z) D. (x>=y) & (y>=z)一、选择题………………………………(每小题2分,共30分)9.下面程序的输出的是()。
#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A. 0B. 1C. 3D. 不确定的值10.执行下面程序中的输出语句后,输出结果是()。
函数笔记1.为什么要用函数函数就是功能。
每一个函数用来实现一个特定的功能。
函数的名字应反映其代表的功能。
1.一个C程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。
对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们分别放在若干个源文件中,由若干个源程序文件组成一个C程序。
这样便于分别编写和编译,提高调试效率。
一个源程序文件可以为多个C程序共用。
2.一个源程序文件由一个或多个函数以及其他有关内容(如指令、数据声明与定义等)组成。
一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译的.而不是以函数为单位进行编译的。
3.C程序的执行是从main函数开始的.如果在main函数中调用其他函数,在调用后流程返回到main函数,在main函数中结束整个程序的运行。
4.所有函数都是平行的.即在定义函数时是分别进行的,是互相独立的。
一个函数并不从属于另一个函数,即函数不能嵌套定义。
函数间可以互相调用,但不能调用main函数。
main 函数是被操作系统调用的。
5.函数的分类:从用户使用的角度看,函数有两种。
①库函数,它是由系统提供的,用户不必自己定义,可直接使用它们。
②用户自己定义的函数。
它是用以解决用户专门需要的函数。
从函数的形式看,函数分两类。
①无参函数。
在调用无参函数时,主调函数不向被调用函数传递数据。
无参函数一般用来执行指定的一组操作。
无参函数可以带回或不带回函教值.但一般以不带回函数值的居多。
②有参函数。
在调用函数时,主调函数在调用被调用函数时,通过参数向被调用函数传递数据。
一般情况下,执行被调用函数时会(返回)得到一个函数值,供主调函数使用。
此时有参函数应定义为与返回值相同的类型。
2.怎样定义函数1.为什么要定义函数C语言要求在程序中用到的所有函数,必须“先定义,后使用”。
定义函数应包括以下几个内容:(1) 指定函数的名字,以便以后按名调用。
(2) 指定函数的类型,即函数返回值的类型。
全国高校计算机等级考试(二级C)模拟一试题一、选择题1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D )。
A、k=pB、k=&pC、P=KD、p=&k2、以下运算符中优先级最高的运算符是(A)。
A、!B、&&C、||D、<3、求字符串长度的函数是( D )。
A、strcatB、strcpyC、strcmpD、strlen4、下面程序段的运行结果是(A)。
char x[5]=“ab\0c\0”;printf("%s",x);说明:“\0”中的“0”是数字零。
A、abB、abcC、ab\0D、ab\0c\05、若有说明语句: int a[2][4]; 则对数组a元素的正确引用是( D )。
A、a[2]B、a[4]C、a[2][4]D、a[1][3]6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。
A、float型B、int型C、long型D、double型7、用数组名作为函数调用的实参时,传递给虚参的是(A)。
A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数8、以下程序的输出结果是( D )。
#include<stdio.h>#define F(y) 8-yvoid main(void){int x,y;y=F(2);printf(“y=%d”,y);}A、2B、y=2C、6D、y=69、以下程序的输出结果是(A)。
#include<stdio.h>struct{int x,y;} a;void main(void){int x,y=50,z;a.x=10;a.y=20;z=a.x+y;printf(“%d”,z);}A、60 B 、10 C、0 D、2010、语句fopen(“file.dat”,”r”); 的功能是(A)。
A、按照“读”方式打开文件B、按照“写”方式打开文件C、按照“读写”方式打开文件D、按照“追加”方式打开文件11、关闭文件的语句是( D )。
第七章函数一、选择题1.以下函数声明正确的是: C 。
(02~03第一学期试题)A) double fun(int x, int y) B) double fun(int x; int y)C) double fun(int x, int y) ; D) double fun(int x , y)2.C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是: B 。
(0级)A)地址传递;B)单向值传递;C)双向值传递;D)由用户指定传递方式3.以下关于C语言程序中函数的说法正确的是: B 。
(0级)A)函数的定义可以嵌套,但函数的调用不可以嵌套;B)函数的定义不可以嵌套,但函数的调用可以嵌套;C)函数的定义和调用均不可以嵌套;D)函数的定义和点用都可以嵌套。
4.以下正确的函数形式是: D 。
(1级)A)double fun(int x,int y) B)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;} z=x+y; return z;}5.以下说法不正确的是: B 。
(1级)C 语言规定A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以是任意类型D)形参应与其对应的实参类型一致6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B 。
(0级)A) float型B) int 型C)long 型D)double 型7.以下错误的描述是 D 。
(0级)函数调用可以A)出现在执行语句中B)出现在一个表达式中C)做为一个函数的实参D)做为一个函数的形参8.若用数组名作为函数调用的实参,传递给形参的是 A 。
(0级)A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数9.以下正确的说法是 A 。
1. 单项选择题(1)在C语言程序中,下列叙述正确的是。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可以嵌套C. 函数的定义和调用都可以嵌套D. 函数的定义和调用均不可以嵌套【答】B(2)在C语言程序中,下列叙述错误的是。
A. 形参是局部变量B. 不同的函数中,可以使用相同名称的变量C. 在一个函数的内部,可以在复合语句中定义变量D. main()函数中定义的变量在整个文件或者程序中都有效【答】D(3)在C语言程序中,下列叙述正确的是。
A. 实参和对应的形参各占用独立的存储单元B. 实参和对应的形参共占用一个存储单元C. 形参是虚拟的,不占用存储单元D. 只有当实参和对应的形参同名时才共占用存储单元【答】A(4)在C语言程序中,下列叙述正确的是。
A. 实参可以是常量、变量或表达式B. 实参可以是任意类型C. 形参可以是常量、变量或表达式D. 形参与对应的实参类型要求可以不一致【答】A(5)在C语言程序中,简单变量做实参时,它和对应形参之间的数据传递方式是。
A. 地址传递B. 单向值传递C. 由用户指定传递方式D. 由实参传给形参,再由形参传回给实参【答】C语言函数调用时,只有单向的值传递,即实参将值传递给形参,传址调用也是一种单向的值传递,它是通过间接方式达到将形参回传给实参的。
本题答案为B。
(6)下列关于return语句说法正确的是。
A. 必须在每个函数中都出现B. 只能在除main()函数之外的函数中出现一次C. 可以在同一个函数中多次出现D. 在main()函数和其他函数中都可以出现【答】C(7)C语言中规定函数的返回值的类型是由。
A. return语句中的表达式类型所决定B. 调用该函数时的主调用函数类型所决定C. 调用该函数时系统临时决定D. 在定义该函数时所指定的函数类型所决定【答】D(8)如果要限制一个变量只能被本源文件中的函数使用,必须通过来实现。
函数的实参可以是常量,变量或表达式函数的实参可以是常量、变量、或表达式,实参和对应的形参必须类型相同或兼容。
实参:全称为"实际参数",是在调用时传递给函数的参数。
实参可以是常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。
因此应预先用赋值,输入等办法使实参获得确定值。
形参全称为"形式参数",由于它不是实际存在变量,所以又称虚拟变量。
是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。
在调用函数时,实参将赋值给形参。
因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。
形参是函数被调用时用于接收实参值的变量。
根据实际需要可有可无,如果没有形参时,圆括号也不能省;多个参数之间用逗号分隔。
参数包括参数名和参数类型。
形参与实参区别:
形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
形参和实参的功能是作数据传送。
发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数。