版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.高级语言程序设计(C)模拟题四一、选择题(本题共20道小题,每题2分,共40分。)1以下有4组用户标识符,其中合法的一组是( )。A) For -sub CaseB) 4d DO Size C) f2_G3 IF abc D) WORD void define答案:C解析:标识符的命名规则:由字母、数字、下划线组成,第一个字符必须是字母或者下划线,标示符的命名不能同C语言的关键字相同。 2. 若有下面的程序片段:int a12=0, *p3, *pp, i;for(i=0; i3; i+)pi=&ai*4;pp=p;则对数组元素的错误引用是A) pp01 B) a10 C) p31 D) *
2、(*(p+2)+2)答案:C解析:A. pp0表示p0的地址,而pp0也为一个指针,它和pp用法相同, 故pp01则表示a1的地址,正确。B.正确。C.数组p的最大下标为2,错误。 D. *(*(p+2)+2)表示a10,正确。 3. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为A) a0 B) !a C) a=0 D) a答案:D解析: 对if(a)而言,如果a的值不为0,则if语句括号中表达式的值不为0,if为真,选D。 4. 若已定义: int a =0,1,2,3,4,5,6,7,8,9, *p=a,i; 其中 0i9, 则对a数组元素不正确的引用上
3、A) ap-a B) *(&ai) C) pi D) a10答案:D解析:A. ap-a表示a0,正确。 B. *(&ai)表示ai,正确。 C. pi表示&ai,正确。 D. a数组最大下标为9,错误。5. 以下程序的输出结果是 int main( ) int x=10,y=10,I; for(i=0;x8;y=+i) printf(%d,%d ,x-,y); A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1答案:D解析: 第一遍循环: x=10,y=10,x8,输出 10 10后,x=9,y=1.第二遍循环:x=98,输出 9 1 后x=8,y
4、=2。第三遍循环:x=8,不满足条件,循环结束,无输出。 6. 下面程序的输出是void prtv(int *x)printf(%dn, +*x);int main() int a=25;prtv(&a);return 0;A) 23 B) 24 C) 25 D) 26答案:D解析:主函数传递给prtv函数的x值为25 ,在printf中,先对x自增,再输出x值为26。 7. 下面能正确进行字符串赋值操作的语句是A)char s5=ABCDE; B)char s5=A、B、C、D、E;C) char *s;s=ABCDEF; D)char *s; scanf(%s,s);答案:C解析:A. 中
5、的 “ 也作为字符串中的一个字符,故右侧字符串长度为75,越界,错误。B. 右侧字符的分割符应使用,而不是、,错误。C. 正确。D. s是一个字符串常量,应在定义同时初始化且不能通过scanf函数或任何其他方式修改其值,错误。 8. 设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=+x|+y&+z;A)不定值 B)2 C)1 D)0答案:C解析: |和&运算符的优先级高于赋值运算符=,所以t为一个逻辑值,其只能为0或1,又表达式+x|+y&+z为真,故t=1。 9. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是A)
6、k=*p1+*p2; B)p2=k; C)p1=p2; D)k=*p1 *(*p2);答案:B解析:B中不能将一个整形变量的值赋给一个指针变量,应改为p=&k 或者*p=k。 10. 请读程序:#include#define SUB(X,Y) (X)*Yint main() int a=3, b=4;printf(%d, SUB(a+, b+);return 0;上面程序的输出结果是A) 12 B) 15 C) 16 D) 20答案:A解析:printf函数中输出的内容等价于(a+)*b+,由于自增运算符优先级高于*,所以又等价于(a+)*(b+),应先输出a*b,后进行自增运算。 11. s
7、izeof(float)的结果是:A) 4B) 6C) 8D) 不确定答案:D解析:sizeof操作符用来测定数据类型位长,但在不同的系统中,同一数据类型的位长并不一定相同,故不确定,选D。 12. 若执行下面的程序时从键盘上输入3和4,则输出是int main() int a,b,s;scanf(%d %d,&a,&b);s=a;if(ab)s=b;s=s*s;printf(%dn,s);return 0;A) 14 B) 16 C) 18 D) 20答案:B解析:scanf输入a=3,b=4,s=a=3,ab,if条件成立,s=b=4,s=s*s=16,输出s=16,选B。13. 以下程序
8、的输出结果是 # include int main() printf(%dn,NULL); return 0;A) 不确定的(因变量无定义) B)0 C)-1 D)1答案:B解析:NULL实际上为系统定义的一个符号常量,它的值就为0,所以输出0,选B。 14. 读程序:#includef(char *s) char *p=s;while( *p!=0) p+;return(p-s);int main() printf(%dn,f(ABCDEF);return 0;上面程序的输出结果是A) 3 B) 6 C) 8 D) 0答案:B解析:0为字符串结束标志,t函数的作用实际为统计参数字符串的长度并
9、返回给主函数,所以输出结果为字符串长度6,选B。 15.在下列叙述中,正确的一条是()。A)以下语句是正确的:char c=”ab”;B)一维数组的定义可采用下列格式:int a(10);C)下面的语句定义了一个二维数组:float a3,4;D)以下两个语句中的a34的含义相同:int a34; a34=1;答案:A解析:C语言数组可以在定义时用字符串赋初值,故答案为A。其他项均不符合C语言关于数组的定义格式。 16. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是 A) *p=&a; scanf(%ld,p); B) p=(long *)malloc(
10、8); scanf(%ld,p); C) scanf(%ld,p=&a);D) scanf(%ld,&a);答案:A解析:A中*p=&a;赋值语句错误,应改为p=&a;,才可以将p指针指向变量a,选A。 17. 若已定义:int a9,*p=a;并在以后的语句中未改变p的值,不能表示a1 地址的表达式是 A) p+1 B) a+1 C) a+ D) +p答案:C解析:a为常量指针,不能修改其值,故不能使用自增运算符,选C。 18. 下面程序的输出是int main() enum team my,your=4,his,her=his+10;printf(%d %d %d %dn,my,your,
11、his,her);return 0;A) 0 1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4 5 15答案:C解析:枚举元素my没有赋初值系统自动赋值为0,同理,枚举元素his没有赋初值,根据枚举元素赋值规则,系统将his的值赋为它前面的your的值+1,选C。19. 以下程序输出结果是int main( )int m=5;if(m+5)printf(%dn,m);else printf(%dn,m-);return 0;A)7 B)6 C)5 D)4答案:B解析:主函数第二行中if条件先判断m5不成立,然后有m=m+=6,再执行else语句,其中,先输出m=6,再使
12、m自减为5,选B。 20. 以下程序运行后,输出结果是 int d=1;fun(int p) int d=5;d+=p+;printf(%d,d);int main()int a=3;fun(a);d+=a+;printf(%dn,d);return 0;A)84 B)99 C)95 D)44答案:A解析:主函数调用fun的同时,将实参a的值3传递给形参p,fun函数中,p=3,d+=p+;语句可以拆分为 d=d+p;p+;所以d=8,输出8。子函数调用结束回到主函数中,fun函数中对形参p的值的修改不能改变实参a的值仍为3,d=d+a=4,输出4,选A。二、填空题(本大题共7小题,每题2分,
13、共14分。)1. 在C语言中,一个函数的函数体一般包括_和_。答案:声明部分 执行部分解析:函数结构构成规则。在C语言中,一个函数的函数体一般包括声明部分和执行部分。2. 在C语言中,不同级运算符之间运算次序存在_的区别,同级运算符之间运算次序存在_的规则。答案:先后 结合性解析:不同级的运算符由优先级规定运算次序;同级的运算符的运算顺序由结合性决定。 3. 欲将字符串S1复制到字符串S2中,其语句是 _ 。答案:strcpy(s2,s1)解析:本题考查库函数strcpy的调用。 4. 结构化程序设计中的三种基本结构是_、_、_。答案:顺序 选择 循环 5. 表达式x=x+1表示成增量表达式为
14、_。答案:x+或+x解析:自增表达式单独使用时,+x和x+等价。6. 定义int a1,2,3,4,5,6,*pa;表达式(*p)的值是_。答案:3解析:+p表示a1的地址,*+p表示a1的值,(*p)则表示a1+。7. C语言中,二维数组在内存中的存放方式为按_优先存放答案:行解析:C语言规则是二维数组以行优先方式存放在内存空间。 三、判断题(本大题共7小题,每题2分,共14分。)1. 虽然goto语句能提高程序运行效率,但为防止程序结构混乱应该禁用( )答案:错解析:goto语句应该是慎用而非禁用。2. 条件表达式可以取代if语句,或者用if语句取代条件表达式( )答案:错解析:if语句可
15、由花括号包含多条执行语句,这是条件表达式所不能实现的,因此二者不能相互替换 3. 在C程序中对用到的所有数据都必须指定其数据类型( )答案:错解析:声明变量必须指定数据类型,用#define声明常量不用指定数据类型,只需指定常量名。 4. 可以对字符型数组进行整体输入、输出( )答案:错解析:字符型数组无法整体进行输入,只能逐个输入输出。 5. 函数中的静态变量在函数每次调用时,都会重新设置初值( )答案:错解析:函数中的静态变量只在函数第一次被调用时设置初值,之后会自动保存为上次调用结束后的值。 6. 实参和与其对应的形参共占用一个存储单元( )答案:错解析:实参形参各分单元。 7. 一个实
16、型变量的值肯定是精确的( )答案:错解析:实型变量的精度是有限的,并不精确,而整型变量的值则是精确的。四、程序分析题(用列表法列出关键变量在运行过程中的值)(本题共3道小题,每题4分,共12分。)1.下面程序的运行结果是_。#include int main()int i5;char c6abcd;do cici1;while(i0);puts(c);答案:aabcd解析:i=5,c5=c4=0; i=4,c4=c3=d; i=3,c3=c2=c; i=2,c2=c1=b;i=1,c1=c0=a;i=0,不满足条件,循环结束,输出”aabcd”。 2. 以下程序的执行结果是_。includes
17、tdio.hint main( )int a331,2,3,4,5,6,7,8,9,i,s0;for(i0;i2;i)ssaii;printf(s%dn,s);答案:s=15解析:将for循环拆分来看:i=0时,s=0+a00=0+1=1i=1时,s=1+a11=1+5=6i=2时,s=5+a22=6+9=15i=3时,循环结束。输出s=15. 3.给出下列函数程序完成的功能void prnt(int n, int aa )int i; for(i=1; i=n; i+) printf(%6d, aai);if(!(i%5) printf(n); printf(n);return 0;若变量n
18、中的值为24,则prnt函数共输出 行,最后一行有 个数答案: 5 4解析:print函数的功能是依次输出形参数组中的数组元素,并且每输出5个后换行。五、编程题(本大题共2小题,每题10分,共20分)1. 从键盘输入一个一维数组,将这个数组逆序输出。 答案#define N 5int main() int aN=9,6,5,4,1,i,temp;printf(n original array:n);for(i=0;iN;i+)printf(%4d,ai);for(i=0;iN/2;i+)temp=ai;ai=aN-i-1;aN-i-1=temp;printf(n sorted array:n);for(i=0;iN;i+)printf(%4d,ai);解析:程序主体包括三个部分:输入数组元素;实现数组元素的逆序;输出数组元素输入数组元素:通过一个for循环,利用scanf函数依次输入数组元素。实现数组元素的逆序:通过一个for循环,将数组前一半元素和后一半元素逐个交换。ai=a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气候健康公平的医院管理
- 2026年肾小管浓缩功能减退诊疗试题及答案(肾内科版)
- 睡眠呼吸暂停与心血管疾病专家共识(完整版解读)
- T∕CATAGS 59-2022 通 用航空器纤维增强复合材料湿法制造工艺
- 安宁疗护医疗决策标准统一的法律意义
- 2026届云南省玉溪市一中高三全真化学试题模拟试卷(16)含解析
- 河北省唐山二中2026届高考化学试题必刷模拟卷含解析
- 水凝胶模拟ECM引导巨噬细胞M2极化促皮肤再生
- 采购合同付款方式补充协议
- 26年泛癌种基因检测应用指南
- 2026年心理咨询师通关测试卷含完整答案详解(夺冠)
- 2026河南兴豫惠民职业技能培训学校有限公司市场化招聘15人笔试参考题库及答案解析
- 唐太宗李世民人物简介模板
- 9.3 LLDPE物质安全资料表-2
- 2023年广东交通职业技术学院单招综合素质模拟试题及答案解析
- YC/T 88.1-2006烟草机械喂料机第1部分:型式与基本参数
- LY/T 2422-2015薇甘菊防治技术规程
- 真空预压传统式与直排式介绍ghg课件
- 大功率商用电磁灶使用说明书
- 工业机器人编程与实操期末试题
- 初中化学中考其他-学案离子(物质)的检验鉴别
评论
0/150
提交评论