C语言程序设计期末考试卷A答案.doc_第1页
C语言程序设计期末考试卷A答案.doc_第2页
C语言程序设计期末考试卷A答案.doc_第3页
C语言程序设计期末考试卷A答案.doc_第4页
C语言程序设计期末考试卷A答案.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京信息科技大学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的值为_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 ;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:下述程序的输出结果是 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)函数的定义和函数的调用均不可以嵌套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 。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=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;执行下列程序后,变量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(int a10,int m) int x1=0,x2=10,mid; while (x1=x2) mid = (x1+x2)/2; if (mamid) 【_x1=mid+1_】; else return (mid); return (-1) ; 2、 编写函数void fun(char s1,char s2)把两个字符串s1,s2连接起来存放在s1中。void fun(char s1,char s2) int i=0,j; for (;s1i!=0;) 【_i+_】; for (j=0;s2j!=0;j+) 【_s1i=s2j_】; 【_i+_】; s1i=0;3、 输入10个整数,找出10个数中的最大数和最小数。void main() int Max,Min; int a10,i; for (i=0;i10;i+)scanf(%d,&ai); 【_Max=Min=a0_】; for (i=1;i10;i+)if (Maxai) 【_Min=ai_】; printf(Max=%d,Min=%dn,Max,Min);五程序编写。(每题6分,共两题)1:有一个整型数组a11,向数组中输入10个整数,要求:用冒泡排序法对10个数进行排序并输出。输入一个数,然后按原来排完序的规律将它插入到数组中。#include stdio.h void main() int a11,i,j,temp; int num; for (i=0;i10;i+) scanf(%d,&ai); for (j=0;j9;j+) for (i=0;iai+1) temp=ai; ai=ai+1; ai+1=temp; for (i=0;ia9) a10=num; else if (num=1;i-) ai=ai-1; a0=num; else for (i=0;i10;i+) if (numk;i-) ai=ai-1; ak=num; printf(输出插入数字后的数组:n); for (i=0;i11;i+) printf(%d,ai); 2:有5个学生,每个学生包括学号,姓名,和一门课成绩,求出课程的总分和平均分。:将这些数据全部写入一个”stu”文件中保存。:重新打开文件”stu”读出这些数据显示到屏幕上。#include stdio.h #include stdlib.hstruct student int num; char Name20; float score;stu5;void main() float allscore=0,aver; int i; FILE *fp; printf(输入五位学生学号,姓名,成绩:n); for (i=0;i5;i+) printf(输入学生学号:n); scanf(%d,&stui.num); printf(输入学生姓名:n); getchar(); gets(stui.Name); printf(输入学生分数:n); scanf(%f,&stui.score); for (i=0;i5;i+) allscore+=stui.score; aver=allscore/5; if (fp=fopen(student.txt,w)=NULL) printf(文件打开出错!); exit(0); for (i=0;i5;i+) fwrite(&stui,sizeof(struct student),1,fp); fprintf(fp,%5.2f,allscore); fprintf(fp,%5.2f,aver); fclose(fp); fp=fopen(student.txt,r); for (i=0;i5;i+) pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论