《C语言程序设计期末考试卷A答案》由会员分享,可在线阅读,更多相关《C语言程序设计期末考试卷A答案(10页珍藏版)》请在金锄头文库上搜索。
1、北京信息科技大学2008 2009 学年第 一 学期C语言程序设计课程期末考试试卷(A卷)授课系别:_计算机学院_ 适用班级:_计科所有班级 _ 考试形式:_闭卷_班级: 姓名: 学号: 题号一二三四五六七总分得分一:填空题:(每题2分,共10题)1、结构化程序设计的基本结构有三种,分别是顺序结构、 选择 结构和 循环 结构。2、有如下程序:void main() int k=1,n=263 ; do k*= n%10 ; n/=10 ; while (n) ; printf(%dn,k);则k值为_36_。3、有如下程序char a=China,int num=sizeof(a),num的值
2、为_6_。4、函数直接或间接的调用自己成为函数的_递归调用_。5、有如下定义:static int a6=1,2,3,4,5,6; int*p=a+1; p+;则*(p+1)的值为_4_。6、有以下程序:#define A 4#define B(x) A*x/2void main() float c,a=4.5; c =B(a) ; printf(%5.1fn,c);则c的值为_9.0_。7、C语言的变量值存在时间角度来分,可以分为_动态_存储方式和_静态_存储方式。8、C语言可以定义枚举类型,其关键字为 enum 。9、写出下面程序的运算结果。struct ks int a; s4,*p ;
3、void main() int n=1,i ; for (i=0;ia);p-a的值为_3_。10、C语言打开文件的函数是_fopen_,关闭文件的函数是_fclose_。二 单项选择题:(每题2分,共12题)1:以下程序片段_D_。void main() int x=0,y=0,z=0; if (x=y+z) printf(*); else printf(#);A)有语法错误,不能通过编译 B)输出:*C)可以编译,但不能通过连接,所以不能运行 D)输出:#2:若w=1,x=2,y=3,z=4,则条件表达式wx ? w:yz ? y : z ;的值为_B_。A)4 B)3 C)2 D)13:
4、下述程序的输出结果是 C 。void main() int x=-1,y=4,k; k=(x+=0)&!(y-100) break ; C) int k=0; D)int s=36;do +k; while (k=0); while (s) ; -s ;5:下列程序运行结果为:_C_。int a=1,b=2,c=1,t; while(ab0&chi=9;i+=2) s=10*s+chi-0; printf(%dn,s);A)1 B)1256 C)12ab56 D)ab7:以下正确的描述是 B 。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数
5、的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套8:以下程序的运行结果是 A 。#define ADD(x) x+xvoid main() int m=1,k=2,sum; sum=ADD(m)*k; printf(%dn,sum) ;A)3 B)4 C)5 D)69:下面程序段的运行结果是 C 。 char a =language,*p ; p=a ; while (*p!=u) printf(%c,*p-32); p+ ; A)LANGUAGE B)language C)LANG D)langUAGE10:若有定义:int a5,*p=a;则对a数组元素的正确引用是 D
6、。A)*&a5 B)a+2 C)*(p+5) D)*(a+2)11:已知学生记录描述为:struct student int no; char name20; char sex; struct int year; int month ; int day ; birth ; s ;设结构变量s中的“birth”应是“1985年10月1日”,则下面正确的赋值方式是 D 。A) year=1985 B) birth.year=1985month=10 birth.month=10day=1 birth.day=1C) s.year=1985 D) s.birth.year=1985 s.month=
7、10 s.birth.month=10s.day=1 s.birth.day=112:函数rewind的作用是 A 。A)使位置指针重新返回文件的开头B)将位置指针指向文件中所要求的特定位置C)使位置指针指向文件的末尾D)使位置指针自动移至下一个字符位置三: 阅读程序,写出正确结果:(每题4分,共5题)1、下列程序的运行结果是:int fun (char *s) char *p=s; while (*p) p+ ; return (*p-*s);void main() char *a=abcdef; printf(%dn,fun(a) ;程序运行结果为: -972、若int i=0;执行下列程
8、序后,变量i的结果是_1_。switch (i) case 9: i+=1 ; case 10: i+=1 ; case 11: i+=1 ; default : i+=1 ; 3、下列程序的运算结果为:int *sort(int *s) int *p=s; p+; return p;void main() int a5=1,2,3,4,5; int *p; p=sort(a+2); printf(%dn,*p); 程序运行结果为:_4_。4、下列程序的运算结果为:int mm(int,int);int mm(int m,int n) static int s=1 ; s+ ; return(s*(m+n);void main() int i; for (i=0;im的值为_2_。四:阅读程序,在横线上填上正确内容:(每空3分,共8空)1、 下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回1,请填(2)空使程序完整。经典算法提示:折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。int search(in