c语言试题及答案.docx
《c语言试题及答案.docx》由会员分享,可在线阅读,更多相关《c语言试题及答案.docx(8页珍藏版)》请在冰豆网上搜索。
c语言试题及答案
1、以下正确的说法是(B)
(A)用户若需要调用标准库函数,调用前必须重新定义
(B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义
(C)系统根本不允许用户重新定义标准库函数
(D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
2、以下正确的函数声明形式是(A)
(A)doublefun(intx,inty)
(B)doublefun(intx;inty)
(C)doublefun(intx,inty);
(D)doublefun(intx,y);
3、以下正确的函数形式是(D)
(A)doublefun(intx,inty){z=x+y;returnz;}
(B)fun(intx,y){intz;returnz;}
(C)fun(x,y){intx,y;doublez;z=x+y;returnz;}
(D)doublefun(intx,inty){doublez;z=x+y;returnz;}
4、以下正确的说法是(A)
在C语言中
(A)实参和与其对应的形参各占用独立的存储单元
(B)实参和与其对应的形参共占用一个存储单元
(C)只有当实参和与其对应的形参同名时才共占用存储单元
(D)形参是虚拟的,不占用存储单元
5、若调用一个函数,且此函数中没有return语句,则正确的说法是(A)
该函数
(A)没有返回值
(B)返回若干个系统默认值
(C)能返回一个用户所希望的函数值
(D)返回一个不确定的值
6、以下不正确的说法是(B)
C语言规定
(A)实参可以是常量、变量和表达式
(B)形参可以是常量、变量和表达式
(C)实参可以为任意类型
(D)形参应与其对应的实参类型一致
7、以下正确的说法是(C)
(A)定义函数时,形参的类型说明可以放在函数体内
(B)return后边的值不能为表达式
(C)如果函数值的类型与返回值类型不一致,以函数值类型为准
(D)如果形参与实参的类型不一致,以实参类型为准
8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)
(A)地址传递
(B)单向值传递
(C)由实参传给形参,再由形参传回给实参
(D)由用户指定传递方式
9、以下程序有语法性错误,有关错误原因的正确说法是(C)
voidmain()
{
intG=5,k;
voidprt_char();
......
k=prt_char(G);
......
}
(A)语句voidprt_char();有错,它是函数调用语句,不能用void说明
(B)变量名不能使用大写字母
(C)函数说明和函数调用之间有矛盾
(D)函数名不能使用下划线
10、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)
(A)float型
(B)int型
(C)long型
(D)double型
11、C语言规定,函数返回值的类型是由(D)
(A)return语句中的表达式类型所决定
(B)调用该函数时的主调函数类型所决定
(C)调用该函数时系统临时决定
(D)在定义该函数时所指定的函数类型所决定
12、下面函数调用语句含有实参的个数为(B)
func((exp1,exp2),(exp3,exp4,exp5));
(A)1
(B)2
(C)4
(D)5
13、以下错误的描述是(D)
函数调用可以
(A)出现在执行语句中
(B)出现在一个表达式中
(C)做为一个函数的实参
(D)做为一个函数的形参
14、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
①(B)②(C)
#include
#include
floatf(float,float);
voidmain()
{
floatx,y,z,sum;
scanf("%f%f%f",&x,&y,&z);
sum=f(①)+f(②);
printf("sum=%f\n",sum);
}
floatf(floata,floatb)
{
floatvalue;
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
15、以下正确的描述是(B)
在C语言中
(A)函数的定义可以嵌套,但函数的调用不可以嵌套
(B)函数的定义不可以嵌套,但函数的调用可以嵌套
(C)函数的定义和函数的调用均不可以嵌套
(D)函数的定义和函数的调用均可以嵌套
16、以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
请选择填空。
①(B)②(A)
sub(intk,intn)
{
inta1,a2;
a2=①;
a1=k-②;
if((K%3==0&&a2==5)||(k%3==0&&a1==5))
{
printf("%d",k);
n++;
returnn;
}
elsereturn-1;
}
voidmain()
{
intn=0,k,m;
for(k=10;k<=99;k++)
{
m=sub(k,n);
if(m!
=-1)n=m;
}
printf("\nn=%d",n);
}
①(A)k*10
(B)k%10
(C)k/10
(D)k*10%10
②(A)a2*10
(B)a2
(C)a2/10
(D)a2%10
二、填空题
17、C语言规定,可执行程序的开始执行点是___main函数_____。
18、在C语言中,一个函数一般由两个部分组成,他们是__函数名______和___函数体_____。
19、若输入的值是-125,以下程序的运行结果是_-125_=5*5*5______。
#include
#include
voidfun(intn)
{
intk,r;
for(k=2;k<=sqrt(n);k++)
{
r=n%k;
while(r==0)
{
printf("%d",k);
n=n/k;
if(n>1)printf("*");
r=n%k;
}
}
if(n!
=1)printf("%d\n",n);
}
voidmain()
{
intn;
scanf("%d",&n);
printf("%d=",n);
if(n<0)printf("-");
n=fabs(n);
fun(n);
}
20、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是__voidadd(floata,floatb)______;改正后为___floatadd(floata,floatb)_____。
voidadd(floata,floatb)
{
floatc;
c=a+b;
returnc;
}
21、以下程序的运行结果是__i=7,j=6,x=7i=2,j=7,x=5______。
voidfun(inti,intj)
{
intx=7;
pirntf("i=%d;j=%d;x=%d\n",i,j,x);
}
voidmain()
{
inti=2,x=5,j=7;
fun(j,6);
printf("i=%d;j=%d;x=%d\n",i,j,x);
}
22、以下程序的运行结果是___111_____。
voidincrement()
{
intx=0;
x+=1;
printf("%d",x);
}
voidmain()
{
increment();
increment();
increment();
}
23、以下程序的运行结果是___2_____。
max(intx,inty)
{
intz;
z=(x>y)?
x:
y;
return(z);
}
voidmain()
{
inta=1,b=2,c;
c=max(a,b);
printf("maxis%d\n",c);
}