C语言函数习题
c语言函数试题及答案
![c语言函数试题及答案](https://img.taocdn.com/s3/m/1374c26f77c66137ee06eff9aef8941ea76e4bb6.png)
c语言函数试题及答案1. 以下哪个关键字用于定义一个函数?A. classB. structC. functionD. void答案:D2. 函数的返回值类型是什么?A. intB. floatC. charD. 以上都可以答案:D3. 函数的参数列表可以包含哪些类型?A. 变量B. 常量C. 表达式D. 以上都不对答案:A4. 以下哪个选项不是函数原型的组成部分?A. 返回类型B. 函数名C. 参数列表D. 函数体答案:D5. 以下哪个语句用于调用函数?A. defineFunction();B. callFunction();C. invokeFunction();D. functionName();答案:D6. 函数的返回值是什么?A. 函数执行的结果B. 函数的参数C. 函数的名称D. 函数的类型答案:A7. 以下哪个选项不是函数的属性?A. 返回类型B. 参数列表C. 函数名D. 函数的存储位置答案:D8. 以下哪个关键字用于定义一个无返回值的函数?A. intB. voidC. charD. float答案:B9. 函数的参数默认传递方式是什么?A. 值传递B. 引用传递C. 指针传递D. 动态传递答案:A10. 以下哪个选项不是函数调用时可能出现的错误?A. 函数名拼写错误B. 参数类型不匹配C. 参数数量不足D. 函数定义在调用之后答案:D11. 以下哪个选项是正确的函数定义?A. int myFunction(int x, int y) { return x + y; }B. int myFunction(int x; int y) { return x + y; }C. int myFunction(int x, int y) { return x - y; }D. int myFunction(int x, int y) { return x * y; }答案:A12. 以下哪个选项是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction(int x, int y);C. int myFunction(int x, int y) { return x + y; }D. void myFunction(int x, int y) { return x + y; }答案:A13. 以下哪个选项是正确的递归函数定义?A. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n - 1); }B. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n + 1); }C. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }D. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n + 1); }答案:C14. 以下哪个选项是正确的函数指针声明?A. int (*ptr)(int, int);B. int *ptr(int, int);C. int (*ptr)(int);D. int *ptr(int, int)(int, int);答案:A15. 以下哪个选项是正确的函数指针的使用?A. int add(int a, int b) { return a + b; }B. int (*ptr)(int, int) = add;C. int result = ptr(5, 3);D. 以上都是答案:D。
c语言关于函数的试题及答案
![c语言关于函数的试题及答案](https://img.taocdn.com/s3/m/3b5de1e8d1d233d4b14e852458fb770bf68a3b78.png)
c语言关于函数的试题及答案1. 题目:以下哪个选项是正确的C语言函数定义?- A. int function(int a, int b) { return a + b; } - B. int function(int a, int b) { return a - b; } - C. int function(int a, int b) { return a * b; } - D. All of the above答案:D2. 题目:在C语言中,函数的返回值类型是什么?- A. void- B. int- C. float- D. char答案:A3. 题目:以下哪个选项是C语言中有效的函数声明?- A. int add(int a, int b);- B. int add(int, int);- C. int add(int a; int b);- D. int add(int a, int b) {}答案:A4. 题目:在C语言中,函数的参数默认传递方式是什么? - A. 值传递- B. 引用传递- C. 指针传递- D. 以上都不是答案:A5. 题目:以下哪个选项是C语言中正确的递归函数定义?- A. int fact(int n) { if (n == 0) return 1; else return n * fact(n - 1); }- B. int fact(int n) { if (n == 0) return 1; else return n * fact(n + 1); }- C. int fact(int n) { if (n == 1) return 1; else return n * fact(n - 1); }- D. All of the above答案:A6. 题目:在C语言中,如何定义一个接受任意数量参数的函数?- A. 使用不定参数列表- B. 使用数组作为参数- C. 使用指针作为参数- D. 使用结构体作为参数答案:A7. 题目:以下哪个选项是C语言中正确的函数指针声明?- A. int (*func)(int);- B. int *func(int);- C. int func(int)[];- D. int (*func)(int, int);答案:A8. 题目:在C语言中,如果函数返回一个结构体,那么函数的返回类型是什么?- A. struct- B. void- C. int- D. char答案:A9. 题目:以下哪个选项是C语言中正确的函数重载声明?- A. void add(int a, int b);- B. int add(int a, int b);- C. void add(int a, int b, int c);- D. All of the above答案:D10. 题目:在C语言中,如何定义一个接受可变数量参数的函数?- A. 使用不定参数列表- B. 使用数组作为参数- C. 使用指针作为参数- D. 使用结构体作为参数答案:A。
C语言函数习题
![C语言函数习题](https://img.taocdn.com/s3/m/86da7daf27d3240c8547ef7f.png)
.习题一、选择题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语言函数习题
![C语言函数习题](https://img.taocdn.com/s3/m/351696b6a6c30c2259019ec5.png)
习题、选择题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 (“ %ldn”,fun (3));}A. 1B.2C.3D.43、C 语言中形参的默认存储类别是______ A ______A. 自动(auto )B. 静态(static )C.寄存器(register)D.外部(extern )4、下面对函数嵌套的叙述中,正确的是________ B ___A. 函数定义可以嵌套,但函数调用不能嵌套B. 函数定义不可以嵌套,但函数调用可以嵌套C. 函数定义和函数调用均不能嵌套D. 函数定义和函数调用均可以嵌套5 、下面关于形参和实参的说法中,正确的是 ______ B ____ 。
A. 形参是虚设的,所以它始终不占存储单元B. 实参与它所对应的形参占用不同的存储单元C. 实参与它所对应的形参占用同一个存储单元D. 实参与它所对应的形参同名时可占用同一个存储单元6、关于全局变量的作用范围,下列说法正确的是______ D ______ 。
A.本程序的全部范围B.离定义该变量的位置最接近的函数C.函数内部范围D.从定义该变量的位置开始到本文件结束7、调用一个函数,此函数中没有return 语句,下列说法正确的是:该函数 ________ DA.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值8、以下函数调用语句中含有____ B ____ 个实参。
fun ((exp1,exp2),(exp3 ,exp4,exp5 ));A.1B.2C.4D.59、以下程序的输出结果是__C _____ 。
C语言程序设计(函数的定义及调用)习题与答案
![C语言程序设计(函数的定义及调用)习题与答案](https://img.taocdn.com/s3/m/250f3929f7ec4afe05a1df34.png)
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语言中函数试题及答案
![c语言中函数试题及答案](https://img.taocdn.com/s3/m/8b450fb4b04e852458fb770bf78a6529647d35a6.png)
c语言中函数试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义函数?A. classB. functionC. defD. int答案:D2. 函数的返回类型是什么?A. 函数执行后返回的数据类型B. 函数的名称C. 函数的参数D. 函数的调用方式答案:A3. 在C语言中,以下哪个函数用于计算两个整数的和?A. strcatB. strcmpC. strcatD. sum答案:D(假设sum是一个自定义的函数)二、填空题1. 在C语言中,定义函数的关键字是________。
答案:int2. 函数的返回值是通过________关键字返回的。
答案:return3. 函数的参数列表定义了函数调用时需要传递的________。
答案:值三、简答题1. 请简述C语言中函数的定义格式。
答案:在C语言中,函数的定义格式通常如下:```returnType functionName(parameterList) {// function body}```其中`returnType`是函数的返回类型,`functionName`是函数的名称,`parameterList`是函数的参数列表,`function body`是函数的执行体。
2. 请解释C语言中函数的调用过程。
答案:C语言中函数的调用过程包括以下步骤:- 调用者准备参数并调用函数。
- 函数接收参数并执行函数体。
- 函数计算结果并通过return语句返回。
- 调用者接收返回值并继续执行。
四、编程题1. 编写一个C语言函数,计算两个整数的和并返回结果。
答案:```cint sum(int a, int b) {return a + b;}```调用示例:```cint result = sum(5, 10);printf("The sum is %d", result); ```。
C语言题库-函数(推荐文档)
![C语言题库-函数(推荐文档)](https://img.taocdn.com/s3/m/fe455952bcd126fff6050b3f.png)
C语言函数练习题一、选择题1.在函数的说明和定义时若没有指出函数的类型,则( A )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. 若调用一个函数,且此函数中没有return 语句,则正确的说法是:该函数( D )A: 没有返回值;B: 返回若干个系统默认值;C: 能返回一个用户所希望的函数值;D: 返回一个不确定的值4. C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是( B )A: float 型B: int 型C: long 型D: double 型5. C语言规定,函数返回值的类型是由( D )(二级题)A: return 语句中的表达式类型所决定;B: 调用该函数时的主调函数类型所决定;C: 调用该函数时系统临时决定;D: 在定义该函数时所指定的函数类型所决定6.下面函数调用语句含有实参的个数为( B )func((exp1,exp2),(exp3,exp4,exp5));A: 1B: 2C: 5D: 47. 以下错误的描述是( D )函数的调用可以A: 出现在执行语句中;B: 出现在一个表达式中;C: 为一个函数的实参;D: 作为一个函数的形参;8.若函数的形参为一维数组,则下列说法中正确的是( B )A: 调用函数时的对应实参必为数组名。
B: 形参数组可以不指定大小。
C: 形参数组的元素个数必须等于实参数组的元素个数。
D: 形参数组的元素个数必须多于实参数组的元素个数。
9.下面叙述中正确的是( C )A: 对于用户自己定义的函数,在使用前必须加以说明。
C语言 练习题(函数)
![C语言 练习题(函数)](https://img.taocdn.com/s3/m/fd29fc26915f804d2b16c1ff.png)
一、选择题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语言编程(函数)100道题
![C语言编程(函数)100道题](https://img.taocdn.com/s3/m/dabd10cc227916888586d73f.png)
C语言编程(函数)100道题C10027 1、编写函数fun, 函数的功能是:根据以下公式计算 s,计算结果作为函数值返回;n 通过形参传入。
S = 1 + 1/ (1+2) + 1/ (1+2+3) + …… + 1/ (1+2+3+……+n) float fun ( int n ){ int i ;float s = 0.0 , t = 0.0 ;for ( i = 1 ; i <= n ; i++ ) { t += i ; s += 1 / t ; }return s ;}2、编写函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。
m 与 n 为两个正整数且要求 m > n。
m!P = ?????n!(m-n)!float fun ( int m , int n ){ int i ;float p , t ;for ( t = 1.0 , i = 1 ; i <= m ; i++ ) t *= i ;p = t ;for ( t = 1.0 , i = 1 ; i <= n ; i++ ) t *= i ;p = p / t ;for ( t = 1.0 , i = 1 ; i <= m – n ; i++ ) t *= i ;p = p / t ;return p ;}3、请编写一个函数fun, 它的功能是:根据以下公式求л 的值,(要求满足精度 0.0005,即某项小于 0.0005 时停止迭代):π 1 1×2 1×2×3 1×2×3×4 1×2×…×n? = 1 + ? + ?? + ???? + ????? + …… + ????????2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1) double fun ( double eps ){ int n = 0 ;double t = 1.0 , pi = 0.0 ;while ( t >= eps ){ pi += t ; n++ ; t *= ( double ) n / (2 * n + 1) ; }return pi * 2 ;}4、请编写函数fun, 其功能是:计算并输出下列多项式值:1 1 1 1s = 1 + ?? + ?? + ?? + …… + ??1! 2! 3! n!1double fun ( int n ){ int i ;double t = 1.0 , sn = 1.0 ;for ( i = 1 ; i <= n ; i++ ){ t *= i ; sn += 1 / t ; }return sn ;}5、请编写函数fun,它的功能是:计算并输出下列级数和:1 1 1s = ??? + ??? + …… + ?????1×2 2×3 n×(n+1) double fun ( int n ){ int i ;double s = 0.0 ;for ( i = 1 ; i <= n ; i++ ) s += 1.0 / i / ( i + 1 ) ;return s ;}6、请编写函数fun, 其功能是:计算并输出当 x < 0.97 时下列多项式的值,直到?Sn-(Sn-1)?< 0.000001 为止。
c语言编写函数笔试题及答案
![c语言编写函数笔试题及答案](https://img.taocdn.com/s3/m/d4ceb404f4335a8102d276a20029bd64793e6212.png)
c语言编写函数笔试题及答案C语言编写函数笔试题及答案1. 题目一:计算阶乘编写一个函数,计算并返回一个整数的阶乘。
阶乘定义为:n! = n * (n-1) * (n-2) * ... * 1,其中n! = 1,当n=0。
函数原型:```clong long factorial(int n);```答案:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d is %lld\n", num, factorial(num)); return 0;}```2. 题目二:字符串反转编写一个函数,接受一个字符串作为参数,将其反转并返回。
函数原型:```cchar* reverseString(char* str);```答案:```c#include <stdio.h>#include <string.h>char* reverseString(char* str) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}return str;}int main() {char str[] = "Hello, World!";printf("Reversed string: %s\n", reverseString(str));return 0;}```3. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。
C语言函数题库及答案
![C语言函数题库及答案](https://img.taocdn.com/s3/m/e977a85fb84ae45c3b358c95.png)
第六部分函数一、单项选择题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语言函数习题及答案
![C语言函数习题及答案](https://img.taocdn.com/s3/m/b73b86d56c85ec3a87c2c5e6.png)
}
void main( )
{ int array[10],i;
for (i=0;i<10;i++)
{int i;
char c;
for(i=0;i<=(n-1)/2;i++)
{c=s[i];
s[i]=s[n-1-i];
s[n-1-i]=c;}
}
main()
{ char s [N];
int l;
printf("input a string:");gets(s);
l=பைடு நூலகம்trlen(s);
fun(s,l);
2021/3/26
printf("The new string is :");puts(s);
2
}
3.编写一个函数fun实现字符串连接功能(不允许使用strcat函数)。
#include "stdio.h"
#include "string.h"
void fun(char s[],char t[])
{int i,j;
j=strlen(s);
for(i=0;t[i]!='\0';i++)
s[j++]=t[i];
s[j]='\0';
}
main()
{char s[100],t[100];
gets(s);gets(t);
fun(s,t);
printf("\nThe result is :%s\n",s);
for(j=i+n;str[j]!='\0';j++)
c语言函数的试题及答案
![c语言函数的试题及答案](https://img.taocdn.com/s3/m/5064894acec789eb172ded630b1c59eef8c79a94.png)
c语言函数的试题及答案1. 以下关于C语言函数定义的描述,正确的是:A) 函数必须在程序的开始部分定义B) 函数可以嵌套定义C) 函数的定义必须在调用之前D) 函数可以没有返回值答案:C2. 以下哪个关键字用于定义C语言函数?A) structB) classC) functionD) void答案:D3. 函数的返回类型void表示:A) 函数返回一个整数B) 函数返回一个浮点数C) 函数不返回任何值D) 函数返回一个字符答案:C4. 以下哪个选项是C语言中函数参数的正确传递方式?A) 值传递B) 引用传递C) 指针传递D) 所有选项答案:D5. 以下哪个函数原型是正确的?A) int add(int x, int y);B) int add(int, int);C) int add(int x, y);D) int add(int x, int y) int z;答案:A6. 以下哪个函数调用是正确的?A) int result = add(5, 3);B) int result = add(5);C) int result = add(5, 3, 2);D) int result = add(x, y);答案:A7. 如果一个函数需要返回一个数组,它应该返回什么类型?A) intB) int[]C) int*D) void*答案:C8. 以下哪个函数声明是正确的?A) int func(int a, int b);B) int func(int, int);C) int func(a, b);D) int func(int a, int);答案:A9. 在C语言中,函数的默认存储类别是什么?A) autoB) staticC) externD) register答案:B10. 以下哪个函数声明允许在函数内部定义变量?A) static int func();B) int func();C) void func();D) extern int func();答案:B。
完整版函数练习题C语言带答案
![完整版函数练习题C语言带答案](https://img.taocdn.com/s3/m/348e5f5ef8c75fbfc67db247.png)
C语言函数练习题一、选择题1. 一个完整的C源程序是【】.A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【】.A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【】.A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【】.A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】A)float B)longC)int D)double6. 以下关于函数叙述中,错误的是【】.A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式7. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】.A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】.A)实参将其地址传递给形参,并释放原先占用的存储单元B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参)实参将其值传递给形参,调用结束时形参再将其值回传给实参C D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【】.A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元11. 若用数组名作为函数调用的实参,则传递给形参的是【】.A> 数组的首地址 B> 数组的第一个元素的值C> 数组中全部元素的值 D> 数组元素的个数12. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【】.A)实参与其对应的形参共用同一段存储空间B)实参与其对应的形参占用相同的存储空间C)实参将其地址传递给形参,同时形参也会将该地址传递给实参D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递13. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量【】.b5E2RGbCAPA)为全局变量,在本程序文件范围内有效B)为局部变量,只在该函数内有效C)为局部变量,只在该复合语句中有效D)定义无效,为非法变量14. C语言中函数返回值的类型是由【】决定.A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D)定义函数时所指定的函数类型15. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是【】.p1EanqFDPw A)extern static float a。
c语言函数试题及答案
![c语言函数试题及答案](https://img.taocdn.com/s3/m/d4c98896db38376baf1ffc4ffe4733687f21fc55.png)
c语言函数试题及答案C语言函数试题及答案一、选择题1. 在C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function2. 以下哪个函数原型声明是正确的?A. void myFunction();B. int myFunction() {}C. int myFunction();D. myFunction(int, int);3. 在C语言中,函数的返回值通过哪个关键字返回?A. returnB. outputC. resultD. yield二、填空题4. 在C语言中,如果一个函数没有返回值,其返回类型应该是________。
5. 函数的参数可以是常量、变量或________。
三、简答题6. 简述C语言中函数的作用。
四、编程题7. 编写一个C语言函数,该函数接受两个整数作为参数,并返回它们的和。
五、分析题8. 阅读以下C语言函数代码,并指出其功能及可能存在的问题。
```cvoid swap(int *x, int *y) {int temp;temp = *x;*x = *y;*y = temp;}```答案:一、选择题1. C2. C3. A二、填空题4. void5. 表达式三、简答题6. 函数在C语言中用于封装一段代码,使其可以重复使用。
函数可以接收参数,执行特定的任务,并可选择性地返回一个值。
四、编程题7.```cint add(int a, int b) {return a + b;}```五、分析题8. 该函数的功能是交换两个整数的值。
它通过指针参数接收两个整数的地址,并在函数内部交换这两个整数的值。
可能存在的问题是,如果传入的参数不是有效的整数地址,或者指针所指向的内存区域不可写,那么将会导致程序错误或崩溃。
C语言函数题库
![C语言函数题库](https://img.taocdn.com/s3/m/3623fa1325c52cc58bd6bedc.png)
本章(函数)共3种题型:一、填空题(共95道)二、判断题(共20道)三、填空题(共10道)*********************************************************************一、填空题(共95道)1.考题所在章节:函数本题序号:124下列说法中错误的是A一个数组只允许存储同种类型的变量。
B在对数组进行初始化时,给定的数据元素个数可以比数组本身大小多。
C数组的名称其实是数组在内存中的首地址。
D当数组名作为参数被传递给某个函数时,函数运行过程中原数组中的元素的值可能被修改。
参考答案B2.考题所在章节:函数本题序号:126下列叙述中错误的是A主函数中定义的变量在整个程序中都是有效的。
B在其它函数中定义的变量在主函数中也不能使用。
C形式参数也是局部变量。
D复合语句中定义的变量只在该复合语句中有效。
参考答案A3.考题所在章节:函数本题序号:127若函数的形参为一维数组,则下列说法中正确的是A调用函数时的对应实参必为数组名。
B形参数组可以不指定大小。
C形参数组的元素个数必须等于实参数组的元素个数。
D形参数组的元素个数必须多于实参数组的元素个数。
参考答案B4.考题所在章节:函数本题序号:128在函数的说明和定义时若没有指出函数的类型,则A系统自动地认为函数的类型为整型。
B系统自动地认为函数的类型为字符型。
C系统自动地认为函数的类型为实型。
D编译时会出错。
参考答案A5.考题所在章节:函数本题序号:135下面叙述中正确的是A对于用户自己定义的函数,在使用前必须加以说明。
B说明函数时必须明确其参数类型和返回类型。
C函数可以返回一个值,也可以什么值也不返回。
D空函数不完成任何操作,所以在程序设计中没有用处。
参考答案C6. 考题所在章节:函数本题序号:157下面正确的函数定义形式是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);参考答案A7.考题所在章节:函数本题序号:158若调用一个函数,且此函数中没有return语句,则正确的说法是()该函数:A没有返回值B返回若干个系统默认值;C能返回一个用户所希望的函数值;D返回一个不确定的值参考答案D8.考题所在章节:函数本题序号:159下面说法中不正确的是()在C语言中A实参可以是常量、变量或表达式;B形参可以是常量、变量或表达式;C函数的参数是函数间传递数据的一种手段;D实参个数应与对应的形参个数相等,类型匹配;参考答案B9.考题所在章节:函数本题序号:162C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是A float型B int 型C long 型D double型参考答案B10.考题所在章节:函数本题序号:163C语言规定,函数返回值的类型是由A return语句中的表达式类型所决定;B调用该函数时的主调函数类型所决定;C调用该函数时系统临时决定;D在定义该函数时所指定的函数类型所决定;参考答案D11.考题所在章节:函数本题序号:164下面函数调用语句含有实参的个数为()func((exp1,exp2),(exp3,exp4,exp5));A1B2C5D4参考答案B12.考题所在章节:函数本题序号:165以下错误的描述是()函数的调用可以A出现在执行语句中;B出现在一个表达式中;C为一个函数的实参;D作为一个函数的形参;参考答案D13.考题所在章节:函数本题序号:167若使用一维数组名作函数参数,则以下正确的说法是A必须在主调用函数中说明此数组的大小;B实参数组类型与形参数组类型可以匹配;C在被调函数中,不需要考虑形参数组的大小;D实参数组名与形参数组名必须一致;参考答案C14.考题所在章节:函数本题序号:168下正确的说法是()。
c语言函数习题
![c语言函数习题](https://img.taocdn.com/s3/m/dd88d23283c4bb4cf7ecd122.png)
B)第一个函数前 ) D)函数中静态变量 )
15.下面程序的运行结果为: .下面程序的运行结果为: 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\n",z,y,x); }
5
22、下面程序的运行结果为: 、下面程序的运行结果为: main( ) { int w=5; 012345 fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }
23、下面程序能够统计主函数调用 、下面程序能够统计主函数调用count 函数的次数(用 函数的次数(
int next(j) 1 1 1 10 12 int j ; 1 2 2 9 13 { 1 3 3 8 14 return(j=i++); } int last(j) int j; { static int i=10; return(j=i--); } int new(i) int i; { int j=10; return(i=j+=i); }
20.下面程序的运行结果为: 下面程序的运行结果为: 下面程序的运行结果为 #include <stdio.h> int k=1; main() { int i=4; fun(i); printf("%d,%d\n",i,k);} fun(m) int m; { m+=k; k+=m; { char k='B'; printf("%d\n",k-'A'); } printf("%d,%d\n",m,k);}
C语言题库第4章 函数
![C语言题库第4章 函数](https://img.taocdn.com/s3/m/4d3a852d312b3169a551a45a.png)
第四章函数一、单项选择1. 有以下程序,程序运行的输出结果( A )#include <stdio.h>int f(int x);int main(){ int n=1,m;m=f(f(f(n))); printf(“%d\n”,m);return 0 ;}int f(int x){ return x*2;}A.8 B.4 C.1 D.22. 有以下程序,程序执行后变量w中的值是( C )#include<stdio.h>int funl(double a){return a*=a;}int fun2(double x,double y){ double a=0,b=0;a=funl(x);b=funl(y);return (int)(a+b);}int main(){double w;w=fun2(1.1,2.0);……}3. 有以下程序,程序运行后的输出结果是( B )#include <stdio.h>void fun(int p){ int d=2; p=d++; printf(“%d”,p);}int main(){ int a=1;fun(a); printf(“%d\n”,a);return 0;}4. 有以下程序,程序运行后的输出结果是( B )#include<stdio.h>int fun(){ static int x=1;x*=2;return x;}int main(){ int i,s=1;for(i=1;i<=3;i++) s*=fun();printf("%d\n",s);}5. 有以下程序,程序运行后的输出结果是( B ) #include<stdio.h>int fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}int main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));return 0;}6. 有以下程序,程序运行后的输出结果是( D )#include<stdio.h>int f(int x,int y){return ((y-x)*x);}int main(){ int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}7. 有以下程序:程序运行后的输出结果是( A ) #include <stdio.h>int f(){ static int x=1;x+=1; return x;}int main(){ int i,s=1;for(i=1;i<=5;i++) s+=fun();printf("%d\n",s);return 0;}8. 设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是( D )9. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( C )10. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( B )。
C语言练习-函数
![C语言练习-函数](https://img.taocdn.com/s3/m/fa219cd5360cba1aa811da54.png)
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)如果要限制一个变量只能被本源文件中的函数使用,必须通过来实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言函数习题第6章函数习题一、选择题1. 一个完整的C源程序是【】。
A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【】。
A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【】。
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】A)float B)long C)int D)double6. 以下关于函数叙述中,错误的是【】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。
A)参数的形实(哑实)结合B)函数返回值C)全局变量D)同名的局部变量8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。
A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。
A)实参将其地址传递给形参,并释放原先占用的存储单元B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C)实参将其值传递给形参,调用结束时形参再将其值回传给实参D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【】。
A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元11. 若用数组名作为函数调用的实参,则传递给形参的是【】。
A) 数组的首地址B) 数组的第一个元素的值C) 数组中全部元素的值D) 数组元素的个数12. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【】。
A)实参与其对应的形参共用同一段存储空间B)实参与其对应的形参占用相同的存储空间C)实参将其地址传递给形参,同时形参也会将该地址传递给实参D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递13. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量【】。
A)为全局变量,在本程序文件范围内有效B)为局部变量,只在该函数内有效C)为局部变量,只在该复合语句中有效D)定义无效,为非法变量14. C语言中函数返回值的类型是由【】决定。
A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D)定义函数时所指定的函数类型15. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是【】。
A)extern static float a; B)float a; C)extern auto float a; D)extern float a; 16. 定义一个void型函数意味着调用该函数时,函数【】A)通过return返回一个用户所希望的函数值B)返回一个系统默认值C)没有返回值D)返回一个不确定的值17. 若定义函数float *fun( ),则函数fun的返回值为【】。
A)一个实数B)一个指向实型变量的指针C)一个指向实型函数的指针D)一个实型函数的入口地址18. C语言规定,程序中各函数之间【】。
A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用19. 若程序中定义函数float myadd(float a, float b) { return a+b;}并将其放在调用语句之后,则在调用之前应对该函数进行说明。
以下说明中错误的是【】。
A)float myadd( float a,b);B)float myadd(float b, float a); C)float myadd(float, float); D)float myadd(float a, float b);20. 关于以下fun函数的功能叙述中,正确的是【】。
int fun(char *s) {char *t=s; while(*t++) ; t--;return(t-s); }A) 求字符串s的长度B) 比较两个串的大小C) 将串s复制到串t D)求字符串s所占字节数21. 下面程序段运行后的输出结果是【】(假设程序运行时输入5,3回车)int a, b;void swap( ) {int t;t=a; a=b; b=t; }main() {scanf(\swap( ); printf (\ }A) a=5,b=3 B) a=3,b=5 22. 以下程序运行后的输出结果是【】。
fun(int a, int b) {if(a>b) return a; else return b; }main() {int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z);C)5,3 D)3,5printf(\} A) 3 B) 6 C) 8 23. 以下程序的运行结果是【】。
void f(int a, int b) { int t;t=a; a=b; b=t; }main() {int x=1, y=3, z=2; if(x>y) f(x,y);else if(y>z) f(x,z); else f(x,z);printf(\}A) 1,2,3 B) 3,1,2 C) 1,3,2 24. 以下程序运行后的输出结果为【】。
int *f(int *x, int *y) {if(*xmain() {int a=7,b=8,*p,*q,*r; p=&a, q=&b; r=f(p,q);printf(\}A) 7,8,8 B) 7,8,7 C) 8,7,7 25. 以下程序的正确运行结果是【】。
#inclued main() {int k=4,m=1,p; p=func(k,m); printf(“%d”,p); p=func(k,m); printf(“%d\\n”,p); }func(int a,int b) {D) 12D) 2,3,1D) 8,7,8static int m=0,i=2; i+=m+1; m=i+a+b; return (m); }A)8,17 B)8,16 C)8,20 D)8,8 26. 以下程序的功能是计算函数F(x,y,z)=(x+z)/(y-z)+(y+2×z)/(x-2×z)的值,请将程序补充完整。
#include float f(float x,float y) {float value; value= 【1】; return value; }main() {float x,y,z,sum;scanf(\ sum=f(x+z,y-z)+f(【2】); printf(\}【1】A)x/y B)x/z C)(x+z)/(y-z) D)x+z/y-z 【2】A)y+2z,x-2z B)y+z,x-z C)x+z,y-z D)y+z*z,x-2*z 27. 以下程序的功能是根据输入的字母,在屏幕上显示出字符数组中首字符与其相同的字符串,若不存在,则显示“No find,good bye!”,请将程序补充完整。
#include char PriStr(char ch1) {int i=0,j=0;static char *ch2[]={\are you\\to meet you\new\ \ while(i++ if(ch1==【1】) {puts(【2】); j=1; }return j; }main() {char ch;printf(\ ch=getchar();共4页: 上一页1234下一页ch=PriStr(ch); if(ch==【3】)puts(\}【1】A)ch2[i][0] B)ch2[i-1][0] C)*ch2[i] D)*ch2[i-1][0] 【2】A)ch2[i] B)*ch2[i] C)*ch2[i-1] D)ch2[i-1] 【3】A)’0’ B)’48’ C)0 D)3028. 以下程序是将输入的一个整数反序打印出来,例如输入1234,则输出4321,输入-1234,则输出-4321。
请将程序补充完整。
void printopp(long int n) { int i=0; if(n==0) return ; elsewhile(n) {if(【1】) printf(\ else printf(\ i++; 【2】; } } main() {long int n;scanf(\ printopp(n); printf(\}【1】A)n0&&i==0 D)n>0||i==0 【2】A)n%=10 B)n%=(-10) C)n/=10 D)n/=)-10)29. 下面的程序用递归定义的方法实现求菲波拉契数列1、1、2、3、5、8、13、21……第7项的值fib(7),菲波拉契数列第1项和第2项的值都是1。
请将程序补充完整。
#include long fib(【1】) {switch(g) {case 0: return 0; case 1:case 2: return 1; }return (【2】); }main() { long k; k=fib(7);printf(\}【1】A)g B)k C)long int g D)int k 【2】A)fib(7) B)fib(g) C)fib(k) D)fib(g-1)+fib(g-2) 30.有以下程序int fun(int n) {if(n==1) return 1;else return(n+fun(n-1)); }main() { int x;scanf(\ x=fun(x);printf(\}程序执行时,若输入10,程序的输出结果是【】。