大一程序设计C语言

大一程序设计C语言,第1张

#include<stdioh>

int main(void){

int lower,upper;

float celsius,fahr;

scanf("%d%d",&lower,&upper);

if(lower<=upper){

printf("fahr celsius\n");

for(fahr=lower;fahr<=upper;fahr=fahr+2){

celsius=5(fahr-32)/9;

printf("%0f%61f\n",fahr,celsius);

}

}

else printf("Invalid");

}

1 D, 字节对齐 char 也是2

2 A B的第三个参数错;C常量不能做为左值;D不知道了

3 A

4 A

5 C

6 D

7 C

8 D

9 C

10B

11C

12B 用追加方式不可读。

13B

public  class University implements Comparable {

private String uniName;

private int population;

public University(String uniName, int population) {

super();

thisuniName = uniName;

thispopulation = population;

}

public String getUniName() {

return uniName;

}

public void setUniName(String uniName) {

thisuniName = uniName;

}

public int getPopulation() {

return population;

}

public void setPopulation(int population) {

thispopulation = population;

}

@Override

public int compareTo(Object o) {

return  ((University)o)getPopulation()-population;

}

} List<University>list=new ArrayList<>();

University university=new University("A", 3000);

University university2=new University("B", 2000);

University university3=new University("C", 4000);

University university4=new University("D", 6000);

University university5=new University("E", 5000);

listadd(university);

listadd(university2);

listadd(university3);

listadd(university4);

listadd(university5);

Collectionssort(list);

for(int i=0;i<listsize();i++){

Systemoutprintln(listget(i)getUniName());

Systemoutprintln(listget(i)getPopulation());

Systemoutprintln("");

}

输出:

D

6000

E

5000

C

4000

A

3000

B

2000

三种循环一般可以相互转换的,但是根据不同的问题,解决办法的难易程度不一样

do{}while()

先执行do里面的,然后判断while的表达式条件,如果判断为真,就继续执行do里面的,

如果为假,就退出循环

while(){}

这个是先判断while表达式的条件,然后执行里面的循环体

for(1;2;3){}

这个是先执行1,然后执行判断表达式2,如果为真,执行3;再执行判断表达式2,如果为假,就退出循环

如果谢谢

在以下地方找:

百度,贴吧,找答案工具。

1、百度

这不用多说,遇到不懂的问题,大多数人第一反应就是百度,也确实比较好用。但在大学找答案这一块,会出现良莠不齐的情况,你搞不清楚自己搜出来的答案是对是错。

2、贴吧

到自己学校的贴吧去问,这样得到的答案正确率会比较高,但帖子也有可能石沉大海,无人问津。

3、找答案工具

比如上学吧找答案软件,高校很多专业课公共课的试题答案都能找到,用起来挺方便的。

你们都不是学生吧这么问的还好啊

你看看这个行不

我们刚学的,一个表达式求值的小程序

#include <stdioh>

#include <conioh>

#include <stringh>

#include "stdlibh"

typedef struct symbal //运算符

{

char s;

struct symbal next;

}Node_sym,Link_sym;

typedef struct number // *** 作数

{

float n;

struct number next;

}Node_num,Link_num;

//

void initsym(Link_sym &L); //初始化符号栈

int pushsym(Link_sym &L,char c); //运算符进栈

int popsym (Link_sym &L,char c); //运算符出栈

int emptysym(Link_sym L); //判栈空

int gettopsym(Link_sym L,char &c); //取栈顶

int prior(char a); //确定运算符的优先级

void initnum(Link_num &L); //初始化 *** 作数栈

int pushnum(Link_num &N,float c); // *** 作数进栈

int popnum (Link_num &N,float &num); // *** 作数出栈

int emptynum(Link_num L); //判栈空

int gettopnum(Link_num L,int n); //取栈顶

float calculate(char numb[]);

int disp(Link_num L); //查看符号栈

//

void initsym(Link_sym &L)

{

L=new Node_sym;

L->s='#';

L->next=NULL;

}

void initnum(Link_num &N)

{

N=NULL;

}

int pushsym(Link_sym &L,char c)

{

Link_sym p;

if ((p=new Node_sym)==NULL)return 0;

p->s=c;

p->next=L;

L=p;

return 1;

}

int pushnum(Link_num &N,float c)

{

Link_num p;

p=new Node_num;

p->n=c;

p->next=N;

N=p;

return 1;

}

int popsym (Link_sym &N,char c)

{

if (emptysym(N)==0)

{

//printf ("栈空");

return 0;

}

Link_sym p;

p=N->next;

c=N->s;

N=p;

return 1;

}

int popnum (Link_num &N,float &num)

