ImageVerifierCode 换一换
格式:DOC , 页数:32 ,大小:102.50KB ,
资源ID:503265      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-503265.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C语言)笔试模拟试卷104及答案与解析.doc)为本站会员(inwarn120)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

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