C语言总结-printf/scanf详细总结

13 篇文章 1 订阅
订阅专栏

一、printf()

1、基本用法-printf( 格式字符串, 待打印项1, 待打印项2,…);

格式字符串:这些符号被称为转换说明 (conversion specification),它们指定了如何把数据转换成可显示的形式。在%和转换字符之间 插入修饰符可修饰基本的转换说明。
类型匹配:函数打印数据的指令要与待打印数据的类型相匹配。例如, 打印整数时使用%d,打印字符时使用%c。
待打印项:它们可以是变量、常量,甚 至是在打印之前先要计算的表达式。

2、转化说明 与 修饰符(含标记)

转化说明 主要描述了 按什么数据类型输出。如%d 以十进制有符号的整数,%u 十进制无符号整数,%x 以十六进制无符号整数(字符小写,X字符大写) %c单个字符,%s字符串 %p 指针输出。(由于使用%符号来标识转换说明,因此打印%符号约定使用两个%)
在这里插入图片描述
修饰符:在%和转换字符之间插入修饰符可修饰基本的转换说明,用于描述 (1)在打印位置的对齐方式(2)长度不够时前导空格或者0 (3)特殊进制添加前缀-#使用0开头打印8进制,0x开头打印十六进制。(4)最小宽度 (5)精度 (6)标识整形长度类型,如h位short长度、hh为char长度类型、l为long长度类型,ll为longlong型长度类型;
修饰符顺序要求如果要插入多个字符,其书写顺序应该与表 中列出的顺序相同。不是所有的组合都可行。
下表列出可作为修饰符的合法字符:
在这里插入图片描述在这里插入图片描述

3、转化说明与待打印项不匹配分析

格式字符串中的转换说明一定要与后面的每个项相匹配,若忘记这个基 本要求会导致严重的后果。
1、数量不匹配问题
printf(“The score was Squids %d, Slugs %d.\n”, score1);
这里,第2个%d没有对应任何项。系统不同,导致的结果也不同。出现这种问题最好的状况是得到无意义的值,也可能保留系统堆栈中的关键信息,被攻击获取
2、类型不匹配问题
通常都有多种选 择。例如,如果要打印一个int类型的值,可以使用%d、%x或%o。打印double类型的值时,可使用%f、%e或%g。但是如果不匹配时,如下:
符号不匹配 :一个负数按无符号输出,输出其负数按补码表示的整数。
长度不匹配 :使用短类型输出长类型时,会发生截断。只读取其最低几个和短类型等长的字节(类似除余)。
混淆整型和浮点型:使用整形打印浮点数会失败,而使用浮点数打印整形时,printf会尝试读取按浮点数长度的预期字节长度,如果整形小于预期会出现越界读取,打印出来的数据无意义。

#define PAGES 336
#define WORDS 65618
 int main(void) {
    short num = PAGES;
    short mnum = -PAGES;
    printf("num as short and unsigned short: %hd %hu\n", num,num);
     // 输出 num as short and unsigned short: 336 336
    printf("-num as short and unsigned short: %hd %hu\n", mnum,mnum);
     // 输出 -num as short and unsigned short: -336 65200
     /* short 大小是2字节使用二进制补码,0~32767代 表正数,32768~65535为负数。
         65535表示-1,65534 表示-2,-336表示为65200 */
    printf("num as int and char: %d %c\n", num, num); 
    // 输出 num as int and char: 336 P
     /*只看储存336的2字节中的后1字节,截断相当于用一 个整数除以256,
         只保留其余数是80,对应的ASCII值 是字符P */
    printf("WORDS as int, short, and char: %d %hd %c\n",WORDS,WORDS,WORDS); 
    //输出 WORDS as int, short, and char: 65618 82 R
    return 0;
}
 int main(void) {
    float n1 = 3.0;
    double n2 = 3.0; 
    long n3 = 2000000000; 
    long n4 = 1234567890; 
    printf("%.1e %.1e %.1e %.1e\n", n1, n2, n3, n4);
    // 输出 3.0e+000 3.0e+000 3.1e+046 3.6e+266
    /* %e转换说 明让printf函数认为待打印的值是double类型8字节。 
        除了查看n3的4字节外,还会相邻的4字节共8字节单元组合解释成浮点数,
        最终得到的结果 是无意义的值 */
    printf("%ld %ld\n", n3, n4);
    // 输出 2000000000 1234567890
    printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);
    // 输出 0 1074266112 0 1074266112
    /* %ld转换说明打印浮点数会失败,在 里用%ld打印long类型的数也失败,
      问题出在C如何把信息传递给函数。具体情况因编译器实现而异 */
    return 0;
}
4、printf的参数传递机制

