单选题有如下程序: #include main() {char a='3',b='A';int i;for(i=0;i<6;i++){if(i%3)putchar(a+i);else putchar(b+i);}printf(); } 程序运行后的输出结果是(  )。A A45D78B ABC678C 34CD78D 34AB78

题目
单选题
有如下程序: #include  main() {  char a='3',b='A';  int i;  for(i=0;i<6;i++)  {   if(i%3)putchar(a+i);   else putchar(b+i);  }  printf(); } 程序运行后的输出结果是(  )。
A

A45D78

B

ABC678

C

34CD78

D

34AB78


相似考题
更多“有如下程序: #include <stdio.h> main() {  char a='3',b='A';  int i”相关问题
  • 第1题:

    有以下程序: include main ( ) int i;for(i =0;i <3 ;i ++ )switch (i)case 0: printf

    有以下程序: #include <stdio.h> main ( ) int i; for(i =0;i <3 ;i ++ ) switch (i) case 0: printf(" % d" ,i); case 2: printf(" % d" , i); default: printf( "% d" , i);程序运行后的输出结果是( )。

    A.22111

    B.21021

    C.122

    D.12


    正确答案:C
    解析:程序中没有使用break终止switch语句的执行。当i:0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,输出3个0,再执行下一循环。所以只有选项C)正确。

  • 第2题:

    有以下程序:include main( ) char * p[ ] = {"3697" ,"2548" }; int i,j;long num =0

    有以下程序: #include <stdio.h> main( ) char * p[ ] = {"3697" ,"2548" }; int i,j; long num =0; for(i =0;i<2;i ++ ) { j =0; while(p[i][j]! ='\0') { if((p[i][j]-'0')%2) num=10*num+p[i][j]-'0'; j+ =2; } printf( "%d \n" ,num);}程序执行后的输出结果是( )。

    A.35

    B.37

    C.39

    D.3975


    正确答案:C
    解析:执行main函数中的for语句,当i=0,j=0时,p[i][j]=p[0)[0]='3',满足while循环条件,执行循环体中的if语句得num=3,j=2,此时p[i][j]=p[0][2]='9',满足循环条件,执行while循环体得num=39,j=4,判断while条件,不满足并退出while循环;再次执行for语句,当i=1,j=0,p[i][j]=p[1][0]=2,满足while条件,执行循环体中的if语句,但不符合if条件,所以num不进行运算,j进行加2运算j=2,此时p[i][j]=p[1][2]=4,if条件为假,num不进行运算,j进行加2运算j=4,再执行while语句,条件不符合退出循环。所以结果为39。

  • 第3题:

    下面程序的运行结果是( )。 include main() {char a[80],*p="AbabCDcd"; int i=0,j=0; w

    下面程序的运行结果是( )。 include<stdio.h> main() {char a[80],*p="AbabCDcd"; int i=0,j=0; while(*(p++)!='\0') {if(*p>='a'&&*p<='z'){a[i]=*p;i++;} } a[i]='\0'; puts(A); }


    正确答案:babcd
    babcd 解析:C语言中“\0”表示字符串的结束。程序将p指针指向字符串“AbabCDcd”的首地址,循环开始后若指针不是指向当前字符串的结束标志位,则进入循环体。循环中每次检验字符串中字母是否在'a'与'z'之间,若满足则将当前值赋值给数组a,最后给数组添加字符结束标志。此程序可以筛选出字符串中的小写字母。

  • 第4题:

    有以下程序:include include main( ) {char a[ 7 ] = "a0 \0a0 \0";int i,

    有以下程序:#include <stdio.h>#include <string.h>main( ) { char a[ 7 ] = "a0 \0a0 \0"; int i,j; i = sizeof(a); j = strlen(a); printf(" % d %d \n" ,i,j); }程序运行后的输出结果是( )。

    A.22

    B.76

    C.72

    D.62


    正确答案:C
    解析:C语言.中以,'\0'作为字符串的结束符,且strlen函数计算的是,'\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。

  • 第5题:

    下面程序的输出结果是______。includemain(){char*p[]={"BOOL","OPK","H","SP"}; int i

    下面程序的输出结果是______。#include<stdio.h>main(){ char*p[]={"BOOL","OPK","H","SP"}; int i; for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n");}

    A.SO

    B.SP

    C.SPOPK

    D.SHOB


    正确答案:A
    解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“0”,所以本题的输出为SO。

  • 第6题:

    设有下列程序: include include main() { int i; char si 10],ti 10]; gets(

    设有下列程序:

    include<stdio.h>

    include<string.h>

    main()

    { int i;

    char si 10],ti 10];

    gets(t);

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

    { gets(s);

    if(strcmp(t,s)<0)strcpy(t,s);

    }

    printf("%s\n",t);

    }

    程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。


    正确答案:QTHRG
    QTHRG 解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若ts,则函数值小于0。strcpy(t,s)函数的功能是把字符数组,所指字符串的内容复制到字符数组t所指的存储空间中。
    本题中,t[10]="CDEF".第一次循环,s[10]="BADEF",if语句的控制条件strcmp(t,s)0不成立,接着执行第二次循环,s="QTHRG”, if语句的控制条件strcmp(t,s)0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。

  • 第7题:

    有以下程序includeincludevoidfun(char*s[],intn){char*t;int i,j;for(i=0

    有以下程序 #include <stdio.h> #include <string.h> void fun(char *s[],int n) { char *t; int i,j; for(i=0;i<n-1;++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i];s[j];s[j]=t;} } main() { char *ss[]={"bcc

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A
    解析: 函数fun(char*s[],int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={"xy","bcc"," bbcc","aabcc","aaaacc"},ss[0],ss[4]的输出结果为xy,aaaacc。

  • 第8题:

    下面程序的输出结果是_______。includemain(){char*p[]={"DOOL","OPK","H","SP"}; int

    下面程序的输出结果是_______。 #include<stdio.h> main() { char*p[]={"DOOL","OPK","H","SP"}; int i; for (i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n"); }

    A.SO

    B.SP

    C.SPOPK

    D.SHOB


    正确答案:A
    解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“0”,所以本题的输出为SO。

  • 第9题:

    有以下程序: 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中字符串。

  • 第10题:

    有以下程序:include fun( char p[] [10]){int n=0,i; for(i=0;i<7;i ++) if(p[i][0] =

    有以下程序:#include <stdio.h>fun( char p[] [10]){ int n=0,i; for(i=0;i<7;i ++) if(p[i][0] =='T') n++; return n;}main( ){ char sir[] [10] = { "Mon" ,"Tue" ,"Wed" ,"Thu" ,"Fri" ,"Sat" ,"Sun" }; prlnff(" % d\n" ,fun(str) );}程序执行后的输出结果是( )。

    A.1

    B.2

    C.3

    D.0


    正确答案:B
    解析:数组名str作为函数参数将实参数组的起始地址传给形参数组p,当形参数组发生变化时主函数中的实参数组中的值也随之发生变化。调用fun函数执行for循环语句后,n为2,返回给main函数输出。

  • 第11题:

    下列程序的输出结果是()。 include main() { char a[]= {'a','b','c','d','e','f,'\0'}

    下列程序的输出结果是( )。 #include<stdio.h> main() { char a[]= {'a','b','c','d','e','f,'\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d",i,j); }

    A.7,7

    B.7,6

    C.6,6

    D.6,7


    正确答案:B
    解析:sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中,'\0'是一个转义字符,它占存储空间,但不计入串的长度。

  • 第12题:

    下列程序的输出结果是______。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

  • 第13题:

    有以下程序:includeincludemain() {char c[6];int i=0;for(;j<6;c[i]=getch

    有以下程序:#include<stdio.h>#include<stdio.h>main() { char c[6]; int i=0; for(;j<6;c[i]=getchar(),i++); for(i=0;i<6;i++)putchar(c[i]); printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为 ______。

    A.a b c d e f

    B.a b c d

    C.ab c d

    D.abcdef


    正确答案:C
    解析:1.getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。2.putchar():此函数的作用是向终端输出一个字符,也可以输出控制字符。本题在输入字符时,ab和c后面的回车符分别赋给了c[2]和c[4],所以,正确答案为C。

  • 第14题:

    有以下程序 include main() { int i,j,m=55; for(i=1;i<=3;i++)

    有以下程序 #include <stdio.h> main() { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf("%d\n",m); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:B

  • 第15题:

    有以下程序:include main ( ){int a[3] [3] , *p,i; p=&a[0][0];for(i=0;i<9; i++

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

    A.012

    B.123

    C.234

    D.345


    正确答案:D
    解析:程序通过for(i=0;i9;i++)p[i]=i语句对二维数组a的元素依次赋值,使a[0][0]=0,a[0][1]=1,a[0][2]=2,a[1][0]=3,a[1][1]=4,a[1][2]=5,a[2][0]=6,a[2][1]=7,a[2][2]=8,程序运行的结果为345。

  • 第16题:

    有如下程序段#include "stdio.h"#include "string.h"#define N 10#define M 10char *find(char(*a)[M],int n){ char *q;int i; q=a[0]; for(i=0;i<n;i++) if(strcmp(a[i],q)<0)q=a[i]; return q;}main(){ char s[N][M]={"tomeetme","you","and","he","china"}; char *p; int n=5; p=find(s,n); puts(p);}则执行后输出的结果为A.he B.and C.you D.tomeetme


    正确答案:B
    在本题中,首先定义了两个宏N和M,大小都为10,然后定义了一个返回指针的函数find,该函数带有两个形参,第一个为字符型的指针数组,第二个为整型变量,在函数体中,首先定义了一个指针变量q,并将形参中指针数组的第一个元素赋值给q,然后执行for循环,在循环体中,首先执行条件判断语句,其条件为strcmp(a[i],q)<0(strcmp函数的作用是比较两字符串的大小,如果相等,则返回0值,如果参数中的第一个字符串大,则返回正值,否则返回负值),如果结果为真,说明指针数组当前元素所指向的字符串比q所指向的字符串小,此时,程序执行将当前指针数组元素赋值给p,最后返回p,通过上面的分析我们可以看出,find函数的作用是找出指针数组中各元素所指向字符串的最小字符串。
    在主函数中,定义了一个二维数组s,并赋了初值,然后定义一个指针变量p,用来存放函数find的返回值。调用函数find的参数分别为s和5,结合形参看find函数,不难知道调用find函数就是找出二维数组s中各字符串中最小的字符串,那么应该为and。此时,指针变量p指向字符串“and”的首地址,然后执行puts(p),完成该字符串的输出。因此,本题正确的答案是B。

  • 第17题:

    有下面程序段 #include"stdio.h" #include"string.h" main() { char a[3][20]={{"china"},{"isa"},{"bigcountry!"}}; chark[100]={0},*p=k; int i; for(i=0;i<3;i++) {p=strcat(p,a[i]);} i=strlen(p); printf("%d\n","i);} 则程序段的输出结果是

    A.18

    B.19

    C.20

    D.21


    正确答案:B
    解析: 字符串连接函数streat的调用形式如下:strcat(s1,s2)。此函数将s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。

  • 第18题:

    有以下程序includemain(){char*a[]={"abcd","ef","gh","ijk"};int i; for(i=0;i<4;i++

    有以下程序 #include<stdio.h> main() { char*a[]={"abcd","ef","gh","ijk"}; int i; for(i=0;i<4;i++) printf("%c",*a[i]); } 程序运行后的输出结果是______。

    A.agei

    B.dfhk

    C.abcd

    D.abcdefghijk


    正确答案:A
    解析:本题主要考查了字符数组的赋值,字符数组中的一个元素存放一个字符,所以数组元素a[0]、a[1]、a[2]和a[3]中依次存放了a、e、g、i,因此,在执行for循环时,四次的输出结果为a、e、g、i,因此选项A是正确的。

  • 第19题:

    以下程序的输出结果是【】。 include main() {struct stru {int a; float b; char d[4]; }

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

    include<stdio.h>

    main()

    { struct stru

    { int a;

    float b;

    char d[4];

    };

    printf("%d\n",sizeof(struct stru));

    }


    正确答案:10
    10 解析:结构体变量占用内存空间的字节数是结构体各分量占用内存空间的字节数的总和。int型变量占用2字节,float型变量占用4字节,char型占用1字节,char d[4]是含有4个元素的char型数组,占用4字节。sizeof(struct stru)是计算结构体变量占用内存空间的字节数,2+4+4=10。

  • 第20题:

    有以下程序 include main() { int i=5; do { if(i%3==1)

    有以下程序 #include <stdio.h> main() { int i=5; do { if(i%3==1) if(i%5==2) { printf"*%d",i); break; } i++; } while(i!=0); printf("\n"); } 程序的运行结果是______。

    A.*7

    B.*3*5

    C.*5

    D.*2*6


    正确答案:A
    解析:do-while语句的特点是先执行循环体,然后判断循环条件是否成立,当循环条件的值为0时循环结束。break的特点;当break出现在循环体中,则在执行break后,跳出本层循环体。本题执行过程如下:
    i=5:不满足条件i%3=1,执行i++,此叫i=6;
    i=6:不满足条件i%3=1,执行i++,此时i=7;
    i=7:满足条件i%3=1,执行内嵌if,判断条件i%5=2,满足,输出“*7”,执行break,跳出do循坏体,执行“printf("\n");”,结束。

  • 第21题:

    有以下程序:include include main(int argc,char *argv[]){ int i,len=0;f

    有以下程序: #include <stdio.h> #include <string.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i+=2)len+=strlen(argv[i]); prinff("%d\n",len); } 此程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: ex abed efg h3 k44则执行后的输出结果时( )。

    A.14

    B.12

    C.8

    D.6


    正确答案:D
    解析:main函数可以有两个参数,第一个参数为一个整型变量,表示命令行参数的个数,本题为5;第二个参数为一个字符型指针数组,其中第一个数组元素指向程序名,第二个数组元素指向命令行中的第一个参数,以后依此类推。由程序中的for循环可以看出,程序是求第一(argv[1])、第三(argv[3])个参数的长度之和,即4+2=6。

  • 第22题:

    有以下程序includevoid main(){char s[]={"01aXy"};int i,n=0;for(i=0;s[i]!=0;i++)if

    有以下程序 #include<stdio.h> void main() { char s[]={"01aXy"};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]<='a'&&s[i]>='z')n++; printf("%d\n",n); } 程序运行后的输出结果是( )。

    A.0

    B.2

    C.3

    D.5


    正确答案:A

  • 第23题:

    下列程序的执行结果是______。include union {int i;char c[2]; }; void main() {union

    下列程序的执行结果是______。 #include<stdio.h> union { int i; char c[2]; }; void main() { union un x; x.c[0]=10; x.c[1]=1; printf("\n%d",x.i); }

    A.266

    B.11

    C.265

    D.138


    正确答案:A
    解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以兄i的值为266。

  • 第24题:

    有下面程序段 #include"stdio.h" #include"string.h" main() { char a[3][20]={{"china"};{"isa"},{bigcountry!"}}; char k[100]={0},*p=k; int i; for(j=0;j<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf("%d\n",i);} 则程序段的输出结果是

    A.18

    B.19

    C.20

    D.21


    正确答案:B
    解析:字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数用来把s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。