当前位置:首页 » 编程语言 » c语言编程55讲
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编程55讲

发布时间: 2022-04-16 06:20:23

1. c语言简单编程

1.输入2个正整数m和n,求其最大公约数和最小公倍数
#include<stdio.h>
#include<math.h>
int main()
{
int m,n,p,q,s,r;
printf("请输入两个正整数;m,n\n");
scanf("%d,%d",&m,&n);
s=m*n;
if(m<n)
{
p=m;
m=n;
n=p;
}
printf("%d\t%d\n",m,n);/*按从大到小输出m,n */
while(n!=0)
{
q=m%n;
m=n;
n=q;
}
/*是不是m才是最大公约数啊*/
r=s/m;
printf("m和n最大公约数为 %d\n",m);
printf("m和n最小公倍数为 %d\n",r);/*m和n的积除以m和n的最大公约数即为最小公倍数*/
return 0;
}

2.输出100以内能被3整除且个位数为6的所有整数。
#include<stdio.h>
int main(void)
{
int i;
for(i=1;i<=100;i++)
if(i%3==0&&i%10==6)printf("%d ",i);
return 0;
}

3. 编程计算从1到10各数阶乘的和,即1! + 2! + 3! + …… + 9! + 10! 的和
#include<stdio.h>
int main(void)
{
int sum,i,term;
sum=0;
term=1;
for(i=1;i<=10;i++)
{
term=term*i;
sum=sum+term;
printf("%d的阶乘 %d\n",i,term);
}
printf("1到10各数阶乘的和 %d\n",sum);
return 0;
}

4.使用嵌套循环产生下列由大写字母组成的图
#include<stdio.h>
int main(void)
{
char ch1,ch2;
for(ch1='A';ch1<='Z';ch1++)
{
for(ch2='A';ch2<=ch1;ch2++)
printf("%c",ch2);
printf("\n");
}
return 0;
}

5. 编程输出所有三位数中的素数。
#include<stdio.h>
int main(void)
{
int x,i;
for(x=100;x<=999;x++)
{
for(i=2;i<x/2;i++)
if(x%i==0)break;
if(i==x/2)printf("%d ",x);
}
return 0;
}

6. 定义一个函数even(),判断一个整数是否是偶数。如果是偶数返回1,否则返回0。(要求包括能使程序正常运行的主函数)
#include<stdio.h>
int main(void)
{
int even(int);
int x,y;
scanf("%d",&x);
y=even(x);
if(y==1)
printf("%d 是偶数\n",x);
else
printf("%d 是奇数\n",x);
return 0;
}
int even(int x)
{
if(x%2==0)
return 1;
else
return 0;
}

7. 编写函数mypow,求整型变量x的y次方。(要求包括能使程序正常运行的主函数)

#include<stdio.h>
int main(void)
{
int mypow(int,int);
int x,y,s;
scanf("%d%d",&x,&y);
s=mypow(x,y);
printf("%d的%d次方是 %d\n",x,y,s);
return 0;
}
int mypow(int x,int y)
{
int sum,i;
sum=1;
for(i=1;i<=y;i++)
sum=sum*x;
return sum;
}

8.输入一个3位整数,输出它的逆序数。例如,输入127,输出应该是721。
#include<stdio.h>
int main(void)
{
int x,y;
scanf("%d",&x);
y=x/100+x/10%10*10+x%10*100;
printf("%d的逆序数 %d\n",x,y);
return 0;
}

9. 编写一个字符串连接函数,其功能是将两个字符串连接起来形成一个新的字符串,以实现库函数strcat()的功能
#include<stdio.h>
int main(void)
{
void mystrcat(char s1[],char s2[]);
char s1[80],s2[80];
scanf("%s%s",s1,s2);
mystrcat(s1,s2);
printf("%s\n",s1);
return 0;
}
void mystrcat(char s1[],char s2[])
{
int i,j;
for(i=0;s1[i]!='\0';i++);
for(j=0;s2[j-1]!='\0';j++)s1[i+j]=s2[j];
}

10. 编写一个字符串复制函数,其功能是将字符数组s2中的全部字符(包括字符串结束符号'\0')拷贝到字符数组 s1 中,以实现库函数strcpy()的功能。

#include<stdio.h>
int main(void)
{
void mystrcpy(char s1[],char s2[]);
char s1[80],s2[80];
scanf("%s",s2);
mystrcpy(s1,s2);
printf("%s\n",s1);
return 0;
}
void mystrcpy(char s1[],char s2[])
{
int i;
for(i=0;s2[i-1]!='\0';i++)
s1[i]=s2[i];
}

11.有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
#include<stdio.h>
int main(void)
{
void mystrcpy2(char s1[],char s2[],int m,int n);
char s1[80],s2[80];
int m,n;
scanf("%d%d",&m,&n);
scanf("%s",s1);
mystrcpy2(s1,s2,m,n);
printf("s1: %s\ns2: %s\n",s1,s2);
return 0;
}
void mystrcpy2(char s1[],char s2[],int m,int n)
{
int i,j;
for(i=m-1,j=0;i<n&&s1[i]!='\0';i++)
s2[j++]=s1[i];
s2[j]='\0';
}

