函数返回值的类型是由什么决定的
布尔型函数返回值

布尔型函数返回值布尔型函数是一种特殊类型的函数,其返回值只能是两个固定值之一:真(true)或假(false)。
布尔型函数通常用于判断其中一种条件是否符合,常见的应用场景包括判断一些数是否为质数、判断一些条件是否成立等。
一个布尔型函数的返回值是根据具体的逻辑判断条件得出的。
例如,判断一个数是否为质数的函数可以依次判断该数是否能被2、3、4...n-1整除(其中n为该数的平方根),如果能被其中任意一个数整除,则该数不为质数,返回假;否则,该数为质数,返回真。
布尔型函数的返回值可以用于控制程序的循环次数和循环条件。
例如,可以在一个循环中使用布尔型函数作为判断条件,只有满足特定条件时才继续执行循环,否则跳出循环。
在这种情况下,布尔型函数的返回值可以决定循环是否继续进行。
布尔型函数的返回值可以用于控制程序的条件分支。
例如,可以在一个条件分支语句中使用布尔型函数作为判断条件,根据函数返回值的不同来执行不同的代码块。
在这种情况下,根据布尔型函数的返回值,可以选择执行一部分代码或者跳过该部分代码。
总结来说,布尔型函数的返回值具有以下特点:1. 仅能是真(true)或假(false)两种值之一2.可以用于判断程序的正常执行与否。
3.可以用于控制程序的循环次数和循环条件。
4.可以用于控制程序的条件分支。
5.可以与其他布尔值进行逻辑运算。
在实际的编程中,布尔型函数经常被使用,在逻辑判断、循环控制、条件分支等方面发挥着重要的作用。
掌握布尔型函数的返回值的概念和使用方式,有助于编写清晰、可读性高的代码,提高程序的效率和正确性。
c++ 提取函数返回值类型和参数类型

c++ 提取函数返回值类型和参数类型C++中的函数返回值类型和参数类型是编程中非常重要的概念。
在本文中,我们将深入探讨这些概念,并提供有关其用法和重要性的详细信息。
1. C++中的函数返回值类型在C++中,函数返回值类型指的是函数在执行完成后返回的数据类型。
这个返回值可以是任意C++数据类型,包括整数、浮点数、字符、对象等等。
函数的返回值类型在函数定义时指定,并且需要根据函数要执行的任务来选择合适的返回值类型。
在C++中,函数的返回值类型通过在函数名之后使用`:`和数据类型来指定。
在使用C++编程时,我们需要非常小心地选择适当的返回值类型。
这是因为错误的返回值类型可能导致程序运行出错或产生意外的结果。
如果我们有一个函数用于执行数学计算,而该函数的返回值类型被错误地设置为字符类型,那么计算结果将无法正确返回。
在选择函数返回值类型时,我们需要考虑到函数执行的具体任务和所需的数据类型,以确保返回的数值类型与函数执行的结果一致。
2. C++中的函数参数类型函数参数类型是指在调用函数时传递给函数的数据类型。
在C++中,函数可以有零个或多个参数,每个参数都有自己的类型。
当我们调用一个函数时,我们需要传递与函数参数类型一致的数据作为输入。
函数参数类型在函数定义时指定,并且需要根据函数的执行需求来选择合适的参数类型。
与函数返回值类型类似,在选择函数参数类型时,我们也需要特别小心。
错误的参数类型可能导致函数无法正确接收输入数据,从而产生程序运行错误。
我们需要仔细选择和指定函数参数类型,确保它们能够正确地接收传递给函数的数据。
在C++中,函数返回值类型和参数类型的选择对于程序的性能和正确性至关重要。
我们需要根据函数的任务和需求来选择适当的返回值类型和参数类型,以确保函数能够正确地执行并返回期望的结果。
总结回顾在本文中,我们深入探讨了C++中的函数返回值类型和参数类型。
我们详细讨论了如何选择适当的返回值类型和参数类型,并提供了相应的注意事项和建议。
计算机应用基础练习题

