函数练习题(C语言)带答案
一、选择题
1.一个完整的c源程序是【】。
A)要由一个主函数或一个以上的非主函数构成
B)由一个且仅由一个主函数和零个以上的非主函数构成
C)要由一个主函数和一个以上的非主函数构成
D)由一个且只有一个主函数或多个非主函数构成
2.以下关于函数的叙述中正确的是【】。
A)C语言程序将从源程序中第一个函数开始执行
A)实参与其对应的形参共用同一段存储空间
B)实参与其对应的形参占用相同的存储空间
C)实参将其地址传递给形参,同时形参也会将该地址传递给实参
D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递
13.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了
一个变量,则该变量【】。
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复制到串tD)求字符串s所占字节数
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);
A)为全局变量,在本程序文件范围内有效
B)为局部变量,只在该函数内有效
C)为局部变量,只在该复合语句中有效
D)定义无效,为非法变量
14.C语言中函数返回值的类型是由【】决定。
A)return语句中的表达式类型
B)调用函数的主调函数类型
C)调用函数时临时
D)定义函数时所指定的函数类型
15. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量 文件中可使用的引用说明是【】。
A)实参与其对应的形参共占存储单元
B)只有当实参与其对应的形参同名时才共占存储单元
C)实参与对应的形参分别占用不同的存储单元
D)实参将数据传递给形参后,立即释放原先占用的存储单元
9.函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。
A)实参将其地址传递给形参,并释放原先占用的存储单元
C)在C语言程序中,函数的定义不能嵌套
D)在C语言程序中,函数的调用可以嵌套
4.在一个C程序中,【】。
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
5.若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】
A)extern static float a;B)float a;
16.定义一个void型函数意味着调用该函数时,函数【】
A)通过return返回一个用户所希望的函数值
B)返回一个系统默认值
C)没有返回值
D)返回一个不确定的值
17.若定义函数float *fun(),贝U函数fun的返回值为【】。
A)floatB)long
C)intD)double
6.以下关于函数叙述中,错误的是【】。
A)函数未被调用时,系统将不为形参分配内存单元
B)实参与形参的个数应相等,且实参与形参的类型必须对应一致
C)当形参是变量时,实参可以是常量、变量或表达式
D)形参可以是常量、变量或表达式
7.若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D)main可作为用户标识符,用以定义任意一个函数
3.以下关于函数的叙述中不正确的是【】。
A)C程序是函数的集合,包括标准库函数数必须在main函数中定义
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=3B) a=3,b=5C)5,3D)3,5
B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C)实参将其值传递给形参,调用结束时形参再将其值回传给实参
D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参
10.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【】。
A)函数的实参和其对应的形参共占同一存储单元
22.以下程序运行后的输出结果是【】。
fun (i nt a, int b)
{
if(a>b)return a;
elsereturn b;
}
main ()
{
int x=3,y=8,z=6,r;
r=fun (fu n(x,y),2*z);
prin tf("%d\n",r);
}
A) 3B) 6C) 8D) 12
A)一个实数B) 一个指向实型变量的指针
C)一个指向实型函数的指针D) 一个实型函数的入口地址
18.C语言规定,程序中各函数之间【】。
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
19.若程序中定义函数
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元
D)函数的形参和实参分别占用不同的存储单元
11.若用数组名作为函数调用的实参,则传递给形参的是【】。
A)数组的首地址B)数组的第一个元素的值
C)数组中全部元素的值D)数组元素的个数
12.若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【】。
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);
C语言练习题(带标准答案)-绝对经典题目不看后悔
C语言练习题(带答案)-绝对经典题目不看后悔————————————————————————————————作者:————————————————————————————————日期:1单选题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 t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
c语言程序基础练习题500道附答案
c语言程序基础练习题500道(附答案)1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D)whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,0122e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f''\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0"D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)MainD)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符 B)定义不合法,s的值不确定C)使s的值包含4个字符 D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
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语言习题带答案
基本语句练习1、若有以下程序段 D#include””void main( ){ int a=2,b=5;Printf(“a=%%d,b=%%d\n”,a,b);}其输出结果是()A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d2、以下程序段 Cfloat a=; printf(“|%6.0f|\n”,a);其输出结果是()A、||B、||C、| 3|D、|3.|3、以下程序段的输出结果是() Cfloat a=; printf(“*%010.2f*\n”,a);A、**B、**C、**D、**4、下面语句 printf(“|%8.5f|\n”,; 的输出结果是() CA、||B、||C、||D、||5、若变量都已经正确说明,则以下程序段: Ca=2; b=3; printf(a>b ”***a=%d”: “###b=%d”,a,b);A、没有正确的输出格式控制B、输出为:***a=2C、输出为:###b=2D、输出为:***a=2###b=36、执行下列程序时输入1234567,程序的运行结果为() B#include””void main( ){int x, y;scanf(“%2d%2ld”,&x,&y);printf(“%d\n”, x+y);}A、17B、46C、15D、97、已知char a; int b; float c; double d; 则表达式a*b+c-d结果为()型。
AA、doubleB、intC、floatD、char8、根据定义和数据的输入方式,输入语句的正确形式是() B已有定义float f1, f2;数据的输入方式:A、scanf(“%f,%f”,&f1,&f2);B、scanf(“%f%f”,&f1,&f2);C、scanf(“%3.2f%2.1f”,&f1,&f2);D、scanf(“%3.2f, %2.1f”,&f1,&f2);9、以下程序的输出结果为() *, *#include””void main( ){printf( “ *%f, %4.3f*\n”, , ;}10、结构化程序流程图中一般包含3种基本结构,在下述结构中不属于其基本结构的是()。
C语言200道练习试题和答案
A)<=
B)=
C)%
D)&&
26.表达式(a=2,3) , a+1的值是【 C 】。
A)0 B)2
C)3
D)4
27.若执行printf("%d\n", strlen("a\n\"\x41"))语句其输 出结果是【 D 】。
A)8 B)7 C)6
D)4
28.在循环语句的循环体中执行break语句, 其作用是【 A 】。 A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行
则输出是【 d 】 A)1234.56 1234 B)1234.57 1235 C)1234.56 1235 D)1234.57 1234
43.如果有
int a, b; scanf(“%d,%d”, &a, &b);语句,
则输入数据时,只可以用【 d 】作为输入的分隔符
A)TAB键 B)空格
C)回车
C)20,10 D)20,20
24.若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是【 B 】。
A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定
25.在以下一组运算符中,优先级最高的运算符是【 C 】
int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678
C语言练习题及答案
综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。
A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A)C)356e39、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。
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.已知三角形的三边长为a,b,c,计算三角形面积的公式为:area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。
试编程从键盘输入a,b,c的值(假设a,b,c的值可以保证其构成一个三角形),计算并输出三角形的面积。
**输入格式要求:"%f,%f,%f" 提示信息:"Input a,b,c:"**输出格式要求:"area = %.2f\n"程序运行示例如下:Input a,b,c:3,4,5area = 6.00答案:#include#includeint main(void){float a, b, c, s, area;printf("Input a,b,c:");scanf("%f,%f,%f", &a, &b, &c);s = (a + b + c) / 2;area = sqrt(s*(s - a)*(s - b)*(s - c));printf("area = %.2f\n", area);return 0;}-----------------12.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:输入1234,分离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。
**要求输入提示信息为:无**要求输入格式为: "%d"**要求输出格式为:"%d"程序运行示例如下:1234 此处为输入4321 此处为输出答案:#includeint main(void){int a, b, c, d,e;scanf("%d",&a);b = a/1000;c = a%1000/100;d = a%100/10;e = a%10;a = e*1000+d*100+c*10+b;printf("%d",a);return 0;}--------------23.有关输入输出问题。
C语言习题练习(附答案)
《高级语言程序设计》习题一.填空题1. 以下条件表达式可计算1+|a|的值,填空完成语句:a>=0 ?(1+a ):( 1-a )2. 函数max 定义的首部为:int max(int x[],int n),该函数完成实现寻找长度为n 的数组x 中的最大元素。
若在主函数中有定义:int c,a[10];并要求函数调用后,变量c 存放数组a 中的最大元素,则函数调用语句应为:(c=max(a,10);)3. 若有int i=5; 则循环语句while(i > = 1) i - -;执行后,i 的值为 (0)。
4. 能正确表示逻辑关系:“0≤a <10”的C 语言表达式是(0<=a && a<10)。
5. 设int a[2][3] = {{2},{3}};则数组元素( a[1][0] )的值为3。
6. 表达式 (int)(3.0/2.0)的值是( 1 )。
7. 有定义: int x=3, y=2; 执行x/=y+1; 语句后x 的值为( 1 ) 。
8. 有定义: int x=2, y=0; 表达式 (!x||y) 的值为( 0 )。
9. 有定义:char str[]= “Hello!”; 则数组str 的长度为( 7 )。
10. 有定义:int i=5; 则循环语句while(i>=1) i=i-2; 执行后变量i 的值为( -1 )。
11. 已知 ‘A ’~ ‘Z ’ 的ASCII 码为65~90,当执行int x= ‘D ’+5; 语句后x 的值为( 73 )。
12. 有定义int a[6]={1,2,3,4,5,6},*p=a; 则*(p+2)的值为( 3 ),*(++P )的值为( 2 )。
13. 如果在调用一个函数过程中,又调用另一个函数,称为函数的( 嵌套 )调用。
如果在调用一个函数的过程中又直接或间接地调用该函数本身,称为函数的( 递归 )调用。
(完整版)C语言练习题(谭浩强第四版)..附有答案
一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:( )A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:( )A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B。
C程序的注释可以写在语句的后面C。
函数是C程序的基本单位D。
主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C。
整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int〈=long int 〈=float〈doubleB、char=int<long int 〈=float〈doubleC、char〈int<long int=float=doubleD、char=int=<long int <=float<double10、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n",c2-c1,c2-‘a’+’A');则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定11、以下合法的赋值语句是:( )A、x=y=100B、d-—;C、x + yD、c = int(a+b);12、在以下一组运算符中,优先级最高的是:()A、〈=B、==C、%D、&&13、下列能正确表示a≥10或a≤0的关系表达式是:()A、a〉=10 or a〈=0B、a<=10 || a>=0C、a〉=10 || a〈=0D、a〉=10 && a<=014、下列只有当整数x为奇数时,其值为“真"的表达式是:( )A、x%2==0B、!(x%2==0)C、(x—x/2*2)==0D、!(x%2)15、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a〈=10 || a〉=15)C、a>10 && a〈15D、!(a<=10) && !(a>=15)16、已知x=43, ch='A',y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”17、表达式17%4 /8的值为:( )A、0B、1C、2D、318、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句 B。
