2010C程序设计期末试卷.doc_第1页
2010C程序设计期末试卷.doc_第2页
2010C程序设计期末试卷.doc_第3页
2010C程序设计期末试卷.doc_第4页
2010C程序设计期末试卷.doc_第5页
全文预览已结束

下载本文档

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

文档简介

杭州电子科技大学学生考试卷( A )卷 考试课程C语言程序设计考试日期2007 年6月 日成绩课 程 号上课时间任课教师姓名考生姓名学号(8位)年级专业说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。试题一、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共16分)1. 有定义float a=1, z ; int b=3; printf (%.2f,a+b/2) ;的输出值是( )。A、1B、2C、2.00D、2.502. 判断char型变量c为数字字符的正确表达式为( )。A、0=c=9B、0=c&c=0|c=0&c=90: putchar(A); case x60: putchar(E); B、 switch(x) case 1+2: k=A; case 2*4: k=B; C、 switch(x) case 2+x: k=x-2; case 3*x: k=x+3; default: k=0; D、 switch(x) case 3.5: k=0.5*x; case 7.8: k=8*x; default: k=0; 4. 若有float a=2.5,b=6.3, *pa=&a; *pa*=3;pa=&b; 则正确的是( )。 A、pa的值是2.5 ; B、*pa的值是6.3 C、*pa的值是7.5 D、 pa的值是6.3;5. 设x和y均为int型变量,则语句“x+=y;y=xy;x =y;”的功能是( )。A、交换x和y的值 B、把x和y按从大到小排列C、把x和y按从小到大排列D、无确定结果6.若有 char c1, c2, s = b ; 连续执行下面语句后,c1,c2和s的输出值应是( )。 c1 = s+ ; c2=+s ; printf(%c,%c,%c,c1,c2,s);A、b,d,d B、 b,c,d C、d,e,f D、 b,d,b 7. 若有变量定义 int x=3,*p;,则下面语句不正确的是( )。A、 p=&(x+1); B、p=&x; C、 p=&x+1; D、p=&x, p+;8.下面程序段的输出结果是( )。#includevoid fun(int a, int b,int c, int *px, int *py) *px=a; if (*pxb) *px=b; if (*pxc) *px=c; if (ab) *py=a; else *py=b; if (*py=a&ch=a&ch=a&cha&chz)? ch-32: ch;12. 下面是关于break、continue语句的叙述,其中正确的说法是( )。 A、break、continue功能相同 B、break只能出现在循环体中 C、continue只能出现在循环体中 D、continue的功能是跳出循环体13C语言中,每个字符串的末尾都有一个字符串的结束符,表示字符串的终止。下列哪一个字符是字符串的结束符( )。A、n B、0 C、t D、-114如果指针p指向x,则*p+表示的是( )。 A、对指针p加1 B、对p的对象加1 C、对变量x加1 D、对指针p和变量x各加115下面各叙述中不正确的是( )。A、变量名sum和Sum代表两个不同的变量。 B、若变量已正确定义,表达式 x + y = z是一个合法的赋值表达式。 C、do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。 D、不同类型的变量在内存中占用存储空间的大小不一样。16. char *s =first,second,third;printf(%s,%s,%cn, s0, s1+1,*s2);A、 first,second,*third B、first, econd+1,*thirdC、first, econd, *t D、first, econd, t试题二、按题目的意思,写出正确的内容。(共12分) 1C程序中的 “真”和“假”是如何表示? 2 读程序,回答问题#include #define MAX 7void main( ) int i,aMAX=5,8,-7,5,3,0,7,c; for(i=0;iMAX;i+) c=ai; /* 第8行 */ ai=aMAX-i-1; aMAX-i-1=c; /* 第10行 */ for(i=0;iMAX;i+) printf(“%d ”,ai); 问题1.程序运行后的输出结果为是: 。 问题2.将for循环中的iMAX改为iMAX/2后,输出结果为: 。问题3.删除第8行,将第10行aMAX-i-1=c改为aMAX-i-1=ai,for循环中仍然是iMAX则输出结果为: 。3定义一个可以表示日期(年、月、日)的结构体数据类型date,并用该类型定义一个变量z同时为变量初始化,初始化年、月、日的值分别2007、6、28。 4写出调用函数g(4)的输出结果。int g(int n) if(n=2|n=1) return n; else return g(n-2)+g(n-1); 试题三、读程序写出程序执行结果(共24分)1. 阅读下列程序,并写出程序执行结果。#include int f(int m, int n) int c= 0; for( ; m != 0 ; m=m/10 ) if(m%10 = n) c+; return c;void main( ) printf(%d#, f(30303, 0); printf(%d#, f(21212, 3);2阅读下列程序,并写程序执行结果。 #include void main( ) int x,i; for( i = 1,x=1; i = 3; i+) x=x+i; switch (x) case 1: putchar(a); break; case 2: putchar(b); break; case 3: putchar(c); break; case 4: putchar(d); break; default: putchar(e); break; 3阅读下列程序,并写出程序执行结果。#include void main ( ) int a = 1,b=1; int f(int y,int m, int d); a=f(1976, 4, 25); printf (#%d#n, a);int f(int y,int m, int d) int k, flag,n; int tab 213= 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 += tab flagk; return n; 4阅读下面程序,在提供的AD四个答案中,按提问挑选正确答案。#include void sort(int *a,int n) int i,j,t;for(i = 1; i n; i+) for(j=0;jaj+1 ) t = aj; aj = aj+1; aj+1 = t; void main( ) int i, r,n, a10=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, ai); (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(&a1, 8)后; 则输出( )。供选择的AD四个答案如下: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,如果在数组中找到,则输出它在数组中的下标(元素号),如果没有找到,则输出“Not been found.”#include #define N 10void main() int aN=3,-7,8,23,45,60,78,23,-33,-76,i,x; int flag=0; printf(input x to look for:n); scanf(%d,&x); for(i=0;iN;i+) if( 1 ) printf(find, at : %d n,i ); flag=1; if ( 2 ) printf(Not been found.n); 2程序功能:输入班级50个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕输出,同时将高于平均成绩的分数写到d:tempaa.txt文件中。【程序】#include #define N 50void main() float scoreN,sum,ave; FILE *fp; int i,count; fp=fopen( 3 ); printf(请输入学生成绩n); for(i=0,sum=0; iN;i+) scanf(%f,&scorei); sum+=scorei; ave= 4 ; 5 ; for(i=0;i=ave) count+; 6 ; printf(平均成绩=%.2f,高于平均分人数=%dn,ave,count); fclose(fp); 3程序功能:假设a数组中数据由小到大顺序存放,以下程序把a数组中相同的数据删除得只剩一个,然后以每行3个数的形式输出a数组的数据。【程序】#include#define N 12void main()int aN=3,3,4,4,4,6,9,9,23,23,90,90;int i,j,n;n=N;i=N-1;while( i=0 ) if (ai=ai-1)for(j=i;jn;j+)aj-1= 7 ; n-; 8 ; for(i=0;in;i+) printf(%4d,ai); if (i+1)%3=0) 9 ; 试题六 编程序 (共30分)1输入x,按下式计算y值并输出。 2输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。如:153=13+53+33 3在主函数中计算1+1/2!+1/3!1/n!的和并输出。其中n的值通过程序输入。要求将计算阶乘的运算定义成函数。2007C程序设计期末试卷(A)解答试题一、单选题(20分,每小题1分)CBBBA,AABBD,BCAAB,DBDBD试题二、按题目的意思,写出正确的内容(10分,每小题2分)1 非0为真,0为假2 (1)18 (2) 改变,24 (该题2个问题中的“S的”应该删除。问题表达不够清楚)。3 (1)5 8 7 5 3 0 7 (2) 7 0 3 5 -7 8 5或7 0 3 (3)7 0 3 5 3 0 74. struct date int x,y,z z=2007,6,28; (成员名可以是其它) 或struct date int x,y,z ; struct date z; z.x=2007;z.y=6;z.z=28; 5. 5 试题三、读程序写出程序执行结果(每小题5分) 12#0# 2. bde 3. #116#318#202# 4. DCAB 试题四、根据程序功能,填空完成程序所规定的功能 1scanf(%d,&x); 2. ai=x 3flag=0 4. fopen(d:aa.txt,w); 5sum/50 或sum/N6count=0; 7fprintf(fp,%f ,scorei); 8.aj-1=aj; 9. n- 10. if(i+1)%3=0) printf(n); 试题五、编程序 1(9分)、2(10分)、3(11分)1#include#includevoid main() float x,y;scanf(%f, &x);if (x=0&x=8) y=x+2*sqrt(x)+10;else y=x-3*pow(x,6)-9;printf(%f,y);2#include#includevoid mai

温馨提示

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

评论

0/150

提交评论