ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:94.60KB ,
资源ID:3712889      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3712889.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C模拟卷子.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C模拟卷子.docx

1、C模拟卷子2007-2008学年第1学期期末考试试卷及参考答案07-08第1学期C语言程序设计基础试卷A班级 姓名 学号 分数一、单项选择题。(每道选择题只有一个正确答案,请将答案填在题前的括号内,填写其它地方无效。每题2分,共15题,共计30分。)( )1、一个C语言程序是由 。A)一个主程序和若干子程序组成 B)函数组成C)若干过程组成 D)若干子程序组成( )2、已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42;则以下不正确的表达式是 。A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=

2、(b=4)*(a=3)( )3、当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是 。if(ab) if(cd) x=1; else if(ac) if(bd) x=2; else x=3; else x=6;else x=7;A)1 B)2 C)3 D)6( )4、以下正确的描述是 。A)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用goto语句。 ( )5、C语言规定,函数返回值的类型是由 。A)在定义该函数时所制定的函数类

3、型所决定B)return语句中的表达式类型所决定C)调用该函数时的主调函数类型所决定D)调用该函数时系统临时决定( )6、以下关于宏替换的叙述不正确的是 。A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换 D)宏名必须用大写字母表示( )7、以下程序的运行结果是 。#define MIN(x,y) (x)(y) ? (x):(y)main() int i=10,j=15,k; k=10*MIN(i,j); printf(“%dn”,k);A)10 B)15 C)100 D)150( )8、_是C语言合法的变量说明。 A.float m=n=3.45; B.int a1,a2=00

4、1; C.char ch=A,B; D.int a;b;( )9、以下正确的函数形式是 。A) double fun( int x, int y) z=x+y; return z;B) fun ( int x,y) int z; returnz; C) fun( x,y) int x,y; double z; z=x+y; return z; D) double fun( int x,int y) double z; z=x+y; return z; ( )10、在C语言程序中以下正确的描述是 。 A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)

5、函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套( )11、下面函数调用语句含有实参的个数为 。 A) 5 B) 1 C) 2 D) 4 ( ) 12、以下不正确的说法是 。 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效。( )13、以下程序的正确运行结果是 。#includevoid num( ) extern int x,y; int a=15,b=10; x=a-b; y=a+b;int x, y;main( ) int a=7, b=5; x=a+b

6、; y=a-b; num( ) printf( “%d,%dn”), x, y);A) 12,2 B)不确定 C) 5,25 D) 1,12( )14、在一个源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 。 A) extern B) register C) auto D) static( )15、如果这样定义:int a34;则数组a中各元素 。 A)可在程序运行阶段得到初值0; B)可在程序编译阶段得到初值0; C)不能得到确定的初值; D)可在编译阶段或在运行阶段得到初值0;二、写出下列程序的运行结果。(在书写结果的表格中,假定每一格代表屏

7、幕上一个字符的位置,请在表格内书写运行结果。共计10分)1、 ( 4分)void main() float x=6.7,y=8.5; int i,j; i=x+y; j=(int)x+(int)y; printf(x=%f,ny=%f,ni=%d,nj=%dn,x,y,i,j); 运行结果为: 2、(6分)void main() int i=0; char st=1234567; while(i6) switch (sti) case 1:putchar(1); case 2: putchar(2);break; case 3: putchar(3); case 4: putchar(4+1)

8、; default :printf(%s,56); putchar(n); i+; 运行结果为:三、读程序 (共16分)1、(8分)写出其代表的数学运算的表达式,并给程序加注释。#include main( ) int n,i; long lFactorial=1,lSum=0; scanf(“%d”,&n); /* */ for(i=1;i=n;i+) lFactorial=lFactorical*i; lSum=lSum+lFactorial; /* */ printf(sum=%ldn,lSum); /* */ 2、(8分)写出其代表的数学运算的表达式,并给程序加注释。#include

9、main( ) int n,i; long lFactorial=1,lSum=0; scanf(“%d”,&n); /* */ for ( i=1; i=n; i+ ) lFactorial=lFactorial*i; if(i%2=1) lSum=lSum+lFactorial; /* */ printf(sum=%ldn,lSum); /* */ 四、编程题(共30分)1、(20分) 从键盘读入N个整数,存入一个一维数组中,输出这N个数,对这N个数排序后重新输出,请编写程序。编程要求:1)输出时,一行输出5个数;2)排序后为升序,即由小到大;3)程序框架采用函数调用的形式;4)N的大小可

