C语言程序设计问题3
8.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。#include“string.h”voidmain(){inti,j,,;charstr[]={“1234...
8. 下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include “string.h”
void main()
{ int i,j, ,;
char str[]={“1234567”};
for(i=0,j=strlen(str); ;i++,j--)
{ k=str[i]; str[i]=str[j]; str[j]=k;}
}
9. 以下程序的功能是给偶数行的方阵中所有边上的元素和两对角线上的元素置1,其它元素置0(要求对每个元素只置一次值)。最后按矩阵形式输出。请填空。
void main()
{ int a[10][10],i,j;
for(i=0;i<10;i++)
{a[ ][i]=1; a[i][ ]=1;}
for(i=1;i<9;i++) a[0][ ]=1;
for(i=1;i<9;i++) a[ ][i]=1;
for(i=1;i<9;i++) a[i][ ]=1;
for(i=1;i<9;i++) a[ ][9]=1;
for(i=1;i< ;i++)
for(j=1;j< ;j++)
if( ) a[i][j]=0;
for(i=0;i<10;i++)5
{ for(j=0;j<10;j++) printf(“%2d”,a[i][j]);
;
}
}
10. 用键盘输入一串字符,下面程序能统计输入字符中大写字母的个数,用‘#’号结束输入,请填空。
#include <stdio.h>
void main()
{ int c[26],i; char ca;
for(i=0;i<26;i++) c[i]= ;
scanf(“%c”,&ca);
while( )
{ if((ca>=’A’)&&(ca<=’Z’)) c[ca-65]+= ;
;
}
for(i=0;i<26;i++)
if(c[i]) printf(“%c:%d个\n”,i+ ,c[i]);
}
11. 以下程序可把输入的十进制长整型数以十六进制数的形式输出,请填空。
void main()
{ char b[17]={“0123456789ABCDEF”};
int c[64],d,i=0,base=16;
long n;
printf(“Enter a number:\n”);
scanf(“%d”,&n);
do {c[i]= ;i++;n=n/base;}
while (n!=0);
printf(“Transmit new base:\n”);
for(i=i-1;i>=0;i--)
printf(“%c”, );
printf(“\n”);
} 展开
#include “string.h”
void main()
{ int i,j, ,;
char str[]={“1234567”};
for(i=0,j=strlen(str); ;i++,j--)
{ k=str[i]; str[i]=str[j]; str[j]=k;}
}
9. 以下程序的功能是给偶数行的方阵中所有边上的元素和两对角线上的元素置1,其它元素置0(要求对每个元素只置一次值)。最后按矩阵形式输出。请填空。
void main()
{ int a[10][10],i,j;
for(i=0;i<10;i++)
{a[ ][i]=1; a[i][ ]=1;}
for(i=1;i<9;i++) a[0][ ]=1;
for(i=1;i<9;i++) a[ ][i]=1;
for(i=1;i<9;i++) a[i][ ]=1;
for(i=1;i<9;i++) a[ ][9]=1;
for(i=1;i< ;i++)
for(j=1;j< ;j++)
if( ) a[i][j]=0;
for(i=0;i<10;i++)5
{ for(j=0;j<10;j++) printf(“%2d”,a[i][j]);
;
}
}
10. 用键盘输入一串字符,下面程序能统计输入字符中大写字母的个数,用‘#’号结束输入,请填空。
#include <stdio.h>
void main()
{ int c[26],i; char ca;
for(i=0;i<26;i++) c[i]= ;
scanf(“%c”,&ca);
while( )
{ if((ca>=’A’)&&(ca<=’Z’)) c[ca-65]+= ;
;
}
for(i=0;i<26;i++)
if(c[i]) printf(“%c:%d个\n”,i+ ,c[i]);
}
11. 以下程序可把输入的十进制长整型数以十六进制数的形式输出,请填空。
void main()
{ char b[17]={“0123456789ABCDEF”};
int c[64],d,i=0,base=16;
long n;
printf(“Enter a number:\n”);
scanf(“%d”,&n);
do {c[i]= ;i++;n=n/base;}
while (n!=0);
printf(“Transmit new base:\n”);
for(i=i-1;i>=0;i--)
printf(“%c”, );
printf(“\n”);
} 展开
5个回答
展开全部
8.
#include “string.h”
void main()
{ int i,j, ,;
char str[]={“1234567”};
for(i=0,j=strlen(str);i<j;i++,j--)
{ k=str[i]; str[i]=str[j]; str[j]=k;}
}
9.
void main()
{ int a[10][10],i,j;
for(i=0;i<10;i++)
{a[i][i]=1; a[i][9-i]=1;}
for(i=1;i<9;i++) a[0][i]=1;
for(i=1;i<9;i++) a[9][i]=1;
for(i=1;i<9;i++) a[i][0]=1;
for(i=1;i<9;i++) a[i][9]=1;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
if(i!=j&&i+j!=9) a[i][j]=0;
for(i=0;i<10;i++)
{ for(j=0;j<10;j++) printf(“%2d”,a[i][j]);
printf("\n");
}
}
10.
#include <耐数stdio.h>
void main()
{ int c[26],i; char ca;
for(i=0;i<26;i++) c[i]=0;
scanf(“%c”,&ca);
while(ca!='#')
{ if((ca>=’A’)&&(ca<=’Z’)) c[ca-65]+=1;
scanf(“%c”,&ca);
}
for(i=0;i<26;i++)
if(c[i]) printf(“%c:%d个\n”,i+65,c[i]);
}
11.
void main()
{ char b[17]={“0123456789ABCDEF”};
int c[64],d,i=0,base=16;
long n;
printf(“Enter a number:\n”);
scanf(“%d”,&n);
do {c[i]=n%16;i++;n=n/base;}
while (n!=0);
printf(“Transmit new base:\n”);
for(i=i-1;i>正毁=0;i--)
printf(“%c”,b[i]);
printf(“\举亩备n”);
}
#include “string.h”
void main()
{ int i,j, ,;
char str[]={“1234567”};
for(i=0,j=strlen(str);i<j;i++,j--)
{ k=str[i]; str[i]=str[j]; str[j]=k;}
}
9.
void main()
{ int a[10][10],i,j;
for(i=0;i<10;i++)
{a[i][i]=1; a[i][9-i]=1;}
for(i=1;i<9;i++) a[0][i]=1;
for(i=1;i<9;i++) a[9][i]=1;
for(i=1;i<9;i++) a[i][0]=1;
for(i=1;i<9;i++) a[i][9]=1;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
if(i!=j&&i+j!=9) a[i][j]=0;
for(i=0;i<10;i++)
{ for(j=0;j<10;j++) printf(“%2d”,a[i][j]);
printf("\n");
}
}
10.
#include <耐数stdio.h>
void main()
{ int c[26],i; char ca;
for(i=0;i<26;i++) c[i]=0;
scanf(“%c”,&ca);
while(ca!='#')
{ if((ca>=’A’)&&(ca<=’Z’)) c[ca-65]+=1;
scanf(“%c”,&ca);
}
for(i=0;i<26;i++)
if(c[i]) printf(“%c:%d个\n”,i+65,c[i]);
}
11.
void main()
{ char b[17]={“0123456789ABCDEF”};
int c[64],d,i=0,base=16;
long n;
printf(“Enter a number:\n”);
scanf(“%d”,&n);
do {c[i]=n%16;i++;n=n/base;}
while (n!=0);
printf(“Transmit new base:\n”);
for(i=i-1;i>正毁=0;i--)
printf(“%c”,b[i]);
printf(“\举亩备n”);
}
展开全部
void
move(char
*str,int
n)
{
char
temp;
int
i
=
0;
temp=str[n-1];
/*temp保存数组中最后一个字符*/
/*将数组中的字符统一向后移动唯漏早一位*/
for(i=n-1;i>0;i--)
str[i]=str[i-1];
/*将保存的最后一个字符移动到第一位搜姿*/指雀
str[0]=temp;
}
move(char
*str,int
n)
{
char
temp;
int
i
=
0;
temp=str[n-1];
/*temp保存数组中最后一个字符*/
/*将数组中的字符统一向后移动唯漏早一位*/
for(i=n-1;i>0;i--)
str[i]=str[i-1];
/*将保存的最后一个字符移动到第一位搜姿*/指雀
str[0]=temp;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=n-i;i>0;i--)这一句写租哗的好象有问题
我改了一下
输出结果是cdeab,还是跟你说的不一样塌型旦
你再看看书,看看是不是你打错了
#include"stdio.h"
#include<string.h>
move(char
*str,int
n)
{
char
temp;int
i;
temp=str[n-1];
for(i=n-1;i>0;i--)
str[i]=str[i-1];
str[0]=temp;
}
main()
{
char
s[50];
int
n,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)
move(s,z);
printf("%s\团扰n",s);
}
我改了一下
输出结果是cdeab,还是跟你说的不一样塌型旦
你再看看书,看看是不是你打错了
#include"stdio.h"
#include<string.h>
move(char
*str,int
n)
{
char
temp;int
i;
temp=str[n-1];
for(i=n-1;i>0;i--)
str[i]=str[i-1];
str[0]=temp;
}
main()
{
char
s[50];
int
n,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)
move(s,z);
printf("%s\团扰n",s);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
move函数有问题,move函数for循环里面i=n-1才对,move函数的作用是把出入的字符串循环右枯握宽移一位,不如abcd被mvoe一皮源次后没亮为bcda,两次后为cdab,以此类推
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的书薯闭茄上估计态腊是少数察写了
for(i=n-i;i>0;i--)
{
str[i]=str[i-1];
str[0]=temp;
}
他本来是要做前后位置调换的!
但是实际上他只循环了str[i]=str[i-1];这句
for(i=n-i;i>0;i--)
{
str[i]=str[i-1];
str[0]=temp;
}
他本来是要做前后位置调换的!
但是实际上他只循环了str[i]=str[i-1];这句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询