【求助】明天就要考试了,麻烦各位解答点C语言习题

先在这里谢谢各位的帮助了。
1.有一篇文章,共有两行,每行60个字符,要求分别统计出其中的英文大写字母,小写字母,数字,逗号及其他的字符个数?(用二维数组来储存)
——————————————————————————————
2.用起泡法对键盘输入的10个数进行排序,按从小到大的顺序输出(用主函数调用子函数的方法)
——————————————————————————————
3.有一个3行4列的二维数组,从键盘输入数据,编程序求出最小数,该最小数是3行求出最大数中的最小数。
——————————————————————————————
4.从键盘接收9,8,7,6,5,4,3,2,1,0十个数送人一个一维数组中存放,在按照0,1,2,3,4,5,6,7,8,9的顺序输出这是十个数
——————————————————————————————
5.通过键盘输入10个学生的成绩,存放在一个一维数组中,在求出这10个学生的平均成绩,打印输出平均成绩的值.(通过主函数调用子函数来实现)
——————————————————————————————
6.输入十个整数,计算出平均值(aver),找出最大者(max)和最小者(min)并将三者输出。
——————————————————————————————
7.求1!+2!+3!+4!+5!通过函数调用来写

************************************************************
题目多了点,希望各位大大能够鼎力相助,谢谢了。(*^__^*)
最新回答
玥天竺灭仄

2024-06-28 12:10:51

建议楼主看些c的基本教程,7道不算多,前两天我做了一个200分20多道题的,有例为证:
http://zhidao.baidu.com/question/57783198.html


vc6.0 运行通过

************************************************************
1.有一篇文章,共有两行,每行60个字符,要求分别统计出其中的英文大写字母,小写字母,数字,逗号

及其他的字符个数?(用二维数组来储存)

#include <stdio.h>
#include <string.h>

int main()
{
int i,j;
int num[2][5],len[2];
char str[2][100];
for(i=0;i<2;i++)
{
for(j=0;j<5;j++) num[i][j]=0;
}
for(i=0;i<2;i++)
{
printf("请输入第%d行\n",i+1);
gets(str[i]);
len[i]=strlen(str[i]);
for(j=0;j<len[i];j++)
{
if('A'<=str[i][j] && str[i][j]<='Z')
num[i][0]++;
else if('a'<=str[i][j] && str[i][j]<='z')
num[i][1]++;
else if('0'<=str[i][j] && str[i][j]<='9')
num[i][2]++;
else if(str[i][j]==',')
num[i][3]++;
else
num[i][4]++;
}
}
for(i=0;i<2;i++)
{
printf("第%d行有英文大写字母%d个,小写字母%d个,数字%d个,逗号%d个,其

他的字符%d个\n",i+1,num[i][0],num[i][1],num[i][2],num[i][3],num[i][4]);
}
return 0;
}

********************************************************************
2.用起泡法对键盘输入的10个数进行排序,按从小到大的顺序输出(用主函数调用子函数的方法)

#include <stdio.h>
void sort(int a[]) // 起泡法
{
int i,j,t;
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}

int main()
{
int i;
int num[100];
printf("请输入10个数:\n");
for(i=0;i<10;i++) scanf("%d",&num[i]);
sort(num);
printf("排序后为:\n");
for(i=0;i<9;i++) printf("%d ",num[i]);
printf("%d\n",num[9]);
return 0;
}

***********************************************************************
3.有一个3行4列的二维数组,从键盘输入数据,编程序求出最小数,该最小数是3行求出最大数中的最小数


#include <stdio.h>
int fmax(int a[],int n)
{
int i,max=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max) max=a[i];
}
return max;
}

int fmin(int a[],int n)
{
int i,min=a[0];
for(i=1;i<n;i++)
{
if(a[i]>min) min=a[i];
}
return min;
}

int main()
{
int i,j,min;
int num[10][10],max[10];
printf("请输入3*4个数:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++) scanf("%d",&num[i][j]);
}
for(i=0;i<3;i++) max[i]=fmax(num[i],4);
for(i=0;i<3;i++) min=fmin(max,3);
printf("3行出最大数中的最小数为:%d\n",min);
return 0;
}

****************************************************************************
4.从键盘接收9,8,7,6,5,4,3,2,1,0十个数送人一个一维数组中存放,在按照0,1,2,3,4,

5,6,7,8,9的顺序输出这是十个数

#include <stdio.h>

int main()
{
int i;
int num[100];
printf("请输入10个数:\n");
for(i=0;i<10;i++) scanf("%d",&num[i]);
printf("输出为:\n");
for(i=9;i>0;i--) printf("%d ",num[i]);
printf("%d\n",num[0]);
return 0;
}

************************************************************************
5.通过键盘输入10个学生的成绩,存放在一个一维数组中,在求出这10个学生的平均成绩,打印输出平均

成绩的值.(通过主函数调用子函数来实现)

#include <stdio.h>
float fave(int a[],int n)
{
int i,sum=0;
float ave;
for(i=0;i<n;i++) sum+=a[i];
ave=sum*1.0/n;
return ave;
}

int main()
{
int i;
int num[100];
float ave;
printf("请输入10个学生的成绩:\n");
for(i=0;i<10;i++) scanf("%d",&num[i]);
ave=fave(num,10);
printf("10个学生的平均成绩为:\n");
printf("%.2f\n",ave);
return 0;
}

