




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏省二级C语言考试模拟试题1(注:只有C部分,没有公共基础部分)-、选择题请用答题卡答题,答案依次填在(21)-(30)答题号内21.已知有声明语句int x=8,则下列表达式中,值为2的是(21).A.x+=x-=x B.x%=x-2 C.x8?x=0:x+ D.x/=x+x22.以下关于函数的叙述中正确的是(22) A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值 B.在函数体中至少必须有一个return语句 C.在函数体中可以定义另一个函数 D.在函数体中可以调用函数自身23.若有声明语句int a10,b33;,则以下对数组元素赋值的操作中,不会出现越界访问 的是(23) A.a-1=0 B.a10=0 C.b3O=0 D.b03=024.数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是(24) A.数组占用一块连续的存储区域,链表可能占用若干块不连续的存储空间 B.数组和链表所占用的存储区域均不能在程序运行期间动态地分配 c.数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D.数组的长度是固定的,链表的长度是不固定的25.设有定义和声明语句: typedef struct dtype int a; struct dtype *b; node; static node x3=5,&x1,7,&x2,9,0,*prt=&x0; 下列选项中,表达式值不为5的是(25) A.x1.b-a-2 B.ptr-b-a-2 C.(ptr+1)-a-2 D.ptr-a26.在以下程序中,需要在main函数之后定义-个函数,以下选项中(26)可以用做该函数 的名字 #define p 3.14 int y; main() int a=1; 函数名(a); . /*若干执行语句*/ int 函数名(int x) return x*x; A.main B.y C.p D.print27.若有声明语句char ch=a,*pc=&ch;,以下语句中有语法错误的是 (27) A.(*pc)+; B.ch+=-a+A; C.toupper(ch)=ch; D.ch+;28.已知有语句FILE *fp;int x=123;fp=fopen(out.dat,w);,如果需要将变量x的值以文 本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中正确的是(28) A.fprintf(%d,x); B.fprintf(fp,%d,x); C.fprintf(%d,x,fp); D.fprintf(out.dat,%d,x);29.已知有声明语句int a5=l,2,3,4,5,*p,i;,以下语句中(29)不能正确输出a数 组全部元素的值 A.for(p=a,i=0;i5;i+)printf(%d,*(p+i); B.for(p=a;pa+5;p+)printf(%d,*P); C.for(p=a,i=0;pa+5;p+,i+)printf(%d,p); D.for(p=a;pa+5;p+)printf(%d,p0);30.已知有声明语句char s110=12345,s210=abode,s310;,以下语句中能将s1中存 储的字符串和s2中存储的字符串正确交换的是 ( 30 ) A.s3=s1,s1=s2,s2=s3; B.s30=s10,s1O=s2O,s20=s3O; C.strcpy(s30,s1O),strcpy(s10,s20),strcpy(s2O,s30); D.strcpy(s3,s1),strcpy(s1,s2),strcpy(s2,s3); 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占-行) 基本概念题(共5分) 1.包含二目运算符的表达式可一般地表示为(x)op(y),其中op代表运算符,x、y代表操作数 若op是关系运算符或逻辑运算符,则不管x、y为何值,表达式的值是(1) 2.在c语言中大部分执行语句都含关键字,例如,for语句含关键字for,除这些语句外不含 关键字的非空操作语句是(2) 3.常量n的数据类型是(3) 4.当程序读写数据文件时,需要有声明语句FILE *fp;,在该声明语句之前必须包含头文件 (4) 5.已知main函数中有声明int a10;,若在main函数中出现语句fun(a);,执行该函数调 用语句时传递给fun函数对应位置形式参数的值是(5): 阅读程序写出运行结果题(共10分) 6.以下程序运行时输出 (6) fun(int k) static int i; int s,j=0; return +i+k+j+; main() static int i,n; for(i=O;i4;i+) n+=fun(i); printf(%3d,n); 7.以下程序运行时输出 ( 7 ) int f(int x,int y) return x/y+x%y; main() float a=1.5,b=2.5,c=f(a,b); printf(%.2f,c); 8.以下程序运行时输出的两个数分别是 (8) 和 (9) main() int x=1,y,k; for(k=0;k5;k+) int x=1; x+; if(k=4)y=x; printf(%d,%d,x,y); 9.以下程序运行时输出第一个数是(10 ) ,第二个数是( 11 ) ,第三个数是( 12 ) #include main() static int a33,i,j; for(i=0;i3;i+) for(j=0;j3;j+) switch(abs(i-j) case 0: if(i=0 | i=2)aj+=3; else aj+;break; case 1:aj+=2;break; case 2:aj+=3; printf(%d,%d,%d,a11,a12,a20); 10.以下程序运行时输出第一行是(13) ,第二行是(14) #include int convert(char s1,char s2) int i=0,j,s; char tab84=000,001,010,011,100,101,110,111; for(i=0,j=O;s1!=0;i+,j=j+3) strcpy(&s2j,tabs1-0); for(i=0,s=O;istrlen(s2);i+) s=s*2+s2-0; return s; main() char ss1=15,ss280;int y; y=convert(ss1,ss2);printf(%dn%s,y,ss2); 11.以下程序运行时输出 ( 15 ) long func(long x) if(x100) return x%10; else return func(x/100)*10+x%10; main() printf(The result is:%ldn,func(132645);完善程序题(共15分)12.函数loop(s,m,n,str)的功能是:对字符串str中,从下标为s的字符开始的所有间隔为m 的字符进行循环左移,即:strs-strs+m,strs+m-strs+2m,.,strs+(k-1)m -strs+km,strs+km-strs(k为整数,下标s+km不越界),共做n次 例如,调用loop(1,2,1,str)前后str中数据的变化情况如下: str中初始数据:A B C D E F G H I J K 移位后str数据:A D C F E H G J I B K #include #include void loop(int s,int m,int n,char *str); main() char buf81; strcpy(buf,ABCDEFGHIJK);puts(buf); loop(1,2,2,buf);puts(buf); void loop(int s,int m,int n,char*str) char c;int k;int i,len; len=strlen(str); for(i=O;in;i+) k=(16);c=strk; while(k+m (17) strk=strk+m;k=(18); (19) =c; 13.以下程序验证一个猜想:任意一个十进制正整数与其反序数相加后得到一个新的正整数, 重复该步骤最终可得到一个回文数(所谓反序数,是指按原数从右向左读所得到的数,例 如,123的反序数是321所谓回文数,是指一个数从左向右读的值与从右向左读的值相 等例如,12321、234432都是回文数) #include long invert(long x); main() long n,c=0; printf(input a number:); scanf(%ld,&n); while(20) printf(input a number:);scanf(%ld,&n); n=n+invert(n);c+; while(21) n=n+invert(n);c+; printf(%ld,count=%ld,n,c); long invert(long x) /*生成并返回x的反序数*/ long s; for(s=0;x0; ( 22 ) ) s=s*10+x%10; return s; 14.已知某链表中结点的数据结构定义如下: struct node int x; struct node *next; ; 函数find_del的功能是:在参数head指向的链表中查找并删除x值最大的结点,如有多 个相同的x值最大的结点,删除第一个结点,保存该结点的地址到pm指向的指针变量中, 函数返回链表首结点的指针 struct node *find_del(struct node *head,struct node *pm) struct node *p1,*p2,*pmax,*pre; if(head=NULL)return NULL; pmax=( 23 );p2=p1=pmax; while(p1) if(p1-x( 24 ) pre=p2;pmax=p1; p2=p1:p1=p1-next; if(pmax=head)head=pmax-next; else ( 25 ) =pmax-next; ( 26 )=pmax; return head; 15.以下程序对一组点坐标(x,y)按升序进行排序,要求:先按x的值排序,若x的值相同,则 按y的值排序,排序算法为选择法 #include #define N 5 typedef struct int x,y;POINT; void point_sort( (27) *x,int n) POINT t; int i,j,k; for(i=0;in-1;i+) (28) ; for(j=( 29 );j(xj.x)k=j; else if(30)&xk.yxj.y)k=j; if(k!=i)t=x,x=xk,xk=t; main() POINT aN=0; int i=0; while(iN) scanf(%d%d,&a.x,&a.y);i+; point_sort(a,N); for(i=0;iN;i+) printf(n%d,%d,a.x,a.y); 21.B 22.D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省阜阳市太和县2024-2025学年九年级上学期10月月考物理试卷(含答案)
- 拍摄视频采购合同范本
- 养鱼设备租赁合同范本
- 土地同意转租合同范本
- 承包土地售卖合同范本
- 网络平台经销合同范本
- 法律规定合同范本
- 大型货车货运合同范本
- 企业定制珠宝合同范本
- 绿化草坪的合同范本
- 茂县生活垃圾资源化综合利用项目环评报告
- 水电站新ppt课件 第一章 水轮机的类型构造及工作原理
- 护理查对制度课件
- 市政工程占道施工方案
- 初中英语中考专题训练阅读理解-应用文篇
- GB/T 39965-2021节能量前评估计算方法
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- GB/T 17449-1998包装玻璃容器螺纹瓶口尺寸
- 熵权法教学讲解课件
- PMC知识培训课件
- 高中数学教材分析讲座课件第五章-三角函数
评论
0/150
提交评论