[计算机类试卷]国家二级(C语言)笔试模拟试卷148及答案与解析.doc

上传人:sumcourage256 文档编号:503312 上传时间:2018-11-29 格式:DOC 页数:26 大小:75KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷148及答案与解析.doc_第1页
第1页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷148及答案与解析.doc_第2页
第2页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷148及答案与解析.doc_第3页
第3页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷148及答案与解析.doc_第4页
第4页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷148及答案与解析.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 148及答案与解析 1 下列选项中,不是一个算法的基本特征的是 ( )。 ( A)完整性 ( B)可行性 ( C)有穷性 ( D)拥有足够的情报 2 结构化分析方法是面向 ( )的自顶向下、逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 3 下列工具中为需求分析常用工具的是 ( )。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 4 对线性表进行二分法检索,其前提条件是 ( )。 ( A)线性表以顺序方式存储,并按关键码值排好序 ( B)线性表以顺序方式存储,并按关键码的检索频率排好序 (

2、C)线性表以链式方式存储,并按关键码值排好序 ( D)线性表以链式方式存储,并按关键码的检索频率排好序 5 下列选项中不属于结构化程序设计方法的是 ( )。 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 6 关于结构化程序设计原则和方法描述错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 ( C)不允许使用 GOTO语句 ( D)语言中所没有的控制结构,应该采用前后一致的方法来模拟 7 软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求规格说明书以及 ( )。 ( A)阶段性

3、报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 下列对于软件测试的描述中正确的是 ( )。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原则 9 用链表表示线性表的优点是 ( )。 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序和逻辑顺序相同 10 在数据库设计中,将 E-R图转换为关系模式的过程属于 ( )。 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)

