C语言习题汇编 适合初学者(6)

2019-08-28 23:58

有n个国家参加运动会,开幕式上,各国的出场顺序以国名在英文字典中的位置先后为序,输出一份各国出场顺序表。 #include #include #define N 4 main()

{ 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 #include char cha(char a) {

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 void main()

{ int i; char line[81]; scanf(\

for (i=0; line[i]!='\\0'; i++) if (line[i]=='a') printf(\ else

printf(\ }

下面的程序功能是根据输入的学生姓名,查看该生是否是某个班的学生。(假设某个班有30人,姓名已根据字母顺序排列,即输入的班级学生姓名是有序的) #include #include #define N 10 main()

{ 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 #include main()

{ 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 #include void main( ) { int i, j;

char str[80], k ; gets(str);

for ( i=0, j=strlen(str)-1;i

对字符数组c1赋 '0'~'9',对字符数组c2赋 'A'~'Z',然后输出c1和c2数组中的数据。 #include main( )

{ 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


C语言习题汇编 适合初学者(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:贵州大学2012年硕士研究生入学考试参考书目 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: