数据结构基础练习题 (2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三.程序填空题。(每空2分,共20分)。
1. 程序的功能是:统计输入字符串中小写字母的个数。
#include
void main()
{ char c;
int num=0;
while((c=getchar())!= ①’\n’ )
{ if(c<′a′‖c>′z′)
continue;
②num++
}
printf(〞%d\n〞,num);
}
2. 下面程序的功能是输出数组中的各字符串,请填空完成程序。
#include
void main()
{ char*a[]={〞abcd〞,〞12345〞,〞efghijk〞,〞67890〞};
int j=0;
for(; ③j<4 ;j++)
puts( ④a[j] );
}
3. 下面程序实现计算1+(1+2)+(1+2+3)+……+(1+2+3+……+10),请填空完善程序。
#include
void main()
{ int total,sum,m,n;
total=0;
for(m=1;m<=10;m++)
{ sum=0;
for(n=1; ⑤n<=m ;n++)
sum=sum+n;
⑥total+=sum ;
}
printf(〞total=%d\n〞,total);
}
4. 函数fun的功能是判断一个3位整数的各位数和百位数之和是否等于其十位上的数字,是则返回〞yes!〞,否则返回〞no!〞,请填空完成函数。
#include
⑦char* fun(int n)
{ int g,s,b;
g=n%10;
s=n/10%10;
b=n/100;
if((g+b)==s)
return〞yes〞;
else
return ⑧’no’ ;
}
void main()
{ int n;
scanf(〞%d〞,&n);
printf(〞%s\n〞,fun(n));
}
5. 下面程序的功能是打印出整数1~1000中满足条件:〞个位数字的立方等于其本身〞的所有数,请填空完成程序。 #include
void main()
{ int n;
for(i=1;i<1000;i++)
{ g= ⑨i%10 ;
if( ⑩g*g*g==i )
printf(〞%4d〞,i);
}
printf(〞\n〞);
}
四. 阅读程序,填写结果(每小题5分,共30分)
1. 下列程序的运行结果是(1 2 3 )。
#include
void main()
{ void add();
int i;
for(i=0;i<3;i++)
add()
}
void add()
{ static int x=0;
x++;
printf(〞%d〞,x);
}
2. 以下程序的输出结果为( 4 )。
#include
void main()
{ int a,b,c,x;
a=b=c=0;
x=35;
x--;
else if(b)
;
if(c)
x=3;
else
x=4
printf(〞%d\n〞,x);
}
4. 下面程序的执行结果是(t=3 )。
#include
#define Min(x,y) (x)<(y)?(x):(y) void main()
{ int a=1,b=2,c=3,d=4,t;
t=Min(a+b,c+d)*1000;
printf(〞t=%d\n〞,t);
}
5. 下列程序的运行结果是( 4321 )。
#include
void fun(int x)
{ putchar(′0′+x%10);
fun(x/10);
}
void main()
{ int m=1234;
fun(m);
putchar(′\n′);
}
6. 以下程序的运行结果是( s=15 )。
#include
void main()
{ int a[]={1,3,5},s=1,j,*p=a;
for(j=0;j<3;j++)
s*=*(p+j);
printf(〞s=%d\n〞,s);
}
五. 程序设计题(每小题10分,共20分)
1. 若一个数出现在自己平方数的右边,则称该数为同构数。
如,因有5*5=25,25*25=625,所以5和25都是同构数;
请编制程序找出1~100之间的全部同构数。
2. 编程序实现功能:在一个元素值按升序存放的整型数组
中插入一个数,使得插入后的数组元素仍然有序