(完整版)c语言函数练习题附答案
c语言关于函数的试题及答案

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语言程序设计练习题及参考答案1、定义一个函数int fun(int a, int b, int c),它的功能是:若a, b, c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
^include <stdio.h>int fun(int a, int b, int c)(if(a+b>c && b÷c>a && a+c>b)(if(a=b && b=c )return 3;else if (a-b ∣∣ b-c ∣∣ a==c)return 2;else return 1;)else return 0;)void main()(int a, b, c, shape;printf (z,∖∩Tnput a, b, c: 〃);scanf ("%d%d%d”, &a, &b, &c);printf ("∖na=%d, b=%d, c=%d∖n”, a, b, c);shape =fun(a, b, c);printf (z,∖n∖nThe shape : %d∖∏z,, shape);2、编写一个程序,将两个变量的值交换,例如变量a中的值原为3, b中的值原为8,程序运行后a中的值为8, b中的值为3。
^include <stdio.h>void fun(int *x, int *y){int t;t=*x;*x=*y;*y=t)void main(){int a=3,b=8;printf (,,%d %d∖∏z,, a, b);fun (&a, b);printf (,,%d %d∖n”, a, b);3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
例如,输入的数为:55 12 34,输出结果应当是:a=55.0, b=34. 0, c=12. 0o^include <stdio. h>void fun(float *p, float *q, float *s)(float k;if (*p<*q){ k=*p;*p=*q;*q=k;}if (*q<*s){ k=*s;*s=*p;*p=k;}if (*p<*q){ k=*p;*p=*q;*q=k;})void main(){ float a, b, c;printf (z,Input a b c: 〃); scanf (z,%f%f%f z,, &a, &b, &c);printf (zz a=%4. If, b=%4. If, c=%4. lf∖n∖n zz, a, b, c);fun(&a, &b, &c);printf (z,a=%4. If, b=%4. If, c=%4. lf∖n∖∏z,, a, b, c);4、编写函数fun(intn),它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。
完整word版,函数练习题(C语言)带答案

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. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。
A)参数的形实结合B)函数返回值C)全局变量D)同名的局部变量8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。
A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。
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函数试题及答案

c函数试题及答案在本篇文章中,将介绍一些C语言中常见的函数试题,并给出其相应的答案。
通过这些试题的讲解,读者可以深入了解C函数的使用方法和注意事项,提高对C语言编程的理解和实践能力。
1. 试题一:编写一个函数,实现两个整数的交换。
答案:```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 试题二:编写一个函数,判断一个数是否为偶数,返回1表示是,返回0表示不是。
答案:```cint isEven(int num) {if(num % 2 == 0) {return 1;} else {return 0;}}```3. 试题三:编写一个函数,计算一个整数数组中所有元素的和。
答案:```cint sumArray(int arr[], int size) {int sum = 0;for(int i = 0; i < size; i++) {sum += arr[i];}return sum;}```4. 试题四:编写一个函数,找出一个整数数组中的最大值。
答案:int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}```5. 试题五:编写一个函数,将一个字符串逆序输出。
答案:```cvoid reverseString(char str[]) {int length = strlen(str);for(int i = length - 1; i >= 0; i--) {printf("%c", str[i]);}```通过以上试题及其答案的讲解,读者可以加深对C语言函数的理解,并且能够熟练运用这些函数来解决实际的编程问题。
c语言中函数试题及答案

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语言 函数相关试题答案

