位置: IT常识 - 正文

JavaScript上部分--头歌(educoder)实训作业题目及答案(javascript中)

编辑:rootadmin
JavaScript上部分--头歌(educoder)实训作业题目及答案

目录

JS简介

第1关: JavaScript基础入门

第2关: JavaScript 与 HTML

第3关: JavaScript 变量

JS 数据类型

第1关: JavaScript 数据类型介绍

第2关: JavaScript 数据类型转换

JS运算符

第1关: 算术运算符

第2关: 比较和逻辑运算符

第3关: 条件和赋值运算符

第4关: 运算符的优先级和结合性

JS对象

第1关: 对象的创建

第2关: 属性的增删改查

第3关: 属性的检测和枚举

JS数组

第1关: 数组的创建、读写和长度

第2关: 数组元素的增减

第3关: 数组的遍历和多维数组

第4关: 数组的常用方法

第5关: 数组的应用——内排序

JS条件语句

第1关: if-else类型

第2关: switch类型

第3关: 综合练习

JS循环语句

第1关: while类型

第2关: do while类型

第3关: for类型

第4关: for in类型

第5关: break和continue的区别——break

第6关: break和continue的区别——continue

JS函数

第1关: 用函数语句定义函数

第2关: 用表达式定义函数

第3关: 函数的调用

第4关: 未定义的实参

第5关: 实参对象

第6关: 对象作为参数

第7关: 函数对象

字符串

第1关: 查找字符串的位置

第2关: 求指定位置的字符

第3关: 字符串的截取

第4关: 大小写转换

第5关: 字符串的分割

JS运算符

第1关: 算术运算符

第2关: 比较和逻辑运算符

第3关: 条件和赋值运算符

第4关: 运算符的优先级和结合性

正则表达式

第1关: 字符串字面量

第2关: 字符类

第3关: 重复

第4关: 选择

第5关: 分组

第6关: 引用

第7关: 匹配位置

第8关: 修饰符

第9关: 正则表达式的使用


