黑马程序员技术交流社区
标题:
#黑马点招笔试题库答案
[打印本页]
作者:
dhiwgijihc
时间:
2016-2-17 21:00
标题:
#黑马点招笔试题库答案
1. 找出多个字符串中的最大公共子字符串
2. 计算1~100中所有7的倍数的个数
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
//定义变量接收7倍数的个数
int count = 0;
//循环1-100
for(int i= 1;i<= 100;i++){
//如果和7取余为0,这个数就是7的倍数
if(i%7 == 0)
//计数+1
count++;
}
//打印个数
NSLog(@"%d",count);
return 0;
}
3. 输入6个字符串(仅含字母和数字),字符串排序并输出。
#include <stdio.h>
#include <string.h>
int main(int argc,const char *argv[]){
//定义字符串数组
char str[6][100];
//提示用户输入
printf("请输入6个字符串,由字母和英文组成,默认空格代表一个字符串结束\n");
//接收
for(int i = 0;i < 6; i++){
scanf("%s",str[i]);
}
//循环对数组各行元素进行比较大小,并将较小者向后排序
for(int i= 0; i< 6-1;i++){
for(int j = i+1;j<6;j++){
if(strcmp(str[j], str[i]) > 0){
char temp[100];
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
for (int i= 0; i< 6; i++) {
printf("%s ",str[i]);
}
return 0;
}
4. 输入两数,打印其和、差、积、商、余数。
#include <stdio.h>
int main(int argc,const char *argv[]){
int num1,num2;
printf("请输入两个数用逗号间隔\n");
scanf("%d,%d",&num1,&num2);
int sum = num1 + num2;
int jian = num1 - num2;
int cheng = num1 * num2;
float chu = num1 / (float)num2;
int yu = num1 % num2;
printf("和=%d,差 = %d,积 = %d,商 = %.2f,余数 = %d\n",sum,jian,cheng,chu,yu);
return 0;
}
5. 输入字符串,统计A、B、C、D出现次数,由高到低输出字母和次数。
#include <stdio.h>
#include <string.h>
int main(int argc,const char* argv[]){
//定义
//字符数组
char ch[100];
int numa ,numb,numc,numd;
numa = numb = numc =numd = 0;
int counta,countb,countc,countd;
counta = countb = countc = countd = -1;
//提示输入
printf("请输入字符串\n");
//接收
gets(ch);
//遍历字符数组
unsigned long int len = strlen(ch);
for(int i = 0; i < len ;i++){
//如果数组元素等于a,b,c,d中的一个则让其计数变量+1,并记录元素下标
switch(ch[i]){
case 'a':
numa++;
counta = i;
break;
case 'b':
numb++;
countb = i;
break;
case 'c':
numc++;
countc = i;
break;
case 'd':
numd++;
countd = i;
break;
default:
break;
}
}
//建立数组,将计数变量分别存入数组中
int arr[4][2] = {};
arr[0][0] = numa;
arr[1][0] = numb;
arr[2][0] = numc;
arr[3][0] = numd;
arr[0][1] = counta;
arr[1][1] = countb;
arr[2][1] = countc;
arr[3][1] = countd;
//按由高到低顺序排列
for(int i = 0;i < 3;i++){
for(int j = i+1;j< 4;j++){
if(arr[i][0]<arr[j][0]){
int temp = arr[i][0];
arr[i][0] = arr[j][0];
arr[j][0] = temp;
int temp1 = arr[i][1];
arr[i][1] = arr[j][1];
arr[j][1] = temp1;
}
}
}
//遍历数组并输出其代表的字母
for(int i = 0;i < 4;i++){
printf("%c = %d\t",ch[arr[i][1]],arr[i][0]);
}
return 0;
}
//#include <stdio.h>
//#include <string.h>
//
//int main(int argc, const char * argv[]) {
// //定义数组存储字符串
// char a[100]={};
// //提示输入字符串
// printf("请输入一个字符串:\n");
// //接受
// //scanf("%s",&a);
// gets(a);
// //定义一个统计结构体数组
//
// struct tongji{
// char zimu;
// int cishu;
// } ji[4]={{'A' ,0},{'B' ,0},{'C',0},{'D',0},};
//
//
// int len = sizeof(a)/sizeof(char);
// for (int i = 0 ; i<len; i++) {
// switch (a[i]) {
// case 'a':
// case 'A':
// ji[0].cishu++;
// break;
// case 'b':
// case 'B':
// ji[1].cishu++;
// break;
// case 'C':
// case 'c':
// ji[2].cishu++;
// break;
// case 'd':
// case 'D':
// ji[3].cishu++;
// break;
//
// default:
// break;
// }
// }
//
//
// printf("a是%d次 b是%d次 c是%d次 d是%d次\n",ji[0].cishu,ji[1].cishu
// ,ji[2].cishu,ji[3].cishu);
//
// //反向冒泡排序
// for (int i=0; i<4; i++) {
// for (int j = 0; j<4-1-i; j++) {
// if (ji[j].cishu< ji[j+1].cishu) {
//
// struct tongji temp = ji[j];
// ji[j] = ji[j+1];
// ji[j+1] = temp;
//
// }
// }
// }
//
//
// for (int i = 0 ; i<4; i++) {
// printf("%c %d ",ji[i].zimu,ji[i].cishu);
//
//
//
// }
//
// return 0;
//}
//
6. 输入英文语句,单词首字符转换大写后输出。
#include <stdio.h>
int main(int argc,const char *argv[]){
//定义字符数组
char ch[100];
//提示输入
printf("请输入一句英文,默认输入空格代表一个单词结束\n");
//接收
gets(ch);
// scanf("%s",ch);
//定义一个变量用于控制转换大写
int word = 0;
//循环控制
for(int i = 0;ch[i]!='\0';i++){
//当字符等于空格时,下一个字母-32转换成大写
if(ch[i] != ' '){
if(word == 0){
ch[i]=ch[i]-32;
word = 1;
}
}else{
word = 0;
}
printf("%c",ch[i]);
}
// puts(ch);
return 0;
}
7. 中华人民共和国公民身份证号码组成规则是前4位是代表省份和地区(例如4201代表湖北省武汉市),最后一位代表性别(1或3代表男性)。编写一个程序,通过身份证号码判断某人是否是武汉人以及其性别。(Objective-C)
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
//定义NSString 对象接收身份证号
NSString *identity = @"21060419990102****";
//判断身份证号前4位和后1位
if([identity hasPrefix:@"2105"]){
NSLog(@"此人是辽宁本溪人");
}else{
NSLog(@"此人不是辽宁本溪人");
}
if([identity hasSuffix:@"1"]||[identity hasSuffix:@"3"]){
NSLog(@"此人是男性");
}else{
NSLog(@"此人不是男性");
}
}
return 0;
}
8. 编程求字符串“100”和“150”按十进制数值做差后的结果以字符串形式输出。(Objective-C)
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
NSString *str1 = @"100";
NSString *str2 = @"150";
int num1 = [str1 intValue];
int num2 = [str2 intValue];
int result = num1 - num2;
NSLog(@"result = %d",result);
}
return 0;
}
9. 利用分类给NSString扩展3个方法(Objective-C)
1> 字符串反转(比如@”123”调用方法后返回@”321”)
2> 计算英文字母的个数(比如@”5435abc54abc3AHJ5”调用方法后返回的是9)
3> 去除字符串两端空格(比如@” 1235 45 ”调用方法后返回@”1235 45”)
10. 有一个Baby类,有Cry行为(方法,意为“哭”),Baby可以配一个保姆,但是作为保姆,必须遵守保姆协议:能够处理Baby类Cry的行为。请根据以上描述设计一套代理设计模式(Objective-C)
#import <Foundation/Foundation.h>
//写协议
@protocol lookBabyProtocol<NSObject>
-(void)feedBaby;//喂孩子
-(void)hongBaby;//哄孩子
@end
//创建保姆类
@interface baoMu:NSObject<lookBabyProtocol>
@end
@implementation baoMu
-(void)feedBaby{
NSLog(@"保姆挤奶喂孩子");
}
-(void)hongBaby{
NSLog(@"保姆哄孩子睡觉");
}
@end
//创建baby类
@interface Baby:NSObject
@property (nonatomic,strong)id<lookBabyProtocol> baoMu;//baby有一个保姆
-(void)eat;//饿了
-(void)sleep;//困了
@end
//实现baby类
@implementation Baby
-(void)eat{
NSLog(@"哇哇哇!!!");
[self.baoMu feedBaby];
}
-(void)sleep{
NSLog(@"哇哇哇!!!");
[self.baoMu hongBaby];
}
@end
int main(int argc,const char *argv[]){
@autoreleasepool{
Baby *by = [Baby new];
baoMu *bm = [baoMu new];
}
//遍历数组输出100次的结果
for(int i= 0;i< 6;i++){
printf("%d出现%d次 \t",i+1,count[i]);
}
return 0;
}
作者:
chengxinchengyi
时间:
2016-2-17 22:41
收下了!
作者:
...._v3zok
时间:
2016-2-23 21:40
谢了···已收下
作者:
songzengyu
时间:
2016-2-23 22:05
果断收藏
作者:
嘻嘻哈哈就
时间:
2016-2-23 22:24
刚刚学的ios,看着试题感觉好难的 ,看来只有更努力了。
作者:
chuanzhang
时间:
2016-2-24 01:01
收藏好好研究
作者:
TobyoTenma
时间:
2016-2-24 18:08
很好很强大
作者:
heimazj
时间:
2016-2-24 22:13
都是牛人啊!!!!
作者:
heimazj
时间:
2016-2-24 22:14
都是牛人啊!!!!{:2_31:}
作者:
从心开始のBean
时间:
2016-2-24 23:19
大神, 请收下我的膝盖
作者:
zzt244
时间:
2016-2-26 01:04
。
作者:
Bin-
时间:
2016-2-27 09:27
楼主辛苦!!!!
作者:
彼岸花开
时间:
2016-2-27 23:13
谢谢大神总结
作者:
dx206
时间:
2016-2-28 08:03
谢谢楼主,感觉自己要学的还有很多啊
作者:
海洋深处的8爪鱼
时间:
2016-2-28 22:00
赞赞赞赞赞
作者:
斑斑1111
时间:
2016-2-28 22:17
学习学习!
作者:
jacku
时间:
2016-2-28 23:12
加油加油!!!
作者:
zhangxiansheng
时间:
2016-2-29 09:45
收藏了!!!!!
作者:
从心开始のBean
时间:
2016-2-29 21:34
再来学习下
作者:
zhuzhibo
时间:
2016-3-1 01:23
很好,果断收藏
作者:
youngrivers
时间:
2016-3-1 22:23
不够全,可以参考一下
作者:
米阳
时间:
2016-3-2 15:51
多谢 , 已收下了
作者:
从心开始のBean
时间:
2016-3-2 21:20
这么多.............
作者:
lichuanlong
时间:
2016-3-6 19:04
学习 学习 每日一签
作者:
简单的爱
时间:
2016-3-7 14:09
好东西,赶紧收下
作者:
baye1992
时间:
2016-3-7 14:58
MARK一下,感谢楼主分享
作者:
337325635
时间:
2016-3-7 22:11
谢谢啦{:2_31:}
作者:
wuqi
时间:
2016-4-27 23:31
赶紧存档 免得又被删
作者:
wangchen0357
时间:
2016-4-27 23:52
好帖,留名学习
作者:
胡健cc
时间:
2016-4-28 21:54
收下了!!
作者:
HSQI
时间:
2016-4-29 00:02
给大神跪了
作者:
烛风小糊涂
时间:
2016-4-29 03:52
谢谢楼主的分享!
作者:
妖精的尾巴_wzn
时间:
2016-5-3 21:07
不错,楼主好运,谢谢楼主。
作者:
zxc54321
时间:
2016-5-3 22:56
这么多啊,都不会怎么办
作者:
Chenjunfeng
时间:
2016-8-9 20:42
多谢楼主
作者:
白小七
时间:
2016-8-9 23:38
666,希望有用!!!!!
作者:
邓显俊
时间:
2016-8-23 22:42
不错不错,哈哈哈哈
作者:
黑码小白
时间:
2016-9-1 15:03
个已经通过点招的高分大神分享的干货,要点招和社招的.
作者:
378657357
时间:
2016-9-11 10:37
谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2