编程编高数题
‘壹’ 我想问一下,大学计算机编程需不需要用到高数的知识
大学计算机编程基本用不到高数内容。
以程序设计为主线、以案例为驱动。自始至终围绕“程序设计”来讲解,而不是“语言”的简单介绍,摒弃了目前各种程序设计书中流行的“解释程序设计语言”的做法。目的是教会读者怎样编程序,提高读者的程序设计能力,彻底改变 “学了程序设计而不会编程序”的现状。
‘贰’ c语言编程题 编写函数add(int a[4][4],int b[]),将一个4*4的矩阵中每列的最大值放到数组b中并转置。
#include "stdio.h"
void add(int a[][4],int b[]){
int i,j,t;
for(i=0;i<4;i++)
for(b[i]=a[0][i],j=1;j<4;j++)
if(a[j][i]>b[i])
b[i]=a[j][i];
for(i=0;i<4;i++)
for(j=0;j<i;j++)
t=a[i][j],a[i][j]=a[j][i],a[j][i]=t;
}
void print(int x[][4]){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;printf("%6d",x[i][j++]));
printf(" ");
}
}
int main(int argc,char *argv[]){
int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},b[4];
printf("Transpose before: ");
print(a);
add(a,b);
printf(" MAX0: %d MAX1: %d MAX2: %d MAX3: %d ",b[0],b[1],b[2],b[3]);
printf(" Transpose later: ");
print(a);
return 0;
}
代码格式和运行结果图片:
‘叁’ c语言编程题 编写求一组数据中最大值的函数,函数原型为:int find_max (int*p,int n)。
#include <stdio.h>
#define N 10
int find_max(int *p, int n);
int main(void)
{
int a[N] = {1, 87, 0, 2, 6, 90, -30, 34, 109, 1000};
printf("最大值为%d ", find_max(a, N));
return 0;
}
int find_max(int *p, int n)
{
int max = p[0], i = 1;
for(i = 1; i < n; i++)
{
if(max < p[i])
max = p[i];
else
continue;
}
return max;
}
‘肆’ 编程题:编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12.
用C语言实现了下,gcc4.4.1测试结果为273,237
#include <stdio.h>
void main(){
int x,y,z,i,sum,proct;
for (i=200;i<300;i++)
{
x=2;
y=(i-200)/10;
z=i%10;
sum=x+y+z;
proct=x*y*z;
if (sum==12&&proct==42)
printf("%d\n",i);
}
}
‘伍’ c语言编程题
第一题:编程输出右边图形,其行数n (<= 26)由输入而定。 A
A B A
A B C B A
A B C D C B A
#include <stdio.h>
main ()
{
int i,j,k;
int a,n;
printf("please input your low:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
a=65;
for(k=1;k<=i;k++)
printf("%c",a++);
for(k=1;k<i;k++)
printf("%c",--a-1);
printf("\n");
}
}
第二题:已知某班N(〈=50)名学生进行了高数、英语和C语言等3门课考试,将3门课的成绩以及计算3门课的总分存放于一个二维数组中,将学生姓名存放在另一个二维字符数组中,按总分(由高到低)将学生姓名排序并输出排序结果(序号和姓名)。
#include<stdio.h>
#include<string.h>
#define N 50
typedef struct
{
float mark[4];
long number;
char name[25];
}JD;
JD stu[N];
void sort(JD stu[],int n)
{
int i,j;
JD temp;
for(i=1;i<=n;i++)
for(j=1;j<=n-i;j++)
if(stu[j].mark[4]<stu[j+1].mark[4])
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
main()
{
int i,n;
printf("请输入学生数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个学生的信息(包括学号、姓名、高数成绩、英语成绩、c语言成绩):\n",i);
scanf("%ld%s",&stu[i].number,stu[i].name);
scanf("%f%f%f",&stu[i].mark[1],&stu[i].mark[2],&stu[i].mark[3]);
}
for(i=1;i<=n;i++)
{
stu[i].mark[4]=0;
stu[i].mark[4]=stu[i].mark[1]+stu[i].mark[2]+stu[i].mark[3];
}
sort(stu,n);
printf("排序的结果是:\n");
for(i=1;i<=n;i++)
{
printf("第%d名同学是:",i);
printf("%ld\t%s\n",stu[i].number,stu[i].name);
}
}
/*1. 用下面的公式计算e的x次方。在程序中要求用函数f1计算每项分子的值,
用函数f2计算每项分母的值(用递归函数来实现)。通过主函数调用f1和f2完成计算。
=1+ x + + + …(前10项的和)*/
/*#include<stdio.h>
double f1(int n,int m)
{
int i;
double s=1;
for(i=1;i<=m;i++)
s*=n;
return(s);
}
double f2(int n)
{
int i;
double fa=1;
for(i=1;i<=n;i++)
fa*=i;
return(fa);
}
void main()
{
int i,n;
double e=0.0;
printf("please input your x:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
e+=f1(n,i)/f2(i);
printf("e的x次方大约为:\n");
printf("%lf",e);
}
2:编写函数fun(char s[ ], int num[ ]),其功能是统计字符串 s 中数字字符、大写字母、小写字母和空格字符的出现次数,统计结果存于num数组中。再设计main函数,调用fun函数,实现预期功能。
#include<stdio.h>
#define N 10
void fun(char s[], int num[])
{
int i;
for(i=0;s[i]!='\0';i++)
if(s[i]>='0'&&s[i]<='9')
num[0]++;
else if(s[i]>='a'&&s[i]<='z')
num[1]++;
else if(s[i]>='A'&&s[i]<='Z')
num[2]++;
else if(s[i]==' ')
num[3]++;
}
main()
{
int num[4],i,j;
char s[N];
for(i=0;i<4;i++)
num[i]=0;
printf("please input the string:\n");
for(i=0;i<N;i++)
scanf("%c",&s[i]);
printf("the string is:\n");
for(i=0;i<N;i++)
printf("%c",s[i]);
fun(s,num);
printf("\n此字符串中数字字符出现的次数:\n");
printf("\t%d",num[0]);
printf("\n此字符串中小写字母出现的次数:\n");
printf("\t%d",num[1]);
printf("\n此字符串中大写字母出现的次数:\n");
printf("\t%d",num[2]);
printf("\n此字符串中空格字符出现的次数:\n");
printf("\t%d",num[3]);
}
‘陆’ 编程题:编写函数fun,使其完成如下数学表达式的计算。sample11.c
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
doublefun(doublex)
{
if(x<10)
{
doublet=1-exp(-1*x);
if(t){
return1/t;
}
return0x8FFFFFFF;//无穷大
}
else
return(x+3)*sin(2*x);
}
intmain()
{
printf("%8.3lf ",fun(5.16));
printf("%8.3lf ",fun(16.32));
system("pause");
return0;
}
‘柒’ 计算机编程题:编出一个等差数列,首项为一,公差为2,最后一项不小于100,。求答案
你这个题目有点问题,最后一项应该是小于100吧。如果不小于100的话,这就是死循环了!!
其实不难,就是结束循环条件问题,你改一下for语言里面的第二个表达式就好了
西面是代码
#include<stdio.h>
int main()
{
int i,sum=0;
for(i=1;i>100;i+=2)
sum=sum+i;
printf("总和为:%d",sum);
return 0;
}
‘捌’ 求一编程题!求一编程题,求公式s=1*2*3*4*5*............*n(n<50)的值,n的值由用户自己输入!
#include <stdio.h>
//求n!
double fun(int n){
if(n>1)
return n*fun(n-1);
else if(n==1)
return 1;
else
return 0;
}
void main(){
int n=0;
printf("求公式s=1*2*3*4*5*...*n(n<50)的值:\nn=");
scanf("%d",&n);
printf("s=%.0f \n",fun(n));
}
‘玖’ 用欧拉方法和后退的欧拉方法求解高数题,急急急!
欧拉方法公式为
y(j+1)=y(j)+h*(x(j)-Y(j)+1),j=0,1,2,...,
x(j)=0+0.1j=0.1j,j=0,1,2,...
利用初值y(0)=1,h=0.1和上面递推公式计算如下:
y(1)=y(0)+h*(x(0)-Y(0)+1)=1+0.1*(0-1+1)=1,
y(2)=y(1)+h*(x(1)-Y(1)+1)=1+0.1*(0.1-1+1)=1.01,
y(3)=y(2)+h*(x(2)-Y(2)+1)=1.01+0.1*(0.2-1.01+1)=?,....
后退的欧拉方法
y(j+1)=y(j)+h*(x(j+1)-Y(j+1)+1),解出Y(j+1)得
(1-h)y(j+1)=y(j)+h*x(j+1)+h,
y(j+1)=((y(j)+h*x(j+1)+h))/(1-h),j=0,1,2,...,
利用初值y(0)=1,h=0.1和上面递推公式就可计算了.