c语言题目及答案--精选文档_第1页
c语言题目及答案--精选文档_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、考试题型考试题型一、单项选择题(30分)二、填空题 (20分)三、阅读程序写结果(20分)四、编程序题(30)复习题一复习题一一、一、 选择题选择题 1下列说法中正确的是 。AC语言程序由主函数和0个或多个函数组成BC语言程序由主程序和子程序组成CC语言程序由子程序组成DC语言程序由过程组成2执行语句“x=(a=3,b=a-)”后,x,a,b的值依次为 。A3,3,2 B3,2,2 C3,2,3 D2,3,23设有int i=010,j=10;则printf(%d,%dn,+i,j-); 的输出的是 。A11,10 B9,10 C010,9 D10,9 4设a、b为字符型变量,执行scanf(

2、a=%c,b=%c,&a,&b); 后使a为A, b为B,从键盘上的正确输入是 。AA B BA,B CA=A,B=B Da=A,b=B5已知int x=12, y=3;执行下述程序后,变量x的值是_。do x/=y-;while(xy);A1 B2 C3 D程序运行有错误6C语言中while和do-while循环的主要区别是 。Ado-while的循环体至少无条件执行一次Bwhile的循环控制条件比do-while的循环控制条件严格Cdo-while允许从外部转到循环体内Ddo-while的循环体不能是复合语句7设x和y均为int型变量,则执行下面的循环后,y的值为 。for

3、 (y=1,x=1;y=10 ) break; if (x%2=1) x+=5;continue; x - =3;A2 B4 C6 D88以下正确的说法是_。A用户若需调用标准函数,调用前必须重新定义B用户可以重新定义标准库函数,若如此,该函数将失去原有含义C系统根本不允许用户重新定义标准函数D用户若需要调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调9若调用一个函数,且此函数中没有return语句,则关于该函数正确的说法是_ _。A 没有返回值B 能返回若干个系统默认值C 能返回一个用户所希望的函数值D 返回一个不确定的值10已知函数定义如下:floa

