版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年9月计算机等级考试二级C语言模拟真题及答案一、单项选择题(本大题共10小题,每小题2分,共20分。在每小题列出的四个选项中,只有一个是符合题目要求的,请将正确选项的字母填在题后的括号内。)1.以下关于C语言数据类型的描述中,正确的是()。A.C语言中没有基本数据类型,所有数据类型都是用户自定义的B.在C语言中,所有变量在使用前都必须进行类型声明C.C语言中的常量在程序运行时其值可以改变D.C语言中的数组可以动态分配内存,但大小必须在编译时确定【答案】B【解析】C语言具有丰富的数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如数组、结构体、联合体等)。所有变量在使用前都必须进行类型声明,这是C语言语法的要求。常量在程序运行时其值是固定的,不能改变。C语言中的数组可以动态分配内存,但动态分配的数组大小可以在运行时确定,而非编译时。因此,正确选项是B。2.以下关于C语言运算符的描述中,错误的是()。A.C语言中的关系运算符包括小于、大于、等于、不等于等B.C语言中的逻辑运算符包括与(&&)、或(||)、非(!)等C.C语言中的位运算符包括按位与(&)、按位或(|)、按位异或(^)等D.C语言中的赋值运算符(=)可以与其他运算符结合形成复合赋值运算符,如+=、-=、=等【答案】无【解析】C语言中的关系运算符包括小于(<)、大于(>)、等于(==)、不等于(!=)、小于等于(<=)和大于等于(>=)等。逻辑运算符包括与(&&)、或(||)、非(!)等。位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)等。赋值运算符(=)可以与其他运算符结合形成复合赋值运算符,如+=、-=、=、/=、%=、<<=、>>=、&=、|=、^=等。因此,所有选项描述都是正确的,没有错误选项。3.以下关于C语言函数的描述中,正确的是()。A.C语言中的函数可以嵌套定义,即一个函数内部可以定义另一个函数B.C语言中的函数必须有返回值,不能定义没有返回值的函数C.C语言中的函数参数可以是数组,但不能是函数D.C语言中的函数可以重载,即可以定义多个同名但参数不同的函数【答案】C【解析】C语言中的函数不能嵌套定义,即一个函数内部不能定义另一个函数。C语言中的函数可以定义没有返回值的函数,这种函数通常用于执行某些操作而不需要返回结果,其返回类型为void。C语言中的函数参数可以是数组,也可以是函数,例如可以将一个函数作为参数传递给另一个函数。C语言不支持函数重载,即不能定义多个同名但参数不同的函数。因此,正确选项是C。4.以下关于C语言指针的描述中,错误的是()。A.指针是一个变量,用于存储内存地址B.指针可以指向任何类型的数据,包括基本数据类型和复合数据类型C.指针的值可以改变,但指向的内存地址不能改变D.指针可以指向数组,但数组名本身就是一个指针常量【答案】C【解析】指针是一个变量,用于存储内存地址,这是指针的基本定义。指针可以指向任何类型的数据,包括基本数据类型和复合数据类型。指针的值可以改变,即可以指向不同的内存地址,但指向的内存地址可以改变。数组名本身就是一个指针常量,它指向数组的第一个元素,其值在编译时确定,不能改变。因此,错误选项是C。5.以下关于C语言结构体的描述中,正确的是()。A.结构体是一种基本数据类型,可以直接进行运算B.结构体可以嵌套定义,即一个结构体内部可以包含另一个结构体C.结构体的大小是固定的,由其包含的所有成员的大小之和决定D.结构体可以直接赋值给另一个结构体变量,只要它们的类型相同【答案】B【解析】结构体是一种复合数据类型,不能直接进行运算,但可以通过成员运算符(.)或箭头运算符(->)访问其成员。结构体可以嵌套定义,即一个结构体内部可以包含另一个结构体。结构体的大小是固定的,由其包含的所有成员的大小之和决定,但会受到对齐规则的影响。结构体可以直接赋值给另一个结构体变量,只要它们的类型相同,且所有成员都可以直接赋值。因此,正确选项是B。6.以下关于C语言共用体的描述中,错误的是()。A.共用体是一种复合数据类型,用于存储不同类型的数据B.共用体的大小是固定的,由其包含的所有成员中最大的大小决定C.共用体中的成员共享同一块内存空间D.共用体可以用于实现数据的多态性【答案】B【解析】共用体是一种复合数据类型,用于存储不同类型的数据,但其成员共享同一块内存空间。共用体的大小是固定的,由其包含的所有成员中最大的大小决定,但会受到对齐规则的影响。共用体可以用于实现数据的多态性,例如在位域操作中。因此,错误选项是B。7.以下关于C语言文件操作的描述中,正确的是()。A.打开文件时,如果文件不存在,fopen函数将返回NULLB.写入文件时,如果文件不存在,fopen函数将创建该文件C.关闭文件时,如果文件未正确关闭,程序将崩溃D.读取文件时,如果到达文件末尾,fscanf函数将返回EOF【答案】A【解析】打开文件时,如果文件不存在,fopen函数将返回NULL。写入文件时,如果文件不存在,fopen函数将创建该文件。关闭文件时,如果文件未正确关闭,程序可能无法正常工作,但不一定会崩溃。读取文件时,如果到达文件末尾,fscanf函数将返回EOF。因此,正确选项是A。8.以下关于C语言预处理器的描述中,错误的是()。A.预处理器是在编译之前处理的,用于处理预处理指令B.#include指令用于包含头文件,其后的文件名可以用双引号或尖括号C.#define指令用于定义宏,其后的宏名必须用双引号括起来D.#ifdef指令用于判断宏是否定义,如果定义则执行其后的代码【答案】C【解析】预处理器是在编译之前处理的,用于处理预处理指令。#include指令用于包含头文件,其后的文件名可以用双引号或尖括号。#define指令用于定义宏,其后的宏名不需要用双引号括起来。#ifdef指令用于判断宏是否定义,如果定义则执行其后的代码。因此,错误选项是C。9.以下关于C语言位运算的描述中,正确的是()。A.按位与运算(&)可以用于检查一个整数中某一位是否为1B.按位或运算(|)可以用于将一个整数中某一位设置为1C.按位异或运算(^)可以用于将一个整数中某一位取反D.左移运算(<<)可以用于将一个整数乘以2的幂次方【答案】无【解析】按位与运算(&)可以用于检查一个整数中某一位是否为1。按位或运算(|)可以用于将一个整数中某一位设置为1。按位异或运算(^)可以用于将一个整数中某一位取反。左移运算(<<)可以用于将一个整数乘以2的幂次方。因此,所有选项描述都是正确的,没有错误选项。10.以下关于C语言动态内存分配的描述中,正确的是()。A.malloc函数用于动态分配内存,其返回值是一个指向分配内存的指针B.free函数用于释放动态分配的内存,其参数是一个指向要释放内存的指针C.realloc函数用于重新分配动态分配的内存,其返回值是一个指向新分配内存的指针D.动态分配的内存如果不释放,程序将无法继续运行【答案】无【解析】malloc函数用于动态分配内存,其返回值是一个指向分配内存的指针。free函数用于释放动态分配的内存,其参数是一个指向要释放内存的指针。realloc函数用于重新分配动态分配的内存,其返回值是一个指向新分配内存的指针。动态分配的内存如果不释放,程序将无法继续运行,但不会立即崩溃,可能会导致内存泄漏。因此,所有选项描述都是正确的,没有错误选项。二、填空题(本大题共10小题,每小题2分,共20分。请将答案填写在答题卡上的横线上。)1.C语言中的基本数据类型包括______、______、______、______和______。【答案】整数类型、浮点类型、字符类型、枚举类型、指针类型【解析】C语言中的基本数据类型包括整数类型(如int、short、long等)、浮点类型(如float、double等)、字符类型(char)、枚举类型(enum)和指针类型(void等)。2.C语言中的关系运算符包括______、______、______、______、______和______。【答案】小于、大于、等于、不等于、小于等于、大于等于【解析】C语言中的关系运算符包括小于(<)、大于(>)、等于(==)、不等于(!=)、小于等于(<=)和大于等于(>=)等。3.C语言中的逻辑运算符包括______、______、______。【答案】与、或、非【解析】C语言中的逻辑运算符包括与(&&)、或(||)、非(!)等。4.C语言中的位运算符包括______、______、______、______、______和______。【答案】按位与、按位或、按位异或、按位取反、左移、右移【解析】C语言中的位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)等。5.C语言中的赋值运算符是______,复合赋值运算符包括______、______、______等。【答案】=、+=、-=、=、/=、%=、<<=、>>=、&=、|=、^=【解析】C语言中的赋值运算符是(=)。复合赋值运算符包括+=、-=、=、/=、%=、<<=、>>=、&=、|=、^=等。6.C语言中的函数定义的基本结构是______。【答案】返回类型函数名(参数列表){函数体}【解析】C语言中的函数定义的基本结构是返回类型函数名(参数列表){函数体}。例如,intadd(inta,intb){returna+b;}。7.C语言中的指针定义的基本结构是______。【答案】数据类型指针变量名【解析】C语言中的指针定义的基本结构是数据类型指针变量名。例如,intp;8.C语言中的结构体定义的基本结构是______。【答案】struct结构体名{成员列表};【解析】C语言中的结构体定义的基本结构是struct结构体名{成员列表};。例如,structPerson{charname[50];intage;};9.C语言中的共用体定义的基本结构是______。【答案】union共用体名{成员列表};【解析】C语言中的共用体定义的基本结构是union共用体名{成员列表};。例如,unionColor{charred;chargreen;charblue;};10.C语言中的文件打开函数是______,其返回值是一个指向FILE结构的指针。【答案】fopen【解析】C语言中的文件打开函数是fopen,其返回值是一个指向FILE结构的指针。例如,FILEfp=fopen("file.txt","r");三、判断题(本大题共10小题,每小题2分,共20分。请判断下列叙述的正误,正确的填“√”,错误的填“×”。)1.C语言中的常量在程序运行时其值可以改变。(×)【解析】C语言中的常量在程序运行时其值是固定的,不能改变。2.C语言中的数组可以动态分配内存,但大小必须在编译时确定。(×)【解析】C语言中的数组可以动态分配内存,且大小可以在运行时确定,不必在编译时确定。3.C语言中的函数参数可以是数组,也可以是函数。(√)【解析】C语言中的函数参数可以是数组,也可以是函数,例如可以将一个函数作为参数传递给另一个函数。4.C语言中的函数可以重载,即可以定义多个同名但参数不同的函数。(×)【解析】C语言不支持函数重载,即不能定义多个同名但参数不同的函数。5.C语言中的指针可以指向任何类型的数据,包括基本数据类型和复合数据类型。(√)【解析】C语言中的指针可以指向任何类型的数据,包括基本数据类型和复合数据类型。6.C语言中的结构体可以嵌套定义,即一个结构体内部可以包含另一个结构体。(√)【解析】C语言中的结构体可以嵌套定义,即一个结构体内部可以包含另一个结构体。7.C语言中的共用体可以用于实现数据的多态性。(√)【解析】C语言中的共用体可以用于实现数据的多态性,例如在位域操作中。8.打开文件时,如果文件不存在,fopen函数将创建该文件。(√)【解析】打开文件时,如果文件不存在,fopen函数将创建该文件。9.关闭文件时,如果文件未正确关闭,程序将崩溃。(×)【解析】关闭文件时,如果文件未正确关闭,程序可能无法正常工作,但不一定会崩溃。10.读取文件时,如果到达文件末尾,fscanf函数将返回EOF。(√)【解析】读取文件时,如果到达文件末尾,fscanf函数将返回EOF。四、简答题(本大题共8小题,每小题2分,共16分。请简要回答下列问题。)1.简述C语言中的基本数据类型及其特点。【参考答案】C语言中的基本数据类型包括整数类型(如int、short、long等)、浮点类型(如float、double等)、字符类型(char)、枚举类型(enum)和指针类型(void等)。整数类型用于表示整数,浮点类型用于表示实数,字符类型用于表示字符,枚举类型用于定义一组命名的整数值,指针类型用于存储内存地址。每种数据类型都有其特定的存储大小和取值范围。2.简述C语言中的运算符及其优先级。【参考答案】C语言中的运算符包括算术运算符(如+、-、、/、%)、关系运算符(如<、>、==、!=、<=、>=)、逻辑运算符(如&&、||、!)、位运算符(如&、|、^、~、<<、>>)、赋值运算符(如=、+=、-=、=、/=、%=、<<=、>>=、&=、|=、^=)等。运算符的优先级从高到低依次为:括号()、单目运算符(++、--、!、~)、乘除模(、/、%)、加减(+、-)、位移(<<、>>)、关系(<、>、<=、>=)、相等(==、!=)、逻辑与(&&)、逻辑或(||)、赋值(=)等。3.简述C语言中的函数及其特点。【参考答案】C语言中的函数是一段用于执行特定任务的代码块,可以接受参数并返回值。函数的特点包括:可以嵌套调用,但不能嵌套定义;必须有返回值,除非返回类型为void;参数可以是数组或函数;函数名不能重载。4.简述C语言中的指针及其作用。【参考答案】C语言中的指针是一个变量,用于存储内存地址。指针的作用包括:可以间接访问和修改内存中的数据;可以实现动态内存分配;可以作为函数参数传递复杂的数据结构;可以实现数据的多态性。5.简述C语言中的结构体及其特点。【参考答案】C语言中的结构体是一种复合数据类型,用于组合不同类型的数据成员。结构体的特点包括:可以包含不同类型的数据成员;可以嵌套定义;可以与函数结合使用;可以用于实现复杂的数据结构。6.简述C语言中的共用体及其特点。【参考答案】C语言中的共用体是一种复合数据类型,用于存储不同类型的数据,但其成员共享同一块内存空间。共用体的特点包括:可以节省内存空间;可以实现数据的多态性;其成员的访问顺序可能不同。7.简述C语言中的文件操作及其基本函数。【参考答案】C语言中的文件操作包括打开、读取、写入、关闭等操作。基本函数包括:fopen用于打开文件;fread用于读取文件;fwrite用于写入文件;fclose用于关闭文件。8.简述C语言中的动态内存分配及其基本函数。【参考答案】C语言中的动态内存分配是指在程序运行时分配内存空间。基本函数包括:malloc用于动态分配内存;free用于释放动态分配的内存;realloc用于重新分配动态分配的内存。五、应用题(本大题共8小题,每小题4分,共24分。请根据下列要求编写C语言程序代码。)1.编写一个C语言程序,计算两个整数的和、差、积、商。【参考答案】#include<stdio.h>intmain(){inta,b;printf("请输入两个整数:");scanf("%d%d",&a,&b);printf("和:%d\n",a+b);printf("差:%d\n",a-b);printf("积:%d\n",ab);if(b!=0){printf("商:%d\n",a/b);}else{printf("除数不能为0\n");}return0;}2.编写一个C语言程序,判断一个整数是否为偶数。【参考答案】#include<stdio.h>intmain(){intnum;printf("请输入一个整数:");scanf("%d",&num);if(num%2==0){printf("%d是偶数\n",num);}else{printf("%d不是偶数\n",num);}return0;}3.编写一个C语言程序,计算一个学生的平均成绩。【参考答案】#include<stdio.h>intmain(){intnum;floatsum=0,average;printf("请输入学生人数:");scanf("%d",&num);for(inti=0;i<num;i++){floatscore;printf("请输入第%d个学生的成绩:",i+1);scanf("%f",&score);sum+=score;}average=sum/num;printf("平均成绩:%f\n",average);return0;}4.编写一个C语言程序,实现字符串的复制。【参考答案】#include<stdio.h>voidcopyString(chardest,constcharsrc){while(src){dest=src;dest++;src++;}dest='\0';}intmain(){charsrc[100],dest[100];printf("请输入一个字符串:");scanf("%s",src);copyString(dest,src);printf("复制的字符串:%s\n",dest);return0;}5.编写一个C语言程序,实现字符串的反转。【参考答案】#include<stdio.h>#include<string.h>voidreverseString(charstr){intlen=strlen(str);for(inti=0;i<len/2;i++){chartemp=str[i];str[i]=str[len-i-1];str[len-i-1]=temp;}}intmain(){charstr[100];printf("请输入一个字符串:");scanf("%s",str);reverseString(str);printf("反转的字符串:%s\n",str);return0;}6.编写一个C语言程序,实现两个整数的交换。【参考答案】#include<stdio.h>voidswap(inta,intb){inttemp=a;a=b;b=temp;}intmain(){inta,b;printf("请输入两个整数:");scanf("%d%d",&a,&b);swap(&a,&b);printf("交换后的整数:%d%d\n",a,b);return0;}7.编写一个C语言程序,实现数组元素的排序(冒泡排序)。【参考答案】#include<stdio.h>voidbubbleSort(intarr[],intn){for(inti=0;i<n-1;i++){for(intj=0;j<n-i-1;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){intarr[100],n;printf("请输入数组的大小:");scanf("%d",&n);printf("请输入数组元素:");for(inti=0;i<n;i++){scanf("%d",&arr[i]);}bubbleSort(arr,n);printf("排序后的数组:");for(inti=0;i<n;i++){printf("%d",arr[i]);}printf("\n");return0;}8.编写一个C语言程序,实现文件复制。【参考答案】#include<stdio.h>intmain(){FILEfp1,fp2;charch;printf("请输入源文件名:");scanf("%s",src);printf("请输入目标文件名:");scanf("%s",dest);fp1=fopen(src,"r");if(fp1==NULL){printf("无法打开源文件\n");return1;}fp2=fopen(dest,"w");if(fp2==NULL){printf("无法打开目标文件\n");fclose(fp1);return1;}while((ch=fgetc(fp1))!=EOF){fputc(ch,fp2);}fclose(fp1);fclose(fp2);printf("文件复制完成\n");return0;}【标准答案及解析】一、单项选择题1.B2.无3.C4.C5.B6.B7.A8.C9.无10.无二、填空题1.整数类型、浮点类型、字符类型、枚举类型、指针类型2.小于、大于、等于、不等于、小于等于、大于等于3.与、或、非4.按位与、按位或、按位异或、按位取反、左移、右移5.=、+=、-=、=、/=、%=、<<=、>>=、&=、|=、^=6.返回类型函数名(参数列表){函数体}7.数据类型指针变量名8.struct结构体名{成员列表};9.union共用体名{成员列表};10.fopen三、判断题1.×2.×3.√4.×5.√6.√7.√8.√9.×10.√四、简答题1.C语言中的基本数据类型包括整数类型(如int、short、long等)、浮点类型(如float、double等)、字符类型(char)、枚举类型(enum)和指针类型(void等)。整数类型用于表示整数,浮点类型用于表示实数,字符类型用于表示字符,枚举类型用于定义一组命名的整数值,指针类型用于存储内存地址。每种数据类型都有其特定的存储大小和取值范围。2.C语言中的运算符包括算术运算符(如+、-、、/、%)、关系运算符(如<、>、==、!=、<=、>=)、逻辑运算符(如&&、||、!)、位运算符(如&、|、^、~、<<、>>)、赋值运算符(如=、+=、-=、=、/=、%=、<<=、>>=、&=、|=、^=)等。运算符的优先级从高到低依次为:括号()、单目运算符(++、--、!、~)、乘除模(、/、%)、加减(+、-)、位移(<<、>>)、关系(<、>、<=、>=)、相等(==、!=)、逻辑与(&&)、逻辑或(||)、赋值(=)等。3.C语言中的函数是一段用于执行特定任务的代码块,可以接受参数并返回值。函数的特点包括:可以嵌套调用,但不能嵌套定义;必须有返回值,除非返回类型为void;参数可以是数组或函数;函数名不能重载。4.C语言中的指针是一个变量,用于存储内存地址。指针的作用包括:可以间接访问和修改内存中的数据;可以实现动态内存分配;可以作为函数参数传递复杂的数据结构;可以实现数据的多态性。5.C语言中的结构体是一种复合数据类型,用于组合不同类型的数据成员。结构体的特点包括:可以包含不同类型的数据成员;可以嵌套定义;可以与函数结合使用;可以用于实现复杂的数据结构。6.C语言中的共用体是一种复合数据类型,用于存储不同类型的数据,但其成员共享同一块内存空间。共用体的特点包括:可以节省内存空间;可以实现数据的多态性;其成员的访问顺序可能不同。7.C语言中的文件操作包括打开、读取、写入、关闭等操作。基本函数包括:fopen用于打开文件;fread用于读取文件;fwrite用于写入文件;fclose用于关闭文件。8.C语言中的动态内存分配是指在程序运行时分配内存空间。基本函数包括:malloc用于动态分配内存;free用于释放动态分配的内存;realloc用于重新分配动态分配的内存。五、应用题1.#include<stdio.h>intmain(){inta,b;printf("请输入两个整数:");scanf("%d%d",&a,&b);printf("和:%d\n",a+b);printf("差:%d\n",a-b);printf("积:%d\n",ab);if(b!=0){printf("商:%d\n",a/b);}else{printf("除数不能为0\n");}return0;}2.#include<stdio.h>intmain(){intnum;printf("请输入一个整数:");scanf("%d",&num);if(num%2==0){printf("%d是偶数\n",num);}else{printf("%d不是偶数\n",num);}return0;}3.#include<stdio.h>intmain(){intnum;floatsum=0,average;printf("请输入学生人数:");scanf("%d",&num);for(inti=0;i<num;i++){floatscore;printf("请输入第%d个学生的成绩:",i+1);scanf("%f",&score);sum+=score;}average=sum/num;printf("平均成绩:%f\n",average);return0;}4.#include<stdio.h>voidcopyString(chardest,constcharsrc){while(src){dest=src;dest++;src++;}dest='\0';}intmain(){charsrc[100],dest[100];printf("请输入一个字符串:");scanf("%s",src);copyString(dest,src);printf("复制的字符串:%s\n",dest);return0;}5.#include<stdio.h>#include<string.h>voidreverseString(charstr){intlen=strlen(str);for(inti=0;i<len/2;i++){chartemp=str[i];str[i]=str[len
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年8月梁子湖区农业农村局面向社会招聘1名公益性岗位工作人员考试备考题库及答案详解
- 2026年龙川县事业单位人员招聘考试备考试题及答案解析
- 2026年嘉禾县公务员招聘笔试备考试题及答案解析
- 2026年中宁县公务员招聘考试模拟试题及答案解析
- 2026内蒙古国贸集团有限公司公开招聘高校应届毕业生2人考试参考题库及答案详解
- 2026年怀宁县事业单位人员招聘笔试模拟试题及答案解析
- 2026年临武县事业单位人员招聘考试备考试题及答案解析
- 2026年沽源县事业单位人员招聘考试参考题库及答案解析
- 工勤人员培训测评试题及答案大全
- 2026年桓台县事业单位人员招聘考试参考题库及答案解析
- 预防错混料改善方案
- 数学史全套课件
- 汝瓷营销策划方案
- 河北2023年邢台银行笔试考试参考题库含答案详解
- 安徽恒光聚氨酯材料有限公司年产1000吨双(二甲氨基乙基)醚(BDMAEE)生产项目环评报告
- 氯离子含量快速测定仪说明书
- 综合评价方法与案例精选CH5
- GB 29415-2013耐火电缆槽盒
- GA/T 1207-2014基于数字影像的机动车特征技术鉴定
- 电化学发光分析项目及临床意义课件
- 高中化学核心素养教学设计课件
评论
0/150
提交评论