您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 2007C程序设计期末试卷(A)
第页共5页1杭州电子科技大学学生考试卷(A)卷说明:请将全部答案都书写在最后页答题纸上,否则答题无效。试题一、单选题,根据题目从A、B、C、D中选择一个正确的选项(共20分)1.有定义floata=1,z;intb=3;则printf(%.2f,a+b/2);的输出值是()。A、1B、2C、2.00D、2.502.判断char型变量c为数字字符的正确表达式为()。A、‘0’=c=’9’B、‘0’=c&&c=’9’C、0=c&&c=9D、c=0&&c=93.假设变量x为int型、k为char型,下列语句片段中,无语法错误的是()。A、switch(x){casex=90:putchar('A');casex60:putchar('E');}B、switch(x){case1+2:k='A';case2*4:k='B';}C、switch(x){case2+x:k=x-2;case3*x:k=x+3;default:k=0;}D、switch(x){case3.5:k=0.5*x;case7.8:k=8*x;default:k=0;}4.若有floata=2.5,b=6.3,*pa=&a;执行语句“*pa*=3;pa=&b”后;则正确的是()。A、pa的值是2.5;B、*pa的值是6.3C、*pa的值是7.5D、pa的值是6.3;5.设x和y均为int型变量,则语句“x+=y;y=x-y;x-=y;”的功能是()。A、交换x和y的值B、把x和y按从大到小排列C、把x和y按从小到大排列D、无确定结果6.若有charc1,c2,s='b';连续执行下面语句后,c1,c2和s的输出值应是()。c1=s++;c2=++s;printf(%c,%c,%c,c1,c2,s);A、b,d,dB、b,c,dC、d,e,fD、b,d,b7.若有变量定义intx=3,*p;,则下面不合法的是()。A、p=&(x+1);B、p=&x;C、p=&x+1;D、p=&x,p++;8.下面程序段的输出结果是()。#includestdio.hvoidfun(inta,intb,intc,int*px,int*py){*px=a;if(*pxb)*px=b;if(*pxc)*px=c;if(ab)*py=a;else*py=b;if(*pyc)*py=c;}voidmain(){intm=4,n=2,s=9,a=3,b=5;fun(m,n,s,&a,&b);printf(%d,%d,a,b);}A、4,2B、2,9C、4,9D、3,59.若数组定义为inta[10],i;与a[i]=100等价的赋值表达式是()。A、a+i=100B、*(a+i)=100C、(a+i)=100D、&a[i]=10010.判断下面的循环体执行多少次()。i=8;k=10;while(i!=8)i=k--;A、8次B、10次C、无数次D、0次11.下面语句的功能是将变量ch中小写字母转换为大写字母,如果变量ch中的字符不是小写字符,则保持原来字符不变,正确的是()。A、if(ch='a'&ch='z')ch=ch-32;B、if(ch='a'&&ch='z')ch=ch-32;C、ch=(ch='a'&&ch='z')?ch-32:'';D、ch=(ch'a'&&ch'z')?ch-32:ch;12.下面是关于break、continue语句的叙述,其中正确的是()。A、break、continue功能完全相同B、break只能出现在循环体中C、continue只能出现在循环体中D、continue的功能是跳出循环体13.C语言中,每个字符串都有一个字符串结束符,表示字符串的终止。下列哪个是字符串的结束符()。A、'\0'B、\0C、0D、'0'14.如果指针p指向x,则*p++表示的是()。A、对指针p加1B、对p的对象加1C、对变量x加1D、对指针p和变量x各加115.下面四个叙述,其中不正确的是()。A、变量名sum和Sum代表两个不同的变量。考试课程C语言程序设计考试日期2007年6月日成绩课程号上课时间任课教师姓名考生姓名学号(8位)年级专业第页共5页2B、若变量已正确定义,表达式x+y=z是一个合法的表达式。C、do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。D、不同类型的变量在内存中占用存储空间的大小可以不一样。16.定义指针数组char*s[]={first,second,third};则printf(%s,%s,%c\n,s[0],s[1]+1,*s[2]);输出是()。A、first,second,*thirdB、first,econd+1,*thirdC、first,econd,*tD、first,econd,t17.字符串ab7**&\nAB的长度是()A、8B、9C、10D、1118.程序中调用了库函数sqrt,必须包含头文件()。A、string.hB、stdlib.hC、ctype.hD、math.h19.若结构体变量x定义如下,下面能给变量x输入数据的正确语句是()structcx{floatrl;floatie;}x;A、scanf(%f%f,x.rl,x.ie);B、scanf(%f%f,&x.rl,&x.ie);C、scanf(%f%f,cx.x.rl,cx.x.ie);D、scanf(%f%f,&cx.x.rl,&cx.x.ie);20.一维数组名作为函数的实参时,传递的是()A、该数组的长度B、该数组的元素个数C、该数组中各元素的值D、该数组第一个元素的地址试题二、按题目的意思,写出正确的内容。(共10分)1.C程序中逻辑表达式“真”和“假”的值是如何表示?2.读程序,回答问题#defineM3#defineSM+5voidmain(){printf(%d,S*3);}问题1.输出值是多少?问题2.如果将程序中的“#defineSM+5”改为#defineS(M+5),则输出值是否改变,如果改变则输出值是多少?3.读程序,回答问题#includestdio.h#defineMAX7voidmain(){inti,a[MAX]={5,8,-7,5,3,0,7},c;for(i=0;iMAX;i++)/*第7行*/{c=a[i];/*第8行*/a[i]=a[MAX-i-1];a[MAX-i-1]=c;/*第10行*/}for(i=0;iMAX;i++)printf(“%d”,a[i]);}问题1.程序运行后的输出结果是:。问题2.将第7行for循环中的iMAX改为iMAX/2后,输出结果是:。问题3.删除第8行,将第10行a[MAX-i-1]=c改为a[MAX-i-1]=a[i],第7行for循环中仍然是iMAX则输出结果是:。4.定义一个可以表示日期(年、月、日)的结构体数据类型date,并用该类型定义一个变量z,同时为变量z初始化(初始化年、月、日的值分别2007、6、28)。5.写出调用函数g(4)的输出结果。intg(intn){if(n==2||n==1)returnn;elsereturng(n-2)+g(n-1);}试题三、读程序写出程序执行结果(共20分)1.阅读下列程序,并写出程序执行结果。#includestdio.hintf(intm,intn){intc=0;for(;m!=0;m=m/10){if(m%10==n)c++;}returnc;}voidmain(){printf(%d#,f(30303,0));printf(%d#,f(21212,3));}2.阅读下列程序,并写程序执行结果。#includestdio.hvoidmain(){intx,i;for(i=1,x=1;i=3;i++){x=x+i;switch(x){case1:putchar('a');break;case2:putchar('b');break;case3:putchar('c');break;case4:putchar('d');break;default:putchar('e');break;第页共5页3}}}3.阅读下列程序,并写出程序执行结果。#includestdio.hvoidmain(){inta,b,n;intf(inty,intm,intd);a=f(1976,4,25);b=f(1976,11,13);n=b-a;printf(#%d#%d#%d#\n,a,b,n);}intf(inty,intm,intd){intk,flag,n;intt[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31},};flag=y%4==0&&y%100!=0||y%400==0;for(n=d,k=1;km;k++)n+=t[flag][k];returnn;}4.阅读下面程序,在下面提供的A~D四个选项中,按后面提问挑选正确选项。#includestdio.hvoidsort(int*a,intn){inti,j,t;for(i=1;in;i++)for(j=0;jn-i;j++)if(a[j]a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}voidmain(){inti,r,n,a[10]={4,6,-3,9,0,-4,8,5,1,7};sort(a,10);/*第13行*/for(i=0;i10;i++)printf(%d,,a[i]);}(1)程序运行时,输出()。(2)若将第13行语句sort(a,10);改为sort(a+3,7)后;则输出()。(3)若将第13行语句sort(a,10);改为sort(a+5,0)后;则输出()。(4)若将第13行语句sort(a,10);改为sort(&a[1],8)后;则输出()。供选择的A~D四个选项:A、4,6,-3,9,0,-4,8,5,1,7,B、4,-4,-3,0,1,5,6,8,9,7,C、4,6,-3,-4,0,1,5,7,8,9,D、-4,-3,0,1,4,5,6,7,8,9,试题四、程序填空,按程序功能,在划线部分填写适当的内容。(共20分)1.程序功能:顺序查找。在数组a中已存储10个数,输入x,在数组a中查找x,如果在数组中找到,则输出它在数组中的下标(元素号),如果没找到,则输出“Notbeenfound.”#includestdio.h#defineN10voidmain(){inta[N]={3,-7,8,23,45,60,78,23,-33,-76},i,x;intflag=0;printf(inputxtolookfor:\n);1;for(i=0;iN;i++)if(2){printf(find,at:%d\n,i);flag=1;}if(3)printf(Notbeenfound.\n);}2.程序功能:输入班级50个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕上输出,同时将高于平均分的成绩写到d:\aa.txt文件中。【程序】#includestdio.h#defineN50voidmain(){floatscore[N],sum,ave;FILE*fp;inti,count;fp=4;printf(请输入学生成绩\n);for(i=0,sum=0;iN;i++){scanf(%f,&score[i]);sum+=score[i];}ave=5;第页共5页46;for(i=0;iN;i++)if(score[i]=ave){count++;7;}printf(平均成绩=%.2f,高于平均分人数=%d\n,ave,count);fclose(fp);}3.程序功能:假设a数组中数已经由小到大顺序存放,以下程序把a数组中相同的数删除得只剩一个,然后
本文标题:2007C程序设计期末试卷(A)
链接地址:https://www.777doc.com/doc-3070187 .html