有n个国家参加运动会,开幕式上,各国的出场顺序以国名在英文字典中的位置先后为序,输出一份各国出场顺序表。 #include
{ char name[N][30], str[30]; int i, j; printf(\ for(i=0; i { scanf(\ /*输入国名,转换为大写*/ for( i=0; i if(strcmp(name[j],name[j+1])>0) { strcpy(str,name[j] ); strcpy(name[j], name[j+1]); strcpy(name[j+1], str);} for( i=0; i 最多从键盘输入80个字符,遇到回车键就结束,将输入的字符串按奇偶位置拆分,奇数位字符在前偶数位字符在后重新组成新的字符串输出,例如输入: ab12cd3456fg,则经过程序处理后输出: a1c35fb2d46g 。 #include \#include \main() { char s[100],d[100],c[100]; int i,j,k; i=j=k=0; while((s[i]=getchar())!='\\n') {if((i+1)%2) d[j++]=s[i++]; else c[k++]=s[i++]; } d[j]=c[k]='\\0'; strcat(d,c); strcpy(s,d); puts(s); } 25 编程序把从键盘输入的英文短文作为一个字符串(长度不超过80),把短文中每个单词的首字母改成大写(原输入可以是大写),若还发现有两个或两个以上连续的空格,把它们删成只有一个空格,输出修改后的字符串。 #include char c; if(a>='a'&&a<='z') c=a-32; else c=a; return c; } main() { char str[81],s[81],s1[81],c; int i,j,k,word=0; printf(\ k=strlen(str);j=0; for(i=0;i else if(str[i]==' '&&str[i+1]!=' ') s[j]=str[i]; else if(str[i]==' '&&str[i+1]==' ') s[j]=str[i++]; } s[j]='\\0'; k=strlen(s); for(i=0,j=0;i s1[++j]=cha(s[++i]); } else s1[j]=s[i]; } s1[j]='\\0'; puts(s1); } 26 下面程序功能是输入一个字符串,并将其中的字符’a’用字符串”shu”替代后输出。如输入为”123abcaHello”,则输出为”123shubcshuHello”。 #include { int i; char line[81]; scanf(\ for (i=0; line[i]!='\\0'; i++) if (line[i]=='a') printf(\ else printf(\ } 下面的程序功能是根据输入的学生姓名,查看该生是否是某个班的学生。(假设某个班有30人,姓名已根据字母顺序排列,即输入的班级学生姓名是有序的) #include { char name[N][30], str[30]; int i,low=0,high=N-1,m,find=0,lc; printf(\ for(i=0; i } /*输入姓名,转换为大写*/ printf(\ gets(str); strupr(str); /*输入要查找的姓名,转换为大写*/ m=(low+high)/2; while(!find&&low<=high) { if(strcmp(name[m],str)>0) high=m-1; else if(strcmp(name[m],str)<0) low=m+1; else {find=1;lc=m;} m=(low+high)/2; } if(find) printf(\ else printf(\ } 27 输入一行字符,从中读出所有单词,并将所有单词的首字符组成字符串后输出。设单词以空格分隔) #include { char str[81],s[20],c; int i,j,word=0; printf(\ i=0;j=0; while((c=str[i])!='\\0') { if(c==' ') /*空格表示单词结束*/ s[++j]=str[i+1]; else if(c!=' '&& word==0) { word=1;s[0]=c;} i++; } s[++j]='\\0'; printf(\ } 输入一行字符,将双引号里面的字符不动,双引号外面的小写字母转换为大写字母。 #include \#include \void main() { char c,s[100],s1[100]; int i=0,j=0,k; gets(s);k=strlen(s); while(s[i]!='\\0') { if(s[i]=='\ {j=i+1;break;} i++; } while(s[j]!='\\0') {if(s[j]>='a'&&s[j]<='z') s[j]=s[j]-32;j++;} puts(s); } 28 不用C字符串函数,编写一个实现两个字符串连接的函数。 #include \void main() { char s1[100],s2[100],s3[200];int i=0,j=0,k=0; gets(s1);gets(s2); while(s1[i]!='\\0') { s3[j++]=s1[i];i++;} while(s2[k]!='\\0') { s3[j++]=s2[k];k++;} s3[j]='\\0';puts(s3); } 下面程序的功能是将输入字符串的内容颠倒过来。 #include char str[80], k ; gets(str); for ( i=0, j=strlen(str)-1;i 对字符数组c1赋 '0'~'9',对字符数组c2赋 'A'~'Z',然后输出c1和c2数组中的数据。 #include { char c1[10],c2[26]; int i; for (i=0; i<10; i++) c1[i]=i+48; for (i=0; i<26; i++) c2[i]=i+'A'; for (i=0; i<10; i++) printf(\ printf(\ for (i=0; i<26; i++) printf(\ printf(\ } 29 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言习题汇编 适合初学者(6)在线全文阅读。
相关推荐: