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

下载本文档

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

文档简介

杭州电子科技大学学生考试卷( A )卷 考试课程C语言程序设计考试日期2007 年6月 日成绩课 程 号上课时间任课教师姓名考生姓名学号(8位)年级专业说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。试题一、单选题,根据题目从A、B、C、D中选择一个正确的选项(共20分)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=9C、0=c&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=x-y; 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、0 B、0 C、0 D、014如果指针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, t17字符串ab7*&nAB的长度是( ) A、8 B、9 C、10 D、 1118程序中调用了库函数sqrt,必须包含头文件( )。 A、 string.hB、stdlib.hC、ctype.hD、math.h19若结构体变量x定义如下,下面能给变量x输入数据的正确语句是( )struct cx float rl; float ie; 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 读程序,回答问题#define M 3 #define S M+5 void main() printf(%d,S*3); 问题1. 输出值是多少?问题2. 如果将程序中的 “#define S M+5”改为#define S (M+5),则输出值是否改变,如果改变则输出值是多少?3 读程序,回答问题#include #define MAX 7void main( ) int i,aMAX=5,8,-7,5,3,0,7,c; for(i=0;iMAX;i+) /* 第7行 */ c=ai; /* 第8行 */ ai=aMAX-i-1; aMAX-i-1=c; /* 第10行 */ for(i=0;iMAX;i+) printf(“%d ”,ai); 问题1.程序运行后的输出结果是: 。 问题2.将第7行for循环中的iMAX改为iMAX/2后,输出结果是: 。问题3.删除第8行,将第10行aMAX-i-1=c改为aMAX-i-1=ai,第7行for循环中仍然是iMAX则输出结果是: 。4定义一个可以表示日期(年、月、日)的结构体数据类型date,并用该类型定义一个变量z,同时为变量z初始化(初始化年、月、日的值分别2007、6、28)。 5写出调用函数g(4)的输出结果。int g(int n) if(n=2|n=1) return n; else return g(n-2)+g(n-1); 试题三、读程序写出程序执行结果(共20分)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 ,b ,n; int f(int y,int m, int d); a=f(1976, 4, 25); b=f(1976, 11,13); n=b-a; printf (#%d#%d#%d#n, a,b,n);int f(int y,int m, int d) int k, flag,n; int t 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 += t 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;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,试题四、程序填空,按程序功能,在划线部分填写适当的内容。 (共20分)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); 1 ; for(i=0;iN;i+) if( 2 ) printf(find, at : %d n,i ); flag=1; if ( 3 ) printf(Not been found.n); 2程序功能:输入班级50个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕上输出,同时将高于平均分的成绩写到d: aa.txt文件中。【程序】#include #define N 50void main() float scoreN,sum,ave; FILE *fp; int i,count; fp= 4 ; printf(请输入学生成绩n); for(i=0,sum=0; iN;i+) scanf(%f,&scorei); sum+=scorei; ave= 5 ; 6 ; for(i=0;i=ave) count+; 7 ; 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,9

温馨提示

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

评论

0/150

提交评论