《电大C语言程序设计期末考试试题A.pdf》由会员分享,可在线阅读,更多相关《电大C语言程序设计期末考试试题A.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电大C语言程序设计期末考试试题A一、选 择 题(每 题 L5分,共 计 4 5 分)1、以下叙述正确的是【】A.C语言程序是由过程和函数组成的B.C语言函数可以嵌套调用,例如:f u n (f u n(x)C.C语言函数不可以单独编译D.C语言中除了 m a i n 函数,其他函数不可作为单独文件形式存在2、以下关于C语言的叙述中正确的是【】A.C语言中的注释不可以夹在变量名或关键字的中间B.C语言中的变量可以在使用之前的任何位置进行定义C.在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C语言的数据常量中夹带空格不影响常量的正常使用3、以下C语言用户标识符中,不合法的是【】A
2、._ 1B.A a BcC.a _ bD.a-b4、若有定义:d o u b l e a=2 2;i n t i=0,k=1 8;,则不符合C 语言规定的赋值语句是【】A.a=a+,i+;B.i=(a+k)=(i+k);C.i=a%l l;D.i =!a;5、有以下程序#includemain()char a,b,c,d;scanf(u%c%cv,&a,&b);c=getchar();d=getchar();p rin tf(%c%c%c%cn”,a,b,c,d);当执行程序时,按下列方式输入数据(从第1 列开始,代表回车,注意:回车也是一个字符)34则输出结果是】A.1234 B.12 12
3、C.123D.12346、以下关于C语言数据类型使用的叙述中错误的是【】A.若要准确无误差的表示自然数,应使用整数类型B.若要保存带有多位小数的数据,应使用双精度类型C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型7、若 a 是数值类型,则 逻 辑 表 达 式(好=1)|(a!=l)的 值 是【】A.1B.0C.2D.不知道a 的值,不能确定8、以下选项中与if(a=1)a=b;else a+;语句功能不同的sw itch语 句 是【A.switch(a)case:a=b;break;default:a+;B.switc
4、h(a=1)case 0:a=b;break;case 1:a+;C.switch(a)default:a+;break;case 1:a=b;D.switch(a=1)case 1:a=b;break;case 0:a+;)9、有如下嵌套的i f语句if(ab)if(ac)k=a;else k=c;elseif(bc)k=b;else k=c;以下选项中与上述i f语句等价的语句是【】A.k=(ab)?a:b;k=(bc)?b:c;B.k=(ab)?(bc)?b:c);C.k=(ab)?(ac)?a:c):(be)?b:c);D.k=(ab)?a:b;k=(ac)?a:c;10、有以下程序#
5、includemain()in i,j,m=l;for(i=l;i0;j一 一)if(i*j)3)break;m=i*j;printf(m=%dn,m);)程序运行后的输出结果是【】A.m=6B.m=2C.m=4D.m=511、有以下程序#include(stdio.h main()int a=l;b=2;for(;a8;a+)b+=a;a+=2;)printf(%d,%dn,a,b);程序运行后的输出结果是【】A.9,1 8B.8,1 1C.7,1 1D.1 0,1 41 2、有以下程序,其 中 k的初值为八进制数 i n c l u d e m a i n ()i n t k=01 1;p
6、 r i n t f (/,%d n,/,k+);程序运行后的输出结果是【】A.1 2B.1 1C.1 0D.91 3、下列语句组中,正确的是【】A.c h a r *s;s=01 y m p i c ;B.c h a r s 7 ;s=O l y m p i c”;C.c h a r *s;s=“O l y m p i c ;D.c h a r s 7 ;s=O l y m p i c ;1 4、以下关于r e t u r n 语句的叙述中正确的是【】A.一个自定义函数中必须有一条r e t u r n 语句B.一个自定义函数中可以根据不同情况设置多条r et u r n 语句C.定义成v
7、oi d类型的函数中可以有带返回值的r et u r n 语句D.没有r et u r n 语句的自定义函数在执行结束时不能返回到调用处1 5、下列选项中,能正确定义数组的语句是【】A.i n t n u m0.20 0 8 ;B.i n t n u m;C.i n t N=20 0 8;i n t n u mN ;D.#defi n e N 20 0 8i n t n u mN ;1 6、有以下程序#i n cl u de v oi d fu n (ch a r *c,i n t d)*c=*c+1;d=d+1;pr i n t f(c,枇,*c,d);ma i n ()ch a r b=a
8、,a=A,;fu n (&b,a);pr i n t f(%c,b,a);程序运行后的输出结果是【】A.b,B,b,A B.b,B,B,A C.a,B,B,a D.a,B,a,B1 7、若有定义i n t (*Pt)3;,则下列说法正确的是 A.定义了基类型为i n t 的三个指针变量B.定义了基类型为i n t 的具有三个元素的指针数组ptC.定义了一个名为*pt、具有三个元素的整型数组D.定义了 个名为p t的指针变量,它可以指向每行有三个整数元素的二维数组18、设有定义double a10,*s=a;,以下能够代表数组元素a3的 是 A.(*s)3B.*(s+3)C.*s3D.*s+31
9、9、有以下程序#include(stdio.h)main()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i 5;i+)s=s+abi);printf(%dn”,s);)程序运行后的输出结果是【】A.6B.10C.11D.1520、有以下程序#include main()int b 33=0,1,2,0,1,2,0,1,2),i,j,t=l;for(i=0;i3;i+)for(j=ij=l;j+)t+=bibji;pr i n t f(,z%dn,z,t);程序运行后的输出结果是【】A.1B.3C.4D.921、若有以下定义和语句ch a r s l
10、1 0=,a bcd!,z,*s 2=n l 23;pr i n t f(d%dn,,s t r l en (s i),s t r l en (s 2);则输出结果是】A.5 5 B.1 0 5 C.1 0 7D.5 822、有以下程序t fi n cl u de t t defi n e N 8 v oi d fu n (i n t *x,i n t i)*x=*(x+i);ma i n (for (i=0;i VN /2;i+)pr i n t f(%d,a i );pr i n t f(n);1,2,3,4,5,6,7,8 ,i;程序运行后的输出结果是【】A.1 31 3B.2234C.
11、3234 D.1 23423、有以下程序fu n (a,2);i n t a N =t t i n cl u de i n t f(i n t t L i n t n);ma i n i n t a 4 =l,2,3,4 ,s;s=f(a,4);pr i n t f(,z%dn,z,s);i n t f(i n t t L i n t n)i f(n 0)r et u r n t n-l +f(t,n-l);el s e r et u r n 0;)程序运行后的输出结果是【】A.4B.1 0C.1 4D.624、有以下程序#i n cl u de i n t fu n ()s t a t i
12、c i n t x=l;x*2;r et u r n x;)ma i n ()i n t i,s=l,for (i=l;i =2;i+)s=fu n ();pr i n t f(%dn”,s);)程序运行后的输出结果是【】A.0 B.1 C.4 D.825、有以下程序#i n cl u de defi n e SUB(a)(a)-(a)ma i n ()i n t a=2,b=3,c=5,d;d=SUB(a+b)*c;pr i n t f(/z%d n,z,d);)程序运行后的输出结果是【】A.O B.-1 2C.-20D.1 026、设有定义:s t r u ct compl ex i n
13、t r ea l,u n r ea l;da t a l=l,8 ,da t a 2;则以下赋值语句中错误的是【】A.da t a 2=da t a l;B.da t a 2=(2,6);C.da t a 2.r ea l=da t a l.r ea l;D.da t a 2.r ea l=da t a l.u n r ea l;27、有以下程序#i n cl u de t t i n cl u de s t r u ct A i n t a;ch a r b1 0 ;dou bl e c;v oi d f(s t r u ct A t);ma i n ()s t r u ct A a=1 0
14、 0 1,z zZh a n gDa,z,1 0 9 8.0 ;f(a);pr i n t f(z z%d,%s,%6.l fn/z,a.a,a.b,a.c);v oi d f(s t r u ct A t)t.a=1 0 0 2;s t r cpy (t.b,Ch a n gRon g);t.c=1 20 2.0;程序运行后的输出结果是【】A.1 0 0 1,z h a n gDa,1 0 9 8.0B.1 0 0 2,ch a n gRon g,1 20 2.0C.1 0 0 1,eh a n gRon g,1 0 9 8.0D.1 0 0 2,Zh a n gDa,1 20 2.028、
15、有以下定义和语句s t r u ct w or k er s i n t n u m;ch a r n a me20 ;ch a r c;s t r u ct i n t da y;i n t mon t h;i n t y ea r;s;s t r u ct w or k er s w,*pw;p w=&w;能给w中y ea r成员赋1 9 8 0的语句是【】A.*pw.y ea r =1 9 8 0;B.w.y ea r=1 9 8 0;C.pw-y ea r=1 9 8 0;D.w.s.y ea r=1 9 8 0;29、有以下程序#i n cl u de ma i n ()i n t
16、a=2,b=2,c=2;pr i n t f(%dn ,a/b&C.;)程序运行后的输出结果是 A.0B.1C.2D.330、有以下程序#i n cl u de ma i n ()FILE*fp;ch a r s t r 1 0 ;fp=fopen (my fi l e.da t ,w );fpu t s (a bc,fp);fcl os e(f p);fpfopen (my fi l e.da t a ,a+);fpr i n t f(fp,d,2 8);r ew i n d(f p);fs ca n f(fp,s ,s t r);pu t s (s t r);fcl os e(f p);)
17、程序运行后的输出结果是【】A.a bcB.28 cC.a bc28D.因类型不一致而出错二、填 空 题(每 空 2 分,共 30 分)1、设 x为 i n t 型变量,请写出一个关系表达式,用以判断x同时为3 和 7的倍数时,关系表达式的值为真。2、有以下程序t t i n cl u de ma i n ()i n t a=l,b=2,c=3,d=0;i f(a=l)i f(b!=2)i f(c=3)d=l;el s e d=2;el s e i f(c!=3)d=3;el s e d=4;el s e d=5;pr i n t f(%dn ,d);)程序运行后的输出结果是 O3、有以下程序i
18、 n cl u de ma i n ()i n t m,n;s ca n f(%d%d,&m,&n);w h i l e(m!=n)w h i l e(m n)m=m-n;w h i l e(m n)n=n-m;)pr i n t f(%dn ,m);)程序运行后,当输入1 4 6 3 时,输出结果是4、有以下程序#i n cl u de ma i n ()i n t i,j,a 3 =1,2,3,4,5,6,7,8,9 ;for (i=0;i 3;i+)for (j=i;j 3;j+)pr i n t f(w%d%,a i j );pr i n t f(n);)程序运行后的输出结果是 O5、
19、有以下程序#i n cl u de ma i n ()i n t a =l,2,3,4,5,6 ,*k 3,i=0;w h i l e(i 3)k i =&a 2*i ;pr i n t f*k i );i+;程序运行后的输出结果是6、有以下程序#i n cl u de ma i n ()i n t a 3 3 1,2,3,4,5,6 ,7,8,9 ;i n t b3 =0 ,i;for (i=0;i 3;i+)bi =a i 2+a 2 i ;for (i=0;i 3;i+)pr i n t f;pr i n t f(n );程序运行后的输出结果是 o7、有以下程序#i n cl u de#
20、i n cl u de v oi d fu n (ch a r *s t r)ch a r t emp;i n t n,i;n=s t r l en (s t r);t emp=s t r n-1 ;for (i=n-l;i 0;i-)s t r i =s t r i-l ;s t r 0 =t emp;)ma i n ()ch a r s 5 0 ;s ca n f(s ,s);fu n (s);pr i n t f(%s n ,s);程序运行后输入:a bcdef 回车,则输出结果是8、以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。/i n
21、 cl u de ma i n ()i n t x=25 6;pr i n t f(,%d-%d-%dn,z,x/1 0%1 0,x/1 0 0);)9、以下程序用以删除字符串所有的空格,请填空。/i n cl u de ma i n ()ch a r s 1 0 0 =,0 u r t ea ch er t ea ch C l a n gu a ge!”;i n t i,j;for (i=j=O;s i !=,0 ;i+)i f(s i !=)s j =s i ;j+:s j =_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _pr i n t f(%s
22、n ,s);)1 0 以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。t t i n cl u de ma i n ()i n t a 1 0 ,*p,*s;for (p=a;p-a 1 0;p+)s ca n f;for (p=a,s=a;p-a *s)s=;pr i n t f(i n dex=%dn”,s a);三、程序改错题(1 0分)下列给定程序中,函数pr oc的功能是:先从键盘输入一个3行3列的矩阵各个元素的值,然后输出主对角线元素之积,请修函数pr oc中的错误使其能得出正确的结果。注意不要修改主函数,不要增删程序行或更改程序的结构。t t i n
23、 cl u de v oi d pr oc()(i n t a r r 3 3,mu l;i n t i,j;mu l=l;pr i n t f C pl ea s e i n pu t a n 3*3 a r r a y:nz,);for (i=0;i 3;i+)(/*第一处错误区*/for (i=0;j 3;j+)s ca n f(%d”,&a r r i i );)for (i=0;i 3;i+)/*第二处错误区*/mu l=mu l*a r r i j ;pr i n t f(/zMu l=%dn,z,mu l);v oi d ma i n()pr oc();)四、程序编写(1 5 分
24、)请补充main函数,该函数实现的功能是把一个二维字符数组中最大的字符拷贝到新的数组 str 中。例 如:ar r 3=“ho例 ,yu fu i“,“xgf”,则 str=“oyx”。v oid main()(int i=0;c har *ar r 3=hoih,yu fu i,xgf;c har *p;c har str 8;/*请开始编写*/str i=0;p r intf(z,new str ing n);p u ts(str);)C语言程序设计(A卷)答案一、选择题1-10:BBD C C D ABC A11-20:D D ABD AD BC C21-30:AC BC C BAD A
25、C二、填空题(1)(X%3=0)&(X%7=0)(2)4(3)7(4)12356 9(5)135(6)101418(7)fabc d e(8)x%100%10(9)s i+l(10)s+1三、程序改错题for (i=0;j3;j+)改为 for (j=0;j3;j+)mu l=mu l*ar r i j;改为mu l=mu l*ar r i i;四、程序编写ttinc lu d e itinc lu d e v oid main()int i=0;c har *ar r 3=hoih,yu fu i,xgf;c har *p;c har str 8;p=ar r;for (i=0;i3;i+)stri=0;printf C new string n);puts(str);stri=*pi;while(*pi)if(stri*pi)stri=*pi;pi+;