参数传递机制因编译器实现(入栈的顺序关系)而异。要特别注意
上一个举例中的如printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);

 int main(void) {
    float n1 = 3.0;
    double n2 = 3.0; 
    long n3 = 2000000000; 
    long n4 = 1234567890; 
    printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);
    // 输出 0 1074266112 0 1074266112
    /* %ld转换说明打印浮点数会失败,在 里用%ld打印long类型的数也失败,问题出在C如何把信息传递给函数。
        具体情况因编译器实现而异 */
    return 0;
}

1、程序把传入的值放入被称为栈(stack)的内存区域
计算机根据变量类型(不是根据转换说明)把这些值放入栈中。常见从右往左顺序入栈。因此,n1被 储存在栈中,占8字节(float类型被转换成double类型)。同样,n2也在栈中 占8字节,而n3和n4在栈中分别占4字节。
2、控制转到printf()函数读取栈中内容
该函 数根据转换说明(不是根据变量类型)从栈中读取值。%ld转换说明表明 printf()应该读取4字节,所以printf()读取栈中的前4字节作为第1个值。这是 n1的前半部分,将被解释成一个long类型的整数。根据下一个%ld转换说 明,printf()再读取4字节,这是n1的后半部分,将被解释成第2个long类型的 整数。类似地,根据第3个和第4个%ld,printf()读取n2的前半部 分和后半部分,并解释成两个long类型的整数。因此,对于n3和n4,虽然用 对了转换说明,但printf()还是读错了字节。
3、printf("%d %d %d %d ",i++,–i,++i,i++)说明
不同编译器产生不同的结果,原因主要有1:入栈的顺序关系 2、i++和++i操作符和入栈之间的顺序关系
如使用vscode中测试gcc编译器:先处理完所有自增自减之后再最后统一一次性的入栈并且如果发生i++或者i–会先缓存值,对应成员入栈时按缓存值计算入栈值,如果是–i或者++i则无缓存 使用最终i结果计算入栈值) ,测试如下:

 int main(void) {
    int i = 8;
    printf("%d,%d,%d,%d\n", ++i, --i, i++, i--);
    // 输出 8,8,7,8
    /*  1、先处理++/--
        i++(i--):先缓存i的原始值,然后i自增(自减)。最后入栈时,用缓存的i的原始值入栈。
        ++i(--i):i自增,不缓存i的原始值。最后入栈时,是更新后的最终i。
        i--: 缓存8,i=7
        i++:缓存7,i=8
        --i:i=7
        ++i:i=8(到这一步时i=8,也就是说最后入栈之前i的最终值为8,因此++i和--i的入栈值都是8)
        2、最后入栈
        第一个入栈值8(存在缓存),第二个入栈值7(存在缓存),第三个入栈值8(此时的i值),第四个入栈8(此时的i值)
        所以这时候栈的数据是:8,8,7,8.(从顶到底)。
    */
    i = 0;
    printf("%d %d %d %d\n", i+1, i++, i+2, ++i);
    // 输出 3 1 3 2
    /* 先处理++/--:++i:i为1, i++:缓存1,i为2,入栈:第一个为2(此时i值),第二个为3,第三个 为缓存1,第四个为3,
       所以这时候栈的数据是 3 1 3 2 (从顶到底)*/
    return 0;
}

二、scanf()

1、基本用法–scanf( 格式字符串, 地址1, 地址2,…);