JS简介第1关: JavaScript基础入门<!DOCTYPE html><html><head><!-- 请在此处编写代码 --><!---------Begin---------><script>window.alert("Hello,JavaScript!");</script><!---------End---------></head><body></body></html>第2关: JavaScript 与 HTML<!DOCTYPE html><html><!-- 请在此处编写代码 --><!---------Begin---------><head><script>console.log("如何在HTML代码中嵌入JavaScript代码");</script></head><body></body><!---------End---------></html>第3关: JavaScript 变量var a = 1;// 请在此处编写代码/********** Begin **********/var b = 100;/********** End **********/function variableTest(c) {/********** Begin **********/var a = 10;/********** End **********/ return a*c+b;}JS 数据类型第1关: JavaScript 数据类型介绍function objectTest() {var a = {name:"myName",id:2};var b = [1,true,2];var c = 1;var d = "1";var e = true;var f;var aType,bType,cType,dType,eType,fType;//请在此处编写代码/********** Begin **********/aType = "object";bType = "array";cType = "number";dType = "string";eType = "bool";fType = "undefined";/********** End **********/return aType+","+bType+","+cType+","+dType+","+eType+","+fType;}第2关: JavaScript 数据类型转换function mainJs(args1,args2,args3) {// 请在此处编写代码/*********Begin***********/var a = parseInt(args1);var b = parseInt(args2,16);var c = parseFloat(args3);/*********End***********/return a+b+c;}JS运算符第1关: 算术运算符function mainJs(a,b) {//请在此处编写代码/********** Begin **********/var a1 = parseInt(a);var b1 = parseInt(b);var c = a1%b1;a = a.toString();b = b.toString();c = c.toString();/********** End **********/return a+b+c;}第2关: 比较和逻辑运算符function mainJs(a,b) {//请在此处编写代码/********** Begin **********/if(a > b) {return a&&b;}else {return !a;}/********** End **********/}第3关: 条件和赋值运算符function mainJs(a,b) {//请在此处编写代码/********** Begin **********/return (a>b)?a:b;/********** End **********/}第4关: 运算符的优先级和结合性function mainJs(a,b) { var a = parseInt(a); var b = parseInt(b);//请在此处编写代码/********** Begin **********/ var c = (--a+b)*b==24?1:0; var d = 4; var e = (c*=d)+d;/********** End **********/ return e;}JS对象第1关: 对象的创建function Car(plate,owner) { this.plate = plate; this.owner = owner;}function Job() {};Job.prototype.company = "myCompany";Job.prototype.salary = 12000;function mainJs(a,b,c,d,e) { //请在此处编写代码/********** Begin **********/ var student = {name:a,gender:b}; var myCar = new Car(c,d); var myJob = new Job(); myJob.company = e; /********** End **********/ return student.name+student.gender+myCar.plate+myCar.owner+myJob.company;}第2关: 属性的增删改查var store = {name:"Luma Restaurant",location:"No 22,Cot Road",accountant:"Vivian Xie",day1:3200,day2:3200,day3:3200,day4:3200,day5:3200,day6:3200,day7:3200,day8:3200,day9:3200,day10:3200}function reviseAttribute(reviser,date,attValue) {//Convert string to integerattValue = parseInt(attValue);//请在此处编写代码/********** Begin **********/store["day"+date] = attValue;store.accountant = reviser;/********** End **********/var totalSales = store["day1"]+store["day2"]+store["day3"]+store["day4"]+store["day5"]+store["day6"]+store["day7"]+store["day8"]+store["day9"]+store["day10"]; return totalSales+store.accountant;}第3关: 属性的检测和枚举var orange = {weight:"200g",color:"orange",taste:"sour"};var car = {brand:"Jaguar",price:"$80000",model:"XFL"}function mainJs(a) {//请在此处编写代码/********** Begin **********/var result = "";if(a in car) {for(att in car) {result += att;}}else {for(att in orange) {result += att;}}return result;/********** End **********/}JS数组第1关: 数组的创建、读写和长度var array1 = [1,2,3,"js",4,true,"hello"];var array2 = [true,true,"java",2.1];function mainJs(a) {//请在此处编写代码/********** Begin **********/a = parseInt(a);if(array1.length == a) {return array1[array1.length-1];}else {return array2[array2.length-1];}/********** End **********/}第2关: 数组元素的增减var testArray = [12,"java","js","c","c++",24,36,"python","c#","css"];function mainJs(a,b) {a = parseInt(a);b = parseInt(b);//请在此处编写代码/********** Begin **********/for(var i = 0;i < a;i++) {var rearMember = testArray.pop();testArray.unshift(rearMember);}return testArray[b];/********** End **********/}第3关: 数组的遍历和多维数组var arr = [1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15,16,17,18,19,20,21,23,22];function mainJs(a,b) {a = parseInt(a); b = parseInt(b); //请在此处编写代码/********** Begin **********///新建二维数组,行长为a,列长为b var multiArr = new Array(a); for(var i = 0;i < a;i++) { multiArr[i] = new Array(b); }//依次将原数组的元素放置在二维数组的相应位置上 var count = 0; for(var i = 0;i < a;i++) {//先行 for(var j = 0;j < b;j++) {//后列 multiArr[i][j] = arr[count++]; } }//返回二维数组 return multiArr;/********** End **********/}第4关: 数组的常用方法function mainJs(myArray) {myArray = myArray.split(",");//请在此处编写代码/********** Begin **********///新建用来存储字符串a位置的数组var indexsArrayOfStringa = new Array();//新建用来存储字符串b位置的数组var indexsArrayOfStringb = new Array();//求出参数字符串的长度var myArrayLength = myArray.length;var index = 0;//遍历获得字符串a的所有位置while(index < myArrayLength) {index = myArray.indexOf("a",index);if(index == -1) break;indexsArrayOfStringa.push(index++);}index = 0;//遍历获得字符串b的所有位置//这两个函数千万不要合在一起写!!!while(index < myArrayLength) {index = myArray.indexOf("b",index);if(index == -1) break;indexsArrayOfStringb.push(index++);}//返回两个数组的和数组return indexsArrayOfStringa.concat(indexsArrayOfStringb);/********** End **********/}第5关: 数组的应用——内排序function mainJs(a) {var arr = a.split(",");for(var i = 0;i < arr.length;i++) { arr[i] = parseInt(arr[i]);}//请在此处编写代码/********** Begin **********/var aLength = arr.length;//待排序数组的长度var temp;var max = arr[0];var maxIndex = 0;var indexArr = new Array();//记录最大元素位置的数组//进行选择排序for(var i = 0;i < aLength-1;i++) {for(var j = 1;j < aLength-i;j++) {if(arr[j] > max) {//更新最大元素及其索引max = arr[j];maxIndex = j;}}//记录最大元素所在的位置indexArr.push(maxIndex);//移动最大元素到索引最大处temp = arr[aLength-i-1];arr[aLength-i-1] = arr[maxIndex];arr[maxIndex] = temp;//将最大元素及位置归零var max = arr[0]; var maxIndex = 0;}return indexArr;/*********end*********/}JS条件语句第1关: if-else类型function mainJs(a) {a = parseInt(a);//请在此处编写代码/********** Begin **********/if(a >= 60) {return "pass";}else {return "unpass";}/********** End **********/}第2关: switch类型function mainJs(a) {a = parseInt(a);//请在此处编写代码/********** Begin **********/var name;switch(a) {case 82414:name = "Superior";break;case 59600:name = "Huron";break;case 58016:name = "Michigan";break;case 25744:name = "Erie";break;case 19554:name = "Ontario";break;default:name = "error";break;}return name;/********** End **********/}第3关: 综合练习//判断一个年份是否为闰年function judgeLeapYear(year) {//请在此处编写代码/********** Begin **********/ var tt="年是闰年";var ff="年不是闰年";if(year%100==0){if(year%400==0){return year+tt;}else{return year+ff;}}else{ if(year%4==0){ return year+tt; }else{ return year+ff; }} /********** End **********/}//对输入进行规范化处理function normalizeInput(input) {/********** Begin **********/var output; switch(input){case "中共党员":case "党员":case "共产党员":output="中共党员";break;case "中共预备党员":case "预备党员":output="中共预备党员";break;case "团员": case "共青团员":output="共青党员";break; case "大众":case "市民":case "人民": output="群众";break;default: output="错误数据";break;}return output;/********** End **********/}//判断苹果是否为优质品function evaluateApple(weight,water) {/********** Begin **********/ if(weight>=200 ){return "是优质品";}else{if(water>=0.7){return "是优质品";}else{return "不是优质品";}}/********** End **********/}JS循环语句第1关: while类型function mainJs(a) {a = parseInt(a);//请在此处编写代码/********** Begin **********/var sum = 0;var i = 2;while(i <= a) { var j = 2; while(j < i) { if(i%j == 0) {//能被整除,不是质数 break;//不需要再判断 } j ++;//除数加1,继续测试是不是质数 } if(j == i) {//还是没有因数,证明这是一个质数 sum = sum+i;//加在结果里面 }i = i+1;//测试下一个数是不是质数}return sum;/********** End **********/}第2关: do while类型function mainJs(a,b) { a = parseInt(a); b = parseInt(b);//请在此处编写代码 /********** Begin **********/ var sum = 0;//结果 var i = a+1;//从a后面的第一个数开始累加 while(i < b) {//直到b前面的第一个数 sum += i; i++;//下一个数 } return sum;//返回结果和 /********** End **********/}第3关: for类型function mainJs(a) {a = parseInt(a);//请在此处编写代码/********** Begin **********/var numLen = a.toString().length;//求出是个几位数var num = 1;var result = 0;for(var i = 0;i < numLen;i++) {var curNum = a.toString().substring(i,i+1);//取出其中的第i位数result = result+curNum*num;num = num*10;}return result;/********** End **********/}第4关: for in类型var apple = { weight:"200克", level:"特级", locationProvince:"陕西省", locationCity:"榆林市"}function mainJs(a,b){ apple[a]= b; //请在此处编写代码/********** Begin **********/ var result = "";//结果字符串 for(var x in apple) {//遍历所有的属性 if(x.indexOf("location") == 0) {//以location开头的属性 result += apple[x];//属性的值拼接 } } return result;//返回结果 /********** End **********/}第5关: break和continue的区别——breakfunction mainJs(a) {var arr = a.split(",");for(var k = 0,length = arr.length;k < length;k++) {arr[k] = parseInt(arr[k]);}//请在此处编写代码/********** Begin **********/for(var i = 0,length = arr.length;i < length;i++) {var cur = arr[i];//数组的第i个数for(var j = 2;j < cur;j++) {if(cur%j == 0) break;//不是质数,不需要再测试}if(j == cur) break;//已经找到了质数cur}return arr[i];/********** End **********/}第6关: break和continue的区别——continuefunction mainJs(a,b) { a = a.split(","); for(var i = 0,length = a.length;i < length;i++) { a[i] = parseInt(a[i]); } var sum = 0; for(var i = 0,length = a.length;i < length;i++) {//请在此处编写代码 /********** Begin **********/ if(b > 0 && a[i] < 0) continue;//求正数的和,遇到负数跳过 if(b < 0 && a[i] > 0) continue;//求负数的和,遇到正数跳过 /********** End **********/ sum += a[i]; } return sum;}JS函数第1关: 用函数语句定义函数//请在此处编写代码/********** Begin **********/function mainJs(a,b){ return a+b;}/********** End **********/第2关: 用表达式定义函数function mainJs(a) { a = parseInt(a);//请在此处编写代码/********** Begin **********/ var myFunc = function(b) { var first = (b-b%100)/100;//求出百位数 var second = (b%100-b%100%10)/10;//求出十位上的数 var third = b-first*100-second*10;//求出各位数 return first+second+third; } /********** End **********/ return myFunc(a);}第3关: 函数的调用//求最大值的函数function getMax(b,c) { return b>c?b:c;}//求最小值的函数var getMin = function(b,c) { return b>c?c:b;}//对象中的求和函数var myObject = { id:1, name:"function", myFunc:function(b,c) { return b+c; }}function mainJs(a,b,c) { a = parseInt(a); b = parseInt(b); c = parseInt(c); //请在此处编写代码/********** Begin **********/ if(a == 1) { return getMax(b,c); } else if(a == 2) { return getMin(b,c); } else { return myObject.myFunc(b,c); } /********** End **********/}第4关: 未定义的实参function mainJs(a,b,c,d) { //请在此处编写代码/********** Begin **********/ if(a === undefined) { a = "green"; } if(b === undefined) { b = "green"; } if(c === undefined) { c = "red"; } if(d === undefined) { d = "yellow"; } return a+"-"+b+"-"+c+"-"+d; /********** End **********/}第5关: 实参对象//请在此处编写代码/********** Begin **********/function getMax() {var aLength = arguments.length;var amax = 0;for(var i = 0;i < aLength;i++) {if(arguments[i] > amax) amax = arguments[i];}return amax;}/********** End **********/function mainJs(a) {a = parseInt(a);switch(a) {case 1:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123);case 2:return getMax(23,21,56,34,89,34,32);case 3:return getMax(23,21,56,34);case 4:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123,8888);case 5:return getMax();default:break;}}第6关: 对象作为参数var park = { name:"Leaf Prak", location:"Fifth Avenue", todayTourists:4000};var computer = { name:"Levenon", price:"$800", memory:"8G"};var city = { name:"HangZhou", country:"Chine", population:9400000}function objectFunction(object) { //请在此处编写代码/********** Begin **********/ var result = ""; for(x in object) { result = result+x+":"+object[x]+","; } return result; /********** End **********/}function mainJs(a) { a = parseInt(a); switch(a) { case 1:return objectFunction(park); case 2:return objectFunction(computer); case 3:return objectFunction(city); default:break; }}第7关: 函数对象//求数组中奇数元素的个数function getOddNumber(a) { var result = 0; for(var i = 0;i < a.length;i++) { if(a[i]%2 != 0) result++; } return result;}//求数组中偶数元素的个数function getEvenNumber(a) { var result = 0; for(var i = 0;i < a.length;i++) { if(a[i]%2 == 0) result++; } return result;}function getNumber(func,a) {//请在此处编写代码 /*********Begin*********/ return func(a); /*********End*********/}//测试接口function mainJs(b,a) { a = a.split(","); var aLength = a.length; for(var i = 0;i < aLength;i++) { a[i] = parseInt(a[i]); } if(b == "getEvenNumber") { return getNumber(getEvenNumber,a); } else { return getNumber(getOddNumber,a); }}字符串第1关: 查找字符串的位置function mainJs(a,b) { //请在此处编写代码/********** Begin **********/ var startIndex = 0; var aLength = a.length;//a的长度 var index = 0; var result = 0; while(startIndex < aLength) {//还没有匹配到末尾 index = a.indexOf(b,startIndex);//本次匹配的位置 if(index == -1) {//后面已经没有匹配的子串 break;//提前结束整个过程 } startIndex = index+1;//下次匹配的起始位置 result += index; } return result;/*********End*********/}第2关: 求指定位置的字符function mainJs(a) { //请在此处编写代码/********** Begin **********/ var result = ""; for(var i = 0;i < 6;i++) {//遍历,依次获取前六个数字 result += a.charAt(i); } return result; /********** End **********/}第3关: 字符串的截取function mainJs(a,b) { //请在此处编写代码/********** Begin **********/ if(a.indexOf(b) == -1) {//没有杂质字符串直接返回 return a; } else { var startIndex = a.indexOf(b);//杂质字符串起始处 var endIndex = startIndex+b.length;//杂质字符串结束处 return a.slice(0,startIndex)+a.slice(endIndex); } /*********End*********/}第4关: 大小写转换function mainJs(a,b) {//请在此处编写代码/********** Begin **********/ var str1 = b.toUpperCase();//把b转换为大写 var aa = a.split(b);//以b为边界分割a为字符串数组 a = aa.join(str1);//以转换后的b为边界重新连接字符串数组得到新的a return a;/*********End*********/}第5关: 字符串的分割function mainJs(a) { //请在此处编写代码/********** Begin **********/ var spaceArray = a.split(" ");//以space分割 var commaArray = a.split(",");//以逗号分隔 return spaceArray.length+commaArray.length-1; /*********End*********/}JS运算符第1关: 算术运算符function mainJs(a,b) {//请在此处编写代码/********** Begin **********/var a1 = parseInt(a);var b1 = parseInt(b);var c = a1%b1;a = a.toString();b = b.toString();c = c.toString();/********** End **********/return a+b+c;}第2关: 比较和逻辑运算符function mainJs(a,b) {//请在此处编写代码/********** Begin **********/if(a > b) {return a&&b;}else {return !a;}/********** End **********/}第3关: 条件和赋值运算符function mainJs(a,b) {//请在此处编写代码/********** Begin **********/return (a>b)?a:b;/********** End **********/}第4关: 运算符的优先级和结合性function mainJs(a,b) { var a = parseInt(a); var b = parseInt(b);//请在此处编写代码/********** Begin **********/ var c = (--a+b)*b==24?1:0; var d = 4; var e = (c*=d)+d;/********** End **********/ return e;}正则表达式第1关: 字符串字面量function mainJs(a) { a = a.replace(",","\n"); //请在此处编写代码/********** Begin **********/ var pattern = /js\n/; /********** End **********/ return pattern.test(a).toString();}第2关: 字符类function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern1 = /[a-zA-Z][0-9]/; var pattern2 = /A[^0-9]/; /********** End **********/ return pattern1.test(a).toString()+","+pattern2.test(a).toString();}第3关: 重复function mainJs(a) {//请在此处编写代码/********** Begin **********/ var pattern1 = /\?+/; var pattern2 = /\+{3,3}/; var pattern3 = /\{\}{1,2}/; var pattern4 = /\\{0,1}/; /********** End **********/ return pattern1.test(a).toString()+","+pattern2.test(a).toString()+","+pattern3.test(a).toString()+","+pattern4.test(a).toString();}第4关: 选择function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern1 = /[0-9]{17}([0-9]|X)/; var pattern2 = /2(3|4)[0-9]{4}/; var pattern3 = /010|02[012345789]/; /********** End **********/ return pattern1.test(a).toString()+","+pattern2.test(a).toString()+","+pattern3.test(a).toString();}第5关: 分组function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern1 = /(\?\+){2,}/; var pattern2 = /\d(\?|\+)\d/; /********** End **********/ return pattern1.test(a).toString()+","+pattern2.test(a).toString();}第6关: 引用function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern1 = /([0-9]{3})[^0-9]\1/; var pattern2 = /[A-Z]([0-9])[A-Z]\1[A-Z]\1/; /********** End **********/ return pattern1.test(a).toString()+","+pattern2.test(a).toString();}第7关: 匹配位置function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern = /^js\b/; /********** End **********/ return pattern.test(a).toString();}第8关: 修饰符function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern = /\bshell\b/ig; /********** End **********/ return a.match(pattern);}第9关: 正则表达式的使用function mainJs(a) { //请在此处编写代码/********** Begin **********/ var pattern = /[0-9]/g; return a.replace(pattern,""); /********** End **********/}
本文链接地址:https://www.jiuchutong.com/zhishi/273686.html 转载请保留说明!

