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

c语言程序设计海燕

发布时间: 2022-06-15 17:25:11

c语言程序设计,设计一个简单的程序,能完成加减乘除运算,网上搜的答案运行都出现很多错误,解释一下程

1、简单版本的,输入两个数一个操作符:“1 + 2”类似这种,直接获取两个数以及操作符,用switch语句来分别对不同操作符进行操作。
2、复杂版本的,随意输入表达式,可以有括号以及其他运算符,“1+2*8+(6/7)^3”类似这种,有四种解决办法:
2.1、一遍一遍地扫描字符串,优先级越高的运算符越先做,每扫描一次减少一点,直到表达式只剩一个数值。
2.2、将表达式通过栈转换为逆波兰表达式,并计算逆波兰表达式。
2.3、递归求解,使用类似BNF的定义来使用递归将表达式一点一点剥离成小表达式,计算完小表达式后,将多个小表达式综合起来,即为整个表达式的值。
2.4、直接使用lex和yacc来写一个计算器,需要写的代码量很少,自动生成的代码量比较多。
主要就这几种思路,细节问题你可以自己上网查。

❷ 《C语言程序设计》第17章在线测试

1、D 因为#define C(x) ((x)*(x))宏中需要使用完备的括号才不会有引用错误
2、D 认真区分char a[]和char *p的区别,a是数组的首地址,也是指针,但是p仅仅是指向一个字符串的首地址的指针,虽然也是指针,但是你并不知道p指针具体在什么代码段的什么位置,从而p+=2的位置你也无法确定。
3、C extern本来就是外部的意思嘛
4、A 仅仅在主函数中有效,这是对的。
5、B 局部变量优先,给你举个例子:
int a=1;
int main()
{
int a=2;
cout<<a;
return 0;
}
就是类似这样的例子,你在main函数外定义了一个全局变量a,在main内部又定义了一个变量名也是a的局部变量,那么你在main中用cout输出的时候就是输出了局部变量a的值,要输出全局变量a的值时则要使用::a,实际上是局部变量将全局变量屏蔽了,可以看做局部变量的优先于全局变量
/**********************************************************************************/
第二题1、ABC
2、ABD
3、CD
4、AB
5 、AD
/**********************************************************************************/
第三题
正确
错误,可改为int *p=&x
错误,不是指向结构体的指针,不可以用->
正确,因为数组名那可是一个指针,是数组的首地址
正确 当然可以递归了,网上多的是那种递归的小程序
如果有什么不清楚,咱们可以后续交流哦@—@

❸ c语言程序设计. 由键盘输入两个整数,分别计算这两个数的和、差、积、商,并输出结果。

具体输入如下:

  1. #include "stdio.h"

  2. main()

  3. { int a,b;

  4. printf("请输入两个整数(a,b):");

  5. scanf("%d,%d",&a,&b);

  6. printf("和:%d ",a+b);

  7. printf("差:%d ",a-b);

  8. printf("积:%d ",a*b);

  9. printf("商:%f ",(float)a/b);}

❹ c语言程序设计例题

题目1
#include "stdio.h"
void main(void)
{
int n=5,m=10,i=1;
long sum=1;
for(;i<=n;i++)
{
sum*=i;
}
printf("\n5!=%d",sum);
for(i=1;i<=10;i++)
{
sum*=i;
}
printf("\n10!=%d",sum);
}
题目2
#include "stdio.h"
#include "string.h"
struct Student
{
char s_Name[25];
long n_Code;
int n_English;
int n_Math;
int n_Computer;
}student_1,student_2;
void main(void)
{
printf("\nStudent1:\nName:");
scanf("%s",&student_1.s_Name);
printf("StudentNum:");
scanf("%d",&student_1.n_Code);
printf("English Score:");
scanf("%d",&student_1.n_English);
printf("Math Score:");
scanf("%d",&student_1.n_Math);
printf("Computer Score:");
scanf("%d",&student_1.n_Computer);

printf("\nStudent2:\nName:");
scanf("%s",&student_2.s_Name);
printf("StudentNum:");
scanf("%d",&student_2.n_Code);
printf("English Score:");
scanf("%d",&student_2.n_English);
printf("Math Score:");
scanf("%d",&student_2.n_Math);
printf("Computer Score:");
scanf("%d",&student_2.n_Computer);

printf("\nStudent1:\nName:%s\nStudent Number:%d\nEnglish Score:%d\nMath Score:%d\nComputer Score:%d\n",student_1.s_Name,student_1.n_Code,student_1.n_English,student_1.n_Math,student_1.n_Computer);
printf("\nStudent2:\nName:%s\nStudent Number:%d\nEnglish Score:%d\nMath Score:%d\nComputer Score:%d\n",student_2.s_Name,student_2.n_Code,student_2.n_English,student_2.n_Math,student_2.n_Computer);

}

