以下程序的输出结果是()      #include      union pw  {int i;char ch[2];}a;   main( )  {a.ch[0]=13;a.ch[1]=0;printf(”%d/n”,a.i);}      (注意:ch[0]在低字节,ch[1]在高字节。) A、13B、14C、208D、209

题目

以下程序的输出结果是()      #include      union pw  {int i;char ch[2];}a;   main( )  {a.ch[0]=13;a.ch[1]=0;printf(”%d/n”,a.i);}      (注意:ch[0]在低字节,ch[1]在高字节。) 

  • A、13
  • B、14
  • C、208
  • D、209

相似考题
更多“以下程序的输出结果是()      #include      union pw  {int i;char ch[2];}a;   main( )  {a.ch[0]=13;a.ch[1]=0;printf(”%d/n”,a.i);}      (注意:ch[0]在低字节,ch[1]在高字节。) A、13B、14C、208D、209”相关问题
  • 第1题:

    下面程序的运行结果是( )。include define SlZE 12 main() {char s[SIZE];int i;for(i=0

    下面程序的运行结果是( )。

    include<stdio.h>

    define SlZE 12

    main()

    {char s[SIZE];int i;

    for(i=0;i<SIZE;i++) s[i]='A'+i+32;

    sub(s,5,SIZE-1);

    for(i=0;i<SIZE;i++)printf("%c",s[i]);

    printf("\n");}

    sub(char *a,int t1,int t2)

    { char ch;

    while(t1<t2)

    { ch=*(a+t1);

    *(a+t1)=*(a+t2);

    *(a+t2)=ch;

    t1++;t2--;

    }

    }


    正确答案:abcdelkjihgf
    abcdelkjihgf 解析:本题先给字符型数组s的12个元素赋值a到1共12个字母,函数sub(char*a,int t1,int t2)的功能是将数组a的从第t1+1个元素到t2+1个元素进行逆置,在主函数中调用sub(s,5,SIZE-1)函数,是将数组s的第6个元素到第12个元素进行逆置,其他元素位置不变。

  • 第2题:

    以下程序的输出结果是______。 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'\0'; printf("%d\n",s); }

    A.69825

    B.59713

    C.6385

    D.693825


    正确答案:C
    解析:p是指向字符的指针数组。执行第1个循环后,p[0]指向字符数组ch的第1行"6937",p[1]指向字符数组ch的第2行"8254",那么p[0][0]其实就对应着ch[0][0],表示第1行的第1个元素“6”。第2个循环中,外层i循环是控制指针数组p的,内层j循环则是对每一行内的各个元素进行处理,特别注意循环变量j的改变"j+=2"。这样就可以看出是对ch[0][0]、ch[0][2]、ch[1][0]和ch[1][2]进行处理。

  • 第3题:

    若有如下程序: main() {int a=6;char ch=c; printf("%d\n",(a&2)&&(ch<'m'));} 则程序运行后的输出结果是( )

    A.0

    B.1

    C.2

    D.3


    正确答案:A

  • 第4题:

    有以下程序: include include using namespace std; int main () {char ch[]

    有以下程序:

    include <fstream>

    include <string>

    using namespace std;

    int main ()

    {

    char ch[] = "The end";

    ofstream outstr( "d:\\put.txt", ios_base: :app);

    for (int i = 0; i < strlen( ch ); i++ )

    outstr.put(ch[i]);

    outstr.close();

    return 0;

    }

    程序实现的功能是【 】。


    正确答案:在文件put.txt的尾部追加写入一串字符
    在文件put.txt的尾部追加写入一串字符 解析:解本题的关键是要了解文件打开模式常量ios_base::app的含义。常量ios base::app表示为添加数据而打开文件(总是在文件尾部写),因此上述程序实现的功能就是在文件尾部写入数组ch中字符串。

  • 第5题:

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

    #include <stdio.h>

    main( )

    { char *ch[4]={"red',"green","blue"};

    int i=0;

    while( ch[i] )

    { putchar( ch[i][0]); i++;)

    }


    正确答案:
    【答案】rgb
    【知识点】指针数组的使用方法
    【解析】本函数功能是打印二维数组中每一行的第一个字符的值。

  • 第6题:

    有以下程序:includemain(){ FILE*fp;int i;char ch[]="abcd",t;fp=fopen("abc.dat","w

    有以下程序: #include <stdio.h> main() { FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb+"); for(i=0;i<4;i++)fwrite(&ch[i]1,1,fp); fseck(fp,-2L,SEEK_END) ; fread(&t,1,1,fp); felose(fp); printf("%c\n",t); } 程序执行后的输出结果是( )。

    A.d

    B.c

    C.b

    D.a


    正确答案:B
    解析:程序首先定义了一个文件指针fp,并使用fopen()函数以"wb+"方式新建一个可读写文件"abe.dat"。然后使用一个for循环,循环变量i从0递增到3,在循环体中每次写入ch[i]的值。所以循环结束时,文件中的内容应该为:abed。接下来程序使用fseek()函数,将文件的读写指针从文件末尾处向后退2个字节,文件末尾是最后一个输出字节的下一个字节,即下次写入数据的位置,所以此时文件读写指针指向的是字符'c'。最后调用ficadO函数从文件中读取1个字节到变量t中。所以最终输出应该为:c。故本题选B。

  • 第7题:

    下面程序的运行结果是#include #define SIZE 12sub(char *a,int t1,int t2) { char ch; while(t1<t2) { ch=*(a+t1); *(a+t1)=*(a+t2); *(a+t2)=ch; t1++;t2--; }} main() { char s[SIZE]={’A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’I’,’J’,’K’,’L’}; int i; sub(s,7,SIZE-1); for(i=0;i<SIZE;i++) printf("%c ",s[i]); printf("\n");}


    正确答案:A B C D E F G L K J I H
    在本题中,程序首先定义了一个大小为12的宏SIZE,然后定义了一个函数sub,该函数带有三个形参,第一个为字符型指针变量,另外两个为整型变量。
    在主函数中,首先定义了一个大小为宏SIZE的字符型数组s,并对其进行了初始化操作,然后定义一个循环变量i,接着调用函数sub,传递的实参分别为数组名s,7和数组长度减1,此时程序运行到sub函数,在该函数体中,首先运行while循环,该循环的结束条件为t1<t2,从传递的参数可以知道t1和t2的初值分别为7和11。
    第一次循环时,将*(a+t1)即a[7]的值赋值给ch,然后将*(a+t2)即a[11]的值赋给a[7],将ch的值赋给a[11],从分析可以知操作其实是交换*(a+t1)与*(a+t2)的值,即a[7]和a[11]的值,然后变量t1加1为8,t2减1为10。
    由于8<10,程序进行第二次循环,即交换数组元素a[8]和a[10]的值,然后变量t1加1为9,t2减1为9。由于这两个变量的值相等,循环结束。
    循环结束后,数组s中各元素的值分别为A、B、C、D、E、F、G、L、K、J、I、H,最后主函数用一个循环,输出数组s中各元素的值,因此,最后输出的结果是A B C D E F G L K J I H。

  • 第8题:

    有以下程序: include main() {char ch1,ch2;int n1,n2;ch1=getchar();ch2=getehar();n1

    有以下程序:

    include <stdio.h>

    main()

    { char ch1,ch2;int n1,n2;

    ch1=getchar();ch2=getehar();

    n1=ch1-'0'; n2=n1*10+(ch2-'0');

    printf("%d\n",n2);

    }

    程序运行时输入:12<回车>,执行后的输出结果是【 】。


    正确答案:12
    12 解析:程序中的ch1与ch2为字符型变量,输入12后,ch1得到字符'1',ch2得到字符'2'。n1 =ch1-'0'将字符1,转换为数值1,同理,n2为1*10+2=12。程序执行后输出十进制整数12。

  • 第9题:

    有以下程序:include main(){union{charch[2];int d;} s;s.d=0x4321;printf("%x,%x\n",

    有以下程序: #include <stdio.h> main() { union { charch[2]; int d; } s; s.d=0x4321; printf("%x,%x\n",s.ch[0],s.ch[1]); } 在16位编译系统上,程序执行后的输出结果是( )。

    A.21,43

    B.43,21

    C.43,00

    D.21,00


    正确答案:A
    解析:int型变量和字符数组ch共用两个字节的存储单元,通常ch[0]位于低字节,ch[1]位于高字节,所以s.ch[0]=21,s.c[1]=43。

  • 第10题:

    下列程序的输出结果是______。include main(){union {int k;char i[2]; }*S,a; s=&

    下列程序的输出结果是______。#include <stdio.h>main(){ union { int k; char i[2]; } *S,a; s=&a; s->i[0]=0x39; s->i[1]=0x38; printf("%x\n",s->k);}

    A.3839

    B.3938

    C.380039

    D.390038


    正确答案:A

  • 第11题:

    有以下程序:includeunion pw{int i; char ch[2]; } a;main(){a.ch[0]=13; a.ch[1]=0;

    有以下程序: #include <stdio.h> union pw { int i; char ch[2]; } a; main() { a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); } 程序的输出结果是(注意:ch[0]在低字节,ch[1]在高字节)( )。

    A.13

    B.14

    C.208

    D.209


    正确答案:A
    解析:根据共用体的定义可知:共用体a的成员i和成员ch[2]共用同一段内存空间,所以,当程序给a.ch[0]和a.ch[1]赋值后,实际上,共用体成员i的值就确定为13了,所以打印输出的结果应当为13。

  • 第12题:

    以下程序的输出结果是()      #include      union pw  {int i;char ch[2];}a;   main( )  {a.ch[0]=13;a.ch[1]=0;printf(”%d/n”,a.i);}      (注意:ch[0]在低字节,ch[1]在高字节。) 

    • A、13
    • B、14
    • C、208
    • D、209

    正确答案:A

  • 第13题:

    有以下程序 main() { union { char ch[2]; int d; }s; s.d=0x4321; printf("%x,%x\n",s.ch[O],s.ch[1]); } 在16位编译系统上,程序执行后的输出结果是______。

    A.21,43

    B.43,21

    C.43,00

    D.21,00


    正确答案:A
    解析:此题考核的是共用体的特征。int类型变量和字符数组ch共用两个字节的相同的存储单元,通常ch[0]位于低字节,ch[1]位于高字节,所以s.ch[0]=21,s.ch[1]=43。

  • 第14题:

    下列程序运行时,若输入labcedf2df<回车>输出结果为【】。 include main(){char a=0,ch; wh

    下列程序运行时,若输入labcedf2df<回车>输出结果为【 】。

    include<stdio.h>

    main()

    { char a=0,ch;

    while((ch==getchar())!='\n')

    { if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch'a'+'A';

    a++;prtchar(ch);

    }

    printf("\n");

    }


    正确答案:1AbCeDf2dF
    1AbCeDf2dF 解析:本题的执行过程是先从键盘上获得—个字符,判断是不是换行符,如果不是则继续执行循环体,再判断字符变量 a是否是偶数以及是否是小写字母,如果a不是偶数且输入的字符为小写字母,则将其转换成大写字母,接着执行a++;语句,变量a自增1,输出字符,因此本题的输出结果为1AbCeDF2dF(a相当于用来记录当前的顺序,即是第偶数个字符还是第奇数个字符)。
    字符位数:0 123456789
    输入字符:1 abcedf2df
    输出字符:1 AbCeDf2dF

  • 第15题:

    下列程序(注意:ch[0]在低字节,ch[1]在高字节)的输出结果是______。includeunion pw{int

    下列程序(注意:ch[0]在低字节,ch[1]在高字节)的输出结果是______。#include<stdio.h>union pw{ int i;char ch[2];}a;main (){ a.ch[0]=13;a.ch[1]=0; printf("%d\n",a.i);}

    A.13

    B.14

    C.208

    D.209


    正确答案:A

  • 第16题:

    以下程序运行后的输出结果是( )。 include main() {char ch[]="abcd",x[4][4];int i; f

    以下程序运行后的输出结果是( )。 include<string.h> main() {char ch[]="abcd",x[4][4];int i; for(i=0;i<4;i++)strcpy(x[i],ch); for(i=0;i<4;i++)printf("%s",&x[i][i]); printf("\n"); }


    正确答案:abcdabcdabcdabcdbcdabcdabcdcdabcdd
    abcdabcdabcdabcdbcdabcdabcdcdabcdd

  • 第17题:

    有以下程序: main { union { char ch[2]; int d; }s; d=0x4321; printf("%x,%x\n",S.ch[0],S.ch[l]); } 在16位编译系统上,程序执行后的输出结果是( )

    A.21,43

    B.43,21

    C.43,00

    D.21,00


    正确答案:A
    s是一个公用体,d的值分别与ch中的两个元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此输出的结果为21,43。

  • 第18题:

    下列程序的输出结果是()。includemain() {char ch[2][5]={"1234","5678"},*p[2];int i,

    下列程序的输出结果是( )。 #include<stdio.h> main() { char ch[2][5]={"1234","5678"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) { s=p[i][j]-'0'; printf("%d",s);} }

    A.6357

    B.6135

    C.1357

    D.691357


    正确答案:C
    解析:本题先将指针P指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的十进制数。

  • 第19题:

    有以下程序#include <stdio.h>union pw{ int i; char ch[2];}a;main(){ a.ch[0]=13;a.ch[1]=0; printf("%d\n",a.i);} 程序的输出结果是A.13 B.14C.0 D.20


    正确答案:A
    本题主要考查联合体的内容。关于联合体,我们需要注意以下几个特点。
    (1)联合体不允许做初始化赋值,赋值只能在程序中进行。
    (2)由于联合体成员共享存储空间的原因,导致一个联合体变量每次只能给一个成员变量赋值,而且联合体中所有成员的首地址相同,即都是变量的地址。
    (3)联合体的存储空间与其成员变量中所需空间最大的变量保持一致,即联合变量的长度等于各成员中最长的长度。
    在本题中,程序首先定义了一个联合体和一个该联合体的联合体变量a,在主函数中,分别用两条语句给联合体成员赋值,由于ch是一个数组,它的元素仍按普通数组一样排列。程序要求的输出结果是a.i,由于联合体中所有成员的首地址相同,即a.i与a.ch的首地址相同,而在ch中第一个元素为13,因此,输出a.i的结果就为13。本题正确的答案是A。

  • 第20题:

    如下程序的输出结果是includemain(){ char ch[2)[5]={"6937","8254"},*p[2];int i,j,s

    如下程序的输出结果是 #include<stdio.h> main() { char ch[2)[5]={"6937","8254"},*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s);}

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    解析:通过行指针p来实现数组元素的引用。注意:用格式说明符%s进行整串输入与输出。

  • 第21题:

    下面程序的输出结果是______。includemain(){char ch[7]={"12ab56"}; int i,s=0; for(i

    下面程序的输出结果是______。 #include<stdio.h> main() { char ch[7]={"12ab56"}; int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); }

    A.1

    B.1256

    C.12ab56

    D.1 2 5 6


    正确答案:A
    解析:for语句中的条件表达式决定了循环体只执行一次。因此s=0*10+1,于是输出结果为1。

  • 第22题:

    下面程序的运行结果是______。 main () { char ch [7]={"65ab21"}; int i, s=0; for (i=0;ch [i]>='0'&&ch [i]<='9';i+-2) s=10*s+ch [i] -'0'; printf ("%d\n",s) ' }

    A.12ba56

    B.652

    C.6

    D.62


    正确答案:C

  • 第23题:

    有以下程序:

    #include <stdio.h>

    union pw

    { int i;

    char ch[2];}a;

    ? main()

    ? {a.ch[0]=13;a.ch[1]=0;printf( "%d\n",a.i);}

    程序的输出结果是

    A.13

    B.14

    C.208

    D.209


    正确答案:A

  • 第24题:

    单选题
    以下程序的输出结果是()      #include      union pw  {int i;char ch[2];}a;   main( )  {a.ch[0]=13;a.ch[1]=0;printf(”%d/n”,a.i);}      (注意:ch[0]在低字节,ch[1]在高字节。)
    A

    13

    B

    14

    C

    208

    D

    209


    正确答案: D
    解析: 暂无解析