南京信息工程大学2007-2008(2)C语言期末试卷(A)_第1页
南京信息工程大学2007-2008(2)C语言期末试卷(A)_第2页
南京信息工程大学2007-2008(2)C语言期末试卷(A)_第3页
南京信息工程大学2007-2008(2)C语言期末试卷(A)_第4页
南京信息工程大学2007-2008(2)C语言期末试卷(A)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

第1页 共8页 南京信息工程大学南京信息工程大学 期末试卷期末试卷 2007 2008学年学年 第第 2 学期学期 C语言程序设计语言程序设计/程序设计基础程序设计基础 课程试卷课程试卷( A卷卷) 本试卷共本试卷共 页;考试时间页;考试时间 120分钟;任课教师分钟;任课教师 ;出卷时间;出卷时间 2008年年 6月月 学院 专业 班 学号 姓名 得分 注:请将解答写在答题册上,以免误判! 一、 单项选择题:请将正确答案的序号写在答题册上 (每小题1分,共10分) 1.以下叙述不正确的是 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 2.表达式18/4*sqrt(4.0)/8值的数据类型为 A)float B)char C)double D)不确定 3.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母、数字和下划线中的任意一种 4.以下程序片段 。 #include void main ( ) int x=0,y=0,z=0; if (x=y+z) printf(“*”); else printf(“#”); A)有语法错误,不能通过编译 B)输出:* C)可以编译,但不能通过连接,所以不能运行 D)输出:# 第2页 共8页 5.以下程序段 。 x=- 1; do x=x*x; while (!x); A)是死循环 B)循环执行2次 C)循环执行1次 D)有语法错误 6. 对于定义int a10;的正确描述是: 。 A) 定义一个一维数组a,共有a1到a1010个数组元素 B) 定义一个一维数组a,共有a(0)到a(9)10个数组元素 C) 定义一个一维数组a,共有a0到a910个数组元素 D) 定义一个一维数组a,共有a(1)到a(10)10个数组元素 7.若有下列定义: int x43=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; int (*p)3=x; 则能够正确表示数组元素a12的表达式为 。 A) *(*(p+1)+2) B) *(*p+1)2) C) *(*(p+5) D) *(*p+1)+2) 8.C语言规定,函数返回值的类型是由 决定的。 A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数时由系统临时 D)在定义函数时所指定的函数类型 9.以下程序的运行结果是 。 #include #define ADD(x) x+x void main ( ) int m=1,n=2,k=3,sum ; sum = ADD(m+n)*k ; printf(“%dn”,sum) ; A)9 B)10 C)12 D)18 10.若要用fopen函数打开一个新的二进制文件, 该文件既要能读也能写, 则文件打开方式 第3页 共8页 字符串应是 。 A) “ab+” B)”wb+” C)”rb+” D)”ab” 二、填空题:(每空2分,共20分) 1在C语言中,格式化输入操作是由库函数 1 完成的,格式化输出操作是由库 函数printf()完成的。 2.在C语言中, 数组名是一个不可改变的 2 , 不能对它进行赋值运算。 3.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式: 3 。 4.若有定义语句:int a4=0,1,2,3,*p;p=则+(*p)的值是 4 。 5数学表达式y= xy abc 3 的C语言表达式是 5 。 6若a是int 型变量,则表达式(a=4*5,a*2),a+6的值为 6 7.函数形参的值改变而实参的值不发生改变的参数传递方式是 7 。 8. 设有数组定义: char array =China; 则数组 array所占的存储空间为 8 。 9一个计算机程序应包括 9 和 10 。 三、 阅读程序:根据下面要求写出结果 (每小题4分,共32分) 1.若运行以下程序时,输入2473,则程序的运行结果是 。 #include void main ( ) int c; while (c=getchar( ) !=n) switch (c-2) case 0 : case 1 : putchar (c+4) ; case 2 : putchar (c+4) ; break ; case 3 : putchar (c+3) ; default : putchar (c+2) ; break ; printf(“n”); 2下面函数的功能是 。 copy_str(char *from, char *to) while(*to=*from)!=0) to+; 第4页 共8页 from+; *to=0; 3下面程序的输出结果是 #include void main() int i,j,k,x ,a10=2,1,45,23,98,34,0,56,12,75; for(i=0;i9;i+) k=i; for(j=i+1;j=9;j+) if(ajak) k=j; if(i!=k) x=ai; ai=ak; ak=x; for(i=0;i10;i+) printf(%d ,ai); 4. 本程序用折半查找法在数组a中查找输入的数,并打印出相应信息。若输入52并回车,则 下面程序的运行结果是_。 #include void main() int a8=6,12,18,42,44,52,67,94; int low=0,mid,high=7,found,x; found=0; scanf(%d, while(lowamid) low=mid+1; else if(xamid) high=mid- 1; else found=1;break; if(found=1) printf(Search Successful:The index is:%dn,mid); else printf(Cant search!n); 第5页 共8页 5.写出下面程序的运行结果: #include int func (int ,int ); void main ( ) int k=4,m=1,p1,p2; p1=func(k,m) ; p2=func(k,m) ; printf(“%d,%dn”,p1,p2) ; int func (int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return (m); 6.下面程序的功能是: 。 #include int func ( int ); void main ( ) int n,k ; for (n=100; n1000 ; n+) if (k=func(n) printf(“%d”,k) ; int func (int n) int i,j,k; i=n/100; j=n/10- i*10 ; k=n%10 ; if (i*100+j*10+k = i*i*i+j*j*j+k*k*k) return n ; return 0; 7.输入5回车,下面程序的运行结果是 。 #include int age(int); void main() int n; scanf(%d, printf(%dn,age(n); int age(int n) int c; 第6页 共8页 if (n=1) c=10; else c=age(n- 1)+2; return c; 8.当运行以下程序时,写出输入 9,5 的程序运行结果。 #include void swap(int *p1, int *p2); void main() int a,b; int *pointer_1,*pointer_2; scanf(%d,%d, pointer_1= pointer_2= swap(pointer_1,pointer_2); printf(n%d,%dn,a,b); void swap(int *p1, int *p2) int p; p=*p1; *p1=*p2; *p2=p; 四、程序填空:(每空2分,共18分) 1.以下程序的功能是计算函数( , , ) xyzy F x y z xyzy + =+ ,请填空使程序完整。 # include float fun(float , float) ; void main ( ) float x,y,z,f ; scanf(“%f,%f,%f”, f = fun ( 1 ); f += fun ( 2 ); printf(“f=%d”,f); float fun(float a,float b) return (a/b) ; 第7页 共8页 2. 以下程序是用来输入5个整数,并存放在数组中,找出最大数与最小数所在的下标位置, 并把两者对调,然后输出调整后的5个数。 #include void main() int a5, t, i, maxi, mini; for(i=0; i5; i+) scanf(%d, mini = maxi = 0; for(i=1; iamaxi) 4 ; printf(最小数的位置是:%3dn, mini); printf(最大数的位置是:%3dn, maxi); t = amaxi; 5 ; amini = t; printf(调整后的数为: ); for(i = 0; i 5; i+) printf(%d , ai); printf(n); 3完成下面程序,实现矩阵aNM转置(即行列互换) 1 2 3 4 1 5 9 5 6 7 8 2 6 10 9 10 11 12 3 7 11 4 8 12 #include #define N 3 #define M 4 void main() int aNM=1,2,3,4,5,6,7,8,9 ,10,11,12,i,j; 6 ; for(i=0;iN;i+) for(j=0;jM;j+) 7 ; for(i=0;iM;i+) 第8页 共8页 for(j=0;jN;j+) printf(%3d,bij); printf(n); 4完成下面程序,实现字符串反转存放(即输入 “abcdefg”,输出“gfedcba”) #include #include void inv(char *); void main() char a81,*p=a; gets(p); 8 ; printf(反转后的字符串:n); printf(%s,p); void inv(char *x) int n,m; char t,*i,*j,*p;

温馨提示

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

评论

0/150

提交评论