❺ c语言程序设计 很急!!!

第一个问题 if((ch>='a')||(ch<='z'))
这个式子永远为真应该把||该成&&
第二个问题 如果用户输入8那么你的程序就打印9了要该成
if (x==6||x==4) printf("%d",x);
第三个问题
if (c>b)
{ if (b>a) max=c;} /* c>b>a */
else /* b>c */
{if (c>a) max=b;} /* b>c>a */
你的判断不完全 如果输入a=11 b=10 c=12 那么就无法判断了
最好该成max=((a>b)?b:a)>c?((a>b)?b:a):c

填空
1 (scanf("%c",&c);) (printf("0-9\n");)
(if('A'<=c&&c<='Z')) (else if) (else)
2 (y%4==0) (f=0)

编程第一个题不知道你什么意思

2
void sanjiaoxing(){
int d1,d2,d3;
scanf("%d%d%d",&d1,&d2,&d3);
if(d1>=0&&d2>=0&&d3>=0){
if(d1*d1+d2*d2==d3*d3){
printf("%d",d1*d2*0.5);
}else if(d1*d1+d3*d3==d2*d2){
printf("%d",d1*d3*0.5);
}else if(d2*d2+d3*d3==d1*d1){
printf("%d",d3*d2*0.5);
}else{
printf("你输入的不是一个直角三角形");
}
}else{
printf("你输入的不是一个三角形");
}
}

❻ C语言程序设计 (学生选修课程设计)

