二级C语言112真题无答案.docx
《二级C语言112真题无答案.docx》由会员分享,可在线阅读,更多相关《二级C语言112真题无答案.docx(17页珍藏版)》请在冰豆网上搜索。
二级C语言112真题无答案
二级C语言-112
(总分100,考试时间90分钟)
一、选择题
1.若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。
A.sqrt(fabs(pow(n,x)+exp(x)))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(abs(n^x+e^x))
D.sqrt(fabs(pow(x,n)+exp(x)))
2.以下叙述中错误的是______。
A.可以给指针变量赋一个整数作为地址值
B.函数可以返回地址值
C.改变函数形参的值,不会改变对应实参的值
D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
3.有以下程序:
#include<stdio.h>
inta=4;
intf(intn)
{intt=0;staticinta=5;
if(n%2){inta=6;t+=a++;}
else{inta=7;t+=a++;}
returnt+a++;
{
main()
{ints=a,i=0;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.36B.24
C.32D.28
4.有以下程序:
#include<stdio.h>
intf(intn)
{intt=0,a=5;
if(n/2){inta=6;t+=a++;
else{inta=7;t+=a++;}
returnt+a++;
main()
{ints=0,i=0;
for(;i<2;i++)s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.28B.24
C.32D.36
5.若有以下程序:
#include<stdio.h>
inta=2;
intf(intm)
{staticintn;
n=0;n++;a++;
returnn+m+a;
main()
{intk;
for(k=0;k<4;k++)printf("%d,",f(k));
}
则程序的输出结果是______。
A.4,5,6,7,B.4,7,10,13,
C.4,6,8,10,D.3,5,7,9,
6.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。
A.丙数的形参和实参分别占用不同的存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的实参和其对应的形参共占同一存储单元
7.以下叙述中错误的是______。
A.C程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
8.以下程序中函数f的功能是:
当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。
#include<stdio.h>
voidf(intb[],intn,intflag)
{
inti,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(flag?
b[i]>b[j]:
b[i]<b[j])
{t=b[i];b[i]=b[j];b[j]=t;}
}
main()
{
inta[10]={5,4,3,2,1,6,7,8,9,10},i;
f(&a[2],5,0);
f(a,5,1);
for(i=0;i<10;i++)
printf("%d,",a[i]);
程序运行后的输出结果是______。
A.1,2,3,4,5,6,7,8,9,10,
B.3,4,5,6,7,2,1,8,9,10,
C.5,4,3,2,1,6,7,8,9,10,
D.10,9,8,7,6,5,4,3,2,1,
9.以下关于return语句的叙述中正确的是______。
A.一个自定义函数中必须有一条return语句
B.一个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
10.已定义以下函数:
intfun(int*p)
{return*p;}
fun函数返回值是______。
A.一个整数B.不确定的值
C.形参p中存放的值D.形参p的地址值
11.以下叙述中错误的是______。
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应当定义函数为void类型
D.函数的return语句中可以没有表达式
12.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是______。
A.main(){...x=fun(2,10);...}floatfun(inta,intB){...}B.floatfun(inta,int
B.t{...}main(){...x=fun(i,j);...}
C.floatfun(int,int);main(){...x=fun(2,10);...}floatfun(inta,intbB){...}
D.main(){floatfun(inti,intj);...x=fun(i,j);...floatfun(inta,intB){...}
13.有以下程序:
#include<stdio.h>
voidfun(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");
}
程序的运行结果是______。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
14.有以下程序:
#include<stdio.h>
doublef(doublex);
main()
{doublea=0;inti;
for(i=0;i<30;i+=10)a+=f((double)i);
printf("%3.0f\n",a);
}
doublef(doublex)
{returnx*x+1;}
程序运行后的输出结果是______。
A.500B.401
C.503D.1404
15.有以下程序:
#include<stdio.h>
main()
{intm=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
程序运行后的输出结果是______。
A.2,1,1,2B.1,2,1,2
C.2,1,2,1D.1,2,2,1
16.有以下程序:
#include<stdio.h>
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A.6,2,3,4,5,B.2,2,3,4,5,
C.1,2,3,4,5,D.2,3,4,5,6,
17.有以下程序:
#include<stdio.h>
voidfun(int*a,int*b)
{int*c;
c=a;a=b;b=c;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
fun(p,q);printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q);
}
程序运行后的输出结果是______。
A.3,5,3,5B.3,5,5,3
C.5,3,3,5D.5,3,5,3
18.有以下程序:
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是______。
A.1,2,3,4,9,8,7,6,5,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,5,6,7,8,9,0,
19.若有以下程序:
#include<stdio.h>
voidsp(int*a)
{intb=2;
*a=*a*2;printf("%d,",*a);
a=&b;*a=*a*2;printf("%d,",*a);
}
main()
{intk=3;
sp(&k);printf("%d\n",k);
}
则程序的输出结果是______。
A.6,12,12B.6,4,3
C.6,4,6D.9,4,9
20.若有以下程序:
#include<stdio.h>
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);;
}
则程序的输出结果是______。
A.5,3,3,5,5B.3,5,5,3,5
C.3,5,3,5,5D.5,3,5,3,5
21.有以下程序:
#include<stdio.h>
intfuna(inta,intB){returna+b;}
intfunb(inta,intB){returna-b;}
intsss(int(*t)(),intx,inty){retllrn((*t)(x,y));}
main()
{intx;
x=sss(funa,9,3);x+=sss(funb,8,3);printf("%d\n",x);
}
程序运行后的输出结果是______。
A.24B.23
C.17D.22
22.有以下程序:
#include<stdio.h>
voidfun(inta,intb,intc)
{a=b;b=c;c=a;}
main()
{inta=10,b=20,c=30;
fun(a,b,c);
printf("%d,%d,%d\n",c,b,a);
}
程序运行后的输出结果是______。
A.10,20,30B.30,20,10
C.20,30,10D.0,0,0
23.若有以下函数首部:
intfun(doublex[10],int*n)
则下面针对此函数的函数声明语句中正确的是______。
A.intfun(double,int);
B.intfun(double*,int*);
C.intfun(double*x,intn);
D.intfun(doublex,int*n);
24.有以下程序:
#include<stdio.h>
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf("%d\n",m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是______。
A.8B.2
C.4D.1
25.有以下程序:
#include<stdio.h>
intfun(intx,inty)
{if(x!
=y)return((x+y)/2);
elsereturn(x);
}
main()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
A.6B.3
C.8D.12
26.有以下程序:
#include<stdio.h>
intf(intx,inty)
{return((y-x)*x);}
main()
{inta=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序运行后的输出结果是______。
A.7B.10
C.8D.9
27.以下叙述中正确的是______。
A.如果函数带有参数,就不能调用自己
B.所有函数均不能接受函数名作为实参传入
C.函数体中的语句不能出现对自己的调用
D.函数名代表该函数的入口地址
28.设有如下函数定义:
#include<stdio.h>
intfun(intk)
{if(k<1)return0;
elseif(k==1)return1;
elsereturnfun(k-1)+1;
}
若执行调用语句:
n=fun(3);,则函数fun总共被调用的次数是______。
A.2B.3
C.4D.5
29.有以下程序:
#include<stdio.h>
intf(intx)
{
inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
}
main()
{
intz;
z=f(3);
printf("%d\n",z);
}
程序的运行结果是______。
A.0B.9
C.6D.8
30.有以下程序:
#include<stdio.h>
intfun(intn)
{
if(n==1)
return1;
else
return(n+fun(n-1));
}
main()
{
intx;
seanf("%d",&x);
x=fun(x);
printf("%d\n",x);
}
执行程序时,给变量X输入10,程序的输出结果是______。
A.55B.54
C.65D.45
31.有以下程序:
#nclude<stdio.h>
voidf(intb[])
{inti;
for(i=2;i<6;i++)b[i]*=2;
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,6,8,10,12,7,8,9,10,
C.1,2,3,4,10,12,14,16,9,10,
D.1,2,6,8,10,12,14,16,9,10,
32.有以下程序:
#include<stdio.h>
voidfun2(chara,charB)
{
pfinff("%c%c",a,b);
}
chara="A",b="B";
voidfun1()
{
a="C";
b="D";
}
main()
{
fun1();
printf("%c%c",a,b);
fun2("E","F");
}
程序的运行结果是______。
A.ABEFB.CDEF
C.ABCDD.CDAB
33.若有以下程序:
#include<stdio.h>
char*a="you";
charb[]="WelcomeyoutoChina!
";
main()
{inti,j=0;char*p;
for(i=0;b[i]!
="\0";i++)
{if(*a==b[i])
{p=a;
for(j=i;*p!
="\0";j++)
{if(*p!
=b[j])break;
P++;
}
if(*p=="\0")break;
}
}
printf("%s",&b[i]);
}
则程序的输出结果是______。
A.China!
B.toChina!
C.meyoutoChina!
D.youtoChina!
34.若有以下程序:
#include<stdio.h>
char*a="you",b[]="welcome#you#to#China!
";
main()
tinti,j=0;char*p;
for(i=0;b[i]!
="\0";i++)
{if(sa==b[i])
{p=&h[i];
for(j=0;a[j]!
="\0";j++)
{if(a[j]!
=*p)break;
p++;
}
if(a[j]=="\0")break;
}
}
printf("%s\n",p);
}
则程序的输出结果是______。
A.#to#China!
B.#you#to#China!
C.me#you#to#China!
D.#China!
35.以下叙述中正确的是______。
A.局部变量不能被说明为static
B.只有全局变量才有自己的作用域,函数中的局部变量没有作用域
C.只有在函数内部定义的变量才是局部变量
D.只要是用户定义的标识符,都有一个有效的作用域
36.在一个C源程序文件中定义的全局变量,其作用域为______。
A.由具体定义位置和extern说明来决定范围B.所在程序的全部范围
C.所在函数的全部范围D.所在文件的全部范围
37.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是______。
A.auto和staticB.extern和register
C.auto和registerD.static和register
38.有以下程序:
#include<stdio.h>
fun(intx,inty)
{staticintm=0,i=2;
i+=m+1;m=i+x+y;returnm;
}
main()
{intj=1,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
}
执行后的输出结果是______。
A.5,11B.5,5
C.11,11D.11,5
39.有以下程序:
#include<stdio.h>
intfun()
{staticintx=1;
x*=2;
returnx;
}
main()
{inti,s=1;
for(i=1;i<=3;i++)s*=fun();
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.10B.30
C.0D.64
40.有以下程序:
#include<stdio.h>
intf(intn);
main()
{inta=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
intf(intn)
{staticinta=1;
n+=a++;
returnn;
}
程序运行后的输出结果是______。
A.9B.8
C.7D.10
41.有以下程序:
#include<stdio.h>
intfun()
{
staticintx=1;
X+=1;
returnx;
}
main()
{
inti,s=1;
for(i=1;i<=5;i++)s+=fun();
printf("%d\n",s);
}
程序运行后的输出结果是______。
A.120B.11
C.6D.21