4、t fun1(int x,int y) float z;z=(float)x/y;return(z);主调函数中有int a=1,b=0;可以正确调用此函数的语句是_。Aprintf(%f,fun1(a,b); Bprintf(%f,fun1(&a,&b);Cprintf(%f,fun1(*a,*b); Dprintf(%f,fun1(b,a);11宏定义:#define PI 31.14159中,宏名PI代替_。A单精度 B双精度 C常量 D字符串12若有以下数组说明,则数值最小和最大的元素下标分别是 。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12

5、; A1,12 B0,11C1,11 D0,1213以下合法的数组定义是 。Aint a3 =0,1,2,3,4,5; Bint a 3 =0,1,2,3,4;Cint a23=0,1,2,3,4,5,6; Dint a23=0,1,2,3,4,5,;14函数调用:strcat(strcpy (str1,str2),str3); 的功能是 。A将字符串str1复制到字符串str2中后再连接到字符串str3 之后。B将字符串str1连接到字符串str2之后再复制到字符串str3 之后。C将字符串str2复制到字符串str1中后再将字符串str3 连接到字符串str1之后。D将字符串str2连接到

6、字符串str1之后再将字符串str1 复制到字符串str3中。15设有二维数组定义如下,则不正确的数组元素引用是 。 int a34 =1,2,3,4,5,6,7,8,9,10,11,12;Aa23 Baa001 Ca7 Da2c-a16若用数组名作为函数调用时的实参,则实际上传递给形参的是 。A数组首地址 B数组的第一个元素值C数组中全部元素的值 D数组元素的个数17以下对指针变量进行操作的语句,正确的选项是 。Aint *p,*q; q=p; Bint a,*p,*q; q=&a; p=*q;Cint a=b=0,*p; p=&a; b=*p; Dint a=20,*p,*

7、q=&a; p=q;18若有以下定义和语句:int s45,(*ps)5;ps=s;则对s数组元素的正确引用形式是 。Aps+1 B*(ps+3) Cps02 D*(ps+1)+319当说明一个共用体变量时系统分配给它的存储容量是 。A共用体中最后一个成员所需的存储容量B共用体中第一个成员所需的存储容量C成员中占存储量最大者所需的存储容量D各成员所需存储容量的总和20有定义如下: struct student int age; char num8; stu3=20,200401,21,200402,10,200403;struct student *p=stu;以下选项中引用结构体变量

8、成员的表达式错误的是 。A(p+)-num Bp-num C(*p).num Dstu3.age二、填空题二、填空题1设a=3,b=2,c=1,则ab的值为 ,abc的值为 。2若w, x, y, z, m均为int型变量,则执行下面程序段后的m值是 。 w= 1; x = 2; y= 3; z=4; m=(wy)?w:x; m= (my)? m:y; m=(mz)?m:Z;3下面程序的输出结果是_。#include main() int a=1,b=0;do switch(a) case 1: b=1;break;case 2: b=2;break;default : b=0;b=a+b;w

9、hile(!b);printf(a=%d,b=%d,a,b);4下面程序的输出结果是_。#include main() int x,i;for(i=1;i=100;i+) x=i;if(+x%2=0)if(+x%3=0)if(+x%7=0)printf(%d ,x);5下面程序的输出结果是_。#include int func(int a,int b) int c;c=a+b;return(c);void main() int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf(%dn,r);6下面程序的输出结果是_。#include void main()

10、int x=1; void f1(),f2();f1( );f2(x); printf(%dn,x);void f1(void) int x=3; printf(%d ,x); void f2(x)int x; printf(%d ,+x); 7程序中有定义:#define S(r) r/r int a=4,b=3,area; 则表达式area=S(a+b)的值为_。三、程序完善题三、程序完善题1以下程序的功能是计算分段函数y的值。请完善程序。#include void main() int x,c,m; float y; scanf(“%d”,&x); if( (1) ) c=-1;

11、 else c= (2) ; switch( c) case 1: y=0; break; case 0: y=x; break;case 1: y=10; break; case 2: case 3: y=-0.5*x+20; break; default : y=-2;if( (3) ) printf(“y=%f”, y);else printf(“errorn”); 2有以下程序段:s=1.0;for(k=1;k=n;k+)s=s+1.0/(k*(k+1);printf(%fn,s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;(1) ;k=0; do s=s+d;(2)

12、 ;d=1.0/(k*(k+1);while( (3) );printf(%fn,s);3根据以下嵌套的if语句说给条件,填写switch语句,使它完成相同的功能。(假设score的取值在1100之间。) if语句: if(score60) k=1; else if(score70) k=2; else if(score80) k=3; else if(score90) k=4; else if(score=100) k=5; switch语句: switch( (1) ) (2) : k=1; break;case 6:k=2; break;case 7:k=3; break;case 8:

13、k=4; break; (3) :k=5; 4输入2个整数,输出它们的最小公倍数和最大公约数。请完善程序。 #include void main( ) int m,n,gbs,gys; scanf((1)); for(gbs=m; (2) ; gbs=gbs+m); gys= (3) ; printf(“gbs=%dtgys=%dn”, gbs,gys); 5下面函数的功能是判断一个数是否为素数。请完善程序。void f(int m) int m,i,k;k=_(1)_;for(i=2;i=_(2)_;i+)if(_(3)_)break;if(_(4)_)printf(“是素数”);else

14、printf(“非素数”);6一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。请完善程序。void fun(long x) long ge,shi,qian,wan; wan= (1) ;qian=_(2)_;shi=_(3)_;ge=x%10;if (_(4)_) printf(this number is a huiwenn);else printf(this number is not a huiwenn);四、程序设计题四、程序设计题1编写程序计算分段函数y值。2编写程序,输入一个字符串,求该字符串的有效长度。要求不能使用系统函数。3编写程序实现,

15、将键盘输入的一个十进制整数转换为2进制数并输出。参考答案:参考答案: 一、选择题一、选择题12345678910ACBDDACBAD11121314151617181920DBBCCACCCD二、填空题二、填空题 1、 1 0 2、 1 3、 a=1,b=2 4、 25 67 5、 21 6、 3 2 1 7、 7 三、程序完善题三、程序完善题1、 x0 x/10 x40 2、 d=1 k+ k=n 3、 score/10 case 0,1,2,3,4,5: default 4、 “%d %d”,&m,&n gbs%n!=0 m*n/gbs 5、 m/2 k m%i=0 i=k

16、 6、 x/10000 (x%10000)/1000 (x%100)/10 wan=ge & qian=shi 四、程序设计题四、程序设计题1、 #include void main() float x,y; scanf(“%f”,&x); if(x0) y=exp(-x); else if(x=0) y=1; else y=-exp(x); printf(“%f”,y);2、 #define max 20; void main()char strmax;int len;scanf(“%s”,str);for(len=0;strlen!=0;len+) ;printf(“%d”

17、,len);3、#includevoid main() unsigned n;char str10,t;int k,i,j;printf(“please input:”);scanf(“%u”,&n);for(i=0;n!0;i+) stri=n%2+0; n/=2;stri=0;printf(“the result is :”);for(k=0,j=i-1;kj;k+,j-) t=strk;strk=strj;strj=t;puts(str);复习题二一、选择题一、选择题1字符串ABC在内存占用的字节数是 。A3 B4 C6 D82设整型变量m,n,a,b,c,d均为0,执行(m=a

18、= =b)|(n=c= =d)后,m和n的值是 。A0,0 B0,1 C1,0 D1,13a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的 。Ascanf(%d,%c,&a,&c); Bscanf(%d%c,a,c);Cscanf(%d%c,&a,&c); Dscanf(d=%d,c=%c,&a,&c);4字符变量ch=A,int类型变量k=25,执行printf(%3d,%d3n,ch,k); 的输出为: 。A65,253 B65 253 C65,25 DA 255已知int i=1, j=0;执行下面语句后j的值是_。while

19、(i)switch(i) case 1: i+=1;j+;break;case 2: i+=2;j+;break;case 3: i+=3;j+;break;default: i-;j+;break;A1 B2 C3 D死循环6C语言中while和do-while循环的主要区别是 。Ado-while的循环体至少无条件执行一次Bwhile的循环控制条件比do-while的循环控制条件严格Cdo-while允许从外部转到循环体内Ddo-while的循环体不能是复合语句7设x和y均为int型变量,则执行下面的循环后,y的值为 。for (y=1,x=1;y=10 ) break; if (x%2=

20、1) x+=5;continue; x - =3;A2 B4 C6 D88在C语言中,函数的数据类型是指_。A函数返回值的数据类型 B函数形参的数据类型C调用该函数时的实参的数据类型 D任意指定的数据类型9在C语言中以下不正确的说法是_ _。A 实参可以是常量、变量或表达式B 形参可以是常量、变量或表达式C 实参可以为任意类型D. 形参应与其对应的实参类型一致10已知函数定义如下:float fun1(int x,int y) float z;z=(float)x/y;return(z);主调函数中有int a=1,b=0;可以正确调用此函数的语句是_。Aprintf(%f,fun1(a,b)

21、; Bprintf(%f,fun1(&a,&b);Cprintf(%f,fun1(*a,*b); Dprintf(%f,fun1(b,a);11宏定义的宏展开是在_阶段完成的。A第一遍编译 B第二遍编译C程序执行 D预编译12若有以下数组说明,则数值最小和最大的元素下标分别是 。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12; A1,12 B0,11C1,11 D0,1213以下合法的数组定义是 。Aint a3 =0,1,2,3,4,5; Bint a 3 =0,1,2,3,4;Cint a23=0,1,2,3,4,5,6; Dint a23=0,1

22、,2,3,4,5,;14函数调用:strcat(strcpy (str1,str2),str3); 的功能是 。A将字符串str1复制到字符串str2中后再连接到字符串str3 之后。B将字符串str1连接到字符串str2之后再复制到字符串str3 之后。C将字符串str2复制到字符串str1中后再将字符串str3 连接到字符串str1之后。D将字符串str2连接到字符串str1之后再将字符串str1 复制到字符串str3中。15设有二维数组定义如下,则不正确的数组元素引用是 。 int a34 =1,2,3,4,5,6,7,8,9,10,11,12;Aa23 Baa001 Ca7 Da2c-

23、a16若用数组名作为函数调用时的实参,则实际上传递给形参的是 。A数组首地址 B数组的第一个元素值C数组中全部元素的值 D数组元素的个数17以下对指针变量进行操作的语句,正确的选项是 。Aint *p,*q; q=p; Bint a,*p,*q; q=&a; p=*q;Cint a=b=0,*p; p=&a; b=*p; Dint a=20,*p,*q=&a; p=q;18若有以下定义和语句:int s45,(*ps)5;ps=s;则对s数组元素的正确引用形式是 。Aps+1 B*(ps+3) Cps02 D*(ps+1)+319当说明一个结构体变量时,系统分配给它的存

24、储容量是 。A结构体中最后一个成员所需的存储容量B结构体中第一个成员所需的存储容量C成员中占存储量最大者所需的存储容量D各成员所需存储容量的总和20有定义如下:struct sk int a;float b;data ,*p;如果有: p=&data; 则对于结构体变量data的成员a的正确引用是_ _。A(*p).data.a B(*p).a Cp-data.a Dp.data.a二、填空题二、填空题1设a=3,b=2,c=1,则ab的值为 ,abc的值为 。2设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 。3以下程序段的输出结果是 。 int a=10,

25、b=50,c=30;if(ab)a=b;b=c;c=a;printf(a=%d b=%d c=%dn,a,b,c);4以下程序的输出结果是 。#include void main() int x= 2,y=-1,z=2;if(xy) if(y0) z= 0; else z+ =1;printf(%dn,z);5下面程序的输出结果是_。#include int func(int a,int b) int c;c=a+b;return(c);void main() int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf(%dn,r);6下面程序的输出结果是_。

26、#include void main() int x=1; void f1(),f2();f1( );f2(x); printf(%dn,x);void f1(void) int x=3; printf(%d ,x); void f2(x)int x; printf(%d ,+x); 7以程序的输出结果是_。#define MA(x) x*(x-1)#includevoid main()int a=1,b=2; pirntf(“%dn”,MA(1+a+b);三、程序完善题三、程序完善题1下列程序计算并输出方程 X2+Y2+Z2=1989 的所有整数解。请完善程序。 #include void

27、main() (1) ; for(i=-45;i=45;i+) for((2) ) for(k=-45;k=45;k+) if( (3) ) printf( “%4d%4d%4dn”, i,j,k); 2有以下程序段:s=1.0;for(k=1;k=n;k+)s=s+1.0/(k*(k+1);printf(%fn,s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;(1) ;k=0; do s=s+d;(2) ;d=1.0/(k*(k+1);while( (3) );printf(%fn,s);3根据以下嵌套的if语句说给条件,填写switch语句,使它完成相同的功能。(假设sc

28、ore的取值在1100之间。) if语句: if(score60) k=1; else if(score70) k=2; else if(score80) k=3; else if(score90) k=4; else if(score=100) k=5; switch语句: switch( (1) ) case 0 ,1,2,3,4,5: k=1; break; (2) :k=2; break;case 7:k=3; break; (1) :k=4; break;default:k=5; 4输入2个整数,输出它们的最小公倍数和最大公约数。请完善程序。 #include void main(

29、) int m,n,gbs,gys; scanf((1)); for(gbs=m; (2) ; gbs=gbs+m); gys= (3) ; printf(“gbs=%dtgys=%dn”, gbs,gys); 5下面函数的功能是判断一个数是否为素数。请完善程序。void f(int m) int m,i,k;k=_(1)_;for(i=2;i=_(2)_;i+)if(_(3)_)break;if(_(4)_)printf(“是素数”);else printf(“非素数”);6用递归实现将输入小于32768的整数按逆序输出。如输入12345,则输出54321。请完善程序。#includestd

30、io.hvoid main() int n; printf(Input n : );scanf(%d, (1) );r(n);printf(n); void r(int m) printf(%d, (2) );m = (3) ;if( (4) ) r(m);四、程序设计题四、程序设计题1 100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序计算大、中、小马的数目。2.编写程序,输入10个整数存入一个一维数组中,再按逆序重新存放后输出。3.从键盘输入4个学生数据信息(包括姓名 学号 年龄 住址),把他们转存到磁盘文件中。.参考答案:参考答案:一、选择题一、选择题12345678910BCBADACABD11121314151617181920DBBCCACCDB二、填空题二、填空题1、 1 0 2、 1.0 3、 a=10 b=30 c=10 4、 2 5、 21 6、 3 2 1 7、 8 三、程序完善题三、程序完善题1、 int i ,j,k j=-45;j=45;j+ x*x+y*y+z*z=1989 2、 d=1 k+ k=n 3、 score/10 case 6 case 8 4、 “%d %d”,&m,&n gbs%n!=0 m*n/gbs 5、 m/2 k m%i=0 i0 四、

温馨提示

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

评论

0/150

提交评论