这是我做的,你看是否满意?可能有点大,但也没办法呀,你的题目也比较大,呵呵!所以,如果满意,多给我追加点分!
#include
"stdio.h"
#include
"stdlib.h"
#include
"string.h"
typedef
struct
course
{
char
number[15],name[25];
int
kind,time,lessontime,practicetime,credit,term;
}type;
FILE
*fp1;
void
overview();
//浏览函数,负责浏览整个课程信息
void
seek();
//查询函数,负责查询课程信息
void
choose_course();//选课函数,负责让用户选课
void
out(type
temp);
void
input();
int
main()
{
int
n,i;
if((fp1=fopen("course_information.txt","wb"))==NULL)
{printf("创建文件失败!\n");exit(0);}
printf("请输入要存储的课程数目:\n");
scanf("%d",&n);
printf("开始创建文件,请输入课程信息:\n\n");
for(i=0;i<n;i++)
{
printf("请输入第%d门课程的信息:\n",i+1);
input();
printf("\n");
}
printf("如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;
如想进行选课,请输入3;如想结束选修课系统,请输入0!\n");
while((scanf("%d",&n))!=EOF)
{
if(n==1)
overview();
if(n==2)
seek();
if(n==3)
choose_course();
if(n==0)
exit(0);
printf("\n\n如想继续操作,只要按规则输入你要进行的操作即可!\n规则:如想浏览整个课程信息,请输入1;如想查询课程信息,请输入2;如想进行选课,请输入3!\n");
}
printf("欢迎您使用此程序进行选课,谢谢!\n");
fclose(fp1);
return
0;
}
void
input()
{
course
c_a;
printf("请输入课程编码:
");
scanf("%s",c_a.number);
printf("请输入课程名:
");
scanf("%s",c_a.name);
printf("请输入课程性质:限选课,请输入1;选修课,请输入2;必修课,请输入3!
");
scanf("%d",&c_a.name);
printf("请输入课程总学时:
");
scanf("%d",&c_a.time);
printf("请输入课程授课时间:
");
scanf("%d",&c_a.lessontime);
printf("请输入课程实验或实践时间:
");
scanf("%d",&c_a.practicetime);
printf("请输入课程学分:
");
scanf("%d",&c_a.credit);
printf("请输入课程所在的学期,比如第二学期,就输入2即可。");
scanf("%d",&c_a.term);
fwrite(&c_a,sizeof(struct
course),1,fp1);//将一个结构体元素写入文件中
}
void
out(type
temp)
{
printf("课程代码:
%s\n课程名:
%s\n",temp.number,temp.name);
printf("课程名:
%s\n",temp.name);
if(temp.kind==1)
printf("课程性质:
Limited
optional
course\n");
else
if(temp.kind==2)
printf("课程性质:
Optional
course\n");
else
if(temp.kind==3)
printf("课程性质:
Required
Courses\n");
else
printf("该编码系统不认识,即无对应的课程性质存在!\n");
printf("课程总学时:
%d\n课程授课学时:
%d\n实验或上机学时:
%d\n学分:
%d\n课程开课学期:
%d\n\n",temp.time,temp.lessontime,temp.practicetime,temp.credit,temp.term);
}
void
overview()
{
rewind(fp1);
course
temp;
printf("整个课程信息如下:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
out(temp);
}
void
seek()
{
int
judge,credit=0,kind=0;
char
a='N';
course
temp;
printf("如想按学分查询,请输入1;如想按课程性质,请输入2:\n");
scanf("%d",&judge);
rewind(fp1);
//将文件指针位置置为开头
if(judge==1)
{
printf("请输入要查询的学分:\n");
scanf("%d",&credit);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(credit==temp.credit)
out(temp);
}
else
if(judge==2)
{
printf("请输入你要查找课程的性质(限选课,请输入1;选修课,请输入2;必修课,请输入3):");
scanf("%d",&kind);
while((fread(&temp,sizeof(type),1,fp1))!=0)
if(temp.kind==kind)
out(temp);
}
else
printf("不好意思,无此类查询!\n");
}
void
choose_course()
{
rewind(fp1);
course
temp;
int
judge=1,n=0,time=0,credit=0;
char
choose[20][20];
r1:
printf("请开始填写课程编号进行选课:\n");
while(judge==1)
{
printf("请输入你所选课程的标号:
");
scanf("%s",choose[n]);
n++;
printf("如想继续选课,请输入1;如想提交,请输入0!\n");
scanf("%d",&judge);
}
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int
i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{time=time+temp.time;credit=temp.credit;break;}
}
if(time<270||credit<40)
goto
r1;
printf("你所选的课为:\n");
while((fread(&temp,sizeof(type),1,fp1))!=0)
{
for(int
i=0;i<n;i++)
if(strcmp(temp.number,choose[i])==0)
{out(temp);break;}
}
}

❼ C语言程序设计课后习题答案(田淑清 周海燕版)

疯,把题目贴出来啊!

❽ C语言程序设计编写程序问题

C语言实现,通过展开式求exp(x),参考代码如下:
#include<stdio.h>
int main()
{
int n=1;
double x,e=1,t=1;
scanf("%lf",&x);
do{
t=t*x/n;
e=e+t;
n=n+1;
}while(t>1e-6);
printf("exp(%g)=%.6lf",x,e);
return 0;
}

❾ 跪求C语言程序设计(高等教育出版社)的课后习题解

仔细看书的简介或序言中,可能会有相应的网站下载答案的!

❿ 求C语言程序设计

#include <stdio.h>
#define M 10
main()
{
int a[M][M],b[M][M],c[M][M],i,j,k,m,n,p;
printf("请输入矩阵A以及矩阵B的行、列数(其中A的列数等于B的行数,不重复输入):\n");
scanf("%d %d %d",&m,&n,&p);
printf("请输入矩阵A(%d行%d列):\n",m,n); /*矩阵A的各元素存入二维数组a中,B和C同理。*/
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("请输入矩阵A(%d行%d列):\n",n,p);
for(i=0;i<n;i++)
for(j=0;j<p;j++)
scanf("%d",&b[i][j]);

for(i=0;i<m;i++)
for(j=0;j<p;j++)
{
c[i][j]=0; /*先对矩阵C每个元素赋予初值0。*/
for(k=0;k<n;k++) /*应用了矩阵相乘公式。*/
c[i][j]+=a[i][k]*b[k][j];
}

printf("矩阵A左乘于B的积C(%d行%d列)为:\n",m,p);
for(i=0;i<m;i++)
for(j=0;j<p;j++)
{
if(j==p-1)
printf("%d\n",c[i][j]); /*仔细体会此语句! 用于换行时。*/
else
printf("%d\t",c[i][j]); /*正常输出不换行时。符号“\t”的作用是:令输出的一系列数字“按横向制表”。*/

}

printf("\n");
}