资源描述
2023全国软件设计大赛题真题,编程题:
8.在实际的开发工作中,对于字符串的解决是最常见的编程任务,本题目是规定程序对用户输入的字符串进行解决,具体规则如下:
1.每个单词的首字母变为大写。
2.把数字与字母之间用下划线隔开,使结构清楚。
3.多个空格变为一个空格。
例如:输入:you and me what cpp2023pragram
则输出:You And Me What Cpp_2023_Program
输入:this is a 99cat
则输出:This Is A 99_Cat
2023全国软件设计大赛题:
9. 方陈的主对角线之上称为“上三角”,请设计一个用于填充n阶的上三角区域。填充的规则是:使用1,2,3……的自然数列,从左上角开始,按照顺时针方向螺旋填充。
例如:
1 2 3
6 4
5
1 2 3 4
9 10 5
8 6
1 2 3 4 5
12 13 14 6
10 15 7
10 8
9
10.A,B,C,D,E,F,G,H,I,J,共10名学生有也许参与计算机竞赛,也也许不参与,由于某种因素他们受到下列条件的约束:
1.如里A参与,B也参与。
2.假如C不参与,D也不参与。
3.A和C只能有一个人参与。
4.B和D中且仅有一个参与。
5.D,E,F,G,H中至少有2人参与。
6.C和G或者都参与,或者都不参与。
7.C.E.G.I中至多只能2人参与。
8.假如F参与,G,H就不参与,H必须参与。
9.假如F参与,G,H就不参与。
10.假如I,都不参与,H必须参与。
请编程根据这些条件判断10名同学参赛者名单
比如LC D G J
就是一组。
我自己亲自去比赛回来后写的,参与过比赛的同学肯定知道题目的,但是那时我只写得了一点,有谁能给我标准答案呢??
问题补充:
这三题占的分数仿佛一共52分了,最后一道题是27分了。尚有7题填空呢,每题几乎都比二JAVA级的都难!能去北京玩一趟,真的要下一番功夫才行。
最佳答案
10
#include<stdio.h>
int main( )
{
int a,b,c,d,e,f,g,h,i,j;
for(a=0;a<=1;a++)
for(b=0;b<=1;b++)
for(c=0;c<=1;c++)
for(d=0;d<=1;d++)
for(e=0;e<=1;e++)
for(f=0;f<=1;f++)
for(g=0;g<=1;g++)
for(h=0;h<=1;h++)
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
{
if(a==1&&b!=1) break;
if(c==0&&d!=0) break;
if(a==1&&c==1) break;
if((b==0&&d==0)||(b==1&&d==1)) break;
if(d+e+f+g+h<2) break;
if(c+g==1) break;
if(c+e+g+i>2) break;
if(e==1&&(f==0||g==0)) break;
if(f==1&&(g==1||h==1)) break;
if(i==1&&j==1&&h==0) break;
if(a) printf("A");
if(b&&a==1) printf(" B");
else if(b) printf("B");
if(c&&a+b!=0) printf(" C");
else if(c) printf("C");
if(d&&a+b+c!=0) printf(" D");
else if(d) printf("D");
if(e&&a+b+c+d!=0) printf(" E");
else if(e) printf("E");
if(f&&a+b+c+d) printf(" F");
else if(f) printf("F");
if(g&&a+b+c+d+e+f!=0) printf(" G");
else if(g) printf("G");
if(h&&a+b+c+d+e+f+g!=0) printf(" H");
else if(h) printf("H");
if(i&&a+b+c+d+e+f+g+h!=0) printf(" I");
else if(i) printf("I");
if(j&&a+b+c+d+e+f+g+h+i!=0) printf(" J");
else if(j) printf("J");
printf("\n");
}return 0;
}
8
#include<stdio.h>
#include<string.h>
int main( )
{
char as[200];
while(1)
{
gets(as);/*输入字符串*/
if(strlen(as)==0) break;
int i,j,k;
for(i=0;as[i]!='\0';i++)
if(as[i]!=' ')
break;
else printf(" ");/*判断最前面是否为空格*/
for(;as[i]!='\0';i++)
{
if(as[i]>='a'&&as[i]<='z')/*当碰到字母时*/
{ if(i-1<0||as[i-1]==' ')
printf("%c",as[i]-32);
else printf("%c",as[i]);
}
else
{
if(as[i]>='0'&&as[i]<='9')/*数字*/
{if((i-1<0||(as[i-1]<'0'||as[i-1]>'9'))&&as[i-1]!=' ')
printf("_%c",as[i]);
else
if((as[i+1]=='\0'||(as[i+1]<'0'||as[i+1]>'9'))&&as[i+1]!=' ')
printf("%c_",as[i]);
else printf("%c",as[i]);
}
else
if(as[i]==' ')/*空格*/
if(as[i-1]!=' ')
printf(" ");
}
}printf("\n");
}return 0;
}
9
#include<stdio.h>
int as[23][23],k;
void heng(int i1,int j1)
{
for(;;)
{
if(as[i1][j1]!=0) break;
as[i1][j1]=k;
j1++;k++;
}
return;
}
void xie(int i2,int j2)
{
for(;;)
{
if(as[i2][j2]!=0) break;
as[i2][j2]=k;
i2++;j2--;k++;
}
return;
}
void shu(int i3,int j3)
{
for(;;)
{
if(as[i3][j3]!=0) break;
as[i3][j3]=k;
i3--;
k++;
}
return;
}
int main( )
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i,j; k=1;
for(i=0;i<n+3;i++)
for(j=0;j<n+3-i;j++)
as[i][j]=-1;
for(i=1;i<n+2;i++)
for(j=1;j<n+2-i;j++)
as[i][j]=0;
for(i=1,j=0;;i++)
{
if(j>=n) break; else {heng(i,i);j++;}
if(j>=n) break; else {xie(i+1,n+1-2*i);j++;}
if(j>=n) break; else {shu(n+1-2*i,i);j++;}
}
for(i=1;i<=n;i++)
{
for(j=1;j<n+2-i;j++)
if(j==1) printf("%d",as[i][j]);
else printf(" %d",as[i][j]);
printf("\n");
}
}
return 0;
}
赞同
1
。
相关内容
· 2023-9-24 2023年全国大学生电子技能大赛复赛(综合测评),有软件编程类题吗?
· 2023-8-7 急求全国计算机等级考试二级
展开阅读全文