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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C语言)笔试模拟试卷 89及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 下列关于队列的叙述中正确的是 ( )。 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 3 设树 T的度为 4,其中度为 1, 2, 3, 4的结点个数分别为 4, 2, 1, 1,则 T中的叶子结点数为 ( )。 ( A) 5 ( B) 6 ( C) 7 ( D) 8 4 程序设计方法要求在程序设计过程

2、中 ( )。 ( A)先编制出程序,经调试使程序运行结果正确后再画出程序的流程图 ( B)先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( C)先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( D)以上三种说法都不对 5 下列叙述中正确的是 ( )。 ( A)在面向对象的程序设计中,各个对象之间具有密切的联系 ( B)在面向对象的程序设计中,各个对象都是公用的 ( C)在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 ( D)上述三种说法都不对 6 下列叙述中正确的是 ( )。 ( A)运行结果正确的程序一定

3、具有易读性 ( B)自己编写的程序主要是给自己使用的 ( C)当前编写的程序主要是为当前使用的 ( D)上述三种说法都不对 7 在数据流图 (DFD)中,带有名字的箭头表示 ( )。 ( A)模块之间的调用关系 ( B)程序的组成成份 ( C)控制程序的执行顺序 ( D)数据的流向 8 数据库系统的核心是 ( )。 ( A)数据模型 ( B)数据库管理系统 ( C)软件工具 ( D)数据库 9 下列叙述中正确的是 ( )。 ( A)数据库系统是一个独立的系统,不需要操作系统的支持 ( B)数据库设计是指设计数据库管理系统 ( C)数据库技术的根本目标是要解决数据共享的问题 ( D)数据库系统中

4、,数据的物理结构必须与逻辑结构一致 10 下列叙述中正确的是 ( )。 ( A)数据库系统是一个独立的系统,不需要操作系统的支持 ( B)数据库技术的根本目标是要解决数据的共享问题 ( C)数据库管理系统就是数据库系统 ( D)以上三种说法都不 对 11 以下叙述中正确的是 ( )。 ( A) C程序中注释部分可以出现在程序中任意合适的地方 ( B)花括号 和 只能作为函数体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的一部分 12 结构化程序由 3种基本结构组成, 3种基本结构组成的算法 ( )。 ( A)可以完成任

5、何复杂的任务 ( B)只能完成部分复杂的任务 ( C)只能完成符合结构化的任务 ( D)只能完成一些简单的任务 13 以下定义语句中正确的是 ( )。 ( A) char a=Ab=B; ( B) float a=b=l0.0; ( C) int a=l0,*b= char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(“%d %d %3.1f %3.1fn“,a,c,f,x); 程序运行后的输出结果是 ( )。 ( A) 1 65 1 6.5 ( B) 1 65 1.5 6.5 ( C) 1 65 1.0 6.5 ( D) 2

