c语言程序设计第六章答案谭浩强.doc
将一个数组中的值按逆序重新存放.例如原来顺序为:8,6,5,4,1
要求改为:1,4,5,6,8
main()
{ int a[5],i,temp;
printf("enter a array:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("array a:\n");
for(i=0;i<5;i++)
printf("%4d",a[i]);
for(i=0;i<5/2;i++)
{ temp=a[i];
a[i]=a[5-i-1];
a[5-i-1]=temp;
printf("\n now,array a:\n");
for(i=0;i<5;i++)
printf("%4d",a[i]);
printf("\n");
}
有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中
英文大写字母、小写字母、数字、空格以及其他字符个数.
main()
{ int i,j,upp,low,dig,spa,oth;
char text[3][80];
upp=low=dig=spa=oth=0;
for(i=0;i<3;i++)
{ printf("\n please input line %d:\n",i+1);
gets(text[i]);
for(j=0;j<80&&text[i][j]!='\0';j++)
{ if(text[i][j]>='A'&&text[i][j]<='Z')
upp++;
else if(text[i][j]>'a'&&text[i][j]
low++;
else if(text[i][j]>='0'&&text[i][j]<='9')
dig++;
else if(text[i][j]==' ')
spa++;
else
oth++;
}
}
for(i=0;i<3;i++)
printf("%s\n",text[i]);
printf("upper case: %d\n",upp);
printf("lower case: %d\n",low);
printf("digit: %d\n",dig);
printf("space: %d\n",spa);
printf("other: %d\n",oth);
}
打印以下图案:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
main()
{ char a[5]={'*','*','*','*','*'};
int i,j,k;
char space=' ';
for(i=0;i<5;i++) /*输出5行*/
{ printf("\n"); /*输出每行前先换行*/
printf(" "); /*每行前面留4个空格*/
for(j=1;j<=i;j++)
printf("%c",space); /*每行再留1个空格*/
for(k=0;k<5;k++)
printf("%c",a[k]); /*每行输出5个*号*/
}
}
有一行电文,已按下面规律翻译成密码:
A--Z a--z
B--Y b--y
C--X c--x
. .
' '
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母
字符不变。要求编程将密码译成原文,并打印出密码和原文。
#include
main()
{ int j,n;
char ch[80],tran[80];
printf("\ninput cipher code:");
gets(ch);
printf("\n\cipher code:%s",ch);
j=0;
while(ch[j]!='\0')
{ if((c