itgle.com

单选题有如下程序 #include main() {  int i, *ptr;  int array[5] = {5,3,1};  for (ptr=array, i=0; i<5; i++, ptr++)  {   if (*ptr == 0)    putchar('X');   else    putchar('A' + *ptr);  }  printf(""); } 程序运行后的输出结果是(  )。A FDBXXB FFFXXC FDBBBD ABCDE

题目
单选题
有如下程序 #include  main()  {  int i, *ptr;  int array[5] = {5,3,1};  for (ptr=array, i=0; i<5; i++, ptr++)  {   if (*ptr == 0)    putchar('X');   else    putchar('A' + *ptr);  }  printf(""); } 程序运行后的输出结果是(  )。
A

FDBXX

B

FFFXX

C

FDBBB

D

ABCDE


相似考题
更多“有如下程序 #include  main()  {  int i, *ptr;  int array[5] = {5,3”相关问题
  • 第1题:

    请编写一个函数sum(int array[],int len),该函数返回数组array的所有整数元素的和,其中len为数组array的长度。

    注意:部分源程序已存在文件test34_2.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

    程序输出结果如下:

    sum of array 15

    文件test34_2.cpp的内容如下:

    include <iostream.h>

    int sum(int array[],int len)

    {

    }

    void main()

    {

    static int a[5]-{1,2,3,4,5};

    int result=sum(a,5);

    cout<<"sum of array "<<result<<end1;

    }


    正确答案:int sum(int array[]int len) { int sum=0; for (int i=0;ilen;i++) sum=sum+array[i]; return sum; }
    int sum(int array[],int len) { int sum=0; for (int i=0;ilen;i++) sum=sum+array[i]; return sum; } 解析:本题主要考查考生对于数组访问和for循环语句的掌握。应该注意的是,长度为len的数组array的下标范围为0到 len-1,而不是从1到len,所以循环控制变量的初始值为0。

  • 第2题:

    有以下程序:

    include”iostream.h”

    void main()

    {int i=10;

    int j=5;

    cout((j+i++<<endl;}

    的结果为______。


    正确答案:15。
    15。 解析: 考查++运算符的用法,各种运算符的应用,注意++,--。i++为先做与i有关的运算后,i自加 1,而++i是先给i加1再进行与i有关的操作。

  • 第3题:

    有以下程序: include using namespace std; int main() {int i=010,j=10;cout<<(++i)

    有以下程序:

    include <iostream>

    using namespace std;

    int main()

    {

    int i=010,j=10;

    cout<<(++i)<<","<<i--<<end1;

    return 0;

    }

    则该程序运行后的输出结果是【 】。


    正确答案:910
    9,10 解析:本题考核自增运算符和自减运算符的使用以及常量的表示形式。程序中i的值是八进制,代表十进制中的8,++i是在语句运算前自身加1,而j--是在语句运算结束后减1。

  • 第4题:

    程序

    include"iostream.h"

    void main()

    {

    int i=10;

    int i=5;

    cout <<j+i++<<endl;

    }

    的结果为【 】。


    正确答案:15
    15 解析:i++为先做与i有关的运算后,i自加 1,而++i是先给i加1再进行与i有关的操作注意:各种运算符的应用,注意++,--。

  • 第5题:

    下面程序执行的结果是【 】。 include using namespace std; void main(){ int sum=0; i

    下面程序执行的结果是【 】。

    include <iostream>

    using namespace std;

    void main(){

    int sum=0;

    int array[6]={1,2,3,4,5,6};

    int *p;

    p=&array[0];

    for(int i=0;i<6;i++){

    sum=sum+*p;

    p++;

    }

    cout<<sum;

    }


    正确答案:21
    21 解析:本题用数组地址来访问数组内容,通过数组指针来操作数组内容,依次取出数组内容进行加和,然后进行输出。

  • 第6题:

    有如下程序:includeincludeusing namespace std;int main( ){int S[ ]={12

    有如下程序: #include<iostream> #include<iomanip> using namespace std; int main( ){ int S[ ]={123,234}; cout<<right<<setfill('*')<<setw(6); for(int i=0;i<2;i++){COUt<<s[i]<<endl;} return 0; } 程序的输出结果是

    A.123 234

    B.***123 234

    C.***123 ***234

    D.***123 234***


    正确答案:B
    解析:setfill('*')填充设置仅影响紧跟其后的输出操作,第二次循环时失效

  • 第7题:

    有以下程序: include using namespace std; int main() {int x;for(int i=1;i<=100;

    有以下程序: #include <iostream> using namespace std; int main() { int x; for(int i=1;i<=100;i++) { x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) cout<

    A.39,81

    B.42,84

    C.26,68

    D.28,70


    正确答案:D
    解析:程序最后输出的x值所满足的条件为:x本身能被7整除,(x-1)能被3整除,(x-2)能被2整除。在1~100之间满足条件的x值是28和70。

  • 第8题:

    分析下列程序,并写出运行结果【】。 include voidmain(){ int x[10]: int i=5,*ptr=x;

    分析下列程序,并写出运行结果【 】。

    include<iostream.h>

    void main(){

    int x[10]:

    int i=5,*ptr=x;

    *(ptr+i)=10;

    cout<<x[i]<<end1;


    正确答案:10
    10

  • 第9题:

    若有如下程序: include using namespaee std; int fun() { static int i=0; int s=1;

    若有如下程序: #include<iostream> using namespaee std; int fun() { static int i=0; int s=1; s+=i; i++; return s; } int main() { int i,a=0; for(i=0;i<5;i++) a+=fun(); cout<<a<<end1; return 0; } 程序运行后,输出的结果是( )。

    A.20

    B.24

    C.25

    D.15


    正确答案:D
    解析:由主函数入手,在for循环中调用fun函数,其中调用次数为5次。fun中i为静态变量,有效到文件结束。第一次调用fun后为s=1,a=1;第二次调用后s=2,a=3;第三次s=3,a=6;第四次 s=4,a=10;第五次s=5,a=15。

  • 第10题:

    单选题
    有如下程序 #include  main()  {  int i, *ptr;  int array[5] = {5,3,1};  for (ptr=array, i=0; i<5; i++, ptr++)  {   if (*ptr == 0)    putchar('X');   else    putchar('A' + *ptr);  }  printf(""); } 程序运行后的输出结果是(  )。
    A

    FDBXX

    B

    FFFXX

    C

    FDBBB

    D

    ABCDE


    正确答案: A
    解析:
    对数组进行初始化时,如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,即array={5,3,1,0,0}。程序执行过程为:执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出'X',如果不为0则按照字母表输出字符'A'后第array[i]个字符。程序运行后的输出结果为:FDBXX,答案选择A选项。

  • 第11题:

    单选题
    有如下程序:#include int sum(int *array,int len){ if(len == 0)  return array[0]; else  return array[0]+sum(array+1,len-1);}main(){ int array[5] = {1,2,3,4,5}; int res = sum(array,4); printf(%d,res);}程序运行后的输出结果是(  )。
    A

    15

    B

    10

    C

    8

    D

    1


    正确答案: C
    解析:
    程序执行过程为:调用函数sum(array,4),len=4;len>0递归调用sum(array+1,3),传入地址为array+1,即数组第二个元素地址;len=3>0,递归调用sum(array+1,2),传入地址为数组第三个元素地址;len=2>0,递归调用sum(array+1,1),传入地址为数组第四个元素地址;len=1>0递归调用sum(array+1,0),传入地址为数组第五个元素地址,此时len=0,返回5;返回上一层调用执行array[0]+sum(array+1,1),即4+5,返回9;再返回上一层调用执行array[0]+sum(array+1,2),即3+9,返回12;同理,最后返回15,并输出。本题中需要注意的是每一层调用时array[0]是不一样的,并不是指1。答案选择A选项。

  • 第12题:

    单选题
    有如下程序:#include main(){ int i,*ptr; int array[3]={8,2,4}; for(ptr=array,i=0;i  printf("%d,",*ptr++); printf("");}程序运行后的输出结果是(  )。
    A

    8,2,

    B

    8,8,

    C

    2,4,

    D

    4,8,


    正确答案: D
    解析:
    *的优先级低于++,即先运算ptr++再运算*ptr。程序执行过程为:定义指针ptr与数组array,执行for循环,使指针指向数组首地址,i=0,输出指针指向的元素array[0]=8,然后指针加1,指向数组下一个元素;i=1,输出array[1]=2,指针指向数组下一个元素;i=2退出for循环。程序依次输出8和2。答案选择A选项。

  • 第13题:

    有以下程序: include include usingnamespacestd; intmain() {intarrays

    有以下程序: #include <iostream> #include <cstdlib> using namespace std; int main() { int arraysize; int *array; cout<<"Please input the size of the array:"; cin>>arraySiZe; array=new int[arraysize]; if(array==NULL) { cout<<"allocate Error\n"; exit(1); } for(int i=0;i<arraysize;i++) array[i]=i*i; int j; cout<<"which element you want to check:"; cin>>j; cout<<array[j]<<end1; return 0; } 执行程序输入:10<空格>5,则输出结果为( )。

    A.allocate Error

    B.1

    C.0

    D.25


    正确答案:D
    解析:程序中利用new()申请动态分配数组。利用for循环给数组array赋值。最后输出想要检查元素的值。程序输10,即数组array元素个数为10。程序输入5,即检查元素array[5]的值。由for循环的赋值运算可知array[5]的值为25,所以程序最后输出25。

  • 第14题:

    有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

    有以下程序:

    include <iostream>

    using namespace std;

    int f(int);

    int main()

    {

    int i;

    for(i=0;i<5;i++)

    cout<<f(i)<<" ";

    return 0;

    }

    int f(int i)

    {

    static int k=1;

    for(;i>0;i--)

    k+=i;


    正确答案:1 2 5 11 21
    1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

  • 第15题:

    以下程序的输出结果是【】。 include using namespace std; int main(){ int sum,i; for(

    以下程序的输出结果是【 】。

    include<iostream>

    using namespace std;

    int main(){

    int sum,i;

    for(sum=0,i=1;i<5;i++)sum+=i;

    cout<<sum<<endl;

    return 0;

    }


    正确答案:10
    10 解析:本题程序实现的是计算1+2+3+4的和,因此最后输出为10。

  • 第16题:

    有如下程序:include using namespace std;int getSum(int num);int main (){ int i;

    有如下程序: #include <iostream> using namespace std; int getSum(int num); int main () { int i; for (i=1; i<4; i++) cout<<getSum(i); return 0; } int getSum(int hum) { static int sum=O; sum+=num; return sum; } 上述程序执行后的输出结果是( )。

    A.136

    B.248

    C.123

    D.135


    正确答案:A
    解析:在函数getSum()中,局部变量sum被声明为static,并且初始化为0。该程序使用getSum()函数计算并报告当前计算所得结果。由于sum是static变量,因此它在函数调用过程中始终保持其值,即使函数调用结束,其空间也不会被释放,下次再调用时,上次运行结果仍然保留。

  • 第17题:

    有以下程序:include prt(int * m,int n)int i;for(i =0;i

    有以下程序:#include <stdio.h>prt(int * m,int n) int i; for(i =0;i<n;i ++ ) m[i] ++;main( )} int a[ ] = { 1,2,3,4,5} ,i; prt(a,5); for(i =0;i<5;i ++ ) printf( "% d," ,a[i] );}程序运行后的输出结果是( )。

    A.1,2,3,4,5,

    B.2,3,4,5,6,

    C.3,4,5,6,7,

    D.2,3,4,5,1


    正确答案:B
    解析:prt(a,5);用数组名a作函数实参,不是把a数组的值传递给形参m,而是将数组a的首地址传递给指针变量m,使指针变量m指向数组a的首地址,这样他们就占用同一段内存单元。当改变了指针变量所指向的存储单元中的内容,也就改变了数组a中的元素。函数pit的作用是将指针变量m所指向的存储单元中的各元素值加1,也就是数组a中各元素的值加l,所以输出结果为:2,3,4,5,6,

  • 第18题:

    有以下程序:include main( ){int a[3][2]={0} ,( *ptr)[2],i,j;for(i=0;i<2;i++) {ptr

    有以下程序: #include <stdio.h> main( ) { int a[3][2]={0} ,( *ptr)[2],i,j; for(i=0;i<2;i++) {ptr=a+i; scanf("%d",ptr); ptr++;} for(i =0;i<3;i ++ ) } for(j =0;j<2;j ++ ) prinff( "%2d" ,a[i] [j] ); prinff(" \n" ); }}若运行时输入:1 2 3 <回车>,则输出结果是( )。

    A.产生错误信息

    B.10 20 00

    C.12 30 00

    D.10 20 30


    正确答案:B
    解析:程序中a[3)[2]={0}将数组元素全部初始化为0,指针变量ptr指向包含2个元素的一维数组。在第一个for语句的循环体中ptr=a+i;语句用于将指针变量ptr指向第i行的数组元素,通过两次循环,分别给二维数组a的第。行的第1个元素和第1行的第1个元素赋了值1和2,即a[0][0]=1,a[1][0]=2。

  • 第19题:

    有以下程序: include using namespace std; int main() {int i=1,sum=0;Loop:if(i<=20

    有以下程序:

    include<iostream>

    using namespace std;

    int main()

    {

    int i=1,sum=0;

    Loop:if(i<=20)

    {

    sum+=i;

    i++;

    goto Loop;

    }

    cout<<sum<<end1;

    return 0;

    }

    该程序运行后的输出结果是【 】。


    正确答案:210
    210 解析:本题是goto跳转语句的应用。程序中,如果满足条件“i=20”,则执行语句“sum+=i;i++;”然后,又跳转到Loop处。直到条件“i=20”不满足。由此可知,此程序的功能是统计1~20的总和,即210。

  • 第20题:

    有以下程序:include int f(int a)return a% 2; }main( )int s[8] = {1,3,5,2,4,6} ,i

    有以下程序: #include <stdio. h> int f(int a) return a% 2; } main( ) int s[8] = {1,3,5,2,4,6} ,i,d =0; for (i=0;f(s[i]);i++) d+ =s[i]; prinff( "% d \n", d); 程序运行后的输出的结果是( ).

    A.9

    B.11

    C.19

    D.21


    正确答案:A
    解析:在主函数main中,f(s[i])为for语句的循环终止条件,当f函数返回非零值时,则继续执行循环,否则终止循环,输出d的值。程序的运行步骤为:当i=0时,f(s[i])返回值为1,执行d+=1,d=1;当i=1时,将s[1];3传给形参变量s,f函数返回a%2=1,执行d=d+s[1]=1+3=4;当i=2时,将s[2]=5传给形参变量a,f函数返回a%2=1,执行d=d+s[2]=4+5=9;当i=3时,将a[3]=2传给形参变量a,f函数返回a%2=0,终止循环,输出d的值9。

  • 第21题:

    有如下程序:include using namespace std;class shapes{protected: int x, y;public:

    有如下程序: #include <iostream> using namespace std; class shapes { protected: int x, y; public: void setvalue(int d, int w=O) { x=d; y=w; } virtual void disp()=O; }; class square : public shapes { public: void disp () { cout<<x*y<<end1; } }; int main ( ) { shapes *ptr; square s1; ptr=&s1; ptr->setvalue (10, 5) ;ptr->disp(); return 0; } 执行上面的程序将输出( )。

    A.50

    B.5

    C.10

    D.15


    正确答案:A
    解析:本题中基类shapes是一个抽象类(拥有纯虚函数disp())。在主函数中定义了抽象类的对象指针ptr,并给它赋值派生类square的对象s1,然后进行赋值和输出的操作。

  • 第22题:

    单选题
    有以下程序:#include int sum(int *array,int len){ if(len == 0)  return array[0]; else  return array[0]+sum(array+1,len-1);}main(){ int i=1,j=3; printf(%d,,i++); {  int i = 0;  i+=j*2;  printf(%d,%d,,i,j); } printf(%d,%d,i,j);}程序运行后的输出结果是(  )。
    A

    1,6,3,1,3

    B

    1,6,3,2,3

    C

    1,6,3,6,3

    D

    1,7,3,2,3


    正确答案: B
    解析:
    程序执行过程为:输出i=1,之后i自增,得i=2;然后执行复合语句,赋值i=0,执行语句i+=j*2;得i=6;输出i=6,j=3;花括号内的i的作用域仅限于该花括号内,在括号外的i为程序第四行定义的i,这两个i属于不同的变量。之后再输出i=2,j=3。答案选择B选项。

  • 第23题:

    单选题
    有如下程序: #include  void change(int *array,int len) {  for(;len>=0;len--)   array[len]+=2; } main() {  int i,array[5]={1,2};  change(array,4);  for(i=0;i<4;i++)   printf("%d,",array[i]);  printf(""); } 程序运行后的输出结果是(  )。
    A

    2,3,4,5,

    B

    3,4,5,6,

    C

    3,4,2,2,

    D

    1,2,0,0,


    正确答案: A
    解析:
    本题程序执行过程为:调用change函数,将数组array={1,2,0,0,0}首地址传入函数,函数实现将数组每个元素加2,arrray={3,4,2,2,2}。依次输出数组前4个元素为3、4、2、2。答案选择D选项。

  • 第24题:

    单选题
    有如下程序:#include struct pair{ int first,second;};struct pair get_min_max(int*array, int len){ int i; struct pair res; res.first=array[0]; res.second=array[0]; for(i=1;ires.second)   res.second=array[i]; } return res;}main(){ int array[5]={9,1,3,4}; struct pair min_max = get_min_max(array,5); printf(min=%d,max=%d, min_max.first, min_max.second);}程序运行后的输出结果是(  )。
    A

    min=1,max=9

    B

    min=0,max=9

    C

    min=1,max=4

    D

    min=0,max=4


    正确答案: A
    解析:
    在对数组进行初始化时,如果在定义数组时给出了长度,但没有给所有的元素赋予初始值,那么c语言将自动对余下的元素赋初值0,则array[5] = {9,1,3,4,0}。程序的执行过程为:调用函数get_min_max(array,5),将数组array的首地址传入函数,定义结构体变量res,并为其成员赋值。for循环查找数组array的最小值0,将其赋值给res的成员first,查找数组最大值9,并将其赋值给res的成员second。最后返回结构体变量res,则min_max=res。输出min_max.first=0,min_max.second=9。答案选择B选项。