用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~

和若2022-10-04 11:39:541条回答

用C语言编写程序使89C52单片机实现数字时钟功能,显示时分秒的数码管,p1~p7接a~
实验中6位数码管,分别为小时的十位,个位.分钟的十位,个位.秒的十位,个位.6个键盘分别对时秒分进行加一或减一. P1口控制数码管的 A B C D E F G DP.P3--P3.5分别为数码管123456的驱动脚. 我的83039052@.qq.com

已提交,审核后显示!提交回复

共1条回复
sdfdsfds23 共回答了16个问题 | 采纳率93.8%
当一盘好人,给个例程,自己研究吧¬¬
#include
char code duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //0-9数码管,共阴
char code wema[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7}; //片选,1-8个数码管
char j;
char h_num,m_num,s_num; //分别定义小时、分钟、秒
char h_shi,h_ge,m_shi,m_ge,s_shi,s_ge;
sbit fm=P3^4;
void delay(char x)
{
char a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void inter_init()
{
EA=1; //开总中断
ET0=1; //本例中使用的是定时器T0,如果用T1.则为ET1=0,TMOD=0x10.
TMOD=0x01; //定时器工作方式1
TH0=(65535-50000)/256; //因为晶振用的是11.0592MHZ.在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
TR0=1;
}
void display(char h_shi,h_ge,m_shi,m_ge,s_shi,s_ge)
{
P2=duma[h_shi];
P1=wema[0];
delay(8);
P2=duma[h_ge];
P1=wema[1];
delay(8);
P2=duma[10];
P1=wema[2];
delay(8);
P2=duma[m_shi];
P1=wema[3];
delay(8);
P2=duma[m_ge];
P1=wema[4];
delay(8);
P2=duma[10];
P1=wema[5];
delay(8);
P2=duma[s_shi];
P1=wema[6];
delay(8);
P2=duma[s_ge];
P1=wema[7];
delay(8);
}
void main()
{
inter_init();
s_num=55; //初始时间设置.分别是秒,分,小时
m_num=59;
h_num=10;
while(1)
{
if(j==20)
{
j=0;
if(s_num==59)
{
s_num=-1;
if(m_num==59)
{
m_num=-1;
if(h_num==24)
h_num=-1;
h_num++;
fm=0; //到整点后蜂鸣器会响一下
delay(50);
fm=1;
}
m_num++;
}
s_num++;
}
h_shi=h_num/10;
h_ge =h_num%10;
m_shi=m_num/10;
m_ge =m_num%10;
s_shi=s_num/10;
s_ge =s_num%10;
display(h_shi,h_ge,m_shi,m_ge,s_shi,s_ge);
}
}
void time()interrupt 1 using 1 //如果用T1的话,应为interrupt 3
{
TH0=(65535-50000)/256; //因为晶振用的是11.0592MHZ.在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
j++;
}
1年前

相关推荐

c语言,输入一个正整数,将这个正整数分解质因数
8509061年前1
y31019 共回答了30个问题 | 采纳率80%
#include
void main()
{
int i,n;
printf("please input n:");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i
C语言,好心人来吧若定义int m[10]={9,4,12,8,2,10,7,5,1,3},*p=m;下列哪一个表达式的
C语言,好心人来吧
若定义int m[10]={9,4,12,8,2,10,7,5,1,3},*p=m;下列哪一个表达式的结果与其他3个表达式的结果不同 __。
选择一个答案
A. sizeof(p)
B. sizeof(*m)
C. sizeof(m)
D. sizeof(*p) 答案给的D,求解
baoroo1年前1
LX8017 共回答了24个问题 | 采纳率83.3%
错了
我觉得正确答案应该是C
A. 指针长度 与机器寻址范围相关 一般等于 Long的字节数
B. 也是指针长度
C. 数组占用内存字节数 这里是 10*sizeof(int)
D. 指针指向的数据长度,而这个数据是 int 类型,即int类型字节数 同 Long
我在32位VC++6.0下 输出为
A: 4
B: 4
C: 40
D: 4
Press any key to continue
测试代码
#include "stdafx.h"
int main(int argc, char* argv[])
{
int m[10]={9,4,12,8,2,10,7,5,1,3},*p=m;
printf("A: %d n",sizeof(p));
printf("B: %d n",sizeof(*m));
printf("C: %d n",sizeof(m));
printf("D: %d n",sizeof(*p));
return 0;
}
用C语言的if语句,描述下面分段函数的计算
用C语言的if语句,描述下面分段函数的计算
sin(x) x=0
独行侠20061年前1
maldininesta 共回答了19个问题 | 采纳率89.5%
if(x
c语言小题目。6.表达式y=(13>12?15:6>7?8:9)的值为____________ . A 9 B 8 C
c语言小题目。
6.表达式y=(13>12?15:6>7?8:9)的值为____________ .
A 9 B 8 C 15 D. 1
7.若x=5,y=3 则y*=x+5; y的值为_______________.
A. 10 B. 20 C. 15 D. 30
8.C语言的输入与输出操作是由____________完成的。
A.输入语句 B.输出语句
C.输入与输出函数 D.输入与输出语句
9.语句 for(k=0;k<5;++k)
{ if(k= = 3) continue;
printf(“%d”,k);
}的输出结果为___________.
A.012 B. 0124 C. 01234 D. 没有输出结果
10.从循环体内某一层跳出,继续执行循环外的语句是:___________.
A. break语句 B.return语句
C.continue语句 D.空语句。
11.Break语句的正确的用法是____________.
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
jack20xp1年前1
许沃濂 共回答了16个问题 | 采纳率87.5%
C D C B A B
1.请选出可用作C语言用户标识符的是(   )
1.请选出可用作C语言用户标识符的是(   )
A.void,define,WORD   B.a3_b3,_123,IF 
C.FOR ,--abc ,Case D.2a ,Do ,Sizeof
2.在C语言程序中,以下说法正确的是(    )
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用都不可以嵌套
D.函数的定义和函数的调用都可以嵌套
3.'75'在内存中占( )个字节,"72" 在内存中占( )个字节.
A .4 B.3 C.2 D.1
4.字符串"\"abc"\"的长度是( ),sizeof(double)的值是( ).
A.11 B.8 C.7 D.4 E.2
5.下面程序段的运行结果是__.a) 空格 b) c) e d) f 
char a[7]="abcdef"; char b[4]="ABC";
strcpy(a,b); printf("%c",a[5]);
6.设有如下程序段,下面描述中正确的是(   )
int k=10; while(k=0)  k=k-1;
A.循环执行一次   B.循环是无限循环 
C.循环体语句一次也不执行  D.循环体语句执行一次
7.对于一个C语言源程序,下列说法正确的是( ).
A.必须有一个主函数和其他函数.
B.可以有多个也可以没有主函数.
C.总是从程序中的第一个函数开始执行 .
D.必须有一个主函数,且从main ()开始执行
8.关系x ≥ y ≥z,正确的C语言表达式为 .x0b A)(x>=>y>=z) B)(x>=y)AND(y>=z)x0b C)(x>=y)&&(y>=z) D)(x>y)&(y>=z)
9.C语言对于嵌套if语句规定else总是与_____匹配.x0b A) 与最外层的if B) 与之前最近的ifx0b C) 与之前最近的不带else的if D) 与最近的{ }之前的if
10.不正确的语句或字符串操作方式是( ).
A) char str[10] =“hello” ; strlen(str);
B) char str[7]={‘s’,’d’,’f ’,’ ’};
C) char str[10]; str=“hello”;
D) char str1[ ]=“asd”,str2[10]; strcpy(str2,str1);
二、填空 ( 每题3分 )
1.C语言是在__语言的基础发展起来的,它适合于____和______.
2.C语言中,函数由 ____ 和 ___两部分组成.
3.C程序的错误可分为 ____ ,___ ,____三种.
4.Turbo C集成开发环境的界面由 ____ ,____ ,_____及 __ 组成.
5.结构化程序中的三种基本结构是 ___ ,____ 和 ____ .
6.现有int a,b; 若用scanf (“a=%d ,b=%d”,&a,&b); 使a=12,b=24; 则输入数据流应为 ____.
7.若有定义:double x[3][5];则x数组中行下标的下限为____,列下标的上限为_____. 
8.a的初值为12,执行 a+=a-=a*a ; 后 a的值是____.
9.程序段int k=10;while (k=10) k=k-1;循环次数为
.
10.判断年份(year)是否是闰年的条件为____.
三、编程题 ( 任选3题解答 )
1.输入3个学生的成绩并按由小到大的顺序输出.
2.输入一个整数并判断其是否为素数 .
3.给一个不多于4位的正整数,求出它是几位数,逆序打印出各位 数字.
4.从键盘上输入若干个学生的成绩,统计并输出最高和最低成绩、平均分及各分数段的人数,当输入负数时结束输入.
.
橘子跳舞1年前1
zyhdragon 共回答了13个问题 | 采纳率92.3%
作业自己做
以下不能正确计算代数式4sin^2(1/5)值的C语言表达式是:
以下不能正确计算代数式4sin^2(1/5)值的C语言表达式是:
A、4*sin(1/5)*sin(1/5) B、sin(0.2)*sin(0.2)*4
C、pow(sin(0.2),2)*4 D、4*pow(sin(1.0/5),2)
点点嗒嗒1年前1
zx0001 共回答了24个问题 | 采纳率75%
1和5都是整型数据,所以1/5的结果也是整型数据,即取0.2的整数部分0作为1/5的结果,所以A选项相当于4*sin(0)*sin(0)
C语言的 4个数排列switch case句式的
1357abc1年前1
lihlcnkr 共回答了17个问题 | 采纳率88.2%
你知不知道为什么没人回答?排序哪有用switch的?我拿switch凑合着写了,从小到大排的(从大到小在注释里),
#include
change2num(int *x,int *y);
chang2judge(int *a,int *b,int *c,int *d);
int main()
{
int a,b,c,d;
printf("请输入4个正整数:n");
scanf("%d%d%d%d",&a,&b,&c,&d);
chang2judge(&b,&a,&d,&c);//从大到小:chang2judge(&a,&b,&c,&d);
chang2judge(&c,&a,&d,&b);//从大到小:chang2judge(&a,&c,&b,&d);
switch(b>c)//从大到小:switch(c>b)
{case 1:change2num(&b,&c);}
printf("%dt%dt%dt%dn",a,b,c,d);
return 0;
}
change2num(int *x,int *y)
{int t;t=*x;*x=*y;*y=t;}
chang2judge(int *a,int *b,int *c,int *d)
{
switch(((*b>*a)
求C语言高手。。帮忙解下题。。我都哭了。。
求C语言高手。。帮忙解下题。。我都哭了。。
1.从键盘输入12个整数,用起泡法对这12个整数进行由小到大的排序。
2.有一分数序列如下,求出这个数列的前40项之和。
2/1,3/2,5/3,8/5,13/8,21/13,……
3.从键盘输入10个整数保存在一个一维数组中,利用指针编写程序,将该数组中的10个整数按相反顺序存放。
4.有一个4×5的矩阵如下,求所有元素中的最大值、最小值及其相应的下标。
1 3 5 7 9
2 4 6 8 10
-5 -4 -3 -2 -1
15 17 19 21 0

5.用弦截法求方程f(x)=3x3+2x2-5x-6的根
6.用π/4≈1-1/3+1/5-1/7+∙∙∙公式求π的近似值,直到某一项的绝对值小于10-7为止。
7.利用指针编写程序,将数组a中n个整数按相反顺序存放。
8.通过循环按行顺序为一个5X5的二维数组a赋1~25的自然数,然后输出该数组的左下三角
shalunar1年前1
鲨鱼1000 共回答了17个问题 | 采纳率88.2%
题目太多。你应分开来一个一个问。
给你回答4 个。问题7可以参照问题3 自己做。
#include
#include
void main(){
int a[12],t;
int i,j,n;
double f1,f2,f;
double term,sum;
int *p;
int b[4][5]={1,3,5,7,9,2,4,6,8,10,-5,-4,-3,-2,-1,15,17,19,21,0};
int big,small,bi,bj,si,sj;
printf("input 12 int datan");
for (i=0;i
C语言中以追加方式打开一个文件应选择_()A、“r” B、“w” C、“rb” D、“a”麻烦解释为什么.
songfuyang8131年前1
公共绿地 共回答了17个问题 | 采纳率88.2%
D
‘r’表示以只读方式打开
'w'表示以写方式打开
'rb'表示以二进制方式读打开
'a'表示追加方式
C语言的一道触及题目.以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/yz的C语言表达式是
C语言的一道触及题目.
以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/yz的C语言表达式是( ).
x05A) x/y*z    B) x*(1/(y*z))    C) x/y*1*z    D) (x/y)*z
刚开始学C语言,我觉得答案是A C D.
senyee661年前1
jmnyj 共回答了22个问题 | 采纳率90.9%
A C D是正确答案.x/yz表达式计算顺序为X除以Y再乘Z
C语言的几道小题如图,2,3,5题,
C语言的几道小题




如图,2,3,5题,
721灵魂1年前1
lyhshuaigel 共回答了16个问题 | 采纳率87.5%
2argc是传入参数的个数 argv是一个char **值 argv[i] 存的是第i个参数需要注意的是 argv第一个参数argv[0]存的是运行的程序名 所以在这个题中argc 为4 argv[3]为ABC选D3 (c = 2*a, b++, a+b)顺序执行,结果为最后一个...
初级C语言,赋值表达式问题?下列选项符合C语言语法的是?A.a=b+c=3 B.a=
初级C语言,赋值表达式问题?下列选项符合C语言语法的是?A.a=b+c=3 B.a=
初级C语言,赋值表达式问题?
下列选项符合C语言语法的是?
A.a=b+c=3 B.a=(b=5,c=b+6)
C.a=b=5,c=b+2 D.a=4+b++=c+2
选哪个,依据是什么?
delpiero8301年前1
babyface_200 共回答了10个问题 | 采纳率100%
a和d肯定错,因为赋值语句左式不能是常量,就是不能赋值给常量.而我怎么看不出b和c哪个错阿,但是我会选B.
用C语言将下面的小写字母翻译到大写字母 chen xing
sffitness1年前1
眼镜兄_SH 共回答了23个问题 | 采纳率87%
#include
#include
int main()
{
x05char str[100];
x05
x05gets( str );
x05strupr( str );x05x05//将小写转换为大写
x05puts( str );
x05
x05return 0;
}
一道C语言的题:编写一个函数,用下列公式计算π(派)的值,知道最后一项的绝对值小于10的-6次方
一道C语言的题:编写一个函数,用下列公式计算π(派)的值,知道最后一项的绝对值小于10的-6次方
公式是:π/4=1-1/3+1/5-1/7......
仓一1年前1
营长放假了 共回答了12个问题 | 采纳率91.7%
#include
double chenfang(int i)//计算符号是1还是-1
{
int x=i%2;
if(x==0)
return 1;
return -1;
}
double computePai()//计算pai值
{
double pai=0;
for(int i=0;;i++)
{
double x= (double)1/(2*i+1);//每项的值
if( x
求C语言大神帮忙问题:如果一个整数逆序后得到的数值和原数值相同,则称之为幸运数。输入一个整数N(N<10000)判断是否
求C语言大神帮忙

问题:如果一个整数逆序后得到的数值和原数值相同,则称之为幸运数。输入一个整数N(N<10000)判断是否为幸运数,是的话输出”yes”,否则输出”no”。

红线覆盖的那一行出现两个问题,求帮助


voiskajj1年前1
因为爱佘 共回答了24个问题 | 采纳率83.3%
if(a==d && c==b)
C语言题 不能实现a和b的值交换的语句是
C语言题 不能实现a和b的值交换的语句是
设int a,b,t; 不能实现a和b的值交换的语句是
A .a=t;t=b;b=a; B.t=a;a=b;b=t;
C.t=b;b=a;a=t; D.a=a+b,b=a-b,a=a-b;
pink2441年前1
回家吉他 共回答了20个问题 | 采纳率95%
Aaaaaaaaaaaaaaaaaaaaaa
C语言中任何算式的值只有0和1
j9fn1年前1
624306433 共回答了20个问题 | 采纳率95%
是的
为了避免嵌套的条件语句if-else的二义性,C语言规定,与else配对是 A同一行上的if B缩排位置相同的if C其
为了避免嵌套的条件语句if-else的二义性,C语言规定,与else配对是 A同一行上的if B缩排位置相同的if C其
C其之前最近的if D其之前最后的if
轻如游丝1年前1
kittycom 共回答了19个问题 | 采纳率89.5%
c
c语言题。为什么选b?例:p[3]={6,1,8,5};求第4个元素也就是5时,p+(4-1)*2等价于p+6,为什么不
c语言题。
为什么选b?例:p[3]={6,1,8,5};求第4个元素也就是5时,p+(4-1)*2等价于p+6,为什么不选c?
4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为(b )
A.P+i*2
B. P+(i-1)*2
C. P+(i-1)
D. P+i
chenwwei1年前1
秀了没饭 共回答了16个问题 | 采纳率100%
题目中指明P是个地址,作为地址,其加减的单位是1个字节,又因为数组A的元素是短整型short,每个元素占两个字节,所以第i个元素的地址就是P往后偏移i-1个short型的长度,即偏移(i-1)*2,所以第i个元素的地址就是P+(i-1)*2
几道C语言选择题,1.以下不属于合法C语言整形数的是___A 79L B 0xab C 7e52.设下列B,D选项都已赋
几道C语言选择题,
1.以下不属于合法C语言整形数的是___
A 79L B 0xab C 7e5
2.设下列B,D选项都已赋值或定义,则下列正确的赋值语句是___
B i++=k-9=j D k=>f>=m
3.若x为int型变量,执行以下句子后x的值为___
A -180 B 180 C 0 D -80
不懂错误的选项为什么错了
第3题我题目漏打了,语句是x=10;x+=x-=x*x;
toutou111年前1
hyw331148 共回答了21个问题 | 采纳率100%
1、C C是为表示科学计数法的,是表示浮点数的
2、D B中k-9是表达式,不能为左值,左值的意思就是,k-9=j这个你没法赋值的,左边是一个表达式,不是一个变量.
3、A x+=x-=x*x; 表示先看x*x=100,再x-=100,表示x=x-100=-90;x+=-90,表示x=x+(-90),也就等于-180了.
在c语言中: 表达式a+=a-=a=9的值是 。( ) A)9   B)
在c语言中: 表达式a+=a-=a=9的值是 。( ) A)9   B)
在c语言中:
表达式a+=a-=a=9的值是 。( )
A)9   B)-9   C)18   D)0
求详解!!
ylkamani1年前3
zzf_hd 共回答了23个问题 | 采纳率91.3%
+=、-=、=优先级相同,结合为从右到左,即:
1,a+=a-=a=9,先执行a=9的赋值运算;a = 9;
2,a+=a-=a;继续执行-=,即运行 a-=a ; a = 0;
3, 最后执行,a+=a ,因上一步a = 0 ,故最终 a = 0;
更详细的内容我贴到了论坛,请查看:http://www.***.com/forum.php?mod=viewthread&tid=10&extra=
c语言 字母地址若有以下定义和语句char c1='b',c2='e'printf("%d,%c\n",c2-c1,c2
c语言 字母地址
若有以下定义和语句char c1='b',c2='e'printf("%d,%cn",c2-c1,c2-'a'+A); 则输出结果 ( )
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
花胖回头是岸1年前1
53877 共回答了11个问题 | 采纳率100%
字符的计算是用它对应的ASCII码进行计算.
c2='e'; ASCII码是101
c1='b';ASCII码是98
所以c2-c1=3
又是%d输出,所以第一个输出的就是3
c2-‘a’+A,这里的A没有单引号,编译器会把它认为是一个变量,而之前没有定义A,所以会报错说A没定义.
如果有单引号,即c2-'a'+'A',那还是用它们各自的ASCII码进行计算.
e 对应101
a 对应97
A 对应65
所以最终结果是69
而输出格式是%c,所以要找69对应的字符,是E,所以最终输出大写字母E
C语言问题 有两个两位数a,b。组成了新的四位数c,其中c的个位是a十位上的数,c的十位是b的个位数。c的百位是a的个位
C语言问题 有两个两位数a,b。组成了新的四位数c,其中c的个位是a十位上的数,c的十位是b的个位数。c的百位是a的个位数,c的千位是b的十位数
若a=12,b=34.则c=3241
hustmei1年前3
sunami 共回答了22个问题 | 采纳率81.8%
#include
void main()
{
int a,b,c;
printf("请输入两个两位数");
scanf("%d%d",&a,&b);
c=b/10*1000+a%10*100+b%10*10+a/10;
printf("新的四位数是%dn",c);
}
C语言设有一个三位数,将它的百、十、各位上的3个数,各自求立方,然后加起来正好等于这个三位数
C语言设有一个三位数,将它的百、十、各位上的3个数,各自求立方,然后加起来正好等于这个三位数
写一个函数,找出所有满足条件的数
饮著那酒的1年前1
下雨带伞 共回答了9个问题 | 采纳率88.9%
这个问题叫水仙花数吧
代码是:
#include
#include
int main()
{
int x,y,z,i;
for(i=100;i
c语言如何具有输入输出界面例如题:单词统计要求:(1)输入任意一段英文。 (2)根据(1)中各单词出现概率的高低输出前五
c语言如何具有输入输出界面
例如题:单词统计
要求:(1)输入任意一段英文。
(2)根据(1)中各单词出现概率的高低输出前五个单词。
(3)具有输入输出界面
其中的第三个要求,求教!
月婉1年前1
zzmly 共回答了20个问题 | 采纳率80%
我觉得这里所谓的输入输出界面,并不是指像windows对话框这样的界面,而是你有一定的提示
让使用者明白,这个软件是干什么的,怎么用。
控制台是一个黑乎乎的界面,
假若第一个输入的一段英文,你任何提示也没有,直接在程序中使用scanf或gets等获得用户的输入,
当然,你知道应该输入一段英文,但若没有见过代码的用户怎么知道?他只看到光标在闪烁而已,所以你要有相应的提示
提示用户该程序干什么的,应该输入什么?输出的结果是什么?以及程序退出提示等。
我认为:这就是所说的“具有输入输出界面”、
c语言给出一百分制成绩,90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E .
c语言给出一百分制成绩,90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E .
#include
int main()
{
int x;
while(scanf("%d",&x)!=EOF)
{ if(x>90)
x09printf("An");
x09if(x>=80&&x=70&&x=60&&x
噢吖吖1年前1
望着之间 共回答了23个问题 | 采纳率91.3%
#include
int main()
{
int x;
while(scanf("%d",&x)!=EOF)
{
if(x>100||x<0)
printf("Wrong Input!");
else if(x>=90)
printf("An");
else if(x>=80)
printf("Bn");
else if(x>=70)
printf("Cn");
else if(x>=60)
printf("Dn");
else //if(x<60)
printf("En");
}
return 0;
}百分,应该有范围判断,另外90不对.
一道关于C语言的题,求详解有函数fun的定义形式如下.int fun(float f){...}则以下对函数fun的调用
一道关于C语言的题,求详解
有函数fun的定义形式如下.
int fun(float f){...}
则以下对函数fun的调用语句中,不正确的是()
A.fun(fun(0)); B.strlen(fun(0)); C.abs(fun(0)); D.printf("%d",&(fun()));
li_401年前1
huyuan1234 共回答了20个问题 | 采纳率90%
整数和浮点还能强制转换,可是strlen是对字符串操做的,好象行不通
用C语言编,有两个正整数a和b,已知a*b=2048,求a,b各为何值时,a+b的值最小
用C语言编,有两个正整数a和b,已知a*b=2048,求a,b各为何值时,a+b的值最小
如题
firemanst1年前1
robert_wjz 共回答了16个问题 | 采纳率93.8%
#include
#include
main()
{
int a=0,b=0,min=2048,num_a,num_b;
for (a = 1; a a+b)
{
min = a + b;
num_a=a;
num_b=b;
}
}
}
printf("%d %dn",num_a,num_b);
}
答案是32和64.
C语言编写程序计算下列函数(精度为0.0001%) (1)sinx=x-x^3/3!+x^5/5!-x^7/7!+...
C语言编写程序计算下列函数(精度为0.0001%) (1)sinx=x-x^3/3!+x^5/5!-x^7/7!+...具体如图
wlgt1年前1
jayleewansheng 共回答了18个问题 | 采纳率88.9%
1 #include 2 #include
3 #define pi 3.14159265358
4 int main()
5 {
6 double x,n=1;
7 double s = 0,fn;
8 printf("请输入度数:n");
9 scanf("%lf",&x);
10 x = x / 180 * pi;
11 while(x > pi)
12 {
13 x -= pi;
14
15 }
16 fn = x;
17 while(fabs(fn) > 0.0001)
18 {
19 s += fn;
20 fn = -fn * x*x/(2*n*(2*n+1));
21 n++;
22 }
23 printf("sin(x) = %gn",s);
24 }
求支援 关于C语言的题目:下列字符串为合法的字符常量的是:A、n B、‘\n’ C、110 D、“n”
累吗1年前1
santamony 共回答了29个问题 | 采纳率93.1%
字符常量 'n'
用c语言求从A、B、C、D、E中一次取3个字母进行排列的方法的总数和情况(可以把字母用数字代替).
雪冰梅1年前1
cydlq 共回答了18个问题 | 采纳率88.9%
思想简单的解法:
直接明显.用3个变量存取出的3个字母.全排列的规模为3!=6.直接列举所有情况吧.

思想有深度的解法:
dfs(深度优先搜索).这个是个经典的全排列算法,网上有很多的介绍.这里我就不献丑了.而且我自己现在的这个算法也不是写的很好,暂时没有特别的感悟.
C语言,在循环结构中可以使同一组语句一次也不执行的是谢谢了,
C语言,在循环结构中可以使同一组语句一次也不执行的是谢谢了,
A ,当型循环,B 直到循环,C 都不能实现D do _While
周夏琳1年前1
推荐短信 共回答了23个问题 | 采纳率100%
while语句和for语句 可以使循环体内的语句一次也不执行
英语翻译信息技术应用基础 高等数学方法 文献信息检索与论文写作 科研导论课(环境类) 专业导论(环境) C语言上机实践
英语翻译
信息技术应用基础 高等数学方法 文献信息检索与论文写作 科研导论课(环境类) 专业导论(环境) C语言上机实践 大学物理B1 英语名篇欣赏 英语电影视听说 大学物理实验1
谢谢orz.
13_WW131年前1
Shaw8 共回答了9个问题 | 采纳率100%
1.Based on the application of information technology
2.The method of Higher Mathematics
3.Literature information retrieval and paper writing
4.Research of introductory course (environment)
5.Professional introduction (environment)
6.C language practice
7.University Physics B1
8.Literature appreciation
9.English Audiovisual said
10.University Physics Experiment 1
希望能帮到你~~~~~
C语言中,x=(y=4,z=16,k=32),x的值为什么等于52?
wyytiger1年前1
johnson_011 共回答了34个问题 | 采纳率85.3%
x=32.如果是在C语言的编译平台中,编译执行的结果应该是等于32,因为x=(y=4,z=16,k=32),是一个连续赋值的表达式,y、z、k的值,分别为:4、16、32,而给x赋值的表达式是逗号表达式,应取最右边的值,所以为32.
C语言 判断正整数的位数给一个数n(0
zhsia1年前1
19820831 共回答了22个问题 | 采纳率95.5%
//---------------------------------------------------------------------------#include int che(int n){ int r=0; while (n) { printf("%d",n%10); r++; n/=10; } putchar(32); return r;}int main(vo...
用c语言定义一个函数,计算平均数,方差,标准差.(请用指针完成)
言者9820131年前1
沙漠神仙鱼 共回答了18个问题 | 采纳率100%
//计算平均数,方差,标准差.
#include
#include
#include
#include
#include
#define N 100
void TongJi(double a[],int n,double *aver,double *vari,double *stdDev){
//对长度为n的数组a进行统计,统计其平均值aver、方差vari、标准差stdDev
int i;
double *p,aver2;
*aver=0.0;
for(p=a+(n-1);p>=a;--p){
*aver+=*p;//累加各元素
aver2+=(*p)*(*p);//累加各元素的平方
}
*aver/=n;//求平均值
aver2/=n;//求平方的平均值
*vari=aver2-(*aver)*(*aver);//计算方差
*stdDev=sqrt(*vari);//计算标准差
}
int main(){
double a[N],pj,fc,bzc;
int i;
srand(time(NULL));
for(i=0;ia[i]=rand()/(RAND_MAX+1.0); //产生随机小数[0,1)
printf("%lg ",a[i]);
}
TongJi(a,N,&pj,&fc,&bzc);
printf("nPingJun=%lg, FangCha=%lg, BiaoZhunCha=%lg",pj,fc,bzc);
printf("nFinished!n");
getch();
return 0;
}顺便做了一个测试:产生100个随机小数,得到其平均值大概在0.5左右,方差在0.08左右,标准差在0.28左右.说明系统自带的随机数发生器还是比较均匀的.
C语言数据结构问题。请帮忙假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素
C语言数据结构问题。请帮忙
假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( A )。
A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m
我觉得是B啊。为什么是A呢?为什么要+m,还要%m?应该要+1的去哪了?
用实际例子我可以理解。验证出来是A是对的。但是,为什么?
王者归来兮1年前1
禾旦 共回答了17个问题 | 采纳率94.1%
找一个实例看看,慢慢理解,起初我也不太懂。
数学表达式x3+y3在C语言中应表示为
雪白10171年前1
sennier 共回答了24个问题 | 采纳率91.7%
x^3+y^3
求c语言数据结构大神1.问题描述给定一个计算机网络以及机器间的双向连线列表,每一条连线允许两端的计算机进行直接的文件传输
求c语言数据结构大神
1.问题描述给定一个计算机网络以及机器间的双向连线列表,每一条连线允许两端的计算机进行直接的文件传输,其他计算机间若存在一条连通路径,也可以进行间接的文件传输。请写出程序判断:任意指定两台计算机,它们之间是否可以进行文件传输?2.基本要求(1)输入要求:输入若干测试数据组成。对于每一组测试,第1行包含一个整数N(≤10000),即网络中计算机的总台数,因而每台计算机可用1到N之间的一个正整数表示。接下来的几行输入格式为I C1 C2或者 C或者C C1C2或者S,其中C1和C2是两台计算机的序号,I表示在C1和C2间输入一条连线,C表示检查C1和C2间是否可以传输文件,S表示该组测试结束。当N为0时,表示全部测试结束,不要对该数据做任何处理。(2)输出要求:对每一组C开头的测试,检查C1和C2间是否可以传输文件,若可以,则在一行中输出“yes”,否则输出“no”。当读到S时,检查整个网络。若网络中任意两机器间都可以传输文件,则在一行中输出“The network is connected.”,否则输出“There are k components.”,其中k是网络中连通集的个数。两组测试数据之间请输出一空行分隔。


用tuibo c编程,拜托给一简单点的代码,能解释下原理,急
rr07071年前1
冰汐 共回答了29个问题 | 采纳率86.2%
建议看看并差集,可以轻松搞定这个问题,学会了,自己写一下代码还是极好的,希望对你有所帮助。
学C语言要多少数学知识我是高中生,我会简单的几个算法,初等函数,三角函数,导数,技术原理,圆锥曲线,统计,复数
21世纪打非办1年前1
楼上是zz 共回答了25个问题 | 采纳率100%
简单的学C语言用不了多少数学知识,但是当你用他解决问题时,涉及的算法才真正对你的数学才能提出了要求.特别是关于ACM中的试题,没有很强的数学思维,很多题是无法解决的.
c语言 学生成绩管理系统设计学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等。主要功能:(1) 计算各
c语言 学生成绩管理系统设计
学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等。
主要功能:
(1) 计算各个学生的总分及平均分,并按平均分排出名次。
(2) 统计全班学生平均分成绩,输出60分以下、60~79、80~89、90分以上各分数人数。
(3) 能按学号查询学生成绩,并能输出学生的成绩单。
(4) 输出不及格科目及学生名单。
(5) 选做:在屏幕输出优等生名单(学号,三门课程成绩,平均成绩,名次),优等生必须满足下列条件:
1)平均成绩大于90分;或平均分大于85分且至少有一门功课为100分;或者平均分大于85分且至少两门课程成绩为95分以上;
2) 名次在前三名;
3) 每门功课及格以上;
要求:系统以菜单方式工作。
四月的雨_20051年前1
zhelishui 共回答了9个问题 | 采纳率88.9%
希望对你有所帮助。
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 3
typedef struct z1
{
char no[11];
char name[15];
int score[N];
float sum;
float average;
int order;
struct z1 *next;
}STUDENT;
STUDENT *init();
STUDENT *create();
STUDENT *del(STUDENT *h);
void print(STUDENT *h);
void search1(STUDENT *h);
void search2(STUDENT *h);
STUDENT *insert(STUDENT *h);
void sort(STUDENT *h);
void save(STUDENT *h);
void tongji(STUDENT *h);
int menu_select();
STUDENT *load();
void inputs(char *prompt,char *s,int count);
STUDENT *load();
main()
{
int i;
STUDENT *head;
head=init();
for(;;)
{
switch(menu_select())
{
case 0:head=init();break;
case 1:head=create();break;
case 2:head=insert(head);break;
case 3:save(head);break;
case 4:print(head);break;
case 5:search1(head);break;
case 6:head=del(head);break;
case 7:sort(head);break;
case 8:tongji(head);break;
case 9:search2(head);break;
case 10:exit(0);
}
}
}
int menu_select()
{
char *menu[]={"************菜单************",
"0. 初始化链表",
"1. 输入学生成绩",
"2. 插入学生成绩",
"3. 保存学生记录",
"4. 显示学生记录",
"5. 按学号查找学生信息",
"6. 删除指定学号的学生信息",
"7. 按某一门课对学生成绩排序",
"8. 统计某门课程的学生成绩",
"9. 按姓名查找学生信息",
"10. 退出系统"};
char s[3];
int c,i;
for(i=0;ino,11);
if(info->no[0]=='@')break;
inputs("输入姓名:",info->name,15);
printf("开始输入%d门课的成绩n",N);
s=0;
for(i=0;iscore[i]);
if(info->score[i]>100||info->score[i]score[i]>100||info->score[i]score[i];
}
info->sum=s;
info->average=(float)s/N;
info->order=0;
info->next=h;
h=info;
}
return h;
}
void inputs(char *prompt,char *s,int count)
{
char p[255];
do
{
printf(prompt);
scanf("%s",p);
if(strlen(p)>count)
printf("n太长了!n");
}while(strlen(p)>count);
strcpy(s,p);
}
void print(STUDENT *h)
{
int i=0;
STUDENT *p;
p=h;
printf("nnn***********************学生***********************n");
printf("|序号|学号 | 姓名 | 数学 | 英语 |计算机 | 总分 |平均分 |名次 |n");
printf("|---|-------|--------|----|----|----|------|------|---|n");
while(p!=NULL)
{
i++;
printf("|%3d |%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|n",i,p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
p=p->next;
}
printf("***********************end***********************n");
}
STUDENT *del(STUDENT *h)
{
STUDENT *p,*q;
char s[11];
printf("请输入要删除的学生的学号n");
scanf("%s",s);
q=p=h;
while(strcmp(p->no,s)&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==NULL)
printf("n链表中没有学号为%s的学生n",s);
else
{
printf("nnn***********************找到了***********************n");
printf("|学号 | 姓名 | 数学 | 英语 | 计算机 | 总分 | 平均分 | 名次 |n");
printf("|----------|----------|----|----|----|------|------|---|n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("***********************end***********************n");
printf("请按任意键删除n");
getchar();
if(p==h)
h=p->next;
else q->next=p->next;
free(p);
printf("n已经删除学号为%s的学生n",s);
printf("不要忘了保存数据n");
}
return h;
}
void search1(STUDENT *h)
{
STUDENT *p;
char s[11];
printf("请输入你要查找的同学的学号n");
scanf("%s",s);
p=h;
while(strcmp(p->no,s)&&p!=NULL)
p=p->next;
if(p==NULL)
printf("'n没有学号为%s的学生n",s);
else
{
printf("nnn***********************找到了***********************n");
printf("|学号 | 姓名 | 数学 | 英语 | 计算机 | 总分 | 平均分 | 名次 |n");
printf("|----------|-----------|----|----|----|------|------|---|n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("***********************end***********************n");
}
}
void search2(STUDENT *h)
{
STUDENT *p;
char s[11];
printf("请输入你要查找的同学的姓名n");
scanf("%s",s);
p=h;
while(strcmp(p->name,s)&&p!=NULL)
p=p->next;
if(p==NULL)
printf("n没有姓名为%s的学生n",s);
else
{
printf("nnn***********************找到了***********************n");
printf("|学号 | 姓名 | 数学 | 英语 | 计算机 | 总分 | 平均分 | 名次 |n");
printf("|----------|-----------|----|----|----|------|------|---|n");
printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|n",p->no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("***********************end***********************n");
}
}
STUDENT *insert(STUDENT *h)
{
STUDENT *p,*q,*info;
char s[11];
int s1,i;
printf("请输入插入点的学生学号n");
scanf("%s",s);
printf("n请输入新的学生信息n");
info=(STUDENT *)malloc(sizeof(STUDENT));
if(!info)
{
printf("n内存不足!");
return NULL;
}
inputs("输入学号:",info->no,11);
inputs("输入姓名:",info->name,15);
printf("请输入%d门课的分数n",N);
s1=0;
for(i=0;iscore[i]);
if(info->score[i]>100||info->score[i]score[i]>100||info->score[i]score[i];
}
info->sum=s1;
info->average=(float)s1/N;
info->order=0;
info->next=NULL;
p=h;
q=h;
while(strcmp(p->no,s)&&p!=NULL)
{q=p;p=p->next;}
if(p==NULL)
if(p==h)
h=info;
else q->next=info;
else
if(p==h)
{
info->next=p;
h=info;
}
else
{
info->next=p;
q->next=info;
}
printf("n已经插入了%s这个学生n",info->name);
printf("----不要忘了存盘啊--n");
return(h);
}
void save(STUDENT *h)
{
FILE *fp;
STUDENT *p;
char outfile[10];
printf("请输入保存文件的文件名,例如 c:\f1\te.txt:n");
scanf("%s",outfile);
if((fp=fopen(outfile,"wb"))==NULL)
{
printf("不能打开文件n");
exit(1);
}
printf("n正在保存......n");
p=h;
while(p!=NULL)
{
fwrite(p,sizeof(STUDENT),1,fp);
p=p->next;
}
fclose(fp);
printf("------保存成功!!!------n");
}
void sort(STUDENT *h)
{
int i=0,j;
STUDENT *p,*q,*t,*h1;
printf("请输入要按哪门课程的编号来排序:(1.数学 2.英语 3.计算机)n");
scanf("%d",&j);
h1=h->next;
h->next=NULL;
while(h1!=NULL)
{
t=h1;
h1=h1->next;
p=h;
q=h;
while(t->score[j]score[j]&&p!=NULL)
{
q=p;
p=p->next;
}
if(p==q)
{
t->next=p;
h=t;
}
else
{
t->next=p;
q->next=t;
}
}
p=h;
while(p!=NULL)
{
i++;
p->order=i;
p=p->next;
}
print(h);
printf("排序成功!!!n");
}
void tongji(STUDENT *h)
{
STUDENT *p;
int a,b,i;
printf("请输入课程编号n");
scanf("%d",&i);
printf("请输入分数段:n");
scanf("%d,%d",&a,&b);
p=h;
while(p!=NULL)
{
printf("nnn***********************找到了***********************n");
if(p->score[i]>=a&&p->score[i]no,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
}
p=p->next;
}
printf("***********************end***********************n");
}
C语言填空题,麻烦高手下1.若有int a[3]={10,12,30};则a+1是( )的地址,*(a+2)=( )。2
C语言填空题,麻烦高手下
1.若有int a[3]={10,12,30};则a+1是( )的地址,*(a+2)=( )。
2.当执行完以下语句后,变量a,b,c的值分别为( , , )。
a=6; b=++a; c=--a;
3.下面程序段的输出结果是( )。
int a=125; printf(“%dn”,a>>4);
9.C语言表达式 5>2>7>8 的值是(  )。
4.当执行完以下语句后,变量a的值为( ),d的值为( ),e的值为( )。
a=6; b=++a; c=--a; d=a++; e=a--;
5.下面程序段的输出结果是( )。
char a=111; a=a^00; printf(“%d %on”,a,a);
6.若有char a[3]=“as”;则*a=( ),*(a+2)=( )。
lijianxin20061年前1
summermeteor 共回答了19个问题 | 采纳率89.5%
1.a[1]的地址 30
2.6,7,6
3.7
4.0
5.6,6,7
6111,157
7.a,0
1.在C语言中,正确的int类型的常量是 [ ].
1.在C语言中,正确的int类型的常量是 [ ].
A) 028 B) 0xabc C) 0xkb D) oxff
2.的C语言表达式为
南海0081年前1
yy6789 共回答了16个问题 | 采纳率87.5%
第一个B
第二题没出来
C语言问题 不理解 为什么 编译全都错
C语言问题 不理解 为什么 编译全都错
3、下列关于对二维数组a进行初始化的操作中,正确的写法是( )。
A、int a[][3]={3,2,1,1,2,3};
B、int a[][]={{3,2,1},{1,2,3}};
C、int a[][3]={{3,2,1},{1,2,3}};
D、int a[2][3]={{3,2,1},{1,2,3}};
liaeast91年前1
漂白的云 共回答了21个问题 | 采纳率90.5%
你的“=”是中文的,改成英文“=”
int a[][3]={3,2,1,1,2,3};
int b[][]={{3,2,1},{1,2,3}};
int c[][3]={{3,2,1},{1,2,3}};
int d[2][3]={{3,2,1},{1,2,3}};
答案是:ACD
C语言,求一元二次方程ax2+bx+c=0的根.
灵魂与肉体1年前1
蝴蝶_兰兰 共回答了17个问题 | 采纳率76.5%
#include"stdio.h"
#include"math.h"
void yici(int a,int b)
{
double x=-b/a;
printf("x=%lfn",x);
}
void erci(int a,int b,int c)
{
int data;
double x1,x2;
data=b*b-4*a*c;
if(data
c语言题 下面的数据书写形式中 可以作为c语言合法常量的是 A 0XA5
c语言题 下面的数据书写形式中 可以作为c语言合法常量的是 A 0XA5
c语言题
下面的数据书写形式中 可以作为c语言合法常量的是
A 0XA5 B 0xG5 C 0xA .5
D 0A5
飘雪的夏天20101年前1
uu问家 共回答了16个问题 | 采纳率87.5%
答案为A: 0XA5
用C语言编写一个程序 其功能是根据三角形的三边长,求三角形的面积.要用main函数
suolo3461年前1
我也是阿土 共回答了24个问题 | 采纳率100%
#include#includemain{int a,b,c;int p,s;scanf("%d%d%d",&a,&b,&c);p=(a+b+c)/2;if (a+b>c && a+c>b& & b+c>a){s=sqrt(p*(p-a)*(p-b)*(p-c));printf("The area of a triangle is%d",s);}elseprint("Three edges do ...
C语言编程题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程   找出1000以内的所
C语言编程
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
   找出1000以内的所有完数。
寒月之舞1年前1
junjun641208 共回答了18个问题 | 采纳率88.9%
/>#include"stdio.h"
main()
{
int j,i,k=0;
for(j=6;j<1001;j++)
{
for(i=1;i<=j/2;i++)if(j%i==0)k+=i;
if(j==k)
{
printf("%4d its factors are ",k);
for(i=1;i<=j/2;i++)
if(j%i==0)printf("%d,",i);printf("b n");
}
k=0;
}
getch()();
}
在C语言中x=(y=2,z=8,k=16)表示什么意思
幸福小小馒头1年前1
nyb168 共回答了21个问题 | 采纳率90.5%
k=16
z=8
y=2
x=2
()里面的表达式用“,”分隔,表示顺序执行,并且返回最左边一个表达式的值