************************************************************************
6.输入十个整数,计算出平均值(aver),找出最大者(max)和最小者(min)并将三者输出。

#include <stdio.h>

float fave(int a[],int n)
{
int i,sum=0;
float ave;
for(i=0;i<n;i++) sum+=a[i];
ave=sum*1.0/n;
return ave;
}

int fmax(int a[],int n)
{
int i,max=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max) max=a[i];
}
return max;
}

int fmin(int a[],int n)
{
int i,min=a[0];
for(i=1;i<n;i++)
{
if(a[i]>min) min=a[i];
}
return min;
}
int main()
{
int i,min,max;
int num[100];
float aver;
printf("请输入10个数:\n");
for(i=0;i<10;i++) scanf("%d",&num[i]);
aver=fave(num,10);
min=fmin(num,10);
max=fmax(num,10);
printf("平均值(aver):%.2f,最大者(max):%d,最小者(min):%d\n",aver,max,min);
return 0;
}

****************************************************************************
7.求1!+2!+3!+4!+5!通过函数调用来写

#include <stdio.h>

int fac(int n)
{
int i,mul=1;
for(i=1;i<=n;i++) mul*=i;
return mul;
}

int main()
{
int i,rst=0;
for(i=1;i<=5;i++) rst+=fac(i);
printf("1!+2!+3!+4!+5!=%d\n",rst);
return 0;
}
**************************************************************************
劫后余生

2024-06-28 01:16:05

5.通过键盘输入10个学生的成绩,存放在一个一维数组中,在求出这10个学生的平均成绩,打印输出平均成绩的值.(通过主函数调用子函数来实现)

#include<stdio.h>
#define N 10

float func(float a[],int n)
{
float aver=0;
int i;

for(i=0;i<n;i++)
{
aver+=a[i];
}
aver/=n;
return aver;
}

main()
{
float a[N];
int i;

printf("输入%d个学生的成绩:",N);
for(i=0;i<N;i++)
scanf("%f",&a[i]);
printf("平均值:%f\n",func(a,N));
}

6.输入十个整数,计算出平均值(aver),找出最大者(max)和最小者(min)并将三者输出。

#include<stdio.h>
#define N 10
main()
{
int a[N],i,max,min;
float aver;

printf("输入%d个整数:",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
max=min=aver=a[0];
for(i=1;i<N;i++)
{
aver+=a[i];
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
}
aver/=N;
printf("平均值:%f,最大者:%d,最小者:%d\n",aver,max,min);
}

7.求1!+2!+3!+4!+5!通过函数调用来写

#include<stdio.h>

int func(int n)
{
int i,m=1,sum=0;

for(i=1;i<=n;i++)
{
m*=i;
sum+=m;
}
return sum;
}

main()
{
printf("\b=%d\n",func(5));
}
≮陌路≯七

2024-06-28 17:04:26

真是的,这些题只要是认真看过书的人都会,不难,一看就知道思路,楼主应该认真学习吖~~~
灯火印容

2024-06-28 11:07:14

第一题。
你必须包含ctype.h
然后使用isupper,islower,isdigit,isspace分别判断大写,小写,数字,和空格,当然如果你熟悉ascii表,可以直接根据值的大小来判断字符的属性.
解:

#include "stdio.h"
#include "string.h"
void main()
{
char str[100],m;
int i,n,space=0,num=0,letter=0,other=0;
printf("请输入一串字符!按回车结束!\n");
gets(str);
n=strlen(str);
for(i=0;i<=n-1;i++)
{
m=str[i];
if(m==32)space++;
else if(m>='A'&&m<='Z'||m>='a'&&m<='z')letter++;
else if(m>='0'&&m<='9')num++;
else other++;
}
printf("有字母%d个,数字%d个,空格%d个,其他字符%d个。",letter,num,space,other);

第2题。
书上有的。
#include<math.h>
void main()
{
int a[11];
int i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if (a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers :\n");
for(i=1;i<11;i++)
printf("%d",a[i]);
}

第3题。
不会 不好意思。

第4题。- -#同3。

第5题。

#include <stdio.h>

int main()
{
int num[10];
int i;
int maxnum;

/* 输入,以回车分隔各个数字 */
printf("input 10 numbers: \n");
for (i = 0; i < 10; ++i) {
scanf("%d", &num[i]);
}

/* 打印十个数字 */
printf("they are: ");
for (i = 0; i < 10; ++i) printf("%d ", num[i]);

/* 找最大值,并输出 */
maxnum = num[0];
for (i = 1; i < 10; ++i) {
if (num[i] > maxnum) maxnum = num[i];
}
printf("\nthe max is %d\n", maxnum);

return 0;
}

第6题。

size=0;
while(size<n)
{
scanf("%d".&x);
a[size]=x;
sum=sum+a[size];
size++;
}
aver=sum/n;
max=min=a[0];
for(i=0;i<n;i++)
{ if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
if(a[i]>aver) printf("%d",a[i]);
}
printf("%d",min);
其他的自己加上

第7题。
main()
{long s=0,s1=1;
int n,i,j;
clrscr();
scanf("%d",&n);
j=1;
do
{s1=1;
for(i=1;i<=j;i++)
s1=s1*i;
s=s+s1;
j++;}
while(j<=n);
printf("%ld",s);
getch();}