《C语言程序设计期末考试试题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末考试试题及答案.docx(6页珍藏版)》请在第一文库网上搜索。
1、C语言程序设计1.四五八七八九十总分(2008/2009学年第二学期)一.选择题(满分30分,每题2分)得分1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是DA.a=b二c+8;C.c+;2.已知intj,i=l;执行语句j=i+;”后,B.a+=y+3;D.a+b+c变量i的值是B、一,8.若inti=10;执行下列程序后,变量i的正确结果是2switch(i)case0:i+=l;case 10:case 11: default:A.101+=1;i+=l;i+=l;B.11C.12D.139.下列语句中不正确的字符串赋值或初始化的是_L。A.charstr10=/,
2、strings/;B.charstr8=,s,t,r,C.charstr10;str=strings”;10.有如下程序:#includevoidmain()D.charstr=strings”;A.1B.23.执行下面程序:-includestdio.hvoidmain()C.-1D.-2inta=l,b=2,c=3;c=(a+=a+2),(a=b,b+3);printf(u%d,%d,%dw,a,b,c);则输出结果是:AA.2,2,4B.4,2,3C.5,5,3D.4,2,54.若要求在if后一对圆括号中表示a不等于。的关系,则能正确表示这一关系的表达式为DoA.a0B.!aC.a=0D
3、.a5.forA.(j=0;j+);循环结束后,j的值是B12B.116.C语言中函数返回值的类型由C.10D.9D决定的。A.return语句中的表达式类型B.调用该函数的主调函数的类型7.C.调用函数时临时决定下列说法中正确的是BD.定义函数时所指定的函数类型ABCD在调用用户自定义函数时,必须对其进行声明。函数可以返回一个值,也可以什么值也不返回。说明函数时,必须明确参数的类型和返回值。在程序设计中空函数没有什么作用。inta=l,b=0,c=0;if(ab)if(b0)c=0;elsec+;printf(dn”,c);该程序的运行结果是DA.3B.2C.111.在函数调川,对参数传递的
4、说法正确的是D.0AoABCD实参和形参各占一个独立的存储单元。实参和形参始终共用一个相同的存储单元。可以由用户指定实参和形参是否共用一个存储单元。可以由系统指定实参和形参是否共用一个存储单元12.以下正确的程序段是CA.B.C.D.charcharcharcharstrl=12345,str2=abcdef;strcpy(strl,str2);str10,*st=abcde;strcat(str,st);str10=,*st=abed。;strcat(str,st);*stl=”12345”,*st2二abcde;strcat(stl,st2);13.若有定义:int*p4;则标识符pB。A
5、.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.说明不合法9.下面程序的运行结果为22222。include void main()(int i=2, j=5, s;s=i;for (1j;)s=s*10+i;printf ( %d,s);)10.写出程序的执行结果:i=10,main () int i=0, j=0;while (i10)i+;while (j+10);printf( ui=%d, j=%dn,i, j);得分三、读程序写结果(满分16分,每题4分)1.判断下面程序的运行结果。#includevoidmain()(int
6、a=0,b=l;int fun(int a,int b);printf(,%dn,fun(a,b);printf(H%dnu,fun(a,b);)int fun(int m, int n)(static s=l;s+;retum(s*(m+n);)2程序运行的结果为:314.以下程序的运行结果是C.typedefunion(longal;intb2;charc8;TEST;TESTm;main()(printf(%dn,sizeof(m);)A.32B.16C.8D.2415.设有以下结构体类型:structst(charname8;intnum;floats4;student50;并且结构体
7、数组student中的元素都已有值,若要将这些元素写到硬盘文件file,txt中,以下不正确的形式是C.A. fwrite(student,sizeof(structst),50,fp);B. fwrite(student,50*sizeof(structst),1,fp);C. fwrite(student,25*sizeof(structst),25,fp);D. for(i=0;i50;i+)fwrite(student+i,sizeof(structst),1,fp);得分二、填空题(满分20分,每空2分)1 .每个C语言编写的程序必须有一个,并且只能有一个主函数。2 .设x和y均为i
8、nt型变量,且x=l,y=2,则表达式3+x/y的值为3。3 .若有定义:inta=2,4,6,8,10,12,*p;a;则*(p+1)的值是4。4 .设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则一OxOF。5 .测试char型变量m的最高位数据是否为1的表达式是a&0x80。6 .若x=2,尸一3贝ljx&y的结果是1。7 .和二进制数101等值的十进制数为5。8 .定义inti=l;执行语句while(i+x,(ml.p)-y);3.卜.面程序的运行结果是7654321。ttinclude#includevoidfun(char*w,intn)chart,*sl,*s2;s
9、l=w;s2=w+n-l;while(sis2)(t=*sl;*sl二*s2;*s2=t;sl+;s2一;voidmain()charp二1234567;fun(p,strlen(p);puts(p);4.下面程序的输出结果为4,2ttincludestdio.hstructks(inta;int*b;s4,*p;voidmain()(intn=l,i;printf(n);for(i=0;ia,(p+)-a);)得分四、程序设计(满分34分)1 .编写一个程序,判断某一年是否为闰年。(6分)#includevoidmain()(intyear;printf(inputyear=);scanf(
10、,&year);if(year%4=0&year%100!0)|year%400=0)printf(%4disaleapyearn,year);elseprintf(isnotaleapyearn,year);2.用公式求乃的近似值,直到最后一项的绝对值小于IO为止,请编程实现。(8分)4.将一个整数字符串转换为一个整数,如-1234转换为-1234。(10分)#includemath,h”voidmainO(ints;floatn,t,pi;t=1;pi=0;n=l.0;s=l;while(fabs(t)lE-6)(pi=pi+t;n=n+2;s=一s;t=s/n;)pi=pi*4;prin
11、tfCpi=%10.6fn,pi);3.编写程序,利用子函数实现计算字符串的长度。(10分)线#includeintlength(char*s);voidmain()(chara100;inti;printf(/zPleaseinputthestring:nz/);gets(a);i=length(a);printf(,znThelengthofstringis%d,i);)intlength(char*s)(char*p=s;while(*p)p+;return(p-s);#includettincludeintchnum(char*p);voidmain()(chars6;intn;gets(s);ifn=-chnum(s+l);elsen=chnum(s);printf(刎n,n);)chnum(char*p)(intnum=0,k,len,j;len=strlen(p);for(;*p!=0;p+)(k二*pO;j=(-len);while(j0)k=k*10;num=num+k;)return(num);)