好文档 - 专业文书写作范文服务资料分享网站

2012信息工程学院C语言2(东岳)期末试卷(B)

天下 分享 时间: 加入收藏 我要投稿 点赞

. 杭州电子科技大学信息工程学院考试试卷(B)卷 考试课程 课程号 考生姓名 计算机应用基础与程序设计(C语言)2 教师号 学号 考试日期 2012年 月 日 任课教师姓名 年级 专业 成绩 说明: 请将全部答案都书写在第5页答题纸上,否则答题无效。 试题一、判断题 (共15分) (用‘√’或‘×’标注对错) 1. 定义为void类型的函数,其含义是调用函数后,被调用的函数的返回值为任意的类型。 2. C语言程序中,若实参是变量,当调用函数时实参和形参各占一个独立的存储单元。 3. 在C语言中,所有函数之间都可以相互调用。 4. 主函数main中定义的变量在其它函数中也有效。 5. 有数组定义int a[10]={1,2,3};,则a[3]的值为3。 6. 设有数组定义:char array [ ]=\则数组 array所占的空间为5个字节。 7. int N=5,a[N][N];能正确定义5×5数组a。 8. 若有定义char s1[]=”Hello”,s2[]=”world!”,则strlen(s1) + strlen(s2) 等于strlen(strcat(s1,s2))。 9. 宏定义不是C语句,不必在行末加分号。 10. 若有定义int a,*p=&a,*q=p;则p指向a,q指向p。 11. 若有定义int a,*p=&a; char *t;由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不能将p赋给t。 12. 有定义:int a[5]={1,2,3,4,5},*p=a;,语句printf(“%d”,*p++);的输出结果为2。 13. 设有语句struct ss{int x;float y;}ex; 则ss是结构体类型名。 14. 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是0。 15. 在使用fopen()函数时必须先定义一个类型为FILE的文件指针。 试题二、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共25分) 1.C语言规定,在一个源程序中,main函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 2.C语言中函数返回值的类型是由( )决定的。 A.调用该函数的主调函数类型 B.return语句中的表达式类型 . C.定义函数时所指定的返回函数值类型 D.调用函数时临时 3.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是 A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定的传递方式 4.在C程序中,如果限定一个局部变量只能在所定义的范围中起作用,那么这个变量的存储类型( )。 A.只能是auto B.只能是extern C.可以是auto或static D.可以是extern或static 5.以下正确的函数说明是( )。 A.int fun(int , int); B.int fun(int x,y); C.int fun(x,y); D.int fun(int x; int y); 6.以下叙述错误的是( )。 A.函数调用可以是单独的语句 B.函数调用可以出现在表达式中 C.函数调用可以作为函数的实参 D.函数调用可以作为函数的形参 7.在C语言中,下面关于数组的描述正确的是( )。 A.数组的大小是固定的,但可以有不同类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同的类型的数组元素 8.假定int类型变量占用4个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。 A.3 B.12 C.10 D.40 9.若有定义int b[3][4]={0};则下面正确的叙述为( )。 A.只有元素b[0][0] 可得到初值0 B.此定义语句不正确 C.数组b中各元素都可得到初值,但其值不一定为0 D. 数组b中每个元素均可得到初值0 10.若有定义int a[4][5];,则在a[2][3] 前的元素个数为( )。 A.12 B.13 C.14 D.17 11.下列程序段执行后,s的值是( )。 char ch[]=\for(i=0;ch[i]>='0'&&ch[i]<='9';i++) s=10*s+ch[i]-'0';为 A.123 B.1 C.3 D.6 12.要将20,30,40,50 存入数组b中, 下列正确的程序段是( )。 A.int i,b[4]; for (i=0; i<4; i++) b[i]=(i+2)*10; B.int b[4]; b={20,30,40,50}; C.int b[4]; b[1]=20,b[2]=30,b[3]=40,b[4]=50; D.int b[4]; b[4]={20,30,40,50}; 13.设已有定义:char *st=\下列程序段中正确的是( )。 A.char a[12], *p=a+1; strcpy(p,st+4); B.char a[12]; strcpy(++a, st); C.char a[12],*p;strcpy(p, st); D.char a[], *p=a+1;strcpy(p,&st[4]); 14.若已有定义 char str[10]; 要将键盘输入的字符串\赋给str,应使用( )。 A.scanf(\ B.gets(str); C.str=\ pear\ D.getchar(str); 15.程序中定义以下宏 . #define w 3 #define L w+4 若定义int val;且令val=L*L,则变量val的值为( )。 A.14 B.19 C.24 D.49 16.下列数组s中所存放字符串的长度为( )。 char s[ ]= \a\\\\218,0\\n\ A.6 B.7 C.8 D.9 17.执行语句“a=3; printf(\\\n\后的输出结果为( )。 A.1 B.0 C.3 D.11 18.若有int a=1,b=2,*pa=&a,*pb=&b;,执行语句*pa*=3;b*=2;printf(“%d,%d”,*pa,*pb);后输出( )。 A.1,2 B.1,4 C.3,2 D.3,4 19.若有int a=100,b=200,t,*temp,*pa=&a,*pb=&b;则下列各语句组中,不能实现变量a,b值互换的是( )。 A.t=a; a=b; b=t; B.t=*pa;*pa=*pb;*pb=t; C.temp=pa;pa=pb;pb=temp; D.a=a+b; b=a-b; a=a-b; 20.若有定义char s[20]=\则不能代表字符o的表达式是( )。 A.ps+2 B.s[2] C.ps[2] D.*(ps+2) 21.若有 char *c[]={\\则下列叙述中错误的是( )。 A.*c表示字符串\的首地址 B.c[3]表示字符串\的首地址 C.c是一个字符型指针数组 D.c是一个字符型数组 2. #include 22.已知:int a[2][3]={1,2,3,4,5,6};能够访问到数字5的操作是( )。 int f() A.a[2][2] B.a[1][2] C.*(*(a+2)+1) D.*(*(a+1)+1) { 23.若有struct date{int day,month,year;}d={1,10,2012},*pd=&d; 则不能正确引用变量d的成员的是( )。 static int k=2; A.pd->year B.(*pd).year C.d.year D.*pd.year int x=5; 24.若有以下定义语句: x=x*k; struct student { int num; char name[9]; }stu[2]={1, \ k++; 则以下能输出zhangsan的语句是( )。 return x; A.puts(stu[0].name); B.puts(stu[1].name); } void main() C.puts(stu[0].name[0]); D.puts(stu[1].name[0]); { 25.已知有语句FILE *fp; int x=123; fp=fopen(\如果需要将变量x的值以文本形式保存到int a; 磁盘文件out.dat中,则以下函数调用形式中,正确的是( )。 a=f(); A.fprintf(\ B.fprintf(fp,\ a=f(); C.fprintf(\ D.fprintf(\ printf(\ } 试题三、程序阅读题(共20分) A. 10 B. 15 说明:阅读下列程序,在每小题提供的程序运行结果若干可选答案中,挑选一个正确答案。 1.以下程序运行后,输出结果为____(1)____,程序使用的算法是____(2)____。 . #include void main() { int a[5]={5,10,-7,3,7},i,t,j; void sort(int a[]); sort(a); for (i=0;i<=4;i++) printf(\} void sort (int a[]) { int i,j,t; for (i=0;i<=4;i++) for(j=0;j<4-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } (1) A. 5 10 -7 3 7 B. -7 3 5 7 10 C. 10 7 5 3 -7 D. 3 5 7 10 -7 (2) A. 冒泡法排序 B. 选择法排序 C. 插入法排序 D. 堆排序 C. 20 D. 30 . 3. #include void main() { int a[6]={5,1,3,7,8,4},i,j,k; for(i=1;i<=3;i++){ k=a[5]; for(j=4;j>=0;j--) a[j+1]=a[j]; a[0]=k; } for(i=0;i<6;i++) printf(\ printf(“\\n”); } A. 4 8 7 3 1 5 B. 5 1 3 7 8 4 C. 7 8 4 5 1 3 D. 5 7 3 1 8 4 4. #include void fun(char *s,char *t) { for( ; *s!='\\0'; s++); for( ; *t!='\\0' ; s++,t++) *s=*t; *s='\\0'; return; } void main() { char a[80],b[40]; printf(“Plese Input strings:”); gets(a); // 输入Hello, ↙ gets(b); // 输入Everyone!↙ fun(a,b); printf(\} i=a; a=a/10; j=b; b=b/10; *c=a*1000+j*100+i*10+b; } void main() { int x=41,y=28,z=0; fun(x,y,&z); printf(\ } A.41,28,0 B.41,28,4812 C.4,2,0 D. 4,2,4812 试题五、程序填空题(共18分) 说明:阅读下列程序说明和相应程序,在每小题提供的若干可选答案中,挑选一个正确答案。 1.【程序说明】输入一个正实数x和正整数n,求下列算式的值: x2x3x4(?1)n?1xnx???????2!3!4!n!函数fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn)。 #include double fact(int n) { ____(1)____ ; for(;n>=1;n--) t*=n; return t; } double mypow(double x,int n) { double y=1; int i; for(i=1;i<=n;i++) ____(2)____ ; return y; } void main() { double s=0,x; int i,n,flag=1; A.Hello, B.Everyone! C.Everyone!Hello, D.Hello, Everyone! 5. #include void fun(int a, int b, int *c) { int i,j; . . scanf(“%lf%d”,&x,&n); for(i=1;i<=n;i++) { s+= ____(3)____ ; flag=-flag; } printf(“sum=%f\\n”,s); } (1) A. double t=1 B. double t=0 C. double t D. 空 (2) A. x*=x B. y*=x C. y=y*n D. x=x*i (3) A. -flag*mypow(x,n)/fact(n) B. flag*mypow(x,n)/fact(n) C. -flag*mypow(x,i)/fact(i) D. flag*mypow(x,i)/fact(i) 2.【程序说明】输入一个6行、6列的数组,将每一行的所有元素都除以该行的主对角线元素,然后以行列对齐格式输出该数组。 #include void main() { int a[6][6],t,i,j; for(i=0; i<6;i++) for(j=0;j<6;j++) ____(4)____ ; for(i=0; i<6;i++){ t= ____(5)____ ; for(j=0;j<6;j++) a[i][j]= ____(6)____; } for(i=0; i<6;i++){ for(j=0;j<6;j++) printf(\ ____(7)____ } #include main( ) { FILE *fp; char ch, fname[32];int count=0; printf(\scanf(\if((fp=fopen( ____(8)_____, \{ printf(\exit(0); } while((ch=getchar())!='#') { fputc(ch,fp); count ++; } fprintf(_____(9)____ , \ fclose(fp); } (8) A. fname B. fname[32] C. &fname D. *fname (9) A. &fp B. *fp C. \fp\ D. fp 试题六、 编程序 (共26分,第1题14分,第2题12分) 1.输入一个大于零的正整数,输出该数的各个非零数字之积。要求编写函数f,计算整数的各个非零数字之积(例如,输入1234,函数f返回1×2×3×4的值24;输入205,函数f返回2×5的值10)。在主函数中输入输出结果。 2.输入10个数放在一维数组a中,找出其中最小的数,将它与数组最前面的数交换后输出这10个数。 (4) A. a[i][j] B. *a[i][j] C. &a[i][j] D. a (5) A. a[i][i] B. a[i][j] C. 0 D. 1 (6) A. t/a[i][j] B. t/a[i][i] C. a[i][j]/t D. a[i][j]/a[i][i] (7) A. printf(\); B. printf(\);} C. } printf(\); D. } 3.【程序说明】由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件中,形成文本文件,并将字符的个数写到文件的尾部。 #include . . 杭州电子科技大学信息工程学院考试试卷(B)卷答题纸 考试课程:计算机应用基础与程序设计(C语言)2 考试日期:2012年 月 日 (7) (8) (9) 学 号 姓名 教师 成绩 注意:第六题若答案书写不下,请写在背面,注明题号。 试题一 判断题(用‘√’或‘×’标注对错。共15分) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 试题二、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共25分) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 试题三、读程序写出程序执行结果(共20分) 1.(1) (2) 2. 3. 4. 5. 试题四、程序填空,按程序完成的功能,在划线部分填写适当的内容(共18分) (1) (2) (3) (4) (5) (6) . 试题六 编程序(共22分,,第1题12分,第2题10分) 1. 2.

2012信息工程学院C语言2(东岳)期末试卷(B)

.杭州电子科技大学信息工程学院考试试卷(B)卷考试课程课程号考生姓名计算机应用基础与程序设计(C语言)2教师号学号考试日期2012年月日任课教师姓名年级专业成绩说明:请将全部答案都书
推荐度:
点击下载文档文档为doc格式
8bcr05utu0565jb3urou8mpoj7ocb000zol
领取福利

微信扫码领取福利

微信扫码分享