计算机等级考试复习题7.docx
《计算机等级考试复习题7.docx》由会员分享,可在线阅读,更多相关《计算机等级考试复习题7.docx(12页珍藏版)》请在冰豆网上搜索。
计算机等级考试复习题7
计算机等级考试复习题(7)
1.以下关于return语句叙述中正确的是()。
[单选题]*
一个自定义函数中必须有一条return语句
一个自定义函数中可以根据不同情况设置多条return语句(正确答案)
定义void类型的函数中可以有带返回值的return语句
没有return语句的自定义函数在执行结束时不能返回到调用处
2.有以下程序:
#include
doublef(intn){
inti;
doubles;
s=1.0;
for(i=1;i<=n;i++)
s+=1.0/i;
returns;
}
main(){
inti,m=3;
doublea=0.0;
for(i=0;i a+=f(i);
printf("%f\n",a);
}
程序的输出结果是()。
[单选题]*
5.500000(正确答案)
3.000000
4.000000
8.25
3.有以下程序
#include
intfun(intx)
{
intp;
if(x==0||x==1)
return(3);.
p=x-fun(x-2):
returnp;
}
main()
{
printf("%d\n",fun(7));
}
执行后的输出结果是()。
[单选题]*
7
0
3
2(正确答案)
4.有以下程序
#include
voidf(intx){
if(x>=10) { printf("%d-",x%10); f(x/10);}
else printf("%d",x);
}
main(){
intz=123456;
f(z);
}
程序运行后的输出结果是()。
[单选题]*
1-2-3-4-5-6
6-5-4-3-2-1(正确答案)
1-2-3-4-5-6-
6-5-4-3-2-1-
5.有以下程序
#include
intfun(intn)
{
inta;
if(n==1)return1;
a=n+fun(n-1);
return(a);
}
main()
{
printf("%d\n",fun(5));
}
程序的输出结果是()。
[单选题]*
14
9
15(正确答案)
10
6.有如下程序
#include
voidconvert(charch)
{
if(ch<'D')convert(ch+1);
printf("%c",ch);
}
main()
{
convert('A');printf("\n");
}
程序运行后的输出结果是()。
[单选题]*
A
ABCD
ABCDDCBA
DCBA(正确答案)
7.有以下程序
#include
main()
{
intfindnax(int,int,int),m;
……
m=findmax(a,b,c);
……
}
intfindmax(intx,inty,intz){……}
则以下叙述正确的是()。
[单选题]*
在main函数中定义了findmax函数
在main函数内、外重复定义了findmax函数
在main函数中两次调用了findmax函数
在main函数中声明了findmax函数(正确答案)
8.以下叙述中正确的是()。
[单选题]*
如果函数带有参数,就不能调用自己
函数体中的语句不能出现对自己的调用
函数名代表该函数的入口地址(正确答案)
所有函数均不能接受函数名作为实参传入
9.下列叙述中正确的是()。
[单选题]*
每个C程序文件中都必须要有一个main函数
在C程序中main函数的位置是固定的
C程序中所有函数之间都可以相互调用
在C程序的函数中不能定义另一个函数(正确答案)
10.以下叙述中正确的是()。
[单选题]*
任何情况下都不能用函数名作为实参
函数的递归调用不需要额外开销,所以效率很高
函数既可以直接调用自己,也可以间接调用自己(正确答案)
简单递归不需要明确的结束递归的条件
11.有以下程序
#include.
intm1(intx,inty)
{ returnx<=y?
x:
y;}
intm2(intx,inty)
{ returnx<=y?
y:
x;}
intfun(inta,intb)
{ returna+b;}
main()
{
intx=2,y=3,z=1;
printf("%d\n",fun(ml(x,y),m2(y,z)));
}
程序的运行结果是()。
[单选题]*
3
4
5(正确答案)
6
12.有如下程序:
#include
intfun(inta,intb)
{
intt;
t=a;a=b;b=t;
}
main()
{
intc[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2)
fun(c[i],c[i+1]);
for(i=0;i<10;i++)
printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是()。
[单选题]*
1,2,3,4,5,6,7,8,9,0(正确答案)
0,9,8,7,6,5,4,3,2,1
1234567890
0987654321
13.以下叙述中错误的是()。
[单选题]*
函数的return语句中可以没有表达式
用户定义的函数中若没有return语句,则应当定义函数为void类型
用户定义的函数中可以没有return语句
用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值(正确答案)
14.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确()。
[单选题]*
函数的形参和实参分别占用不同的存储单元(正确答案)
同名的实参和形参占同一个存储单元
形参只是形式上的存在,不占用具体存储单元
函数的实参和其对应的形参共占同一存储单元
15. 以下关于函数的叙述中正确的是()。
[单选题]*
函数必须要有返回值
函数形参的类型与返回值的类型无关(正确答案)
函数调用必须传递实参
函数必须要有形参
16.设有函数定义:
voidsub(intk,charch){……}
则以下对函数sub的调用语句中,正确的是()。
[单选题]*
sub(4,"a");
n=sub(3,'a');
sub(2,'97');
sub(1,97);(正确答案)
17.关于C语言函数说明的位置,以下叙述正确的是()。
[单选题]*
在函数说明之后对该函数进行调用,编译时不会出现错误信息(正确答案)
函数说明只能出现在源程序的开头位置,否则编译时会出现错误信息
函数说明只是为了美观和编译时检查参数类型是否一致,可以写也可以不写
函数说明可以出现在源程序的任意位置,在程序的所有位置对该函数的调用,编译时都不会出现错误信息
18.有以下程序
#include
intnew_div(doublea,doubleb)
{returna/b+0.5;}
main()
{printf("%d",new_div(7.8,3.1));}
程序运行后的输出结果是()。
[单选题]*
0
1
2
3(正确答案)
19.若有以下程序:
#include
int*f(int*s,int*t)
{
intk;
if(*s<*t){k=*s;*s=*t;*t=k;}
returns;
}
main()
{
inti=3,j=5,*p=&i,*q=&j,*r;
r=f(p,q);
printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);
}
则程序的输出结果是()。
[单选题]*
3,5,5,3,5
3,5,3,5,5
5,3,3,5,5
5,3,5,3,5(正确答案)
20.有以下程序
#include
intfuna(inta,intb){returna+b;}
intfunb(inta,intb){returna-b;}
intsss(int(*t)(),intx,inty){return((*t)(x,y));}
main(){
intx;
x=sss(funa,9,3);
x+=sss(funb,8,3);
printf("%d\n",x);
}
程序运行后的输出结果是()。
[单选题]*
17(正确答案)
24
23
22
21.若有以下程序
#include
intf(intm){
staticintn=0;
inta=2;
n++;
a++;
returnn+m+a;
}
main(){
intk;
for(k=0;k<4;k++)
print("%d",f(k));
}
程序运行的输出结果是()。
[单选题]*
3,5,7,9,
4,7,10,13
4,6,8,10(正确答案)
4,5,6,7,
22.有以下程序
#include
intfun(intn)
{
staticintt=1;
inti=1;
for(;i<=n;i++)t*=i;
returnt;
}
main()
{
intt=1,i;
for(i=2;i<4;i++)
t+=fun(i);
printf("%d\n",t);
}
程序的运行结果是()。
[单选题]*
11
8
15(正确答案)
4
23.有以下程序
#include
intb=2;
intfun(int*k)
{
b=*k+b;
return(b);
}
main()
{
inta[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++){
b=fun(&a[i])+b;
printf("%d",b);
}
printf("\n");
}
程序运行后的输出结果是()。
[单选题]*
1016
810
1028(正确答案)
1012