10、自由定义。2、(5分) 输入一个长整型数,计算该数的每位数字之和。 3、(5分)输出1到100之内所有能被4整除的数据,并计算这些数据的和。 五、算法题(8分)1、方程ax2+bx+c=0,考虑以下几种可能:1)a=0,不是二次方程;2)b24ac=0,有两个相等实根;3)b24ac0,有两个不等实根;4)b24ac0,有两个共轭复根;设计算法求解,用NS图表示。六、简答题(6分)1、第一个人A写了一个文件,取名为a.cpp;第二个人B写了一个文件,保存的物理地址和名字为:D:abcb.cpp,B中有一个排序函数void bsort( int array ,int n) 。a.cpp执行时,需

11、要调用b.cpp中的排序函数,为了使上面的工作正常执行,请写出a.cpp文件和b.cpp文件的简单框架(排序函数可以用空函数代替)。07-08第1学期C语言程序设计基础试卷B 一、单项选择题。(每道选择题只有一个正确答案,请将答案填在题前的括号内,填写其它地方无效。每题2分,共15题,共计30分。)( )1、在C语言中,_既不是保留字,也不是合法的标识符。A)a*b B)auto C)shar D)a2b( )2、以下程序的输出结果是 。(注:表示空格)main() printf(“n *s1=%15s*”,“chinabeijing”); printf(“n *s2=%-5s*”,“chi”

12、);A)*s1=chinabeijing*s2=*chi*B)*s1=chinabeijing*s2=chi*C)*s1=chinabeijing*s2=chi*D)*s1=*chinabeijing*s2=chi*( )3、执行下列程序段: for (i=0;i5;i+) for (j=1;j6;j+) x+=3;其中表达式“x+=3”共执行_ _次。 A)30 B)24 C)25 D)20( )4、 判断字符串a和b是否相等,应当使用 。A) if(a=b)B) if(a=b)C) if(strcpy(a,b)D) if(strcmp(a,b)( )5、凡是函数中未指定存储类别的局部变量,

13、其隐含的存储类别为 。A)静态(static)B)自动(auto)C)外部(extern)D)寄存器(register)( )6、#define能做简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是 。A) #define f(x) 4*x*x+3*x+2B)#define f 4*x*x+3*x+2C)#define f(a) (4*a*a+3*a+2)D)#define (4*a*a+3*a+2) f(a)( )7、下面程序的输出结果是 。#define MUL(z) (z)*(z)main( ) printf(“%d”,MUL(1+2)+3);A) 12 B

14、) 6 C) 36 D) 9( )8 、在C语言中,表达式_的值是整数类型。 A.25.0 B.34.5+0.5 C.12.3*10 D.3%10 ( )9、以下正确的函数声明形式是 。A) double fun( int x,int y) B) double fun(int x;int y)C) double fun( int x,int y); C)double fun( int x,y) ( )10、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是 。 A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回给实参 D) 由用户定义传递方向( )11、下面函数

15、调用语句含有实参的个数为 。 A) 5 B) 1 C) 2 D) 4( ) 12、若用数组名作为函数调用的实参,则传递给形参的是 。 A) 数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D) 数组元素的个数( )13、以下不正确的说法是 。 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效。( )14、以下程序的正确运行结果是 。#includevoid num( ) extern int x,y; int a=15,b=10; x=a-b; y=a+b;int x,

16、 y;main( ) int a=7, b=5; x=a+b; y=a-b; num( ) printf( “%d,%dn”), x, y);A) 12,2 B)不确定 C) 5,25 D) 1,12( )15、C语言规定,函数返回值的类型是由 。A)在定义该函数时所制定的函数类型所决定B)return语句中的表达式类型所决定C)调用该函数时的主调函数类型所决定D)调用该函数时系统临时决定二、写出下列程序的运行结果。(在书写结果的表格中,假定每一格代表屏幕上一个字符的位置,请在表格内书写运行结果。共计10分)1、(4分)#include stdio.hint fb(int n) int i,t