4、物理设计阶段 11 C语言的基本单位是 ( )。 ( A)函数 ( B)过程 ( C)子程序 ( D)子函数 12 下列不正确的转义字符是 ( )。 ( A) ( B) t ( C) n ( D) 088 13 能正确表示 “当 x的取值在 1,10和 100,110范围内为真,否则为假 ”的表达式是 ( ) ( A) (x 1) printf(“%do%odn“,x-,-y); ( A) 88 ( B) 77 ( C) 78 ( D) 87 16 若有定义 “double a;”,则正确的输入语句是 ( )。 ( A) scanf(“%1f,A) ; ( B) scanf(“%f, ( C)

5、 scanf(“%1f, 17 下列选项中合法的赋值语句是 ( )。 ( A) a-b 34 ( B) a 34,b 34 ( C) i-1; ( D) m (int)(x+y); 18 若整型变量 a、 b、 c、 d中的值依次为: 1、 4、 3、 2。则条件表达式 a b?a:cd?c:d的值是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 19 假定所有变量均已正确说明,下列程序段运行后 x的值是 ( )。 a b+c 0;x 12; if(!A) x-; elsex 5; if(C) x 3; elsex 4; ( A) 11 ( B) 4 ( C) 12 ( D

6、) 3 20 设变量 a、 b、 c、 d和 y都己正确定义并赋值。若有下列 if语句 if(a b) if(c d) y 0; else y 1; 该语句所表示的含义是 ( )。 ( A) ( B) ( C) ( D) 21 下列程序的运行结果是 ( )。 main() int a 2,b 3,c 4; if(a b) if0 0)c 0; elsec+ 1; printf(“%dh”,c); ( A) 2 ( B) 3 ( C) 5 ( D) 4 22 在下列给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 ( A) (!E 0) ( B) (E 0E 0) (

7、C) (E 0) ( D) (E! 0) 23 有下列程序: main() int x 0; inty 0; while(x 7 printf(:%d,%d“,y,x); 程序的输出结果是 ( )。 ( A) 0,7 ( B) 7,7 ( C) 0,6 ( D) 1,6 24 有下列程序: main() char s “abcde“; s+ 2; printf(“%dn“,s0; 执行后的结果是 ( )。 ( A)输出字符 a的 ASCII码 ( B)输出字符 c的 ASCII码 ( C)输出字符 c ( D)程序出错 25 下列选项中非法的字符常量是 ( )。 ( A) t ( B) 039

8、 ( C) , ( D) n 26 下列叙述中正确的是 ( )。 ( A) break语句只能用于 switch语句 ( B)在 switch语句中必须使用 default ( C) break语句必须与 switch语句中的 case配对使用 ( D)在 switch语句中,不一定使用 break语句 27 下列叙述中,错误的是 ( )。 ( A)在同一 C程序文件中,不同函数中可以使用名字相同的变量 ( B)在 main()函数体内定义的变量是全局变量 ( C)形参 是局部变量,函数调用完成即失去意义 ( D)若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用 28 C

9、语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 ( )。 ( A)地址传递 ( B)值传递 ( C)由实参传给形参,并由形参传回给实参 ( D)由用户指定传递方式 29 设 q1和 q2是指向一个 float型一维数组的指针变量, k为 float型变量,则不能正确行的语句是 ( )。 ( A) k *q1+*q2; ( B) q1 k; ( C) q1 q2; ( D) k *q1*(*q2); 30 若有说明: int*p1,*p2,n 8,m;下列均是正确赋值语句的选项是 ( )。 ( A) p1 p2 ( B) p1 n; ( C) p1 *p2 p1; ( D) p1

10、p2 p1; 31 若希望下列的程序运行后输出 25,程序空白处的正确选项是 ( )。 main() int i,j 50,a 7,4,10,5,8; for( ) j+ ai; primf(“%d,j-40); ( A) i 1;i 4;+i ( B) i 1;i 3;+i ( C) i 4;i 2;i- ( D) i 2;i 4;+i 32 若有说明 inta3 1,2,3,4,5,6,7,8,9,则 a数组第一维的大小是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D)无确定值 33 若二维数组 a有 m列,则在 aij刚前的元素个数为 ( )。 ( A) i*m+j-1 (

11、 B) i*m+j ( C) j*m+I ( D) i*m+j+1 34 函数调用 strcat(strcpy(str1,str2),str3)的功能是 ( )。 ( A)将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后 ( B)将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后 ( C)将字符串 str2复制到字符串 str1后再将字符串 str3连接到字符串 str1之后 ( D)将字符串 str2连接到字符串 str1之后再将字符串 str1复制到字符串 str3中 35 下列程序的输出结果是 ( )。 #include stdio.h f(

12、int A) intb 0; staticint c 4; a c+;b+; retum(A) ; main() int a 2,i,c; for(i 0;i 2;i+) C f(a+); printf(“%dhn“,C) ; ( A) 4 ( B) 7 ( C) 6 ( D) 5 36 #define能作简单的替代,用宏来替代计算多项式 5*x*x+5*+5的值的函数 f,正确的宏定义语句为 ( )。 ( A) #definef(x)5*x*x+5*+5 ( B) #definef5*x*x+5*x+5 ( C) #definef(a) (5*a*a+5*a+5) ( D) #define5

13、*x*x+5*+5f(x) 37 定义结构体数组: struct stu int num; charname20; x5 1,“LI“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“; for(i 1;i 5;i+) printf(“%d%C“,xi num,xiname2); 以上程序段的输出结果为 ( )。 ( A) 2A3N4A5U ( B) 112A3H41 ( C) 1A2N3A4U ( D) 2H3A4H51 38 若有下列说明和语句,已知 int型数据占 2个字节,则下列语句的输出结果是( )。 stmct st char a15; intb; doubl

14、e c; ; printf(“%d“,sizeof(structSt); ( A) 15 ( B) 8 ( C) 25 ( D) 2 39 设 intx 7,则 x的值是 ( )。 ( A) -8 ( B) -7 ( C) -1 ( D) 1 40 函数 Rell(fp)的作用是 ( )。 ( A)得到 fp所指向文件的当前读写位置 ( B)初始化流式文件的位置指针 ( C)移动流式文件的位置指针 ( D)以上 3种答案均正确 41 数据结构分为逻辑结构和存储结构,循环队列属于 _结构。 42 队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作 _。 43 在 _个

15、容量为 32的循环队列 中,若头指针 front 3,尾指针 rear 2,则该循环队列中共有 _个元素。 44 一棵二叉树第 6层 (根结点为第一层 )的结点最多为 _个。 45 度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 _。 46 若 a是血型变量,则表达式 (a=2*3, a*2) , a+6的值为 _。 47 表达式 1/2*(int)3.7/(int)(2.4*(1.5+2.5) )值的数据类型为 _。 48 下列程序段的输出结果是 _。 int n=C; switch(n+) default:printf(“error“);break; casea:printf(

16、“good“);break; caseC:printf(“moming“); cased:printf(“class“); 49 写出下列程序的输出结果 _。 main() int n=0; while(n+ =1) ; printf(“%d,“,n); printf(“%d“,n+); 50 下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。 #include stdio.h #include ctype.h main() char c; int a,s=0; while(_) if(isdigit(C) ) a=c-0;s+=a; printf(“s=%d“,

17、s); 51 下列程序输出的结果是 _。 int m=17; int fun(int x,int y) int m=3; return(X*y-m); main() int a=5,b=7; printf(“%dn“,fun(a,B) /m); 52 设有下列的程序段: char str=“Hello“; char*ptr; ptr=-str; 执行上面的程序段后, *(ptr+5) 的值为 _。 53 若有定义 int a44=1,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后, a11得到的初值是 _。 54 设有下列程序: #include stdio.h #include

18、 string.h main() int i; char s10,t10; gets(t); for(i=0;i 2;i+) gets(s); if(strcmp(t,s) 0) strcpy(t,s); printf(“%sn“,t); 程序运行后,从键盘上输入 ( CR代表回车符 ): CDEF CR BADEF CRQTHRG CR,则程序的输出结果是 _。 55 下列程序的输出结果是 _。 #define P(A) printf(“%d,“,(int)(A) ) #definePRINT(A) P(A) ;printf(“the end“) main() int i,a=0; for(

19、i=1;i 5;+) PRINT(a+i); printf(“n“); 国家二级( C语言)笔试模拟试卷 148答案与解析 1 【正确答案】 A 【试题解析】 作为一个算法,一般应该具有 4个特征: 可行性,即考虑到实际的条件能够达到一个满意的结果: 确定性,算法中的第一个步骤都必须是有明确定义的; 有穷性,一个算法必须在有限的时间内做完; 拥有足够的情报。 2 【正确答案】 C 【试题解析】 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型 。 3 【正确答案】 D 【试题解析】 需求分析常用的工具有

