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

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

1、国家二级( C语言)笔试模拟试卷 104及答案与解析 1 在长度为 n的有序线性表中进行二分查找,需要的比较次数为 ( )。 ( A) log2n ( B) nlog2n ( C) n/2 ( D) (n+1)/2 2 下列数据结构中能应用二分查找的是 ( )。 ( A)有序线性链表 ( B)有序顺序表 ( C)顺序存储的栈 ( D)顺序存储的队列 3 设有下列二叉树: 对此二叉树中序遍历的结果为 ( )。 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 4 在 模块化程序设计中,按功能划分模块的原则是 ( )。 ( A)各模块的功能尽量单一,且

2、各模块之间的联系尽量少 ( B)各模块的功能尽量单一,且各模块之间的联系尽量紧密 ( C)各模块应包括尽量多的功能 ( D)各模块应包括尽量多的输入输出操作 5 数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是 ( )。 ( A)线性链表 ( B)二叉链表 ( C)栈与队列 ( D)循环队列 6 下列叙述中正确的是 ( )。 ( A)软件就是程序清单 ( B)软件就是存放在计算机中的文件 ( C)软件应包括程序清单以及运行结果 ( D)软件包括程序、数据和文档 7 软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求规格说明书以及 ( )。 ( A)阶段性报

3、告 ( B)需求评审 ( C)总结 ( D)以上都不正确 8 在关系数据库中,用来表示实体之间联系的是 ( )。 ( A)树结构 ( B)网结构 ( C)线性表 ( D)二维表 9 下列叙述中正确的是 ( )。 ( A)用 E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系 ( B) 用 E-R图只能表示实体集之间一对一的联系 ( C)用 E-R图只能表示实体集之间一对多的联系 ( D)用 E-R图表示的概念数据模型只能转换为关系数据模型 10 关系表中的每一行称为一个 ( )。 ( A)元组 ( B)字段 ( C)属性 ( D)码 11 下列选项中,不能用作标识符的是 ( )

