C语言期末考试作业
c语言期末考试题库及详解答案

c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。
答案:int7. C语言中,用于输入输出的库函数分别是______和______。
答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。
答案:int*9. C语言中,用于定义函数的关键字是______。
答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。
答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。
答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。
结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。
答案:递归函数是一种函数自己调用自己的特殊函数。
递归函数通常用于解决可以被分解为相似子问题的问题。
递归函数需要有一个明确的终止条件,以防止无限递归。
四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。
c语言期末考试题及详细答案

c语言期末考试题及详细答案一、选择题(每题2分,共20分)1. 下列哪个关键字用于定义C语言中的函数?A. classB. functionC. voidD. int答案:D2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A3. 以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B4. C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B5. 在C语言中,哪个函数用于计算两个整数的乘积?A. powB. sqrtC. absD. multiply答案:D(注意:multiply不是C语言标准库函数,这里假设为题目中的自定义函数)6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. +=答案:A7. C语言中,哪个关键字用于循环结构?A. ifB. forC. whileD. switch答案:B8. 在C语言中,哪个函数用于输出字符串?A. printfB. scanfC. getsD. puts答案:D9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. 以上都是答案:D10. C语言中,用于定义一个浮点型变量的关键字是?A. intB. floatC. doubleD. char答案:B二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是________。
答案:char2. C语言中,用于定义一个双精度浮点型变量的关键字是________。
答案:double3. C语言中,用于定义一个布尔型变量的关键字是________。
答案:_Bool(或int,取决于编译器)4. C语言中,用于定义一个无返回值函数的关键字是________。
C语言期末考试题(含答案)

C语言期末考试题 ( 含答案 )4程序行后的出果是:四、编程题( 3x15’ = 45 ’)19、写一个程序。
入一个小写字母,程序出它的大写字母。
(提示:小写字母的ASCII 比大些字母大 32)20、写一个程序,算100+101+102+⋯+300 的。
21、已知学生成 (100 分分 ) 与等的关系:成( grade )等90<=grade<=100A80<=grade<90B70<=grade<80C60<=grade<70Dgrade<60E你写一个程序,要求:入学生成,出学生成的等。
(提示:使用 switch ⋯ .case 句)期末答案1、B2、A3、D4、C5、B6、A7、D8、C9、D10、C11、 x>=z && y>=z12、函数名、形式参数、函数体13、 while、do-while、for14、a%5==0 && a%7==015、12,716、11,1317、318、3,2,-119、程序代以下:#include <stdio.h>void main(){char ch;5scanf("%c",&ch);printf("%c\n",ch-32);}20、程序代码以下:#include <stdio.h>void main(){int i,sum=0;for (i=100;i<=300;i++)sum+=i;printf("sum=%d\n",sum);}21、程序代码以下:#include <stdio.h>void main(){int grade;scanf("%d",&grade);switch(grade/10){case 10:case 9:printf("A\n");break;case 8:printf("B\n");break;case 7:printf("C\n");break;case 6:printf("D\n");break;default:printf("E\n");break;}}期末试题答案备用卷1、B2、A63、D4、D5、B6、A7、A8、B9、B10、A11、整型、实型、字符型12、313、2,114、9,015、return16、double17、718、219、2,1,120、程序代码:#include <stdio.h>void main(){int a,b,c;float pinjun;scanf("%d%d%d",&a,&b,&c);pinjun = (a+b+c)/3.0;printf("%.2f\n",pinjun);}21、程序代码:#include <stdio.h>void main(){int a;scanf("%d",&a);if(a<0)a=-a;printf("%d\n",a);}22、程序代码:#include <stdio.h>void main(){float x,y;scanf("%f",&x);if(x<=0)7y=3*x+5;else if(x>0 && x<=1)y=x+5;elsey=-2*x+8;printf("%.2f\n",y);}8。
大学生期末c语言试题及答案

大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
c语言期末考试题及答案详

c语言期末考试题及答案详一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. defineB. declareC. definetypeD. type答案:B2. 下列哪个是C语言中的合法标识符?A. 123abcB. intC. _123abcD. if答案:C3. 在C语言中,哪个运算符用于计算两个整数的平均值?A. /B. %C. +D. /答案:D4. 下列哪个是C语言中正确的字符串定义?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. string str = "Hello, World!";D. str "Hello, World!";答案:A5. 在C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. square()C. root()D. power()答案:A6. 下列哪个语句用于在C语言中交换两个变量的值?A. swap(a, b);B. exchange(a, b);C. a = b; b = a;D. a, b = a + b;答案:C7. 在C语言中,哪个关键字用于声明一个函数?A. functionB. defC. funcD. void答案:D8. 下列哪个是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3, 4};D. int arr = {1, 2, 3, 4, 5};答案:B9. 在C语言中,哪个语句用于结束程序的执行?A. break;B. end;C. exit();D. stop;答案:C10. 下列哪个是C语言中正确的条件语句?A. if (x > 0) { ... }B. condition (x > 0) { ... }C. if (x > 0) then { ... }D. if (x > 0) { ... } else { ... }答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用________关键字来定义一个结构体。
c语言期末复习试题附答案