1C++基础练习题1.1填空题1.在一个C++源程序中,多行注释两侧的分界符为【/*】和【*/】,但行注释的开始标识为【//】。
2.在C++程序中,输入操作是由【cin】完成,输出操作是【cout】完成。
3.在C语言中,程序运行期间,其值不能被改变的量叫【常量】。
4.表达式25/3%3的计算结果为【 2 】。
5.C++语言中的标示符只能由三种字符组成,它们为【数字】、【字母】、【下划线】。
6.符号‘&’是【取地址】运算符,&a是指【a的地址】。
7.当a=3,b=2,c=1时,表达式a>b>c的值是【0 】。
8.设x, y, z为int型变量,请写出描述“x或y中有一个小于z”的表达式【x<z || y<z 】。
9.在C++程序中包含一个头文件或程序文件的预编译命令为___#include__。
10.当使用__void___保留字作为函数类型时,该函数不返回任何值。
11.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为___int___,该函数带有__0__个参数。
12.在C++中存储字符串“abcdef”至少需要_____7___个字节。
13.对于无返回值函数,定义函数时要用___void__修饰函数类型。
14.执行___delete p_____操作将释放由p所指向的动态分配的数据空间。
15.执行操作将释放由p所指向的动态分配的数组空间。
16.已知语句“cout<<p;”的输出是“Hello!”,则语句“cout<<*p;”输出的是___H___。
17.每个对象都是所属类的一个____实例__。
18.对象将其大部分实现细节隐藏起来,这种机制称为__封装__。
19.基类和派生类的关系称为__继承__。
20.复杂对象可以由简单对象构成,这种现象称为___聚合__。
21.对于类中定义的任何成员,其隐含访问权限为__private__。
函数的参数传递与返回值的注意事项

函数的参数传递与返回值的注意事项在电脑编程中,函数是一种非常重要的工具,它可以帮助我们组织代码,提高代码的可读性和可维护性。
在编写函数时,我们需要注意函数的参数传递和返回值的使用,以确保代码的正确性和效率。
本文将探讨函数的参数传递与返回值的一些注意事项。
1. 值传递与引用传递在函数调用过程中,参数可以通过值传递或引用传递的方式传递给函数。
值传递是指将参数的值复制给函数的形参,而引用传递是指将参数的引用传递给函数的形参。
当使用值传递时,函数内部对形参的修改不会影响到原始参数的值。
这是因为函数在栈上创建了一个新的变量来存储形参的值,而不是直接修改原始参数。
这种方式适用于简单的数据类型,如整数、浮点数等。
当使用引用传递时,函数内部对形参的修改会影响到原始参数的值。
这是因为函数使用原始参数的内存地址来访问和修改参数的值。
这种方式适用于复杂的数据类型,如数组、结构体等。
在选择参数传递方式时,需要根据函数的需求和数据类型的特点进行选择。
如果函数需要修改参数的值,或者参数是复杂的数据类型,那么应该使用引用传递。
如果函数不需要修改参数的值,或者参数是简单的数据类型,那么可以使用值传递。
2. 返回值的类型和范围在函数的定义中,我们可以指定函数的返回值类型。
返回值是函数执行完毕后返回给调用者的结果。
在选择返回值的类型时,需要根据函数的需求和返回结果的特点进行选择。
返回值的类型可以是任意的数据类型,包括整数、浮点数、布尔值、字符串等。
需要根据函数的计算结果来选择返回值的类型。
例如,如果函数需要返回一个整数计算结果,那么返回值的类型应该是整数类型。
在函数的执行过程中,可以使用return语句来返回函数的结果。
return语句将函数的执行结果返回给调用者,并结束函数的执行。
在使用return语句时,需要确保返回值的类型和范围与函数的定义相匹配,以避免出现错误或异常。
3. 异常处理和错误返回值在函数的执行过程中,可能会发生错误或异常情况。
c语言第7章练习题--函数