通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息,给变量赋值。
数据分段:scanf()函数使用空白(换行符、制表符和空格)把输入分成多个字段。 在依次把转换说明和字段匹配时跳过空白。只要在每个输入项之间输入至少一个换行 符、空格或制表符即可,可以在一行或多行输入。唯一例外的是%c会读取每个字符,包括空白。
(1)以试读取一个%d举例
每次读取一个字符*跳过所有的 空白字符,直至遇到第1个非空白字符才开始读取。因为要读取整数,所以希望发现一个数字字符或者一个符号(+或-)。如果找到一个数字或 符号,保存并读取下一个,直至遇到非数字字符,便认为读到了整数的末尾。然后把非数字字符放回输入。这意味着程序在下一次读取输入时,首先读 到的是上一次读取丢弃的非数字字符。如果使用字段宽度,scanf()会在字段结尾或第1个空白字符处停止读取 (满足两个条件之一便停止)。
(2)其他类型说明
读取输入和用%d 的情况相同。区别在于 scanf()会把更多字符识别成数字的一部分。%x转换说明要求scanf()识 别十六进制数a~f和A~F。浮点转换说明要求scanf()识别小数点、e记数法 (指数记数法)和新增的p记数法(十六进制指数记数法)。
%s 转换说明,scanf()会读取除空白以外的所有字符。scanf()跳 过空白开始读取第 1 个非空白字符,并保存非空白字符直到再次遇到空白。当scanf()把字符串放进指定数组中时,它会在字符序列的末尾加上’\0。

    char str[80]; 
    scanf("%s",str); // 输入 test is good<回车>
    printf("%s",str); // 输出 test (遇到第一个空白字符结束)

解决读取包含空格的字符串问题,使用扫描字符集合[],多个字符串的输入,并对结束符进行自定义

    char str[80]; 
    scanf("%[^\n]",str); // 输入 test is good
    // 使用扫描字符集合[],多个字符串的输入,并对结束符进行自定义
    printf("%s",str); // 输出 test is good
    return 0;
2、转化说明 与 修饰符(含标记)

scanf()函数所用的转换说明与printf()函数几乎相同。主要的区别是,对 于float类型和double类型,printf()都使用%f、%e、%E、%g和%G转换说 明。而scanf()只把它们用于float类型,对于double类型时要使用l修饰符。表 4.6列出了C99标准中常用的转换说明。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、格式字符串 包含 普通字符

scanf()函数允许把普通字符放在格式字符串中,除空格字符外的普通字 符必须与输入字符串严格匹配
如scanf("%d,%d", &n, &m);中的‘,’为普通字符,用户将输入一个数字、一个逗号,然后再输入一个数字。(%d后面紧跟逗号,所以必须在输入一个数字输入一 个逗号);如果为scanf("%d ,%d", &n, &m),第一个%d后包含空格,空白意味着跳过下一个输入项前面的所有空白,因此第一个输入后可以有空格再出现逗号。

    scanf("%d,%d", &n, &m);
    /*  情况1:第一个%d后面紧跟','     
      (第一个数输入完后必须经跟‘,’,‘,’到第二个数可以有空格)
    	输入可以用:123,234<回车>,123,   234<回车>
    	不能使用的输入:123 ,234<回车> (‘,’前有空格引起第二次读取‘,’失败,m未i输入)
    */
    scanf("%d,%d", &n, &m);
    /*  情况2:第一个%d后面有空格连接','
    	输入可以用:123,234<回车>,123, 234<回车>,123  ,234<回车>,123 , 234<回车>
    */

scanf( )的格式字符串中加入\n的问题,当出现scanf("%d\n",&a)写法时,按照“整型数字 回车”的格式读取,读到回车之后,由于缓冲区空白,程序停滞,等待键盘输入,要等再接收到一个非空白符输入之后,该scanf语句才结束,接着才输出。

	int a;
	scanf("%d\n",&a);/*注意%d后的\n*/
     //单纯输入123<回车>后,会继续等待输入,此时继续输入回车无效的,需要再输入一个非空字符,scanf才结束
	printf("%d",a);
5、scanf的缓冲区问题

scanf()函数应该只是扫描stdin流,输入的数据都存再stdin的缓冲区,被跳过和取出的数据,系统会将它从缓冲区中释放掉未被跳过或取出的数据,系统会将它一直放在缓冲区中,直到下一个 scanf 来获取

    char str1[80];
    char str2[80]; 
    char str3[80]; 
    scanf("%s",str1); // 输入 test is good<回车>
    printf("%s\n",str1); // 输出 test
    scanf("%s",str2); // 无需输入,缓冲区还有数据
    scanf("%s",str3);// 无需输入,缓冲区还有数据
    printf("%s\n",str2); // 输出 is
    printf("%s\n",str3); // 输出 good

