第2部分C语言程序设计练习三Word格式文档下载.docx
《第2部分C语言程序设计练习三Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第2部分C语言程序设计练习三Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
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);
5.分析下列两个程序的区别,并写出它们的运行结果。
voidmain()voidmain()
{{
inty=0,s,k;
inty=0,s,k;
for(k=0;
k<
6;
k++)for(k=0;
k++){
s=k*k;
s=k*k;
y+=s;
y+=s;
printf(″y=%d\n″,y);
printf(″y=%d\n″,y);
}}
运行结果:
6.请阅读分析下面程序,然后写出运行结果。
{
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;
4;
{
for(j=0,j<
3;
j++)
printf(〃%4d〃,p[i][j]);
printf(〃\n〃);
}
}
7.阅读下面程序,写出运行结果。
{char*str[]={″Pascal″,″CLanguage″,″Dbase″,″Cobol″};
intk;
for(k=0;
k<
k++)
printf(″%s\n″,str[k]);
8.阅读分析下面程序并写出运行结果。
{char*a[]={″Pascal″,″CLanguage″,″dBase″,″Cobol″};
intj;
for(j=3;
j>
=0;
j--)
printf(″%s\n″,a[j]);
9.阅读下面程序,写出运行结果。
string.h>
{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);
10.请阅读分析下列程序,然后写出程序的运行结果。
inta[]={1,2,3,4,5,6},*p;
p=a;
p++;
*(p+3)+=2;
printf("%d\n",*p);
printf("%d\n",*(p+3));
11.阅读下面程序,并回答问题:
gcd(intx,inty)
{inttemp;
while(y){temp=x%y;
x=y;
y=temp;
returnx;
{inta,b,y;
scanf(″%d,%d″,&
a,&
b);
y=gcd(a,b);
printf(″最大公约数是:
%d″,y);
(1)gcd函数的返回值类型是什么?
(2)若将returnx写成returny会得到什么样的结果?
12.阅读下面程序,写出运行结果。
inta=5,b=5;
chang1()
{inta=4;
printf(″a1=%d,b1=%d\n″,a,b++);
chang2(inta,intb)
{a++;
b--;
{chang1();
a++,b++;
chang2(a,b);
printf(″a2=%d,b2=%d\n″,a,b);
13.阅读分析下面程序后,写出程序的运行结果。
intfun(intx)
intp;
if(x==0||x==1)
return(3);
p=x-fun(x-2);
printf(″%5d″,p);
return(p);
fun(9);
14.阅读下面程序,分析cat函数的功能并写出程序的运行结果。
voidcat(char
s,char
t)
while(
s)s++;
while((
s++=
t++)!
=′\0′);
charsl[80]=″computer″,s2[80]=″Pentium_″;
cat(s2,s1);
printf(″%s\n″,s2);
(1)cat函数的功能:
(2)运行结果:
15.阅读下面程序,写出运行结果。
longfactor(intm)
longintfc;
if(m==0¦
¦
m==1)
fc=1;
fc=factor(m-1)*m;
return(fc);
{
intn;
longintfac;
for(n=1;
n<
5;
n++)
fac=factor(n);
printf(″%Id\n″,fac);
16.写出下面程序的运行结果。
{fun();
fun();
fun()
{inta[3]={0,1,2},b=10;
if(b==10){
for(i=0;
3;
a[i]+=a[i];
printf(″%d,″,a[i]);
printf(″b=%d\n″,b);
b++;
{for(i=0;
a[i]*=a[i];
printf(″%d″,a[i]);
17.阅读下面程序,写出运行结果。
#include<
voidfl(chara[],charb[])
inti;
a[i];
i++)
b[i]=a[i];
b[i]=´
\0´
;
voidf2(char*c,char*t)
while(*c++=*t++);
chara[20]=″basic″,b[20]=″fortran″,c[20]=″pascal″;
char*p=b,*q=c;
fl(b,a);
printf(″%s\n″,b);
f2(p,q);
18.阅读下面程序并写出运行结果。
check(intn,intk)
{intm;
do{
m=n%10;
n=n/10;
}while(k--);
return(m);
{intj,y=2345;
for(j=1;
j<
printf(″j=%d,numberis%d\n″,j,check(y,j));
19.写出下面程序的功能以及程序的运行结果。
swap(int.*p1,int*p2)
{intp;
p=*pl;
*p1=*p2;
*p2=p;
{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);
20.请阅读分析下面程序,然后写出运行结果。
f()
inta=3;
staticintb=4;
a=a+1;
b=b+1;
printf(〃a=%d,b=%d\n〃,a,b);
f();
21.请阅读分析下列程序,然后写出程序的运行结果。
voidfun();
fun();
}
voidfun()
{
staticinta[3]={0,1,2},b=10;
if(b==10)
a[i]+=a[i];
printf("%d,",a[i]);
printf("b=%d\n",b);
b++;
a[i]*=a[i];
for(i=0;
printf("%d,"a[i]);
printf("b=%d\n",b);
}
22.阅读下面程序并写出运行结果。
{staticinta[]={5,3,7,2,1,5,4,10};
ints=0,k;
for(k=0;
8;
k+=3)
{s+=a[k];
printf(″a[%d]=%d,s=%d\n″,k,a[k],s);
23.请阅读分析下面程序,然后写出运行结果。
#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);
24.阅读下面程序段,写出输出结果。
structnum
{floatf1;
intj;
}u={5.6,8},*p=&
u;
{printf(″%.2f,%d\n″,u.f1,u.j);
printf(″%.2f,%d\n″,(*p).f1,p->
j);
25.阅读下面程序段:
structnumber
intu[2];
}v={11,15},*p=&
v;
intx;
请分析下面语句的含义:
x=(*p),u[0]>
p->
u[1]?
(*p).u[0]:
u[1];
26.阅读下面程序并说明语句:
x=p->
d[0]>
d[1]?
d[0]:
d[1];
的含义,然后写出程序的运行结果。
{intd[2];
}n={12,8},*p=&
n;
{intx;
d[0]:
p—>d[1];
printf(″%d″,x);
《C语言程序设计》练习三(参考答案)
261220
输出结果:
no
答:
a[10]元素中存储的是’\0’(字符串结束标记)
34567890
c=7,b=10,a=13,y=799
y=25y=55
123
456
789
101112
Pascal
CLanguage
Dbase
Cobol
dBase
CLanguage
Pascal
abc
abcabc
aabcabc
2
7
(1)gcd函数的返回值类型是整型
(2)若将returnx;
写成returny;
求出的结果总和为0。
a1=4,b1=5
a2=6,b2=7
0527
cat是自定义的字符串连接函数。
即将t串连接到s串的尾部,
形成新串。
Pentium_computer
1
2
6
24
0,2,4,b=10
fortram
pascal
j=1,numberis4
j=2,numberis3
j=3,numberis2
*ptr1=7,*ptr2=5
a=7,b=5
a=4,b=5
a=4,b=6
a=4,b=7
0,2,4,b=10
0,4,16,b=11
a[0]=5,s=5
a[3]=2,s=7
a[6]=4,s=11
Wang605658.00
5.60,8
5.60,8
语句含义:
把结构型变量v中的大数取出来赋值给x变量。
(1)语句含义:
把结构型变量n中两个成员中的大数送x变量
(2)运行结果:
12