20、数据流图 (DFD)、数据字典 (DD)、判定树和判定表。 PAD(问题分析图 )、 PFD(程序流程图 )、 N-S(盒式图 )都是详细设计的常用工具,不是需求分析的工具。 4 【正确答案】 A 【试题解析】 对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。 5 【正确答案】 D 【试题解析】 结构化程序设计的主要原则概括为自顶向下、逐步求精和限制使用GOTO语句。 6 【正确答案】 C 【试题解析】 限制使用 GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO语句。其他 3项为结构化程序设计的原则。 7

21、 【正确答案】 B 【试题解析】 需求分析是软件定义时期的最后一个阶段。可以概括为 4个方面: 需求获取; 需求分析; 编写需求规格说明书; 需求评审。 8 【正确答案】 C 【试题解析】 软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。 9 【正确答案】 C 【试题解析】 在链表中因为除了 存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多。在插入和删除数据元素时,只需要移动相应的记录指针即可。在链表中数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。 10 【正确答案】 B 【试题解析】 数据库设计阶段主

22、要包括需求分析、概念设计、逻辑设计和物理设计。其中,逻辑设计的主要工作是将 E-R图转换为关系模式。 11 【正确答案】 A 【试题解析】 C语言是函数式的语言,它的基本组成单位是函数,在 C语言中任何程序都是由一 个或者多个函数组成的。 12 【正确答案】 D 【试题解析】 是反斜线转义字符: t是水平跳格转义字符; n饭是换行转义字符; C语言中没有规定 088为转义字符。 13 【正确答案】 C 【试题解析】 本题考查逻辑与 (110和 100,110是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式: (x 1) “-y”是先将 y的值减 1然后再引用

23、y的值,所以输出的 y值为 7。 16 【正确答案】 D 【试题解析】 scanf函数的调用形式是: scanf(格式字符串,输入项地址表 )。其中, “格式字符串 ”是要输入的变量的格式符; “输入项地址表 ”是要输入的变量的地址。题中定义变量 a为双精度型变量,双精度变量的格式符为 “1e”;变量的地址用取地址符 “else y 1;是 if(a B) 语句的一个子句。所以整个 C语句表达式的意思是:在、 a b的情况下,如果 c d则 y 0,否则 y 1。所以,选项 C) 为正确答案。 21 【正确答案】 C 【试题解析】 本题考查 if else语句。第一个 if语句,先判断条件,发

