华为机考MySQL_华为机考2
#include
using namespacestd;void func(int *p, int n, intk);voidmain()
{int a[]={1,2,3,4,5};inti;
func(a,5,2);for(i=0;i<5;i++)
cout<
cout<
}void func(int *p ,int n, intk)
{inttemp;inti;
k=k%n;//n是总长度,k是移位位数,实际移位k%n
if(k>=0)//右移
{while(k)
{
temp=p[n-1];for(i=n-1;i>0;i--)
p[i]=p[i-1];
p[0]=temp;
k--;//临时数组存放最后一个数据,然后依次后移,k--;
}
}else if(k<0)
{
k=k*(-1);//左移
while(k)
{
temp=p[0];for(i=1;i
p[i-1]=p[i];
p[n-1]=temp;
k--;//临时数组存放第一个数据
}
}
}
View Code
7、数组循环移位
10.将字符串中的所有字母都替换成该字母的下一个字母
#include
using namespacestd;
#include#include#include
void func(char *p);voidmain()
{char str1[20];
printf("enter:");
gets(str1);
func(str1);
puts(str1);
}void func(char *p)
{charch;while(*p)
{ ch=*p;//临时字符//判断是否是字符,且不是z或者Z
if(isalpha(*p)&&(*p!='z')&&(*p!='Z'))、、*p=ch+1;else if(*p='z')*p='a';else if(*p='Z')*p='A';
p++;
}
}
回文判断
#include
using namespacestd;bool func(intm);voidmain()
{intm;
cout<
cin>>m;
cout<
}bool func(intm)
{int i,n=0;
i=m;while(i)
{
n=n*10+i%10;
i/=10;
}//就是把原数的位从低到高取出来,组成新数,两个数搞出来看看是否相等。。
if(m==n)return true;return false;
}
View Code
字符串转成整数
#include #include#include
using namespacestd;int func(chara[]);voidmain()
{char a[]={'1','2','3','4','\0'};
cout<
}int func(chara[])
{int i=0;int sum=0;while(a[i]!='\0')
{
sum=sum*10+(a[i]-'0');
i++;
}returnsum;
}
View Code
下面就说说为什么字符减'0'可以到相应的整数。现在比如我们要字符‘1’转换成数字1,就这么一个变化,我们看到了大家注意了字符型常量用''括起来的原因是,它们在计算机中都以各自的ASCII表示。而‘1’的对应编码是49的二进制码,但是我们的数字1,就等于1呀,所以为了由原来的‘1’实际上就是49的二进制变成现在的1对应的二进制1,只好用49-48=1了。但是在ASCII码里‘0’对应的刚好是48的二进制码,所以我们转换的时候只需要‘1’-‘0’=1;就可以了。而数字的ASCII码是按顺序规定的。所以其它字符要转换成数字都可以用减‘0’来表示。比如‘2’的ASCII是50,而我们要得到数字2,于是用‘2’-48=2了。看来当我们知道数据在计算机中的存储规则的时候,问题就迎刃而解了。
大小写字母的转换:先看ASCII码:a~z是97~122的二进制,而A~Z是65~90的二进制编码,于是我们就得出:大写字母=小写字母-32 ;这个公式了。当然这里的32我也可以这么写‘Z’=‘z’-'空格'。因为空格的ASCII码是32对应的二进制编码。
#include #include
int main(void)
{floatn;char *str = "12345.67";
n=atoi(str);
printf("string = %s integer = %f\n", str, n);return 0;
}
View Code
#include #include
intmain()
{char a[] = "-100";char b[] = "123";intc ;
c= atoi( a ) +atoi( b ) ;
printf("c = %d\n", c) ;return 0;
}
View Code
int atoi(const char *nptr);
参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零,头文件: #include
13.求一个二维数组每列的最小值
#include
using namespacestd;void fun(int input[3][4], const int m, const int n, int output[4]);intmain()
{int input[3][4] = { {21,48,86,92},
{10,23,12,69},
{46,78,49,13}};int output[4];
fun(input,3, 4, output);
cout<
{for(int j=0; j<4; j++)
{
cout<
}
cout<
}
cout<
{
cout<
}
cout<
}void fun(int input[3][4], const int m, const int n, int output[4])
{int i = 0;int j = 0;for (i=0; i
{
output[i]= input[0][i];//暂存每一列的第一行元素
for (j=0; j
{if (output[i] >input[j][i])
{
output[i]= input[j][i];//依次比较得到每一列的最小值
}
}
}
}
View Code
14.连续字符统计(如AABCCCD:A2B1C3D1)
#include #include#include
using namespacestd;void func(char str[],intlen);voidmain()
{char str[20];intlen;
cout<
gets(str);
len=strlen(str);
func(str,len);
}void func(char str[], intlen)
{int count=1;inti;for(i=0;i
{if(str[i]==str[i+1])
count++;//利用数组比较,也可用指针
else{
cout<
count=1;//碰到新元素。回归为0;
}
}
cout<
}
View Code
15.找出一个字符串中是否包含相同的子字符串(要求子串长度大于等于2)
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);功能:从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。
返回值:返回该位置的指针,如找不到,返回空指针。
例子:
char str[]="1234 xyz";char* str1=strstr(str,"34");cout<
原型:char * strncpy(char *dest, char *src,size_tnum);功能:(c/c++)复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。注意:并不是添加到destination的最后,而是紧跟着由source中复制而来的字符后面。下面举例说明[1]:
char des[] = "Hello,i am!";char source[] = "abc\0def";strncpy(des,source,5);此时,des区域是这样的:a,b,c,\0,\0,逗号,i,空格,a,m,!
注意:\0,\0并不是添加在!的后面。
没看懂
#include #include
using namespacestd;int fun(char* str, intn)
{char *temp = new char[n+2];char *str2 =str;int sum = 0;int outsum = 0;char*t;for(int i = 0; i < n; i++)
{for(int j = 2; j <= n-i; j++)
{
sum= 0;
str2= str;//赋
memset(temp,0,(n+2)*sizeof(char));//初始化0
strncpy(temp, str+i, j);//
while((t = strstr(str2,temp)) !=NULL)
{
sum++;
str2= t+j;
}if( sum >outsum)
{
outsum=sum;
}
}
}if(outsum == 1)return 0;returnoutsum;
}intmain()
{char strstr[1000];
memset(strstr,0,sizeof(strstr));char *s =strstr;
cin>>s;int n =strlen(s);intoutsum;
outsum=fun(s,n);
cout<< outsum <
system("pause");return 0;
}
View Code
16.已知:yi er san si wu liu qi ba jiu 分别对应123456789,对一段只含有这几种字符的字符串进行转换,转换成相应的数字
#include #include
using namespacestd;char* sss[9] = {"yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};int fun(char*str)
{inti;int sum = 0;int d = 0;
i= 0;intj;while(str[i] != '\0')
{if(str[i] == 'y' || str[i] == 'e'|| str[i] == 'w' || str[i] == 'q' || str[i] == 'b')
d= 2;else if(str[i] == 'l' || str[i] == 'j')
d= 3;else if(str[i] == 's')
{if(str[i+1] == 'a')
d= 3;else d = 2;
}//确定碰到字符时移动的距离d
for(int k = 0; k < 9; k++)
{if(strncmp(str+i,sss[k],d) == 0)//匹配成功
j = k+1;//实际数字
sum = 10*sum +j;
}
i= i+d;//每比较一个字符串移动的距离//不考虑字符串不匹配的情形
}returnsum;
}intmain()
{char strstr[1000];
memset(strstr,0,sizeof(strstr));char *s =strstr;
cin>>s;intoutsum;
outsum=fun(s);
cout<< outsum <
system("pause");return 0;
}
17.删除字符串中字符个数最少的字符串
暂时没看懂
#include
#include
using namespace std;char* fun(char* str,int n)
{
int i=0; int j=0; int hash[256] = {0}; char *result = new char[n+1]; memset(result,0,(n+1)*sizeof(char));//开辟字符指针并初始化
for( i = 0;i < n; i++)
{
hash[str[i]]++;}
//每个字符的个数。用哈希值表示
int min= 0x7fffffff;for( i= 0;i < 256; i++)
{
if(hash[i] < min && hash[i] != 0)
min= hash[i];}
for(i= 0,j = 0;i < n; i++)
{
if(hash[str[i]] !=min)
{
result[j++] = str[i];}
}
return result;}
int main()
{
char strstr[1000]; memset(strstr,0,sizeof(strstr)); char *s = strstr; cin >> s;char *re= NULL;re= fun(s,strlen(s));cout << re << endl; system("pause"); return 0;}
View Code
C:
#include"stdio.h"//这个头文件包含gets()函数
int main(void)
{
char str1[5];gets(str1);printf("%s\n", str1);return 0;}
C++:
#include
using namespace std;int main()
{
char str[100];gets(str);cout<
gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为:
gets(s);其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
18.比较两个字符串,相等返回1,不等返回不等的位置
#include
#include
#include
using namespace std;void func(const char *str1,const char*str2);
void main()
{
char *str1,*str2; str1=new char[256]; str2=new char[256]; memset(str1,0,256*sizeof(char)); memset(str2,0,256*sizeof(char)); cout<
//从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读//取串的内容,读取的换行符被转换为null值,并由此来结束字符串。
func(str1,str2);}
void func(const char *str1,const char*str2)
{
int m,n; int k=0; int l,j; int i=0; m=strlen(str1); n=strlen(str2); while(*str1!='\0')
{
if(*str1==*str2)//||(abs(*str1-*str2)=='a'-'A'))
{str1++; str2++; k++;//k是位置。
}
else break;}
if(k==m&&n==m)//完全相等则为1
cout<
cout<
View Code
19.比较两个字符串是否相等,大小写也算相等
#include
#include
#include
using namespace std;bool func(const char *str1,const char*str2);
void main()
{
char *str1,*str2; bool m; str1=new char[256]; str2=new char[256]; memset(str1,0,256*sizeof(char)); memset(str2,0,256*sizeof(char)); cout<
bool func(const char *str1,const char*str2)
{
int m,n; int k=0; m=strlen(str1); n=strlen(str2); if(m!=n)
return false;else
{
while(*str1!='\0')
{
if(*str1==*str2||(abs(*str1-*str2)=='a'-'A'))//大小写的处理,相减为32
{str1++; str2++; k++;}
else break;}
}
cout<
return true;else
return false;}
View Code
20.将一句英文的每个单词的第一个字母大写
#include
#include
#include
using namespace std;void func(char *ptr);
void main()
{
char *ptr;
ptr =new char[256];
memset(ptr, 0, sizeof(ptr));
cout<
gets(ptr);
func(ptr); cout<
void func(char *ptr)
{
char *ptr1;
ptr1=new char[256]; memset(ptr1, 0, sizeof(ptr1));
ptr1 = ptr;if(*ptr1
*ptr1=*ptr1;
else
*ptr1 -= 32;
while(*ptr1!='\0')
{
if(*ptr1==' ')
{
if(*(ptr1+1)
*(ptr1+1)=*(ptr1+1);
else
*(ptr1+1) -= 32;
}
ptr1++;
//空格后的第一个字符大写,减去32.
}
}
View Code
swap(a,b)值交换的四种方法:
[cpp]
void swap(int &a, int &b)
{
//方法一:
int tmp = 0;
tmp = b;
b = a;
a = tmp;
//方法二:
//a = a+b;
//b = a-b;
//a = a -b;
//方法三:
//a ^= b ^= a ^= b;
//方法四:
//a = a+b-(b=a);
}
int main(void)
{
int a = 3;
int b = 4;
printf("before swap: a = %d, b = %d\n", a, b);
swap(a, b);
printf("after swap: a = %d, b = %d\n", a, b);
return 0;
}
结果:
before swap: a = 3, b = 4
after swap: a = 4, b = 3
关于传参方式有三种:值传参、地址传参、引用传参(C++方法),上面使用的是第三种,引用传参,因为这种传参方式使得swap里面实现更为直观。当然,也可以使用第二种传参方式地址传参,不过,值传参是不行的哦。
华为机考MySQL_华为机考2相关推荐
- 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...
原标题:华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹 华为手机之所以备受关注,主要是在最近几年时间里,国产手机虽然都取得了不错的成绩,但是相较于三星和iPhone来说,相差甚远 ...
- 华为魔术手机拆机图解_华为P40 Pro上手体验
看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:华人手机维修师专属工具集合店,不锈钢拆机片5个只需9.9元!包邮 山猫潮品:手机渠道直供, ...
- 华为p30是不是鸿蒙芯片,鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史...
原标题:鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史 鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史 华为P50Pro屏幕规格也不 ...
- 华为2014校园招聘的机试题目
华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...
- 华为硬件工程师社招机考题库_干货:2016年华为中兴硬件工程师笔试题目与经验...
1.一位工科男在拿到华为实习生offer后的面经干货 某211学校,机械学院研究生. 不得不说一下,华为的员工们真的是认真做事,因为怕我们担心下班轮不到面试.工作人员特意去休息区告诉我们,不面试完他们 ...
- 华为魔术手机拆机图解_华为P9进水不显示维修案例
看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:华人手机维修师专属工具集合店,不锈钢拆机片5个只需9.9元!包邮 山猫潮品:手机渠道直供, ...
- 这就是华为Mate 30 Pro真机了,价格或许要高攀不起了?
经历了较长时间的一段曝光,预热看到了苗头,华为官方也不藏着掖着了,前天终于公布了Mate30系列旗舰将于9月19日在德国慕尼黑首发. 关于华为Mate30系列的外观渲染图就从未断过,一会说是齐刘海,一 ...
- 华为魔术手机拆机图解_华为荣耀20进水不开机
看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:不锈钢拆机片5个只需9.9元!包邮!每天10名 故障描述: 华为荣耀20进水不开机,加电很 ...
- 华为服务器如何开机自动启动不了,华为手机开不了机停在开机画面怎么办【详解】...
手机对于我们来说都是不陌生的,因为手机的发展太迅速了,同时也加快了手机的普及率.而智能手机的更新速度也是非常的快的.功能和性能也变得越来越好了,尤其是华为手机这几年变化真的是非常的大的,但是很多华为手 ...
最新文章
- ML之SVM:利用Js语言设计SVM算法(SMO算法+线性核/高斯核)
- Matlab进行录制、存储、绘制、读取音频
- Spring Boot(十七):使用Spring Boot上传文件
- ref获取元素 vue 删除子元素_vue中的 ref 和 $refs
- BT5 设置Ubuntu主题和字体
- 矩阵中的最长递增路径
- 感谢大家对我微软TECHED2013课程的支持
- KafkaConsumer.poll : Timeout must not be negative
- 编写代码注释的最佳实践
- Java static静态关键字 有啥用
- 如何解决mac在访达里不可以新建txt文本的问题?
- @Transactional注解属性(3)
- 男友问别人:你裙子里穿什么了?
- 181023词霸有道扇贝每日一句
- html网页添加友链,教你如何添加网站友情链接
- 计算机辅助数控编程交互图形,第六章 计算机辅助数控编程.ppt
- Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)
- linux批量追加内容,利用sed的追加功能批量在文件中追加内容
- 浙大翁恺pat练习题_中国大学MOOC-翁恺-C语言-PAT习题及解答-第二周
- 中秋节到了,为什么你不回家?
热门文章
- Unsafe 类的学习
- 区块链 每日早报 1108
- 【渝粤题库】陕西师范大学209018 现代城市管理 作业
- 巴比伦富翁的财富课 -- 第一课
- HandsOn-ML学习笔记(1)用机器学习方法解决简单回归问题
- VMware VCSA 8.0 Install
- 使用 springboot + mybatis-plus 连接firebird(火鸟数据库)
- 下载安装SQL Sever 2022全过程
- 配置memcached监听本地回环地址127.0.0.1
- 学习笔记|生成对抗网络(Generative Adversarial Networks,GAN)——让机器学习具有创造力