c语言第7章练习题--函数1、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B)A. 地址传递B. 单向值传递C. 由实参传递给形参,再由形参传递给实参D. 传递方式由用户决定2、以下正确的函数定义形式是(A)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);3、C语言规定,函数值的返回类型是由(D)A. return语句中的表达式类型所决定B. 调用该函数时的主调函数类型所决定C. 调用该函数时系统临时决定D. 在定义函数时所指定的函数类型所决定4、以下错误的描述是:函数调用可以(D)A) 出现在执行语句中B) 出现在一个表达式中C) 做为一个函数的实参D) 做为一个函数的形参5、以下正确的说法是:在C语言中(A)A) 实参和与其对应的形参各占用独立的存储单元B) 实参和与其对应的形参共占用一个存储单元C) 只有当实参和与其对应的形参同名时才共占用存储单元D) 形参是虚拟的,不占用存储单元6、有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(C)A) fun(int y,double m); B) k=fun(10,12.5); C) fun(x, n); D) void fun(n,x);7、下面函数调用语句含有实参的个数为(B)func((exp1,exp2),(exp3,exp4,exp5));A) 1 B) 2 C) 4 D) 58、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是(A)A)3 B)4 C)5 D)69、以下正确的描述是:在C语言程序中(B)A) 函数的定义可以嵌套,但函数的调用不可以嵌套B) 函数的定义不可以嵌套,但函数的调用可以嵌套C) 函数的定义和函数的调用均不可以嵌套D) 函数的定义和函数的调用均可以嵌套10、以下程序有语法错误,有关错误原因的正确说法是(C)main(){ int G=5,k;void prt_char();...k=prt_char(G);...}A) 语句void prt_char();有错,它是函数调用语句,不能用void 说明B) 变量名不能使用大写字母C) 函数说明和函数调用语句之间有矛盾D) 函数名不能使用下划线11、以下函数值的类型是(A)fun ( float x ){ float y;y= 3*x-4;return y;}A) int B) 不确定C) void D) float12、有以下程序, 则程序的输出结果是( 15 ) #include int func(int a, int b){ return (a+b); }void main( ){ int x=2, y=5, z=8, r;r = func ( func ( x, y ), z );printf (" %d \n ", r );}13、程序运行后的输出结果是(A)#includevoid swap(int x, int y){ int t;t = x; x = y; y = t;}void main(){ int a=3, b=5;swap(a,b);printf("a=%d, b=%d \n", a, b);}A)a=3, b=5 B)a=5, b=3 C)a=3, b=3 D)a=5, b=5 14、有以下程序,输出结果是(B)void fun (int a,int b,int c){a=456;b=567;c=678;}main(){int x=10,y=20,z=30;fun (x,y,z);printf("%d,%d,%d",x,y,z);}A)30,20,10B)10,20,30C)456,567,678D)678,567,45615、以下程序运行后的输出结果是__3,2,2,3___________ 。
函数返回值定义

