C语言函数习题及答案

合集下载

C语言程序设计 第六章 函数 试题及答案

C语言程序设计 第六章 函数 试题及答案
A)实参可以是常量、变量或表达式
B)形参可以是常量、变量或表达式
C)实参可以是任意类型
D)实参应与其对应的形参类型一致
参考答案:B
6.8以下正确的说法是。
A)定义函数时,形参的类型说明可以放在函数体内
B)return后面的值不能为表达式
C)如果函数的类型与返回值类型不一致,以函数类型为准
D)如果形参与实参的类型不一致,以实参类型为准
A)float型B)int型C)long型D)double型
参考答案:B
6.12 C语言规定,函数返回值的类型是由所决定。
A)return语句中的表达式类型
B)调用该函数时的主调函数类型
C)调用该函数是系统临时指定
D)在定义该函数时所指定的函数类型
参考答案:D
*6.13下面函数调用语句含有实参的个数为。
if(m!=-1) n=m;
}
printf("\nn=%d",n);
}
【1】A)k*10 B)k%10 C)k/10 D)k*10%10
【2】A)a2*10 B)a2 C)a2/10 D)a2%10
参考答案:【1】C【2】A
6.18以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A','B','C');则符合程序段运行结果的选项是。
A-->C A-->C B-->C B-->C
A-->B A-->B A-->C A-->C
参考答案:C
6.19若用数组名作为函数调用的实参,传递给形参的是。
A)数组的首地址B)数组第一个元素的值
C)数组中全部元素的值D)数组元素的个数

C语言练习题(带答案)

C语言练习题(带答案)

一、单项选择题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B )。

A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t6.下列C语言用户标识符中合法的是(B)。

A)3ax B)x C)case D)-e2 E)union7.下列四组选项中,正确的C语言标识符是(C)。

A)%x B)a+b C)a123 D)1238、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。

A)2.5 B)2 C)1 D)311.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是__A__。

A) 3 B) 4 C) 0 D) 112.若int x=2,y=3,z=4 则表达式x<z?y:z的结果是( B).A)4 B)3 C)2 D)0 E)113.C语言中,关系表达式和逻辑表达式的值是(B)。

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、以下只有在使用时才为该类型变量分配内存的存储类说明是----____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语言习题集(含答案)

一、单选题:(1)在C语言提供的合法的关键字是( )A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)’\084’ B) ’\x43’C)’ab’D) "\0”(3)若有定义和语句:char s[10]: s="abcd”;printf(”%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p,a=10, b=20;pp=&p;p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10,20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u, v, w);则输出结果是()A) 8,16,10B)10,10,10 C)8,8,10 D) 8,10,10 (6) 若有以下定义和语句char c1=' b', c2='e’;printf(”%d,%c\n", c2-c1,c2—'a’+”A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:char s[20]=”programming”,*ps=s;则不能代表字符o的表达式是( )A)ps+2 B) s[2]C) ps[2]D) ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是() for (i=5; i; i—-)for(j=0;j<4; j++){。

}A) 20B) 25 C)24 D) 30(9)若有以下定义和语句:char *s1=”12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5 C)9 D)10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A) *p B) a[10]C)*a D)a[p-a](11)下面程序的输出是()main(){char *s=”121";int k=0,a=0,b=0;do{k++;if(k%2==0) {a=a+s[k]—’0’;continue;}b=b+s[k]—’0';a=a+s[k]—'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C)k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main(){ unsigned a=32768;printf("a=%d\n”,a);}运行结果: —32768A)a=—32768 B)a=32767C)a=-32767 D)a=—1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){case1.0:printf("*\n”);{case1, 2:printf(”*\n”);case2。

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

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语言 练习题(函数)

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的两位数,打印出所有这样的数及其个数。

习题答案(7函数)《C语言程序设计》课后习题解答

习题答案(7函数)《C语言程序设计》课后习题解答
#include <stdio.h>
void main()
{int xyz(int i);
int i;
for (i=100;i<=200;i++)
if(xyz(i))
printf("%d\n",i);
}
int xyz(int i)
{int j=0;
if(i%5==0&&i%3!=0) j=1;
return j;
}
void triangle(int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
2.编写一个求1~n之间奇数和的函数,在main( )函数中输入n,然后调用该函数求1~n之间奇数和并输出。
#include <stdio.h>
scanf("%d",&a);
if(sushu(a)) printf("是素数");
else printf("不是素数");
}
int sushu(int a)
{ int i;int j=1;
for(i=2;i<=a-1;i++)
if(a%i==0) j=0;
return j;
}
4.在main( )函数中输入一个人的年龄和性别,女性退休年龄为55岁,男性退休年龄为60岁,编写一个函数根据年龄和性别判断一个人是工作还是退休,若工作,则输出“woking”,退休则输出“retired”。

函数练习题(C语言)带答案

函数练习题(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语言习题与答案

C语言习题与答案

一、单选题1、能将高级语言源程序转换成目标程序的是( C )。

编译程序的基本功能是把源程序翻译成目标程序 A)调试程序B)解释程序C)编译程序D)编辑程序 2、设有以下定义:int x=10,y=3,z;则语句:printf(“%d”,z=(x%y,x/y ));的结果是( D )。