17、=1; for (i=1;i=n;i+) t=t*i; return t; main( ) int j=1; for (;j5;j+) printf(j=%d,fb(%d)=%dn,j,j,fb(j);2、(6分) #include void main(void) int x,y; for(x=1;x10) continue; printf(x=%dn,x); for(y=1;y=10;y+=2) if (y%3) break ; printf(y=%dn,y); printf(x=%d,y=%dn,x,y); 三、读程序 (共26分)1、(8分)写出其代表的数学运算表达式。#include

18、void main() float fac(int n); int n; float y; printf(input an integer number:); scanf(%d,&n); y=fac(n); printf(%d!=%10.0fn,n,y); float fac(int n) float f; if(n0) printf(n0,dataerror!); else if(n=0|n=1) f=1; else f=fac(n-1)*n; return(f); 数学表达式: 2、(8分)写出其代表的数学运算表达式。#include void main()long fac(long);

19、long i,n; scanf(%ld,&n); for(i=1;i=n;i+) printf(%ld!=%ldn,i,fac(i);long fac(long n)static long i,f=1; for (i=1;i=n;i+) f=f*i; return (f);数学表达式: 3、(10分)分析程序的数学功能:#include main() int iN=0;int iNN=0;int insum;int iX=0;int inprod; for(iNN=10; ; iNN+) insum=0; inprod=1;iN=iNN;do iX=iN%10; insum=insum+iX;

20、 iN=iN/10; while(iN!=0); iN=iNN; do iX=iN%10; inprod=inprod*iX; iN=iN/10; while(iN!=0); if(insum=inprod) printf(”iNN=%dn”,iNN); break; 功能: 四、编程题(共20分)1、(15分)用二分法求方程x3-3x2+2x-6=0在(-20,20)之间的根,要求绝对误差不超过0.001。 2、(5分)请编写程序:如果3个班的成绩分别放在3个一维数组中,每个数组中学生数不一样,假设3个一维数组的初始化可以一次给出。求解每个数组中的平均成绩并打印输出结果,假设主程序已经写出,

21、请写出子程序。#include void main() float average(float ,int ) float score_15 ,1.,; float score_210= 67.5,89.5,99,6.5,77,89.5,76.5,54,60,99.5; Float score_36=58,65,90,89,85,94; printf(“the average of class A is %6.2fn”,average(score_1,5) ); printf(“the average of class B is %6.2fn”,average(score_2,10) ); pr

22、intf(“the average of class C is %6.2fn”, average(score_3,6); float average(float ,int ) 五、算法题(8分)设计一个算法,求解从1908至2007年之间的闰年,输出闰年(四位数表示:)。用NS图表示。能定为闰年的条件:1)能被4整除但不能被100整除;或2)能被100整除且能被400整除。六、简答题(6分)第一个人A写了一个文件,取名为a.cpp;第二个人B写了一个文件,保存的物理地址和名字为:D:abcb.cpp,B中有一个排序函数void bsort( int array ,int n) 。a.cpp执行

23、时,需要调用b.cpp中的排序函数,为了使上面的工作正常执行,请写出a.cpp文件和b.cpp文件的简单框架(排序函数可以用空函数代替)。07-08第1学期C语言程序设计试卷A一、选择题(每小题2分,共计30分)题号123456789101112131415得分答案1、设有如下程序段:int x=2002, y=2003;printf(%dn,(x,y);则以下叙述中正确的是( )。A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息 C)输出值为2002 D)输出值为20032、已定义a、b、c为double类型,若要求通过输入分别给a、b、c输入1、2、3,输

24、入形式如下(其中代表空格):1.02.03.0则,下面能正确进行输入的语句是( )A)scanf(%f%f%f,a,b,c); B)scanf(%5.1lf%5.1lf%5.1lf,&a,&b,&c);C)scanf(%lf%lf%lf,&a,&b,&c); D)scanf(%e%e%e,&a,&b,&c);3、为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。A)缩排位置相同的if B)与其之前未配对的ifC)与其之前未配对的最近的if D)同一行上的if4、 判断字符串a和b是否相等,应当使用 。A) if(a=b) B) if(a=b) C) if(s

25、trcpy(a,b) D) if(strcmp(a,b)5、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是 。main( ) int *p, *q, a, b; p=&a, printf(“input a:”); scanf(“%d”, *p); A)*p表示的是指针变量p的地址B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量。6、下列叙述不正确的是( )A) 主函数中定义的变量在整个程序中都是有效的。B) 复合语句中定义的变量只在该复合语句中有效。C) 其他函数中定义的变量在主函数中不能使用。D) 形参是局部变量。7、说明一

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1