函数返回值定义函数返回值是指当函数运行结束后将数据返回给调用者的过程。
这个返回值可以是任何数据类型,比如整数、浮点数、布尔值、字符串等等。
函数返回值在程序中非常重要,因为它可以让程序员在函数之间传递数据,并且可以将函数的结果用于计算和控制程序流程。
在C语言中,函数返回值的类型必须在函数声明的时候指定,而且只能有一个返回值。
函数返回值的定义也必须遵守一定的规则,在下面的文章中,我们将深入探讨如何定义函数的返回值。
函数返回值的类型非常重要,因为它决定了函数能够返回的数据类型。
如果函数的返回值是整数类型,那么该函数可以返回任何整数值。
同样地,如果函数的返回值是浮点类型,那么该函数可以返回任何浮点数值。
如果函数的返回值是一个结构体类型,那么该函数可以返回一个结构体变量。
然后,我们需要考虑函数返回值的作用。
函数返回值的作用可以分为两个方面:1. 在函数内部,返回值可以被用于计算或者控制程序流程。
在这种情况下,返回值通常会被赋值给一个变量,并且在程序的后续操作中被使用。
2. 在函数外部,返回值可以被用于传递数据。
在这种情况下,函数的调用者可以通过函数返回值读取函数的结果,并将该结果用于后续的计算或者控制程序流程。
在对函数返回值进行定义时,我们需要对函数的返回值进行一些限制:1. 函数的返回值类型必须在函数声明的时候指定,并且返回值类型和函数返回值的类型必须匹配。
2. 函数不能有多个返回值。
只能返回一个值。
3. 如果函数没有返回语句,或者返回语句中没有表达式,那么函数返回一个定义为void类型的返回值。
4. 函数返回值的值可以是任何表达式,但是表达式的返回值类型必须与函数的返回值类型匹配。
在函数返回值的定义中,我们还需要了解一些其他的规则:1. 函数返回值必须在函数体内部通过return语句返回。
如果一个函数没有返回语句或者返回语句中没有表达式,则函数返回一个默认值。
2. 如果函数的返回值是指针类型,那么返回的指针必须指向在函数外部定义的内存,因为在函数退出时,函数内部定义的内存会被销毁。
C语言函数题库及答案

第六部分函数一、单项选择题1.C语言中的函数返回值的类型是由(D)决定A.return语句中的表达式B.调用函数的主调函数C.调用函数时临时D.定义函数时所指定的函数类型2.下面不正确的描述是(B)。
A.调用函数时,实参可以是表达式B.调用函数时,实参和形参可以共用内存单元C.调用函数时,将形参分配内存单元D.调用函数时,实参与形参的类型必须一致3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是(D)A.地址传递B.值传递C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式4.下面的函数调用语句中含有(A)个实参inta,b,c;intsum(intx1,intx2);……total=sum((a,b),c);A.2B.3C.4 D.55.在C语言中(C)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均不可以嵌套C.函数的定义不可以嵌套,但是函数的调用可以嵌套D.函数的定义和调用均可以嵌套6.关于C语言中的return语句正确的是(C)A.只能在主函数中出现B.在每个函数中都必须出现C.可以在一个函数中出现多次D.只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D)A.inta(floatx[],intn)B.inta(float*x,intn)C.inta(floatx[10],intn)D.inta(floatx,intn)8.在C语言中,函数的数据类型是指(A)A.函数返回值的数据类型B.函数形参的数据类型C.调用该函数时的实参的数据类型D.任意指定的数据类型9.已知如下定义的函数:fun1(a){printf("\n%d",a);}则该函数的数据类型是(C)A.与参数a的类型相同B.void型C.整型D.无法确定10.定义一个函数实现交换x和y的值,并将结果正确返回。
C语言选择题(1-4章期末复习)

C语言选择题(1・4章期末复习)第1章1 .以下叙述不正确的是()。
A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成2 .C语言的注释定界符是()。
A、V *\B、{}C []D、/**/3 .C语言规定,在一个源程序中,main函数的位置()。
A、必须在最开始B、必须在系统调用的库函数的后面C、必须在最后D、可以任意4 .一个C程序的执行是从()。
A、本程序文件的第一个函数开始,到本程序main函数结束B、本程序的main函数开始,到main函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束5 .以下叙述中正确的是()。
A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号〃{〃和〃 }〃只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名6 .以下叙述正确的是()。
52 .已有定义:int x=3/y=4,z=5; z则表达式!(x+y)+z-l && y+z/2的值是()A、6B、1C、0D、253 .若给定条件表达式(M)?(a + +):(a--),则其中表达式M( )oA、和(M! = l)等价B、和(M = = l)等价C、和(M!=0)等价D、和(M = =0)等价54 .用下列语句定义a , b , c ,然后执行b=a, c='b'+b,则b , c 的值是()olong a=3;int b; char c;A、2 和101B、3 和101C、3 和100D、3 和9955 .表达式18/4*sqrt(4.0)/8值的数据类型为()。
A、不确定B、doubleC、intD、float56 .若a为int类型,且其值为3 ,则执行完表达式a+=a-=a*a后, a 的值是()。
C语言考试测试题及答案解析(2)

