面试题.......

1.有100个数分别存储在A[0]~A[99]中,要求根据以下给出的条件分别对这100个数按顺序进行求和。你可选择用任何编程语言来实现。

a)求和时,忽略(不计算)从A[50]A[59]以及之间的所有数。

<?php

$number = range(0,99);//创建数组

//echo array_sum($number)."<br>";//计算数组中所有值的总和

 

$arr1=array_slice($number,0,50);//获取0-50的值,不包括50

$arr2=array_slice($number,60,99,true); //获取60-99的值,保留键名

echo array_sum($arr1)+array_sum($arr2);//求和,忽略(不计算)从A[50]A[59]以及之间的所有数

?>

 

b)  求和时,忽略第一个 0”到第二个 0”之间的所有数。假设这100个数中至少有2个数是“0”。

<?php

$num=array(1,2,0,45,55,22,0,65,555,0,444);//这个是用于测试的数组

print_r($num);

$tmp=array();

$a=1;

foreach($num as $key=>$values)

{

         if($values==0 and $a<=2)

         {

                   $tmp[]=$key;

         }

}

$arr1=array_slice($num,0,$tmp[0]);

$arr2=array_slice($num,$tmp[1]+1,99);

echo array_sum($arr1)+array_sum($arr2);

?>

 

c)  求和时,忽略第一个 0”,“1”组合到第二个 0”,“1”组合之间的所有数。组合就是连续出现的意思。例如这100个数按顺序是  51201210191058012344,。。。。。求和时需要忽略91058 假设这100个数中至少有2 0”,“1”组合。

 

 

2.

 int  foo ( int x , int n){

int val;

val =1;

if (n>0) {

if (n%2 == 1)  val = val *x;

val = val * foo(x*x , n/2);

}

return val;

}

请写出val最后的值(用含有x,n的表达式来表示):

 

3. 编程(使用语言不限)

a)  写个程序,要求在屏幕上输出一个圆,圆的半径由键盘输入.

b)  写个程序,要求在屏幕上输出两个同心圆,两个同心圆的半径和圆心位置由键盘输入.

c)  写个程序,要求在屏幕上输出两个不同心的圆,并且两个圆相交处为实心的。两个圆的半径和圆心由键盘输入.

 

 

4. 完成以下方法last_item(title),当每次调用方法last_item(title),参数title的值被加入成为数组arr的元素,并且始终排在第一个;当数组满10 个元素时,要去除最后一个元素,然后再把参数title的值加入数组arr并排在第一个位置。(javascripts试题,也可用其他语言编写)

<?php

Function last_item($title)

{

$arr=array();

if(count($arr)>10)

{

array_pop($arr);

array_unshift($arr,$title);

}

Else

{ array_unshift($arr,$title);}

Return $arr;

}

?>

 

 

5. 有二维数组$arr,完成方法sort($arr,$key),参数$arr用数组$arr,参数$key是数组$arr的键值'age''score',此方法的目的是把数组$arr'age' 'score'从大到小排序,并返回已排序的数组。(php试题,可以用其他语言编写)(30分钟)

6.数据库

数据表名 data

id      ref_id        num

1       1       5

2       3       7

3       5       8

4       3       7

5       1       5

6       3       7

SQL语句分别实现:

(1) 统计ref_id=3 的记录条数

(2) 查询ref_id不重复的记录

(3) 按照ref_id进行统计,一共有多少条不同的记录

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值