电子科技大学C语言程序设计期末考试试卷1及答案_第1页
电子科技大学C语言程序设计期末考试试卷1及答案_第2页
电子科技大学C语言程序设计期末考试试卷1及答案_第3页
电子科技大学C语言程序设计期末考试试卷1及答案_第4页
电子科技大学C语言程序设计期末考试试卷1及答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE2第页共4页PAGE电子科技大学学生考试卷(A)卷考试课程C语言程序设计考试日期2007年6月日成绩课程号上课时间任课教师姓名考生姓名学号(8位)年级专业说明:请将全部答案都书写在最后页答题纸上,否则答题无效。试题一、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共16分)1.有定义floata=1,z;intb=3;printf("%.2f",a+b/2);的输出值是()。A、1 B、 2 C、 2.00 D、2.502.判断char型变量c为数字字符的正确表达式为()。A、 ‘0’<=c<=’9’ B、 ‘0’<=c&&c<=’9’C、 c>=’0’||c<=’9’ D、 c>=0&&c<=93.假设变量x为int型、k为char型,下列语句片段中,无语法错误的是()。A、switch(x){casex>=90:putchar('A');casex<60: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.下面程序段的输出结果是()。#include<stdio.h>voidfun(inta,intb,intc,int*px,int*py){ *px=a;if(*px>b)*px=b; if(*px>c)*px=c; if(a>b)*py=a; else*py=b; if(*py<c)*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,2 B、2,9C、4,9 D、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、'\n'B、'\0'C、'\t'D、'-1'14.如果指针p指向x,则*p++表示的是()。A、对指针p加1B、对p的对象加1C、对变量x加1D、对指针p和变量x各加115.下面各叙述中不正确的是()。A、变量名sum和Sum代表两个不同的变量。B、若变量已正确定义,表达式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]);first,second,*thirdB、first,econd+1,*thirdC、first,econd,*tD、first,econd,t试题二、按题目的意思,写出正确的内容。(共12分)1.C程序中的“真”和“假”是如何表示?2.读程序,回答问题#include<stdio.h>#defineMAX7voidmain(){inti,a[MAX]={5,8,-7,5,3,0,7},c;for(i=0;i<MAX;i++){c=a[i];/*第8行*/a[i]=a[MAX-i-1];a[MAX-i-1]=c;/*第10行*/}for(i=0;i<MAX;i++)printf(“%d”,a[i]);}问题1.程序运行后的输出结果为是:。问题2.将for循环中的i<MAX改为i<MAX/2后,输出结果为:。问题3.删除第8行,将第10行a[MAX-i-1]=c改为a[MAX-i-1]=a[i],for循环中仍然是i<MAX则输出结果为:。3.定义一个可以表示日期(年、月、日)的结构体数据类型date,并用该类型定义一个变量z同时为变量初始化,初始化年、月、日的值分别2007、6、28。4.写出调用函数g(4)的输出结果。intg(intn){if(n==2||n==1)returnn;elsereturng(n-2)+g(n-1);}试题三、读程序写出程序执行结果(共24分)1.阅读下列程序,并写出程序执行结果。#include<stdio.h>intf(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.阅读下列程序,并写程序执行结果。#include<stdio.h>voidmain(){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;}}}3.阅读下列程序,并写出程序执行结果。#include<stdio.h>voidmain(){inta=1,b=1;intf(inty,intm,intd);a=f(1976,4,25);printf("#%d#\n",a);}intf(inty,intm,intd){intk,flag,n;inttab[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;k<m;k++)n+=tab[flag][k];returnn;}4.阅读下面程序,在提供的A~D四个答案中,按提问挑选正确答案。#include<stdio.h>voidsort(int*a,intn){inti,j,t; for(i=1;i<n;i++)for(j=0;j<n-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};scanf("%d%d",&r,&n); sort(a,10);/*第13行*/for(i=0;i<10;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,5.试题五、程序填空,按程序完成的功能,在划线部分填写适当的内容。(共18分)1.程序功能:在数组a中已存储10个数,输入查找数x,在数组a中查找x,如果在数组中找到,则输出它在数组中的下标(元素号),如果没有找到,则输出“Notbeenfound.”#include<stdio.h>#defineN10voidmain(){inta[N]={3,-7,8,23,45,60,78,23,-33,-76},i,x;intflag=0;printf("inputxtolookfor:\n");scanf("%d",&x);for(i=0;i<N;i++) if(1){printf("find,at:%d\n",i); flag=1;}if(2)printf("Notbeenfound.\n");}2.程序功能:输入班级50个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕输出,同时将高于平均成绩的分数写到d:\temp\aa.txt文件中。【程序】#include<stdio.h>#defineN50voidmain(){floatscore[N],sum,ave;FILE*fp;inti,count; fp=fopen(3);printf("请输入学生成绩\n");for(i=0,sum=0;i<N;i++){scanf("%f",&score[i]);sum+=score[i];}ave=4;5;for(i=0;i<N;i++)if(score[i]>=ave){ count++;6; }printf("平均成绩=%.2f,高于平均分人数=%d\n",ave,count); fclose(fp);}3.程序功能:假设a数组中数据由小到大顺序存放,以下程序把a数组中相同的数据删除得只剩一个,然后以每行3个数的形式输出a数组的数据。【程序】#include<stdio.h>#defineN12voidmain(){ inta[N]={3,3,4,4,4,6,9,9,23,23,90,90}; inti,j,n; n=N; i=N-1; while(i>=0) { if(a[i]==a[i-1]) { for(j=i;j<n;j++) a[j-1]=7; n--; } 8; } for(i=0;i<n;i++) {printf("%4d",a[i]); if((i+1)%3==0)9; }}试题六编程序(共30分)1.输入x,按下式计算y值并输出。2.输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。如:153=13+53+333.在主函数中计算1+1/2!+1/3!……1/n!的和并输出。其中n的值通过程序输入。要求将计算阶乘的运算定义成函数。2007C程序设计期末试卷(A)解答试题一、单选题(20分,每小题1分)CBBBA,AABBD,BCAAB,DBDBD试题二、按题目的意思,写出正确的内容(10分,每小题2分)非0为真,0为假(1)18(2)改变,24(该题2个问题中的“S的”应该删除。问题表达不够清楚)。(1)58–75307(2)7035-785或703(3)70353074.structdate{intx,y,z}z={2007,6,28};(成员名可以是其它)或structdate{intx,y,z};structdatez;z.x=2007;z.y=6;z.z=28;5.5试题三、读程序写出程序执行结果(每小题5分)1.2#0#2.bde3.#116#318#202#4.D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论