C语言考试测试题及答案解析(2)2017年C语言考试测试题及答案解析详见教材P150,数组元素的引用数组名[下标] [下标]引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。
本题图示详见P149图6.7因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;选项A,列逻辑地址下标超过范围选项B,D,的引用形式不正确。
25.C语言中函数返回值的类型是由 A 决定的.A、函数定义时指定的类型B、 return语句中的表达式类型C、调用该函数时的实参的数据类型D、形参的数据类型26. 在C语言中,函数的数据类型是指(A )A、函数返回值的数据类型B、函数形参的数据类型C、调用该函数时的实参的数据类型D、任意指定的数据类型27.在函数调用时,以下说法正确的是( B )A、函数调用后必须带回返回值B、实际参数和形式参数可以同名C、函数间的数据传递不可以使用全局变量D、主调函数和被调函数总是在同一个文件里28. 在C语言中,表示静态存储类别的关键字是: ( C )A、 autoB、 registerC、staticD、extern29.未指定存储类别的变量,其隐含的存储类别为(A )。
A、autoB、staticC、externD、register30. 若有以下说明语句:struct student{ int num;char name[ ];float score;}stu;则下面的叙述不正确的是: (D )A、 struct是结构体类型的关键字B、 struct student 是用户定义的结构体类型C、 num, score都是结构体成员名D、 stu是用户定义的结构体类型名31.若有以下说明语句:struct date{ int year;int month;int day;}brithday;则下面的叙述不正确的是__C___.A、 struct是声明结构体类型时用的关键字B、 struct date 是用户定义的结构体类型名C、 brithday是用户定义的结构体类型名D、year,day 都是结构体成员名32. 以下对结构变量stul中成员age的非法引用是 B struct student{ int age;int num;}stu1,*p;p=&stu1;A、 stu1.ageB、 student.ageC、 p->ageD、(*p).age33.设有如下定义:struck sk{ int a;float b;}data;int *p;若要使P指向data中的a域,正确的赋值语句是 CA、 p=&a;B、 p=datA、a;C、p=&datA、a;D、*p=datA、a;34.设有以下说明语句:typedef struct stu{ int a;float b;} stutype;则下面叙述中错误的是( D )。
PTA选择题汇总

According to the C syntax, __is a legal character constant among the followings. (2分)B.'\102'According to the declaration: char c1=92,c2=92;the value of expression ___is 0. (2分)A. c1^c2According to the declaration: int (*p)[10];, p is a(n) __. (2分)A. pointerAccording to the declaration: int a[10], *p=a;the expression __ is wrong. (2分)D.a++According to the declaration: int a=10, b=20;the value of expression!a<b is __.(2分)A.1According to the declaration: int a=12;the value of expression a+=a-=a*=a is __.(2分)C.According to the declaration: int p[5], *a[5];the expression ____is correct. (2分)C.*(a+1)=pAccording to the declaration: int x=11;, the value of expression x++*1/3is_. (2分)A. 3 According to the declaration: int x=23;the value of expression x++*1/3is __. (2分)A.7According to the declaration: static int a[3][4]={0};the correct description is __.(2分) D. Every element in the array has initial value 0.According to the declaration:int a;the value of expression (a&3)==(a%4)is__. (2分)B.1After executing the following code fragment, the value of variablem is __. (2分)C.10After running the following piece of code, the value ofs is __. (2分)C. 6Among the following assignments or initializations, __ is wrong. (2分)A. char str[10];str="string";Among the following assignments or initializations, __ is wrong. (2分)B. char s[10];s="hello";Among the following expressions in C, __ is correct. (2分)D. 2==(3/2)Among the following statements which intend to define arrays, which one is wrong? (2分) C. int x[2][]={1,2,4,6};Among the following statements, __ is equivalent to the declaration:int *p[4];.(2分)C.int *(p[4]);Among the following statements, __ is equivalent towhile( *s++ = *t++ );. (2分)A.do { *s = *t++; } while ( *s++ );Among the followings, which group contains all the identifiers that are character pointers? (2分)C. s1, s3, s4C 语言程序中可以对程序进行注释,注释部分必须用什么符号括起来?(2分)C. '/*' 和'*/'C语言中函数返回值的类型是由()决定的。
程序设计基础试题(西安交大)

