例题2的D选项 这样写也可以吗 那以后怎么区分到底显示字符还是数字的
写回答 共1个回答
蓝1126
LV.4 2019-10-28
D正确,数据类型存储后实际上都是一样,只是占用的数据空间不同。char是8位,int是16位(不同平台略有不同)。比如,char a = 65;char b = 'A';实际上,存储的都是二进制01000001(B),按照不同的打印方式,%c打印出A,%d打印出65.
LV.4 2019-10-28
D正确,数据类型存储后实际上都是一样,只是占用的数据空间不同。char是8位,int是16位(不同平台略有不同)。比如,char a = 65;char b = 'A';实际上,存储的都是二进制01000001(B),按照不同的打印方式,%c打印出A,%d打印出65.
那个程序里有错误
main(int argc char*argv)
应该写成
main(int argc ,char**argv)
还有那个s*argv的,地址值*整数值,得到……,好吧C语言题目我没有见过这样的,看一下有没有抄错。
static int s=0; 是定义文件全局静态变量,只会被运行一次,还有argv[1][i]!='\0',i++,C语言字符串就是以'\0'结尾的,它i最后是字符串长度,而每次i++,也会让s+=1;所以s最后也是字符串长度,即3
如果没有抄错,是选择题,选3能整除的选项。如果是填空题,写3*argv。
argv[1]="123";
i=0;[i=0],argv[1][i]!='\0'成立[argv[1][i]=argv[1][0]='1'],开始循环,等待fun()返回
fun(): s=0;[s=0],s+=1;[s=1],返回值1
n=fun();[n=1],i++;[i=1]
argv[1][i]!='\0'成立[argv[1][i]=argv[1][1]='2'],继续循环,等待fun()返回
fun(): s+=1;[s=2],返回值2
n=fun();[n=2],i++;[i=2]
argv[1][i]!='\0'成立[argv[1][i]=argv[1][2]='3'],继续循环,等待fun()返回
fun(): s+=1;[s=3],返回值3
n=fun();[n=3],i++;[i=3]
argv[1][i]!='\0'不成立[argv[1][i]=argv[1][2]=0],结束循环
printf输出n*argv[3*argv],但argv是指针地址,无法确定其取值是多少,怀疑写错了,是n*argc,那样的话输出: 6
程序中有几处错误:
①主函数main各参数间应该加,
②输出时你打印n×argv,argv是数组地址,想干嘛?
……
给你个正确案:
int main(int argc, char* argv[])
{for (int i=0;i
return 0;
}
输入,main.exe this is a test for main.
如果成功的话,就会输出.
main
this
is
a
test
for
main
//这就是我写的运行输入n r输入一个十进制数字n并将其转换为rx输出 &&&&&&&&;t=str[i];&&&&&&&&;;;&&&&&;;&&&&&;;&&&&&&&&;;;如果(n>=0)&t;br>}不;br>str='0';
#包括
#包括&
vid主()
&l;br>n,r;,a;
在我、IDR、P;
Char STR[20],t;
的同时(canf(\"%d%d\",&;n,&;r)!=eof)
p=0;
如果(n<0)
a=-n;
其他
a=n;
而(a)!=0)
idr=%r;
如果(idr>=10)
str[p++]=idr-10+65;
其他
[p++]=idr+48;
a/=r;
}不;br>
用于(i=0;i
如果(n>=0)
打印(\"%sn\",str);
其他
打印(\"-%sn\",str);lt;&;不,不,不,不,不,不,不,不,什么?