网友您好, 请在下方输入框内输入要搜索的题目:

技能培训专题:系统测试题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。


更多 “技能培训专题:系统测试题4” 相关考题
考题 以下程序运行后的输出结果是【】。 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。

考题 下列程序段的输出结果是includevoid 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<<endl; {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 define F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b 有以下程序: #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++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

考题 以下程序执行后输出的结果是【】。 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 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 void p(int *x){printf("%d",++*x);}void main(){ in 下列程序的输出结果是( )。 #include <stdio.h> void p(int *x) { printf("%d",++*x); } void main() { int y=3; p(y); }A.3B.4C.2D.5 正确答案:B解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。

考题 有以下程序: 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 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 void main( ) {int x=3,y=4,z=2; i 对于下面的程序,说法正确的是 #include<iostream.h> void main( ) { int x=3,y=4,z=2; if(X=y+z) cout <<"x=y+Z"; else cout<<"x!=y+Z";}A.不能通过编译B.输出6C.输出x! =y+zD.输出x=y+z 正确答案:D解析:解答本题关键是要理解if后面的括号里的是赋值语句而并非关系判断,赋完值后x不等于零,C++语言里非零都作真处理,所以输出结果为“x=y+z”,故答案为选项D),注意“=”与“==”的区别。

考题 有如下程序: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::endl; return 0; } 执行后的输出结果是A.42,42B.23,23C.23,42D.42,23 正确答案:B解析:本题考核函数的调用以及参数值的传递。函数fun中的第一个参数采用引用传值方式,函数中对形参值的改变同样作用于实参上;第二个参数采用按值传值方式,函数中对形参的操作不会影响到实参。所以main函数中调用fun函数后,a[1]的值被修改为a[0]的值,而a[0]的值没有改变。
最新考题