24、现 a b条件成立,执行下列的语句;第二个 if语句,先判断条件,发现 b O条件不成立,则执行与其配对的 else语句, c+ 1,得 c 5。 22 【正确答案】 B 【试题解析】 在 while(E)中,表达式 E可以是 C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B) 中表达式 E 0E 0是一个逻辑表达式。 23 【正确答案】 A 【试题解析】 本题考查 while循环。 y的值在 while循环的控制表达式中加 1,在循环体内 减 1,所以总的 y值不变,且控制条件 +y永远非零。当 x加到 7时不满足循环条件,结束循环。 24 【正确答案】 D 【

25、试题解析】 因为字符数组 s1)中的数组名 s表示的是一个地址常量。所以语句“s+ 2; ”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。 25 【正确答案】 B 【试题解析】 选项 A) 中, t表示的是横向跳若干格;选项 B) 中, 039错误,039是八进制形式表示的字符,但其中出现了 9,所以错误:选项 C) 中, , 是字符逗号;选项 D) 中 , n表示的是回车换行。 26 【正确答案】 D 【试题解析】 break为 C语言关键字,又称间断语句。 break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch语句中,也可以出现在循环语句中。

26、default是关键字,起标号的作用,代表所有 case标号之外的那些标号。 default标号可以出现在语句体中任何标号位置上。在 switch语句体中也可以没有 default标号。 27 【正确答案】 B 【试题解析】 本题考查函数调用时变量的作用域。形参是局部变量,函 数调用完就失去意义了,所以在同一个 C程序文件中,不同的函数体中可以使用名字相同的局部变量。 28 【正确答案】 B 【试题解析】 本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参。 29 【正确答案】 B 【试题解析】 选项 A)中是将指针 q1和

27、q2所指向的变量值相加,然后赋给 k;选项 B)中, float型数据和指针型数据之间不能进行赋值运算;选项 C)中,是两个指针变量之间的赋值;选项 D)中,是两个指针型变量所指向的两个 float型数据相乘。 30 【正确答案】 D 【试题解析】 本题考查指针变量的赋值。选项 A)中, p1、 p2本身都是地址变量,不能再将 p1取地址赋给 p2;选项 B)中,不能将整型数据直接赋值给指针型数据;选项 C)中, *p2代表了一个整型变量,而 *p2 p1这个语句试图把一个地址值放入一个整型变量中是错误的;选项 D)中指针间的赋值是正确的。 31 【正确答案】 D 【试题解析】 要想使程序输出