c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
c语言期末考试题

c语言期末考试题一、选择题1. 下列关于C语言的说法中,错误的是:A. C语言是一种高级语言B. C语言可以跨平台运行C. C语言是一种编译型语言D. C语言是由Dennis Ritchie开发的2. 在C语言中,以下哪个符号用于表示注释?A. //B. ***C. <>D. --3. 下列哪个选项中的变量类型是正确的?A. num1 = 5.6B. str1 = "hello"C. flag = TrueD. char1 = 'A'4. 在C语言中,以下哪个函数用于输出内容到屏幕上?A. scanf()B. gets()C. puts()D. printf()5. 以下哪个运算符是用于求余数的?A. %B. /C. *D. +二、填空题6. 在C语言中,用于表示“或”的逻辑运算符是______。
7. 在C语言中,用于声明常量的关键字是______。
8. 下列哪个库是用于字符串处理的?______9. 在C语言中,使用的“与”逻辑运算符是______。
三、简答题10. 请简要介绍C语言的基本数据类型及其表示范围。
11. 请解释一下C语言中的指针及其作用。
12. 请列举并简要说明C语言中常用的流控制语句。
13. 请写出一个简单的C语言程序,实现输入两个数字并计算它们的和。
四、编程题请编写一个C语言程序,实现如下功能:输入一个整数n,输出1到n之间所有的偶数。
以上为C语言期末考试题目,希望同学们认真准备,顺利通过考试。
祝各位好运!。
c语言期末试题及答案及详解

