复习程序1.docx
《复习程序1.docx》由会员分享,可在线阅读,更多相关《复习程序1.docx(13页珍藏版)》请在冰点文库上搜索。
复习程序1
1.#include
intf(intx)
{staticy=1;
y++;
x+=y;
returnx;
}
voidmain()
{intk;
k=f(3);
printf("%d%d\n",k,f(k));
}//58
2.#include
inti;
intf(intx)
{staticintk=0;
x+=k++;
return(x);
}
main()
{i=f(f
(1));
printf(“i=%d\n”,i);
}//i=2
3.#include“string.h”
#include“stdio.h”
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
//abcbcc
4.#include
main()
{charstr[][20]={"Hello","Beijing"},*p=str;
printf("%d\n",strlen(p));
}//
5.#include
voidmain()
{inta=2,b=-1,c=2;
if(a
if(b<0)
c=0;
else
c+=1;
printf(“%d\n”,c);
}//2
6.#include
voidmain()
{intu=24,v=6,w;
while(v)
{w=u%v;
u=v;
v=w;
}
printf("%d\n",u);
}//6
7.#include
voidmain()
{intnum=0;
while(num<=1)
{num++;
printf("%d\n",num);
}
}//1(换行)2
8.#include
func(inta,intb)
{inttemp=a;
a=b;b=temp;
}
main()
{intx,y;
x=10;y=20;
func(x,y);
printf("%d,%d\n",x,y);
}//10,20
9.#include
intfunc(intn)
{if(n==1)
return1;
else
return(n*func(n-1));
}
voidmain()
{intx;
x=func(4);
printf("%d\n",x);
}//24
10.#include
intm=13;
intfun2(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",func2(a,b)/m);
}//2(题目中函数名写错了)
11.#include
main()
{inta,b,c,x;
a=b=c=0;
x=35;
if(!
a)
x--;
elseif(b);
if(c)
x=3;
else
x=4;
printf("%d\n",x);
}//4
12.#include
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)
continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}//x=8
13.intc;
voidchange(int*a,intb)
{--*a;
b++;
c=c+1;
}
main()
{inta=10,b=20,c=30;
change(&a,b);
printf(“%d,%d,%d”,a,b,c);
}
//10,20,30
14.intf(inta)
{intb=0;staticintc=3;
b++;c++;
printf(”%5d%5d%5d”,a,b,c);
return(a+b+c);
}
voidmain()
{inta=2,k;
for(k=0;k<3;k++)
printf(”%5d\n”,f(a));
}
15.longfib(intg)
{switch(g)
{case0:
return0;
case1:
case2:
return1;
}
return(fib(g-1)+fib(g-2));
}
main()
{longk;
k=fib(4);
printf(“k=%d\n”,k);
}
//k=3
16.Main()
{intc[]={1,3,5};
int*k=c+1;
printf("%d",*++k);
}//5
17.main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);}
}//000122
18.main()
{intm=5;
if(m++>5)
printf(“%d\n”,m);
else;
printf(“%d\n”,m--);
}//6
19.main()
{
intI,j;
for(I=1;I<=5;I++)
{for(j=1;j<=5-I;j++)
printf(““);
for(j=1;j<=I;j++)
printf(“%d”,I);
printf(“\n”);
}
}
20.main()
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum=sum+a[i][j];
printf("%d\n",sum);
}//27
21.main()
{inta=2,b=3,c;
c=1;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
printf(“%d\n”,c);
}//-1
22.point(char*p)
{p+=3;}
main()
{charb[4]={'a','b','c','d'},*p=b;
point(p);
printf("%c\n",*p);
}//有错
23.voidmain()
{inti,x[10]={9,8,7,6,5,4,3,2,1,0},*p=x;
for(i=0;i<10;i+=2)
printf("%d",p[i]);
}//97531
24.voidmain()
{intk=4,n=0;
for(;n{n++;
if(n%3!
=0)
continue;
k--;
}
printf("%d,%d\n",k,n);//3,3
}
25.程序功能:
求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
#include
#include
voidmain()
{intn,s=0;
scanf("%d",&n);
n=fabs(n);
/********1*******/
while(n>1)
{
s=s+n%10;
/********2******/
n=n%10;
}
printf("%d\n",s);
}
26.程序功能:
输入1个整数后,输出该数的位数。
(例如:
输入3214则输出4,输入-23156则输出5)。
#include
voidmain()
{intn,k=0;
scanf("3",&n);
while(___4____)
{k++;
___5___;
}
printf("%d\n",k);
}
27.程序功能:
输入x和正数eps,计算多项式1-x+x*x/2!
-x*x*x/3!
+...的和直到末项的绝对值小于eps为止。
#include
#include
voidmain()
{floatx,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
/*****1*****/
t=-t*x/++i;
s+=t;
/*****2*****/
}while(fabs(t)printf("%f\n",s);
}
28.程序功能:
运行时若输入a、n分别为3、6,则输出下列表达式的值:
3+33+333+3333+33333+333333
#include
voidmain()
{inti,a,n;longt=0;
/*********3*******/
s=0;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++){
/*******4******/
t=t*10+i;
s=s+t;
}
s=s*a;
printf("%ld\n",s);
}
29.当运行以下程序时,从键盘键入right?
#include
voidmain(void)
{charc;
while((c=getchar())!
='?
')putchar(++c);
}
30.分别统计字符串中所有英文字母中的各元音字母个数。
#include
#include
voidmain()
{chara[80];intn[5]={0},i;gets(a);
for(i=0;a[i]!
='\0';i++)
/*****3*****/
switch(toupper(a[i]))
{case'a':
n[0]++;break;
case'e':
n[1]++;break;
case'i':
n[2]++;break;
case'o':
n[3]++;break;
/*****4*****/
case'U':
n[4]++;
}
for(i=0;i<5;i++)printf("%d\n",n[i]);
}
31.该程序功能:
输入三个整数,按由小到大的顺序输出这三个数。
#include
voidswap(______4______)
{/*交换两个数的位置*/
inttemp;
temp=*pa;
*pa=*pb;
*pb=temp;
}
voidmain()
{
inta,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(_____5_______)
swap(&a,&b);
printf("%d,%d,%d",a,b,c);}
}
32.该程序功能:
运行时输入10个数,然后分别输出其中的最大值、最小值。
#include
voidmain()
{floatx,max,min;inti;
/********3*******/
for(i=0;i<=10;i++){
scanf("%f",&x);
/*******4********/
if(i=1){max=x;min=x;}
if(x>max)max=x;
if(xprintf("%f,%f\n",max,min);
}
33.该程序功能:
运行时输入整数n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。
#include
#include
voidmain()
{intn,s=0;
scanf("%d",&n);
n=fabs(n);
/********
(1)*******/
while(n>1)
{
s=s+n%10;
/********
(2)******/
n=n%10;
}
printf("%d\n",s);
}
34.将两个字符串连接起来。
#include
voidmain()
{chars1[80],s2[40];
inti=0,j=0;
printf("\nInputthefirststring:
");
scanf("%s",s1);
printf("\nInputthesecondstring:
");
scanf("%s",s2);
while(s1[i]!
='\0')
/******3******/
i+1;
while(s2[j]!
='\0')
/******4******/
s1[++i]=s2[++j];/*拼接字符到s1*/
s1[i]='\0';
printf("\nNewstring:
%s",s1);
}
35.如果运行以下程序段输入字符为“t”
voidmain(void)
{charc1;
scanf("%c",&c1);
c1=(c1>='A'&&c1<='Z')?
(c1+32):
c1;
c1=(c1>='a'&&c1<='z')?
(c1-32):
c1;
printf("%c",c1);
}
36.若执行下面的程序时从键盘上输入3和4
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
37.输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出,例如输入”abc123+xyz.5”,输出应为”abcxyz”。
tolower函数的功能是将大写字母转换为小写字母。
#include
#include
#include
voidmain()
{charstr[256];
inti,k=0,n;
gets(str);
n=strlen(str);
for(i=0;i/********3********/
if(tolower(str[i])<'a'||tolower(str[i])>'z')
{/********4********/
str[n]=str[i];n++;
}
str[k]='\0';
printf("%s\n",str);
}
38.下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”并换行,否则输出“no”。
请填空。
#include
main()
{intk;
printf(“Enteraintnumber:
”);
scanf(“%d”,1);
if_______2_________
printf(“yes\n”);
else
printf(“no”);
}
39.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空。
intn=0,c;
c=getchar();
while(___1___)
{if(___2___)n++;
c=getchar();
}
40.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。
main()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf(“arraya:
\n”);
for(i=0;i<=1;i++)
{for(j=0;___3____;j++)
{printf(“%5d”,a[i][j]);
_______4________;
}
printf(“\n”);
}
printf(“arrayb:
\n”);
for(i=0;___5____;i++)
{for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
printf(“\n”);
}
}
41.下面程序输出两个字符串中对应相等的字符,空格处该填_______。
charx[]=”programming”;
chary[]=”Fortran”;
inti=0;
while(x[i]!
=’\0’&&y[i]!
=’\0’)
{if(x[i]==y[i])
printf(“%c”,_____);
i++;
}
42.下面程序运行后,如果从键盘上输入1298
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);}
}
43.下面这个程序的功能是将字符串s中所有的字符c删除。
#include
main()
{chars[80];
inti,j ;
printf("Pleaseenterstrings:
");
gets(s) ;
for(i=j=0;___(4)____ ;i++)
{
if(s[i]!
=’c’)___(5)____;
}
s[j]=’\0’;
puts(s);
}
44.以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
请填空。
#include
age(intn)
{intc;
if(n==1)__
(1)____;
elsec=__
(2)_____;
return(c);
}
main()
{intn=5;
printf(“age:
%d\n”,____(3)__);
}
45.以下程序的功能为:
由键盘输入一个正整数,将输入的数倒过来输出。
程序中"____N____"是根据程序功能需要填充部分,请完成程序填充。
#include
main()
{inta,r;
while
(1)
{do /*输入大于0的正整数*/
{printf(“inputaninteger;”);
scanf(“%d”,&a);
}while(a<=0);
printf(“thereverseis”);
while(a!
=0) /*将正整数倒过来输出*/
{r=___1_____%10;}
a=_______2_________;
printf(“%d”,r);
}
printf(“\n\n”);
}
}
46.以下程序可输出所有的水仙花数。
(提示:
所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。
例如:
407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数。
)请填空。
main()
{intx,y,z,m;
printf(“Thespecialnumbersare(inthearrangeof1000):
\n”);
for(1;m++)
{x=m/100;
y=2;
z=m%10;
if(3)
printf(“%d”,m);}
}
47.以下程序运行时若从键盘输入:
102030<回车>
#include"stdio.h"
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);
}
48.整数1到5分别是语文(chinese)、数学(math)、英语(English)、物理(physics)、化学(chemistry)五门课程的编号。
本程序读入一个编号n,输出对应的课程名。
程序中"____N____"是根据程序功能需要填充部分,请完成程序填充。
#include“stdio.h”
voidmain()
{intn;
scanf(“%d”,___3___);
switch(n)
{case1:
printf(“chinese\n”);break;
_4___:
printf(“math\n”);break;
case3:
printf(“English\n”);break;
case4:
printf(“physics\n”);break;
case5:
printf(“chemistry\n”);break;
__5__:
printf(“ERROR!
\n”);
}
}
49.执行下面的程序后,a的值为______。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;}
b-=5;
}
}
50.仔细阅读下列程序段,写出函数的功能。
doubleabstr(doublex)
{if(x<0.0)e=-x;
elsex=x;
return(x);}