文章目录
1.转义字符\t在使用时占几个空格?并回答当使用printf输出时要想\t占三个空格其前面字符应该占几位?
令num=|n-8|%8
n表示\t前面的字符占的位置(前面的字符也可能是转换说明,如%d,%10d等)
\t对应的空格的个数spaceNum,有
2.strcmp 函数有几种返回值?并回答其具体实现原理。并编写一个简单的使用strcmp函数的c/c++代码。
格式: strcmp(字符数组名1,字符数组名2)
功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
字符串1=字符串2,返回值=0;
字符串2〉字符串2,返回值〉0;
字符串1〈字符串2,返回值〈0。
本函数也可用于比较两个字符串常量,或比较数组和字符串常量。
#include<iostream>
using namespace std;
int main(){
int Strcmp( char * p1, char * p2);
char s1[100];
char s2[100];
cout<<"请输入第一个字符s1:\n";
cin>>s1;
cout<<"\n请输入第二个字符s2:\n";
cin>>s2;
int r;
r=Strcmp(s1,s2);
cout<<"\n\n"<<s1;
if(r==0){
cout<<" = ";
}else if(r>0){
cout<<" > ";
}else if(r<0){
cout<<" < ";
}
cout<<s2<<"\n"<<endl;
cout<<""<<r<<"\n"<<endl;
return 0;
}
int Strcmp( char *p1 ,char * p2){
char k;
int i=0;
int r;
while(1){
if(*(p1+i)!=*(p2+i)){
r=int(*(p1+i))-int(*(p2+i));
return(r);
break;
}
i++;
}
}
3.N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)
#include <iostream>
using namespace std;
int main()
{
int a[100];
int m, n;
cout << "请输入总人数n: \n";
cin >> n;
cout << "请输入报到m出圈的m值: \n";
cin >> m;
for (int i = 0; i < n; i++) // 初始化为1
{
a[i] = 1; //a[i]=1代表游戏中
}
int k = n; //结束条件
int c = 0; //数数
int i = 0;
while (k > 1)
{
if (a[i] != 0) //没出局的时候
{
c++;
}
if (c == m) //出局
{
c = 0;
a[i] = 0;
k--;
cout << i + 1 << "出局" << endl;
}
i++;
if (i == n) //i到数组尾,循环继续报数
{
i = 0;
}
}
for (i = 0; i < n; i++)
{
if (a[i] == 1)
{
cout << i + 1 << "胜利" << endl;
}
}
return 0;
}