帮忙做几道C语言的题,谢谢各位大侠

2025-01-02 19:39:29
推荐回答(3个)
回答1:

题目太多了!又容易又多!

1、
#include

main()
{
int a[]={8,6,5,4,1};
int num,i,t;

num=sizeof(a)/sizeof(int);
printf("原始数组:");
for(i=0;i {
printf("%d ",a[i]);
}
printf("\n");

for(i=0;i {
t=a[i];
a[i]=a[num-i-1];
a[num-i-1]=t;
}

printf("交换后的数组:");
for(i=0;i {
printf("%d ",a[i]);
}
printf("\n");
}

2、
#include

main()
{
int all,normal,digit,para;
char ch;

all=normal=0;
digit=para=0;
while((ch=getchar())!='#')
{
switch(ch)
{
case '\n'://回车符
para++;
case ' '://空格
case '\t'://Tab
all++;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
digit++;
normal++;
all++;
break;
default:
normal++;
all++;
break;
}
}
printf("含空格、Tab、回车符时的字符个数:%d\n",all);
printf("不含这些字符时的字符个数:%d\n",normal);
printf("数字个数:%d, 文章的段落数:%d\n",digit,para);
}

6、
#include

#define N 3//手机号码的数目
main()
{
char a[N][100]={0};
char b[]="1234";
int i,j;

printf("输入%d个学生的手机号:",N);
for(i=0;i {
scanf("%s",a[i]);
}
printf("后4位1234的所有手机号码:\n");

for(i=0;i {
for(j=0;a[i][j]!='\0';j++)
;
if(a[i][j-4]==b[0]
&&a[i][j-3]==b[1]
&&a[i][j-2]==b[2]
&&a[i][j-1]==b[3])
{
puts(a[i]);
}
}
}

8、
#include

#define N 2//周数
#define M 5//星期数

main()
{
int a[N][M]={0};
char b[]="1234";
int i,j;

printf("输入两周内某学生星期一到星期五的消费额:",N);
for(i=0;i for(j=0;j {
scanf("%d",&a[i][j]);
}
printf("第2周星期三所用金额数:%d\n",a[1][2]);
}

九、
#include
#define M 32

main()
{
int m,n,k=0,bin[M]={0};

printf("请输入十进制正整数: ");
scanf("%d",&m);

printf("十进制正整数%d转换成二进制数为: ",m);
while(m!=0)
{
bin[k]=m%2;
m=m/2;
k++;
}

for(n=M-1;n>=0;n--)
{
printf("%d",bin[n]);
if(n%8==0)
{
printf(" ");
}
}
printf("\n");
}

回答2:

十六进制转十进制数算法

十六进制中,ABCDEF分别表示10 11 12 13 14 15
个位+十位×16+百位×256……
即:16的0,1,2……次方
例如5BB
11+11×16+5×256=1467

十进制转换十六进制

拿 十进制数 除以十六就可以了
10转16:
100以内一点的10转16心算比较快。10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数。

十进制转换二进制算法

比如1994 转换成二进制如下!

1994/2=997-----------0
997/2=498------------1
498/2=249------------0
249/2=124------------1
124/2=62-------------0
62/2 =31-------------0
31/2 =15-------------1
15/2 =7--------------1
7/2 =3--------------1
3/2 =1--------------1
1/2=0 --------------1
除到零为止.书上有说:除到零.最后一位剩1
这样加起来就是1994了.
参考资料:谭浩强(师范院校教科书)

二进制转换十进制
例如:110110101

转为10进制的方法是1+0*2+1*4+0*8+1*16+1*32+0*64+1*128+1*256

就是依次往上递增2的次方

回答3:

你好贪心啊,C语言要是自己做题的话要慢慢调试,一道题30分钟计,你的所有题还要5小时才能完成,何况有些题要更多时间,建议直接搜答案。