求解释c语言 char a中char a[2]中的2是什么意思 是指能输入的最大字符数还是什么?最多能输几个字符和字符组

本文所属图书&>&
本书根据计算机专业C语言程序设计课程的教学大纲编写,全书共分9章,分别介绍了C语言概述、数据类型及其运算、选择语句和循环语句、数组、指针、函数、结构体和共用体、预处理和位段、文件。每章由基本知识点和例...&&
1. 单项选择题
【例4-2-1】以下错误的语句是&&&&& 。
A. static char word[]={'C','h','i','n','a'};&&&&&&&&&&&&&&&&& B. static char word[]={&China&};
C. static char word[]=&China&;&&&&&&&&&&&&&&&&&&&&&&&&&&& D. static char word[]='China';
&解:字符串应用双引号括起来。本题答案为D。
【例4-2-2】以下对C语言字符数组的描述错误的是&&&&& 。
A. 字符数组可以存放字符串
B. 字符数组中的字符串可以进行整体输入输出
C. 可以在赋值语句中通过赋值运算符&=&对字符数组整体赋值
D. 字符数组的下标从0开始
&解:不能在赋值语句中用赋值运算符&=&对字符数组整体赋值。本题答案为C。
【例4-2-3】已知char str1[10],str2[]={&China&};,则在程序中能将字符串&China&赋给数组str1的正确语句是&&& 。
A. str1={&China&};&& B. strcpy(str1,str2);&&&&&& C. str1=str2;&&&&&&& D. strcpy(str2,str1);
&解:注意是将str2整体复制给str1。本题答案为B。
【例4-2-4】以下程序的执行结果是&&&&& 。
#include &stdio.h&
void main()
{&& char s[]={'a','b','\0','c','\0'};
&&& printf(&%s\n&,s);
A. 'a''b'&&&&&&&&&&&&&&&&&&&& B. ab&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& C. ab c&&&&&&&&&&&&&&&& D. 以上都不对
&解:printf函数输出字符串时以空格'\0'表示结束。本题答案为B。
【例4-2-5】已知char c1[]={&abcd&};char c2[]={'a','b','c','d'};,则下列叙述正确的是 &&&&&。
A. 数组c1和数组c2等价&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&& B. 数组c1和数组c2的长度相同
C. 数组c1的长度大于数组c2的长度&&&&&&&&&& &&&&&& D. 以上都不对
&解:语句char c1[]={&abcd&}是定义一个字符数组并进行初始化,按照C语言对字符数组的处理规定,在字符串的末尾自动加上串结束标记'\0',因此c1数组的长度是5,而数组c2是按照字符方式对数组进行初始化的,不会自动加上串标记'\0',所以数组c2的长度为4。本题答案为C。
上机验证程序如下:
#include &stdio.h&
void main()
{&& char c1[]=&abcd&;
&&& char c2[]={'a','b','c','d'};
&&& printf(&c1=%d\n&,sizeof(c1));
&&& printf(&c2=%d\n&,sizeof(c2));
【例4-2-6】以下程序段的输出结果是& &&&&。
char s[]=&\\141\141abc\t&;
printf (&%d\n&,strlen(s));
A. 9&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&& B. 12&&&&&&&&&&&&&&&&&&&&&&&&&& C. 13&&&&&&&&&&&&&&&&&&&&&&&&&& D. 14
&解:注意s中的转义字符。本题答案为A。
【例4-2-7】已知char string1[10]=&abcde&,string2[10]=&xyz&;,则下列C语言程序段的输出结果是&& &&&。
printf(&%d&,strlen(strcpy(string1,string2)));
A. 3&& &&&&&&&&&&&&&&&&&&&&&&&&&&& B. 5&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&& C. 8&&&&&& &&&&&&&&&&&&&&&&&&&& &&&&&& D. 9
&解:将string2复制到string1,输出string1的长度。本题答案为A。
【例4-2-8】有以下程序:
#include &stdio.h&
#include &string.h&
void main()
{&& char s[]=&\n123\\&;
&&& printf(&%d,%d\n&,strlen(s),sizeof(s));
执行后输出结果是&&& &&。
A. 赋初值的字符串有错&&&&&&&&&&&&&&& B. 6,7&&&&&&&&&&&&&&&&&& C. 5,6&&&& &&&&&&&&&&&&&&&&&&&& D. 6,6
&解:strlen返回字符串的长度,sizeof返回该字符串占用内存空间长度,包括字符串结束标志'\0'。本题答案为C。
【例4-2-9】以下程序的输出结果是 &&&&&。
#include &stdio.h&
void main()
{&& char ch[3][5]={&AAAA&,&BBB&,&CC&};
&&& printf(&\&%s\&\n&,ch[1]);
A. &AAAA&&&&&&&&&&&&&&&&&&&&&&&&&&& B. &BBB&&&&&&&&&&&&&&&&&&&& C. &BBBCC&&&&&&&&& D. &CC&
&解:&\&&是转义字符,输出一个&&&。本题答案为B。
【例4-2-10】以下程序的运行结果是 &&&&&。
#include &stdio.h&
#include &string.h&
void main()
{& &char s1[40]=&ab&,s2[20]=&cdef&;
&&& int i=0;
&&& strcat(s1,s2);
&&& while(s1[i]!='\0')
&&& {& &s2[i]=s1[i];
&&&&&&& i++;
&&& s2[i]='\0';
&&& puts(s2);
&解:程序先将s2连接到s1之后,然后将s1复制到s2中。本题答案为abcdef。
【例4-2-11】以下程序的运行结果是 &&&&&。
#include &stdio.h&
#include &string.h&
void main()
{&& char s1[40]={&some string * &};
&&& char s2[]={&test&};
&&& printf(&%d &,strlen(s2));
&&& strcat(s1,s2);
&&& printf(&%s\n&,s1);
&解:输出s2的长度后,将s2连接到s1之后再输出s1。本题答案为4 some string * test。
【例4-2-12】下列函数用于确定一个给定字符串str的长度,请填空。
int strlen(char str[])
{&& int num=0;
&&& while (& ①& ) ++
&&& return(& ②& );
&解:该程序的设计思想是str[num]元素不为'\0'字符,则++num即后移,直到str[num]元素为'\0'字符,此时的num就是str的长度。本题答案为① str[num]!='\0' ② num。
【例4-2-13】下面程序的作用是输出两个字符串中较短字符串的长度,请填空。
#include &stdio.h&
#include &string.h&
void main()
{&& char p1[20],p2[20];
&&& int i1,i2,
&&& gets(p1); gets(p2);&&&&&&&&&&& /*输入字符串p1和p2*/
&&& i1=& ①& ;&&&&&&&&&&&&&&&&&&& /*求字符串p1的长度*/
&&& i2=& ②& ;&&&&&&&&&&&&&&&&&&& /*求字符串p2的长度*/
&&& num=(& ③& )? &④& :& ⑤& ;&&& /*求i1和i2中较小者*/
&&& printf(&num\%d\n&,num);
&解:本题答案为①strlen(p1)& ②strlen(p2)& ③i1&i2& ④i1& ⑤i2。
【例4-2-14】下列函数inverse的功能是使一个字符串按逆序存放,请填空。
void inverse(char str[])
&&& int i,j;
&&& for (i=0,j=strlen(str);i&& ①& ;i++,& ②& )
&&& { &&m=str[i];
&&&&&&& str[i]= &&③& ;
&&&&&&& &&④& ;
&解:用i从前向后扫描str,用j从后向前扫描str,将str[i]与str[j-1]进行交换。继续这一过程直到i&=strlen(str)/2。本题答案为① strlen(str)/2,② j--,③ str[j-1],④ str[j-1]=m。
【例4-2-15】以下程序用于统计字符串中最长单词的长度和在字符串中的位置,其中单词全由字母组成。请填空。
#include &stdio.h&
int alph(char c)
{&& if ((c&='a' && c&='z') || (c&='A' && c&='Z'))
&&&&&&& &&&①& ;&&&&&&&&&&&&&&&&&&& /*为字母时返回1*/
&&&&&&& &&&②& ;&&&&&&&&&&&&&&&&&&& /*否则返回0*/
void main()
{&& static char string[]={&I am happy.&};
&&& int len=0,i,length=0,flag=1,p,p1;
&&& for (i=0; &&③& ;i++)
&&&&&&& if (alph(string[i]))&&& /*若string[i]是字母*/
&&&&&&&&&&& if (flag)
&&&&&&&&&&& {&& p1=i;
&&&&&&&&&&&&&&& &&④& ;&&&&&&&&&&& /*将取位置标记flag置为0*/
&&&&&&&&&&&&&&& len++;
&&&&&&&&&&& }
&&&&&&&&&&& else&& &&⑤& ;&&&&&&& /*单词长度增1*/
&&&&&&&&&&& else
&&&&&&&&&&& {&& flag=1;
&&&&&&&&&&&&&&& if (len&length)&&& /*将最大单词长度放入length*/
&&&&&&&&&&&&&&& {&& length=
&&&&&&&&&&&&&&&&&&& p=p1;
&&&&&&& &&&&&&&&}
&&&&&&& &&&&&&&&len=0;
&&&&&&&&&&& }
&&& printf(&最长的单词:&);
&&& for (i=p;i&p+i++)
&&&&&&& printf(&%c&,string[i]);
&&& printf(&\n&);
&解:程序中,length为最长单词的长度,p为最长单词的位置,设计思路参见程序注释。本题答案为①return 1,②return 0,③string[i]!='\0',④flag=0,⑤len++。
【例4-2-16】下面程序的作用是将以下给出字符按其格式读入数组ss中,然后输出行列号之和为3的数组元素。请填空。
#include &stdio.h&
void main()
{&& char ss[4][3]={'A','a','f','c','B','d','e','b','C', 'g','f','D'};
&&& int x,y,z;
&&& for (x=0;& ①& ;x++)
&&&&&&& for (y=0;& ②& ;y++)
&&&&&&& {&& z=x+y;
&&&&&&&&&&& if (& ③& )
&&&&&&&&&&&&&&& printf(&%c\n&,ss[x][y]);
&解:其中用x、y作为行号和列号循环求解,采用的方法是穷举法。本题答案为①x&=2& ②y&=2& ③z==3。
【例4-2-17】判断以下叙述的正确性。
(1)C语言中,gets()函数的返回值是用于存放输入字符串的字符数组的首地址。
(2)有以下程序:
#include &stdio.h&
#include &string.h&
void main()
{&& int a,b;
&&& char str[5]=&ABC&;
&&& a=strlen(&ABC&);
&&& b=sizeof(str);
&&& printf(&a=%d,&,a);
&&& printf(&b=%d\n&,b);
其输出结果是:a=4,b=4。
(3)已知字符数组str1的初值为&China&,则语句str2=str1;执行后字符数组str2也存放字符串&China&。
(4)char c[]=&Very Good&;是一个合法的为字符串数组赋值的语句。
(5)字符处理函数strcpy(str1,str2)的功能是把str1接到str2的后面。
(6)char s[5]=&abcde&;是合法的字符数组定义语句。
&解:(1)正确。
(2)错误。&ABC&字符串在内存中占4个字节,其长度为3,str数组的长度为5,无论放几个字符,其长度仍为5。应输出:a=3,b=5。
(3)错误。字符数组之间不能直接整体赋值,应为strcpy(str2,str1)。
(4)正确。
(5)错误。字符处理函数strcat(str1,str2)的功能是把str1接到str2的后面。
(6)错误。应改为char s[6]=&abcde&;或char s[]=&abcde&;。
【例4-2-18】判断以下叙述的正确性。
(1)采用char str[4][10];语句定义的字符串数组通常用于存放4个长度不超过9个字符的字符串。
(2)char s[][10]={&abcde&,&12345&};是合法的字符串数组定义语句。
(3)在定义语句char s[2][10]={&abcde&,&12345&};执行后,可以对通过s[0]、s[1]来输出两个字符串,如printf(&%s,%s\n&,s[0],s[1])。
(4)在定义语句char s[2][10];执行后,可以通过s[0]=&abcde&;进行赋值操作。
(5)在定义语句char s[2][10]={&ab&,&1234&};执行后,s[0]和s[1]的长度都是10。
(6)在定义语句char s[2][10]={&ab&,&1234&};执行后,s[0]和s[1]占用的内存空间分别为3、5个字节。
&解:(1)正确。
(2)正确。
(3)正确。
(4)错误。应改为strcpy(s[0],&abcde&)。
(5)错误。s[0]和s[1]的长度分别为2和4。
(6)错误。s[0]和s[1]占用的内存空间均为10个字节。
【例4-2-19】对于下列定义,指出哪些是正确的?哪些是错误的?为什么?
(1)int a[10]={'A','B','C','D'};
(2)float b[3][]={{2.1,2.2,2.3},{3.2,3.3,3.4},{4.3,4.4,4.5}};
(3)int n=10;double c[n];
(4)char d[][4]={&JA&,&FE&,&MA&,&AP&,&MA&,&JU&,&JU&,&AU&,&SE&,&OC&,&MO&,&DE&};
&解:(1)正确。
(2)二维数组定义时只能省略第一维。所以是错误的。
(3)数组的大小必须是常量。错误。
(4)正确,该数组包含12个元素。
【例4-2-20】分析以下程序的执行结果。
#include &stdio.h&
void main()
{&& char s1[]=&this book&,s2[]=&this hook&;
&&& for (i=0;s1[1]!='\0' && s2[i]!='\0';i++)
&&&&&&& if (s1[i]==s2[i])
&&&&&&&&&&& printf(&%c&,s1[i]);
&&& printf(&\n&);
&解:本程序用于输出两个字符数组s1和s2对应位置相同的字符。程序输出为this ook。
【例4-2-21】分析以下程序的执行结果。
#include &stdio.h&
#include &string.h&
void main()
{&& static char s[][10]={&while&,&for&,&switch&,&if&,&break&,
&&&&&&& &continue&};
&&& char temp[10];
&&& int i,j;
&&& for (i=0;i&6;i++)
&&&&&&& for (j=5;j&=1;j--)
&&&&&&&&&&& if (strcmp(s[j],s[j-1])&0)
&&&&&&&&&&& {&& strcpy(temp,s[j]);
&&&&&&&&&&&&&&& strcpy(s[j],s[j-1]);
&&&&&&&&&&&&&&& strcpy(s[j-1],temp);
&&&&&&&&&&& }
&&& for (i=0;i&6;i++)
&&&&&&& printf(&%s\n&,s[i]);
&解:本程序用于对字符串数组s中各字符串按词典顺序排列。程序输出为:
【例4-2-22】分析以下程序的执行结果。
#include &stdio.h&
void func(char str[])
{&& int a,b;
&&& for (a=b=0;str[a]!='\0';a++)
&&&&&&& if (str[a]!='c')
&&&&&&&&&&& str[b++]=str[a];
&&& str[b]='\0';
void main()
{&& static char str[]=&abcdef&;
&&& func(str);
&&& printf(&str[]=%s\n&,str);
&解:其中,函数func扫描字符数组str,将其中不为字符'c'的元素留下来,去掉为'c'的元素。程序输出为str[]=abdef。
5. 程序设计题
【例4-2-23】编写一个程序,对于输入的十进制正整数,转换成指定进制(二进制、八进制或十六进制)的数并输出。
&解:用一个字符数组b存放各进制对应的数字序列。采用辗转相除法进行进制转换,将结果存放在c数组中,在输出时采用对应进制的数字表示,例如,输入十进制数n=999,转换成进制base=16,转换结果c[2]=3,c[1]=14,c[0]=7,输出时需将c[1]对应的14转换成E输出。对应的程序如下:
#include &stdio.h&
#define N 100
void main()
{&& char b[]=&ABCDEF&;
&&& int c[64],d,i=0,
&&& printf(&n:&);&&&&&&&&&&& /*输入n*/
&&& scanf(&%ld&,&n);
&&& {& &printf(&base:&);&&& /*输入base*/
&&&&&&& scanf(&%d&,&base);
&&& } while (base!=2 && base!=8 && base!=16);
&&& do&&&&&&&&&&&&&&&&&&&&&&& /*采用辗转相除法进行进制转换*/
&&& {& &c[i]=n%
&&&&&&& i++;
&&&&&&& n=n/
&&& } while(n!=0);
&&& for (--i;i&=0;--i)&&&&&&& /*输出转换指定进制的数序*/
&&& {&& d=c[i];
&&&&&&& printf(&%c&,b[d]);
&&& printf(&\n&);
【例4-2-24】编写一个程序, 输入一个字符串,统计其中各个不同的字符出现的频度。
&解:对于输入的str,用字符数组a存放其中不同字符的个数,整型数组c存放a中对应字符出现的频度。对应的程序如下:
#include &stdio.h&
#define Max 100&&&&&&&&&&&&&&&&&&&&&&& &&&&&/*最大的字符串长度*/
int fun(char str[],char a[],int c[])&&& /*返回str中不同字符的个数*/
{& &int i,j,k=0,len=0;
&&& for (;str[len]!='\0';len++);&&&&&& &&&/*len为str的长度*/
&&& a[0]=str[0];c[0]=1;k++;
&&& for (i=1;i&i++) c[i]=0;&&&&&&& &&&&/*置初值*/
&&& for (i=1;i&i++)&&&&&&&&&&&&&&&&&& &&/*扫描str中的所有字符*/
&&& {& &j=0;
&&&&&&& while (j&k && a[j]!=str[i]) j++; /*检查str[i]是否已在a[]中*/
&&&&&&& if (j==k)&&&&&&&&&&&&&&&&&&& &&&&&&&&&/*str[i]未检查过*/
&&&&&&& {&& a[k]=str[i];
&&&&&&&&&&& c[k]++; k++;
&&&&&&& else c[j]++;& &&&&&&&&&&&&&&&&&&&&&&&&/*str[i]已检查过*/
void main()
{&& char str[Max],a[Max];
&&& int c[Max],k,i;
&&& printf(&输入字符串:&);
&&& gets(str);
&&& k=fun(str,a,c);
&&& printf(&统计结果如下:\n&);
&&& printf(&& 字符 &);
&&& for (i=0;i&k;i++)
&&&&&&& printf(&%3c&,a[i]);
&&& printf(&\n&);
&&& printf(&& 频度 &);
&&& for (i=0;i&k;i++)
&&&&&&& printf(&%3d&,c[i]);
&&& printf(&\n&);
本程序的一次执行结果如下:
输入字符串:Good morning↙
统计结果如下:
& 字符& && G& & o& && d&&&& &&&&&& m& & r& &&& n& && i& &&& g
& 频度&& 1& && 3& && 1& && 1& && 1& && 1& && 2& && 1& && 1
【例4-2-25】编写一个程序,输入两个字符串str1和str2,要求各串中无重复出现的字符,求两者的交集。若该交集非空,则输出之。
&解:采用最简单的逐一搜索方法。str1、str2为两个源串,str3存放两者的交集,并用count1、count2和count3分别作为这三个串的下标。将str1中的每个字符取出后与str2中所有字符逐一比较,若相等,则放入str3中;否则放弃移至下一个字符,重复这一个过程,直到str1中所有的字符都被处理完为止。对应的程序如下:
#include &stdio.h&
void main()
{&& char str1[20],str2[20],str3[20];
&&& int count1=0,count2,count3=0;&&& /*分别作为str1,str2和str3的下标*/
&&& printf(&输入str1:&);
&&& scanf(&%s&,str1);
&&& printf(&输入str2:&);
&&& scanf(&%s&,str2);
&&& while (str1[count1]!='\0')&&&&&&& /*循环遍历str1的字符*/
&&& { &&count2=0;
&&&&&&& while (str2[count2]!='\0')&&& /*循环遍历str2的字符*/
&&&&&&& {&& if (str1[count1]==str2[count2])
&&&&&&&&&&& {& &str3[count3]=str1[count1];
&&&&&&&&&&&&&&& count3++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&/*有一次相等后退出与str2中字符的比较*/
&&&&&&&&&& &}
&&&&&&&&&&& count2++;
&&&&&&& count1++;
&&& str3[count3]='\0';
&&& if (str3[0]!='\0')&&&&&&&&&&&&&&& /*str3非空,则输出之*/
&&&&&&& printf(&交集=%s\n&,str3);
本程序的一次执行结果如下:
输入str1:abcdefghijk↙
输入str2:123i4bc78h9↙
【例4-2-26】编写一个程序,将用户输入的一个字符串转换成一个整数。
&解:用户输入的是一个整数字符串,从前向后扫描,依次为空格(可能没有空格)、符号(正数可能没有符号位)、数字。符号位用sign标记。以数字串s=&1234&为例说明转换过程:
扫描'1':value=10*value+1=1
扫描'2':value=10*value+2=12
扫描'3':value=10*value+3=123
扫描'4':value=10*value+4=1234
对应的程序如下:
#include &stdio.h&
int cti(char s[])&&& /*将整数串s转换为整数*/
{&& int i,sign,n;
&&& for (i=0;s[i]==' ' || s[i]=='\n' || s[i]=='\t';i++);
&&&&&&&&&&& /*跳过空格、制表符和换行符*/
&&& sign=1;
&&& if (s[i]=='+' || s[i]=='-')&&&&&&&&&&&&&&& /*得到符号*/
&&&&&&& sign=(s[i++]=='+') ? 1 : -1;
&&& for (n=0;s[i]&='0' && s[i]&='9';i++)&&& &/*变换成整数*/
&&&&&&& n=10*n+s[i]-'0';
&&& return (sign*n);
void main()
{&& char s[50];
&&& printf(&输入一个字符串:&);
&&& scanf(&%s&,s);
&&& n=cti(s);
&&& printf(&对应的整数:%d\n\n&,n);
【例4-2-27】编写一个程序,求两个字符串s和t的一个最长公共子串。
&解:以s为主串,t为子串,设index为最长公共子串在s中的序号,length指出最长公共子串的长度。扫描串s,扫描串t,当s的当前字符等于t的当前字符时,比较后面的字符是否相等,这样得到一个公共子串(至少长度为1,因为s与t的当前字符相等)。与length相比,将大者存放在length中。如此直到扫描完s为止。对应的程序如下:
#include &stdio.h&
#include &string.h&
void MaxComStr(char s[],char t[],char c[])
{& &/*求两个字符串s和t的最长公共子串,c用于存放最长公共子串*/
&&& int index=0,length=0,i,j,k,length1;
&&& i=0;&&&&&&&&&&&&&&&&&&&&& & /*i作为扫描s的指针*/
&&& while (s[i]!='\0')
&&& {&& j=0;&&&&&&&&&&&&&&&&& & /*j作为扫描t的指针*/
&&&&&&& while (t[j]!='\0')
&&&&&&& {&& if (s[i]==t[j])
&&&&&&&&&&& {&& length1=1;&&& /*找一个公共子串,其在s中的序号为i,长度为length1*/
&&&&&&&&&&&&&&& for (k=1;i+k&strlen(s) && j+k&strlen(t)
&&&&&&&&&&&&&&&&&&&&&&& && s[i+k]==t[j+k];k++)
&&&&&&&&&&&&&&&&&&& length1++;
&&&&&&&&&&&&&&& if (length1&length)&&& /*将较大长度者赋给index与length*/
&&&&&&&&&&&&&&& {&& index=i;
&&&&&&&&&&&&&&&&&&& length=length1;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& j+=length1;&&&&& &&&&&& /*继续扫描t中第j+length1字符之后的字符*/
&&&&&&&&&&& }
&&&&&&&&&&& else j++;
&&&&&&& i++;&&&&&&&&&&&&&&& &&&&&&&&&&& /*继续扫描s中第i字符之后的字符*/
&&& for (i=0;i&i++)
&&& &&&&c[i]=s[index+i];
&&& c[length]='\0';
void main()
{& &char *s=&aababcabcdabcde&;
&&& char *t=&xabcdy&;
&&& char c[20];
&&& MaxComStr(s,t,c);
&&& printf(&s=%s\n&,s);
&&& printf(&t=%s\n&,t);
&&& printf(&s和t的最大公共子串:%s\n&,c);
程序执行结果如下:
s=aababcabcdabcde
s和t的最大公共子串:abcd
分享到:更多
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
C语言选择题求解释已知: char s[10], *p=s ,则在下列语句中,错误的语句是 选择一项: A. s[2]=p[4];
D. *p=s[0];
反馈正确答案是:s=p+s; 正确
iudollco1363
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
*p=s,指针p指向数组s的首地址,s=p+s两个首地址相加再赋值,不能这么运算的,所以错
为您推荐:
扫描下载二维码

我要回帖

更多关于 c语言int转char数组 的文章

 

随机推荐