A)1 B)0 C)4 D)33、若已定义x 和y 为整型,则表达式:x=1,y=x+3/2的值是( B )。

P56 A)1 B)2C)2.0D)2.5 4、C语言中 ( B )。

P115 A)不能使用 do - while 语句构成循环。

B)do-while 语句, 当 while 语句中的表达式值为零时结束循环。

C)do-while 语句, 当 while 语句中的表达式值为非零时结束循环 D)do-while 语句必须用 break 语句才能退出循环5、设有定义 int a =3;,则执行语句 a+ = a-=a*a 后,变量 a 的值是( C ).P64(a-a*a a = 3-3*3 a = -6 a = a + a a = -6 + (-6) a=-12)A)3 B)0 C)-12 D)9 6、以下程序的输出结果是 ( C )。

p93 # include <stdio.h> main( ) {int a,b,d=241; a=d/100%9; b=(-1)&&(-1);printf ("%d,%d\n",a,b);}A)2 1 B)1,-1 C)2,1 D)2 -17、以下程序的输出结果是 ( D )。

#include <stdio.h> #include <string.h> main( ){char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }求字符串的长度,strlen( )的参数必须是char*A)12B)7C)118、以下的 for 循环( A )。

c语言编写函数笔试题及答案

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. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。

C语言函数题库及答案

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语言习题全集 答案(至函数)

C语言习题全集 答案(至函数)

第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是:。

A. 函数B. 函数和过程C. 超文本过程D. 子程序2.一个C语言程序总是从开始执行。

A. 主过程B. 主函数C. 子程序D.主程序3.C语言的程序一行写不下时,可以。

A. 用逗号换行B. 用分号换行C. 在任意一空格处换行D. 用回车符换行4.以下叙述不正确的是:。

A. 在C程序中,语句之间必须要用分号";"分隔B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C. 在C程序中,无论是整数还是实数都能正确无误地表示D. 在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是。

A. ABCB. abcC. a_bcD. ab.c6.下列字符串是标识符的是:。

A. _HJB. 9_studentC. longD. LINE 17.以下说法中正确的是:。

A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须放在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是:。

A. ‘\2’B. ""C. ‘3’D. ‘\483’9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。

int k,a,b;unsigned long w=5;double x=1.422;A. x%(-3)B. w+=-2C. k=(a=2,b=3,a+b)D. a+=a=+(b=4)*(a=3)10.在C语言中,字符型数据在内存中以形式存放。

A. 原码B. BCD码C. 反码D. ASCII码11.若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是:。

A. 2.500000B. 2.750000C. 3.500000D. 0.00000012.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为:。

C语言程序设计函数练习题及参考答案

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("\nInput 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("\n\nThe shape : %d\n",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\n",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.0。

C语言函数习题及答案

C语言函数习题及答案

}
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语言函数的试题及答案

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语言各章节单元测试题及答案——函数

第5章函数5.1典型考试题剖析5.1.1选择题【例1】下列程序执行后的结果是_______。

