牛客山东理工大学第四届新生赛思考与总结(C语言)-创新互联

目录

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网络空间、营销软件、网站建设、荣昌网站维护、网站推广。

牛客山东理工大学第四届新生赛思考与总结(C语言)

1.1正确代码:

1.2输出格式总结:

1.3char 字符串简介

1.4头文件介绍

2题目描述

2.1正确题解:

2.2if的用法解析

3.1正确题解:

4

4.1正确题解:

5.1正确题解:


牛客山东理工大学第四届新生赛思考与总结(C语言)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

1.AI 绘图是近期很流行的一种画图程序,它可以通过一些标签自动生成二次元图片,也可以给出图片来画新图片。每个标签可以通过花括号({})来设置权重,标签之间用逗号(,)分隔。

最近 Messywind 沉迷于 AI 绘图,他用的标签太多以至于统计不过来了,请你帮他输出每个标签的名称以及权重。

权重的定义为花括号的层数,若没有花括号权重为 000

输入描述:

第一行包含一个长度不超过 10310 ^ 3103 字符串 SSS

字符串只包含大小写英文字母、数字、{}、,、_,保证用逗号(,)分隔标签且行末无逗号(,)

数据保证每种标签只出现一次,无重复标签。

输出描述:

按标签的出现顺序输出 xxx 行,其中 xxx 为 SSS 中所有标签出现次数。

每行输出标签名称和标签权重,用空格分隔。

1.1正确代码:

C语言:kindred_ 提交的代码

提交时间:2022-11-24 15:38:27 语言:C 代码长度:340 运行时间: 2 ms 占用内存:296K运行状态:答案正确

#include

#include//C语言字符串函数

char s[10000];

int main()

{   char a;

int n=0,i=0;

scanf("%c",&a);  //1.2输出格式总结:

for(;a!='\n';)//

{  

if(a=='{')   //字符串只包含大小写英文字母、数字、{}、,、_,保证用逗号(,)           分隔标签且行末无逗号(,)

 n++;

else if(a==',')

{   printf("%s %d\n",s,n);

 memset(s,'\0',size of(s));

 i=0;

 n=0;

}

else if(a!='}')

{   s[i]=a;

 i++;

}

scanf("%c",&a);

}

printf("%s %d\n",s,n);

return 0;

}

1.2输出格式总结:

%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)

%c 字符

%d 有符号十进制整数

%f 浮点数(包括float和doulbe)

%e(%E) 浮点数指数输出[e-(E-)记数法]

%g(%G) 浮点数不显无意义的零"0"

%i 有符号十进制整数(与%d相同)

%u 无符号十进制整数

%o 八进制整数 e.g. 0123

%x(%X) 十六进制整数0f(0F) e.g. 0x1234

%p 指针

%s 字符串

1.3char 字符串简介

在C 语言中,除了前面介绍的int 整型、float / double 浮点数、bool 值….等等,char 字符串也是一种非常重要的数据类型;

字符串:一般用一对双引号””括起的一串字符来表示字符串常量,字符串默认以转义字符 \0 结尾,字符串常量是不可被修改的,如:

"Hello!"、"\aWarning!\a"、"123abc\n"、""

1.4头文件介绍

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

2题目描述

众所周知,2021 年 6 月的星空杯决赛,MDY 战队的卡莎在决赛圈完成了 1v3 的精彩操作。看过这场比赛后,sty 每次 1v3 时都会大喊:“我要易大山了!我要易大山了!易大山!”。

现在给出一局游戏决赛圈的的击杀记录和 sty 使用的游戏 ID,请你判断 sty 是否完成了一打三。由于决赛圈可能存在多支三人小队,为简化问题,存在以下两个特殊规则:
1. 只要 sty 完成了三次击杀且无论最终是否阵亡,都认为他完成了一打三。
2. 由于重生的 bug 实在是太多了。即使 sty 被击杀后,他击杀其他人仍视为有效击杀。

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

输入描述:

第一行为一个整数 NNN,代表有 NNN 条击杀记录。

第 222 至 N+1N+1N+1 行为一行字符串,代表击杀记录。

第 N+2N + 2N+2 行为一行字符串,代表 sty 使用的游戏 ID。

格式如下:

3

PlayerName kill PlayerName

PlayerName kill PlayerName

PlayerName kill PlayerName

ID

题目保证 N≤20N \le 20N≤20,PlayerName 和 ID 均为长度不超过 10510 ^ 5105 且仅由字母、数字、下划线组成的非空字符串。

输出描述:

如果 sty 完成了一打三,输出 yidashan!,否则输出 kexi

2.1正确题解:

#include

#include

#include//调用数学库

char e[100005],a[20][100001];

