C++训练题一Word格式.docx
《C++训练题一Word格式.docx》由会员分享,可在线阅读,更多相关《C++训练题一Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
case4:
putchar(c+2);
}}
cout<
<
endl;
}
从第一列开始输入以下数据,<
CR>
代表回车符。
27483<
程序的输出结果是:
A)66877B)668966C)6677877D)6688766
(6)以下程序的输出结果是
#include“stdio.h”
main()
{intk=4,m=1,p;
p=func(k,m);
p;
p=func(k,m);
cout<
func(a,b)
inta,b;
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
A)8,17B)8,16
C)8,20D)8,8
7)设有以下语句
structst{intn;
structst*next;
};
staticstructsta[3]={5,&
a[1],7,&
a[2],9,’\0’},*p;
p=&
a[0];
则表达式的值是6的是
A)p++->
nB)P->
n++
C)(*p).n++D)++p->
n
8)以下程序的输出结果是
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
{cout<
fun(3);
A)1B)2
C)3D)4
9)下列程序执行后输出的结果是
intd=1;
fun(intp)
{intd=5;
d+=p++;
d;
{inta=3;
fun(a);
d+=a++;
d;
A)84B)96
C)94D)85
10)下列程序的输出结果是
{charcha[2][5]={“6934”,”8254”},*p[2];
inti,j,s=0;
for(i=0;
i<
2;
i++)p[i]=ch[i];
i++)
for(j=0;
p[i][j]>
’0’&
&
p[i][j]<
=’9’;
j+=2)
s=10*s+p[i][j]-‘0’;
s;
A)6385B)69825
C)63825D)693825
11)以下程序的输出结果是
fut(int**s,intp[2][3])
{**s=p[1][1];
{inta[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&
p,a);
*p;
A)1B)7
C)9D)11
12)下面程序的输出结果为
structst{intx;
int8y;
}*p;
intdt[4]={10,20,30,40};
stuctstaa[4]={50,&
dt[0],60,&
dt[1],70,&
dt[2],80,&
dt[3]};
{p=aa;
++p->
;
(++p)->
x;
++(*p->
y);
A)10B)50
2060
2021
C)51D)60
6070
2131
13)十进制数127转换成二进制数是
A)1111111B)0111111C)1000000D)1111110
14)若有定义:
inta=8,b=5,C;
执行语句C=a/b+0.4;
后,c的值为
A)1.4B)1C)2.0D)2
15)若变量a是int类型,并执行了语句:
a=’A’+1.6;
则正确的叙述是
A)a的值是字符CB)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符’A’的ASCII值加上1
16)以下程序的输出结果是
{inta=5,b=4,c=6,d;
d=a>
b(a>
c?
a:
c):
b);
A)5B)4C)6D)不确定
17)以下程序中,while循环的循环次数是
{inti=0;
while(i<
10)
{if(I<
1)continue;
if(I==5)break;
i++;
A)1B)10C)6D)死循环,不能确定次数
18)以下程序的输出结果是
{inta=0,i;
for(I=1;
I<
5;
{swich(i)
case0;
case3:
a+=2;
a+=3;
default:
a+=5;
cout<
a;
A)31B)13C)10D)20
19)以下程序的输出结果是
{inta=4,b=5,c=0,d;
d=!
a&
!
b||!
c;
A)1B)0C)非0的数D)-1
20)以下程序的输出结果是
#include“stdio.h”
{inti=0,a=0;
while(i<
20)
{for(;
;
)
{if(i%10)==0break;
elsei++;
i+=11;
a+=i;
A)21B)42C)33D)11
21)以下程序的输出结果是
charcchar(charch)
{
if(ch>
=’A’&
ch<
=’Z’)ch=ch-‘A’+’a’;
returnch;
{chars[]=”ABC+abc=defDEF”,*p=s;
while(*p)
{p=cchar(p);
p++;
A)abc+ABC=DEFdefB)abc+abc=defdef
C)abcaABCDEFdef D)abcabcdefdef
22)以下程序的输出结果是
intf()
{staticinti=0;
ints=1;
s+=i;
{intI,a=0;
for(I=0;
5;
I++)a+=f();
A)20B)24C)25D)15
23)以下程序段的输出结果是
chars[]=\\141\141abc\t;
strlen(s);
A)9B)12C)13D)14
24)以下程序调用findmax函数返回数组中的最大值
findmax(int*a,intn)
{int*p,*s;
for(p=a,s=a;
p-a<
n;
p++)
if()s=p;
return(*s);
{intx[5]={12,21,13,6,18};
findmax(x,5);
A)p>
sB)*p>
*sC)a[p]>
a[s]D)p-a>
p-s
25)若有下面的说明和定义
structtest
{intml;
charm2;
floatm3;
unionuu{charul[5];
intu2[2];
}ua;
}myaa;
则sizeof(structtest)的值是
A)12B)16C)14D)9
26)若有定义:
intaa[8];
则以下表达式不能代表数组元素aa[1]的地址的是
A)&
aa[0]+1B)&
aa[1]C)&
aa[0]++D)aa+1
27)若有以下定义和语句
ints[4][5],(*ps)[5];
ps=s
则对s数组元素的正确引用形式是
A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+3
28)以下程序的输出结果是
#include”stdio.h”
#include“string.h”
{charb1[8]=’abcdefg’,b2[8],*pb=b1+3;
while(--pb>
=b1)strcpy(b2,pb);
strlen(b2;
A)8B)3C)1D)7
二填空题
1)下列程序的输出结果是
#include“stdio.h”
{charb[]=”ABCDEFG”;
char*chp=&
b[7];
for(;
(chp)>
b[0];
chp--)
putchar(*chp);
putchar(‘\n’);
}
2)下面程序的功能是将字符串a下标值为偶数的元素从小到大排序,其他元素不变,请填空
{chara[]}=’labchmfye’,t;
inti,j
for(i=0;
7;
i+=2)
for(j=i+2;
j<
9;
[2])
if([3]){t=a[i];
a[i]=a[j];
a[j]=t;
j++;
puts(a);
3)以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。
素数是只能被1和本身整除且大于1的自然数,请填空
{inti,a[10],*p,sum=0;
p=a;
”Enter10num:
”;
10;
i++)cin>
>
a[i];
if(isprime(*p+[4]))==1
(a+i);
sum+=(a+i);
”Thesum=”<
sum;
isprime(x)
intx;
{intI;
for(I=2;
I<
=x/2;
I++)
if(x%I==0)return(0);
[5]}
4)函数compare的功能是比较2个字符串是否相等,若相等则函数返回值1,否则返回值0,请填空
compare(chars[],chart[])
{intI=0;
while(s[i]==t[i]&
[6])
return([7]?
1:
0);
5)下面findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空
findmax(ints[],intt)
{intk,p;
for(p=0,k=p;
p<
t;
p++)if(s[p]>
s[k])[8]}
6)以下程序的输出结果是
{chars[]=’abcdef’;
s[3]=’\0’;
7)以下程序中,select函数的功能是:
在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回最大值所在的行下标,请填空
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=0,colum=0;
N;
M;
j++)
if(a[i][j]>
a[row][colum]){row=i;
colum=j;
*n=[9];
return[10];
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&
n);
”max=,line=”<
max<
8)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空
intmystrlen(char*str)
{inti;
[11]!
=’’/0);
i++)
reurn([12]);
答案
选择题
1B2B3B4D56A7D8D9A10A
11912C13B14B15D16C17D18A19A20D
21B22D23A24B25)A26)C27)C28)D
填空题
1GFEDCB2j+=2a[i]>
a[j]3ielsereturn1
4s[i]!
=0||t[i]!
=0s[i]==’\0’&
t[i]==’\0’
5k=p;
6)abc7)rowa[row][colum]
8)(str+i)i