编写程序:python定义字符串变量两个字符型变量,通过键盘输入值,并分别以整数形式和字符形式打印两个变量的和。

toOctalString方法—生成整数的八进制字符串
本文所属图书&>&
本书是一本Java综合查询参考手册,包含Java程序开发中常用的各种类及其方法。本书共分为4篇21章,第一篇为Java语言基础篇,主要包括包装数据类型、集合操作、日期与时间、文件处理、图片处理等内容;第二篇为桌面...&&
toOctalString方法以八进制(基数8)无符号整数形式返回一个整数参数的字符串表示形式。
语法& public static String toOctalString(int i)&
返回值:用八进制(基数8)参数表示的无符号整数值的字符串表示形式。
参数:i 为要转换成字符串的整数。
如果参数为负,那么无符号整数值为参数加上232;否则等于该参数。该值被转换成八进制(基数8)形式的ASCII数字字符串,且没有附加前导 0。如果无符号数大小为零,则用一个零字符'0'('\u0030')表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。用作为八进制数字,它们是从'\u0030'到'\u0037'的字符。
示例& 本示例创建Integer对象,并通过toOctalString 方法获取整数10的八进制无符号整数形式。
int stri =new Integer(10); &&&//定义一个int型变量
String str=Integer.toOctalString(stri);
System.out.println(str);
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书编写函数,功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。并用主函数调用函数它。
例如,主函数中输入字符串:3,在主函数中输出的函数值为:44831。
全部答案(共1个回答)
int prime (int n)
int i,k=1;
for(i=2;i=sqrt(n)) k=0;
return ...
int fun(int score[],int m,int below[])
int num=0,j=0;
答: 宝宝辅食软件哪个好呢?现在科技太先进了,要食品上APP就可以查到!但是不知道哪个APP好用哦!
答: 好在有许多成熟的安全和网络技术,例如虚拟私有网络(VPN)和防火墙等,能够极大地提高Web服务应用的安全和性能,让开发者拥有选择安全技术的自由,而不是非得使用尚...
答: 某些ADSL调制解调器使用USB接口与电脑相连,需要在电脑上安装指定的软件以添加虚拟网卡来进行通信
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415变量是保存存储值的内存位置。也就是说,当创建一个变量时,可以在内存中保留一些空间。
基于变量的数据类型,解释器分配内存并决定可以存储在保留的存储器中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储的数据类型为整数,小数或字符等等。
将值分配给变量在Python中,变量不需要明确的声明类型来保留内存空间。当向变量分配值时,Python会自动发出声明。 等号(=)用于为变量赋值。
=运算符左侧的操作数是变量的名称,而=运算符右侧的操作数是将在存储在变量中的值。 例如 -
#!/usr/bin/python3
counter = 100
# 一个整型数
# 一个浮点数
# 一个字符串
= && # 一个字符串
print (counter)
print (miles)
print (name)
print (site_url)
这里,100,999.99和“Maxsu”分别是分配给counter,miles和name变量的值。执行上面代码将产生以下结果 -
多重赋值Python允许同时为多个变量分配单个值。
a = b = c = 1
这里,创建一个整数对象,其值为1,并且所有三个变量都分配给相同的内存位置。还可以将多个对象分配给多个变量。 例如 -
a, b, c = 10, 20, &maxsu&
这里,将两个值为10和20的整数对象分别分配给变量a和b,并将一个值为“maxsu”的字符串对象分配给变量c。
标准数据类型存储在内存中的数据可以是多种类型。 例如,一个人的年龄可存储为一个数字值,他的地址被存储为字母数字字符串。 Python具有各种标准数据类型,用于定义可能的操作以及每个标准数据类型的存储方法。
Python有五种标准数据类型 -
1.数字2.字符串3.列表4.元组5.字典
1.Python数字数字数据类型存储数字值。当为其分配值时,将创建数字对象。 例如 -
可以使用del语句删除对数字对象的引用。 del语句的语法是 -
del var1[,var2[,var3[....,varN]]]]
可以使用del语句删除单个对象或多个对象。
del var_a, var_b
Python支持三种不同的数值类型 -
int(有符号整数)float(浮点实值)complex(复数)
Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。
以下是一些数字示例 -
9.322e-36j
-32.54e100
复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位。
2.Python字符串Python中的字符串被标识为在引号中表示的连续字符集。Python允许双引号或双引号。 可以使用片段运算符([]和[:])来获取字符串的子集(子字符串),其索引从字符串开始处的索引0开始,并且以-1表示字符串中的最后一个字符。
加号(+)是字符串连接运算符,星号(*)是重复运算符。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py
str = &#'
print ('str = ', str)
# Prints complete string
print ('str[0] = ',str[0])
# Prints first character of the string
print ('str[2:5] = ',str[2:5])
# Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:])
# Prints string starting from 3rd character
print ('str[-1] = ',str[-1])
# 最后一个字符,结果为:'!'
print ('str * 2 = ',str * 2)
# Prints string two times
print ('str + &TEST& = ',str + &TEST&) # Prints concatenated string
将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -
F:\worksp\python&python variable_types_str1.py
str[2:5] =
str + &TEST& =
F:\worksp\python&
2.Python列表列表是Python复合数据类型中最多功能的。 一个列表包含用逗号分隔并括在方括号([])中的项目。在某种程度上,列表类似于C语言中的数组。它们之间的区别之一是Python列表的所有项可以是不同的数据类型,而C语言中的数组只能是同种类型。
存储在列表中的值可以使用切片运算符([]和[])来访问,索引从列表开头的0开始,并且以-1表示列表中的最后一个项目。 加号(+)是列表连接运算符,星号(*)是重复运算符。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py
list = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]
tinylist = [100, 'maxsu']
print ('list = ', list)
# Prints complete list
print ('list[0] = ',list[0])
# Prints first element of the list
print ('list[1:3] = ',list[1:3])
# Prints elements starting from 2nd till 3rd
print ('list[2:] = ',list[2:])
# Prints elements starting from 3rd element
print ('list[-3:-1] = ',list[-3:-1])
print ('tinylist * 2 = ',tinylist * 2)
# Prints list two times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists
将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -
F:\worksp\python&python variable_types_list.py
['yes', 'no', 786, 2.23, 'minsu', 70.2]
list[1:3] =
['no', 786]
list[2:] =
[786, 2.23, 'minsu', 70.2]
list[-3:-1] =
[2.23, 'minsu']
tinylist * 2 =
[100, 'maxsu', 100, 'maxsu']
list + tinylist =
['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']
F:\worksp\python&
3.Python元组元组是与列表非常类似的另一个序列数据类型。元组是由多个值以逗号分隔。然而,与列表不同,元组被括在小括号内(())。
列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。元组可以被认为是只读列表。 例如 -
#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.py
tuple = ( 'maxsu', 786 , 2.23, 'yiibai', 70.2
tinytuple = (999.0, 'maxsu')
# tuple[1] = 'new item value' 不能这样赋值
print ('tuple = ', tuple)
# Prints complete tuple
print ('tuple[0] = ', tuple[0])
# Prints first element of the tuple
print ('tuple[1:3] = ', tuple[1:3])
# Prints elements starting from 2nd till 3rd
print ('tuple[-3:-1] = ', tuple[-3:-1])
# 输出结果是什么?
print ('tuple[2:] = ', tuple[2:])
# Prints elements starting from 3rd element
print ('tinytuple * 2 = ',tinytuple * 2)
# Prints tuple two times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple
将上面代码保存到 variable_types_tuple.py 文件中,执行将产生以下结果 -
F:\worksp\python&python variable_types_tuple.py
('maxsu', 786, 2.23, 'yiibai', 70.2)
tuple[0] =
tuple[1:3] =
(786, 2.23)
tuple[-3:-1] =
(2.23, 'yiibai')
tuple[2:] =
(2.23, 'yiibai', 70.2)
tinytuple * 2 =
(999.0, 'maxsu', 999.0, 'maxsu')
tuple + tinytuple =
('maxsu', 786, 2.23, 'yiibai', 70.2, 999.0, 'maxsu')
F:\worksp\python&
以下代码对于元组无效,因为尝试更新元组,但是元组是不允许更新的。类似的情况可能与列表 -
#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2
list = [ 'abcd', 786 , 2.23, 'john', 70.2
tuple[2] = 1000
# 无法更新值,程序出错
list[2] = 1000
# 有效的更新,合法
Python字典Python的字典是一种哈希表类型。它们像Perl中发现的关联数组或散列一样工作,由键值对组成。字典键几乎可以是任何Python数据类型,但通常为了方便使用数字或字符串。另一方面,值可以是任意任意的Python对象。
字典由大括号({})括起来,可以使用方括号([])分配和访问值。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.py
dict['one'] = &This is one&
= &This is my&
tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}
print (&dict['one'] = &, dict['one'])
# Prints value for 'one' key
print ('dict[2] = ', dict[2])
# Prints value for 2 key
print ('tinydict = ', tinydict)
# Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys())
# Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values
将上面代码保存到 variable_types_dict.py 文件中,执行将产生以下结果 -
F:\worksp\python&python variable_types_dict.py
dict['one'] =
This is one
This is my
tinydict =
{'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}
tinydict.keys() =
dict_keys(['name', 'code', 'dept'])
tinydict.values() =
dict_values(['maxsu', 1024, 'IT Dev'])
字典中的元素没有顺序的概念。但是说这些元素是“乱序”是不正确的; 它们是无序的。
数据类型转换有时,可能需要在内置类型之间执行转换。要在类型之间进行转换,只需使用类型名称作为函数即可。
有以下几种内置函数用于执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。它们分别如下所示 -
int(x [,base])
将x转换为整数。如果x是字符串,则要base指定基数。
将x转换为浮点数。
complex(real [,imag])
创建一个复数。
将对象x转换为字符串表示形式。
将对象x转换为表达式字符串。
评估求值一个字符串并返回一个对象。
将s转换为元组。
将s转换为列表。
将s转换为集合。
创建一个字典,d必须是(key,value)元组的序列
frozenset(s)
将s转换为冻结集
将整数x转换为字符
将整数x转换为Unicode字符。
将单个字符x转换为其整数值。
将整数x转换为十六进制字符串。
将整数x转换为八进制字符串。
加QQ群啦!
JAVA技术群:
MySQL/SQL群:
Python技术群:
大数据开发群: (Java,Python,R,Scala,Hadoop,Spark,zookeeper,kafka等技术)
Web开发群(新群):
(PHP,HTML/HTML5,JS/JQuery,CSS等技术)
Linux技术群(新群): (Redhat/Centos,Ubuntu,Shell,运维,监控等技术)
易百教程移动端:请扫描本页面底部(右侧)二维码关注微信公众号,或直接手机访问:
上一篇:下一篇:以下试题来自:
问答题编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 import
java.io.* ;
public static void
main(String args[ ])
i , n ......
为您推荐的考试题库
你可能感兴趣的试题
1.问答题 import java.applet.* ;
import java.awt.* ;
public class abc extends Applet
Complex a,b,...... 2.问答题 a=60 b=20 c=303.问答题 s = 1804.问答题 求两个数的最大值。5.问答题 Hello! I love JAVA.
热门相关试卷
最新相关试卷怎么像整数一样计算字符?
周立功教授数年之心血之作《程序设计与数据结构》,电子版已无偿性分享到电子工程师与高校群体,经周立功教授授权,本公众号特对本书内容进行连载,愿共勉之。
第一章为程序设计基础,本文为1.8.1 &字符常量。
>>>&1.&字符常量的引用
字符常量是使用一对单引号&''&包围起来的,比如,'O','编译器知道这个符号指的是字母O的ASCII值,即79。同样可以用' '指出空格,或用'9'指出数字9。常量'9'指的是一个字符,不应该与整数值9混淆。除非程序员能记住ASCII码表,否则任何人看到79都不会联想到字母O,而字符常量'O' 则可以直接传递它的意义。
在C语言中,字符能象整数一样计算,不需要特别的转换。基于此,既可以给一个字符加上一个整数,比如,字符c与整数n相加,即c+n表示c后面的第n个字符。也可以从一个字符减去一个整数,比如,表达式c-n表示c前面的第n个字符。还可以从一个字符减去另一个字符,比如,c1和c2都是字符,那么c1-c2表示两个字符的距离。
更进一步地,还可以比较两个字符,如果在ASCII表中,c1在c2前面,那么c1<c2是true。假设从键盘输入一个字符,将它保存在变量ch中,将如何确定输入字符ch是否为数字呢?比如:
if( ch >= &#39;0&#39; && ch <= &#39;9&#39; )&&& { & }
这样一来就将数字字符与ASCII码表中的其它字符区分开了。虽然标准C接口ctype.h提供了相应的函数,但如果你从头到尾实现它们,则有助于进一步深入了解它们的操作。如果ch是大写字母,返回它对应的小写字母,否则返回ch本身,详见程序清单 1.35。
程序清单&1.35& tolower()函数范例程序
1&&&& char tolower(char ch)&
3&&&&&&&&&&& if( ch >= &#39;A&#39; && ch <= &#39;Z&#39; ){&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //&标识大写字母
4&&&&&&&&&&&&&&&&&& return (ch + (&#39;a&#39; - &#39;A&#39;));&
5&&&&&&&&&&& }else{
6&&&&&&&&&&&&&&&&&& return (ch);
7&&&&&&&&&&& }
>>>&2. 字符的输入输出
虽然转换符%c允许scanf()函数和printf()函数对一个单独的字符进行读写操作。比如:
scanf("%c", &ch);&
printf("%c", ch);&
但在读入字符前,scanf()函数不会跳过空格符,即会将空格作为字符读入变量ch。为了解决这个问题,则必须在%c的前面加一个空格:
scanf(" %c", &ch);&
虽然scanf()函数不会跳过空格符,却很容易检测到读入的字符是否为换行符&#39;\n&#39;。比如:
while(ch != &#39;\n&#39;){
& & & &scanf("%c", &ch);&
当然也可以调用getchar()和putchar()读写一个单独的字符,它们是在stdio.h中定义的宏,分别用于从键盘读取数据和将字符打印到屏幕上。虽然宏和函数在技术上存在一些区别,但它们的用法是一样的。比如:
int getchar(void);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&输入一个字符
int putchar(int ch);&&&&&&&&&&&&&&&&&&&&&&&&&&//&输出一个字符
getchar()函数不带任何参数,它从输入队列中返回一个字符。比如,下面的语句读取一个字符输入,并将该字符的值赋给变量ch:
ch = getchar();&
该语句与下面的语句等效:
scanf("%c", &ch);&
putchar()函数打印它的参数,比如,下面的语句将之前赋给ch的值作为字符打印出来:
putchar(ch); &
该语句与下面的语句效果相同:
printf("%c", ch);&
由于这些函数只处理字符,因此它们比scanf()和printf()函数更快,这两个函数通常定义在stdio.h中,实际上它们是预处理宏,不是真正的函数。虽然这些宏看起来很简单,但有时出了问题,却找不出原因。比如:
char ch1, ch2; &
ch1 = getchar();&
ch2 = getchar();&
printf("%d %d\n", ch1, ch2);&
此时,如果输入字符&#39;a&#39;,而打印结果却是&97,10&。因为从键盘输入一个字符后,就打印出了结果,还没有输入第二个字符程序就结束了。由于键盘输入一次结束后,会将数据存储在一个被称为缓冲区的临时存储区,按下Enter键后程序才可使用用户输入的字符,因此scanf()和getchar()也是从输入流缓冲区中取值的,而人们常常会产生这样的错觉,误以为它们是从键盘缓冲区取值的。实际上,数据是通过cin函数直接从输入流缓冲区中取走的,所以,当缓冲区中有残留数据时,cin函数会直接读取这些残留数据而不会请求键盘输入。
这里的10恰好是Enter键输入的换行符&#39;\n&#39;,当读取数据遇到换行符&#39;\n&#39;结束时,换行符会一起读入输入流缓冲区,所以第一次接受输入时,取走字符后会留下字符&#39;\n&#39;,于是第二次直接从缓冲区中将\n取走。
为何要有缓冲区呢?首先,将若干字符作为一个块进行传输比逐个发送这些字符节约时间。其次,如果用户打错字符,可以直接通过键盘修正错误。当最后按下Enter键时,传输的是正确的输入。虽然输入缓冲区的好处很多,但在某些交互式程序中也需要无缓冲区输入。比如,在游戏中,如果希望按下一个键就执行相应的命令,因此缓冲输入和无缓冲输入各有各的用武之地,但本书假设所有的输入都是缓冲输入。
缓冲分为两类:完全缓冲I/O和行缓冲I/O,完全缓冲输入指的是当缓冲区被填满时才刷新缓冲区,内容被发送到目的地,通常出现在文件输入中。缓冲区的大小取决于系统,常见的大小为512字节和4096字节。行缓冲区I/O指的是在出现换行符时刷新缓冲区,键盘输入通常是行缓冲区输入,所以在按下Enter键后才刷新缓冲区。
&getchar()和scanf()&
getchar()读取每个字符,包括空格、制表符和换行符;而scanf()在读取数字时,则会跳过空格、制表符和换行符。虽然这两个函数都很好用,但不能混合使用。
虽然putchar()的参数ch定义为int类型,但实质上它接收的是一个char类型字符,因为在putchar()内部,系统会将ch强制转换为char类型后再使用。如果字符输出成功,则putchar()返回输出的字符((char)ch),而不是输入的参数ch;如果不成功,则返回预定义的常量EOF(end of file,文件结束),EOF是一个整数。
getchar()没有输入参数,其返回值为int型,而不是char型。这里需要区分文件中的有效数据和输入结束符,当有字符可读时,getchar()不会返回文件结束符EOF,所以
ch = getchar() != EOF&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //&相当于ch = (getchar() != EOF)
取值为true,变量ch被赋值为1。
当程序没有输入时,则getchar()返回文件结束符EOF,即表达式取值为false,此时变量ch被赋值为0,程序结束运行。如果将getchar()函数的返回值定义为int型,则既能存储任何可能的字符,也能存储文件结束符EOF,将输入复制到输出的例程序详见程序清单1.36。
程序清单1.36&&将输入复制到输出范例程序
1&&&& #include&
2&&&& int main(int argc, char *argv[])&
4&&&& &&&&
6&&&& &&& while((ch = getchar()) != EOF){&
7&&&& &&& &&&&&&&&&&&&& putchar(ch);&
8&&&&&&& }
9&&&& &&& return 0;
当然,也可以用getchar()的另一种惯用法替代程序清单1.36(6):
while((ch = getchar()) != &#39;\n&#39;)&
即将读入的一个字符与换行符比较,如果测试结果为true,则执行循环体,接着重复测试循环条件,再读入一个新的字符,同时getchar()用于搜索字符和跳过字符等效。比如:
while((ch = getchar()) == &#39; &#39;)
当循环终止时,变量ch将包含getchar()遇到的第一个非空字符。
&do-while&
do-while循环远比for和while循环用得小,因为它至少需要执行循环体一次,且在代码的最后而不是开始执行条件循环测试。逻辑条件应该出现在它们所&保护&的代码之前,这也是if、while和for的工作方式。通常阅读代码的习惯是从前向后,当使用do/while循环时,需要对这段代码读两次。同时,这种方式在很多情况下是不正确的,比如:
?&&&& do{&
?&&&&&&&&&&& ch = getchar();&
?&&&&&&&&&&& putchar(ch);&
?&&&& }while(ch != EOF);
由于测试被放在对putchar()的调用之后,因此该代码无端地多写了一个字符。只有在某个循环体必须至少执行一次的情况下,使用do-while循环才是正确的。
另一个让人迷惑的是,do/while循环中的contiune语句:
}while(false);&
它会永远循环下去还是只执行一次?虽然它只会循环一次,但大多数人都会想一想。C++的开创者Bjarne Stroustrup是这样说的,&do语句是错误和困惑的来源,我倾向于将条件放在前面我能看到的地方,避免使用do语句。&
原文标题:周立功:字符能像整数一样计算
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
发布评论请先
作为信息管理系统,首先要能够存储学生记录,这上万条记录如何存储呢?简单地,可以使用一段连续的内存存储....
第三章为算法与数据结构,本文为3.4 迭代器模式。
当用户需要使用链表管理数据时,仅需关联数据和链表结点,最简单的方式是将数据和链表结点打包在一起。
第三章为算法与数据结构,本文为3.2.3 接口。
第三章为算法与数据结构,本文为3.2 单向链表中的3.2.1 存值与存址和3.2.2 数据与p_ne....
第二章为程序设计技术,本文分别介绍不完全类型和抽象数据类型。
如果没有读过计算机专业的基础课程,那么计算机基础课程是一定要学习的。
本文为程序设计基础,本文为1.8.2
字符串常量第三点:字符串函数。
作者经常听嵌入式软件开发者说,“我几乎不用函数指针……”。言下之意,那些复杂的语法似乎毫无用处,而实....
周立功教授数年之心血之作《程序设计与数据结构》,书本内容公开后,在电子行业掀起一片学习热潮。
为了将实际开发过程中总结的有价值的技术应用分享给大家,周立功及其团队整理出《程序设计与数据结构》这本....
近日,周立功教授公开了数十年之心血力作《程序设计与数据结构》,此书在4月28日落笔,电子版已无偿性分....
2014年充满各种预测, 那么在开发工程师的世界里,2014年最值得关注的技术都有哪些呢?近日,一位....
什么是数据结构
1、数据类型和数据结构·数据值:atomic data value: 不可再分解。....
什么叫数据结构
定义:由某一数据对象及该对象中所有数据成员之间的关系组成。记为:&&nb....
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
下载发烧友APP
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-}

我要回帖

更多关于 c语言定义字符串变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信