int main(){

int n,flag=0;

char d;

scanf("%d",&n);

d=getchar(); //字符串存入d中

for(int i=0;i

scanf("%s kill %s",a[i],e); //%s 对应输入字符串

}

scanf("%s",e);

for(int i=0;i

if(!strcmp(a[i],e)) flag++;//strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较

}

if(flag>=3) printf("yidashan!\n");

else printf("kexi\n");

return 0;

}

2.2if的用法解析

当我们要写多条语句时,要用到{},将代码括起来。

if (表达式)

语句1;

else

语句2;

#include

int main()

{

int age = 0;

scanf("%d", &age);

if (age< 18)

{

printf("未成年\n");

}

else

{

printf("成年\n");

}

②//多分支

if (表达式1)

语句1;

else if (表达式2)3.

语句2;

else

语句3;

#include

int main()

{

int age = 0;

scanf("%d", &age);

if (age< 18)

{

printf("少年\n");

}

else if (age >= 18 && age< 30)

{

printf("青年\n");

}

else if (age >= 30 && age< 50)

{

printf("中年\n");

}

else if (age >= 50 && age< 80)

{

printf("老年\n");

}

else

{

printf("老寿星\n");

}

}

多分支语句:

从上到下依次判断,若符合 if 条件,就执行if下面的语句;若不符合 if ,就看是否满足下一条 else if 的条件;

直到找出符合条件的为止,若所有条件都不符合,就执行 else 的语句。

3

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

因为 Bulbul 太喜欢说 666 了,yuyansheng 释放了一个魔法,使他忘记了数字 666 的存在。

所以,他在数数的时候会跳过所有包含数字 666 的数,如果让 Bulbul 说出从 111 开始的前十个数字,他会大声喊出: 1 2 3 4 5 7 8 9 10 11 。他说的 777 实际上是 666 , 888 实际上是 777 ,以此类推。

zzk 可以解开这个魔法,条件是 Bulbul 说出一个数字 xxx zzk 可以立刻说出实际上 xxx 是多少,但是 zzk 太笨了,无法立刻说出这是几,所以向聪明的你寻求帮助。

请你编写一个程序,来帮助 zzk 和 Bulbul 解除 yuyansheng 的魔法吧!

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

输入描述:

第一行为一个整数 NNN (1≤N≤104)(1 \le N \le 10 ^ 4)(1≤N≤104),代表 Bulbul 说出的数的个数。

第二行至第 N+1N + 1N+1 行每行包含一个整数 xix_ixi​ (1≤xi≤106)(1 \le x_i \le 10 ^ 6)(1≤xi​≤106),代表 Bulbul 说出的数字,保证 xix_ixi​ 中不包含 666

输出描述:

输出共 NNN 行。

第 iii 行表示 xix_ixi​ 实际上对应的数字。

3.1正确题解:

#include

int main()

{

int N;

scanf("%d",&N);

int num[1000001]={0};

int i,t;

for(i=1;i<=1000000;i++)

{

int a=i;

int b=1;

while(a)

{

 if(a%10==6)

     b=0;

 a/=10;

}

num[i]=num[i-1]+b;

}

for(i=0;i

{

scanf("%d",&t);

printf("%d\n",num[t]);

}

4

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

题目描述

yxlxszx 作为知名 OP,每天都花非常多的时间刷圣遗物,希望能让自己心爱的角色早点毕业。作为一个极度自律的人,yxlxszx 每天至少要刷 nnn 次副本,一共有 mmm 个副本。每个副本只能刷一次。但是 yxlxszx 最近 212121 抽抽到了一命小草神,喜出望外导致大脑宕机,你能帮帮 yxlxszx 数一数,他有多少种不同的刷副本方案?

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

输入描述:

第一行包含两个整数 n,mn,mn,m (1≤n≤m≤60)(1≤n≤m≤60)(1≤n≤m≤60) 表示每天至少要刷的副本次数和所有的副本个数。

输出描述:

输出一个整数,表示不同的刷副本方案。

4.1正确题解:

#include

int main()

{

long long m,n,sum=0,c[61];

c[0] = 1;

scanf("%lld%lld",&m,&n);

for(long long i = 1;i<= n;i++)

{

c[i] = c[i-1] * (n - i + 1) / i;

}

for(int i = m;i<= n;i++)

{

sum += c[i];

}

printf("%lld",sum);

return 0;

}

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入  

114514

输出 

8

示例2

输入

1092718960

输出

40

示例3

输入

23333333333

输出

2

5.1正确题解:

#include

int main()

{

long long n, i, ans = 0;

scanf("%lld", &n);

for (i = 1; i*i<= n; i++)

if (n % i == 0)

{

ans++;

if(n/i!=i)

ans++;

}

printf("%lld", ans);

return 0;

}

仅上传了几道自己思考过后的题,如有错误,欢迎各位指正!

以下附上此次比赛完整题目:

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页题目:牛客山东理工大学第四届新生赛思考与总结(C语言)-创新互联
文章网址:http://pwwzsj.com/article/csgshd.html