单选题有如下程序 #include main() {  inti,*ptr;  intarray[5]={5,3,1};  for(ptr=array,i=0;i5;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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序的输出结果是______。includeusing namespace std;int main() {char a []="He

下列程序的输出结果是______。 #include<iostream> using namespace std; int main() { char a []="Hello, World"; char *ptr=a; while (* ptr) { if(*ptr)= 'a'&& *ptr' <= 'z') cout << char(*ptr+'A'-'a'); else cout << *ptr; ptr++; } return 0; }

A.HELLO,WORLD

B.Hello,World

C.hELLO, wORLD

D.hello,world


正确答案:A
解析:对于str的每个字母,如果是大写字母或者是非字母,就直接打印出来。如果是小写字母,就转化成大写字母,然后打印。‘A’-‘a’正是大小写字母的ASCII码之差。

第2题:

有以下程序 main() { int a[3][2]={0},(*pb)[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++) printf("%2d",a[i][j]); printf("\n"); } } 若运行时输入:1 2 3<回车>,则输出结果是______。

A.产生错误信息

B.1 0 2 0 0 0

C.1 2 3 0 0 0

D.1 0 2 0 3 0


正确答案:D

第3题:

下列程序的输出结果是 inClUde using namespace std; intmain() { Char a[]="HellO,W

下列程序的输出结果是

#inClUde<iostream>

using namespace std;

intmain()

{

Char a[]="HellO,World";

Char*ptr=a;

while(*ptr)

{

if(*ptr>='a'&& *ptr <='Z')

cout<<char(*ptr+'A' -'a');

else cout<<*ptr;

ptr++;

}

retur0;

}

A.HELLO,WORLD

B.Hello,world

C.hELLO,wORLD

D.hellO,world


正确答案:A
解析:本题考核while语句和if语句,while语句中if语句的作用是将小写字母变成大写字母输出,所以main函数的字符串通过while语句全部输出为大写字母。

第4题:

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

A.产生错误信息

B.10

C.12

D.10 20 30 20 00 00 30


正确答案:B
解析:二维数组a,通过a[3][2]={0}将数组中的各个元素初始化为0,指针变量ptr,指向包含2个元素的一维数组。a[0][0]=1,a[1][0]=2,故本题的输出选B。

第5题:

下列有关指针的用法中错误的是( )。

A.int i;int *ptr=&i;

B.inti;int *ptr;i=*ptr;

C.int *ptr;ptr=0;

D.int i=5;int *ptr;*ptr&i;


正确答案:B

第6题:

下面程序的输出结果是( )。 include main() {static char a[]="china"; char*ptr=a; whi

下面程序的输出结果是( )。 include<stdio.h> main() {static char a[]="china"; char*ptr=a; while(*ptr) {printf("%c",*ptr-32); ptr++; } }


正确答案:CHINA
CHINA

第7题:

下列程序段的输出结果是______。 static int a[3]={1,2,3}; int**ptr,*p; p=a;ptr=&p; (ptr[0]++)[1]+=3; printf("%d,%d,%d\n",**ptr,*p,a[0]);

A.5,5,10

B.1,5,5

C.5,5,1

D.输出结果不确定


正确答案:C
解析:ptr指向指针变量p,p指向数组a的首地址,(ptr[0]++)[1]+=3;的意思是将p指向数组元素a[1],并将它的值增3变为5,此时,ptr指向p,p指向a[1]。

第8题:

使用VC6打开考生文件夹下的工程test7_1,此工程包含一个源程序文件test7_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

Constructor1

Constructor1

Constructor1

Destructor

Constructor2

Destructor

x=0

x=5

Destructor

Destructor

源程序文件test1_1.cpp清单如下:

include<iostream.h>

class B

{

int X;

public:

B(){X=0;cout<<"Constructorl"<<endl;}

B(int i){x=i;cout<<"Constructor2"<<endl;}

~B(){cout<<"Destructor"<<endl;}

/**********found*********/

~B(int i){cout<<i<<"be Destructor"<<endl;}

void print(){cout<<"x="<<x<<endl;}

};

void main()

{

B *ptr;

ptr=new B[2];

/**********found*********/

ptr[0]=B(0);

ptr[1]=B(5);

/**********found********/

for(int i=0; i<2;)

ptr[i].print();

delete []ptr;

}


正确答案:(1)错误:~B(int i){cout"be Destructor"endl;} 正确:应将其删除 (2)错误:ptr[0]=B(0); 正确:ptr[0]=B(); (3)错误:for(int=0;i2;) 正确:for(int i=0;i2;i++)
(1)错误:~B(int i){cout"be Destructor"endl;} 正确:应将其删除 (2)错误:ptr[0]=B(0); 正确:ptr[0]=B(); (3)错误:for(int=0;i2;) 正确:for(int i=0;i2;i++) 解析:(1)主要考查考生对析构函数特性的掌握,析构函数不能带参数也不能重载,一个类中只能定义一个析构函数,因为析构函数在删除对象的时候被默认调用,如果含有多个析构函数则可能引起多次删除产生的意外错误;
(2)主要考查考生对构造函数与函数重载的掌握,由输出结果可知其应该调用不带参数的构造函数B();
(3)主要考查考生对for循环语句的使用,如果在for循环中不写第三个表达式就意味着该循环一直会进行下去,因为 i的值总是小于2(在for循环体中对i进行操作也可以)。

第9题:

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

main()

{ static char a[]="language",b[]="program";

char *ptrl=a,*ptr2=b;

int k

for(k=0;k<7;k++)

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}


正确答案:

第10题:

下面程序的输出结果是( )。 include main(){static chara[]="zhao",b[]="juan"; char*pt

下面程序的输出结果是( )。 include<stdio.h> main() {static chara[]="zhao",b[]="juan"; char*ptr1=a,*ptr2=b; int k; for(k=0;k<4;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));}


正确答案:a
a 解析:本程序先将指针ptr1和ptr2分别指向字符数组a和b,然后通过指针的移动比较a和b中是否有相同的字符。若有相同的字符则将其输出。

更多相关问题