五.编程题(40 %)
1)设有3x3矩阵
编写程序求解矩阵 ,即矩阵B为矩阵A及其转置阵AT之和。
2)编写程序求小于1000回文数。所谓回文数是指对一个数n,从左向右和从右向左读是相同的。
3)计算并输出一元二次方程的根,要求从键盘输入ax2+bx+c = 0的三个实数系数,计算该方程的实数根并输出。假定方程一定有两个实根(b2-4ac>=0)。要求必须用函数来计算方程的根。注:求平方根的函数是sqrt,包含在头文件math.h中。
西西西西安安安安交交交交通通通通大大大大学学学学考考考考试试试试题题专业班号专业班号专业班号期中期中期中期末期末期末语言规定函数返回值的类型是由语言规定函数返回值的类型是由语言规定函数返回值的类型是由returnreturnreturn语句中的表达式类型所决定语句中的表达式类型所决定语句中的表达式类型所决定调用该函数时的主调函数类型所决定调用该函数时的主调函数类型所决定调用该函数时的主调函数类型所决定调用函数时系统临时决定调用函数时系统临时决定调用函数时系统临时决定在定义该函数时所指定的函数类型所决定在定义该函数时所指定的函数类型所决定在定义该函数时所指定的函数类型所决定简单变量做实参时它与对应形参之间的数据传递方式是简单变量做实参时它与对应形参之间的数据传递方式是简单变量做实参时它与对应形参之间的数据传递方式是地址传递地址传递地址传递单向值传递单向值传递单向值传递由实参传给形参再由形参传回给实参由实参传给形参再由形参传回给实参由实参传给形参再由形参传回给实参由用户指定传递方式由用户指定传递方式由用户指定传递方式下述对下述对下述对cc语言字符数组的描述中错误的是语言字符数组的描述中错误的是语言字符数组的描述中错误的是字将数组可以存放字符串字将数组可以存放字符串字将数组可以存放字符串字符数组的字符串可以整体输入输出字符数组的字符串可以整体输入输出字符数组的字符串可以整体输入输出可以在赋值语句中通过赋值运算将可以在赋值语句中通过赋值运算将可以在赋值语句中通过赋值运算将对字符数组整体赋值对字符数组整体赋值对字符数组整体赋值不可以用关系运算符对字符数组中的字将串进行比较不可以用关系运算符对字符数组中的字将串进行比较不可以用关系运算符对字符数组中的字将串进行比较对两个数组对两个数组对两个数组aa做以下初始化做以下初始化做以下初始化
[ZA]C语言函数题库及答案029
![[ZA]C语言函数题库及答案029](https://img.taocdn.com/s3/m/e962890448d7c1c708a1456d.png)
第六部分函数一、单项选择题1.C语言中的函数返回值的类型是由(D)决定A.return语句中的表达式B.调用函数的主调函数C.调用函数时临时 D.定义函数时所指定的函数类型2.下面不正确的描述是(B )。
A.调用函数时,实参可以是表达式B.调用函数时,实参和形参可以共用内存单元C.调用函数时,将形参分配内存单元D.调用函数时,实参与形参的类型必须一致3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是(D )A.地址传递 B.值传递C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式4.下面的函数调用语句中含有( A )个实参int a,b,c;int sum(int x1,int x2);……total=sum((a,b),c);A.2 B.3 C.4 D.55.在C语言中( C )A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用均不可以嵌套C.函数的定义不可以嵌套,但是函数的调用可以嵌套D.函数的定义和调用均可以嵌套6.关于C语言中的return语句正确的是(C )A.只能在主函数中出现B.在每个函数中都必须出现C.可以在一个函数中出现多次D.只能在除主函数之外的函数中出现7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有不对的是( D)A. int a(float x[],int n)B. int a(float *x,int n)C. int a(float x[10],int n)D.int a(float x,int n)8.在C语言中,函数的数据类型是指( A )A.函数返回值的数据类型B. 函数形参的数据类型C.调用该函数时的实参的数据类型D. 任意指定的数据类型9.已知如下定义的函数:fun1(a){ printf("\n%d",a)。
}则该函数的数据类型是( C )A.与参数a的类型相同B.void型C.整型D.无法确定10.定义一个函数实现交换x和y的值,并将结果正确返回。
C++ 试卷

C++测验本试卷满分60分。
一、选择题(共20分。
每一题1分)1.C++语言中函数返回值的类型是由决定的。
A.return语句中的表达式类型B.调用该函数的主调函数类型C.定义函数时所指定的函数类型D.传递给函数的实参类型2.下列论断正确的是:在C++语言的函数中, ___ 。
A、可以定义和调用其他函数B、可以调用但不能定义其他函数C、不可以调用但能定义其他函数D、不可以调用也不能定义其他函数3.在一个源文件中定义的全局变量的作用域为 ____A、文件的全部范围B、本程序的全部范围C、本函数的全部范围D、从定义该变量的位置开始至本文件的结束4.设函数声明语句中的参数表为(int &a,int &b,int C),函数体中a,b,C三个变量的值都发生变化;主函数中调用此函数的实参表为(x,y,z),调用函数语句执行后,以下叙述正确的是。
A)变量x和y的值发生变化B)变量x和y的值不发生变化C)变量x、y、z的值都发生变化D)只有变量z的值发生变化5.变量的有效范围与其定义的位置有关, ___ ,其作用域在整个源程序文件中都有效。
A、在第一个函数中定义的变量B、在定义第一个函数之前所定义的变量C、在主函数中定义的变量6.函数声明中,___ 是不必要的A)函数参数的类型和个数 B)函数名C)函数的类型 D)函数体7、在不同文件的的函数中,对全局变量的引用要加上关键字。
A) register B) auto C) static D) extern8、内部静态变量的作用域是。
A)定义该静态变量函数的外部 B)定义该静态变量函数的内部C)定义该静态变量的文件外部 D)定义该静态变量文件的内部9、函数定义为Fun ( int &i ),变量定义n=100,则下面调用正确的是______。
A) Fun(20) B) Fun(20+n) C) Fun(n) D) Fun(&n)共10 页第1 页10、以下不正确的描述为A)调用函数时,实参可以是变量,也可以是表达式。
C语言程序设计任务驱动式教程(第3版)-课后练习

