第1页共4页杭州电子科技大学学生考试卷(A)卷说明:请将全部答案都书写在最后页答题纸上,否则答题无效。试题一、判断题,正确打钩,错误打叉(共10分)1.字符型变量在内存中占一个字节的存储空间。2.break语句只能用在switch语句中。3.用C语言编写的源程序须经过编译连接后,生成扩展名为.exe的可执行文件,才能运行。4.p是一个指针变量,(*p)++表示p的对象加1。5.在同一个函数中变量名可以相同。6.一维数组的数组名是一个地址常量,表示第一个元素的地址。7.在printf函数中,格式符“%c”对应的输出项可以是字符也可以是整数。8.在printf函数中,格式符“%s”对应的输出项要求是字符串的地址。9.如果s1、s2是两个字符串,可以用库函数strcpy(s1,s2)比较这两个字符串的大小。10.定义函数时,函数必须有返回值。试题二、单选题,根据题目从A、B、C、D中选择一个正确的选项(共10分)1.对变量定义及初始化为:FILE*p=fopen(d:\\aa.txt,w);intx=38;floata=2.5;chars='b';能正确的将各变量值输出到文件的是()。A、fputs(x,a,s,p);B、fprintf(p,”%d,%f,%c”,x,a,s);C、fputc(x,a,s,p);D、fscanf(p,”%d,%f,%c”,&x,&a,&s);2.定义语句:inta[3][2]={0,1,2,3,4,5};则下列对a数组元素正确引用的是()。A、a[3][2]B、a[2][a[0][0]]C、a[2][3]D、a[2][2]3.在C语言中,当循环体由多条语句组成时,需要用括号括起来,使用的是()。A、方括号B、圆括号C、花括号D、尖括号4.函数定义如下:voidfun(int*s,intc){*s=5;c=5;}如果在主函数中程序段有:inta=1,b=6,*q=&b;fun(q,a);则调用fun函数后,变量a,b的值分别是()。A、1,6,B、5,5C、1,5D、5,65.每个字符串尾有一个字符串结束符,表示字符串的终止。下面哪个是字符串的结束符()。A、'\0'B、\0C、0D、'0'6.如果对变量的定义为:charc1,c2,s='b';则执行“c1=s++;c2=++s;printf(%c,%c,%c,c1,c2,s);”语句后,c1,c2和s的输出值是()。A、b,c,dB、b,d,dC、d,e,fD、b,d,b7.定义chars[4]={Max},t;执行下面语句段后输出结果是()。t=s[0];s[0]=s[1];s[1]=s[2];s[2]=s[3];s[3]=t;printf(%s,%c\n,s,s[3]);A、axM,\0B、axM,MC、axM,MD、ax,M8.下面的程序段中,循环体执行次数是()。(需修改,不是很好,因为指针t不再指向字符串)chara[5],*t=”boy”,*s=a;while(*s=*t){s++;t++;}A、0次B、3次C、4次D、无数次9.f函数定义如下,f(f(3))的值是()。intf(intx){staticintk=0;x+=k--;returnx;}A、2B、3C、4D、510.函数定义如下:voidfun(intx,inty,int*a,int*b){*a=x+y;*b=x*y;}能够正确调用fun函数的是()。其中m、n是已经定义过的int型变量。A、fun(5,8,m,n);B、fun(5,8,&m,&n);C、fun(5,8,*m,*n);D、fun(m,n,5,8);试题三、程序阅读,写出运行结果(每小题4分,共12分)1.#includestdio.hvoidmain(){intj,k,s1,s2;s1=s2=0;for(j=1;j=5;j++){s1++;for(k=1;k=j;k++)s2++;}printf(%d%d,s1,s2);}2.#includestdio.hvoidmain(){inti,s,j,a[3][2]={0,1,2,3,4,5};for(i=0;i2;i++){for(s=0,j=0;j3;j++)s+=a[j][i];printf(%d#,s);}}3.#includestdio.hvoidswap1(inta[])考试课程C语言程序设计考试日期2009年6月日成绩课程号教师号任课教师姓名考生姓名学号(8位)年级专业座位号第2页共4页{intt;t=a[0];a[0]=a[1];a[1]=t;}voidswap2(inta,intb){intt;t=a;a=b;b=t;}voidmain(){intx[2]={1,5};inty[2]={1,5};swap1(x);swap2(y[0],y[1]);printf(x:%d%d\n,x[0],x[1]);printf(y:%d%d\n,y[0],y[1]);}试题四、程序阅读,回答列在程序后面的问题(每小题2分,共18分)程序1.#includestdio.hvoidmain(){intk,a,m;printf(输入一个整数:\n);scanf(%d,&a);m=a/2;for(k=2;k=m;k++)if(a%k==0){printf(%d#,k);break;//第10行}printf(%d,k);}(1)程序运行时输入6,写出运行后的输出结果。(2)将第10行改为“continue;”后,程序运行时输入6,写出运行后的输出结果。(3)将第10行删除后,程序运行时输入6,写出运行后的输出结果。程序2.#includestdio.h#defineN6voidmain(){inta[N]={22,15,3,6,13,4};inti,j,t,s;//第5行for(i=0;iN-2;i+=2)//第6行if(a[i+1]a[i]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;iN;i++)printf(%d,a[i]);}(4)写出程序运行后的输出结果。(5)将第6行改为for(i=0;iN-1;i+=1)写出程序运行时的输出结果。(修改过)(6)以上面小题(5)的修改为基础,再在第5行与第6行之间插入语句“for(s=1;sN;s++)”后,写出程序运行后的输出结果。程序3.#defineN32#includestdio.hvoidmain(){chars[N];intn,fun(char*s,inta,intn);fun(s,2,35);//第6行printf(%s\n,s);}voidfun(char*s,inta,intn){staticcharb[]={'0','1','2','3','4','A','B','C','D','E'};inti,k,j;chart;for(i=0;n!=0;i++){k=n%a;s[i]=b[k];n=n/a;}s[i]='\0';for(k=0,j=i-1;kj;k++,j--){t=s[k];s[k]=s[j];s[j]=t;}return;}(7)写出程序运行后的输出结果。(8)将第6行改为“fun(s,8,13)”后;写出程序运行后的输出结果。(9)将第6行改为“fun(s,10,526)”后;写出程序运行后的输出结果。试题五、程序填空题,按程序功能在划线部分填适当的内容(每空2分,共20分)1.程序功能:输入n和n个实数,输出他们的最大值和最小值。运行示例:输入n:5↙输入5个实数:456.878.013-12↙max=78.0,min=-12.0【程序】#includestdio.hvoidmain()第3页共4页{doublex,a,b;inti,n;printf(输入n:);scanf(%d,&n);printf(输入%d个实数:,n);scanf(%lf,&x);1for(i=0;2;i++){scanf(%lf,&x);if(ax)a=x;3}printf(max=%.1f,min=%.1f\n,a,b);}2.程序功能功:输入2个正整数m和n(1=mn=500),统计并输出m和n之间的素数的个数以及这些素数的和。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。运行示例:输入mn:210↙count=4,sum=17【程序】#includestdio.h#includemath.hintprime(intm){inti,n;if(m==1)4n=sqrt(m);for(i=2;i=n;i++)if(m%i==0)return0;5}voidmain(){intcount=0,i,m,n,sum=0;printf(输入mn:);scanf(%d%d,&m,&n);for(i=m;i=n;i++)if(6){sum+=i;count++;}printf(count=%d,sum=%d\n,count,sum);}3.程序功能功:输入当前某一时刻的时间(格式为:时:分:秒),输出加一秒后的新时间。运行示例1:输入时间:15:18:28↙新时间:15:18:29运行示例2:输入时间:15:18:59↙新时间:15:19:0运行示例3:输入时间:23:59:59↙新时间:0:0:0【程序】#includestdio.hstructdate{inta,b,c;};voidmain(){7printf(“输入时间:”);8x.c++;if(x.c==60){x.c=0;x.b+=1;if(x.b==60){x.b=0;9if(x.a==24)x.a=0;}}printf(“新时间:”);10}试题六、编程序(共30分)1.(8分)输入一个实数x,如果x大于0,则计算并输出它的平方根,否则计算并输出它的立方数。2.(10分)输入某班级学生参加某课程的考试成绩,以-1作为成绩输入结束(班级人数最多不超过200人),要求统计并输出参加考试人数、班级总分、班级平均分及高于班级平均分的人数。3.(12分)按要求编程序,(1)定义函数fact(n),计算算式:n321的和,函数返回值类型是int型。(2)定义主函数main(),输入正整数m,计算并输出下列算式的值。要求调用函数fact(n)。ms211321121111第4页共4页考试座位号:C语言程序设计答题纸(A)2009.6考试课程C语言程序设计考试日期2009年6月成绩任课教师姓名上课时间姓名学号(8位)年级专业注意:1.请在上课时间栏注明星期几。2.若答案书写不下,请写在答题纸反面并注明题号。试题一、判断题,正确打钩,错误打叉(共10分)1.2.3.4.5.6.7.8.9.10.试题二、单选题,根据题目从A、B、C、D中选择一个正确的选项(共10分)1.2.3.4.5.6.7.8.9.10.试题三、程序阅读,写出运行结果(共12分)1.2.3.试题四、程序阅读,回答程序后的问题(每小题2分,共18分)(1)(2)(3)(4)(5)(6)(7)(8)(9)试题五、程序填空题,按程序功能,在划线部分填写适当的内容(每空2分,共20分)1.2.3.4.5.6.7.8.9.10.试题六、编程序(共30分)1.2.3、