#include <stdio.h>f(int a){int b=0;static c=3;a=c++,b++;return(a);}main(){int a=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}A) 3 B) 0 C) 5 D) 4✧考点:变量的作用域。

✧分析:此题函数f中的变量c是一个静态变量。

第一次调用函数时,使用的参数是a,值为2,进入子函数f内,变量b=0,c=3,然后语句“a=c++,b++;”是一个逗号表达式,不是赋值表达式,a被赋的值是c的值,不同逗号表达式的值,所以a=3,此时c的值同时变为4;第二次调用函数,使用的参数是a,值为3,进入子函数内,变量b=0,c=4(这是静态变量的特性)。

✧答案:D【例2】下面程序的输出是_______。

int w=3;fun(int k);main(){int w=10;printf("%d\n",fun(5)*w);}fun(int k){ if (k==0)return(w);return(fun(k-1)*k);}A) 360 B) 3600 C) 1080 D) 1200✧考点:函数的递归调用和全局变量。

✧分析:此题涉及到了函数的递归调用和全局变量的用法,最容易出错的地方是变量w,程序首先定义了全局变量w,并赋了初值为3,然后在主函数中又定义了一个局部变量w,并赋初值为10,在子函数中引用了变量w,一定要认清这个变量是全局变量w的值而不是主函数中局部变量w 的值。

✧答案:B【例3】有以下程序#include <stdio.h>int abc(int u,int v);main(){int a=24,b=16,c;c=abc(a,b);printf("%d\n",c);}int abc(int u,int v){int w;while(v){ w=u%v;u=v;v=w;}return(u);}输出结果为。

c语言函数试题及答案

c语言函数试题及答案

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. 该函数的功能是交换两个整数的值。

它通过指针参数接收两个整数的地址,并在函数内部交换这两个整数的值。

可能存在的问题是,如果传入的参数不是有效的整数地址,或者指针所指向的内存区域不可写,那么将会导致程序错误或崩溃。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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)longC)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("%d,%d", &a, &b);swap( );printf ("a=%d,b=%d\n",a,b);}A) a=5,b=3 B) a=3,b=5 C)5,3 D)3,522. 以下程序运行后的输出结果是【】。

fun(int a, int b){if(a>b) r eturn a;else return b;}main(){int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}A) 3 B) 6 C) 8 D) 1223. 以下程序的运行结果是【】。

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("%d,%d,%d\n",x,y,z);}A) 1,2,3 B) 3,1,2C) 1,3,2 D) 2,3,124. 以下程序运行后的输出结果为【】。

int *f(int *x, int *y){if(*x<*y) return x;else return y;}main(){int a=7,b=8,*p,*q,*r;p=&a, q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}A) 7,8,8 B) 7,8,7C) 8,7,7 D) 8,7,825. 以下程序的正确运行结果是【】。

#inclued<stdio.h>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){static 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,826. 以下程序的功能是计算函数F(x,y,z)=(x+z)/(y-z)+(y+2×z)/(x-2×z)的值,请将程序补充完整。

#include<stdio.h>float f(float x,float y){float value;value= 【1】;return value;}main(){float x,y,z,sum;scanf("%f%f%f",&x,&y,&z);sum=f(x+z,y-z)+f(【2】);printf("sum=%f\n",sum);}【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*z27. 以下程序的功能是根据输入的字母,在屏幕上显示出字符数组中首字符与其相同的字符串,若不存在,则显示“No find,good bye!”,请将程序补充完整。

#include<stdio.h>char PriStr(char ch1){int i=0,j=0;static char *ch2[]={"how are you", "glad to meet you","anything new", "everything isfine","very well,thank you","see you tomorrow"};while(i++<6)if(ch1==【1】){puts(【2】);j=1;}return j;}main(){char ch;printf("\nPleae enter a char:");ch=getchar();ch=PriStr(ch);if(ch==【3】)puts("No find, good bye! ");}【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("%ld",n%10);else printf("%ld",-n%10);i++;【2】;}}main(){long int n;scanf("%ld",&n);printopp(n);printf("\n");}【1】A)n<0&&i==0 B)n<0||i==0 C)n>0&&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。

相关文档
最新文档