2. 简单的C语言编程

第一个,有小数有整数,肯定会把整数转换成小数在计算
第二个,把2转换成long 类型
第三个,10/15
会得到个小数,最后会在取整,变成整数
第四个,齐了,啥都有

=============================================

void
main()
{
double
x=2.7,a=8,y=4.5;
cout<<
y+a%5*(int)(x+y)/2%4
<<endl;
}
1>------
已启动生成:
项目:
main,
配置:
Debug
Win32
------
1>正在编译...
1>x.cpp
1>
WINVER
not
defined.
Defaulting
to
0x0600
(Windows
Vista)
1>c:\users\administrator\desktop\main\main\x.cpp(142)
:
error
C2296:
“%”:
非法,左操作数包含“double”类型
1>生成日志保存在“file://c:\Users\Administrator\Desktop\main\main\Debug\BuildLog.htm”
1>main
-
1
个错误,0
个警告
==========
生成:
成功
0
个,失败
1
个,最新
0
个,跳过
0

==========

3. c语言编程

#include<stdio.h>

int main()
{
int max,//记录最大值
min,//记录最小值
x,//每次输入的值
i,//循环变量
sum;//和
char enter;//用于接收回车符
printf("请输入100个整数,回车分隔:\n");

//首先读入一个数,默认设为最大值、最小值
scanf("%d",&x);
scanf("%c",&enter);
max = x;
min = x;
sum = x;

//循环99次,输入接下来的99个数
for(i=1;i<100;i++)
{
scanf("%d",&x);
scanf("%c",&enter);

//每次都与之前确定的最大值最小值比较,
//得到到目前为止的最大值和最小值
if(max<x)
{
max = x;
}
if(min>x)
{
min = x;
}
//计算和
sum += x;
}

//输出结果
printf("最大值:%d,\t最小值:%d,\t平均值:%f\n",max,min,(double)sum/100);

return 0;
}

4. 我最近想学55系列DSP的C语言编程,请各位高手指点一下有什么合适的教材,谢谢!

这本书是DSP的经典教程:TMS 320 C55X 系列DSP指令系统、开发工具与编程指南 。
而DSP支持标准C语言,因此学C语言,选择译本C教程即可,比如:C Primer Plus(第五版)。
而语音识别则是算法应用,对数学基础要求比较好。学好微积分和级数等。

5. c语言编程题55

本题关键是找到分母的变化规律,以便构成循环。设分母为m,则m初值为1,以后每项可表示为m=m+k,k初值为0,每项变化为k=k+2。
设和为s=0,求前n项的和,则循环可写为:
for(i=1:i<n;i++)
{m=m+k;
s=s+1.0/m;
K=k+2;}
补充完整,即可。
另外,本题循环结束条件不满楚,题目小有问题。

6. C语言编程

第0题:

#include<stdio.h>
#define MAXLEN 70
main()
{
char s1[MAXLEN],s2[MAXLEN],same[MAXLEN]={0};
int i,temp,flag=0;
printf("请输入第一个字符串:\n");
scanf("%s",s1);
printf("请输入第二个字符串:\n");
scanf("%s",s2);
i=strlen(s1);
temp=strlen(s2);
if(i<temp) i=temp;
temp=i;
for(i=0;i<temp;i++)
if(s1[i]==s2[i]) {flag=1;same[i]=1;printf("%c ",s1[i]);}
if(flag==0) printf("####");
printf("\n");
for(i=0;i<temp && falg==1;i++)
if(same[i]) printf("%d ",i);
}

第1题
#include <stdio.h>
main()
{
int a[10]={36,90,55,58,25,39,79,89,33,74}, x;
int i,j,temp;
/*排序开始*/
printf("排序前:\n");
for(i=0;i<10;i++) printf("%d ",a[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j]) {temp=a[i];a[i]=a[j];a[j]=temp;}
printf("\n排序后:\n");
for(i=0;i<10;i++) printf("%d ",a[i]);
/*排序结束*/
printf("\n请输入所查找的数值:\n");
scanf("%d",&x);
/*查找开始*/
i=0;
j=9;

while(1)
{
temp=(i+j)/2;
if((i==j && a[temp]!=x)|| i>j) {temp=-1;break;}
if(a[temp]==x) {break;}
x>a[temp]?(i=temp+1):(j=temp-1);

}
printf("查找结果:%d\n",temp);
/*查找结束*/

}

第3题

#include<stdio.h>
#define M 3
#define N 4
main()
{
int ab[M][N]={{11, 12, 13, 14},
{21 ,22 ,23, 24 },
{31 ,32, 33, 34}};
int ba[N][M],i,j;
/*转置:*/
for(i=0;i<M;i++)
for(j=0;j<N;j++)
ba[j][i]=ab[i][j];
/*输出:*/
printf("转置后的矩阵是:");
for(i=0;i<N;i++)
{puts("\n");
for(j=0;j<M;j++)
printf("%d ",ba[j][i]);
}
}

7. C语言编程 关于计算时间的问题 望高手解答!

