《《c程序设计基础》试题.doc》由会员分享,可在线阅读,更多相关《《c程序设计基础》试题.doc(7页珍藏版)》请在金锄头文库上搜索。
1、学号:姓名:装订线(答题不得超过此线)班级:系别:长沙师范学校 电子信息工程 系 - 学年度 学期C语言程序设计试题(5) 用于 计算机应用技术 专业 班级考试形式 闭卷 时量 100分钟 满分 100分 得分 命题 宋碧慧 审题 阅卷 成绩复核 阅卷人得分一、选择题(每题3分,共30分,答案填写在以下表格中)题号12345678910答案1. 一个C语言程序是由( )。A. 一个主程序和若干子程序组成B. 若干函数组成C. 若干过程组成D. 若干子程序组成2. 已知:char *s=NameAddress;则s所指的字符串的长度为( ).A. 18 B. 16 C. 13 D. 143. 若
2、有条件表达林(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp) 的是( )。 A. (exp=0) B. (exp!=0) C. exp=1 D. (exp!=1) 4. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )。A. 地址传递 B. 单向值传递C双向值传递。即由实参传给形参,再由形参传回给实参D由用户指定传递方式5. 以下正确的函数形式是( )。A. double fun1(int x,int y) z=x+y;return z; B. fun1(int x, y) int z; return z; C. fun1(x,y) int x,y; do
3、uble z; z=x+y;return z; D. double fun1(int x, int y) double z; z=x+y;return z; 6. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )。A. float型 B. int型 C. long型 D. double型7. 以下程序有语法性错误,有关错误原因的正确说法是( )。void main( )int k; void prt_char();k=prt_char(G);A. 语句void prt_char();有错,它是函数调用语句,不能用void说明。B. 变量名不能使用大写字母。C. 函数原型说明和函数调
4、用语句之间有矛盾。D. 函数名不能使用下划线。8. 若有如下定义,则下面在scanf函数调用语句中对结构体成员的引用不正确是( )。struct pupilchar name20;int age;int sex;pup5,*p;A. scanf(%d,p-age);B. scanf(%s,pup0.name);C. scanf(%d,&pup0.age);D. scanf(%d,&(pup1.sex);9. 若已有定义int(*p)(); 则指针p( )。A. 代表函数的返回值B. 指向函数的入口地址C. 表示函数的类型D. 表示函数返回值的类型10. 设x、y均为float型变量,则以下不合
5、法的赋值语句是( )。A. +x; B. y=(x%2)/10;C. x*=y+8; D. x=y=0;阅卷人得分二、填空题(每题1分,共10分)1. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为 。2. C源程序的基本单位是 。3. 若有定义:char c=10; 则变量C中包含的字符个数为 。4. 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 。5. 执行下面的程序片段后,x的值是 。i=10; i+; x=+i;6. 设a、b、c均是int 型变量,则执行以下for循环后,c的值为 。for(a=1,b=5;a
6、=0);8. 若有定义: int a32=2,4,6,8,10,12;,则*(a1+1)的值是 。9. 若a=1,b=2则表达式ab? a:b+1的值是 。10. 当a=5,b=4,c=2时,表达式样ab! =c的值是 。阅卷人得分三、判断题(共10题,每题1分,共10分)( )1. 程序的执行总是从主函数开始,主函数执行完时,则程序执行结束。 ( )2. 控制台标准输入设备一般是指键盘。 ( )3. do-while语句的循环体至少执行一次。 ( )4. 循环体中continue语句的作用是结束整个循环的执行。 ( )5. C语言规定,else子句总是与它上面的最近的if配对。 ( )6.
7、char a=0,1,2,3,4,5,6不是正确的数组说明语句。 ( )7. 字符串This大于字符串that。 ( )8. 在用数组名作为函数实参时,传递的是数组的起始地址。 ( )9. 表达式i+与+i在任何场合功能完全相同。 ( )10. 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。阅卷人得分四、程序阅读、填空题(共6题,共30分)1. main() int *p,*q,n; scanf(“%d”,&n); p=(int*)malloc(n*sizeof(int); for(q=p+n-1;q=p;q-) scanf(“%d”,q); for(q=p+n-1;
8、p=q;p+) printf(“%3d”,*p); 当输入数据序列为8 4 2 6 5 1 3 8 7时程序的输出结果为: (5分)2. #include void main( )char c;while(c=getchar()!=?) putchar(+c);当运行以下程序时, 从键盘键入right?, 则下面程序的运行结果 是 (5分)。3. int fun(int n) if (n0) return n*fun(n-1);else return 1;main() int a=fun(4); printf(a=%dn,a);程序运行结果:_ (5分)4. void main(void)in
9、t a=1,k;for(k=0;k3;k+) printf(%4d,f1(a);int f1(int x)static int z=3,y=0;y+;z+;return(x+y+z);以下程序的运行结果是 。(5分)5. 下面程序的功能是求1000以内的所有完全数。(说明:一个数如果恰好等于它的因子之和(除自身外), 则称该数为完全数, 例如:6=1+2+3, 6为完全数。)(4分)#includevoid main(void)int a,i,m=0;for(a=1;a=1000;a+)for ( ; i=a/2;i+) if( (a%i)=0) ;if (m=a) printf(%4d,a)
10、;6. 下面程序的功能是用函数递归方法计算菲波那契数列,请填空完善之。(6分) main() int n,m;scanf(%d,&n);m=_;printf(%d,m);int fibo(n); int n; if(n=1) _; else if(n=2) return(1); else return (_);阅卷人得分五、程序设计题(每题10分,共20分)1. 写一个判断是否为素数(只能被1和其本身整除)的函数,在主函数中输入一个整数,输出是否是素数的信息。2编写一个程序,接收从键盘输入的10个整数,实现由小到大排序,并输出。参考答案一、单项选择题(20分)1.5.BCBBD 6.10.BC
11、ABB二、填空题(20分)1. f 或1022. 函数3. 1 / 1个4. 95. 126. 7107. 38. 89. 310. 1三、判断题(15分)四、程序运行结果题(20分)1. 7 8 3 1 5 6 2 42. sjhiu3. 244. 6 8 105. i=1 m+=i6. fibo(n) return(0) fibo(n-2)+fibo(n-1)五、略解决党委自身和基层党支部存在的的突出问题,发挥各村、社区、机关单位党支部在当前城市征迁、园区建设、招商引资、服务群众、维护稳定的作用,我镇党委高度重视,制定了切合临淮实际的活动实施方案,按照中央规定的活动步骤和要求扎实有效的开展了基层组织建设年活动。