28、是 25,则 j-40 25,j 65,而 j初值是 50,所以填入 for循环中的语句,使引用的数组元素累加 为 65-50 15即可。 32 【正确答案】 B 【试题解析】 本题考查二维数组第一维的大小如何确定。二维数组第一维的大小由如下规则确定: 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小; 当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加 1。 33 【正确答案】 B 【试题解析】 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是 i,说明它前面还有 i行,有i*m个元素,数组

29、第二维的下标 是 j,说明它前面还有 j列,有 j个元素,所以共有 i*m+j个元素。 34 【正确答案】 C 【试题解析】 strcat(s1,s2)是把 s2字符串连接到 s1字符串末尾, strcpy(s1,s2)是把 s2字符串复制给 s1字符串,要保证 s1能容纳下连接或复制后的字符串。 35 【正确答案】 D 【试题解析】 本题考查静态变量的使用方法和 for循环。在函数调用时, static变量在函数调用结束后所作的所有变化均不保持,所以当 i-1时,第 2次进入 f函数时 c 5,所以最终 main函数中 c的值为 5。 36 【正确答案】 C 【试题解析】 带参数宏的格式:

30、#define标识符 (形参表 )形参表达式。其功能:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。 37 【正确答案】 A 【试题解析】 本题主要考查结构体数组的使用。 xi.num为结构体 xi中的 num成员, xi.name2是结构体 xi中 name成员的第 3个元素。程序执行循环过程时:第 1次循环, i 1,输出 x1.num, x1.name2的值,即 2A:第 2次循环,i 2,输出 x2.num, x2.name2的值,即 3N;第 3次循环, i 3,输出x3.num, x3.name2的值,即 4A:第 4次循环, i 4,输出 x4.num,

31、x4.name2的值,即 5U。 38 【正确答案】 C 【试题解析】 本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中 int b占 2个字节,chara15占 15个字节, double c占 8个字节,所以共 25个字节。 39 【正确答案】 A 【试题解析】 本题主要考查按位求反运算和 C语言中正负数的表示, “0”代表正数, “1”代表负数; x 7的二进制为 00111,第一个 0代表正数, x为 11000,第一个 1代表负数,值为 8。 40 【正确

32、答案】 A 【试题解析】 位置指针当前值函数 ftell()的基本调用格式为: ftell(fp)。 fiell()函数的参数说明: “fp“是指向文件的文件型指针。 ffell函数的功能:得到 fp所指向文件的当前读写位置,即位置 指针的当前值,如果函数的返回值为 -1L,表示出错。 41 【正确答案】 逻辑 【试题解析】 数据的逻辑结构主要是反映数据之间的逻辑关系,而存储结构是用来反映数据的逻辑结构在计算机存储空间中的存放形式。循环队列主要是强调数据之间的关系,因此属于逻辑结构。 42 【正确答案】 队尾 【试题解析】 在队列中,允许插入的一端叫做 “队尾 ”,允许删除的一端叫做 “队头

33、”。 43 【正确答案】 31 【试题解析】 设队列容量为 m,如果: rear front,则队列中元素个数为 rear-front;如果 rear front,则队列中元素个数为 m+(rear-front)。本题 rearfront,则 m 32+(2-3) 31。 44 【正确答案】 32 【试题解析】 二叉树第 k层上,最多有 2k-1(k1)个结点。第 6层的结点数最多是 26-1 32。 45 【正确答案】 45 【试题解析】 对于长度为 N的线性表,在最坏情况下 (即线性表中元素现在的顺序与目标顺序正好相反 ),冒泡排序需要经过 N/2遍的从前往后的扫描和 N/2遍的从后往前的

34、扫描,需要的比较次数为 N(N-1)/2。 46 【正确答案】 12 【试题解析】 本题考查逗号表达式的运算规则。逗号表达式的基本格式为: “表达式 1,表达式 2, ” ,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第 1个表达式 a=2*3=6,然后计算第 2个表达式 a*2,这时整个表达式的值为 12,但要注意,因为第 2个表达式并没有给 a赋值,因此 a的值不变;接下来执行最后一个表达式 a+6=12,所以整个表达式最后的值为 12。 47 【正确答案】 整型 【试题解析】 上面的表达式中,通过强制类型转换把最后参与运算的数据 都转换成了 int型,所以最后得

