杭州电子科技大学学生考试卷( A )卷 考试课程 课 程 号 考生姓名 C语言程序设计 上课时间 学号(8位) 考试日期 2007 年6月 日 任课教师姓名 年级 专业 成绩 说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。 试题一、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共16分) 1. 有定义float a=1, z ; int b=3; printf (\的输出值是( )。 A、1 B、 2 C、 2.00 D、2.50 2. 判断char型变量c为数字字符的正确表达式为( )。 A、 ?0?<=c<=?9? B、 ?0?<=c&&c<=?9? C、 c>=?0?||c<=?9? D、 c>=0&&c<=9 3. 假设变量x为int型、k为char型,下列语句片段中,无语法错误的是( )。 A、 switch(x){ case x>=90: putchar('A'); case x<60: 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(\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.下面程序段的输出结果是( )。 #include
第 1 页 共 4页
B、若变量已正确定义,表达式 x + y = z是一个合法的赋值表达式。
C、do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。 D、不同类型的变量在内存中占用存储空间的大小不一样。 16. char *s[ ]={\
printf(\A、 first,second,*third B、first, econd+1,*third C、first, econd, *t D、first, econd, t 试题二、按题目的意思,写出正确的内容。(共12分)
1.C程序中的 “真”和“假”是如何表示? 2. 读程序,回答问题 #include
{ int i,a[MAX]={5,8,-7,5,3,0,7},c; for(i=0;i { c=a[i]; /* 第8行 */ a[i]=a[MAX-i-1]; a[MAX-i-1]=c; /* 第10行 */ } for(i=0;i 问题1.程序运行后的输出结果为是: 。 问题2.将for循环中的i 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 for( ; m != 0 ; m=m/10 ){ if(m == n) c++; } return c; } void main( ){ printf(\ printf(\} 2.阅读下列程序,并写程序执行结果。 #include 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 int f(int y,int m, int d); a=f(1976, 4, 25); printf (\} int f(int y,int m, int d) { int k, flag,n; int tab [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@0==0; for ( n=d,k=1; k 第 2 页 共 4页 return n; } 4.阅读下面程序,在提供的A~D四个答案中,按提问挑选正确答案。 #include if( a[j]>a[j+1] ){ t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } void main( ) { int i, r,n, a[10]={4,6,-3,9,0,-4,8,5,1,7}; scanf(\ sort(a, 10); /* 第13行 */ for(i = 0; i < 10; i++) printf(\} (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,如果在数组中找到,则输出它在数组中的下标(元素号),如果没有找到,则输出“Not been found.” #include { int a[N]={3,-7,8,23,45,60,78,23,-33,-76},i,x; int flag=0; printf(\ scanf(\ for(i=0;i flag=1; } if ( 2 ) printf(\ } 2.程序功能:输入班级50个学生的数学成绩,计算平均分并统计高于平均分的人数在屏幕输出,同时将高于平均成绩的分数写到d:\\temp\\aa.txt文件中。 【程序】 #include { float score[N],sum,ave; FILE *fp; int i,count; fp=fopen( 3 ); printf(\请输入学生成绩\\n\ for(i=0,sum=0; i ave= 4 ; 5 ; for(i=0;i 6 ; } printf(\平均成绩=%.2f,高于平均分人数=%d\\n\ fclose(fp); } 3.程序功能:假设a数组中数据由小到大顺序存放,以下程序把a数组中相同的数据删除得只剩一个,然后以每行3个数的形式输出a数组的数据。 【程序】 #include { int a[N]={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 (a[i]==a[i-1]) 第 3 页 共 4页 试题五、编程序 1.(9分)、2.(10分)、3.(11分) { for(j=i;j a[j-1]= 7 ; n--; } 8 ; } for(i=0;i { printf(\ if ((i+1)%3==0) 9 ; } } 试题六 编程序 (共30分) 1.输入x,按下式计算y值并输出。 y???x?2x2?100?x?8?x?3x3?9x?0或x?8 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 7 4. 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分) 1.2#0# 2. bde 3. #116#318#202# 4. DCAB 试题四、根据程序功能,填空完成程序所规定的功能 1.scanf(\ 2. a[i]==x 3.flag==0 4. fopen(\ 5.sum/50 或sum/N6.count=0; 7.fprintf(fp,\ \ 8. a[j-1]=a[j]; 9. n-- 10. if((i+1)%3==0) printf(\ 1.#include 2.#include { int x,a,b,c; for(x=100;x<=999;x++) { a=pow(x/100,3); b=pow(x/10,3); c=pow(x,3); if (a+b+c==x) printf(\ } } 3.#include { float s=0; int i,n; float f(int); scanf(\ for(i=1;i<=n;i++) s+=1/f(i); printf(\} float f(int i) { float t=1; t*=i; return t; } 第 4 页 共 4页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2010C程序设计期末试卷在线全文阅读。
相关推荐: