版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言程序设计C4高级语言程序设计C4高级语言程序设计C4xxx公司高级语言程序设计C4文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度高级语言程序设计(C)模拟题四一、选择题(本题共20道小题,每题2分,共40分。)1.以下有4组用户标识符,其中合法的一组是()。A)For-subCaseB)4dDOSizeC)f2_G3IFabcD)WORDvoiddefine答案:C解析:标识符的命名规则:由字母、数字、下划线组成,第一个字符必须是字母或者下划线,标示符的命名不能同C语言的关键字相同。2.若有下面的程序片段:inta[12]={0},*p[3],**pp,i;for(i=0;i<3;i++)p[i]=&a[i*4];pp=p;则对数组元素的错误引用是A)pp[0][1] B)a[10] C)p[3][1] D)*(*(p+2)+2)答案:C解析:A.pp[0]表示p[0]的地址,而pp[0]也为一个指针,它和pp用法相同,故pp[0][1]则表示a[1]的地址,正确。B.正确。C.数组p的最大下标为2,错误。D.*(*(p+2)+2)表示a[10],正确。3.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为A)a<>0 B)!a C)a=0 D)a答案:D解析:对if(a)而言,如果a的值不为0,则if语句括号中表达式的值不为0,if为真,选D。4.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用上A)a[p-a]B)*(&a[i])C)p[i]D)a[10]答案:D解析:A.a[p-a]表示a[0],正确。B.*(&a[i])表示a[i],正确。C.p[i]表示&a[i],正确。D.a数组最大下标为9,错误。5.以下程序的输出结果是intmain(){intx=10,y=10,I;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}A)10192B)9876C)10990D)101091答案:D解析:第一遍循环:x=10,y=10,x>8,输出1010后,x=9,y=1.第二遍循环:x=9>8,输出91后x=8,y=2。第三遍循环:x=8,不满足条件,循环结束,无输出。6.下面程序的输出是voidprtv(int*x)printf("%d\n",++*x);}intmain(){ inta=25;prtv(&a);return0;}A)23B)24 C)25D)26答案:D解析:主函数传递给prtv函数的x值为25,在printf中,先对x自增,再输出x值为26。7.下面能正确进行字符串赋值操作的语句是A)chars[5]={"ABCDE"};B)chars[5]={'A'、'B'、'C'、'D'、'E'};C)char*s;s="ABCDEF";D)char*s;scanf("%s",s);答案:C解析:A.{}中的’“’也作为字符串中的一个字符,故右侧字符串长度为7>5,越界,错误。B.右侧字符的分割符应使用‘,’,而不是‘、’,错误。C.正确。D.s是一个字符串常量,应在定义同时初始化且不能通过scanf函数或任何其他方式修改其值,错误。8.设x,y,z,t均为int型变量,则执行以下语句后,t的值为x=y=z=1;t=++x||++y&&++z;A)不定值B)2C)1D)0答案:C解析:||和&&运算符的优先级高于赋值运算符=,所以t为一个逻辑值,其只能为0或1,又表达式++x||++y&&++z为真,故t=1。9.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是A)k=*p1+*p2;B)p2=k;C)p1=p2;D)k=*p1*(*p2);答案:B解析:B中不能将一个整形变量的值赋给一个指针变量,应改为p=&k或者*p=k。10.请读程序:#include<>#defineSUB(X,Y)(X)*Yintmain(){inta=3,b=4;printf("%d",SUB(a++,b++));return0;}上面程序的输出结果是A)12 B)15 C)16 D)20答案:A解析:printf函数中输出的内容等价于(a++)*b++,由于自增运算符优先级高于*,所以又等价于(a++)*(b++),应先输出a*b,后进行自增运算。11.sizeof(float)的结果是:A)4B)6C)8D)不确定答案:D解析:sizeof操作符用来测定数据类型位长,但在不同的系统中,同一数据类型的位长并不一定相同,故不确定,选D。12.若执行下面的程序时从键盘上输入3和4,则输出是intmain(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);return0;}A)14B)16C)18D)20答案:B解析:scanf输入a=3,b=4,s=a=3,a<b,if条件成立,s=b=4,s=s*s=16,输出s=16,选B。13.以下程序的输出结果是#include<>intmain(){printf("%d\n",NULL);return0;}A)不确定的(因变量无定义)B)0C)-1D)1答案:B解析:NULL实际上为系统定义的一个符号常量,它的值就为0,所以输出0,选B。14.读程序:#include<>f(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}intmain(){printf("%d\n",f("ABCDEF")); return0;}上面程序的输出结果是A)3 B)6 C)8 D)0答案:B解析:’\0’为字符串结束标志,t函数的作用实际为统计参数字符串的长度并返回给主函数,所以输出结果为字符串长度6,选B。15.
在下列叙述中,正确的一条是(
)。A)
以下语句是正确的:charc[]=”ab”;B)
一维数组的定义可采用下列格式:inta(10);C)
下面的语句定义了一个二维数组:floata[3,4];D)
以下两个语句中的a[3][4]的含义相同:inta[3][4];a[3][4]=1;答案:A解析:C语言数组可以在定义时用字符串赋初值,故答案为A。其他项均不符合C语言关于数组的定义格式。16.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是A)*p=&a;scanf("%ld",p);B)p=(long*)malloc(8);scanf("%ld",p);C)scanf("%ld",p=&a);D)scanf("%ld",&a);答案:A解析:A中*p=&a;赋值语句错误,应改为p=&a;,才可以将p指针指向变量a,选A。17.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是A)p+1B)a+1C)a++D)++p答案:C解析:a为常量指针,不能修改其值,故不能使用自增运算符,选C。18.下面程序的输出是intmain(){enumteam{my,your=4,his,her=his+10};printf("%d%d%d%d\n",my,your,his,her);return0;}A)0123B)04010 C)04515D)14515答案:C解析:枚举元素my没有赋初值系统自动赋值为0,同理,枚举元素his没有赋初值,根据枚举元素赋值规则,系统将his的值赋为它前面的your的值+1,选C。19.以下程序输出结果是intmain(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);return0;}A)7B)6C)5D)4答案:B解析:主函数第二行中if条件先判断m>5不成立,然后有m=m++=6,再执行else语句,其中,先输出m=6,再使m自减为5,选B。20.以下程序运行后,输出结果是intd=1;fun(intp){intd=5;d+=p++;printf("%d",d);}intmain(){inta=3;fun(a);d+=a++;printf("%d\n",d);return0;}A)84B)99C)95D)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分,共14分。)1.在C语言中,一个函数的函数体一般包括_______和_______。答案:声明部分执行部分解析:函数结构构成规则。在C语言中,一个函数的函数体一般包括声明部分和执行部分。2.在C语言中,不同级运算符之间运算次序存在_________的区别,同级运算符之间运算次序存在________的规则。答案:先后结合性解析:不同级的运算符由优先级规定运算次序;同级的运算符的运算顺序由结合性决定。3.欲将字符串S1复制到字符串S2中,其语句是____________。答案:strcpy(s2,s1)解析:本题考查库函数strcpy的调用。4.结构化程序设计中的三种基本结构是_________、__________、___________。答案:顺序选择循环5.表达式x=x+1表示成增量表达式为___________。答案:x++或++x解析:自增表达式单独使用时,++x和x++等价。6.定义inta[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。答案:3解析:++p表示a[1]的地址,*++p表示a[1]的值,(*++p)++则表示a[1]++。7.C语言中,二维数组在内存中的存放方式为按____优先存放答案:行解析:C语言规则是二维数组以行优先方式存放在内存空间。三、判断题(本大题共7小题,每题2分,共14分。)1.虽然goto语句能提高程序运行效率,但为防止程序结构混乱应该禁用()答案:错解析:goto语句应该是慎用而非禁用。2.条件表达式可以取代if语句,或者用if语句取代条件表达式()答案:错解析:if语句可由花括号包含多条执行语句,这是条件表达式所不能实现的,因此二者不能相互替换3.在C程序中对用到的所有数据都必须指定其数据类型()答案:错解析:声明变量必须指定数据类型,用#define声明常量不用指定数据类型,只需指定常量名。4.可以对字符型数组进行整体输入、输出()答案:错解析:字符型数组无法整体进行输入,只能逐个输入输出。5.函数中的静态变量在函数每次调用时,都会重新设置初值()答案:错解析:函数中的静态变量只在函数第一次被调用时设置初值,之后会自动保存为上次调用结束后的值。6.实参和与其对应的形参共占用一个存储单元()答案:错解析:实参形参各分单元。7.一个实型变量的值肯定是精确的()答案:错解析:实型变量的精度是有限的,并不精确,而整型变量的值则是精确的。四、程序分析题(用列表法列出关键变量在运行过程中的值)(本题共3道小题,每题4分,共12分。)1.下面程序的运行结果是________。#include<>intmain(){ inti=5; charc[6]="abcd"; do {c[i]=c[i―1]; }while(――i>0); puts(c);}答案:aabcd解析:i=5,c[5]=c[4]=’\0’;i=4,c[4]=c[3]=’d’;i=3,c[3]=c[2]=’c’;i=2,c[2]=c[1]=’b’;i=1,c[1]=c[0]=’a’;i=0,不满足条件,循环结束,输出”aabcd”。2.以下程序的执行结果是____________。#include<>intmain(){inta[3][3]={1,2,3,4,5,6,7,8,9},i,s=0;for(i=0;i<=2;i++)s=s+a[i][i];printf("s=%d\n",s);}答案:s=15解析:将for循环拆分来看:i=0时,s=0+a[0][0]=0+1=1i=1时,s=1+a[1][1]=1+5=6i=2时,s=5+a[2][2]=6+9=15i=3时,循环结束。输出s=15.3.给出下列函数程序完成的功能voidprnt(intn,intaa[]){inti;for(i=1;i<=n;i++){printf("%6d",aa[i]);if(!(i%5))printf("\n");}printf("\n");return0;}若变量n中的值为24,则prnt函数共输出行,最后一行有个数答案:54解析:print函数的功能是依次输出形参数组中的数组元素,并且每输出5个后换行。五、编程题(本大题共2小题,每题10分,共20分)1.从键盘输入一个一维数组,将这个数组逆序输出。答案#defineN5intmain(){inta[N]={9,6,5,4,1},i,temp;printf("\noriginalarray:\n");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf("\nsortedarray:\n");for(i=0;i<N;i++)printf("%4d",a[i]);}解析:程序主体包括三个部分:输入数组元素;实现数组元素的逆序;输出数组元素eq\o\ac(○,)输入数组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 店长年度考核的个人总结范文(3篇)
- 珠宝行业工作计划6篇
- 高中技术《第二章流程与设计》单元检测
- 有关辅导员开学的讲话稿范文(3篇)
- 新教材高考地理二轮复习二7类选择题技法专项训练技法2直选法含答案
- 第24章 解直角三角形 综合检测
- 第二十六章 解直角三角形 综合检测
- 山西省太原市2024-2025学年高三上学期期中物理试卷(含答案)
- 河南省周口市扶沟县2024-2025学年六年级上学期11月期中道德与法治试题
- 2024-2025中山市共进联盟七年级上期中考试生物试卷
- (统编2024版)道德与法治七上10.1爱护身体 课件
- GB/T 30391-2024花椒
- 供电线路维护合同
- 鞋子工厂供货合同模板
- 2024码头租赁合同范本
- 木材采运智能决策支持系统
- 上海市市辖区(2024年-2025年小学四年级语文)部编版期末考试(下学期)试卷及答案
- 认识梯形(课件)四年级上册人教版
- 【期中考后反思】《反躬自省,砥砺奋进》-2022-2023学年初中主题班会课件
- 2019新教材人教版生物必修1教材课后习题答案
- 2024年中国白酒行业数字化转型研究报告-36氪-202409
评论
0/150
提交评论