C语言程序设计练习三.docx
- 文档编号:10982400
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:26
- 大小:21.88KB
C语言程序设计练习三.docx
《C语言程序设计练习三.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习三.docx(26页珍藏版)》请在冰豆网上搜索。
C语言程序设计练习三
《C语言程序设计》练习三
三、阅读分析题
1.请阅读分析下面程序,然后写出运行结果。
#include
voidmain()
{
intx=8,y=-5;
printf(〃x=%d,y=%d\n〃,x,y);
x=x+y;y=x-y;x=x-y;
printf(〃x=%d,y=%d\n〃,x,y);
}
2.请阅读分析下面程序,然后写出运行结果。
#include
voidmain()
{
intx=156,a,b,c;
if(x>100)
{
a=x/100;
x=x%100;
}
if(x>10)
{
b=x/10;
c=x%10;
}
printf(〃%3d%3d%3d%3d〃,a,b,c,a*b*c);
}
3.请阅读分析下面程序,然后写出运行结果。
#include
voidmain()
{
intk=4,i;
for(i=0;i<4;i++)
{
switch(k)
{
case4:
printf(〃#〃);
case3:
printf(〃*〃);
default:
printf(〃\n〃);
break;
case2:
printf(〃$〃);
case1:
printf(〃@〃);
}
k--;
}
}
4.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。
#include
voidmain()
{intk=100;charm;
m=k;putchar(m);
printf(″,%d,%c,%o,″k,m-32,m);
}
5.阅读下面程序,并回答问题:
#include
voidmain()
{intx,y,z,c;
scanf(″%d%d%d″,&x,&y,&z);
if(x if(x if(x printf(″%d,%d,%d″,x,y,z); } (1)若程序运行时,输入3、2和5,则输出结果是什么? (2)写出程序所实现的功能。 6.阅读下面程序,并回答问题: #include voidmain() {intm,n; m=65; n=14; while(m! =n) {while(m>n)m-=n; while(n>m)n-=m; } printf(″m=%d\n″,m); } (1)程序输出结果是多少? (2)外循环执行完一次时,m和n的值分别是多少? (3)将while(n>m)n-=m;语句删除后,程序运行情况如何? 7.阅读下面程序,写出运行结果。 #include voidmain() {inta=789,x,y,z; x=a/100; y=a/10-10*x; z=a-10*y-100*x printf(″%d,%o,%x,%d″,x,y,z,100*z+10*y+x); } 8.阅读下面程序,并回答问题: #include voidmain() {inta,b,x,y; scanf(″%d,%d″,&a,&b); x=a*a+b*b if(x>100) {y=x/100;printf(″%d″,y);} elseprintf(″%d″,a+b); } (1)若程序运行时,输入6和9,输出结果是什么? (2)说明程序的功能。 9.阅读下面程序,并回答问题: #include voidmain() {intu,v,a,b,t,r; u=24;v=16; if(u>v){t=u;u=v;v=t;} a=u;b=v; while((r=b%a)! =0) {b=a;a=r;} printf(″a=%d\n″,a); } (1)程序输出结果是什么? (2)该程序完成什么功能? (3)若将while循环替换为do-while循环,请写出相应的程序段。 10.从键盘输入字符A时,写出下面程序的运行结果。 (注: 字符A的ASCII码是65) #include voidmain() { intk; k=getchar();putchar(k); printf(″,%d,%x,%c″,k,k,k+32); } 11.阅读下面程序,写出运行结果。 #include voidmain() {intx,sum=0; loop1: scanf(″%d″,&x); if(x! =8) {if(x%2==0) {sum+=x; printf(″sum=%d\n″,sum); } gotoloopl; } sum-=x; printf(″sum=%d\n″,sum); } 当程序执行时输入数据12345678↙ ,写出程序运行结果。 12.阅读下面程序,写出运行结果。 #include voidmain() { inta[3][3],i,j; for(i=0;i<3,i++) for(j=0,j<3;j++) a[i][j]=i+j for(i=0;i<3;i++) { for(j=0;j<=i;j++) printf(″%2d″,a[i][j]); printf(″\n″); } } 13.请阅读分析下列程序,然后写出运行结果。 #include voidmain() { inta=0,b=1; printf("a=%d,b=%d\n",a,b); a+=b;b+=a; printf("a=%d,b=%d\n",a,b); } 14.若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结 果。 #include voidmain() { intx,y; scanf("%d",&x); if(x>2&&x<=10) y=x*(x+2); elseif(x>-1&&x<=2) y=2*x; elseif(x<-1)y=x-1; if(y! =-1) printf("%d,y); else printf("error"); } 15.请阅读分析下列程序,然后写出程序的循环次数和运行结果。 #include voidmain() { inti; for(i=1;i<6;i++) { if(i%2) { printf("@");continue; } printf("*"); } printf("\n"); } 16.阅读下面程序并写出运行结果。 #include voidmain() {inta=47,x,y,z,w; x=a/2; y=a%2; z=a++; w=++a; printf(″%d,%d,%d,%d″,x,y,z,w); } 17.阅读分析下面程序,请说明程序的功能;然后写出当键盘输入14时,程序的运行结果。 #include voidmain() {intx; scanf(″%d″,&x); if(x%5==0&&x%7==0) printf(″yes″); else printf(″no″); } 18.阅读分析下面程序后,写出程序的运行结果。 #include voidmain() { inta=978,x,y,z,i,j,w; x=a/100; y=(a-100 x)/10; z=a-10 y-100 x; i=y>z? z: y; j=y<=z? z: y; w=100 x+10 i+j; printf(″%d,%d,%d,%d\n″,x,y,z,w); } 19.阅读分析下面程序后,写出程序的运行结果。 #include voidmain() { intn,m; for(n=1;n<=5;n++) { for(m=1;m<=4;m++) printf(″%4d″,m n); printf(″\n″); } } 20.阅读分析下面程序后,写出程序的运行结果。 #include voidmain() { intarr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i; for(i=1;i<=4;i++) { k+=arr[i]+i; printf(″%5d″,k); } } 21.写出以下程序的功能。 如果输入14,写出程序的输出结果。 #include voidmain() {intx; scanf(″%d″,&x); if(x%5==0&&x%7==0) printf(″yes″); else printf(″no″); } 22.阅读下面的程序并回答问题 #include voidmain() {chara[20]=″1234567890″; inti; i=8; printf(″%s\n″,&a[i-3]); } (1)数组中a[10]号元素中存储的是什么字符? (2)请写出程序的运行结果。 23.写出下面程序的运行结果。 #include voidmain() {intx=1987,a,b,c,y; a=x/100; b=x%100/10; c=x%100%10; y=100*c+l0*b+a; printf(″c=%d,b=%o,a=%x,y=%d″,c,b,a,y); } 24.分析下列两个程序的区别,并写出它们的运行结果。 voidmain()voidmain() {{ inty=0,s,k;inty=0,s,k; for(k=0;k<6;k++)for(k=0;k<6;k++){ s=k*k;s=k*k; y+=s;y+=s; } printf(″y=%d\n″,y);printf(″y=%d\n″,y); }} 运行结果: 25.请阅读分析下面程序,然后写出运行结果。 #include voidmain() { inti,j,*p[4],a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; p[0]=&a[0]; p[1]=&a[3]; p[2]=&a[6]; p[3]=&a[9]; for(i=0;i<4;i++) { for(j=0,j<3;j++) printf(〃%4d〃,p[i][j]); printf(〃\n〃); } } 26.阅读下面程序,写出运行结果。 #include voidmain() {char*str[]={″Pascal″,″CLanguage″,″Dbase″,″Cobol″}; intk; for(k=0;k<4;k++) printf(″%s\n″,str[k]); } 27.阅读分析下面程序并写出运行结果。 #include voidmain() {char*a[]={″Pascal″,″CLanguage″,″dBase″,″Cobol″}; intj; for(j=3;j>=0;j--) printf(″%s\n″,a[j]); } 28.阅读下面程序,写出运行结果。 #include #include voidmain() {char*p1,*p2,srt[50]=″abc″,str1[50]; p1=″abc″;p2=″abc″; puts(str); strcpy(str1,p1); p1=str1; printf(″%s\n″,strcat(p1,p2)); strcpy(str+1,p1); printf(″%s\n″,str); } 29.请阅读分析下列程序,然后写出程序的运行结果。 #include voidmain() { inta[]={1,2,3,4,5,6},*p; p=a; p++; *(p+3)+=2; printf("%d\n",*p); printf("%d\n",*(p+3)); } 30.阅读下面程序,并回答问题: #include gcd(intx,inty) {inttemp; while(y){temp=x%y;x=y;y=temp;} returnx; } voidmain() {inta,b,y; scanf(″%d,%d″,&a,&b); y=gcd(a,b); printf(″最大公约数是: %d″,y); } (1)gcd函数的返回值类型是什么? (2)若将returnx写成returny会得到什么样的结果? 31.阅读下面程序,写出运行结果。 #include inta=5,b=5; chang1() {inta=4; printf(″a1=%d,b1=%d\n″,a,b++); } chang2(inta,intb) {a++;b--; } voidmain() {chang1();a++,b++;chang2(a,b); printf(″a2=%d,b2=%d\n″,a,b); } 32.阅读分析下面程序后,写出程序的运行结果。 #include intfun(intx) { intp; if(x==0||x==1) return(3); p=x-fun(x-2); printf(″%5d″,p); return(p); } voidmain() { fun(9); } 33.阅读下面程序,分析cat函数的功能并写出程序的运行结果。 #include voidcat(char s,char t) { while( s)s++; while(( s++= t++)! =′\0′); } voidmain() { charsl[80]=″computer″,s2[80]=″Pentium_″; cat(s2,s1); printf(″%s\n″,s2); } (1)cat函数的功能: (2)运行结果: 34.阅读下面程序,写出运行结果。 #include longfactor(intm) { longintfc; if(m==0¦¦m==1) fc=1; else fc=factor(m-1)*m; return(fc); } voidmain() { intn; longintfac; for(n=1;n<5;n++) { fac=factor(n); printf(″%Id\n″,fac); } } 35.写出下面程序的运行结果。 #include voidmain() {fun(); fun(); } fun() {inta[3]={0,1,2},b=10;inti; if(b==10){ for(i=0;i<3;i++) a[i]+=a[i]; for(i=0;i<3;i++) printf(″%d,″,a[i]); printf(″b=%d\n″,b);b++; } else {for(i=0;i<3;i++) a[i]*=a[i]; for(i=0;i<3;i++) printf(″%d″,a[i]); printf(″b=%d\n″,b); } } 36.阅读下面程序,写出运行结果。 #include voidfl(chara[],charb[]) { inti; for(i=0;a[i];i++) b[i]=a[i]; b[i]=´\0´; } voidf2(char*c,char*t) { while(*c++=*t++); } voidmain() { chara[20]=″basic″,b[20]=″fortran″,c[20]=″pascal″; char*p=b,*q=c; fl(b,a); printf(″%s\n″,b); f2(p,q); printf(″%s\n″,b); } 37.阅读下面程序并写出运行结果。 #include check(intn,intk) {intm; do{ m=n%10;n=n/10; }while(k--); return(m); } voidmain() {intj,y=2345; for(j=1;j<4;j++) printf(″j=%d,numberis%d\n″,j,check(y,j)); } 38.写出下面程序的功能以及程序的运行结果。 #include swap(int.*p1,int*p2) {intp;p=*pl;*p1=*p2;*p2=p;} voidmain() {inta=5,b=7,*ptrl,*ptr2; ptrl=&a;ptr2=&b; swap(ptrl,ptr2); printf(″*ptrl=%d,*ptr2=%d\n″,*ptrl,*ptr2); printf(″a=%d,b=%d\n″,a,b); } 39.请阅读分析下面程序,然后写出运行结果。 #include f() { inta=3; staticintb=4; a=a+1; b=b+1; printf(〃a=%d,b=%d\n〃,a,b); } voidmain() { f(); f(); f(); } 40.请阅读分析下列程序,然后写出程序的运行结果。 #include voidfun(); voidmain() { fun(); fun(); } voidfun() { staticinta[3]={0,1,2},b=10; inti; if(b==10) { for(i=0;i<3;i++) a[i]+=a[i]; for(i=0;i<3;i++) printf("%d,",a[i]); printf("b=%d\n",b); b++; } else { for(i=0;i<3;i++) a[i]*=a[i]; for(i=0;i<3;i++) printf("%d,"a[i]); printf("b=%d\n",b); } } 41.阅读下面程序并写出运行结果。 #include voidmain() {staticinta[]={5,3,7,2,1,5,4,10}; ints=0,k; for(k=0;k<8;k+=3) {s+=a[k]; printf(″a[%d]=%d,s=%d\n″,k,a[k],s); } } 42.请阅读分析下面程序,然后写出运行结果。 #include #include structstu { charname[20]; intchinese; intmath; structstu*next; }; voidmain() { char*str[]={〃Zhang〃,〃Wang〃,〃Liu〃}; intaver,x[3][3]={{80,75,85},{60,56,73},{90,83,76}}; structstus; strcpy(s.name,str[1]); s.chinese=x[1][0]; s.math=x[1][1]; aver=s.chinese+s.math; printf(〃%s\t%d\t%d\t%6.2f\n〃,s.name,s.chinese,s.math.aver/2.0); } 43.阅读下面程序段,写出输出结果。 #include structnum {floatf1; intj; }u={5.6,8},*p=&u; voidmain() {printf(″%.2f,%d\n″,u.f1,u.j); printf(″%.2f,%d\n″,(*p).f1,p->j); } 44.阅读下面程序段: structnumber { intu[2]; }v={11,15},*p=&v; intx; 请分析下面语句的含义: x=(*p),u[0]>p->u[1]? (*p).u[0]: p->u[1]; 45.阅读下面程序并说明语句: x=p->d[0]>p->d[1]? p->d[0]: p->d[1];的含义,然后写出程序的运行结果。 #include structnumber {intd[2]; }n={12,8},*p=&n; voidmain() {intx; x=p->d[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习