以下程序段的输出结果为()。charastr[5]="1234";char*pstr=astr;printf("%c",pstr[1]-'0');A.ASCII码值为2的字符B.ASCII码值为1的字符C.2D.1

题目
以下程序段的输出结果为()。charastr[5]="1234";char*pstr=astr;printf("%c",pstr[1]-'0');

A.ASCII码值为2的字符

B.ASCII码值为1的字符

C.2

D.1


相似考题
更多“以下程序段的输出结果为()。charastr[5]="1234";char*pstr=astr;printf("%c",pstr[1]-'0'); ”相关问题
  • 第1题:

    下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由大到小的顺序进行排序。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <conio.h>

    include <stdio.h>

    define MAXLINE 20

    void fun(char *pstr[6])

    {

    int i,j;

    char *p;

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

    for(j=i+1;j<6;j++)

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

    if(strcmp((pstr+i),(pstr+j))<0)

    {

    p=*(pstr+i);

    *(pstr+i)=*(pstr+j);

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

    *(pstr+j)=*p;

    }

    }

    main()

    {

    int i;

    char*pstr[6],str[6][MAXLINE];

    clrscr();

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

    pstr[i]=str[i];

    printf("/nEnter 6 string(1 string at each line):\n");

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

    scanf("%s",pstr[i]);

    fun(pstr);

    printf("The strings after sorting:\n");

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

    printf("%s\n",pstr[i]);

    }


    正确答案:(1)错误:if(strcmp((pstr+i)(pstr+j))0) 正确:if(strcmp(*(pstr+i)*(pstr+j))0) (2) 错误:*(pstr+j)=*p; 正确:*(pstr+j)=p;
    (1)错误:if(strcmp((pstr+i),(pstr+j))0) 正确:if(strcmp(*(pstr+i),*(pstr+j))0) (2) 错误:*(pstr+j)=*p; 正确:*(pstr+j)=p; 解析:错误1:本题旨在考查指针的引用方法。*(pstr+i)指字符串中下标为i的字符。错误2:*p是字符类型,而*(pstr+j)是指针类型,二者不能进行赋值运算。

  • 第2题:

    阅读以下说明和C程序,将应填入 (n) 处的字句写在对应栏内。 2、【说明】下面的程序按照以下规则输出给定名词的复数形式。 a.若名词以“y”结尾,则删除y并添加“ies”; b.若名词以“s”、“ch”或“sh”结尾,则添加“es”; c.其他所有情况,直接添加“s”。【C程序】 #include <stdio.h> #include <string.h> char*plural(char *word) { int n; char *pstr; n=strlen(word); /*求给定单词的长度*/ pstr=(char*)malloc(n+3);/*申请给定单词的复数形式存储空间*/ if (!pstr||n<2) return NULL; strcpy(pstr,word); /*复制给定单词*/ if ( (1) ) { pstr[n-1]='i';pstr[n] ='e';pstr[n+1]='s'; (2) ; } else if(pstr[n-1]=='s'| |pstr[n-1]=='h'&&( (3) )) { pstr[n]='e';pstr[n+1]='s';pstr[n+2]='\0'; } else { pstr[n]='s';pstr[n+1]='\0';) (4) ; } main() { int i; char *ps; char wc[9][10]= {"chair","dairy","boss","circus","fly","dog","church","clue","dish"); for(i = 0;i<9; i++) { ps= (5) ; printf("%s: %s\n",wc[i],ps); /*输出单词及其复数形式*/ free(ps); /*释放空间*/ } system("pause"); }


    答案:
    解析:
    (1)pstr[n-1]='y',或*(pstr+n-1)=='y',或其等价表示 (2)pstr[n+2]='\0',或*(pstr+n+2)='\0',或其等价表示 (3)pstr[n-2]='c'||pstr[n-2]='s',或其等价表示 (4)return pstr (5)plural(wc[i]),或其等价表示
    【解析】

    本题考查C程序设计基本能力和字符串处理基本操作。 C程序中字符串存储在字符数组中,串的结尾需要设置结束标志符号'\0'。若已知串 pstr的长度为n(不包括结束标志),则串中的字符依次存储在pstr[0],pstr[1],...,pstr[n-1]中。因此,名词的最后一个字符pstr[n-1]若等于字符“y”,则按照规则a求其复数形式。下面的if语句处理的是以“y”结尾的名词,因此,空(1)处应填入“pstr[n-1]='y'”或其等价形式。由于串pstr的长度发生了变化,所以需要设置新的结束标志,空(2)处应填入“pstr[n+2]='\0'”’或其等价形式。 if( (1) ) { pstr[n-1]= 'I'; pstr[n]= 'e'; pstr[n+1] = 's'; (2) ; } 显然,下面的if语句处理规则b所示的情况,即串的末尾为“s”、“ch”或“sh”的情形,空(3)处应填入“pstr[n-2]='c'||pstr[n-2]='s”或其等价形式。 if(pstr[n-1]=='s'||pstr[n-1]=='h' && ( (3) )) { pstr[n] = 'e'; pstr[n+1] ='s'; pstr[n+2]='\0'; } 根据函数“char *plural(char *word)”的定义,最后应将求得的给定名词的复数形式返回给主调函数mae,对于串,应返回串空间的首地址,即返回指针pstr,因此空(4)处应填入“return pstr”。 根据以下代码,空(5)处应调用函数plural(char*word)对指定名词求复数,数组 WC初始化时已设置了名词序列,因此,空(5)处应填入“plural(wc[i])”。 for(i = 0; i < 9; i++) { ps= (5) ; printf("%s: %s\n",wc[i],ps); /*输出单词及其复数形式*/ free(ps); /*释放空间*/ }

  • 第3题:

    对于 char *pstr;,以下赋值语句正确的是()。

    A.*pstr="Hi"

    B.pstr="Hi"

    C.*pstr="Hi"

    D.**pstr="Hi"


    char s1[10],s1="china"

  • 第4题:

    下面程序输出的结果是()。includemain(){char *a="1234";fun(a);printf("\n");}fun(cha

    下面程序输出的结果是( )。 #include<stdio.h> main() { char *a="1234"; fun(a); printf("\n"); } fun(char *s) { char t; if(*s) { t=*S++;fun(s);} else return; if(t!='\0') putchar(t); }

    A.1234

    B.4321

    C.1324

    D.4231


    正确答案:B
    解析:本题的fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量t,然后s所指的内容是否为字符串结束符,不是的话将s所指的内容赋给t,同时使s后移一位,然后递归调用fun(s)。到这条语句为止是递归过程,即接下来连续递归调用fun(s)都只会执行到这一半,直到回朔条件(s所指内容是字符串结束符)出现,fun()函数连续返回,判断t不等于0的话,就输出t,所以输入的字符串被逆序输出,故本题的正确答案应该是B。

  • 第5题:

    以下程序段的输出结果是 int main() { int a=1234; printf("%2dn",a); return 0; }

    A.1234

    B.12

    C.34

    D.无结果


    38 1 0 3810