【程序31】
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
【程序34】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
【程序35】
【程序36】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。
【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
1/1+1/3+...+1/n(利用指针函数)
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。
<?php
$arr=array("张氏","男",28,"本科");
$arr2=$arr;
for($i=0,$len=count($arr);$i<$len;$i++){
$arr[$i]=$arr2[$len-1-$i];
}
var_dump($arr);
?>
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
main()
{
unsigned a,b,c,d;
scanf("%o",&a);
b=a>>4;
c=~(~0<<4);
d=b&c;
printf("%o\n%o\n",a,d);
}
【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
<?php
for($i=1;$i<=10;$i++){
for($j=1;$j<=$i;$j++){
$arr[$i][1]=1;
if($i==$j){$arr[$i][$j]=1;
echo $arr[$i][$j]."\t";}
else{
@$arr[$i][$j]=$arr[$i-1][$j-1]+$arr[$i-1][$j];
echo $arr[$i][$j]."\t";
}
}
echo "<br/>";
}
?>
【程序34】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
</pre><pre name="code" class="cpp">main()
{
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;} /*实现a和b的互换*/
if(a>c)
{t=a;a=c;c=t;} /*实现a和c的互唤*/
if(b>c)
{t=b;b=c;c=t;] /*实现b和c的互换*/
printf("%5.2f,%5.2f,%5.2f\n",a,b,c);
}
【程序35】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
$a=max($arr);
$b=min($arr);
$arr[array_search($b,$arr))]=max($arr);;
$arr[array_search($a,$arr))]=max($arr);;
【程序36】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
#include "stdio.h"
#define N 7
main()
{
int a[N]={1,2,3,4,5,6,7},b[N];
int i,m,n,x;
scanf("%d",&m);
n=0;
x=N;
for(i=0;i<m;i++)
{
b[i]=a[x-1];
x--;
}
for(i=N-m-1;i>=0;i--)
{
a[i+m]=a[i];
}
for(i=m-1;i>=0;i--)
{
a[n]=b[i];
n++;
}
for(i=0;i<N;i++)
printf("%d",a[i]);
}
【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。
<?php
$arr=range(1,10);
while(count($arr)>1){
for($i=1;$i<3;$i++){
if(!next($arr)){reset($arr);}
if($i==2){
echo $arr[key($arr)];
unset($arr[key($arr)]);
}
}
}
var_dump($arr);
?>
【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
strlen();
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
1/1+1/3+...+1/n(利用指针函数)
#include <stdio.h>
float sum1(int n);
float sum2(int n);
void main(){
int n;
scanf("%d",&n);
float (*sum)(int n);
if (n<1) {
printf("输入整数不在范围");
}
else if(n%2==1){
sum=sum1;
printf("%f",sum(n));
}
else if(n%2==0){
sum=sum2;
printf("%f",sum(n));
}
}
float sum1(int n){
float temp,sum;
for(int i=1;i<=n;i++){
if(i%2==1){
temp=1.0/float(i);
sum+=temp;
}
}
return sum;
}
float sum2(int n){
float temp,sum;
for(int i=1;i<=n;i++){
if(i%2==0){
temp=1.0/float(i);
sum+=temp;
}
}
return sum;
}