希望能够我的思路可以帮助你:
①如果password="124567"时,欢迎进入!
②如果password != "124567"时,等待15分钟!
③等待15分钟后返回重新输入密码!

#include <stdio.h>
#include <string.h>
#include<windows.h>
int main()
{
char str[20], password;
int x,i;
//执行4次循环0,1,2,3
for(x=0; x<=3 && strcmp(str,"1234567")!=0; x++)
{
printf("Enter password please:");
scanf("%s",&str);
//当密码错误时提示输入错误!
if(strcmp(str,"1234567")!=0)
{
printf("Input error!\n");
}
//当错误了3次时执行等待,并重置x的初值
if(x==2)
{
printf("Please wait another 15 min.");
for(i=0;i<=(15*60);i++)
Sleep(1000); //停滞一秒
//重置x的初值
x=0;
}
else
//密码输入正确时跳出循环,执行for循环之外的语句
{
if(strcmp(str,"1234567")==0)
printf("Welcome\n");
break;
}
}
//可以插入验证后要执行的代码
return 0;
}

8. c语言编程(不是c++哦)

我这边先写了第一题答案 以及第二题答案!你看,要是符合你要求的话,再继续!
/**
* @author 方涵萍
*right (C)[email protected] 2013-05-05
*
* 输出100以内个位数为6且能被3整除的所有数。
*/
#include <stdio.h>
#include <stdlib.h>
//输出100以内个位数为6且能被3整除的所有数。x为零时,结束输入
void divisible()
{
int x;
while(1)
{
scanf("%d",&x);
if(x==0)
exit(0);
else if(x%10==6 && x/3)
printf("输入的是:%d\n",x);
else
printf("你输入的值个位数不为6且能被3整除的所有数\n");
}
}

int main(int argc,char **argv)
{
printf("请输入一个100以内的整数!若退出,请输入“0”\n");
divisible();
return 0;
}

/**
* @author 方涵萍
*right (C)[email protected] 2013-05-05
*
* 键盘输入6 位学生的5门课成绩,分别统计出每个学生的平均成绩。
*/
#include <stdio.h>
#include <stdlib.h>
struct student
{
float chinese;//语文成绩
float english;//英语
float math;//数学
float c;//c语言
float java;//java
}stu[6];
//分别统计每个学生的平均分
void average(int i)
{
float total=0;
total+=stu[i].chinese;
total+=stu[i].english;
total+=stu[i].math;
total+=stu[i].c;
total+=stu[i].java;
printf("第%d个学生的平均分为%f\n",i+1,total/5);
}
int main(int argc,char **argv)
{
int i;
printf("请分别输入输入6 位学生的5门课成绩!\n");
for(i=0;i<1;i++)
{
printf("第%d个学生的成绩\n",i+1);
printf("\t语文成绩:");
scanf("%f",&stu[i].chinese);
printf("\t英语成绩:");
scanf("%f",&stu[i].english);
printf("\t数学成绩:");
scanf("%f",&stu[i].math);
printf("\tc语言成绩:");
scanf("%f",&stu[i].c);
printf("\tjava成绩:");
scanf("%f",&stu[i].java);
}
//计算平均分
for(i=0;i<1;i++)
{
printf("\n计算每个学生的平均分\n");
average(i);
}
return 0;
}

9. C语言程序设计这门课程第八章函数进阶(中级)的知识点有哪些

C语言程序设计这门课第八章函数进阶(中级)的知识点包含【中级】第48讲-参数的2种传递方式,【中级】第49讲-编写一个strlwr函数,【中级】第50讲-数组作为函数参数,【中级】第51讲-指针数组作为函数参数,【中级】第52讲-指向指针的指针作为函数参数,【中级】第53讲-结构体作为函数参数,【中级】第54讲-函数的作用范围,【中级】第55讲-变量的作用范围,。

10. C语言编程的详细解答

补充函数max,利用指针实现返回三个数中的最大值。
#include <stdio.h>

int max (int *x, int *y, int *z)
{ int *t;
if(*x<*y){t=x;x=y;y=t;}
if(*x<*z){t=x;x=z;z=t;}
if(*y<*z){t=y;y=z;z=t;}
return *x;
}

void main()
{
int a, b, c;
int *r, *s, *t;
clrscr()
r = &a;
s = &b;
t = &c;
scanf("%d, %d, %d", r, s, t);
printf("max = %d", max(r, s, t));
getch();
}

改写下面程序,使得通过调用swap函数在main中交换a和b的值。
#include <stdio.h>

void swap(int *x, int *y)
{
int *t;
t = x, x = y, y = t;
}

void main()
{
int a, b, *p, *q;
clrscr();
p = &a;
q = &b;
printf("Before swap: a=%d, b=%d \n", a, b);
swap(p, q);
printf("After swap: a=%d, b=%d \n", a, b);
getch();
}

完成函数count、input,返回数组中大于num的数据的个数。
#define N 5
#include <stdio.h>
int count(int *p, int q)
{
int result=0;
...
return (result);
}
void input(int x[])
{
}
void main()
{
int num, a[N];
printf("Input a number: ");
scanf("%d", &num);
input(a);
printf("%d numbers are bigger than %d.", count(t, num), num);
}//进行中....