前半学期c语言答案
(126页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
17.90 积分
1057 字符变换DescriptionDescriptionCoCo 在帮忙录入一篇英文文献,可是由于键盘误操作,事先按下了 Caps Lock 键,然后又按照平时的录入习惯进行操作,结果录入的内容里面,原本应该是 英文大写的地方都变成了小写,而原来应该是英文小写的地方都变成了大写。 重新录入的话实在太可怕了!你能帮忙设计一个程序,可以将字符串中的大写 英文字母转换成对应的小写英文字母,而将小写英文字母转换成对应的大写英 文字母,其余字符不变吗?如果对整篇文献操作还有点难度的话,先尝试对一 个字符串的操作吧。InputInput输入任意一个字符串(长度小于等于 1000),以换行结束。OutputOutput将大写字母改小写,小写字母改大写,其余字符保持不便,输出转换后的字符 串的结果。SampleSample InputInputi AM A STUDENT.i AM 19.SampleSample OutputOutputI am a student.I am 19.HINTHINTSourceSourceNBU OJ#include#includeint main(){char a[1001];int i,k;gets(a);k=strlen(a);for(i=0;i='a' int len,t,i,j; gets(str); len=strlen(str); t=1;i=0;j=len-1; for(;i#includeint main(){char str[1000],ch;int t=0,len,i;gets(str);scanf(“%c“,len=strlen(str);for(i=0;i#includeint main(){char str[9];int t=0,len,i;gets(str);len=strlen(str);for(i=0;i='A'}for(i=0;i#includeint main(){char str[1000];int t=0,len,i;gets(str);len=strlen(str);for(i=0;i=48int i,j,k;gets(a);k=strlen(a);for(i=0;i=0;i--){printf(“%c“,a[i]);}printf(“\n“);return 0;}11481148 数字字符出现频率数字字符出现频率 DescriptionDescription从键盘输入一行文本,统计其中数字字符 0~9 出现的频率并输出。没有出现的 不要显示。InputInput从键盘输入一行文本。以换行符结束。OutputOutput输出统计结果。每个数字的信息占一行,如“0:2”表示数字字符 0 出现了 2 次。SampleSample InputInputHello No 007.SampleSample OutputOutput0:2 7:1HINTHINT输出内容中:0:2 表示数字字符 0 出现了 2 次7:1 表示数字字符 7 出现了 1 次SourceSourceNBU OJ#includeint main(){int a[10]={0};char b;int i;while((b=getchar())!='\n'){if(b='0')a[b-'0']++;}for(i=0;i#includeint main(){char a[50];int len,i,t;gets(a);len=strlen(a);if((a[0]>='A'int len,i;gets(a);len=strlen(a);a[0]=a[0]-32;for(i=1;i using namespace std; //---------------------- int main(){ cout using namespace std;int main(){ cout#includeint main(){int i=0;char a[1000];while(gets(a)){for(i=0;a[i]!='\0';i++){if(a[i]=='/'elseprintf(“%c“,a[i]);}printf(“\n“);}return 0;}11751175 查找最大元素查找最大元素DescriptionDescription对于输入的字符串,查找其中的 AscII 码最大字母,在该字母后面插入字符串 “(max)”。不包括引号。InputInput输入一行长度不超过 100 的字符串,字符串仅由大小写字母构成。OutputOutput输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个 最大的字母,就在每一个最大字母后面都插入“(max)“。SampleSample InputInputabcdefgfedcbaSampleSample OutputOutputabcdefg(max)fedcbaHINTHINTSourceSourceNBU OJ#includeint main(){char a[100];int len,i,max;gets(a);len=strlen(a);max=a[0];for(i=1;i=max)max=a[i];}for(i=0;iint main(){char s[100][100],*p[100],*t;int n,i,j,min;scanf(“%d“,getchar();for(i=0;i0){t=p[i];p[i]=p[j];p[j]=t;}}for(i=0;i#includeint main(){char a[100];int i,len,j,t;gets(a);len=strlen(a);t=1;for(i=0,j=len-1;iint main()int{int i;char j;char a; int b[26]={0}; while ((a = getchar()) != '\n') {for (j='A';jint main(){char a[3000],a1[1000],a2[1000];int t=0,b=0,c=0,n,i; gets(a);gets(a1);gets(a2);strcat(a,a1);strcat(a,a2);n=strlen(a);for (i=0;i='0' int i,len,n=0,t=0; gets(a); len=strlen(a); for(i=0;i='0'} if(n==1 else if(n==1 else if(n==0 return 0; }14441444 字符接龙字符接龙DescriptionDescriptionCoCo 参加学校六一节的游戏,这次遇到的题目是字符接龙。主持人拿出 2 张卡 片,每张卡片上都有一个顺序字符串,即字符串是按 ASCII 码顺序编排的。现 在要求 CoCo 把 2 个字符串连接成一个字符串,而且连接以后的字符串内容还是 按 ASCII 码顺序排列的。(假设每张卡片上的字符串都不包含空格)InputInput输入 2 个字符串。已知字符串不包含空格。假设单个字符串长度不超过 20.OutputOutput输出连接后的顺序字符串(按 ASCII 码顺序排列)SampleSample InputInputacd brSampleSample OutputOutputabcdrHINTHINTSourceSourceNBU OJ#include#includeint main(){char a[40],b[20],t[40];int i,k,n,j,d,x,s;gets(a) ;gets(b) ;strcat(a,b);k=strlen(a);for(i=0;ia[j+1]){t[40]=a[j+1];a[j+1]=a[j];a[j]=t[40];}for(i=0;ichar trans(char ch){if(ch>='A'p=1;for(i=1;iint sum(int a,int b){int s;s=a+b;return s;}int main(){int x,y,n;scanf(“%d%d“,n=sum(x,y);printf(“%d\n“,n);return 0;}10381038 奇数偶数奇数偶数DescriptionDescription输入一个整数,判断该数是奇数还是偶数。InputInput输入整数 n。OutputOutput如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。SampleSample InputInput8SampleSample OutputOutputevenHINTHINTSourceSourceNBU OJ#includeint f(int a){int s;s=a%2;return s;}int main(){int a,n;scanf(“%d“,n=f(a);if(n==0)printf(“even\n“);else if(n==1)printf(“odd\n“);return 0;}10421042 分段函数分段函数 2 2 DescriptionDescription输入整数 x,计算并输出下面分段函数的值(保留两位小数)。 InputInput输入一个整数 x。OutputOutput输出函数 y 的值。保留 2 位小数。SampleSample InputInput3SampleSample OutputOutput7.00HINTHINTSourceSourceNBU OJ#include#includedouble f(int x){double y;if(x>=0)y=x*x-2;else y=sqrt(5-x);return y;}int main(){int x;double y;scanf(“%d“,y=f(x);printf(“%.2f\n“,y);return 0;}10611061 两数求大值两数求大值DescriptionDescription从键盘输入任意两个整数,求出其中较大数的数值并输出。InputInput输入两个整数。OutputOutput输出较大数的数值。SampleSample InputInput18 9SampleSample OutputOutput18HINTHINTSourceSourceNBU OJ#includeint f(int a ,int b){int n;if(a>=b)n=a;else n=b;return n;}int main(){int a,b,n;double y;scanf(“%d%d“,n=f(a,b);printf(“%d\n“,n);return 0;}11271127 判断完全数判断完全数 DescriptionDescription从键盘输入一个整数 n,判断其是否完全数。如果一个正整数恰好等于它所有 的真因子(即除了自身以外的因子)之和,则称之为完全数(又称完美数)。 如 6=1+2+3,6 是一个完全数。InputInput输入一个正整数 n。OutputOutput判断该数是否为完全数。是完全数则输出 yes,不是完全数则输出 no。SampleSample InputInput6SampleSample OutputOutputyesHINTHINTSourceSourceNBU OJ#include#includevoid pan(int n){int i,a=0,t;t=n;for(i=1;i1),判断其是否为素数。素数的定义为:一个大于 1 的整 数,如果除了 1 和其自身以外没有其他正因子,则称此数为素数或质数。InputInput输入一个整数 n(n>1)。OutputOutput如果该数是素数就输出 yes,如果不是就输出 no。SampleSample InputInput3SampleSample OutputOutputyesHINTHINTSourceSourceNBU OJ#include#includevoid pan(int n){int i,a=0;for(i=2;i#includeint pan(int n){int i,p=1,s=0;for(i=1;iint pan(int n){int i,a=0,t,su;t=n;for(i=2;i1)sum++;}printf(“%d\n“,sum);for(i=k1;i1){printf(“%d“,pan(i));break;}}i++;for(;i1)printf(“ %d“,pan(i));}printf(“\n“);return 0;}11321132 最大公约数和最小公倍数最大公约数和最小公倍数DescriptionDescription求两个正整数的最大公约数和最小公倍数。InputInput输入两个正整数。OutputOutput输出最大公约数与最小公倍数。SampleSample InputInput10 15SampleSample OutputOutput5 30HINTHINT输入的两数的大小顺序不定SourceSourceNBU OJ#includeint max(int a,int b){int i,n,t;if(a>=b)t=b;elset=a;for(i=1;i=b)m=b;elsem=a;for(i=m;iint is_prime(int n){int i;if(n#includeintint pan(intpan(int a)a) { { intint i,c=0;i,c=0; for(i=1;i #define N 10 void find(int *a,int k) { int i,s=11; for(i=0;i #define N 100 void eind(int a[100][100],int m,int n) { int i,j; for(i=0;i void f(char a[100],int b) { gets(a); for(b=0;a[b]!='\0';b++); printf(“%d %s\n“,b,a); } void main() { char c[100]; int i; f(c,i); } 1298 上三角置零Description将一个5行5列的二维矩阵的上三角元素置零,如将 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 变成 1 0 0 0 0 6 7 0 0 0 11 12 13 0 0 16 17 18 19 0 21 22 23 24 25Input输入一个5行5列的二维矩阵。Output输出上三角置零后的二维矩阵,注意:输出时每个元素占4位且右对齐。 (输入数据范 围保证在(-100,100) ) 。Sample Input1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25Sample Output1 0 0 0 06 7 0 0 011 12 13 0 016 17 18 19 021 22 23 24 25HINTSourceNBU OJ 解: #include #include #include void input(int a[5][5]) { int i,j; for(i=0;ii) a[i][j]=0; } } } void output(int a[5][5]) { int i,j; for(i=0;i #include void f(int *a,int n) { int i,j,t,flag=1; for(i=0;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; flag=1; } } } for(i=0;i #include void f(char *a,char *b,char *c) { int m,n,i=0,j; strcpy(c,a); m=strlen(a); n=strlen(b); for(j=0;b[j]!='\0';j++,i++) { c[m+i]=b[j]; }for(i=0;i #include char *delchar(char *s, char c_h){char *p,*q;p = s;while(*p != '\0'){if(*p == c_h){q = p;while(*q != '\0') {*q = *(q + 1);q++;}p--;}p++;}return (s); }int main() {char i,s[80];gets(s);for(i = 0;i #include int main() { char a[40],b[20],t[40]; int i,k,n,j,d,x,s;gets(a) ; gets(b) ; strcat(a,b); k=strlen(a); for(i=0;ia[j+1]){t[40]=a[j+1];a[j+1]=a[j];a[j]=t[40];} for(i=0;i#includevoid pan(int n){int i,a=0;for(i=1;i#include voidvoid change(charchange(char *n[],int*n[],int a,inta,int b)b) { { charchar *t;*t; intint i;i; t=n[a-1];t=n[a-1]; n[a-1]=n[b-1];n[a-1]=n[b-1]; n[b-1]=t;n[b-1]=t; for(i=0;i #include void f(char *a,char (*b)[100],int t) { int k1,k2,i,j,k=0,x; k1=strlen(a); for(i=0;i#include#include intint check(charcheck(char *PlateNo,char*PlateNo,char *str);*str);voidvoid main()main(){ {intint i,n,find=0;i,n,find=0;charchar PlateNo[100][11],str[11];PlateNo[100][11],str[11];scanf(“%d“,scanf(“%d“, getchar();getchar();gets(str);gets(str);forfor (i=0;i#include#include#includeintint main()main(){ {intint a,i,j,k=1,b[30],l;a,i,j,k=1,b[30],l;charchar str[100];str[100];gets(str);gets(str);a=strlen(str);a=strlen(str);b[0]=a;b[0]=a;for(i=a-1;i>0;i--)for(i=a-1;i>0;i--){ {if(str[i]!='if(str[i]!=' 'b[k]=i;for(j=b[k];j#include#define#define M M 101101#define#define N N 101101intint main()main(){ { intint n1,n2,n3,i,j,k;n1,n2,n3,i,j,k;while(scanf(“%d%d%d“,a[M][N];intintb[M][N];b[M][N];intint c[M][N]={0};c[M][N]={0};for(i=0;i#includestructstruct studentInfostudentInfo{ {charchar name[20];name[20];charchar sex;sex;intint score[3];score[3];};};typedeftypedef structstruct studentInfostudentInfo student;student;intint main()main(){ {studentstudent s s ; ;intint i;i;gets(s.name);gets(s.name);scanf(“%c“,scanf(“%c“,for(i=0;i#include#include#include#define#define N N 5 5typedeftypedef structstruct studentstudent{ {charchar num[6];num[6];charchar name[8];name[8];floatfloat score[3];score[3];}STU;}STU;voidvoid input(STUinput(STU *s,int*s,int n)n){ {intint i,j;i,j;for(i=0;i#include#include#includestructstruct datedate{ {intint year;year;intint month;month;intint day;day;};};structstruct studentstudent{ {charchar name[20];name[20];charchar sex;sex;structstruct datedate birthday;birthday;};};voidvoid main()main(){ {structstruct studentstudent s;s;gets(s.name);gets(s.name);scanf(“%c“,scanf(“%c“,scanf(“%d%d%d“,onth,printf(“%s\n“,s.name);printf(“%s\n“,s.name);printf(“%c\n“,s.sex);printf(“%c\n“,s.sex);printf(“%dprintf(“%d %d%d %d\n“,s.birthday.year,s.birthday.month,s.birth%d\n“,s.birthday.year,s.birthday.month,s.birthday.day);day.day);} }1438计算总分计算总分Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 2021 | Solved : 1018 Description利用结构数组处理多个学生信息。从键盘输入若干个学生的信息,假设学生信息包括学号、姓名、3门课的成绩,计算每个学生的总分,并按要求进行输出。Input先输入一个整数 n,表示有 n 个学生的信息。接着输入每个学生的学号、姓名以及3门课程的成绩。Output输出每个学生的学号、姓名以及总分。每个学生的信息占据一行。Sample Input31101peter chen90 91 921102susan wang87 88 891103anney li86 85 84Sample Output1101 peter chen 2731102 susan wang 2641103 anney li 255HINT假设学生人数不超过100人。学生姓名为长度不超过20的字符。#include#include#include#include#include#includetypedeftypedef structstruct studentstudent{ {charchar num[6];num[6];charchar name[8];name[8];charchar name1[10];name1[10];floatfloat score[3];score[3];}STU;}STU;voidvoid input(STUinput(STU *s,int*s,int n)n){ {intint i i ,j;,j;for(i=0;i#includeintint main()main(){ { intint a[300][5];a[300][5];intint n,i,j,s;n,i,j,s; scanf(“%d“,scanf(“%d“,for(i=0;i0;i--)for(i=n-1;i>0;i--) { { if(a[i][4]==a[i-1][4]j#include#include#include#define#define N N 100100 structstruct herohero { { charchar str[20];str[20]; intint num[20];num[20]; intint sum;sum;};};typedeftypedef structstruct herohero H;H;voidvoid sort(Hsort(H *p,int*p,int n)n) { { H H t;t; intint i,j;i,j; for(i=0;i0)if(strcmp(p[j].str,p[j+1].str)>0) { { t=p[j];t=p[j]; p[j]=p[j+1];p[j]=p[j+1]; p[j+1]=t;p[j+1]=t; } } } } } } } } intint main()main(){ { H H STD[N];STD[N]; intint i,n,m,j,t;i,n,m,j,t;scanf(“%d“,scanf(“%d“, for(i=0;i intint m,n,date[1001][2];m,n,date[1001][2]; voidvoid compare()compare() { { intint i,j,k;i,j,k; scanf(“%dscanf(“%d %d“,%d“, for(i=1;idate[j][0])if(date[i][0]>date[j][0]) { { k=date[i][0];k=date[i][0]; date[i][0]=date[j][0];date[i][0]=date[j][0]; date[j][0]=k;date[j][0]=k; k=date[i][1];k=date[i][1]; date[i][1]=date[j][1];date[i][1]=date[j][1]; date[j][1]=k;date[j][1]=k; } } } } voidvoid money()money() { { intint i=1,result=0;i=1,result=0; while(m)while(m) {if(m#includestructstruct costcost{ {intint price;price;intint x,y;x,y;};};typedeftypedef structstruct costcost A;A;intint main()main(){ {A A s[1000],t;s[1000],t;intint n,m;n,m;intint i,j;i,j;scanf(“%dscanf(“%d %d\n“,%d\n“,for(i=0;i#include#include#includestructstruct studentinfostudentinfo{char{char name[100];name[100];charchar number[20];number[20];};};typedeftypedef structstruct studentinfostudentinfo student;student;intint main()main(){ { studentstudent s[100];s[100];intint N,k,u,l,d;N,k,u,l,d;charchar ch[100];ch[100];intint a,n,i,j;a,n,i,j;scanf(“%d“,scanf(“%d“,for(a=0;a='A'score;structstruct NodeNode *next;*next;}NODE;}NODE;intint main()main(){ {NODENODE a,b,c;a,b,c;NODENODE *h,*p;*h,*p;scanf(“%d%d%d“,scanf(“%d%d%d“,h=h=a.next=a.next=b.next=b.next=c.next='\0';c.next='\0';p=h;p=h;while(p!=NULL)while(p!=NULL){ {printf(“%dprintf(“%d “,p->score);“,p->score);p=p->next;p=p->next;} }printf(“\n“);printf(“\n“);returnreturn 0;0;} }1392链表删除链表删除Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 664 | Solved : 391 Description给定一串数字,用链表结构进行存储。然后给定针对该链表的若干删除操作,要求将执行删除操作后的结果输出。Input第一行:输入一个整数 n,表示这串数字有 n 个(n 大于等于1)。第二行:输入这 n 个整数。第三行:输入一个整数 m,表示需要执行 m 次删除操作。(m≤n)后面 m 行:每行输入一个整数 a ,表示要删除当前链表中的第 a 个数字。 (假设链表中第一个节点的编号为1) 。Output执行了 m 次删除操作中,输出剩下的 n-m 个数字。每个数字用空格空开。Sample Input32 1 3211Sample Output3#include#include#include#includetypedeftypedef structstruct nodenode{ {intint number;number;structstruct nodenode *next;*next;}SNODE;}SNODE;SNODESNODE *del_node(SNODE*del_node(SNODE *head,int*head,int pos)pos){ {SNODESNODE *p,*q;*p,*q;intint count;count;p=head->next;p=head->next;q=head;q=head;count=1;count=1;while(pq=p;p=p->next;p=p->next;count++;count++;} }q->next=p->next;q->next=p->next;return(head);return(head);} }voidvoid print(SNODEprint(SNODE *head)*head){ {SNODESNODE *p;*p;p=head->next;p=head->next;while(p!=NULL)while(p!=NULL){ {printf(“%d“,p->number);printf(“%d“,p->number);if(p->next==NULL)if(p->next==NULL)printf(“\n“);printf(“\n“);elseelseprintf(“printf(“ “);“);p=p->next;p=p->next;} }} }SNODESNODE *creat(int*creat(int n)n){ {intint num,i;num,i;SNODESNODE *h,*s,*r;*h,*s,*r;h=(SNODE*)malloc(sizeof(SNODE));h=(SNODE*)malloc(sizeof(SNODE));h->next=NULL;h->next=NULL;r=h;r=h;for(i=1;inumber=num;s->number=num;r->next=s;r->next=s;r=s;r=s;} }r->next='\0';r->next='\0';returnreturn h;h;} }intint main()main(){ {SNODESNODE *head;*head;intint n,i;n,i;intint m,count;m,count;scanf(“%d“,scanf(“%d“,head=creat(n);head=creat(n);scanf(“%d“,scanf(“%d“,for(i=1;i#include#include#include#include#includestructstruct nodenode{ {intint id;id;charchar name[20];name[20];intint score;score;structstruct nodenode *next;*next;};};typedeftypedef structstruct nodenode SNODE;SNODE;intint main()main(){ {SNODESNODE *creat(SNODE*creat(SNODE *head);*head);voidvoid print(SNODEprint(SNODE *head);*head);SNODESNODE *head;*head;head=NULL;head=NULL;head=creat(head);head=creat(head);print(head);print(head);returnreturn 0;0;} }SNODESNODE *creat(SNODE*creat(SNODE *head)*head){ {intint id;id;charchar name[20];name[20];intint score;score;SNODESNODE *s;*s;SNODESNODE *r;*r;head=(SNODE*)malloc(sizeof(SNODE));head=(SNODE*)malloc(sizeof(SNODE));r=head;r=head;scanf(“%d“,scanf(“%d“,while(id!=0)while(id!=0){ {scanf(“%s“,name);scanf(“%s“,name);scanf(“%d“,scanf(“%d“,s=(SNODE*)malloc(sizeof(SNODE));s=(SNODE*)malloc(sizeof(SNODE));s->id=id;strcpy(s->name,name);s-s->id=id;strcpy(s->name,name);s->score=score;>score=score;r->next=s;r->next=s;r=s;r=s;scanf(“%d“,scanf(“%d“,} }r->next='\0' 关 键 词: 学期 语言 答案
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。