C语言_函数习题
(完整版)C语言试题库(完整版)
C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、 C程序的每行中只能写一条语句。
C、 C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。
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语言函数习题
习题、选择题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语言程序设计(函数的定义及调用)习题与答案
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语言函数练习题一、选择题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语言 练习题(函数)
一、选择题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语言第7章函数练习题
4. C语言程序中,当函数调用时( )。 A. 实参和形参各占一个独立的存储单元 B. 实参和形参共用一个存储单元 C. 可以由用户指定是否共用存储单元 D. 计算机系统自动确定是否共用存储单元
fun(int x,int y,int z)
{ z=x*x+y*y;}
main()
{
int a=31;
fun(5,2,a);
printf("%d",a);
}
A.0
B.29
30.下列程序执行后的输出结果是( )。
voidfunc1(int i);
voidfunc2(int i);
charst[]="hello,friend!";
printf("%d\n",x);
}
上面程序的输出结果是( )。
A.720
B.120
C.24
39.下面程序的输出是( )。
main()
{
intt=1;
fun(fun(t));
}
fun(inth)
{
staticinta[3]={1,2,3};
intk;
for(k=0;k<3;k++) a[k]+=a[k]-h;
B. 不同函数中,可以使用相同名字的变量
C. 形式参数是局部变量
D. 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效
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.在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,10B、10,20,30C、456,567,678D、678,567,4568.下述函数定义形式正确的是()。
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语言习题(7)
C语言习题(第7章函数)一.选择题1.以下说法正确的是________。
A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.以下正确的说法是___________。
A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
3.以下正确的函数定义是___________。
A)double fun(int x, int y); B)int fun(int x,y){ z=x+y ; return z ; } { int z ; return 3;}C)double fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ; z=x+y;z=x+y ; return z ; } return z ; }4.C语言中,简单变量做实参和形参时,以下正确的说法是___________。
A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元5.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是___________。
A)地址传递B)单向值传递D)由用户指定传递方式6.C语言规定,函数返回值的类型是由___________决定的。
A)return语句中的表达式类型B)调用该函数时的主调函数类型C)调用该函数时由系统临时D)在定义函数时所指定的函数类型7.以下正确的描述是___________。
C语言全部章节习题集(参考答案)
选择结构答案
一、单项选择题
1.B 2.A 3.D 4.C 5.D 6.B 7.C
二、填空题
1. 5 5 4
5 5 4
3 3 4
2. 4 0
3. VeryGood
Good
VeryGood
A. 8 B. 4 C. 2 D. 出错
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( D )。
A. 4 B. 3 C. 2 D. 1
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
{ float a,b,temp;
printf("input a and b:");
scanf("%d,%d",&a ,&b);
temp = a; a = b; b = temp;
printf("a=%d , b=%d\n", a , b);
scanf(“%f”,&t);
if(t>=90) ch=’A’;
else if(t>=80) ch=’B’;
24、下列不正确的转义字符是( C )。
A. \\ B. \' C. 074 D. \0
二、填空题:
1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。
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语言函数练习题一、选择题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语言习题--输入输出函数1. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A)100<空格>765.12<回车> B)i=100,f=765.12<回车>C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车>2. 以下程序的输出结果是main( ){int a=12,b=12;printf("%d %d\n",--a,++b);}A)10 10 B)12 12 C)11 10 D)11 133. 以下程序运行后,输出结果是main( ){char *s="abcde";s+=2;printf("%ld\n",s);}A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错4. 以下程序输出结果是main( ){int m=5;if(m++>5)printf("%d\n",m);else printf("%d\n",m--);}A)7 B)6C)5 D)45. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为if(a<b)if(c<d)x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A)1 B)2 C)3 D)66. 下面能正确进行字符串赋值操作的语句是A)char s[5]={"ABCDE"}; B)char s[5]={'A'、'B'、'C'、'D'、'E'};C) char *s;s="ABCDEF"; D)char *s; scanf("%s",s);7. 以下程序运行后,输出结果是#include<stdio.h>#define PT 5.5#define S(x) PT*x*xmain( ){int a=1,b=2;printf("%4.1f\n",S(a+b))}A)49.5 B)9.5 C)22.0 D)45.08. 以下程序的输出结果是# include <stdio.h>main(){ printf("%d\n",NULL); }A) 不确定的(因变量无定义) B)0 C)-1 D)19. 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是A)3 B)0 C)9 D)-1210. 以下程序的输出结果是# include <stdio.h># include <string.h>main(){ char str[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str)); }A) 6 B) 7 C) 11 D) 1211. 以下程序的输出结果是# include <stdio.h>main(){ int a=2,c=5;printf("a=%%d,b=%%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d12. 设有static char str[ ]="Beijing";则执行printf("%d\n",strlen(strcpy(str,"China")));后的输出结果为A) 5 B) 7 C) 12 D) 1413. 若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定的值14. 请读程序片段(字符串内没有空格):printf("%d\n",strlen("ATS\n012\1\\"));上面程序片段的输出结果是A) 11 B) 10 C) 9 D) 815. 已知字母A的ASCII码为十进制的65,下面程序的输出是main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,CC) C,D D) 不确定的值16. 若执行下面的程序时从键盘上输入3和4,则输出是A) 14 B) 16 C) 18 D) 20 main(){ int a,b,s;scanf("%d %d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}17. 下面的程序main(){ int x=3,y=0,z=0;if(x=y+z)printf("* * * *");else printf("# # # #");}A) 有语法错误不能通过编译B) 输出* * * *。
c语言for函数练习题
c语言for函数练习题C语言是一门广泛应用于计算机科学领域的编程语言,而其中的for循环函数是一种十分重要且常用的语法结构。
在学习C语言的过程中,我们经常会遇到一些需要使用for循环函数来解决的练习题。
本文将通过一些具体的练习题来帮助读者更好地理解和掌握for循环函数的使用方法。
1. 计算1到100的和首先,我们来看一个简单的练习题:计算1到100之间所有整数的和。
这个问题可以通过使用for循环函数来解决。
我们可以先定义一个变量sum,用来保存累加的结果,然后使用for循环函数从1到100进行迭代,并将每次迭代的值加到sum中。
最后,输出sum的值即可。
2. 判断素数接下来,让我们来解决一个稍微复杂一些的练习题:判断一个数是否为素数。
素数是指只能被1和自身整除的数。
我们可以使用for循环函数来遍历从2到这个数的平方根之间的所有整数,判断是否存在能够整除这个数的因子。
如果存在,那么这个数就不是素数;如果不存在,那么这个数就是素数。
3. 输出九九乘法表九九乘法表是一个经典的练习题,它可以帮助我们熟悉for循环函数的嵌套使用。
我们可以使用两个嵌套的for循环函数,外层循环控制行数,内层循环控制列数。
在每次内层循环结束后,我们可以输出一个换行符,以实现每一行的换行显示。
4. 找出数组中的最大值接下来,我们来解决一个与数组相关的练习题:找出一个数组中的最大值。
我们可以使用for循环函数来遍历整个数组,同时使用一个变量max来保存当前找到的最大值。
在每次循环中,我们将当前元素与max进行比较,如果当前元素大于max,则更新max的值。
最终,当循环结束时,max的值就是数组中的最大值。
5. 统计字符串中某个字符出现的次数最后,让我们来解决一个与字符串相关的练习题:统计一个字符串中某个字符出现的次数。
我们可以使用for循环函数遍历整个字符串,同时使用一个变量count来记录字符出现的次数。
在每次循环中,我们将当前字符与目标字符进行比较,如果相等,则将count加一。
c语言函数习题
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语言第七章 函数习题
第七章函数一、选择题1、以下关于函数的叙述中正确的是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数2、设函数fun的定义形式为void fun(char ch,float x) { … }则以下对函数fun的调用语句中,正确的是A)fun("abc",3.0); B)t=fun('D',16.5);C)fun('65',2.8); D)fun(32,32);3、有以下程序int f1(int x,int y){return x>y?x:y;}int f2(int x,int y){return x>y?y:x;}main(){ int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g); }程序运行后的输出结果是A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,74、有以下程序#define P 3#define F(int x) { return (P*x*x);}main(){ printf("%d\n",F(3+5));}程序运行后的输出结果是A)192 B)29 C)25 D)编译出错5、若程序中定义了以下函数double myadd(double a,double B){ return(a+B);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A)double myadd(double a,B); B)double myadd(double,double);C)double myadd(double b,double A); D)double myadd(double x,double y);6、有以下程序char fun(char x ,char y){ if(x < y) return x;return y;}main(){ int a=’9’,b=’8’,c=’7’;printf("%c\n",fun(fun(a,b),fun(b,c))); }程序的执行结果是A)函数调用出错 B)8 C)9 D)77、有以下程序void f(int v,int w){ int t;t=v;v=w;w=t;}main(){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,18、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A) 调用可以作为独立的语句存在 B) 调用可以作为一个函数的实参C) 调用可以出现在表达式中 D) 调用可以作为一个函数的形参9、有以下函数定义:void fun(int n,double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A)fun(int y,double m); B) k=fun(10,12.5);C)fun(x,n); D) vold fun(n,x);10、有以下程序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);printf("%d\n",r);}程序运行后的输出结果是A) 3 B) 6 C) 8 D) 1211、在一个C程序中A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置12、有以下程序int f1(int x,int y){ return x>y?x:y; }int f2(int x,int y){ return x>y?y:x; }main(){ int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,413、有如下程序void f(int x,int y){ int t;if(x < y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,514、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是A) void B) int C) float D) double15、有以下程序float fun(int x,int y){ return(x+y); }main(){ int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A) 编译出错 B) 9 C) 21 D) 9.016、若有以下程序#includevoid f(int n);main(){ void f(int n);f(5);}void f(int n){ printf("%d\n",n); }则以下叙述中不正确的是A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D)函数f无返回值,所以可用void将其类型定义为无值型17、以下函数值的类型是fun(float x){ float y;y= 3*x-4;return y;}A)int B)不确定 C)void D)float18、以下所列的各函数首部中,正确的是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)19、以下程序的输出结果是fun(int x, int y, int z){ z=x*x+y*y; }main(){ int a=31;fun(5,2,a);printf("%d",a);}A)0 B)29 C)31 D)无定值20、有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3 B) 4 C) 5 D) 有语法错21、有如下程序int func(int a,int b){ return(a+b);}main(){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出的结果是A) 12 B) 13 C) 14 D) 1522、以下叙述中不正确的是A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效23、有以下程序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);}输出结果是A)30,20,10 B)10,20,30 C) 456,567,678 D) 678,567,45624、有以下程序#include "stdio.h"int abc(int u,intv);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;}输出结果是A)6 B)7 C)8 D)925、以下说法中正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分26、请读程序:#includefunc( int a, int b){ int c;c=a+b;return c;}main(){ int x=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf("%d\n",r);}上面程序的输出结果是A)11 B)20 C)21 D)31二、填空题1、有以下程序int sub(int n) {return(n/10+n%10); }main(){ int x,y;scanf("%d",&x);y=sub(sub(sub(x)));printf("%d\n",y);}若运行时输入:1234<回车>,程序的输出结果是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数习题
1.以下函数值的类型是________。
fun(float x)
{ float y;
y=3*x-4;
return y;
}
A)int B)不确定 C)void D)float
正确答案:A(知识点:函数的定义)
试题分析:在函数定义时,函数名前没有函数类型,则默认函数类型为int类型。
2.有如下函数调用语句:
fun(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是________。
A)3 B)4 C)5 D)有语法错
正确答案:A(知识点:函数的调用)
试题分析:在该函数调用中,含有的实参个数是3个。
其中,第二个实参是rec2+rec3,是一个算术表达式,第三个实参是(rec4,rec5),是一个逗号表达式。
如果实参是表达式,则首先计算表达式的结果,再将表达式的值传递给形参。
3.请在以下程序第一行的填空处填写适当内容,使程序能正确运行。
________ (double,double)
main()
{ double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{return(a>b?a:b);}
正确答案:double max(知识点:函数的声明)
试题分析:当被调用的函数定义处在函数调用后且不为int类型时,在函数调用前必须对被调用函数进行声明。
对函数进行声明有下列三种形式:
(1)类型名函数名(类型1 形参1,类型2 形参2,…,类型n 形参n);
(2)类型名函数名(类型1,类型2,…,类型n);
(3)类型名函数名();
4.以下程序的输出结果是________。
t(int x,int y,int cp,int dp)
{ cp=x*x+y*y;
dp=x*x-y*y; }
main()
{ int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d %d \n",c,d); }
正确答案:5 6(知识点:函数的调用、参数传递)
试题分析:当执行t(a,b,c,d);调用函数t时,将实参a、b、c、d 的值传递给形参x、y、cp、dp,在函数t中对cp、dp进行计算,改变了形参cp、dp的值,但并没有改变对应实参c、d的值(即形参的值不带回给实参),因此返回后,实参c、d的值不变。
5.有以下函数定义:
void fun(int n,double x) {…}
若以下选项中的变量都已经正确定义且赋值,则对函数fun的正确调用语句是________。
A)fun(int y,double m); B)k=fun(10,12.5);
C)fun(x,n); D)void fun(n,x);
正确答案:C(知识点:函数的调用)
试题分析:当函数类型为void时,函数不返回值,函数调用只能以函数语句的形式出现,因此,选项B显然是不对的。
在函数调用时,只须给出函数名和实际参数,不能再给出函数类型和参数类型,所以选项A和选项D都不对。
正确的选项是C。
6.有以下程序:
int f(int n)
{ if(n= =1) return 1;
else return f(n-1)+1;
}
{ int i,j=0;
for(i=1;i<3;i++) j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是__B______。
A)4 B) 3 C)2 D)1
正确答案:B(知识点:函数的递归调用)
试题分析:在函数f中有return f(n-1)+1,因此,此函数调用为递归调用。
递归函数f的功能可用递归式表示如下:
主函数中j的值是f(1)与f(2)之和,显然,f(1)=1,f(2)=2,因此,j的值为3。
7.以下程序运行后,输出结果是_____84___。
int d=1;
fun (int p)
{
int d=5;
d+=p++;
printf("%d",d);
}
{
int a=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84 B)99 C)95 D)44
正确答案:A(知识点:全局变量和局部变量)
试题分析:函数main()中用到的是全局变量d,而函数fun()中用到的是其内部定义的局部变量d。
在函数fun()中,表达式p++的值为3,执行d+=p++;后d的值为8(即5+3),函数main()中表达式a++的值为3,执行d+=a++;后d的值为4(即1+3)。
8.以下程序的输出结果是_D_______。
int f()
{
static int i=0;
int s=1;
s+=i;
i++;
return s;
}
{
int i,a=0;
for(i=0;i<5;i++)
a+=f();
printf("%d\n",a);
}
A)20 B)24 C)25 D)15
正确答案:D(知识点:动态变量和静态变量)
试题分析:在主函数main()中通过循环对函数f()调用了5次,由于s动态局部变量每次进入函数f()后,s的初值都是1,而i是静态局部变量,第一次进入函数f()后,i的初值都是0,以后每次的初值是函数f()上次调用完成后的i值(即i是有记忆的)。
主函数main()中的a是将每次调用后的函数值(即s的值)相加,其值为15。
9.在C语句中,形参的默认存储类型是________。
A)auto B)register
C)static D)extern
正确答案:A(知识点:动态变量和静态变量)
试题分析:在C语句中,形参的默认存储类型是auto。
10.在C语句中,函数的隐含存储类型是________。
A)auto B)static
C)extern D)无存储类别
正确答案:C(知识点:内部函数和外部函数)
试题分析:在C语句中,函数的隐含存储类型是extern,即外部函数。