35、到的结果也是 int类型。 48 【正确答案】 morningclass 【试题解析】 本题考查了两个知识点: “+、 -”运算后缀形式是先使用变量原来的值,使用完后再使其增 1或减 1; 在 switch语句中,当 n=c时,执行“casec:”,输出 morning;因为此句中没有 break语句,因此接着执行“cased:”,输出 class,最终输出结果为 morningclass。 49 【正确答案】 3,3 【试题解析】 本题在 while(n+ =1”语句后,直接加了分号,说明如果 while()的条件为真时,该循环什么都不做; n+是先取 n的当前值和 1做比较,然后再将 n加

36、 1。第一次循环, n=0时,循环条件 n+=0 =1成立,执行循环,然后得到 n=1。第二次循环, n=1时,循环条件 a+=1 =1成立,执行循环,然后得到n=2。第三次循环, n=2时,循环条件 n+=2 =1不成立,不执行循环,但在判断循环条件时仍将 n加 1,得到 n=3。退出循环后执行 printf语句,第二个 printf语句输出 n+,是先输出 n的当前值 3,然后再将 n加 1,即程序结束后 得到 n=4,但输出的是 3。 50 【正确答案】 (c=getchar()!=n 【试题解析】 分析题目可知,程序中运用函数 c=getchar()从标准输入设备读取下一个字符,而且是

37、一行的字符 (即没有换行 ),所以条件为 (c=getchar()!=n。 51 【正确答案】 1 【试题解析】 本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。 本程序首先定义了一个全局变量 m=17, m=17的作用域在整个程 序内。在 fun函数内部定义了一个局部变量 m=3, m=3的作用域仅在 fun函数内部,通过 fun函数返回两个形参的积再减 m。在主函数中,输出 fun(a, b)/ m2(5*7-3)/17=1。 52 【正确答案】 0 【试题解析】 本题涉及字符数组和指针的两个知识点: 在 c语言中,字符型

38、数组在存放字符串时会自动在末尾加上字符串结束标识符 0,所以题中数组 str有 6个元素。 ptr指向数组 s仕的首地址, ptr+5是指向 str5, *(ptr+5)是引用 str5的值,即 0。 53 【正确答案】 0 【试题解析】 二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的, a44可以分解为 4个一维数组,其数组名分别为 a0、a1、 a2、 a3,这 4个一维数组都有 4个元素, a0的元素为 a00、 a01、a02、 a03o 54 【正确答案】 QTHRG 【试题解析】 strcmp (t,s)函数用来比较 t和 s所指字符串的大小,若 t s

39、,则函数值大于 0;若 t=s,则函数值等于 0;若 t s,则函数值 小于 0。 strcpy(t,s)函数的功能是把字符数组 s所指字符串的内容复制到字符数组 t所指的存储空间中。本题中, t10=“CDEF“。第一次循环, s10= “BADEF“, if语句的控制条件strcmp(t,s) 0不成立,接着执行第二次循环, s=“QTHRG“, if语句的控制条件 strcmp(t,s) 0成立,执行下列的语句 ,将字符数组 s所指字符串的内容复制到字符数组 t所指的存储空间中,然后输出字符数组 t。 55 【正确答案】 1,2,3, 4,the end 【试题解析】 本题考查带参 数的宏的定义。第 1次循环, i=1时,调用PRINT(1), P(1)输出 1;第 2次循环, i=2时,调用 PRINT(2), P(2)输出 2;第 3次循环, i=3时,调用 PRINT(3), P(3)输出 3;第 4次循环, i=4时,调用 PRINT(4), P(4)输出 4, the end。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1