更多“已知char a=’b’;则a++;是错的,因为不能对字符变量自加。”相关问题
  • 第1题:

    定义字符指针char *str="hello",已知sizeof(str)=4,则strlen(str)=______。


    正确答案:5
    5

  • 第2题:

    有以下函数:fun(char * a,char *b){ while((*a! ='\0')&&( * b! :'\0')&&( *a== *b)) {a++;b++;} return( *a-*b);} 该函数的功能是( )。

    A.将b所指字符串连接到a所指字符串中

    B.计算a和b所指字符串的长度之差

    C.将b所指字符串连接到a所指字符串后面

    D.比较a和b所指字符串的大小


    正确答案:D
    解析:两个字符串的比较是从左至右对两个字符串对应位置上的字符逐个进行比较,即按其ASCII码值的大小比较,直到出现不同的字符或遇到,'\0'为止。若全部字符都相同,则两个字符串相等,返回0;若出现不相同的字符,则返回第一个不相等字符的ASCII码的差值。fun函数实现了该功能。

  • 第3题:

    有以下程序:includevoid fun(char *a,char*B){while(*a=='*')a++;while(*b=*A){b++;a+

    有以下程序: #include<stdio.h> void fun(char *a,char*B){while(*a=='*')a++; while(*b=*A){b++;a++;} } main() {char*s="****a*b****",t[80]; fun(s,t);puts(t); } 程序的运行结果是( )。

    A.*****a*b

    B.a*b

    C.a*b****

    D.ab


    正确答案:C

  • 第4题:

    有下列程序:includevoid fun(char *a, char *B){while(*a=='*')a++;while(*b=*A){b++;

    有下列程序: #include <stdio.h> void fun(char *a, char *B) { while(*a=='*')a++; while(*b=*A) {b++;a++;} } main() { char *s="*****a*b****",t[80]; fun(s,t);puts(t); 程序的运行结果是( )。

    A.*****a*b

    B.a*b

    C.a*b****

    D.ab


    正确答案:C
    解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个 while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。

  • 第5题:

    已知strcpy 的函数原型:char *strcpy(char

    *strDest, const char *strSrc)其中strDest 是目的字符

    串,strSrc 是源字符串。不调用C++/C 的字符串库

    函数,请编写函数strcpy。


    正确答案:

     

    char *strcpy(char *strDest, const char *strSrc)
    {
    if ( strDest == NULL || strSrc == NULL)
    return NULL ;
    if ( strDest == strSrc)
    return strDest ;
    char *tempptr = strDest ;
    while( (*strDest++ = *strSrc++) != ‘\0’)
    ;
    return tempptr ;
    }

  • 第6题:

    若ch为char型变量,k为int型变量(已知字符a的ASCⅡ码是97),则执行下列语句后输出的结果为( )。

    A.因变量类型与格式描述符的类型不匹配,输出无定值

    B.输出项与格式描述符个数不符,输出为0或不定值

    C.62,142,k=%d

    D.62,142,k=%l0


    正确答案:C
    本题考查printf函数的格式。第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有2个%说明,第1个%后面的字符要原样输出。“%x”和“%o”分别表示以十六进制和八进制无符合型输出整型数据(不带前导0x或0)

  • 第7题:

    设有语句char a='\72';,则变量a( )

    A.包含1个字符

    B.包含2个字符

    C.包含3个字符

    D.说明不合法


    正确答案:A

  • 第8题:

    char类型的变量只能存放一个字符。 ()

    此题为判断题(对,错)。


    参考答案正确

  • 第9题:

    设有定义语句:char b='\123';则变量b包括( )。

    A.4个字符

    B.3个字符

    C.2个字符

    D.一个字符


    正确答案:D
    解析:\123为转义字符,是一个字符常量,斜线后面的是八进制数,可以由0开头,最多由3个八进制数组成。它只代表一个字符,此八进制数就是这个字符的代码。语句charb='\123'是给字符变量赋初值,初值为一个字符。所以,选项D符合题意。

  • 第10题:

    设有语句char a=‘\65’;则变量a是() 

    • A、包含1个字符
    • B、包含2个字符
    • C、包含3个字符
    • D、包含4个字符

    正确答案:A

  • 第11题:

    设a是char型变量,其值字符为’1’,则把其值变成整数1的表达式是()。

    • A、(int)a
    • B、int(a)
    • C、a=a-48
    • D、a/(int)a

    正确答案:C

  • 第12题:

    单选题
    设有语句char a=‘\65’;则变量a是()
    A

    包含1个字符

    B

    包含2个字符

    C

    包含3个字符

    D

    包含4个字符


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

  • 第13题:

    已知有变量datal定义如下: union data { int i; char ch; float f; }datal; 则变量datal所占的内存存储空间可表示为(57)。

    A.sizeof(int)

    B.sizeof(char)

    C.sizeof(float)

    D.SiZCOf(mt)+sizeof(char)+sizeof(float)


    正确答案:C
    解析:本题考查C语言编程的基本知识。本题变量datal定义为联合结构。联合中所有数据项占有相同的内存空间。联合体所占的内存存储空间为所包含数据项所占的内存存储空间的最大值。

  • 第14题:

    有以下函数 fun(char *a, char *B) { while((*a!='\0')&&(*b!='\0')&&(*a==*B) ) { a++; b++;} return(*a-*B) ; } 该函数的功能是

    A.计算a和b所指字符串的长度之差

    B.将b所指字符串复制到a所指字符串中

    C.将b所指字符串连接到a所指字符串后面

    D.比较a和b所指字符串的大小


    正确答案:D
    解析:本题要求阅读的代码是一个函数,阅读之前先要看清函数的定义,该函数有两个参数,都是字符指针,这说明它接收的是两个字符串.该函数没有定义返回类型,C语言规定函数的返回类型为int时可以省略,所以切不可将其看成是无返回类型的void型函数,它是int型函数。函数体中除了返回语句外,只有一条while循环语句,该循环的循环条件为(*a!='\'0}&&(*b!='\0')&&(*a==*B),即当a和b所指处都不是字符结束符'\0'并且a和b所指处的内容相等时执行循环。而循环体中只是简单地将指针a和b同时往后移动1位。循环结束后返回a所指内容减去b所指内容的差。换个角度去考虑,也就是说当字符串a或b中有一个结束了或者是它们的相同位置中有一个字符不同时,则返回该位置两个字符之差。若两者长度相同而且所有对应字符都相同的话,最后返回的是'\0\-'\0'=0,否则的话就返回两个字符串第一对不相同的字符之差.这时应该可以看出来,这个函数实现的是对两个字符串的比较。所以,4个选项中D正确。

  • 第15题:

    以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}


    正确答案:p+n
    在本题中,函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址。
    在本题的程序中,fun函数带有两个形参,其中一个是指针str,它指向字符串的首地址,另一个是字符变量c。程序首先定义了一个整型变量n,从程序中可知,它是字符串str中参数c相对于首地址的偏移量,然后定义了一个指针变量p,指向字符串str的首地址,然后执行条件语句,如果字符串不为空,则执行循环语句,循环结束的条件是要么字符串结束,要么找到形参c中对应的字符。根据循环结束的条件我们可以判断,其非死循环,循环结束后,从程序中可以看出,判断循环结束的原因是否因为字符串结束而结束的,如果是,说明没找到形参c中对应的字符,返回NULL。
    如果不是,则说明是因为找到了形参c中对应的字符而结束循环的。根据题目要求,需要返回以形参c中字符开头的后续字符串的首地址,而这时以形参c中字符开头的后续字符串的首地址为p+n。

  • 第16题:

    下列函数的功能是

    fun(char *a,char *B)

    { while((*b=*A)! =‘\O’) {a++;b++;}}

    A.将a所指字符串赋给b所指空间

    B.使指针b指向a所指字符串

    C.将a所指字符串和b所指字符串进行比较

    D.检查a和b所指字符串中是否有‘\O’


    正确答案:A
    解析:表达式*b=*a是将a所指的字符赋给b所指的空间,然后,指针a和b依次后移,直到到达指针a所指字符串的结尾。

  • 第17题:

    若要用下面的程序片段使指针变量p指向一个存储字符型变量的动态存储单元,则应填入; char * p;p= ( ) malloc (sizeof (char));

    A.char

    B.char *

    C.(* char)

    D.(char *)


    正确答案:D

  • 第18题:

    设有说明语句:char a='\72';,则变量a______。

    A.包含1个字符

    B.包含2个字符

    C.包含3个字符

    D.说明不合法


    正确答案:A

  • 第19题:

    已知char**t;则变量t是( )


    正确答案:C

  • 第20题:

    设有语句char a='\72';则变量a______。

    A.包含1个字符

    B.包含2个字符

    C.包含3个字符

    D.说明不合法


    正确答案:A
    解析:'\72'是反斜线后跟一个八进制数,代表字符常量':'。

  • 第21题:

    先用以下语句定义字符型变量:char c;然后要将字符a赋给变量c,则下列语句中正确的是______。

    A.c='a';

    B.c="a";

    C.c="97";

    D.c='97';


    正确答案:A

  • 第22题:

    设有语句char a=’/72’;则变量a()

    • A、包含1个字符
    • B、包含2个字符
    • C、包含3个字符
    • D、声明不合法

    正确答案:A

  • 第23题:

    单选题
    若有说明语句:char c='\72';则变量c中存放的是(  )。
    A

    2个字符

    B

    1个字符

    C

    3个字符

    D

    说明语句不合法


    正确答案: C
    解析:
    用一对单引号括起来的单个字符为字符常量,以“\”开头的转义字符也是字符常量。“\”后可以为单个字符,也可以为八进制或十六进制数字,故变量c中存放的是一个字符。答案选择B选项。