上一篇:deepin20怎么取消键盘大写锁定? deepin关闭大写锁定提示的技巧(deepin怎么退出命令行)

下一篇:win7更新时提示错误代码8007000E怎么办?(win7显示更新失败怎么办啊)

  • 转让不动产为什么不填写预缴申报表
  • 计提印花税会计分录最新
  • 员工离职社保未及时减员怎么处理
  • 资产负债表与利润表的区别
  • 增值税减免附加税怎么申报
  • 单位承担的社保费用计入什么科目
  • 领增值税专票需要发票吗
  • 每月长摊金额如何分摊
  • 所得税亏损年限有什么规定
  • 个税返还手续费奖励员工需要交个税吗
  • 年末发票
  • 差旅费实际报销金额超出标准报销金额怎么才能体现出来
  • 进项发票认证后暂不抵扣
  • 预付账款冲减费用
  • app 开发公司的账务处理
  • 药品回扣2021
  • 生产药酒的厂家
  • 增值税发票备注栏怎么填写
  • 公司代扣代缴个人所得税能查到吗
  • 劳务费交增值税还要交个税吗
  • 油品沥青消费税征收范围
  • 对公提回款是什么意思
  • 新建厂房装修费账务处理
  • 资产负债表和利润表在哪里查
  • 试营业期间的费用算不算开办费?
  • 公司购买电视
  • 盘点固定资产
  • 以前年度损益调整编码
  • win10禁止使用网络
  • ntfs磁盘压缩
  • 企业对外股权投资涉及税收
  • 往年的营业外收入冲减
  • linux系统中安装web服务
  • 定额发票收入怎么样确定
  • 在php中,字符串有哪些表示形式
  • 为什么会产生应收账款
  • 拉马克是哪国人
  • anaconda创建虚拟环境有什么用
  • 米苏拉塔是哪个国家
  • laravel框架用到哪些设计模式
  • vite vuex
  • vue3响应式丢失
  • 增值税普通发票可以抵扣吗
  • 企业收到微信和微信消息
  • 增值税发票认证在哪里
  • pyqt 菜单
  • 季末资产总额怎么计算出来的
  • 分公司非独立核算怎么做账
  • 房产公司业务招待费扣除政策
  • 三项经费要包括哪三项
  • 一般纳税人商贸企业的税负是多少
  • 个人住房租赁给公司如何开票
  • 社保比例调整了吗
  • 代收资金清算过程
  • 原始凭证收集
  • 消费税会计分录处理
  • 增值税发票开错冲红重开如何做会计分录?
  • 发票红冲怎么回事
  • 资产减值损失会计处理
  • 专用发票怎么网上申领
  • 贴现收到票据时会计分录
  • 无生产经营收入可以评为a吗
  • 市盈率为负数是说明什么呢
  • mysql中union用法
  • 无比强大的思维
  • 繁体软件在简体运行
  • linux数字运算
  • 看视频出现弹幕怎么处理
  • dvd rom drive bbs priorities
  • win xp 系统
  • WIN10系统怎么分屏
  • 雨林木风 winxp sp3 安装版 ys8.0
  • windows8安装itunes
  • 防火墙ddos攻击防范
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • 深入剖析典型案例
  • 海量文件复制和复制区别
  • Unity3D Vuforia Android 相机聚焦模式设置
  • 下载重庆税务官方app
  • 江苏省常熟市归哪管
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设