C语言程序设计课后思考与训练1计算机技术系二〇二一年一月第一单元1.讨论题(1)讨论C程序的结构是由哪几个部分组成的。
(2)C语言中注释的作用。
(3)在编写C语言程序时,需要注意的编码规范有哪些?2.选择题(1)C 语言属于下列哪类计算机语言?A. 汇编语言B. 高级语言C. 机器语言D. 以上均不属于(2)一个C程序是由()。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成(3)一个C程序的执行是从()。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束(4)C语言语句的结束符是()。
A.回车符B.分号C.句号D.逗号(5)以下说法正确的是()。
A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用B.C程序的注释只能是一行C.C程序的注释不能是中文文字信息D.C程序的注释中存在的错误会被编译器检查出来(6)以下说法正确的是()。
A.C程序中的所有标识符都必须小写2B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写3.填空题(1)C语言源程序文件的后缀是,编译后生成目标文件的扩展名是,经过连接后生成可执行文件的扩展名是。
(2)C程序多行注释是由和所界定的文字信息组成的。
(3)源程序的执行要经过、、和4个步骤。
4.编程题(1)试编写一个C程序并上机调试,运行后能输出以下信息。
**************************************This is my first program.**************************************(2)编写程序,用“*”输出字母C。
3第二单元1.讨论题(1)C语言为什么规定对所有用到的变量都要“先定义,后使用”?(2)定义变量时一定要赋初值吗?不赋初值的变量一定不能用吗?(3)不同类型数据之间在进行运算时,结果类型应该如何确定?(4)C语言中常量、变量命名规范是什么?2.选择题(1)以下正确的C语言标识符是()。
C语言中函数的返回值

