Ⅰ 浙大ZOJ 1001 c语言a+b问题
while(scanf("%d %d",&a, &b) != EOF)这一句可以让你实现多组a b的输入 (EOF是End Of file的缩写) 按你的写法输入一组a+b之后程序就会终止 OJ无法实现多组输入 当然判错啦
Ⅱ C语言问题题
#include<stdio.h>
intmain(void)
{
inti,n;
doublesum,h;
scanf("%lf%d",&h,&n);//这里错了,double型数据输入要改为%lf
sum=h;
i=2;
do
{
sum=sum+h;
h=h/2;
i++;
}while(i<=n);
printf("%.1f%.1f",sum,h);
return0;
}
Ⅲ 浙江大学的物理和C-语言的教材叫什么,分别是由哪个出版社出版的
物理是《大学物理》浙大出版社 c语言是《C语言程序设计》也是浙大出版社……
我是浙大的……
Ⅳ 有谁知道ACM到底考什么啊 ,是C语言吗有什么参考书吗
ACM(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛)是由国际计算机界历史悠久、权威性的组织 ACM (Association for Computing Machinery,国际计算机协会) 主办的,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,通过竞赛让参赛大学生运用计算机来充分展示自己分析问题和解决问题的能力。
主要工具是C语言。很多大学都会有关于ACM的练习题,最出名的是北大和浙大的ACM网站。浙大ACM:http://acm.zju.e.cn/
北大ACM:http://acm.pku.e.cn/JudgeOnline/
我想说明的是比赛一组最多三个人,比赛5个小时,相当考验参赛者的编程思维和团队配合能力,而且ACM大赛的试题全部用英文描述,非常锻炼英语能力。建议对编程感兴趣的同学参加。
Ⅳ 浙大版《C语言程序设计实验与习题指导(第3版)》答案 求哥哥帮忙
一本书的答案吗,这里写不完的。
Ⅵ C语言题急求!~!~!~!~!~!~!~!~!~!
1.
最初的C语言是为描述和实现
UNIX
操作系统而设计的。
2.
C语言规定,标识符必须以字母或
下划线
开头。
3.
C语言的double型数据在内存中占用
8
个字节的存储单元。
4.
×C语言的变量有
2
种存储类型,其中
static
型变量不进行初始化时,初值自动为0
5.写出下列表达式的求值结果:
(1)
2+3<=2
0
(2)
5/3+2
3
(3)
!
(3>2)||8!=7
1
(4)
3+7%3
4
6.已知int=12;
执行语句a*=2+4后,变量a的值为
24
。
7.已知int=2,b;
执行语句b=
a--;
后,变量a的值为
1
,
b的值为
2
。
8.若有int
a=2,b=1,c=0;
执行语句c=a++
-
b
-
-;
后,变量c的值为
1
,b的值为
0
一、
判断题(1×5分,正确的画√,错误的画×)
(×)1.
C语言俗称“低级语言的高级形式”,这说明C语言的功能不强。
(√)2.
C语言允许用实型表达式向整型变量赋值。
×(×)3.
C语言的全局变量只能是extern存储类型。
×(×)4.
已知int
a[4],*p;则语句p=&a;是正确的。
(×)5.
下面的程序段构成死循环。
a=5;
while
(1)
{a--;
if
(a<0)
break
;
}
三、单项选择题:(2×10分)
1.
在IBM-PC机中,unsigned
int类型表示的数据范围是(
D
)。
A)0-127
B)0-255
C)0-32767
D)0-65535
2.
下列符号中,合法的C常量是(
C
)。
A)
1e8.2
B)
0XFFH
C)
‘\n’
D)
089
3.语句x=3;
do{printf(“%d”,x);x--}while(x=
=0);
的执行结果是(
C
)。
A)3210
B)
321
C)3
D)无任何显示
4.
已知p、q
是两个同类型的指针变量,下列表达式有语法错误的是(
B
)。
(A)p!=NULL&&p=
=q
(B)
p*q
(C)p++,q--
(D)p-q+1
5.若k=
-1,
表达式k=
k>=0
?
(k-2)
:
(
k+2)
的值为(
D
)。
(A)-3
(B)
-2
(C)1
(D)2
×6.下面关于C函数的说法中正确的是(
B
)。
A)C函数的返回值类型必须是整型、实型或指针三者之一
B)C函数的返回值必须用return语句带回主函数
C)C函数允许递归调用,也允许在函数体中定义子函数
D)任何C函数必须使用return语句带回主程序
×7.若定义typedef
struct
user
{int
num;
char
name[21];
long
code;}
UserTp,;
则表达式
sizeof(UserTp)的值为(
D
)。
A)
0
B)
21
C)
31
D)
27
×8.已知static
int
a[
]={1,2,3,4};
int
*p;
若有p=a+2;
则*p++的值为(
C
)。
A)1
B)2
C)3
D)4
×9.定义C函数时,若缺省函数返回值类型,则返回值类型为(
A
)。
A)int
B)char
C)void
D)char
*
10.
×为只读操作打开正文(文本)文件,正确的打开方式是(
A
)。
A)
“r+”
B)
“a”
C)
“w”
D)
“rb”
四、多项选择题(2×5分,多选或错选不得分,少选得1分)
1.以下数据类型在内存中占用4个字节的是(
BC
)。
A)
int
B)
unsigned
long
C)
float
D)
unsigned
char
×2.
定义char
s[81];
后,能正确输入一个字符串到数组s的语句是(
ABC
)。
A)gets(s);
B)scanf
(”%c”,s);
C)scanf
(”%s”,&s[0]);
D)gets(&s[0]);
3.
以下关于C源程序文件的说法中正确的是(
BCD
)
A)是一种二进制文件
B)是一种文本(ASCII码)文件
C)可以用DOS的type命令显示其内容
D)文件扩展名一般为c
×4.
下面关于C语言的说法错误的是(
ACD
)。
A)
C函数必须有形式参数
B)
任何复合语句体的{
}中允许定义局部变量
C)
局部变量都存储在动态存贮区
D)
C程序的执行起点只能是main函数
5.
以下程序正确计算p=n!
(n>=0)的是(
AB
)。
A)
for(p=1.0,k=1;k<=n;)
p*=k++;
B)
p=1.0;k=0;while(k<n)
p*=++k;
C)
p=1.0;k=1;do{++k;p*=k;}
while(k<=n);
D)
p=1.0;for(k=n;k>=1;k--)
p*=k--;
五、读程序与程序填空(共22分)
1.阅读以下程序,写出程序运行结果:(共3Χ4分)
×
(1)
#include
”stdio.h”
void
main()
{char
a[61],*s;int
n;
gets(a);
for(s=a;*s;s++)
if(*s>=’a’&&*s<=’z’)
*s-32;
puts(a);
}
若程序的输入为abcb,则输出结果为
ABCD
。
(2)
#include
”stdio.h”
void
main()
{
int
s=0,k=0;
while(k<4)
{s+=k;k++;printf(“%d”,s);}
}
该程序的输出是
0136
。
(3)
#include
“stdio.h”
void
main(
)
{static
int
a[5]={2,-15,1,0,-7};
int
i;
for(i=0;i<5;i++)
if(a[i]<0)
a[i]
=
-a[i];
for(i=4;i>=0;i--)
printf(“%4d”,
a[i]);
}
该程序的输出是7
0
1
15
12
(4)
×#include
“stdio.h”
#define
N
5
int
swap(int
*p,
int
*q)
{int
t;
if(p<q)
{t=*p;*p=*q;*q=t;}
return
p<q;
}
void
f(int
a[
],int
m)
{int
*p,
*q;
p=a;q=a+m;
while(swap(p,q))
{p++;
q--}
}
void
main(
)
{int
m,a[N];
for(m=0;m<N;m++)
scanf(“%d”,a+m);
f(a,N-1);
for(m=0;m<N;m++)
printf(“%d”,a[m]);
}
若程序的输入为1
2
3
4
5,
则输出结果为
5
4
3
2
1
2.程序填空:(共10分)
(1)
×以下程序的功能是输入年、月、日,求该日期是这一年的第几天,填空使之完善。
#include
“stdio.h”
int
IsLeap(int
y)
/*
此函数的功能是判断年号y是否为闰年
*/
/*
已知闰年的条件是年号y能被4整除,但不能被100整除,或年号y能被400整除
*/
{int
r;
if(
y%4=
=0&&y%100!=0||y%400=
=0
)
r=1;
else
r=
0
;return
r;}
int
DaysofMonth(int
y,int
m)
/*
此函数的功能是求y年m月的天数
*/
{
int
days;
switch(m)
{case
4,6,9,11:days=30;break;
case
2:if(IsLeap(y))
days=28;else
days=29;break;
default:days=
31
;
}
return
days
;
}
void
main
(
)
{int
k,y,m,d,days;
printf(“Input
year,month,date:”);scanf(“%d%d%d”,&y,&m,&d);
days=0;
for(k=
1
;
k<m
;k++)days+=
DaysofMonth(y,k);
days+=d;
printf(“days=%d\n”,days);}
(2)
下面程序的功能是输出100至1000以内的素数,请填空使之完善。
#include
“stdio.h”
#include
“
math.h
”
void
main
(
)
{
int
m,k,j;
for(m=100;m<=1000;m++)
{k=sqrt(m);
for(j=2;
j<=k
;j++)
if(m%j
=
=
0)
break;
if(
j>k或
j>=k+1
)
printf(“%5d”,m);
}
}
六、根据题意编写程序:(3Χ6+10=28分)
1.
编程序,从键盘输入a0,a1,a2,…,an计算s=ao+a1x+a2x2+…+anxn
×2.编程序,将正文(文本)文件中的小写字母变成大写并统计输出文件有多少个字符,
要求文件名由键盘输入。
×3.编程序,输入n个英文单词(n用#define定义为8),然后将这些单词按英文字典顺
序输出。
×4.编程序,从键盘输入n个学生的姓名、学号和住址,按照学号次序把它们串成一个单向链表。
1.
main(
)
{float
x,a[n+1],s=0.0;
int
i,n;printf(“请输入n和x的值”);scanf(“%d,%f”,n,x);printf(“请输入所有系数的值”);
for(i=0;i<=n;i++)scanf(“%f”,&a[i]);
for(i=0;i<=n;i++)
s=s+a[i]*pow(x,i);printf(“s=%f”,s”);}
2.
#include
“stdio.h”
main
(
)
{int
i;char
ch,name[80];
FILE
*fp;
i=0;
printf(“please
input
the
filename:”);
scanf(“%s”,name);
if((fp=fopen(name,”r+”))==NULL)
{
printf(“cannot
open
the
file”);
exit(0);}
ch=fgetc(fp);
i++;
if((ch>=’a’)&&(ch<=’z’))
ch=ch-32;
fputc(ch,fp);
printf(“字符总数为%”,i);
fclose(fp);
}
3.
#include
"stdio.h"
#include
"string.h"
#define
n
8
void
main(
)
{char
*p,*s[n],t[21];
int
i,j;
for(i=0;i<n;i++)
{scanf("%s",t);
s[i]=(char
*)malloc(strlen(t)+1);
strcpy(s[i],t);
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(s[i],s[j])>0)
{p=s[i];s[i]=s[j];s[j]=p;}
for(i=0;i<n;i++)
printf("%s\n",s[i]);
}
输入
basic
good
well
c
pascal
morning
hlr
cpp
输出:
basic
c
cpp
good
hlr
morning
pascal
well
Ⅶ 求c语言视频教程 浙大 颜晖老师讲的第6讲
http://..com/question/51236124.html
Ⅷ 请高手帮忙,要解题思路或者是代码,最好c语言。
//用C++提交
// 这题要用大整数来做的。自己定义大整数比较方法
#include <stdio.h>
#include<algorithm>
#include<stdlib.h>
#include<time.h>
#include<string.h>
using namespace std;
const int MAX=555;
struct BigNum//定义大整数
{
int dig[MAX];//大整数的每一位
int len;//大整数长度
void Clr()
{
memset(dig,0,sizeof(dig));
len=1;
}
};
struct STU
{
char name[MAX];
BigNum scr;
}stu[MAX];
BigNum deal(char s[])
{
BigNum ret;
int i,j;
ret.Clr();
for(i=0,j=strlen(s)-1;s[i];i++,j--)
{
ret.dig[j]=s[i]-'0';
}
ret.len=i;
return ret;
}
int NumCmp(BigNum a,BigNum b)
{
int i;
if(a.len>b.len)return 1;//a的长度大
else if(b.len>a.len)return -1;//b长度大
//长度一样的情况
for(i=a.len;i>0;i--)
{
if(a.dig[i]!=b.dig[i])return a.dig[i]-b.dig[i];//找到第一个不一样的,返回
}
return a.dig[i]-b.dig[i];
}
bool cmp(STU a,STU b)//定义比较规则
{
return NumCmp(a.scr,b.scr)>0;
}
int main()
{
int n,i;
char tmp[MAX];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%s%s",stu[i].name,tmp);
stu[i].scr=deal(tmp);//把数字倒转一下.这样比较起来方便
}
sort(stu,stu+n,cmp);
for(i=0;i<n;i++)puts(stu[i].name);
}
return 0;
}
Ⅸ C语言高空坠球问题
#include <stdio.h>
int main(void)
{
int i, n;
int repeat, ri;
double distance, height;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%d", &height, &n);
distance = height;
while(n > 0){
height = height / 2;
distance = distance + height * 2;
n--;
}
distance = distance - height * 2;
printf("distance = %.1f, height = %.1f\n", distance, height);
}
}
我刚运行过,绝对没问题!
Ⅹ c语言,一个球从某高度h落下,每次落地后反弹回原来高度的一半,再落下。编程计算球在10次落地
根据你的题目和输出样式截图分析:
1、每次输出当前坠落的高度,及球本次坠落后经过的距离总和。
2、输出包含小数,因此高度及距离变量采用浮点数。
3、递归/循环只执行10次。
3、看你图上,输出浮点数小数不显示多余的0,因此打印格式要用%g而不是%f(最多保留6位)。
#include <stdio.h>
void drop(float height);
int main()
{
float height;
printf("初始高度:");
scanf("%f",&height);
drop(height);
return 0;
}
void drop(float height)
{
static int cnt=1;
static float distance=0;//每次坠落后球移动的距离总和
if(height>0){
distance+=height;
printf("第%d次高度%g ",cnt,height);
printf("第%d次距离%g ",cnt,distance);
if(cnt<10)
cnt++,distance+=height/2,drop(height/2);
else
cnt=1,distance=0;
}
}