七.函数1)若各选项中所用变量已正确定义,fun()函数中通过return 语句返回一个函数值,下列选项中错误的程序是(06.4)。
A)main( ){……x=fun(2,10);……}float fun(int a,int b){……}B)float fun(int a,int b){……}main( ){……x =fun(i,j);……}C)float fun(int,int);main( ) {float fun(int i,int j);{……x=fun(2,10);……}float fun(int a,int b){……}D) main{float fun(int I,int j);……x =fun(i,j);……}float fun(int a,int b){……}2)有下列程序:int fun1(double a){return a*=a;}int fun2(double x,double y){ double a=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main( ){double w;w=fun2(1.1,2.0);……}程序执行后变量 w 中的值是(06.4)A)5.21 B)5 C)5.0 D)0.03)有下列程序:int fun(int n){ if(n= =1)return 1;elsereturn(n+fun(n-1));}main( ){ int x;scanf("%d",&x); x=fun(x); printf("%d\n",x);} 执行程序时,给变量 x 输入 10,程序的输出结果是(06.4)A)55 B)54 C)65 D)454)有以下程序fun(int x,int y){return(x+y);}main(){int a=1,b=2,c=3,sum;sum=fun(a++,b++,a+b),c++);printf(“%d\n”,sum);}执行后的输出结果是(06 9)A) 6 B) 7 C) 8 D) 95)有以下程序fun(int x,int y){static int m=0,i=2;i+=m+1;m=i+x+y;return m;}main(){int j=1,m=1,k;k=fun(j,m);printf(“%d,”,k);K=fun(j,m);printf(“%d\n”,k);}执行后输出结果是(06 9)A) 5,5 B) 5,11 C) 11,11 D) 11,56)有以下程序fun(int x){int p;if(x==0||x==1) return(3);p=x-fun(x-2);return p;}main(){ printf(“%d\n”,fun(7));}执行后输出结果是(06 9)A) 7 B ) 3 C) 2 D) 07) 有以下程序:void fun2(char a,char b){printf("%c,%c",a,b);}char a='A',b='B';void fun1(){ a='C'; b='D';}main(){fun1();printf("%c%c",a,b);fun2('E','F'); }程序的运行结果是(06 9)A)CDEF B)ABEF C)ABCD D)CDAB 8)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空。
c语言编写函数笔试题及答案

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. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数
一、选择题
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,10
B、10,20,30
C、456,567,678
D、678,567,456
8.下述函数定义形式正确的是()。
A 、int f(int x; int y)
B 、int f(int x,y)
C 、int f(int x, int y)
D 、int f(x,y: int)
9.关于函数参数,说法正确的是()。
A、实参与其对应的形参各自占用独立的内存单元
B、实参与其对应的形参共同占用一个内存单元
C、只有当实参和形参同名时才占用同一个内存单元
D、形参是虚拟的,不占用内存单元
10.一个函数的返回值由()确定。
A、return 语句中的表达式
B、调用函数的类型
C、系统默认的类型
D、被调用函数的类型
11.以下正确的函数形式是()。
A 、double fun(int x,int y)
{ z=x+y; return z; }
B 、fun(int x,y)
{ int z; return z; }
C 、fun(x,y)
{ int x,y; double z; z=x+y; return z; }
D 、double fun(int x,int y)
{ double z; z=x+y; return z; }
12.下列函数中,能够从键盘上获得一个字符数据的函数是()。
A、 puts( )
B、 putchar( )
C、 getchar( )
D、 gets( )
13.以下程序的输出结果是()。
fun(int a,int b,int c)
{
c=a+b;
}
int main()
{ int c;
fun(2,3,c);
printf(“%d\n”,c);
return 0;
}
A、2
B、3
C、5
D、无定值
14.分析以下程序的运行结果()。
func(int a,int b)
{
int temp=a;
a=b; b=temp;
}
int main()
{
int x,y;
x=10; y=20;
func(x,y);
printf((“%d,%d\n”,x,y);
return 0 ;
}
A、10,20
B、10,10
C、20,10
D、20,20
15.有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;
}
int main()
{ int i,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
return 0;
}
程序运行后的输出结果是
A)4 B)3 C)2 D)1
16.现有如下程序
#include "stdio.h"
int fun(int x)
{ printf("x=%d\n",++x);
}
int main()
{ fun(12+5); return 0;
}
则程序的输出结果是
A)x=12 B)x=13 C)x=17 D)x=18
二、判断题
1、 ( F )return 语句作为函数的出口,在一个函数体内只能有一个。
2、 ( T )在 C 程序中,函数不能嵌套定义,但可以嵌套调用。
3、 ( F ) C 语言的源程序中必须包含库函数。
4、 ( F )在 C 程序中,函数调用不能出现在表达式语句中。
5、 ( F)在C 函数中,形参可以是变量、常量或表达式。
6、 ( T )在 C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。
7、 ( F )若定义的函数没有参数,则函数名后的圆括号可以省略。
8、 ( T )函数的函数体可以是空语句。
9、 ( T )函数的实参和形参可以是相同的名字。
10、( F )C 语言中函数返回值的类型由return 语句中的表达式的类型决定。
11、( F )C 语言程序中的main( )函数必须放在程序的开始部分。
12、( T )函数调用中,形参与实参的类型和个数必须保持一致。
14:编写一个函数fan(int m),计算任一输入的整数的各位数字之和。
主函数包括输入、输出和调用函数。
#include <stdio.h>
int fan(int m);
void main()
{
int n,s;
scanf("%d",&n);
s=fan(n);
printf("s=%d\n",s);
}
int fan(int m)
{
int x,s=0;
while(m!=0)
{
x=m%10;
m=m/10;
s=s+x;
}
return s;
}
15:已有变量定义语句和函数调用语句int x=57; isprime(x);函数isprime( )用来判断整型数x 是否为素数,若是素数,函数返回1,否则返回0。
请编写isprime 函数。
(不可修改主函数)
#include <stdio.h>
void main()
{
int x=57;
if(isprime(x)) printf("%d 是素数!\n",x);
else printf("%d 不是素数!\n",x);
int isprime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;
}。