7.下列程序运行的结果是()。
A
#include
#defineswap(x,y){x^=y;y^=x;x^=y;}
main()
{
inta=010,b=1;
swap(a,b);
printf(“%d,%d\n”,a,b);
}
A1,8B8,1C10,1D10,1
8.以下scanf函数调用中对结构变量成员的错误引用是()。
C
structstudent
{charname[20];
intage;
intsex;
}stud[5],*p;
p=stud;
Ascanf(“%s”,stud[0].name);Bscanf(“%d”,&stud[0].age);
Cscanf(“%d”,p->age);Dscanf(“%d”,&(p->sex));
9.在以下关于C++构造函数的描述中,错误的是()D
A构造函数可以重载
B构造函数可以带缺省参值
C构造函数名必须与类同名
D构造函数可以带回返回值
10.下面对C++函数重载的描述中,错误的是()D
A函数名相同
B函数参数个数或参数类型至少有一个不同
C函数参数不可以用缺省值
D函数返回值必须不同
二读程序回答问题(每个选择3分,共45分)
1.下列程序运行的结果为()。
D
#include
voidfun(char*c,intd)
{*c=*c+1;
d=d+1;
prinf(“%c,%c,”,*c,d);
}
main()
{chara=’A’,b=’a’;
fun(&b,a);
printf(“%c,%c\n”,a,b);
}
AB,a,B,aBa,B,a,BCA,b,A,bDb,B,A,b
2.下面程序的输出是( )。
A
#include
voidtest(int*u,int*v)
{int*w;
w=u;u=v;v=w;
}
main()
{intm=3,n=6,*x=&m,*y=&n;
test(x,y);
printf(“%d%d”,m,n);
}
A36B63C00D编译出错
3.以下程序的输出结果是( )。
A
#include
main()
{intx,y;
for(x=1,y=1;x<=15;x++)
{if(y>20)
break;
if(y%3==1)
{y+=3;
continue;
}
y-=10;
}
printf(“%d,%d\n”,x,y);
}
A8,22B7,20C6,22D5,20
4.fun(char*t1,char*t2)
{intI,j;
while(*t2!
=0)
{
for(I=0,j=0;t1[I];I++)
if(t1[I]!
=*t2)
t1[j++]=t1[I];
t1[j]='\0';
t2++;
}
}
main()
{chara[]="abcde",b[]="ae";
fun(a,b);
puts(a);
}
该程序的输出结果为( )。
B
A abcdeBbcdCabcdeaeDae
5.以下程序的输出结果是( )。
B
#include
#defineFUN(y)2.84+y
#definePR(a)printf(“%d”,(int)(a))
#definePRINT(a)PR(a);putchar(‘\n’)
mani()
{
intx=2;
PRINT(FUN(5)*x);
}
A11B12C14D15
6.读下列程序,回答问题。
#include
voidsort(inta[])
{
inti,j,t;
for(i=0;j<4;I++)
for(j=0;j<4-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
voidmain()
{inta[5]={5,10,-7,3,7},i,t,j;
sort(a);
for(I=0,I<=4;I++)printf(“%d\n”,a[i]);
}
关于程序的说法正确的是( )。
C
A 用选择法对数据按从小到大排列
B 用选择法对数据按从大到小排列
C 用冒泡法对数据按从小到大排列
D 用冒泡法对数据按从大到小排列
7.执行下面程序时输入“Iwillpasstheexam!
“,其输出结果是()。
如果将程序中的scanf(“%s”,s)改为gets(s);同样输入“Iwillpasstheexam!
“,则程序的输出结果是()。
C,B
#include
intfun(chars[])
{inti=0;
while(s[i]!
='\0')
i++;
returni;
}
voidmain()
{chars[81];
printf("pleaseinputastring\n");
scanf("%s",s);
printf("%d\n",fun(s));
}A5B21C1D17
A5B21C1D17
8.以下是一个C++程序
#include
classSample
{intx,y;
public:
Sample(){x=y=0;}
Sample(inta,intb){x=a;y=b;}
voiddisp()
{cout<<"x="<};
voidmain()
{Samples1,s2(2,3);
s1.disp();
s2.disp();
}
(1)该程序主函数中s1.disp()的输出为()。
A
Ax=0y=0Bx=2y=3Cx=3y=2Dx=1y=1
(2)该程序主函数中s2.disp()的输出为()。
B
Ax=1y=0Bx=2y=3Cx=3y=2Dx=1y=1
9.读下列程序并回答问题。
#include
voidfun(int*p,inti,intj)
{
staticintme=0;
intt;
me++;
printf("me=%d\n",me);
if(i{t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;
fun(p,++i,--j);
}
}
main()
{
inta[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0;i<6;i++)
printf("%d",a[i]);
}程序中的fun函数被调用()次。
C
A6B5C4D3
(2)程序的运行结果为()。
D
A123456B456123C135246D654321
10.读程