对于参数%d:会忽略缓冲区开头的空白符;对于参数 %c直接读取缓冲区的第一个字符(无论这个字符是什么)

	int a;
	char c;
	scanf("%d",&a); // 输入 123<回车>
	scanf("%c",&c); // 直接执行了,由于缓存区还有一个'\n'回车符,c直接获取了
	printf("%d %d",a,(int)c); // 输出 123 10 (换行\n的asci码为10)
    return 0;

为了解决缓存区问题,可以使用fflush(stdin)清空缓存区,或者getchar()吃掉回车,或者下一行%c前加空格丢弃空白字符。

	int a;
	char c;
	scanf("%d",&a); // 输入 123<回车>
    fflush(stdin); // 清空缓存区中数据即回车(也可以用getchar()吃掉,或者在下一行%c前加空格)
	scanf("%c",&c); // 输入5
	printf("%d %d",a,(int)c); // 输出 123 53 (字符5的asci码值53)
6、scanf返回值

scanf()函数返回成功读取的项数。如果没有读取任何项,且需要读取一 个数字而用户却输入一个非数值字符串,scanf()便返回0。
当scanf()检测 到“文件结尾”时,会返回EOF(EOF是stdio.h中定义的特殊值,通常用 #define指令把EOF定义为-1)。我们将在第6章中讨论文件结尾的相关内容 以及如何利用scanf()的返回值。在读者学会if语句和while语句后,便可使用 scanf()的返回值来检测和处理不匹配的输入。

c语言实现1-1/2+2/3-3/4...(n-1)/n=?
wsrzsfgst的博客
07-09 3659
实行图片如下: #include<stdio.h> int main() { double a=1,b=0,i,sum=0,n,k=1; printf("请输入n:"); scanf("%lf",&n); for(i=2;i<=n;i++) { a=a+1; b=b+1; k=-k; sum=sum+k*(b/a); } printf("1-1/2+2/3-3/
c语言编译输出小数的前n项和,输入一个整数n,计算1-1/4+1/7-1/10+1/13-1/16+……前n项和,输出保留两位小数用C语言程序编辑很急...
weixin_36053084的博客
05-18 5243
输入一个整数n,计算1-1/4+1/7-1/10+1/13-1/16+……前n项和,输出保留两位小数用C语言程序编辑很急以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!输入一个整数n,计算1-1/4+1/7-1/10+1/13-1/16+……前n项和,输出保留两位小数用C语言程序编辑很急#include int main...
scanfprintf用法详解
热门推荐
generalharry的专栏
09-09 1万+
scanfprintf用法详解
C语言】库函数scanfprintf详解,地表最全总结,不看后悔系列
最新发布
2401_82666224的博客
04-17 2465
printfscanf可以说贯穿了编程的始终,它们是程序员手中不可或缺的工具。它们以简洁而强大的功能,为程序员提供了一个与计算机和用户交互的桥梁,让程序不再是孤立的存在,而是能够与用户进行对话、交流的智能体。让我们在编程的道路上,善用printfscanf,创造出更多优秀、有用的程序,为我们的生活带来更多的便利和乐趣。
scanfprintfc语言中的作用,C语言中的scanfprintf
weixin_39969257的博客
05-16 984
最初学习C语言程序设计时,经常需要通过键盘交互方式请用户输入内容,并需要将用户计算的结果在屏幕上输出。为实现这样的操作,C语言提供了scanfprintf两个函数,使用它们之前,一般需要包含stdio.h头文件。语法是: #include 1. 使用scanf函数的注意事项。scanf函数的一般语法格式为 scanf(格式占位符列表,变量地址列表),常用的格式占位符有%d(整型数),%f(浮点型...
C语言printfscanf详解
LocknLock_的博客
01-19 1447
第四部分:C语言 printfscanf 详解
C语言】- printfscanf 函数详解!
HUYA69的博客
01-19 2752
一、printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据。 1.用法 1> printf(字符串) printf("Hello, World!"); 输出结果是: 2> printf(字符串, 格式符参数) *格式符%d表示以有符号的十进制形式...
求1-2/3+3/5-4/7+5/9-6/11+...的前n项和,结果保留3位小数
clearlover76的博客
11-15 3129
# include<stdio.h> int main() { int input, i, e = 1, j = 1; double a = 1, sum = 0; scanf("%d", &input); for (i = 0; i < input; i++, j++) { sum = sum + j / (a * e); a = a + 2; e = e * (-1); } printf("%0.3lf", sum); return 0; } .
C语言关于printfscanf的小练习
weixin_59095264的博客
06-28 631
C语言关于printfscanf的小练习
printfscanfc语言中的作用,C语言你不知道的scanfprintf
weixin_32323283的博客
05-16 795
前言给大家分享一下几个你可能不知道的小东东一、 scanf printf返回值example1int num = printf("1234");printf("\n num = %d\n", num);return 0;结果:1234num = 4analyze:纯字符串情况下 返回值是字符个数。example2int num = printf("a=%2d,b=%d", 1000, 20);pr...
printfscanfc语言中的作用,scanfprintfc语言的输出函数,两者有什么区别?...
weixin_34207865的博客
05-16 1741
首先,scanf函数的一般形式2113scanf函数5261是标准库函数. 其函数原型在标头4102文件“ stdio.h”中,该文件与printf函数相同. C语言1653还允许在使用scanf函数之前不包括stdio.h文件. scanf函数的一般形式是: scanf(“格式控制字符串”,地址表列);其中,格式控制字符串具有与printf函数相同的功能,但不能显示非格式字符串,即不能显示提...
C语言----格式化描述字符串中 * 在scanfprintf 中的作用
HappyCode
10-12 331
用了2年时间c语言,结果还不会这个,眼界属实有点窄了。。。。。 /* 学习:https://www.zhihu.com/question/301146334 格式化描述字符串中 * 在scanfprintf 中的作用 */ #include<stdio.h> int main() { int a; scanf("%*d%d",&a);// 在scanf 中的含义是 忽略掉这个匹配的输入 printf("a=%d\n",a); printf("%*s\n",5,".
scanfprintf使用详解
ZiYuTongXue的博客
01-05 3511
scanfprintf的基本使用方法详解
printfscanfc语言中的作用,基础:C语言里的printf()与scanf()
weixin_28955929的博客
05-16 430
printf()函数1. 参数传递参数传递的机制随实现不同而不同,下面是参数传递在系统中的工作原理。函数调用如下:printf("%ld %ld %ld %ld",n1,n2,n3,n4);//设n1为float型 n2为double型 n3,n4为long型该调用告诉计算机把变量n1,n2,n3,n4的值传递给计算机,计算机把它们放置到被称为对战(stack)的一块内存区域中来实现。计算机根据变...
详解printfscanf
something for nothing的博客
12-07 3134
详细讲述了有关于printfscanf的知识
scanfprintf 使用详解
叫我小秦就好了的博客
09-11 3323
有时我们对 scanfprintf 的参数选项产生疑问,又或许我们不清楚它们返回值的意义,本文将对参数和返回值进行细致的讲解。
C语言中的 printfscanf
越陌度阡
10-20 433
相比于其它的编程语言,C语言的输入输出功能非常强大,可以按照各种要求进行输入输出。 printf() 的功能主要用于按照用户指定的格式把指定的数据输出到显示器上。 1. printf()的常用的格式字符 2. printf()常用的附加格式 3.printf()常用的输出格式 scanf() 的功能主要从键盘按照规定的格式读取若干个数据。 1. scanf()的常用的格式字符 2. scanf()常用的附加格式 3.scanf()常用的输入格式 .........
Printf/Scanf 使用详解
tianjing0805的博客
08-08 564
翻阅笔记系列 看以前的笔记,感觉就是 我以前还了解过这个。。。printf: 输出: XXX.XX printf(“%.2f”,123456); //0.00 printf(“%.2f”,12.3456); //12.34指定:m.n格式 printf(“*%5.3d*”,123); //* 123* printf(“*%5.3d*”,12); //* 012
**scanfprintf用法**
weixin_47821671的博客
12-31 1673
scanfprintf用法 printf是标准输出函数 scanf是标准输入函数 printf的格式为printf(“输出内容”); scanf的格式为scanf(“输入控制符”,输入的变量地址); &n表示变量n的地址 &表示取址符 用在变量前获得变量的地址 你写的这两句前面是显示please input the whole number of people: 后面是给变量n赋值 区别 scanf是实现从键盘输入的,而printf则是输出内容到显示器上 不一样的 scanf函数,与pr
printf/scanf
06-13
printfscanf都是C语言的标准库函数。 printf函数用于输出格式化的字符到标准输出流(通常是终端窗口),它的格式化字符串由普通字符和格式控制符(比如%d、%f等)构成,格式化字符串中的格式控制符会被对应的变量替换为实际的值。 scanf函数用于从标准输入流(通常是键盘)中读取格式化的数据,它的格式化字符串也由普通字符和格式控制符构成,每个格式控制符对应一个待读取的变量。当遇到格式控制符时,scanf会自动跳过空格、制表符和换行符等空白字符,然后读取对应类型的数据。
写文章

热门文章

  • 简图记录-曾国藩家训 观后感 25484
  • 图形图像基础 之 jpeg介绍 12970
  • 简图记录-android fence机制 11156
  • linux性能分析工具专题-perf(事件采样,全面性能分析) 10475
  • DP与EDP接口协议学习 10231

分类专栏

  • 个人记录
  • Android学习类 2篇
  • 计算机基础 2篇
  • 其他工具随笔 3篇
  • 软件工程类 18篇
  • ARM嵌入式类 14篇
  • linux学习类 15篇
  • 架构/重构类 16篇
  • 程序生涯类 36篇
  • 测试/调试 类 6篇
  • 数据结构与算法 15篇
  • 音视频领域业务 25篇
  • 语言语法类 13篇

最新评论

  • OLED显示原理7T1C

    runafterhit: 当前示例这个7t1c像素结构,是在 复位 补偿 发光 三阶段 中的 复位阶段做这个oled阳极复位的事情,因此是对应GN-1

  • OLED显示原理7T1C

    weixin_52538731: 有错误,OLED左边的P管,G端接的是GN信号

  • GPU领域相关基础概念介绍

    qq_34425569: 综述不错

  • android多媒体框架介绍(三)显示图形系统之framebuffer

    2301_80307473: 怎么读指定坐标颜色

  • android多媒体框架介绍(四)显示图形系统之hwc叠加器

    runafterhit: 难补了。这些是之前为了 解决问题 自己梳理的。有些感觉有意思的点就预留了特性点。当前工作切换了领域,就没有深入进去总结的动力了。

最新文章

  • 个人成长UP主YouCore个人总结--心态认知/能力提升
  • 减肥健身个人总结
  • 程序员分析处理问题总结
2024年6篇
2023年11篇
2022年5篇
2021年34篇
2020年53篇
2019年10篇
2018年18篇
2017年14篇
2016年15篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家南头商场美陈定制玻璃钢人物雕塑尺寸气球商场美陈装饰哪家靠谱商场主题创意商业美陈收费标准南通大型玻璃钢雕塑韶关玻璃钢动物雕塑怎么样白银抽象人物玻璃钢雕塑哪家好秦淮商场美陈制作丽水个性化玻璃钢雕塑哪家便宜邛崃玻璃钢造型雕塑无锡玻璃钢花盆座椅玻璃钢果篮雕塑厂家电话温州人物玻璃钢雕塑公司泰州十一商场美陈北京周年庆典商场美陈报价玻璃钢酒店雕塑番禺奥特曼玻璃钢卡通雕塑上海玻璃钢金属雕塑价格濮阳哪里有玻璃钢雕塑丰都玻璃钢人物雕塑玻璃钢雕塑100幅河南常用商场美陈研发公司河北商场创意商业美陈服务阜阳商场美陈制作机构绍兴玻璃钢花盆市场报价成品玻璃钢熊猫雕塑举办商场美陈大赛的意义宁波玻璃钢雕塑定制湖州玻璃钢仿真水果雕塑定制浙江主题商场美陈有哪些香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化