c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题一1、执行 int a=10; printf(“%d”,a++); 后输出结果和 a 的值分别是 ( )A. 11 和 10B. 11 和 11C. 10 和 11D. 10 和 102、能正确表达逻辑关系或的C语文表达式是 ( );;; D. a >= 10 || a <= 03、 char a[]={'A','B','C'};char b[]="ABC";数组a和数组b 占用的内存空间关系是 ( )A. 一样B. a的空间小于b的空间C. 无法比较D. a的空间大于b的空间4、在C 语言中,形参的缺省存储类是()。
A. autoB. registerC. staticD. extern5、C 语言源程序的基本单位是 ( ).A. 过程B. 函数C. 子程序D. 标识符6、以下标识符中,不能作为合法的C 用户定义标识符的是()。
A. answerB. toC. signedD. _if7、算法的有穷性是指 ( )A. 算法程序的运行时间是有限的B. 算法程序所处理的数据量是有限的C. 算法程序的长度是有限的D. 算法只能被有限的用户使用8、以下选项中可作为C语言合法常量的是 ( )A. -80B. -080C. -8e1.0D. -80.0e9、若有语句:char *line[5];, 以下叙述中正确的是 ( )A. line是一个数组, 每个数组元素是一个基类型为char为指针变量B. line是一个指针变量,该变量可以指向一个长度为5的字符型数组C. line是一个指针数组,语句中的*号称为间址运算符D. line是一个指向字符型函数的指针10、下面程序的输出结果是 ( )main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2二、填空题(每空 3 分,共 30 分)1、算法是。
2、算法的特点是。
3、C语言中,标识符的构成规则。
4、C语言中,一个函数包括:和。
5、关键字 sizeof 是。
6、指针与指针变量的无别是:。
7、一个结构型变量的存储空间是:。
8、 break; 和 continue; 的区别是:。
9、变量的作用域是指:。
.三、判断是非(每小题 2 分,共 20 分)1、C语言中字符串只能存放在字符数组中。
( )2、printf和scanf都不是C语言语句。
( )3、关系运算符 <= 的优先级高于 = = 的优先级。
( )4、函数的定义不能嵌套,但调用可以嵌套。
( )5、有定义int *p[4], (*q)[4];p 和 q并无本质区别,只是C语言灵活性的表现而已。
( )6、for (表达式1; 表达式2; 表达式3)中的三个表达式都可以省。
( )7、在函数中,形式参数与实际参数相互独立,互不影响。
( )8、指针、数组名和函数名都是地址。
( )9、while语句的循环体至少要执行一次。
( )10、C语言中通过函数调用只能获取一个返回值。
( )四、编程题(每小题 10 分,共 20 分)1、采用冒泡法对任意 n (n>1)个排序。
要求: 用子函数void sort(int *p, int n)实现。
2、写一个函数insert,用来向一个动态链表插入结点。
习题二一、选择题(每小题3分,共 30 分)1、执行 int a=10; printf(“%d”,++a); 后输出结果和 a 的值分别是 ( )A. 11 和 10B. 11 和 11C. 10 和 11D. 10 和 102、能正确表达逻辑关系:与的C语文表达式是 ( );;; D. a >= 10 && a <= 03、 char a[]={'A','B','C'};char *b="ABC";数组a和数组b 占用的内存空间关系是 ( )A. 一样B. a的空间小于b的空间C. 无法比较D. a的空间大于b的空间4、在C 语言中,形参的缺省存储类是()。
A. autoB. registerC. staticD. extern5、C 语言源程序的基本单位是 ( )。
A. 过程B. 函数C. 子程序D. 标识符6、以下标识符中,不合法的C 用户定义标识符的是()。
A. answerB. -toC. signedD. _f7、算法的有穷性是指 ( )A. 算法程序的运行时间是有限的B. 算法程序所处理的数据量是有限的C. 算法程序的长度是有限的D. 算法只能被有限的用户使用8、以下选项中可作为C语言合法常量的是 ( )A. -80B. -080C. -8e1.0D. -80.0e9、若有语句:char (*line)[5];, 以下叙述中正确的是 ( )A. line是一个数组, 每个数组元素是一个基类型为char为指针变量B. line是一个指针变量,该变量可以指向一个长度为5的字符型数组C. line是一个指针数组,语句中的*号称为间址运算符D. line是一个指向字符型函数的指针10、下面程序的输出结果是 ( )main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+10));}A. 9B. 10C. 1D. 不确定二、填空题(每空 3 分,共 30 分)1、程序是一组计算机能识别和执行的。
2、将 10-25 用C语言规定的输入方式,应输入。
3、C语言中,标识符的构成规则。
4、C语言中,一个函数包括:和。
5、关键字 sizeof 是的运算符。
6、指针与指针变量的无别是:。
7、结构化程序设计包括哪三种结构:,和。
三、判断是非(每小题 2 分,共 20 分)1、C语言中字符串可用字符串变量来存放。
( )2、printf和scanf都是C语言中标准的输出/输入语句。
( )3、关系运算符 <= 的优先级高于 = = 的优先级。
( )4、函数的定义的定义和调用一样, 可以嵌套。
( )5、有定义int *p[4], (*q)[4];p 和 q并无本质区别,只是C语言灵活性的表现而已。
( )6、for (表达式1; 表达式2; 表达式3)中的第二个表达式绝对不能省。
( )7、在函数中,形式参数与实际参数可以指向同一片区域。
( )8、指针变量,数组名和函数名都是地址。
( )9、do…while语句的循环体至少要执行一次。
( )10、C语言中,函数调用可以返回多个值。
( )四、编程题(每小题 10 分,共 20 分)1、采用选择排序法对任意 n (n>1)个排序。
要求: 用子函数void sort(int *p, int n)实现。
2、写一个函数print,用来输出一个动态链表。
习题三一、单项选择题(每小题 2 分,共 60 分,请将答案写在该题后的答题表格中)1. 以下叙述正确的是( )A. 在C程序中,main函数必须位于程序的最前面B. C程序中的每行只能写一条语句C. 结构化程序由顺序、选择和循环等三种基本结构组成D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误2. 下列变量名中合法的是( )A. X.Y.TomB. 3a6bC. _6ª7bD. $ABC3. 已知各变量的类型如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下不符合C语言语法的表达式是( )A. a+=a-+(b=4)*(a=3)B. a=a*3+2C. x%2D. y=float(i)4. 字符串常量" \\\22a,0\n"的长度是 ( )A. 8B. 7C. 6D. 55. 表达式13%5的值为( )A. 2B. 3C. 5D. 16. 若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是( )A. 0B. 0.5C. 1D. 27. 若给定条件表达式(M)?(a++):)(a--),则其中表达式(M)( )A. 和 (M==0)等价B. 和(M==1)等价C. 和(M!=0)等价D. 和(M!=1)等价8. 有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为3,b的值为7,c的值为5,从键盘上输入的数据的正确格式是 ( )A. 375<CR>B. 3,7,5<CR>C. a=3,b=7,c=5 <CR>D. a=3 b=7 c=5<CR>9. 以下程序的输出结果是( )#include <stdio.h>void main(){ int x=2,y=-1,z=2;if (x<y)if (y<0) z=0;else z+=1;printf("%d\n",z)}A. 3B. 2C.1D. 010. 有以下程序:#include <stdio.h>void main(){ int a=15,b=21,m=0;switch(a%3){ case 0: m++; break;case 1: m++;switch(b%2){ default: m++;case 0: m++; break;}}printf("%d\n",m);}程序运行后的输出结果是( )A. 1B. 2C. 3D. 411. 有以下程序:#include <stdio.h>void main (){ int i,s=0;for (i=1; i<10; i+=2) s+=i+1;printf("%d\n",s);}程序执行后的输出结果是 ( )A. 自然数1~9的累加和B. 自然数1~10的累加和C. 自然数1~9中的奇数之和D. 自然数1~9中的偶数之和12. 若有以下程序,运行时输入"china? ",其执行结果是( )#include <stdio.h>void main (){ char c;c=getchar();while (c!=’?’){ putchar();c=getchar();}}A. chinaB. china?C. ChinaD. China?13. 以下数组定义中错误的是( )A. int a[2][3]B. int b[][3]={0,1,2,3};C. int c[100][100]={0};D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};14. 以下叙述正确的是( )A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分15. 已知:char str1[10]= "abcde",str2[10]= "xyz"; 则下列C语句的输出结果是()printf("%d",strlen(strcpy(str1,str2)));A. 3B. 5C. 8D. 916. 以下程序的输出结果是( )#include <stdio.h>void main (){ char ch[3][10]={ "AAAA","BBB","CC"};printf(" \" %s\" \n",ch[1]);}A. "AAAA"B. "BBB"C. "BBBCC"D. "CC"17. 若要求从键盘读入含有空格字符的字符串,应使用函数( )A. getc()B. gets()C. getchar()D. scanf()18. C语言中,程序的基本单位是( )A. 函数B. 文件C. 语句D. 程序段19. 下列关于C语言函数参数的叙述正确的是( )A. 实参与其对应的形参各占据独立的存储单元B. 实参占用存储单元,形参是虚拟的,不占用存储单元C. 只有当实参单元与其对应的形参单元同名时,才共占用一个存储单元D. 形参值的改变会影响实参的值20. 若函数的调用形式为f((x1,x2,x3),(y1,y2)),则函数形参的个数是( )A. 2B. 3C.4D. 521. C程序中,若未对变量进行存储类别的说明,则隐含类别是( )A. staticB. autoC. registerD. extern22. 变量的指针,其含义是指该变量的( )A. 值B. 地址C. 名D. 一个标志23. 若指针p已正确定义并指向如图所示的存储单元:则执行语句*p++;后,*p的值是( )a[0] a[1] a[2] a[3] a[4]A. 20B. 30C. 21D. 3124. 若有定义:int n=2,*p=&n,*q=p; 则以下非法的赋值语句是( )A. p=py;B. *p=*q;C. N=*q;25. 设有以下程序段:char s[]= "china";char *p=s;则以下叙述正确的是( )A. s的内容和p的内容相等B. s和p完全相同C. *p等于"china"D. *p与s[0]相等26. 关于malloc函数,说法错误的是()A. malloc函数的功能是在内存中开辟连续的一段空间B. malloc函数的参数为开辟的空间的大小C.malloc函数的返回值为指向开辟空间的指针D.malloc函数可以开辟任意大小的空间27. 若定义结构体变量“struct st a;”,以下语句正确的是()A.st.num=1; B. a.num=1001; C. a=10; D. a={1,2};28. 若有以下定义:struct person { char name[9]; int age; }struct person class[10]={ "John",17, "Paul",19, "Mary",18, "Adam",16};根据上述定义,能输出字母M的语句是( )A. printf("%c\n",class[3].name);B. printf("%c\n",class[3].name[1]);C. printf("%c\n",class[2].name[1]);D. printf("%c\n",class[2].name[0]);29. 以下可用于向文件输出数据的函数是( )A. fscanfB. freadC. fgetcD. fputc30. 下列关于文件操作的叙述正确的是( )A. 对文件的操作必须先打开文件B. 对文件的操作必须先关闭文件C. 对文件的操作后可以不用关闭文件D. 上述三种答案都不正确二、填空题(每小题 1 分,共 10 分)1. 若有以下定义:double x; int k;在程序中变量中的值没有误差。