《C语言程序设计模拟试题2(附答案).pdf》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题2(附答案).pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计模拟试卷二、填空题。(每空2分,共30分)1.设有变量说明语句int x=l,y=2;则执行下述p rin tf语句的输出结果是 pr i nt f L 0+x/y);2.执行下述程序#include main()(int x,y;scanfC%2d%*2s%ldz;&x,&y);p rin tf(dn,x+y);若从键盘输入12345671则程序的输出结果是 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或。为结束标志),统计并输出最高成绩和最低成绩。请填空。ttinclude mainO(float x,amax,amin;scanf(斌”,
2、&x);amax=x;amin=x;while()(if(xamax)amax=x;else if(xamin)amin=x;scanf(f,&x);)prin tf(z,namax=%fnamin=%fnz,,amax,amin);)4.设n是整型变量,且已具有某正整数值。根据下述数学式1 1+2 2丄+丄.丄+丄.丄 求s的值并输出。334 n+1可编写如下之程序段实现之。请填空。i n t k;d o u b l e s,d;s=0.0;d=l.0;K=0;d o(s=s+d;d=l.0/(k*(k+D);wh i l e (k=n);p r i n t f (f n”,s);5.执行下
3、述程序的输出结果是#i n c l u e d m a i n()(i n t a 6,i;f o r (i=0;i 3)%5;p r i n t f (%3d,a i );)p r i n t f(n);)6.执行下述程序时的输出结果是 i n c l u d e m a i n ()(i n t a =2,4,6,*p t r=&a 0,x=8,y,z;f o r (y=0;y 3;y+)z=(*(p t r+y)x)?*(p t r+y):x;printf dn”,z);7 .执行下述程序的输出结果是#include main()(int a 2 =1 0,2 0,3 0,4 0,5 0
4、,6 0,(*p)2;P=a;printf(dn,*(*(p+2)+1);)8 .执行以下程序的输出结果是#include main()(int s,i,sum();for(i=l;i=1 0;i+)s=sum(i);printf(z/s=%dn,s);)sum(int k)(int x=0;return(x+=k);)9 .下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。void add(int x,int y,)(*z=x+y;)1 0.函数func的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一位存入由整型指针b 所指向的维数组
5、a,最低位存放于a中,次低位存放于al中,依此类推。请填空。void func(int x,int*b)(int r;dor=x%2;_ _ _=r;x/=2;while(x);1 1.以下程序中函数invert实现将数组内所有数组元素的值逆置。比如,执行本程序将输出1 0 987654321请填空。include main()(int a1 0 =l,2,3,4,5,6,7,8,9,1 0,i,n=1 0;invert(a,n-l);for(i二 ;i 1 0;i+)printf(%3 d,ai);printf(、n);)invert(int*s,int num)(int*t,k;t二 s+
6、num;while()(k 二 s;*s二*t;*t 二 k;s+;t;)1 2.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是_union aafloat x;flo at y;char c 6;);struct st(union aa v;float w5;double ave;w;13.执行下述程序的输 岀 结果是 _-include struct str(float x;char*y;*m;struct str group3=95.,Li,82.5,Wang,73.5,Sun);mainO(m=group;p rin tf(%.If,%sn,m-x,m-y);)14.下面
7、的程序用来统 计某文件文件中字符的个数。请填空。#include#include mainOFILE*f p;l o n g n u m=0;i f (f p=f o p e n(z,f n a m.d a t/,r)NULL)(p r i n t f (,Ca n,t o p e n t h i s f i l e!nz,);e x i t (0);)wh i l e (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(f g e t c(f p);n u m+;Ip r i n t f I n u
8、 n F%d n,n u m);f c l o s e (f p);15.执行下述程序后,输出结果为#i n c l u d e#d e f i n e FUN1(a,b)a+b d e f i n e FUN2(a,b)a-b#d e f i n e CAL(a,b)a*b+a+3m a i n ()(p r i n t f C%d nz z,CAL(FUN1(3,5),FUN2(4,5);)二、单项选择题。(每题1分,共20分)1.以下不是c语言规定保留字的是()。(A)f l o a t (B)i n t e g e r (C)s i g n e d.)(D)u n s i g n e
9、d2.设i n t型变量x有初始值3,则表达式x+*5/10的值是()(A)0(B)l(02(D)33.下述程序执行后的输出结果是()#include main()int x=f ;printf cn,a+(xa+1);(A)g(B)h(Oi(D)j4.设有程序#include main()(int i,j;for(i=0,j=l;i=j+l;i+=2,j)printf(绘dn”,i);在运行上述程序时,fo r语句中循环体的执行次数是()(A)3(B)2(01(D)05.在下述选项时,没有构成死循环的程序是()(A)int i=100while(1)(i=i%100+l;if(i100)br
10、eak;(B)for(;);(O int k=1000;do+k;while(k=10000);(D)int s=36;while(s);-s;6.假定a和b为in t型变量,则 执行下述语句组后,b的值 为()。a=l;b=10;do(b-=a;a+;while(b0);(A)9(B)-2(C)-l(D)87.设有变量说明语句int a=l,b=0;则 执行以下程序段的输出结果为()switch(a)(case 1:switch(b)(case :printf(*0*);break;case 1:printf(*1*);break;)case 2:p rin tf(*2*);break;)p
11、 rin tf(、n);(A)*(B)*2*(c)*1*2*(D)有语法错误8.以下合法的数组 说明是()。(A)c h a r a 7=s t r i n g”;(B)i n t a 5=0,1,2,3,4,5;(C)c h a r a=s t r i n g”;(D)INT a =,12,3,4,5;9.下述程序代码中有语法错 误的行是(i n t i,i a 10,i b 10;/第1行/f o r (i=0;i=9;i+)/*第2行/i a i =0;/第3行/i b=i a;/第4行 /(A)第1行(B)第2行(C)第3行(D)第4行10.若己定义i n t a 9,*p=a;并在以
12、后的语句中未改变p的值,则不能表示a l 地址的表达式是(A)p+1(B)a+1(C)a+(D)+p).11.若有下述说明和语句i n t *p p,*p,a=10,b=20;p p=&p;p=&a;p=&b;p r i n t f (z,%d,%d n”,*p,*p p);则 输出结果是()(A)10,10(B)10,20(C)20,10(D)20,2012.执行下述程序后的输出结果是()。i n c l u d e f u n c (i n t a)i n t b=0;s t a t i c i n t c=3;a=c+,b+;r e t u r n (a);)m a i n ()int
13、a=2,i,k;for(i=0;i 2;i+)k=func(a+);printf(刎、n,k);(A)3 (B)0 (C)5 (D)41 3 .执行下述程序的输出结果是()。include main()(int aa3 3=2,4,6);int i,*p=&aa0 0;for(i二 ;i2;i+)if(i=0)aaii+l=*p+l;else+p;printf*p);)printf(、n);)(A)2 3 (B)2 6 (C)3 3 (D)3 61 4.读下面的程序,正确的输出结果是()#include static int a=5 0;void fl(int a)printf(刎,,a+=1
14、 0);void f2(void)printf(d,a+=3);)void main()(int a=1 0;fl(a);f2();printf(%dn,a);)(A)6 0,6 3,6 0 (B)2 0,2 3,2 3 (C)2 0,1 3,1 0 (D)2 0,5 3,1 01 5.执行下述程序的输出结果是()。#include int power(int x,int y);main()(float a=2.6,b=3.4;int p;p二 power(int)a,(int)b);printf(%dn,p);!int power(int x,int y)(int i,p=l;for(i=y
15、;i 0;i-)p=p*x;return(p);)(A)8(B)9(027(D)8116.已知函数s c o p y的定义如下v o i d s c o p y (c h a r *s,c h a r *t)wh i l e (*s+=*t+);)则该函数的功能是()(A)串复制(B)求串长度(C)串比较17.执行下述程序的输出是()。t t i n c l u d e v o i d m a i n()(s t r u c t c o m p l e xi n t r e;i n t i m;);s t r u c t c o m p l e x c p 3 =2,5,4,7;c p 2.r
16、 e=c p.r e+c p l .r e;c p 2.i m=c p O .i m+c p l .i m;p r i n t f (%d%d n,c p 2.r e,c p 2.i m);)(A)7 11(B)6 12(C)9 918.执行下述程序的输出结果是()。#i n c l u d e m a i n ()(u n i o n(D)串反向(D)12 6i n t k;char i2;*s,a;s=&a;s-i 二0 x3 9;s-il=0 x3 8;printf(xn,s-k);)(A)cccc3 8 3 9 (B)3 9 3 8 (C)3 8 0 0 3 91 9.有以下程序,则结
17、果为 struct abc int a,b,c;main()struct abc S2 =1,2,3,4,5,6;int t;t=s0.a+s1.b;printf(%d n ,t);)A)5 B)6 C)7 D)82 0.以下程序for语句循环体中printf语句执行次数是(#include define N 2#define M N+1ftdefine N UM(M+l)*M/2main()(int i;for(i=l;i=N UM;i+)printf(袋dn,i);)(D)3 9 0 0 3 8)o(A)5(B)6(0 8(D)9三、程序分析题(每题5 分,共 30分)1.阅读程序,写出执
18、行该程序的输出结果。#include main()(char s 口=press a key.;int i;char ch;for(i=O;(ch=si)!二 、;i+)(switch(ch)(case p:case a:case k:putchar(ch-32);continue;case :putchar(*);break;case .:putchar(!);break;default:putchar(ch);continue;)putchar(n);)2.阅读程序,写出执行该程序的输出结果。#include define N 5main()int i,j;int aNN;for(i=0;
19、iN;i+)f o r (j=0;j =j)a i j =l;e l s ea i j =a i j-l +l;f o r (i=0;j N;j+)f o r (j=0;j N;j+)p r i n t f (%3d,a i j );p r i n t f (、n);)3.阅 读程 序,写 出执行该程序的输出结果#i n c l u d e m a i n()(i n t m 5,n 5,*p x,*p y,k;p x=m;p y=n;f o r (k=l;k 4;k+,p x+,p y+)(*p x=k;*p y=2*k;p r i n t f C%d,%d ,m k-l ,n k-l );
20、)p r i n t f (、n);p x=&m l ;p y 二&n l ;f o r (k=l;k 3;k+)(*p x+=k;*p y*二 k;p r i n t f (,z%d,%d,*p x+,*p y+);p r i n t f(、n);4.阅读程序,写出执行该程序的输出结果。-i n c l u d e v o i d f (i n t y)Is t a t i c i n t i=5;i n t j=3;j+;p r i n t f (d%d%d二%d n,i,j,y,i+j+y);i*=2;)v o i d m a i n()(i n t x;f o r (x=l;x+3;+
21、x)f (x);)5.阅读下列程序,写出程序运行的输出结果。#i n c l u d e v o i d m a i n ()c h a r a 20 =l A2B3C,b 20,*p l,*p 2;p l=a,p 2=b;d o i f (!(*p l 二、&*p l 二 9)*p 2二*p l;p 2+;*p 2二p l;)e l s e*p2=*pl;pl+,p2+;while(*pl二 、);*p2=pl;printf(%sn,b);)6.阅读下列程序,写出程序的主要功能。main()(int n,I;printf Cnplease input a number:n);scanf(d,
22、&n);printf(%d=,n);for(i=2,i=n,i)while(n!二 i)(if(n%i )(printf(釈!,i);n 二 n/i;)elsebreak;)printf(%d,n);四、程序设计题(每小题1 0分,共2 0分)1、编写.程序求1、2、3、4 个数字能组成多少个互不相同且无重复数字的三位数?都是多少?。2、有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生对兔子,假如兔子都不死,问每个月的兔子总数为多少?试卷二参考答案、填空题。1.1.0000002.173.x!=0&x04.k+5,-3-404436.67.608.s=109.
23、int*z10.*(b+)11.ts12.1813.95,Li14.!feof(fp)15.29二、单项选择题。1、B 2、B 3、A4、C5、C6、D7、B 8、A 9、D10、C11、D12、D13、A 14、D 15、A16、A17、B18、A19、B 20、C三、程序分析题1、Press A Key!2、无任何输出结果。3、1,22,43,63,4,5,12,4、541=101042=165、16、求个正整数分解质因数。四、程序设计题1、#include stdio.hmain()int i,j,k;printf(Hnu);for(i=l;i5;i+)/*以下为三重循环/forQ=l;j5;j+)for(k=l;k5;k+)(if(i!=k&i!=j&j!=k)/确保 i、k 三位互不相同/printf(%d,%d,%dn,i,j,k);2、#include stdio.hmain()long fl,f2;int I;fl=f2=1;for(i=1 ;i=20;i+)(printf(n%ld%ld,fl,f2);if(i%2=0)printf(unH);/*控制输出,每行四个/fl=fl+f2;/*前两个月加起来赋值给第三个月/(2=fl+12;/*前两个月加起来赋值给第三个月/
限制150内