4、。 ( A) _1234_ ( B) _1_2 ( C) int_2_ ( D) 2_int_ 12 下列不属于 C语言关键字的选项是 ( )。 ( A) printf ( B) sizeof ( C) extern ( D) long 13 ( A) x/y*z ( B) x*(1/(y*z) ( C) x/y*1/z ( D) x/y/z 14 下列选项中属于 C语言构造类型的是 ( )。 ( A)指针类型 ( B)空类型 ( C)枚举类型 ( D)数组类型 15 若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后, a的值是 ( )。 ( A) -3 ( B) 9

5、( C) -12 ( D) 6 16 有如下程序 main() int y=3, x=3, z=1; printf(“%d %dn“, (+x,+y), z+2); 运行该程序的输出结果是 ( )。 ( A) 3 4 ( B) 4 2 ( C) 4 3 ( D) 3 3 17 下面程序段的输出结果是 ( )。 int i=32770; printf(“%dn“, i); ( A) 32769 ( B) 32767 ( C) -32766 ( D)输出不确定数 18 设 x、 y、 t均为 int型变量,则执行语句: x=y=3; t=+x|+y;后, y的值为( )。 ( A)不定值 ( B)

6、 4 ( C) 3 ( D) 1 19 设 a、 b、 c、 d、 m、 n均为整型变量,且 a=3、 b=6、 c=7、 d=8、 m=2、 n=1,则逻辑表达式 “(m=a b)i 6;i+) printf(i%2)?(“*%dn“):(“#%dn“),i); 上面程序段的输 出结果是 _。 ( A) *4 #5 ( B) #4 *5 ( C) *4 *5 ( D) #4 #5 23 下列程序的输出结果是 _。 main() int i=0x100,j=100,k=0100; printf(“%d%d%dn“,i,j,k); ( A) 100 100 100 ( B) 16 100 100

7、 ( C) 256 100 64 ( D) 256 100 100 24 下列程序的输出 结果是 _。 main() int x, y; for(x=1,y=1;x10;x+) if(y 5)break; if(y%3 1) y+=3; continue; y-=5; printf(“%dn“,x); ( A) 2 ( B) 3 ( C) 4 ( D) 5 25 下列程序的输出结果是 _。 main() int x=0,a=0,b=2; if(x=a+b) printf(“*n“); else printf(“#n“); ( A)有语法错,不能通过编译 ( B)通过编译,但不能连接 ( C)

8、* ( D) # 26 下列说法中,正确的是 _。 ( A)指针是一个变量 ( B)指针中存放的可以是任何类型的值 ( C)指针变量是变量地址 ( D)指针变量占用存储空间 27 下列程序的输出结果是 _。 main() static int num5=1, 3,5,7,9; int*p1,*p2; p1=num; p2=i 3;i+)ni=O; k=2; for(i=0;i k;i+) for(j=0;j k;j+) nj=ni-1; printf(“%dn“,n0); ( A) -2 ( B) -1 ( C) 0 ( D) -3 29 C语言规定,简单变量作实参时,它和对应形参之间的数据传

9、递方式是_。 ( A)由实参传给形参,再由形参传回给实参 ( B)地址传递 ( C)单向值传递 ( D)由用户指定传递方式 30 在 C语言的循环语句 for、 while、 do-while中,用于结束本次循环,继续执行下一次循环的语句是 _。 ( A) switch ( B) break ( C) continue ( D) goto 31 执行下面程序的结果是 _。 main() int x=2; printf(“%dn“,(x-,x 1,xfloat a n; scanf(“%d“,i 3;i+) printf(“%d“,xi2-i); ( A) 1 59 ( B) 1 4 7 ( C

10、) 3 5 7 ( D) 3 6 9 35 下列程序的执行结果是 _。 in(f(char*s) char*p=s; while(*p!=0)p+; return(p-s); main() printf(“%dn“,f(“goodbye!“); ( A) 3 ( B) 6 ( C) 8 ( D) 0 36 以下程序段的执行结果为 _。 #define PLUS(X,Y)X+Y main() int x=1,y=2,z=3,sum; sum=PLUS(x+y,z)*PLUS(y,z); printf(“SUM=%d“,sum); ( A) SUM=9 ( B) SUM=12 ( C) SUM=1

11、8 ( D) SUM=28 37 下面函数的功能是 _。 exchange(int*ptr1,*ptr2) int*ptr; ptr=-ptr1; ptr1=ptr2; ptr2=ptr; ( A)交换 *ptr1和 *ptr2的值 ( B)无法改变 *ptr1和 *ptr2的值 ( C)可能造成系统故障,因为使用了空指针 ( D)交换 *ptr1和 *pb2的地 址 38 下列程序的执行结果是 _。 print(int*b,int m) int i; for(i=0;im;i+) *b=i; b+; printf(“%dn“,*-B) ; main() int a5=1,2, 3, 4, 5

12、; print(a,5); ( A) 5 ( B) 4 ( C) 3 ( D) 2 39 下列能正确进行字符数组赋初值的语句是 _。 ( A) chart5=a,b,c,d,e; ( B) char*t;t=“abcde“; ( C) char t5=“abcde“; ( D) char t5;t=“abcd“; 40 以下程序存在语法性错误,关于错误原因的正确说法是 _。 main() int a=5,b; void p_ch1(); b=p_ch1(A) ; ( A)语句 “void p_ch1(): ”有错,它是函数调用语句,不能使用 void说明 ( B)变量名不能使用大写字母 ( C

13、)函数说明和函数调用语句之间有矛盾 ( D)函数名中不能使用下划线 41 fseek函数是 C语言系统提供的标准库函数,其实现的具体操作是 _。 ( A)实现文件的顺序读写 ( B)实现文件的随机读写 ( C)改变文件的位置指针 ( D)以上答案均不正确 42 下列程序的运行结果是 _。 main() int a6,i; for(i=2;i 6;i+) ai=4*(i-2*(i 3)%5; printf(“%2d“,ai); ( A) 2 3 2 3 ( B) 1 2 1 2 ( C) 3 2 3 2 ( D) 2 2 2 2 43 下列语句所定义字符串在内存中占的字节数是 _。 char*s

14、=“NameAgen“; ( A)定义中有语法错误 ( B) 20 ( C) 19 ( D) 14 44 下列程序的输出结果是 _。 main() union int a2; long k; char c4; un,*sp=p2=p1=p2;p2=p; printf(“%d,%d,“,*p1,*p2); printf(“%d,%dn“,x,y); 程序的输出结果为_。 ( A) 6, 4, 4, 6 ( B) 4, 6, 6, 4 ( C) 4, 6, 4, 6 ( D) 6, 4,6, 4 46 下列程序的输出结果是 _。 int m=10; int fun(int a, int B) in

15、t m=2; return(a*b-m); main() int x=7, y=5; printf(“%dn“,fun(x,y)%m); ( A) 1 ( B) 2 ( C) 7 ( D) 3 47 下列程序的输出结果是 _。 struct exmple int x; int y; num2=1,2,3,2; main() printf(“%dn“,num1.y*num0.x/num1.x); ( A) 0 ( B) 1 ( C) 3 ( D) 6 48 对于下述说明,不能使变量 p- b的值增 1的表达式是 _。 struct exm int a; int b; float c *p; (

16、A) +p- b ( B) +(p+)- b ( C) p- b+ ( D) (+p)- b+ 49 以下程序的输出结果是 _。 fun(int*p,int a23) *p=a12; main() int a23=1,3,5,7,9,11,*p; p=(int*)malloc(sizeof(int); fun(i 10;i+,str+) *str=a+i; return+p; main() char a10; printf(“%sn“,fun(a,10); ( A) ABCDEFGHIJ ( B) abcdefghij ( C) bcdefghij ( D)不确定的值 51 用链表表示线性表的

17、突出优点是 _。 52 子程序通常分为两类: _和函数,前者是命令的抽象,后者是为了求值。 53 软件的 _设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 54 对软件是否能达到用户所期望的要求的测试称为 _。 55 实体之间的联系可以归结为一对一联系、一对多 (或多对多 )的联系与多对多联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于 _的联系。 56 以下程序运行时,若从键盘输入: 10 20 30回车,输出的结果是【 】。 #include stdio h main() int i=0,j=0,k=0; scanf(“%d%*

18、d%d“,c1 c2;c1+,c2-) printf(“%c%c“,c1,c2); printf(“n“); 61 已知字符 A的 ASCII代码值为 65,以下程序运行时若从键盘输入: B33回车,则输出结果是 【 】。 #include stdio h main() char a, b; a=getchar(); scanf(“%d“,b=b*2; printf(“%c%cn“,a,b); 62 以下程序中, fun函数的功能是求 3行 4列二维数组每行元素中的最大值。请填空。 void fun(int, int, int(*)4, int*); main() int a34=12, 41

19、, 36, 28, 19, 33, 15, 27, 3, 27, 19, 1,b3, i; fun(3, 4, a, b); for(i=0;i 3;i+)printf(“%4d“,bi); printf(“n“); void fun(int m, int n, int ar4, int *br) int i,j,x; for(i=0;i m;i+) x=ari0; for(j=0;j n;j+)if(x arij)x=arij; 【 】 =x; 63 以下程序运 行后的输出结果是【 】。 void swap(int x, int y) int t; t=x;x=Y;Y=t;printf(“%

20、d%d“,x,y); main() int a=3,b=4; swap(a,b); printf(“%d%d“,a,b); 64 以下程序运行后的输出结果是【 】。 #include stringh void fun(char*s, int p, int k) int i; for(i=p;i k-1;i+)si=si+2; main() char s=“abcdefg“; fun(s,3,strlen(s);puts(s); 65 以下程序运行后的输出结果是【 】。 #include string h main() char ch=“abc“,x34;int i; for(i=0;i 3;i

21、+)strcpy(xi,ch); for(i=0;i 3;i+)printf(“%s“,c+; return(a+b+c) ; main() int i, a=5; for(i=0;i 3;i+)printf(“%d%d“,i,fun(a) ); prind(“n“); 67 以下程序运行后的输出结果是【 】。 struct NODE int k; struct NODE*link; ; main() struct NODE m5,*p=m,*q=m+4; int i=0; while(p!=q) p- k=+i;p+; q- k=i+;q-; q- k=i; for(i=0;i 5;i+)p

22、rintf(“%d“,mi.k); printf(“n“); 68 以下程序中函数 huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串: yes!,否则函数返回字符串: no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如: adgda。请填空。 #include string.h char *huiwen(char*str) char*p1,*P2;int i,t=0; P1=str;p2= 【 】; for(i=0;i strlen(str)/2;i+) if(*p1+!=*p2-)t=1; break; if( 【 】 )return(“yes!“

23、); else return(“no!“); main() char str50; printf(“Input:“);scanf(“%s“,str); printf(“%sn“, 【 】 ); 国家二级( C语言)笔试模拟试卷 104答案与解析 1 【正确答案】 A 【试题解析】 在长度为 n的有序线性表中进行二分查找,需要的比较次数为log2n。 2 【正确答案】 B 【试题解析】 有序线性表顺序存储时才能采用二分查找。 3 【正确答案】 B 【试题解析】 中序遍历的顺序应该为:中序遍历左子树 访问根结点 中序遍历右子树。按照定义,中序遍历序列是 DBEAFC,故答案为选项 B。 4 【正确

24、答案】 A 【试题解析】 模块化设计是指把一个大程序按人们能理解的大小规模进行分 解。划分模块的基本原则是使每个模块都易于理解。按照人类思维的特点,按功能来划分模块最为自然。在按功能划分模块时,要求各模块的功能尽量单一,各模块之间的联系尽量少。所以选项 B错误;选项 C错误;选项 D错误。 5 【正确答案】 C 【试题解析】 线性链表是线性表的链式存储结构:二叉链表是二叉树的链式存储结构;栈与队列分别是特殊的线性表;循环队列是队列的一种顺序存储结构。可知,线性链表、二叉链表、循环队列均属于存储结构,而栈与队列属于逻辑结构。 6 【正确答案】 D 【试题解析】 计算机软件是计 算机系统中与硬件相

25、互依存的另一部分,包括程序、数据及相关文档的完整集合。用一个等式表示 ,则为:软件 =程序文档数据。选项 A、选项 B和选项 C错误,正确答案是 D。 7 【正确答案】 B 【试题解析】 需求分析阶段有 4方面的工作:需求获取、需求分析、编写需求规格说明书和需求评审。 8 【正确答案】 D 【试题解析】 关系模型是用二维表格数据来表示实体本身及其相互之间的联系。 9 【正确答案】 A 【试题解析】 用 E-R图可以简单明了地描述实体及其相互之间的联系,用 E-R图还可以方便 地描述多个实体集之间的联系和一个实体集内部实体之间的联系。所以,选项 A正确,选项 B与选项 C错误。为了建立用户所要求

26、的数据库,必须把概念结构 (用 E-R图表示的概念数据模型 )转换为某个具体的数据库管理系统所支持的数据模型,这就是逻辑结构设计所要完成的任务。在已给定数据库管理系统的情况下,数据库的逻辑设计可以分两步宋进行: 将概念模型转换成一般的数据模型; 将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。可知,用 E-R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和 层次模型等。所以,选项 D说法错误。 10 【正确答案】 A 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。关系表中的每一行称为一个元组。 11 【正确答案】 D

27、 【试题解析】 在 C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如 acd、 d ad、 adf124、 124等都是合法的标识符号。而 2asdf、 sd/=都不是合法的标识符。在 C语言中大写字母和小写字母被认为是两个不同的字符,如 ACD和 acd是两个不同的标识符号。选 项 D中用数字 2作为第一个字符,这是不合法的,故选项 D不正确。 12 【正确答案】 A 【试题解析】 关键字也称为保留字,它是由 C语言本身预先定义好的一类单词。标准 C语言中共有 32个关键字,都是用小写字母组成的单词。每个关键字在C语言中都具有特殊的含义,并实现着一定的功

28、能。例如 if、 for等。本题中选项A是标准输出函数的函数名,不属于 C语言的关键字,故应该选择 A。 13 【正确答案】 A 【试题解析】 14 【正确答案】 D 【试题解析】 构造类型数据是由基本类型数据按一定规则组 成的。 C语言中的构造类型数据只有 3种,它们是数组类型、结构体类型和共用体类型。故应该选择D。 15 【正确答案】 C 【试题解析】 本题中首先定义一个整型变量 a并给它赋初值为 3,在表达式中,从右开始执行,即先执行 “a-=a*a; ”等价于 a=a-a*a即 a=3-3*3=-6,此时 a的值为-6,接着执行 “a+=a-; ”相当于执行 a=a+a即 a=-6+(

29、-6)=-12,此时 a的值为 -12。所以, 4个选项中选项 C符合题意。 16 【正确答案】 C 【试题解析】 首先看逗号表达式,逗号表达式中从左 向右计算,最后该表达式的值取最右边表达式的值,故该表达式的值为 +y的值 (因为 +y的值为 y的值加 1即 4),算术表达式 z+2的值为 3,所以最后输出的值为 4和 3,所以, 4个选项中选项 C符合题意。 17 【正确答案】 C 【试题解析】 在 Turbo C 20环境中, int数据类型在内存中只占两个字节,其表示形式为二进制补码形式,所以范围是: -32768 32767,即10000000000000002 0111111111

30、1111112(首位为符号位 )。而 32770转换为二进制为 10000000000000102其符号位为 1故输出时为一个负数,而它的绝对值是求负后的结果,补码求负的方法是:先按位求反,再加一。所以求得的绝对值为01111111 111111012+1=0111111111111102,即十进制的 32766。综上所述,选项C正确。 18 【正确答案】 C 【试题解析】 在 |运算中,当第一个表达式的值为真时,第二个表达式将不再运算。由于在表达式 t=+t|+y;中, t的值为非 0,即第一个表达式的值为真,第二个表达式将不再运算,所以 y的值没有变化,仍然为 3。所以, 4个选项中选 项

31、C符合题意。 19 【正确答案】 B 【试题解析】 在 &运算中,当第一个表达式的值为假时,第二个表达式将不再运算。由于在表达式 (m=a b)&(n=c d)中, a b的值为 0,即第一个表达式的值为假,第二个表达式将不再运算,所以 n的值没有变化,仍然为 1。所以, 4个选项中选项 B符合题意。 20 【正确答案】 C 【试题解析】 C语言中,如果对定义的变量没有赋初值,那么在后面使用时,变量的值是不确定的。所以,本程序中,没有对 sum赋初值,它的值不确定。在执行了 for循环语句后, sum的 值也不确定的,所以, 4个选项中选项 C符合题意。 21 【正确答案】 C 【试题解析】

32、A、 B定义的数组长度小于花括号中数据的个数, C是将数字字符的 ASCII码值作为整数赋给整型数组的各元素, D是定义二维数组,第二维的长度不能缺省。 22 【正确答案】 B 【试题解析】 函数 printf中的参数是三目条件表达式,循环控制变量 i值为 4时, i%2为 0,格式控制字符串为 “#%dn“,输出为 #4;循环控制变量 i值为 5时, i%2为 1,格式控制字符串为 “*%dn“,输出为 *5,两次输出不在 同一行。 23 【正确答案】 C 【试题解析】 i, j初始化时分别赋予十六进制数和八进制数,对应的十进制数是256和 64。 24 【正确答案】 B 【试题解析】 本题

33、考查循环辅助控制语句 break和 continue,前者退出整个 for循环,后者跳过本次循环没有执行完的若干条语句,开始下一次循环操作,建议读者采用本书推荐的列表法分析。 25 【正确答案】 C 【试题解析】 if语句中的条件表达式是赋值表达式, a+b值为 2,赋给 x, x值非0,输出 *。 26 【正确答案】 D 【试题解析】 指针是地址,存放指针的变量是指针变量,不同类型的指针变量存放不同类型数据的地址,指针变量作为可存储指针的变量,也要占用一定的存储空间。 27 【正确答案】 B 【试题解析】 指针 p1指向数组 num的首地址 (同第一个元素的地址 ),二级指针变量 p2指向

34、p1。第一个输出语句中 p1先移动一个单位,指向第二个数组元素,再输出元素的值 (3), p1的移动不改变 p2的指向。因此,第二个输出语句输出的也是 3。 28 【正确答案】 D 【试题解析】 当 i为 0,内循环在 j为 0时,执行 nj=ni-1;,即 n0=n0-1, n0值变为 -1:在 j为 1时,执行 nj=ni-1;,即 n1=n0-1,将 -2赋给 n1。当 i为 1时,内循环在 j为 0时,执行 nj=ni-1;,即 n0=n1-1, n0值变为 -3;在 j为 1时,执行 nj=ni-1;,即 n1=n1-1,将 -3赋给 n1;最后 n0和n1的值均为 -3。 29 【

35、正确答案】 C 【试题解析】 简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单 向值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。 30 【正确答案】 C 【试题解析】 循环辅助控制语句有 continue;和 break;,前者跳过本次循环,进行下一次循环,后者跳出整个循环语句。 31 【正确答案】 B 【试题解析】 逗号表达式 x-,x 1,x&5先执行 x-, x的值为 1,再执行 x 1,表达式的值为 2,但 x的值仍是 1(不是移位赋值表达式 ),最后执行 x&5,二者均不为 0,逻辑与的结果是 1。 32 【正确答案】 C 【试题解析】 指

36、针 变量 p先是指向变量 a,后指向变量 b,但二级指针变量始终指向指针变量 p。 33 【正确答案】 D 【试题解析】 C语言不可动态定义数组,必须是整型常量,选项 D中的 SIZE是符号常量,也是常量,值为 10,所以可以用符号常量来定义数组的长度。 34 【正确答案】 C 【试题解析】 数组 x在初始化时赋 9个值,列值为 3,则行值为 3。 i为 0时,xi2-1指的是元素 x02(值为 3): i为 1时, xi2-i指的是元素 x11(值为5): i为 2时, xi2-1指的是元素 x20(值为 7);输出结果是 3 5 7。 35 【正确答案】 C 【试题解析】 字符在内存中占一

37、个字节的存储空间,按字符的存储顺序,其地址依次递增,在函数 f中循环过后, p指向字符串的结束位置, s指向字符串首地址, p-s即为字符串长度。 36 【正确答案】 B 【试题解析】 表达式 sum=PLUS(x+y, z)*PLUS(y, z)用带参的宏替换为 sum=x+y+z*y+z, sum的值为 12。 37 【正确答案】 B 【试题解析】 函数中将指针变量 ptr1和 ptr2中的值交 换,而不是交换指针 ptr1和 ptr2所指变量中的值。 38 【正确答案】 B 【试题解析】 函数 print中形参 b指向数组 a的首地址, for循环将 0 4依次赋给元素 a0 a4,指针

38、 b指向数组后的地址,输出函数先将指针 b自减,指向元素 a4,输出为 4。 39 【正确答案】 A 【试题解析】 可以赋初值的字符串一定是用字符数组存储的,选项 B不对,它是将字符指针变量指向一个字符串常量;选项 C中字符数组 t需要 6个字节的存储空间:选项 D是错误的形式,数组名是常量。 40 【正确答案】 C 【试题解析】 函数声明中指出函数没有参数,返回值为空类型,而调用语句却有参数,并将函数值赋给 int型变量 b,显然是不对的。 41 【正确答案】 C 【试题解析】 fseek函数的原形为 int fseek(FILE*fp, long offset, int base);函数的

39、功能是将 fp所指向的位置指针移到以 base所指位置为基准、以 offset为位移量的位置。可见, fseek是改变文件的位置指针。 42 【正确答案】 C 【试题解析】 本题程序的功能是对数组元素赋值,难点是对表达 式 4*(i-2*(i3)%5的分析。 43 【正确答案】 D 【试题解析】 转义字符在内存中占一个字节,字符串结束标志也占一个字节,实际存储空间是 14个字节,但若用 strlen函数求长度时,值为 13,结束标志不算。 44 【正确答案】 D 【试题解析】 结构体变量 un的存储情况如图 18-3所示,第一列表示地址,第二列为每个字节的值,可用两位的十六进制数表示,当把这

40、4个字节的内容作为long型数据时,高地址字节的值表示高位,低地址字节的值表示低位。45 【正确答案】 A 【试 题解析】 if语句执行前,指针变量 p1指向变量 x,指针变量 p2指向变量y。由于 x y成立, p1、 p2分别指向变量 y和变量 x,因此,程序输出结果是 6,4, 4, 6。 46 【正确答案】 D 【试题解析】 本题考查全局变量和局部变量的区别。在函数 fun中的 m是局部变量,值为 2,在主函数中的 m是全局变量,值为 10。 47 【正确答案】 A 【试题解析】 结构体数组 num初始化后, num0成员 x、 y的值分别为 1、 2,num1成员 x、 y的值分别为

41、 3、 2,代入 num1 y*num0 x/num1 x,解得值是 0。 48 【正确答案】 D 【试题解析】 p- b应作为一个整体看待, +p- b和 p- b+都使变量 b增 1, +(p+)- b先使 b增 1,再使 p后移, D中表达式的含义是使 p+1所指结构体变量中的成员 b的值增 1。 49 【正确答案】 D 【试题解析】 主函数中指针变量指向两字节的存储空间,这两个字节可以存放 int型数据,函数 fun是将实参数组 a中的元素 a12的值 11赋给指针变量 p所指的存储空间,程序输出该空间的值。本题函数 fun中形参 p是二 级指针变量,它指向实参指针变量 p。 50 【

42、正确答案】 C 【试题解析】 调用函数 fun使字符数组中的内容是 “abcdefghij“,函数的返回值是字符数据的地址,该地址指向数组的第二个字符,因此,主函数的输出结果是字符串 “bcdefghij“。 51 【正确答案】 便于插入和删除操作。 【试题解析】 为了克服顺序表中插入和删除时需要移动大量数据元素的缺点,引入了链式存储结构。链表表示线性表的突出优点是插入和删除操作方便,不必移动数据元素,执行效率高。 52 【正确答案】 过程。 【试题解析】 当程序之间发生调用关系时,调用命令所在的代码段被称为主程序,被调用的代码段被称为子程序。子程序是对功能的抽象,可分为过程和函数两类,两者的

43、区别是:函数是通过函数名来返回值的,而过程只能通过形式参数或对全局变量进行修改以返回值。 53 【正确答案】 概要。 54 【正确答案】 有效性测试。 55 【正确答案】 一对多或 1: N。 56 【正确答案】 10300 【试题解析】 输入语句使 i=10, j=30, k没有被重新赋值,仍为初值 0。 57 【正确答案】 81 【试题解析】 本题考查带参数的宏定义。 S(i+j)=4*i+j*i+j+1=4*6+8*6+8+1=81。 58 【正确答案】 4599 【试题解析】 因为 b a,所以第一个 if语句的条件不成立,此时, a=c=5,c=t=99;而 a c并且 b c,所以

44、第二个 if语句的条件成立,将 a和 b的值互换,而 c的值不变,所以 a=4, b =5, c=99。 59 【正确答案】 10 20 0 【试题解析】 本题考查算术运算符,关系运算符和逻辑运算符的使用和优先级关系。程序中, a=10, b=20, c=(10%20 1)| |(10/20 1)=(10 1)| |(0 1)=0| |0=0。 60 【正确答案】 9.18274e+008 【试题解析】 本题考查的循环条件是 c1 c2,当 c1 =c2时,退出循环。所以,第一次循环输出 09,第二次循环输出 18,如此循环直到输出 45,之后 c1=5,c2=4,不满足循环条件,退出循环。 61 【正确答案】 1 B 【试题解析】 从键盘输入后, a=B, b=33,之后进行运算, a=B-A+0=1;b= 33*2=66。 C语言规定, 整型和字符型可以相互转换,已知字符 A的 ASCII码值为 65,所以字符 B的 ASCII码值为 66,所以 b=B,最后以字符形式输出 a和b,所以输出为 1 B。 62 【正确答案】 bri 【试题解析】 fun()函数中外层循环控制求最大元素的行数,在第 i行中先假定第一个元素为最大值,然后将后面的元素和这个最大元素进行比较,将最大元素存于变量 x中,最后再将 x赋给 bri,通过指针参数使 bi中存放的第 i行元素的最大值。

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

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

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