{

if (emptynum(N)==0)

{

// printf ("栈空");

return 0;

}

num=N->n;

N=N->next;

return 1;

}

int emptysym(Link_sym L)

{

if (L==NULL)return 0;

else return 1;

}

int emptynum(Link_num L)

{

if (L==NULL)return 0;

else return 1;

}

int gettopsym(Link_sym L,char &c)

{

if (emptysym(L)==0)

{

// printf ("栈空");

return 0;

}

c=L->s;

return 1;

}

int disp(Link_num L)

{

if (L==NULL)

{

// printf("栈空");

return 0;

}

Link_num p=L;

while (p!=NULL)

{

printf ("%f",p->n);

p=p->next;

}

return 1;

}

void transform(char s[],char numb[]) //转化为后缀表达式

{

int i=0,j=0,n=0;

char temp;

Link_sym L;

initsym(L);

while(s[i]!=0)

{ //printf("\n当前遇到的是:%c\n",s[i]);

if(s[i]>='0'&& s[i]<='9'||s[i]=='')//是数字 //或者是小数点

{numb[j++]=s[i];

// printf ("进入后缀式\n");

i++;

continue;}

numb[j++]=' '; //每两个数字之间用空格隔开

//是运算符

switch(s[i]){

case '(': pushsym(L,'('); break;

case ')': gettopsym(L,temp);

while( temp!='('){

numb[j++]=temp;

popsym(L,temp);

gettopsym(L,temp);

}

break;

default: while(gettopsym(L,temp)&&prior(temp)>=prior(s[i]))

{

if(temp!='#')numb[j++]=temp;

popsym(L,temp);

}

if(s[i]!='#')pushsym(L,s[i]);

}//else

i++;

// printf("当前的后缀式是:");

// for(n=0;n<j;n++)putchar(numb[n]);

// putchar('\n');

// printf("当前的运算符栈是:");

// disp(L);

// getch();

}

numb[j]='\0';

}

int prior(char a) //返回运算符优先级

{

if(a=='+'||a=='-') return 1;

if(a=='#') return -1;

if(a==''||a=='/') return 2;

if(a=='(') return 0;

}

float calculate (char numb[])

{

int flag=0;

float num1,num2,temp;

float sum;

Link_num num;

initnum(num);

int i=0;

while (numb[i]!=0)

{

if (numb[i]>='0'&&numb[i]<='9'||numb[i]=='')

{

flag=0;

sum=0;

while (numb[i]>='0'&&numb[i]<='9'||numb[i]=='')

{

if (numb[i]==''){flag=1;i++;continue;}

if (flag==0)

{

sum=sum10+(numb[i]-48);

}

else

{

sum=sum10+(numb[i]-48);

flag++;

}

i++;

}

while (flag>1)

{

sum=sum/100;

flag--;

}

pushnum(num,sum);

}

if (numb[i]=='+'||numb[i]=='-'||numb[i]==''||numb[i]=='/')

{

popnum(num,num2);

popnum(num,num1);

char sym=numb[i];

switch(sym)

{

case '+': temp=num1+num2;pushnum(num,temp);break;

case '-': temp=num1-num2;pushnum(num,temp);break;

case '': temp=num1num2;pushnum(num,temp);break;

case '/': temp=num1/num2;pushnum(num,temp);break;

}

}

i++;

}

popnum(num,temp);

return temp;

}

main ()

{

float result;

int i,j=0;

char temp;

char c;

char s[100],numb[100];

do

{

system("cls");

int b;

printf("\n\n\n\n\t\t\t\t表达式计算(链栈)\n");

printf("\n\t\t\t 1将表达式转化为后缀表达式计算\n");

printf("\n\t\t\t 2退出\n");

printf("\n\t\t\t 请选择(1/2):");

while (1)

{

scanf("%d",&b);

if (b>2||b<1)

{

printf ("序号错误,重新输入:");

scanf("%d",&b);

}

if (b==1||b==2)break;

}

if (b==2)return 0;

fflush(stdin);

printf ("请输入表达式:");

gets(s);

i=strlen(s);

s[i]='#';

s[i+1]=0;

transform(s,numb);

result=calculate(numb);

s[i]=0;

system("cls");

for (i=0;i<100;i++)

{

printf ("计算中,请稍后\n%d%",i);

// delay(100);

system("cls");

}

puts(s);

printf ("的计算结果是:%f ^_^",result);

getch();

}while (1);

}

这个原来我写的

不过好长时间了,估计现在让我弄都已经弄不明白了 呵呵o(∩_∩)o

以上就是关于大一程序设计C语言全部的内容,包括:大一程序设计C语言、大一C语言问题(C语言程序设计 李凤霞 第二版)、大一Java程序设计问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9869255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存