




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2012年上海市高等学校计算机等级考试试卷二级 (C程序设计)版权所有(本试卷答卷时间120分钟)试题一(28分,每小题4分)解答下列各小题,把解答写在答题卷的对应栏内。(1) 设a,b,c为整型并且a=3,b=5,c=7;写出下面表达式的值。(注:对每小题求值时a=3,b=5,c=7保持不变)cba c%=a-b%1 b/=c-b%4 +a=-b(2) 简述break和continue语句在使用场合和功能方面的区别。 Break 结束本级循环 Continue 结束本次循环 ,进行下一次循环(3) 执行下列程序后的输出结果是什么?void main() int a,b,c; a=b=1; c=a+,b+,+b; printf(“%d,%d,%dn”,a,b,c);(4) 执行下列语句后的输出结果是什么?#includechar s1=”12345”,s2=”1234”;printf(“%dn”,strlen(strcpy(s1,s2); 即 s1=”1234” printf(“%sn”,s1+2); (5) 写出数学计算式y=(sin72/|1+x|)的C语言表达式。 y=sqrt(sin(72*3.14158/180)/abs(1+x)(6) 写出宏定义s(x,y)的含义,执行下列语句后的输出结果是什么?#define s(x,y) x=x+y,y=x-y,x=x-yvoid main()int a=12,b=9;s(a,b);printf(“a=%dtb=%dn”,a,b); (7) 用文字描述以下程序段所完成的功能:FILE*fr,*fw;fr=fopen(“a.txt”,”r”) /*以只读的方式打开文件 a.txt , 文件指针是fr*/ fw=fopen(“b.txt”,”w”) /*以只写的方式打开文件 b.txt , 文件指针是fw */while (!feof(fr) /*当指针fr没指到结束符时 */fputc(fgetc(fr),fw); /*从指针fr处读入一个字符 写到指针fw所指处 */ fclose(fr); /* 关闭指针fr 所指文件 */fclose(fw); /* 关闭指针fw 所指文件 */ 试题二(12分,每小题6分)阅读下列程序,把程序输出的结果写在答题纸的对应栏内 (1)【程序2.1】 #define N sizeof(a)/sizeof(a0) void main() int a6=10,20,30,40,i,*p=a,*p1=&a5; p1=p1-4; *p1+=15; *p1=*(+p)*2; for(i=3;iN;i+) pi=20+i*10; for(i=0;iN;i+=2) printf(“%dt%dn”,ai,ai+1); (2)【程序2.2】 int a=3,b=4,c=5; void sub(int n) int b=20; static int s=10; b+=a+; s+=b+c; printf(“%d%d%dn”,a,b,c); void main() int b=6,c=7; sub(10); sub(b+c); printf(“%d%dn”,a,b); 试题三(12分,每小题6分)改错,下列每个程序都有三个错误,按题中的计算要求,纠正错误,并以“将#XX行改为YYYY”的形式进行解答,把解答写在答题纸的对应栏内。代码左边的#01、#02、是附加的行号。【程序3.1】 下面程序的功能是从键盘输入三角形的3条边长x,y,z(整型数),判断此3边能否构成三角形。若能,则判定构成的三角形是等边三角形或是等腰三角形还是任意三角形,并求出所构成的三角形的面积。#01 #include#02 #include#03 int sjxfl(int a,int b,int c)#04 if(a=0)& (b=0)& (c=0) &(a+b=c) &(b+c=a) &(a+c=b)return 0;改为 if(a=0)| (b=0)| (c=0) |(a+b=c) |(b+c=a) |(a+c=b)return 0;#05 else if(a=b=c)return 1;#06 else if(a=b)|(b=c)|(c=a)return 2;#07 else return 3;#08 #09 void main()#10 int x,y,z;#11 float area,s;#12 scanf(“%d%d%d”,&x,&y,&z);#13 switch(sjxfl(x,y,z)#14 case 0:printf(“不能构成三角形.n”) 改;#15 exit(0);#16 case 1:printf(“构成等边三角形.n”) 改; #17 break;#18 case 2:printf(“构成等腰三角形.n”) 改; #19 break;#20 case 3:printf(“构成任意三角形.n”) 改; #21 break;#22 #23 s=(x+y+z)/2;#24 area=sprt(s*(s-x)*(s-y)*(s-z); 改sqrt#25 printf(“构成的三角形的面积是:area=%fn”,area);#26 修改如下: #include #include int sjxfl(int a,int b,int c) if(a=0)|(b=0)|(c=0)|(a+b=c)|(b+c=a)|(a+c=0。#01 void main()#02 float x,y; /*改为 float x,y,xn(float,int ); 函数定义在使用后,则必须先说明*/ #03 int n;#04 scanf(“%f%d”,&x,&n);#05 y=xn(x); /* y = xn(x, n ); #06 printf(“xn=%fn”,y);#07 #08 float xn(float x,int n)#09 float z#10 if(n0)#11 printf(“n is a wrong number!n”);#12 exit(0)#13 #14 if(n!=0) z=1; /* if(n=0) z=1; */ #15 else z=xn(x,n); /* z=x * xn(x,n-1); */#16 return z#17 #include #include void main() float x,y, xn(float,int ); int n; scanf(%f%d,&x,&n); y=xn(x,n); printf(xn=%fn,y); float xn(float x,int n) float z ; if(n0) printf(n is a wrong number!n); exit(0) ; if(n=0) z=1; else z=x * xn(x,n-1); return z ; 试题四(18分,每小题9分)按指定的要求编写程序段,把解答写在答题纸的对应栏内。(1) 编写一个函数,将数组a中的n个数每5个相邻的元素为一组分别求和(假设求和结果不溢出),结果放到数组b中,最后一组如果不足5个也进行求和。例如,若数组a的元素为4,8,3,2,0,5,2,9,7,8,4,3,2,1,8,4,3,2,则数组b的元素为17,31,18,9。 #include void main() int a36=1,2,3,4,5,7,8,8,9,10,1,2,3,b36; float x,y; int n,i,j; n=sizeof(a) ; j=0; for (i=0;in;i+ ) if (i%5=0) j+; bj=bj+ai; for (i=0;i=j;i+ ) printf( %d n,bi); (2) 编写C程序,计算并输出100以内是7的倍数并且含有数字5的所有自然数。 #include void main() float x,y; int n,a,b; for (a=7;a=100;a=a+7 ) if (a/10=5)| (a%10=5) printf( %d n,a); 试题四(15分,每个空格3分)阅读下列问题描述和相应的程序,把应填入其中_(n)_处的内容写在答题纸的对应栏内。【问题描述】本程序用来统计一个班级(N个学生)的学习成绩,每个学生的信息由键盘输入,存入结构数组sN中;然后按学生成绩进行排序,并对学生的成绩进行优(90100)、良(8089)、中(7079)、及格(6069)和不及格(60)(90100)的统计,最后输出排序后的学生成绩信息表,并统计各成绩分数段学生人数。【程序5】#include #define N 30struct student int score; /* 学生成绩*/ char name10; /* 学生姓名*/ sN;void swap(struct student *ps1, struct student *ps2) struct student tmp; tmp.score=ps1-score; ps1-score=ps2-score; ps2-score=tmp.score; strcpy(,ps1-name); strcpy(ps1-name,ps2-name); strcpy(ps2-name,);void sort(struct student st, int n) int I,j,temp; for(i=0;in-1;i+) temp=i; for(j=i+1;jsttemp.score)temp=j; swap(&si, &stemp_(1)_)void main() int I,score90,score80,score70,score60,score_failed; for(i=0;iN;i+)scanf(“%d %s”, &si.score, _(2)_); /*输入N个学生成绩、姓名、存入数组s中 */sort(s,N);_(3) score90,score80,score70,score60,score-failed _ =0;for(i=0;iN;i+)switch(_si.score /10_(4)_) /*并对学生的成绩进行优、良、中、及格和不及格的统计*/ case 10: case 9:score90+;break;case 8:score80+;break;case 7:score70+;break;case 6:score60+;break;default_(5)_: score_faild+; for(i=0;iN;i+) /* 输出排序后学生成绩、姓名*/ printf(“%d %s”,si.score,); printf(“a优 %dn b良 %dn c中 %dn d及格 %dn e不及格 %dn”, score90,score80,score70,score60,score-failed); 正确程序 #include #define N 5struct student int score; /* 学生成绩*/ char name10; /* 学生姓名*/ sN;void swap(struct student *ps1, struct student *ps2) struct student tmp; tmp.score=ps1-score; ps1-score=ps2-score; ps2-score=tmp.score; strcpy(,ps1-name); strcpy(ps1-name,ps2-name); strcpy(ps2-name,);void sort(struct student st, int n) int i,j,temp; for(i=0;in-1;i+) temp=i; for(j=i+1;jsttemp.score) temp=j; swap(&si, &stemp); void main() int i,score90,score80,score70,score60,score_failed; for(i=0;iN;i+)scanf(%d %s, &si.score, ); /*输入N个学生成绩、姓名、存入数组s中 */sort(s,N);score90=score80=score70=score60=score_failed =0;for(i=0;iN;i+)switch(si.score/10) /*并对学生的成绩进行优、良、中、及格和不及格的统计*/ case 10: case 9:score90+;break;case 8:score80+;break;case 7:score70+;break;case 6:score60+;break;default: score_failed+; printf(n); for(i=0;iN;i+) /* 输出排序后学生成绩、姓名*/ printf(%d %sn,si.score,); printf(n); printf(a优 %dn b良 %dn c中 %dn d及格 %dn e不及格 %dn, score90,score80,score70,score60,score_failed);试题六(15分,每个空格3分)阅读下列问题描述和相应的C程序,把应填入其中_(n)_处的内容写在答题纸的对应栏内。【问题描述】以下程序的功能是:读入一行字符(例如charlist),以EOF告结束(EOF在键盘输入中被定义为CTRL+Z)。按输入时的相反顺序建立一个链表式的结点序列(即先输入的数据位于链表尾,如下图),然后再输出链表(即按输入的相反顺序),并释放全部结点。tsc【程序6】#include #include
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版足浴技师劳动合同范本与培训体系
- 2025版养老护理服务定向采购合同下载
- 2025年度装配式建筑项目管理服务合同范本
- 2025年户外广告设备安装与广告发布合同
- 2025年核设施运输安全操作规范合同
- 2025年智能音响独家代理销售合同范本
- 2025版水车租赁业务合作协议书
- 2025版挖掘机租赁与维修一体化服务合同
- 2025版事业单位场地租赁合同书
- 2025版太阳能光伏发电系统安装与维护服务委托协议书
- 廉洁培训ppt课件-廉洁培训课件
- 全过程工程咨询服务技术方案
- GB/T 4802.1-2008纺织品织物起毛起球性能的测定第1部分:圆轨迹法
- GB/T 35568-2017中国荷斯坦牛体型鉴定技术规程
- GB/T 28707-2012碟簧支吊架
- GB/T 2791-1995胶粘剂T剥离强度试验方法挠性材料对挠性材料
- GB/T 25702-2010复摆颚式破碎机颚板磨耗
- 超分子化学简介课件
- 流体力学-流体力学基本方程课件
- 粮油产品购销合同
- YYT 0681.2-2010 无菌医疗器械包装试验方法 第2部分:软性屏障材料的密封强度
评论
0/150
提交评论