今天给各位分享浙大c语言答第一周的知识,其中也会对浙大c语言第三版答案进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、C语言题急求!~!~!~!~!~!~!~!~!~!2、浙大ZOJ 1001 C语言a+b问题3、求浙大C语言教程
C语言题急求!~!~!~!~!~!~!~!~!~!
1.
最初的C语言是为描述和实现
UNIX
操作系统而设计的。
2.
C语言规定,标识符必须以字母或
下划线
开头。
3.
C语言的double型数据在内存中占用
8
个字节的存储单元。
4.
×C语言的变量有
2
种存储类型,其中
static
型变量不进行初始化时,初值自动为0
5.写出下列表达式的求值结果:
(1)
2+3=2
(2)
5/3+2
3
(3)
!
(32)||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的值为
一、
判断题(1×5分,正确的画√,错误的画×)
(×)1.
C语言俗称“低级语言的高级形式”,这说明C语言的功能不强。
(√)2.
C语言允许用实型表达式向整型变量赋值。
×(×)3.
C语言的全局变量只能是extern存储类型。
×(×)4.
已知int
a[4],*p;则语句p=a;是正确的。
(×)5.
下面的程序段构成死循环。
a=5;
while
(1)
{a–;
if
(a0)
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!=NULLp=
=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)
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(kn)
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(k4)
{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;i5;i++)
if(a[i]0)
a[i]
=
-a[i];
for(i=4;i=0;i–)
printf(“%4d”,
a[i]);
}
该程序的输出是7
1
15
12
(4)
×#include
“stdio.h”
#define
N
5
int
swap(int
*p,
int
*q)
{int
t;
if(pq)
{t=*p;*p=*q;*q=t;}
return
pq;
}
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;mN;m++)
scanf(“%d”,a+m);
f(a,N-1);
for(m=0;mN;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=
=0y%100!=0||y%400=
=0
)
r=1;
else
r=
;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
;
km
;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(
jk或
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;in;i++)
{scanf(“%s”,t);
s[i]=(char
*)malloc(strlen(t)+1);
strcpy(s[i],t);
}
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
if(strcmp(s[i],s[j])0)
{p=s[i];s[i]=s[j];s[j]=p;}
for(i=0;in;i++)
printf(“%s\n”,s[i]);
}
输入
basic
good
well
c
pascal
morning
hlr
cpp
输出:
basic
c
cpp
good
hlr
morning
pascal
well
浙大ZOJ 1001 C语言a+b问题
while(scanf(“%d %d”,a, b) != EOF)这一句可以让你实现多组a b的输入 (EOF是End Of file的缩写) 按你的写法输入一组a+b之后程序就会终止 OJ无法实现多组输入 当然判错啦
求浙大C语言教程
我也想学啊 我不怕缺的那两讲 能把有的发给我吗 谢谢了
985502456@qq.com 非常感谢
关于浙大c语言答第一周和浙大c语言第三版答案的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。