C语⾔中函数的返回值规则除局部变量的内存地址不能作为函数的返回值外,其他类型的局部变量都能作为函数的返回值。
我总结出下⾯这些规则:1. int、char等数据类型的局部变量可以作为函数返回值。
2. 在函数中声明的指针可以作为函数返回值。
指针可以是执⾏int等数据类型的指针,也可以是指向结构体的指针。
3. 在函数中声明的结构体也可以作为函数返回值。
4. 在函数中声明的数组不能作为函数返回值。
5. 函数中的局部变量的内存地址不能作为函数返回值。
代码对上⾯的每条规则列举⼀段代码,然后观察执⾏结果。
int类型局部变量int f2(){int a = 54;return a;}指针类型局部变量int *f(){int *a = malloc(sizeof(int));*a = 54;return a;}struct person *f6(){struct person *p1 = malloc(sizeof(struct person));//struct person *p1;//*p1 = {2};p1->age = 2;strcpy(p1->name, "Jim");return p1;}结构体局部变量struct person f5(){struct person p1 = {2, "Jim"};return p1;}数组局部变量int *f4(){int a[2] = {1,2};// warning: function returns address of local variable [-Wreturn-local-addr]return a;}局部变量的内存地址int *f3(){int a = 54;// warning: function returns address of local variable [-Wreturn-local-addr]return &a;}main#include <stdio.h>#include <string.h>#include <stdlib.h>struct person{int age;char name[20];};int *f();int f2();int *f3();int *f4();struct person f5();struct person *f6();int main(int argc, char **argv){int *t = f();printf("t = %p\n", t);printf("*t = %d\n", *t);int t2 = f2();printf("t2 = %d\n", t2);int *t3 = f3();printf("t3 = %p\n", t3);int *t4 = f4();printf("t4 = %p\n", t4);struct person p1 = f5();printf("p1.age = %d\n", p1.age);struct person *p2 = f6();printf("p2->age = %d\n", p2->age);return 0;}执⾏结果是:t = 0x836f1a0*t = 54t2 = 54t3 = (nil)t4 = (nil)p1.age = 2p2->age = 2t3、t4的值是(nil),说明局部变量的内存地址和数组类型的局部变量并不能作为函数返回值。
函数的返回类型

函数的返回类型
函数的返回类型指的是函数在执行完毕后返回的值的类型。
在绝大多数编程语言中,函数可以声明返回类型,通过关键字来表示。
在C++中,函数的返回类型需要在函数声明时指定,可以使用基本数据类型(如int、float、bool等)作为返回类型,也可以使用自定义的数据类型(如结构体、类等)。
如果函数没有返回值,则可以使用关键字void来表示。
举例:
```c++
int add(int a, int b) {
return a + b;
}
float divide(float a, float b) {
if (b != 0) {
return a / b;
} else {
return 0;
}
}
void printMessage(string message) {
cout << message << endl;
}
```
在上面的例子中,add函数返回类型为int,divide函数返回类型为float,printMessage函数没有返回值,使用了void关键字表示。