6、65 1.5 6.5 15 下列关于 C语言用户标识符的叙述中正确的是 ( )。 ( A)用户标识符中可以出现下划线和中划线 (减号 ) ( B)用户标识符中不可以出现中划线,但可以出现下划线 ( C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 ( D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 16 有以下程序: main() int m=3,n=4,x; x;-m+; x=x+8/+n; printf(“%dn“,x); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 5 ( C) -1 ( D) -2 17 有以下程序: main() cha

7、r a=a,b; printf(“%c,“,+a); printf(%cn“,b=a+); 程序运行后的输出结果是 ( )。 ( A) b,b ( B) b,c ( C) a,b ( D) a,c 18 有以下程序: main() int x=102, y=012; printf(“%2d,%2dn“,x,y); 执行后输出结果是 ( )。 ( A) 10,01 ( B) 02,12 ( C) 102,10 ( D) 02,10 19 有以下程序段: int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%dn“,m,c,n); 若从键盘上输

8、入 10A10回车,则输出结果是 ( )。 ( A) 10, A, 10 ( B) 10, a, 10 ( C) 10, a, 0 ( D) 10, A, 0 20 有定义语句: “int a=1,b=2,c=3,x;”,则以下选项中各程序段执行后, x的值不为3的是 ( )。 ( A) if(c a)x=1; elseif(b a)x=2; elsex=3; ( B) if(a 3)x=3; elseif(a 2)x=2; elsex=1; ( C) if(a 3)x=3; if(a 2)x=2; if(a 1)x=1; ( D) if(a b)x=b; if(b c)X=c; if(c a

9、)x=a; 21 已有定义: int x=3, y=4, z=5;,则表达式 !(x+y)+z-1 ( C) y=0; if(x =0) if(x 0)y=1; e1se y=-1; ( D) if(x =0) if(x 0)y=1; elsey=0: elsey=-1; 23 以下选项中,与 k=n+完全等价的表达式是 ( )。 ( A) k=n, n=n+1 ( B) n=n+1, k=n ( C) k=+n ( D) k+=n+1 24 以下程序的功能是:按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出,程序如下。 main() int n,k; float scor

10、e;sum,ave; sum=0.0; for(n=1;n =10;n+) for(k=1;k =4;k+) scanf(“%f“, sum+=score; ave=sum/4.0; printf(NO%d: %fn“,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 ( )。 ( A) sum=0.0; ( B) sum+=score; ( C) ave=sun/4.0; ( D) printf(“NO%d: %fn“,n,ave); 25 有以下程序段: int n=0, p; doscanf(“%d“,n+;while(p!=12345

11、此处 do-while循环的结束条件是 ( )。 ( A) p的值不等于 12345并且 n的值小于 3 ( B) p的值等于 12345并且 n的值大于等于 3 ( C) p的值不等于 12345或者 n的值小于 3 ( D) p的值等于 12345或者 n的值大于等于 3 26 若有如下程序: main() int x=9,y=4,n=0; switch(x%2) case 0:n+;break; case 1:n+; case 0:n+;break; printf(“%dn“,n); 则程序运行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D)编译错误 27 有

12、以下程序 main() char a1=M,a2=m; printf(“%cn“,(a1,a2); 以下叙述中正确的是 ( )。 ( A)程序输出大写字母 M ( B)程序输出小写字母 m ( C)格式说明符不足,程序出错 ( D)程序运行时产生出错信息 28 若有以下调用语句,则不正确的 fun函数的首部是 ( )。 main() int a50,n; fun(n, ( A) void fun(int m,int x) ( B) void fun(int s,int h41) ( C) voidfun(int p,int*s) ( D) void fun(int n,iht a) 29 若

13、fp是指向某文件的指针,且已读到文件末尾,则函数 feof(fp)的返回值是( )。 ( A) EOF ( B) -1 ( C) 1 ( D) NULL 30 下列程序段的输出结果是 ( )。 void fun(int *x,int *y) printf(“%d%d“,*x,*y);*x=3;*y=4; main() int x=2,y=1; fun( printf(“%d%d“,X,y); ( A) 1243 ( B) 1212 ( C) 1234 ( D) 2112 31 以下程序中函数 sort的功能是对 a所指数组中的数据进行由大到小的排序: void sort(int a,int n

14、) int i,j,t; for(i=0;i n-1;i+) for(j=i+1;i n;j+) if(aiaj) t=ai;ai=aj;aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort( for(i=0;i 10;i+) printf(%d,“,aai); printf(“n“); 程序运行后的输出结果是 ( )。 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( B) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( C) 1, 2, 3, 8, 7, 6, 5, 4, 9, 10, ( D) 1

15、, 2, 10, 9, 8, 7, 6, 5, 4, 3, 32 下述程序的输出结果是 ( )。 #include stdio.h int f(n) int n; if(n=0 | | n=1) return 3; return n-f(n-2); void main() printf(“n%d“,f(10); ( A) 3 ( B) 8 ( C) 9 ( D) 10 33 有以下程序: main() char a =a,b,c,d,e,f,g,h,0; int i,j; i=sizeof(a); j=strlen(a); printf(“%d,%db“,i,j); 程序运行后的输出结果是 (

16、 )。 ( A) 9, 9 ( B) 8, 9 ( C) 1, 8 ( D) 9, 8 34 以下程序中函数 reverse的功能是将 a所指数组中的内容进行逆置: void reverse(int a ,int n) int i,t; for(i=0;i n/2l;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for (i=6;i 10;i+) s+=bi; printf(“%dn“,s); 程序运行后的输出结果是 ( )。 ( A) 22 ( B) 10

17、( C) 34 ( D) 30 35 下面程序段的执行结果是 ( )。 main() int a55,i,j; for(i=1;i 5;i+) for(j=1;j 5;j+) aij=(i j)*(j/i); for(i=1;i 5;i+) for(j=1;j 5;j+) printf(“%2d“,aij); printf(“n“); ( A) 1111 1111 1111 1111 ( B) 0001 0010 0100 1000 ( C) 1000 0100 0010 0001 ( D) 0000 0000 0000 0000 36 有以下程序: #include string.h mai

18、n() char *p=“abcdeOfghjik0“; printf(“%dn“,strlen(p); 程序运行后的输出结果是 ( )。 ( A) 12 ( B) 15 ( C) 6 ( D) 5 37 下面的程序输出结果是 ( )。 #define U 5 #define V U+1 #define W V*V/2 main() printf(“%d “,W); printf(“%d“,5*W); ( A) 18 72 ( B) 10.5 52.5 ( C) 10.5 25.5 ( D) 10 30 38 若有如下程序: #include“stdio.h“ void main() FILE

19、 *fp; fp=fopen(“test“,“wb“); fprintf(fp,“%d%.1f,%c%c“,5,238.41,B,h); fclose(fp); 则程序运行后向文件输出的结果是 ( )。 ( A) 5238.41Bh ( B) 5238.4,Bh ( C) 5, 238.4, B, h ( D) 5238.41Bh 39 以下叙述中错误的是 ( )。 ( A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 ( B)在程序结束时,应当用 fclose函数关闭已打开的文件 ( C)在利用 fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 ( D)不可

20、 以用 FILE定义指向二进制文件的文件指针 40 有以下程序: #include string.h main(int argc,char *argv) int i,len=0; for(i=1;i argc;i+) len+=strlen(argvi); printf(“%dn“,len); 程序编译连接后生成的可执行文件是 ex1.exe,若运行时输入带参数的命令行是: ex1 abcd efg 10回车 则运行的结果是 ( )。 ( A) 22 ( B) 17 ( C) 12 ( D) 9 41 有以下程序: int fa(int x) return x*x;) int fb(int x

21、) return x*x*x; int f(int (*f1)().int (*f2)(),int x) return f2(x)-f1(x); main() int i; i=f(fa,fb,2);printf(“%dn“,i); 程序运行后的输出结果是 ( )。 ( A) -4 ( B) 1 ( C) 4 ( D) 8 42 有以下程序: main() int i=1,j=1,k=2; if(j+|k+) 执行后输出结果是 ( )。 ( A) 1, 1, 2 ( B) 2, 2, 1 ( C) 2, 2, 2 ( D) 2, 2, 3 43 有以下程序: void ss(char *s,c

22、har t) while(*s) if(*s=t) *s=t-a+A; s+; main() char str1100=“abcddfefdbd“,c=d; ss(str1,c); printf(“%sn“,str1); 程序运行后的输出结果是 ( )。 ( A) ABCDDEFEDBD ( B) abcDDfefDbD ( C) abcAAfefAbA ( D) Abcddfefdbd 44 有以下程序: struct STU char name10; int num; int score; ; main() struct STU s5=“YangSan“,20041,703,“LiSiGu

23、o“,20042,580, “WangYin“,20043,680,“SunDan“,20044,550), Penghua“,20045,537,*p5,*t; int i,j; for(i=0;i 5;i+) pi= for(i=0;i 4;i+) for(j=i+1;j 5;j+) if(pi- Score pj- Score) t=pi;pi=pj;pi=t; printf(“%d %dn“,s1.Score,p1- Score); 执行后输出结果是 ( )。 ( A) 550 550 ( B) 680 680 ( C) 580 550 ( D) 580 680 45 若有如下语句 :

24、 struct a char x10 int y; s,*t; t= 则对结构体变量 s中的成员 y的正确引用是 ( )。 ( A) a.y; ( B) t- y; ( C) t.y; ( D) *t- y; 46 有以下程序: struct s int x,y;) data2=10,100,20,200); main() struct s *p=data; printf(“%dn“,+(p- x); 程序运行后的输出结果是 ( )。 ( A) 10 ( B) 11 ( C) 20 ( D) 21 47 若有以下说明和定义: typedef int *INTEGER; INTEGER p,*q

25、; 以下叙述正确的是 ( )。 ( A) p是整型变量 ( B) p是基类型为整型的指针变量 ( C) q是基类型为整型的指针变量 ( D)程序中可用 INTEGER代替 int类型名 48 有以下程序: main() unsigned char a,b; a=4 | 3; b=4 printf(“%d %dn“,a,b); 执行后输出结果是 ( )。 ( A) 7 0 ( B) 0 7 ( C) 1 1 ( D) 43 0 49 有以下程序: #include stdlib.h struct NODE int num; struct NODE *next; main() struct NOD

26、E *p,*q,*r; int sum=0; p=(struct NODE *)malloc(sizeof(struct NODE); q=(Struct NODE *)malloc(sizeof(struct NODE); r=(Struct NODE *)malloc(sizeof(struct NODE); p- num=1; q- num=2; r- num=3; p- next=q; q- next=r; r- next=NULL; sum+=q- next- num;sum+=p- num; printf(“%dn“,sum); 执行后的输出结果是 ( )。 ( A) 3 ( B)

27、 4 ( C) 5 ( D) 6 50 C语言中,能识别处理的文件为 ( )。 ( A)文本文件和数据块文件 ( B)文本文件和二进制文件 ( C)流文件和文本文件 ( D)数据文件和二进制文件 51 在深度为 5的完全二叉树中,度为 2的结点数最多为【 】。 52 数据的逻辑结构在计算机存储空间中的存放形式称为数据的【 】。 53 若按功能划分,软件测试的方法通常分为白盒测试方法和 【 】测试方法。 54 在关系运算中,【 】运算是对两个具有公共属性的关系所进行的运算。 55 实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只属于一个学校,

28、则实体集学校与实体集学生之间的联系属于【 】的联系。 56 以下程序运行后的输出结果是【 】。 main() int p=30; printf(“%dkn“,(p/3 0?p/10:p%3); 57 以下程序运行后的输出结果是【 】。 main() char m; m=B+32; printf(“%cn“,m); 58 若有如下定义,则该数组的第一维大小为【 】。 int b4=1,2,3,4,5,6,7,8,9); 59 以下程序运行后的输出结果是【 】。 main() int i,m=0,n=0,k=0; for(i=9;i =11;i+) switch (i/10) case 0: m+

29、;n+;break; case 1: n+;break; default: k+;n+; printf(“%d %d %dn“,m,n,k); 60 以下程序运行后的输出结果是【 】。 void fun(int X,int y) x=x+y;y=x-y;x=x-y; printf(“%d,%d,“,x,y); main() int x=2,y=3; fun(x,y); printf(“%d,%dn“,x,y); 61 以下程序运行后的输出结果是【 】。 main() char a=“Language“,b=“Programe“; char *p1, *p2; int k; p1=a; p2=b

30、; for(k=0;k =7;k+) if(*(p1+k)=*(p2+k) printf(%c“,*(p1+k); 62 以下程序的输出结果是【 】。 #include stdio.h main() int a=1234; float b=123.456; double c=12345.54321; printf(“n%2d,%2.1f,%2.11f“,a,b,C); 63 以下程序的输出结果为【 】。 #define JFT(x)x*x main() int a, k=3; a =+ JFT(k+1); printf(“%d“,a); 64 用以下语句调用库函数 malloc,使字符指针 s

31、t指向具有 11个字节的动态存储空间,请填空。 st=(char*)【 】 ; 65 如果调用 fopen函数不成功,则函数返回【 】;如果调用 fclose函数不成功,则函数返回【 】。 66 下面程序的功能是用来统计文件中字符个数。请填空。 #include“stdio.h“ main() long count=OL; FILE*fp=【 】 (“text.dat“,“r“); if(fp=0) printf(“Open errorn“); exit(0); while( 【 】 ) fgetc(fp); count+; fclise(fp); printf(“%1dn“,count);

32、67 以下程序的功能是求下列算式中 A、 B、 C的值,请填空。 #include stdio.h main() int a,b,c,k,t=348; for(a=0;a 10;a+) for(b=0;b 10;b+) for(c=0;【 】 ;c+) k=【 】 ; if(k=t) printf(“A=%d B=%d C=%dn“,a,b,c); 国家二级( C语言)笔试模拟试卷 89答案与解析 1 【正确答案】 D 【试题解析】 算法的空间复杂度指执行这个算法所需要的内存空间规模。 2 【正确答案】 C 【试题解析】 队列是 指允许在一端进行插入、而在另一端进行删除的线性表,选项 A和选项

33、 B错误;在队列中,最先插入的元素将最先被删除,又称为 “先进先出 ”的线性表,选项 C正确,选项 D错误。 3 【正确答案】 D 【试题解析】 根据给定的条件,在树中,各结点的分支总数为 41 22 1341 15;树中的总结点数为 15(各结点的分支总数 ) 1(根结点 )=16;非叶子结点总数为 4 2 1 1 8。因此,叶子结点数为 16(总结点数 )-8(非叶子结点总数 )=8。因此,本题的正确答案为选项 D。 4 【正确答案】 D 【试题解析】 程序设计的过程应是先画出流程图,然后根据流程图编制出程序,所以选项 A错误。程序中的注释是为了提高程序的可读性,使程序易于理解、易于维护,

34、注释:必须在编制程序的同时加入,所以,选项 B和选项 C错误。综上所述,本题的正确答案为选项 D。 5 【正确答案】 C 【试题解析】 在面向对象的程序设计中,对象是面向对象的软件的基本模块,从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的数据和方法基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间 的耦合通常比较松。选项 A与选项 B错误,选项 C正确。 6 【正确答案】 D 【试题解析】 程序设计中,除了设计和编制出一个运行结果正确的程序之外,还应养成良好的程序设计风格。我们编制的程序主要是给别人看的,而且,所编制的程序主要是为以后

35、看的。因此,选项 A、 B和 C的说法都错误。 7 【正确答案】 D 【试题解析】 在数据流图中,用标有名字的箭头来表示数据流。 8 【正确答案】 B 【试题解析】 数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数 据服务等,因此数据库管理系统是数据库系统的核心。 9 【正确答案】 C 【试题解析】 数据库系统需要操作系统的支持,这一点必不可少,故选项 A叙述不正确。选项 B错误,数据库设计是指设计一个能满足用户要求,性能良好的数据库。选项 D也不对,数据库应该具有物理独立性和逻辑独立性,改变其中的一个而不影响另一个。 10 【正确答案】 B 【试题解析

36、】 数据库系统由操作系统、数据库管理系统和应用程序在一定的硬件支持下构成,它不仅指数据库本身,也不仅指数据库管理系统,而是指计算机系统中引进数据库以后的系 统,选项 A和 C错误。选项 B的说法正确。 11 【正确答案】 A 【试题解析】 /*与 */之间的信息称为注释信息,在 C语言中,允许在任何能够插入空格符的位置插入注释,但 C语言的注释不能进行嵌套,故选项 A正确:在 C语言中,函数体是从花括号 开始,到花括号 结束。但没有规定花括号 和 只能作为函数体定界符,故选项 B错误;选项 C中前半句是正确的, C程序由一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数,比如主函

37、数main()就不能由用户来命名,故选 C不正确;在 C语言中明确规定每条语句以分号 ;结束,分号是语句不可缺少的一部分,故选项 D不正确。所以, 4个选项中选项 A符合题意。 12 【正确答案】 A 【试题解析】 C程序由 3种基本的结构组成,分别为顺序结构、选择结构和循环结构,这 3种结构可以组成任何复杂的 C程序,即可以完成任何复杂的任务,故选项 B、选项 C和选项 D都不正确。所以, 4个选项中选项 A符合题意。 13 【正确答案】 C 【试题解析】 C语言中可以同时定义多个变量,但变量之间必须用 “,”隔开,显然,选项 A中少了一个逗号 “,”,故选项 A不正确;选项 B中定义变量时

38、用了连续的 赋值语句,这在定义变量是不正确的,故选项 B不正确:选项 D定义了一个float型指针 a,然后定义了一个 float型变量 b,并。让这个变量的初值为指针变量 a的地址,显然这是错误的,除非 b是指向 float型指针变量的指针。故选项 D不正确,所以选项 C符合题意。 14 【正确答案】 B 【试题解析】 主函数中先定义了一个整型变量 a,一个字符变量 c并赋初值 10,一个浮点型变量 f并赋初值 100.00和一个 double型 x,接着执行a=f/=c*=(x=6.5),该语句从右向左计算,先把 6.5赋值给 x(该括号表达 式的值也为6.5),此时 x的值变为 6.5,

39、然后执行 c*=(x=6.5)相当于执行 c=c*(x=6.5),此时 c的值为 65,接着向左执行 f/c*=(x=6.5),语句相当于执行 f=f/c,所以 f的值为 100/651.538。接着向最右边执行 “a=f”,由于 a是整型变量,所以 a最后去 f的整数部分为 1。程序最后输出的 a、 c、 f和 x的值 (f和 x只保留小数点后面 1位 )分别为 1、 65、 1.5、 6.5。所以, 4个选项中选项 B符合题意。 15 【正确答案】 B 【试题解析】 在 C语言中,合法的标识符由字母、数 字和下划线组成 (故选项 A不正确 ),并且第一个字符必须为字母或者下划线 (故选项

40、C和选项 D不正确 )。故B为所选。 16 【正确答案】 D 【试题解析】 主函数中首先定义了整型变量 m、 n和 x,并给 m和 n赋初值为 3和 4,接着执行两条赋值语句,第一条 x=-m+等价于 x=-m, m+,运行后 x的值为 -3,第二条 x=x+8/+n等价于 +n,x=x+8/n,即 x=-3+8/5=-2,因此最后输出 x的值为 -2。所以, 4个选项中选项 D符合题意。 17 【正确答案】 A 【试题解析】 程序中的第一条输 出语句输出表达式 +a的值,即输出 a+1的值,而此时 a的值为 a,所以第一条输出语句输出的值为 b;第二条输出语句中输出表达式 b=a+的值,即输

41、出 a的值,而此时 a的值为 b,所以第二条输出语句输出的值也为 b。故选项 A符合题意。 18 【正确答案】 C 【试题解析】 本题中, “printf(“%2d,%2dn“,x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是 2。而在 C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为 102和 10(y的初值 012表示八进制整数 12,等于十进制的 10)。所以, 4个选项中选项 C符合题意。 19 【正确答案】 A 【试题解析】 格式字符 %d用于输入整数, %c用于输入字符。在输入时,系统把第一个 10作为整数 10赋给 m,把随后的 A作为

42、字符赋值给 c,后面的 10作为整数赋给 n,最后输出的结果为 10, A, 10所以, A选项为所选。 20 【正确答案】 C 【试题解析】 选项 A首先判断 if语句条件中表达式的值 3 1为假,然后执行最近的 else后面的语句,该 else后面又为 if-else语句,在这个 if-else语句 中首先判断该 if语句条件中表达式的值 2 1为假,程序执行其最近的 else后面的语句,将3赋值给 x。选项 B中首先判断 if语句条件中表达式的值 1 3为真,然后执行最近的 else后面的语句 x=3,后面的 else不再执行,最后 x的值为 3。选项 C中,首先执行第一条 if语句,由

43、于 1 3为真,执行此 if后面的语句 x=3,接着执行第二条 if语句,由于 1 2为真,执行此 if后面的语句 x=2,接着执行第三条 if语句,由于 1 1为假,后面的语句不执行,所以最后的 x值为 2不为 3。选项 D中,首先执行第一条 if语句,由于 a b为真, 执行此 if后面的语句 x=b:接着执行第二条 if语句,由于 b c,为真,执行此 if后面的语句 x=c,接着执行第三条 if语句,由于 c a为假,后面的语句不执行,所以最后的 x值为 c,即为 3。所以, 4个选项中选项 C符合题意。 21 【正确答案】 D 【试题解析】 本题中, ”应在外层循环中。选项 A正确。

44、 25 【正确答案】 D 【试题解析】 本题中,循环执行判断条件为 while后面括号里的表达式即p!=12345” (若是小写字母,则被转换成相应的大写字母 )语句。在 主函数中执行函数调用 ss(str1, c),很显然是把 str1数组中所有字符 d变成大写字母,其他字符不变。所以 4个选项中 B正确。 44 【正确答案】 C 【试题解析】 本题中首先定义了结构体类型 STU,该结构体由一个长度为 10的字符数组、两个整型变量 num和 Score组成。在主函数中,定义了一个长度为 5的结构体数组 s并赋初值,一个指针数组 p和一个指针变量 t,接着将数组 s中各元素的地址依次赋给指针数

45、组 p中的各成员。然后通过两个 for循环将数组 p按Score的值从小到大的顺序排列。因此最后输出的 p1- Score的值为 550,而数组 s1.Score的值为 580,所以, 4个选项中选项 C符合题意。 45 【正确答案】 B 【试题解析】 本题中的 a是结构体名, s是结构体 a的变量, t是结构体 a的指针。通过变量直接访问结构体成员应该使用 “.”运算符,而通过指针间接访问结构体成员应该使用 “- ”运算符。故本题的正确答案为 B。 46 【正确答案】 B 【试题解析】 本题中定义了一个结构体数组 data2并初始化,主函数中定义了一个结构体类型指针变量并让它指向 data的

46、首地址,由于 p指向 第一个元素的地址,所以 p- x相当于 data0.x即为 10,所以 +(p- x)后的值为 11。故 4个选项中选项 B符合题意。 47 【正确答案】 B 【试题解析】 本题中 INTEGER被定义为 int*的别名,故直接由它定义的类型基类型为整型的指针变量。因此, p是基类型为 int的指针变量, q是 int型指针的指针变量。故 4个选项中 B正确。 48 【正确答案】 A 【试题解析】 在位与运算符 &中参加运算的两位都为 1时,其结果为 1,否则结果为 0。所以本题中的 4|3: 01002|00112=01112=7。位与运算符 |中参加运算的两位只要有一个为 1,则结果为 1,只有当相应的两位都为 0结果才为 0。所以本题中的 4&3=01002&00112 =00002=0。最后输出 a和 b的值为 7和 0。故 4个选项中选项 A符合题意。 49 【正确答案】 B 【试题解析】 本题中定义了一个结点结构 stmct NODE,在主函数中定义了 3个结点指针 p、 q和 r,接着通过 malloc函数分配了 3个结点并让 p、 q和 r分别指向他们,再接着给 p、 q和 r所指向的结点的 num域赋值为 1、 2、 3,然后让结点p指向 q,让 q指向 r, r指

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