版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二级 C 语言分类模拟题 584(总分:46.50,做题时间:90 分钟)一、选择题(总题数:30,分数:46.50)1. 在面向对象方法中,实现信息隐蔽是依靠 _。(分数:1.00)A. 对象的继承B. 对象的多态C. 对象的封装VD. 对象的分类解析:解析对象是由数据和操作组成的封装体,与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的关系。面向对象方法的3 个重要特性为:封装性、继承性和多态性。2. 下列程序段的输岀结果为 _。#include main() static char a=language;char *p;p=a;for(p=a;p
2、 a+8;p+=2)putchar(*p);(分数:2.00 )AanguageBnugVC. 有语法错误D. lang解析:解析本程序首先定义了静态字符数组a,然后将指针 p 指向数组 a 的首地址。第 1 次 for 循环,p=a,p 指向数组的第 1 个元素,*p 是取指针 p 所指地址的内容,输岀 1;第 2 次 for 循 环,p=p+2,则p 指向数组的第 3 个元素,*p 是取指针 p 所指地址的内容,输出 n;第 3 次 for 循环,p=p+2, 则 p 指向数组的第 5 个元素,*p 是取指针 p 所指地址的内容,输岀 u;第 4 次 for 循环,p=p+2,则 p 指向
3、 数组的第 7 个元素,*p 是取指针 p所指地址的内容,输岀g,结束循环。3. 有以下程序:char fun(char x ,char y)if(x b, 故返回较小值 b 即 8,在函数 fun(b,C)中,由于 b c,故返回较小值 c 即为 7,因此调用函数 fun(fun (a, b),fun (b ,C),即 fun (8 ,7),故返回较小值为 7。4. 以下程序的输出结果是 _。main()int a33=1, 2, 3, 4, 5, 6, i, j, s=0;for(i=1; iv3; i+)for(j=0; jv=i; j+)s+=aij;printf(%d/n, s);(
4、分数: 1.00 )A. 18VB. 19C. 20D. 21解析: 解析 循环的作用是求行下标从 1 到 2,列下标从 0 到 i 的元素之和,即s=a10+a11+a20+a21+a22=3+4+5+6+0=18。5. 有以下程序:#includevstdio.hmain()int a=1,b =0;printf(%d,b=a+b); printf(%d/n,a=2*b);程序运行后的输出结果是 _。(分数: 1.00 )A. 1,2VB. 1,0C. 3,2D. 0,0解析: 解析 首先打印 b=a+b=1+0=1 的值 1,此时已给 b 赋值为 1。然后打印 a=2*b=2*1=2 的
5、值 2。所以 结果是“ 1, 2”。6. 有以下程序#includevstdio.hmain()(int x=1, y=0;if(!x) y+;else if(x=0)if(x)y+=2;else y+=3;printf(%d/n, y);程序运行后的输出结果是 _ 。(分数: 1.00 )A. 3B. 2C. 1D. OV解析:解析根据在 if.else语句中,else 总是和最近的 if 配对原则,本题中的层次关系是:if(!x)与 elseif(x=O)是一组,位于循环的最外层。而if(x) 与 else 是一组,位于 else if(x=O) 条件的内层。由此可知条件均不成立,所以 y
6、 未进行任何操作,仍为 0。7. 有下列程序:#include main()int a=6,i;for(i=1;i =3;i+)if(a 5)break;if(a%2)a+=2;continue;a=a+4; printf(%d,%d,i,a); 程序执行后的输岀结果是 _。(分数:1.00 )A. 4 , 9B. 3 , 18C. 4,18VD. 4 , 2解析:解析main()函数中,a 的初值为 6, for 循环首先判断 i 的值是否小于 5,若小于 5。执行 break 语句终止循环;若不小于 5,接着判断 a 的奇偶性,若 a 是奇数,将 a 自增 2 后执行 continue 语
7、句,执行 下一轮循环;若 a 是偶数,将 a 自增 4;可见无论程序如何执行,a 的值只会增不会减。所以 for 循环过程 中,两个 if 语句都不会执行,每次都是将a 自增 4,又由 i 取值可以是 1 , 2, 3 知变量 a 一共自增 3 次, 最终 i 的值为 4, a 的值为 18。故本题答案为 C 选项。8. 有以下程序(注:字符 a 的 ASCII 码值为 97):#include main()char *s=abc;doprintf(%d, *s%10);+s; while(*s); 程序运行后的输岀结果是 _。(分数:1.00 )A. 789VB. abcC. 7890D.
8、979899解析:解析因为小写字符 a, b, c 的 ASCII 码值分别为 97, 98, 99,而在 dowhile 循环语句中,每 次对字符的ASCII 码值除 10 取余数并输出,所以输出结果为7、8、9。故选择 A 选项。9. 在模块化程序设计中,按功能划分模块的原则是 _ 。(分数:1.00 )A. 各模块的功能尽量单一,且各模块之间的联系尽量少VB. 各模块的功能尽量单一,且各模块之间的联系尽量紧密C. 各模块应包括尽量多的功能D. 各模块应包括尽量多的输入输岀操作解析:解析 模块化设计是指把一个大程序按人们能理解的大小规模进行分解。划分模块的基本原则是使 每个模块都易于理解。
9、按照人类思维的特点,按功能来划分模块最为自然。在按功能划分模块时,要求各 模块的功能尽量单一,各模块之间的联系尽量少。所以选项B 错误;选项 C 错误;选项 D 错误。10._ 以下选项中不属于 C 语言标识符的是。(分数: 2.00 )A. 常量VB. 用户标识符C. 关键字D. 预定义标识符解析:解析常量是指在程序运行过程中其值不能被改变的量,如5、1.0、字符“a”等。C 语言的标识符分为 3 类:关键字、预定义标识符和用户标识符。常量不属于标识符,所以选择A。1 1.下列程序段的输出结果是int n=c;switch(n+)default: printf(error);break;ca
10、se a: case A: case b: case B: printf(good);break;case c: case C: printf(pass);case d: case D: printf(warn);(分数: 1.00 )A. passwarnVB. passerrorC. goodpasswarnD. pass解析: 解析 本题的考查点是 switch() 语句。当用户输入的字符时,会进入一个多分支选择语句,根据 n 的值,来确定下一步执行的选择语句;最后的结果应当为passwarn。本题需要注意的是,当case 语句没有跟随 break 语句时,不会跳出 switch ,而是
11、继续执行下一个 case 语句,直至遇到 break 语句。12. 有以下程序:# include struct STU char name9; char sex; int score2;void f(struct STU a) struct STU b=Zhao,m,85,90;a1=b;main()struct STU c2=Qian,f,95,92,Sun,m,98,99;f(c);printf(%s,%c,%d,%d,,c0.sex,c0.score0,c0.score1);printf(%s,%c,%d,%d/n,,c1.sex,c1.score0,c1.
12、score1);程序运行后的输出结果是 _。(分数: 1.00 )A. 2hao,m,85,90,Sun,m,98,99B. 2hao,m,85,90,Qian,f,95,92C. Qian,f,95,92,Sun,m,98,99D. Qian,f,95,92,Zhao,m,85,90V解析: 解析 f 函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选D。13. 以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:#include main() int n, k;float score, sum, ave;sum=0.
13、0;for(n=1; n =10; n+) for(k=1; k =4; k+) scanf(% f, &score);sum+=score;ave=sum/4.0;printf(NO% d:% f/n, n, ave);上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 _。(分数: 2.50 )A. sum=0.0;VB. sum+=score;C. ave=sum/4.0;D. printf(NO% d:% f/ n, n, ave);解析: 解析 本题考查的是 for 循环语句的嵌套结构。14. 有以下程序#include main() int
14、a=5,b=lt;t=(a 2)|b;printf(%d/n,t);程序运行后的输出结果是 _。(分数: 2.00 )A. 21VB. 11C. 6D. 1解析:解析本题主要考查了 C 语言的逻辑运算符,先将变量a, b 的值转换为 2 进制数,a=00000101,b=00000001, a 先左移 2 位结果为 00010100,再与 b 按位或运算,结果为 00010101,转换为十进制数为 21,因此,选项 A 是正确的。15. 下列定义数组的语句中,正确的是 _。(分数: 1.00 )A. int N=10;int xN;B. # define N 10int xN;C. int x
15、0.10;D. int x;V解析:解析选项 A、B 中 n 为变量,C 语言中不允许动态定义数组维数,即维数不能是变量。选项C 无此语法。16. 以下叙述中正确的是 _。(分数: 2.00 )A. C 程序书写格式自由,一个语句可以写在多行上VB. C 程序书写格式严格,要求一行内只能写一个语句C. C 程序中的注释只能出现在程序的开始位置和语句的后面D. 用 C 语言编写的程序只能放在一个程序文件中解析:解析C 程序书写格式自由,B、C D 错误。17. 有如下定义: struct st int n;float t; a20; FILE *fp; 若文件已正确打开,则以下将文件内容读入数组
16、 a 中的语句错误的是 _。(分数: 1.00 )A. for(i=0;i20;i+)fread(ai,sizeof(struct st),1L,fp);VB. fread(a,sizeof(struct st),20L,fp);C. for(i=0;i 20;i+=2)fread(&ai,2*sizeof(struct st),1L,fp);D. for(i=0;i 20;i+,i+)fread(&ai,sizeof(struct st),2L,fp);解析: 解析 fread() 函数用法是 fread(void *buffer,int size,int n,FILE *f
17、p),其中 buffer 为指针类型,应该传入指针类型的值,ai应该改为&ai,因此 A 选项语句错误,答案为A 选项。18. 若 a 是数值类型,则逻辑表达式 (a=1)|(a!=1) 的值是 _。(分数: 2.50 )A. 1VB. 0C. 2D. 不知道 a 的值,不能确定解析: 解析 逻辑或“ | ”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a 的值,但是若 a 为 1,则左边运算对象为 1 ;若 a 的值不是 1,则右边运算对象的值为1,所以总能保证一边非零。19. 以下选项中,能用作数据常量的是 _ 。(分数: 2.50 )A. 115LVB. 0118C.
18、1.5e1.5D. o115解析:解析A 选项中 115L 表示 115 是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进 制中不能含有数字 8,因此 B 选项错误。C 选项中 e 后面应该是整数,不能是小数(1.5),因此 C 选项错误。 D 选项中八进制常量应该是数字“ 0”开始,而不是字母“ 0”开始。故本题答案为 A20. 设有定义: structchar mark12;int num1;double num2;t1,t2;,若变量均已正确赋初值,则下列语句中错误的是 _。(分数: 2.00 )A. t1=t2;B. t2.num1=t1.num1;C. t2.mark=
19、t1.mark;VD. t2.num2=t1.num2;解析:解析本题考查结构体变量的引用。C 选项中 mark 为结构体中的数组,不能直接赋值,所以C 选项错误。21. 有以下程序:int*f(int *x,int *y)if(*x *y)return x ;else return y ;main()int a=7 , b=8, *p , *q , *r ;p=&a; q=&b;r=f(p ,q) ;printf(%d , %d, %d/n ,*p,*q,*r) ;程序运行后输出结果是 _。(分数: 1.00 )A. 7,8,8B. 7,8,7VC. 8,7,7D. 8,7,
20、8解析: 解析 f 函数的功能是返回地址为 x,y 的两个数中值较的数的地址,本题输出结果是 7,8,7 。22. 有以下程序:#include #define S(x)4*(x)*x+1main()int k=5,j=2;printf(%d/n,S(k+j);程序的运行结果是 _ 。(分数: 2.00 )A. 33B. 197C. 143VD. 28解析:解析本题考查带参数的宏定义,S 为带参数的宏定义,运行S(k+j)为 4*(k+j)*k+j+1=143, C 选项正确。23. 用 MIPS 来衡量计算机性能的指标是()(分数: 1.00 )A. 存储容量B. 可靠性C. 处理能力D.
21、运算速度V解析:24. 有以下程序:#include void fun(int a, int b) int t;t=a; a=b; b=t;main() int c10=1,2,3,4,5,6,7,8,9,0, i;for(i=0; i 10; i+=2) fun(ci, ci+1);for(i=0; i 10; i+) printf(%d, ci);printf(/n);程序的运行结果是 _ 。(分数: 2.00 )A. 1,2,3,4,5,6,7,8,9,0,VB. 2,1,4,3,6,5,8,7,0,9,C. 0,9,8,7,6,5,4,3,2,1,D. 0,1,2,3,4,5,6,7,
22、8,9,解析: 解析 函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反 向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组 c 中的 元素的值并没有变化,选择A。25. 已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。以下不能将变量 c 中的大写字母转换为对应小写字母的语句是 _ 。(分数: 1.00 )A. c=c+32B. c=(A+c)%26-aVC. c=c-A+aD. c=(c-A)%26+a解析:解析大写字母转换为对应小写字母,即加上 32, B 选项不是累加 32,所以选择
23、 Bo26. 有以下程序:#include #include int fun(int n)int *p;p=(int*)malloc(sizeof(int);*p=n; return *p;main()int a;a=fun(10); printf(%d/n,a+fun(10);程序运行后的输出结果是 _ 。(分数: 1.00 )A. 0B. 10C. 20VD. 出错解析: 解析 malloc(sizeof(int) 的作用是开辟一个长度为 sizeof(int) 的存储空间,并通过强制类型 转换(int*)将此存储空间的地址赋给了一个整型的指针变量p。然后执行语句*p=n ;使得*p 的值
24、为 10,并通过 return 返回此值,即 a 的值为 10。然后在主函数中输出a+fun(10)=10+10=20。所以选择 C 选项。27. 以下程序的输出结果是 _ 。#include main() int a=8,b=6,m=1;switch(a%4) case 0:m+;break;case 1:m+;switch(b%3) default:m+;case 0:m+; break;printf(%d/n,m);(分数: 2.50 )A. 1B. 2VC. 3D. 4解析:解析本题考查 switch 语句。因为 a=8, a%4=0 所以执行 case 0 后面的语句,将 m 加 1,遇到break 语句跳出 switch 。28. 两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 导购员临时用工协议模板2024年
- 产后脊柱课件教学课件
- 篮球水平一教案-改
- 疫情健康课件教学课件
- 代持股份权益协议
- 临时动物收容所租赁协议
- 二手电梯买卖协议
- 个人扶贫贷款还款协议
- 产品联合营销协议
- 乐器维修时间安排合同
- 苏教版六下数学《正比例的意义》教学设计(区级公开课)
- 【S】幼儿绘本故事《三只小猪》课件
- 社团组织结构图
- 2023年超星《军事理论》考试题库(通用题型)
- 2023年学习兴税(纳税服务条线)知识考试题库(含答案)
- 《花样年华》的美学分析
- 山东省济南市历下区2023-2024学年八年级上学期期中语文试题
- 图神经网络在生物医学影像分析中的应用
- 浅谈管理者的自我管理
- 语文教学常规检查表
- “思政”课社会实践
评论
0/150
提交评论