技能培训专题:系统测试题4

以下程序的输出结果是______。 include int add(int x, int y) { return x+y; } doub

以下程序的输出结果是______。

include<iostream.h>

int add(int x, int y)

{

return x+y;

}

double add(double x, double y)

{

return x+y;

}

void main()

{

int a=3, b=3;

double c=6.5, d=1.5;

cout<<add(a, b)<<","<<add(c, d)<<end1;

}


正确答案:68
6,8


阅读下面程序: include void fun(int n) { int x(5); static int y(10); if(n>0) {

阅读下面程序:

include<iostream.h>

void fun(int n)

{

int x(5);

static int y(10);

if(n>0)

{

++x;

++y;

cout<<x<<","<<y<<end1;

}

}

void main()

{

int m(1);

fun(m);

}

则该程序的输出结果是______。


正确答案:611
6,11


阅读下面程序: include void f(int n) { int x(5); static int y(10); if(n>0) { ++

阅读下面程序:

include<iostream.h>

void f(int n)

{

int x(5);

static int y(10);

if(n>0)

{

++x;

++y;

cout<<x<<","<<y<<endl;

}

}

void main()

{

int m(1);

f(m),

}

则该程序的输出结果是【 】


正确答案:611
6,11


如下程序的输出结果是______。 include using namespace std; int funl(int x){retu

如下程序的输出结果是______。

include<iostream>

using namespace std;

int funl(int x){return++x;}

int fun2(int&x){return++x;}

int main( ){

int x:1,y=2;

Y=funl(fun2(x));

cout<<x<<','<<y;

return 0;

}


正确答案:23
2,3


下列程序的输出结果是()。 include VOid p(int *x) {printf("%d",++*x); } void main()

下列程序的输出结果是( )。

#include<stdio.h>

VOid p(int *x)

{ printf("%d",++*x);

}

void main()

{ int y=3;

p(&y);

}

A.3

B.4

C.2

D.5


正确答案:B
解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。


系统测试题41.算式:?2*7?=3848中缺少一个十位数和一个个位数。编程求出使该算式成立时的这两个数,并输出正确的算式。#include #include main() int x,y; /*SPACE*/ for(x=1;【?】;x+) /*SPACE*/ for(【?】;y10;y+) /*SPACE*/ if(【?】=3848) /*SPACE*/ printf(%d*%d=3848n,【?】); exit(0); 2.一个40磅重的板碎成4块,每块正好是一个整数磅,且用这4块当砝码能称出140磅的整数重量的物体。编程求这4块的各自重量。#include #include main() int i,j,k,l,p,t1,t2,t3,t4; for(i=1;i38;i+) /*SPACE*/ for(【?】;j38-i;j+) /*SPACE*/ for(k=j;k【?】;k+) l=40-i-j-k; for(p=1;p40;p+) for(t1=-1;t12;t1+) for(t2=-1;t22;t2+) for(t3=-1;t32;t3+) for(t4=-1;t42;t4+) /*SPACE*/ if(【?】=p) goto next; break; /*SPACE*/ next:if(p=【?】) printf(%d,%d,%d,%dn,i,j,k,l); exit(0); printf(error.);3.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?#include main() long int i; double bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(%ld,&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i=100000) bonus=i*0.1; /*SPACE*/ else if(【?】) bonus=bonus1+(i-100000)*0.075; /*SPACE*/ else if(【?】) bonus=bonus2+(i-200000)*0.05; /*SPACE*/ else if(【?】) bonus=bonus4+(i-400000)*0.03; else if(i=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; /*SPACE*/ 【?】(bonus=%d,bonus);4.要求输出结果为: A,B 65,66#includevoid main() /*SPACE*/ char a,【?】; /*SPACE*/ a=【?】; b=b; a=a-32; /*SPACE*/ b=b-【?】; printf(%c, %cn%d,%dn,a,b,a,b);5. 以下程序按每行5个数的格式输出1至n范围内能被7或17 整除的整数,并求出其和。 如输入:50 则输出: 7 14 17 21 28 34 35 42 49 Sum=247#include void main() int i, n, ct=0, sum=0; scanf( %d, &n ); for ( i=1; i=n; i+ )/*SPACE*/ if (【?】) printf( %dt, i );/*SPACE*/ 【?】; ct+;/*SPACE*/ if (【?】) printf( n ); printf( nSum=%dn, sum );6.输入两个整数,求他们的按位与。#includevoid main() int x,y,z=0,a,b,k=1; scanf(%d,%d,&x,&y); while(x0&y0) a=x%2; /*SPACE*/ x=【?】; b=y%2; y=y/2; /*SPACE*/ z=z+【?】; k=k*2;


若有以下程序: include using namespace std; int f(int x, int y) {return(y-x)*x;

若有以下程序:

include <iostream>

using namespace std;

int f(int x, int y)

{

return (y-x)*x;

}

int main()

{

int a=3,b=4,c=5,d;

d=f(f(a,b) ,f(a,c) );

cout<<d<<<end1;

return 0;

}

执行后的输出结果是【 】。


正确答案:9
9 解析:本题考核函数的嵌套调用。在主函数中执行语句“d=f(f(a,b) ,f(a,c));”调用了3次f()函数:调用f(a,b) 得到的值为3,调用f(a,c) 得到的值为6,调用f(3,6)得到的值为9。


若有以下程序段:include using namespace std;int main (){ int a[]={1,4,5}; int *p

若有以下程序段: #include <iostream> using namespace std; int main () { int a[]={1,4,5}; int *p=&a[0],x=6, y,z; for (y=0; y<3; y++) z= ( (* (p+y) <x) ? *(p+y) :x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

A.1

B.4

C.5

D.2


正确答案:C
解析:本题考核指针的运算。程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并将其初始化且指向数组元素a[0]。在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为“z=(a[y]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。


有如下程序:include void fun (int& x,int y){int t=x;x=y;y=t;}int main(){ int

有如下程序: #include <iostream> void fun (int& x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42}; fun (a[1],a[0]; std::cout<<a[0]<<”,”<<a[1]<<std:: ond1; retum0; }执行后的输出结果是______ 。

A.41,41

B.23,23

C.13,42

D.42,23


正确答案:B
解析:a[0]做的是地址传递,所以执行函数后值发生变化,而a[1]做的是值传递,值并没有发生变化,所以此题应选择A。


阅读下列程序: include void fun(int n) { int x(5); static int y(10); if(n>0) {

阅读下列程序:

include<iostream.h>

void fun(int n)

{

int x(5);

static int y(10);

if(n>0)

{

++x;

++y;

cout<<x<<","<<y<<endl;

}

}

void main()

int m(1);

fun(m);

}

则该程序的输出结果是______。


正确答案:611
6,11 解析:由主函数mian入手,首先定义变量m等于1,然后调用fun函数。fun函数中y为静态数值,等于10,作用域为到本文件结束。所以y加1后,主函数中y的值也为11。其中函数中x的加1运算调用的是函数中的x等于5的变量,作用域为由定义到文件结束,即主函数中输出的x值为6。所以答案为6,11。


下列程序的输出结果是()。includevoid p(int *x){printf("%d",++*x);}void main(){int

下列程序的输出结果是( )。 #include<stdio.h> void p(int *x) { printf("%d",++*x); } void main() { int y=3; p(&y); }

A.3

B.4

C.2

D.5


正确答案:B
解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。


相关考题:

考题 下列程序的输出结果是______。 include main() { double d=3.2;int x,y; x=1.2;y=(x+3. 下列程序的输出结果是______。 #include<stdio.h> main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); }A.3B.3.2C.0D.3.07 正确答案:C

考题 请填写空格: include using namespace std; void fun(int x,int y,int * z) { *2 = x 请填写空格:include<iostream>using namespace std;void fun(int x,int y,int * z){ *2 = x + y;}void main(){int a=100,b=100,c,*p=c;fun(a,b,p);【 】; //输出调用fun函数后返回a、b的和。} 正确答案:cout*p;cout*p; 解析:函数 fun()通过指针可以带回返回值,a、b的和存放在*p中。

考题 有以下程序: include difine F(X, Y)(X)*(Y)main(){int a=3, b=4; print("% d\n", 有以下程序: # include<stdio. h> # difine F(X, Y) (X)*(Y) main() { int a=3, b=4; print("% d\n", F(a++, b++)); } 程序运行后的输出结果是______。A.12B.15C.16D.20 正确答案:A解析:F(a++,b++)的宏展开为:F(a++,b++)=(a++)*(b++)=a*b=3×4=12,因此printf函数的输出结果是12。

考题 下列程序段的输出结果是 include void fun(int * X,int * y) {cout 下列程序段的输出结果是 #include<iostream.h> void fun(int * X,int * y) { cout < < * X < < * y; * X=3; * y=4; } void main( ) { int x=1,y=2; fun(y,x); cout < < X < < y < < end1; }A.2143B.1212C.1234D.2112 正确答案:A解析:在fun函数中,x接收的是main函数中y的地址,所以*x值为2,同样,*y值为1,所以第1次输出的是21,第2次改变*x的值等同于改变y的值,改变*y的值也即改变x的值,所以第2次输出的是43。注意:C++语言中函数的传参方式中关于指针的应用。

考题 下列程序的输出结果是()。 include defineF(x)2.84+x definew(y)printf("%d",(int(y) 下列程序的输出结果是( )。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int(y))#defineP(y)w(y)pmchar('\n'》main(){int x=2;P(F(5)*x);}A.12B.13C.14D.16 正确答案:A解析:本题考查带参数的宏的定义及相关运算。P(F(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。

考题 以下程序的输出结果是______。 include main() { char*a="abcdefghi";int k fun(a);p 以下程序的输出结果是______。 #include <string.h> main() { char*a="abcdefghi";int k fun(a);puts(a); } fun(char*s) { int x,y; char c for(x=0,y=strlen(s)-1;x<y:x++,y--) {c=s[y];s[y]=s[x];s[x]=c;} }A.ihgfedcbaB.abcdefghiC.abcdedebaD.ihgfefghi 正确答案:A

考题 下面程序输出的结果是( )。 include using namespace std; void swap(int 下面程序输出的结果是( )。 #include <iostream> using namespace std; void swap(int a,int b){ int temp; temp=a; a=b; b=temp; } void main(){ int x=2; int y=3; swap(x,y); cout<<x<<y; }A.23B.32C.abD.ba 正确答案:B解析:函数的参数是引用,故能实现引用调用。

考题 有以下程序 include define F(X,Y) (X)*(Y) main( ) { int a=3, b=4; prin 有以下程序#include <stdio.h>#define F(X,Y) (X)*(Y)main( ){ int a=3, b=4;printf("%d\n", F(a++, b++));}程序运行后的输出结果是A.12B.15C.16D.20 正确答案:A解析:本题考查了带参数的宏定义。参数只是进行简单的替换而不是把其值求出后替换形式参数。本题中用a++替换X,用b++替换Y,再求(a++)*(b++)的值。

考题 以下程序执行后输出的结果是【】。 include using namespace std; int fac(int a,int b){ 以下程序执行后输出的结果是【 】。include<iostream>using namespace std;int fac(int a,int b){return(b-a)*a;}int main(){int x=3,y=4,z=5,result;result=fac(fac(x,y),fac(x,z));cout<<result<<endl;return 0;} 正确答案:99 解析:在main()函数中执行result=fac(fac(x,y),fac(x,2));调用了三次fac()函数: fac(x,y)的值为3,fac(x,z)的值为6,fac(3,6)得到的值为9。

考题 以下程序运行后的输出结果是【】。 include void fun(int x,int y) {x=x+y;y=x-y 以下程序运行后的输出结果是【 】。include<iostream.h>void fun(int x,int y){ x=x+y;y=x-y;x=x-y;cout<< x << "," <<y << " ,";}void main( ){ int x=2,y=3;fun(x,y);cout<< x << "," << y << endl;} 正确答案:32233,2,2,3 解析:main函数和fun函数中的变量x和y都是局部变量,它们各自独立,在本题 fun函数中:接入实参的值传递:x=2,y=3,执行:x=x+y后,x=5,y=3,执行:x=x-y后,x=5,y=3,执行:y=x-y后,x=3,y=2。所以,第一次执行cout显示结果是3和2返回到main函数中,输出main函数中的x和y的值2,3。