2015程序设计基础期末试卷(B) 下载本文

座位号:

杭州电子科技大学学生考试卷(B)卷 考试课程 程序设计基础 课程号 考生姓名 教师号 学号(8位) 考试日期 2015年月日 任课教师姓名 年级 专业 成 绩 说明: 请将全部答案都书写在最后页答题纸上,否则答题无效。 试题一、单项选择题(每小题2分,共20分) 1.若有语句int x; float y; scanf(\,则要使x和y的值是123和456.7,从键盘上正确的输入是() A.123456.7 B.00123456.7 C.123,456.7 D.12300456.7 2. 若有定义int x; double y;,下列表达式中不合法的是( )。 A. x=12.34 B. y/=x C. x+y D. x%=y 3. 若有定义int x=10;以下表达式的值为1的是() A.0<=x<=9 B.x=10 C.x!=10 D.x 4.若有语句inti; for(i=0;i<10;i++);,则上述语句执行结束后i的值是() A.0B.9C.10D.不确定 5. 关于函数的说法正确是() A.函数调用结束后,必须返回一个值。 B. C程序可以由多个函数组成,任何函数之间可以相互调用。 C. 函数定义时可以没有形参。 D. 在函数中定义的变量可以给其他函数使用,只要用extern说明一下。 6. 若有定义int a[M][N],i,j;,则a[i][j]前有多少个数组元素() A. M*i+jB. N*i+j C. N*(i-1)+j-1D. N*i+j-1 7.以下定义一个字符数组str并对其进行初始化,有错误的是() A. char str[9]={'c',' ','p','r','o','g','r','a','m'}; B. char str[9]={'c'}; C.char str[9]={\D.char str[]={\ 8. 程序调用了库函数isalpha,必须包含头文件() A. stdio.hB. string.hC. math.h D. ctype.h 9. 若有定义int a=3,b=4,*p=&a;*p=5;p=&b,则下列说法正确的是() A. p的值是4B. *p的值是5C. *p的值是4 D.a的值是3

10.若有定义: struct student { int num; char name[10]; }stu[5],*p=stu; 下面正确的语句是() A.*p.num=1000;B. stu[2].name={\C. (p++)->num=1000;D. stu.num=1000; 试题二、程序阅读题(每题3分,共15分) 1. #include int main() { intx,y; x=3; y=4; x=++x+y++; printf(\return 0; } 2. #include int main() { int a[8]={12,8,13,16,4,7,10,11}; inti=0,sum=0; while(i<8&&a[i]%2==0){ sum+=a[i]; i++; } printf(\return 0; } 3. #include intfunc(intm,int n) { if(m%n==0) return n; else returnfunc(n,m%n); } int main() { 第1页共4页

座位号:

intx,y,t; scanf(\输入120 180 if(x int main() { int a[8]={4,3,5,8,6,2,1,7},i; inttmp=a[7]; for(i=6;i>=0;i--) a[i+1]=a[i]; a[0]=tmp; for(i=0;i<8;i++) printf(\ return 0; } 5. #include structdata { intx; int *p; }; int main() { int a=3,b=4,c=5; structdatad[3]={6,&a,7,&b,8,&c},*dt; dt=d+1; printf(\ return 0; } printf( \ return 0; } 2.程序功能:输出以下形式的杨辉三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 #include #define N 7 voidyanghui(__(4)__) { inti,j; for (i=0;i #include #define N 4 struct student { int no; char name[20]; double score[3]; double sum; }; int main() { (7) ; inti,j,max; FILE *fp; max=0; for(i=0;i

试题三、填空题(每空3分,共30分) 1.程序功能:求多项式1!+3!+5!+7!+……+n!的和 。 #include int main() { int s=0,n,i,j,f; scanf(\ for(i=1;i<=n; (1) ) { f=1; for(j=1; (2) ;j++) (3) ; s+=f; }

座位号:

} scanf(\ (8); for(j=0;j<3;j++){ scanf(\ stu[i].sum+=stu[i].score[j]; } if(stu[i].sum>stu[max].sum) max=i; } if(( (9))==NULL){ printf(\ exit(0); } (10); for(j=0;j<3;j++) fprintf(fp,\fprintf(fp,\fclose(fp); return 0; 试题四、程序设计题(共35分) 1.(10分)编写程序判断一个正整数是不是完数。 完数:一个数的所有因子之和等于该数本身,其中1是因子,自身不是因子。 比如6是完数:6=1+2+3;28是完数:28=1+2+4+7+14 2.(10分)编写一个子函数voiddel_bk(char *s),将s指向的字符串中的所有空格都删除掉。 要求用指针实现,主函数输入一个字符串,调用子函数void del_bk(char *s)删除空格,然后在主函数中输出删除空格后的字符串。 3.(15分)编写程序,输入10个整数,要求用结构体类型描述每个数的序号和数值,比如: struct DT { int no; int data; } 要求将这10个数按照其数值进行从小到大排序,并给出每个数据排序前的序号。并把输出结果写入磁盘文件D:\\tmp\\out.txt中。比如: 输入:4 3 6 9 2 10 8 5 7 1 输出:1(10) 2(5) 3(2) 4(1) 5(8) 6(3) 7(9) 8(7) 9(4) 10(6)

第3页共4页