0039C语言.docx
- 文档编号:4379368
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:32
- 大小:28.88KB
0039C语言.docx
《0039C语言.docx》由会员分享,可在线阅读,更多相关《0039C语言.docx(32页珍藏版)》请在冰豆网上搜索。
0039C语言
0039]《C语言》
第一次作业
[论述题]
1、通过C语言的学习,请认为C语言具有哪些重要特点?
什么时候使用函数的原型?
使用函数原型的作用是什么?
2、什么是算法?
算法的特性有哪些?
描述算法的主要方法有哪些?
举一问题的算法给出其算法描述。
3、传统流程图有哪里缺点?
为了提高算法质量,现在有哪三种基本结构?
其共同特点有哪些?
4、C语言是一种结构化程序设计语言,在C语言中是如何体现结构化程序设计思想的?
结构化程序设计方法有内容是什么?
5、请给出C语言的主要数据类型,请你至少给出4种以上的数据类型实例。
6、C语方为什么规定对所有用到的变量要"先定义,后使用”?
这样的做有什么好处?
7、什么是指针,什么是指针变量?
指针所指向的变量?
给一实例说明
8、什么是内部函数和外部函数?
9、在VC环境下,调试程序的基本步骤有哪些?
调试程序中常见的错误有哪些?
如何解决发现这些错误?
10、一个C程序由哪些要素构成,请给出一个C语言程序进行说明。
11、什么是函数的原型?
其作用是什么?
在这些作用中如何使用?
参考答案:
1、
(1)C程序结构简捷、灵活、高效。
(2)提供了丰富的数据类型。
(3)是一种很好地体现了结构化思想的程序设计语言。
(4)由于提供了位操作,因此,具有高级语言和低级语言的特点。
(5)由于提供了预处理命令,为大型系统的开发提供良好的机制。
一般,当被调用的函数在调用函数之后的时候使用函数的原型。
其作用是利用它在程序的编译阶段对调用函数的合法性进行全面检查。
2、算法是求解问题的有限步骤的集合
算法的特点有:
(1)有穷性
(2)确定性(3)有零个或多个输入(4)有一个或多个输出(5)有效性
描述算法的方法有:
自然语言、传统流程、N-S图等
实例依据学生答题评定
3、主要缺点:
传统流程图用流程线提出各框的执行顺序,对流程线的使用没有严格的限制,使用者随意性大,阅读者会花费很大的精力去追踪流程,理解逻辑。
程序的三种基本结构有:
顺序结构、选择结构、循环结构。
共同特点:
只有一个入口,一个出口,结构内的每部分都有机会执行到,结构内存在"死循环”。
4、在C语言中是通过函数体现结构化程序设计思想的。
结构化程序设计方法的主要内容:
自顶向下;逐步细化;模块化设计;结构化编码。
5、主要数据类型有:
C语言包括基本类型(整型、字符型、浮点型(单、双精度型)枚举类型)、构造类型(数组、结构体、共用体类型)、指针类型、空类型。
数据类型实例依据学生答题评定
6、对所有用到的变量进行"先定义,后使用”的原因:
凡未被事先定义的,C语言不把他认作变量,这样的目的能是为了保证程序中的变量能被正确的使用。
好处:
(1)每一个变量被指定为一个确定类型,在编译时C语言就能为其分配相应的存储单元。
(2)指定每一个变量属于一个类型,便于在编译时检查在程序变量进行的运算合法性。
7、指针:
就是一个变量的地址
指针变量:
有一个变量专门用来存放另一变量的地址(即指针)。
如果将一个变量的地址(指针)赋给同一类型的指针变量,则该变量为指针变量所指向的变量。
如intx=10,*p=&x;
则:
整数变量x的值为10,指针变量为p,指针所指向的变量为*p.
8、内部函数:
一个函数只能被本文件中的其它函数调所用,在定义时使用static。
外部函数:
一个函数不光是被本文件中其它函数调用,还可以被其它文件中的函数调用,定义时用extern。
extern可缺省。
9、 在VC环境下,调试程序的基本步骤有编辑、编译、连接、执行
调试程序中常见的错误有语法错误和逻辑错误。
其中语法错误通过编译来实现,逻辑错误通过单步测试和设置断点的方法来发现逻辑错误。
10、一个C程序由若干函数组成,但至少一个主函数。
而每个函数包括函数的首部和函数体。
C语言程序实例依据学生答题评定。
11、若自定义了一个函数,则该函数的首部称之为该函数的原型
函数原型的作用:
调用函数的接口;用于原型声明
其中函数的调用方法:
函数(实在参数)
函数的原型声明:
当被调用函数在调用函数之后时,必须进行原型声明,在程序最前面或在调用函数中进行声明,声明方法:
函数的首部;
第二次作业
[论述题]
4.写出下列表达式所对应的C语言表达式,其中x,y为整数,a,b,c为实数类型
内容见附件写C语言表达式
参考答案:
(1)x*x-3.0*x*y/(2-y)
(2)sqrt(fabs(a*b-c*c))
(3)sqrt(abs(a*b-c*c)*cos(x)/a)
(4)(1+sqrt(x))/(1-y/x)
(5)cos(x)+sqrt(3*a*b)/(2-y)
(6)sqrt(abs(a*b-c*c)*sin(x)/b)
[论述题]
1.下列表达式的值是多少?
处理表达式后,a的值是多少?
假设整数类型变量a的值为12
(1)a+=a
(2)a-=2
(3)a*=2+3(4)a/=a+a
(5)a%=(n%=2) n的值等于5(6)a+=a-=a*a
2.已知intx,a=14,;doubley=3.5;处理表达式x=(double)y+(a/=a+a)后变量x,y,a的值分别是多少?
表达式的值是多少?
3.已知inta=0,b=8,c=9;处理表达式a++||b++||c++后变量a,b,c的值是多少?
表达式的值是多少?
参考答案:
1.表达式计算
(1)表达式a=a+a的值是24?
处理表达式后,a的值是24
(2)表达式a=a-2的值是10处理表达式后,a的值是10
(3)表达式a=a*(2+3)的值是60处理表达式后,a的值是60
(4)表达式a=a/(a+a)的值是0,处理表达式后,a的值是60
(5) 表达式a%=(n%=2)的值是0,处理表达式后,a的值是12
(6)表达式a+=a-=a*a的值是-264,处理表达式后,a的值是-264
2.x为3、y为3.5、a为0、表达式的值为3
3.a为1、b为9、c为9,表达式的值为1
第三次作业
[单选题]设doublex=5.168;,执行printf("%5.3f\n”,(int)(x*10+0.5)/10.0);后的输出结果是()
A:
5.218
B:
5.210
C:
5.200
D:
5.168
参考答案:
C
[单选题]
设chars[]="1234567”;,执行printf("%d,%d\n”,strlen(s),sizeof(s));后的输出结果是()
A:
7,7
B:
7,8
C:
8,7
D:
8,8
参考答案:
B
[单选题]设charch=‘a';,执行printf("%d,%c\n”,ch,ch+2);后的输出结果是()
A:
97,c
B:
97,99
C:
a,c
D:
a,a+2
参考答案:
A
[单选题]下列叙述正确的是()
A:
continue语句的作用是跳出循环体
B:
while循环语句的循环体至少执行一次
C:
do-while循环语句的循环体至少执行一次
D:
switch语句中的每个case语句组必须含有break语句
参考答案:
C
[单选题]设struct{intx;inty;}m[2]={7,3,2,1};,执行printf("%d\n”,m[0].x/m[1].x*m[0].y);后的输出结果是()
A:
10.5
B:
9
C:
8.0
D:
7
参考答案:
B
[单选题]设inta=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是()
A:
0
B:
1
C:
2
D:
3
参考答案:
A
[单选题]字符串"\\\"ABC\"\\"的长度是()
A:
11
B:
7
C:
5
D:
3
参考答案:
B
[单选题]求解表达式f=(3.0,4.0,5.0),(2.0,1.0,0.0)后;下列正确的选项是()
A:
语法错误
B:
使f的值为5.0
C:
使f的值为0.0
D:
使f的值为2.0
参考答案:
B
[单选题]下列语句中,最正确的赋值语句是()
A:
A=7+b+c=a+7
B:
a=7+b++=a+7
C:
a=7+b,b++,a+7
D:
a=(7+b,c=a+7)
参考答案:
D
[单选题]设m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()
A:
0,0
B:
0,1
C:
1,0
D:
1,1
参考答案:
C
[单选题]设inta=2,b;则执行b=a&&1后b的值是()
A:
0
B:
1
C:
2
D:
3
参考答案:
B
[单选题]对于条件表达式(M)?
(a++):
(a--)来说,其中的表达式M等价于()
A:
M==0
B:
M==1
C:
M!
=0
D:
M!
=1
参考答案:
C
[单选题]若有定义:
chars[81];以下哪个选项不能实现将字符串"ThisisaProgram."存入数组s中()。
A:
gets(s+2)
B:
scanf("%20s",s)
C:
C.for(i=0;i<18;i++)((c=getchar())!
='')D.i=0;while((c=getchar())!
='')
D:
D.i=0;while
参考答案:
B
[单选题]
下面程序的输出结果是()。
#include
voidf(intx,inty)
{inttemp;
temp=x;x=y;y=temp;
}
voidmain()
{intx=1,y=3,z=2;
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
A:
1,2,3
B:
3,1,2
C:
2,3,1
D:
1,3,2
参考答案:
D
[单选题]设有定义"inta=5,b,*p=&a;",执行下列语句后,b的值不为5的赋值语句是()。
A:
b=*&a
B:
b=*p
C:
b=a
D:
b=*a
参考答案:
D
[单选题]循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);的循环执行()
A:
无限次
B:
不确定次
C:
4次
D:
3次
参考答案:
A
[单选题]假定p1和p2是已赋值的字符型指针,则下述有关运算中,非法的是()
A:
A.p2=p1+(p1-p2);printf("equal.");
B:
B.if(p1==p2)
C:
C.*(p1-2+p2)=getchar();
D:
*(p1+=2)=*p2
参考答案:
C
[单选题]对二维数组正确定义并初始化的是()
A:
inta[][3]={1,2,3,4,5,6}
B:
inta[3][3]=(1,2,3,4,5,6);
C:
inta[3][]={{l,2,3>,{4,5,6}}
D:
inta[3][3]={a,b,c,d,e
参考答案:
A
[单选题]设inta[]={12,34,56,78},*p=a;,下列表达式的值为56的是()
A:
p[1+2]
B:
*(a+2)
C:
a[3]
D:
*(p+3)
参考答案:
B
[单选题]()是C语言提供的合法的数据类型保留字(或称关键字)
A:
Float
B:
unsigned
C:
integer
D:
Char
参考答案:
B
[单选题]char型常量在内存中存放的是()
A:
ASCII码值
B:
BCD码值
C:
内码值
D:
十进制代码值
参考答案:
A
[单选题]关下面语句的输出的判断中,正确的是()。
longx=-4L; printf("%ld",x);
A:
输出值为-4
B:
赋值非法
C:
输出值不确定
D:
输出值为4
参考答案:
A
[单选题]下列符合C语言语法的实数是()
A:
1.5e0.5
B:
3.16e
C:
0.5e-10
D:
e+8
参考答案:
C
[单选题]chars='\092';的作用是()
A:
使s包含一个字符
B:
说明不合法,s的值不定
C:
使s包含四个字符
D:
使s包含三个字符
参考答案:
B
[单选题]表达式a=(a=6,a*6,a+3);运行后,则a的值为()
A:
39
B:
36
C:
6
D:
9
参考答案:
D
[单选题]下列选项中不是C语言提供的合法保留字的是()
A:
switch
B:
cher
C:
case
D:
default
参考答案:
B
[单选题]下列数据中属于"字符串常量”的是()
A:
ABC
B:
"ABC"
C:
'abc'
D:
'a'
参考答案:
B
[单选题]执行语句x=(a=3,b=a--);后,x,a,b的值依次是()
A:
3,3,2
B:
3,2,2
C:
3,2,3
D:
2,3,2
参考答案:
C
[单选题]设有语句inta=3;,执行语句a+=a-=a*a;后,变量a的值是()
A:
3
B:
0
C:
9
D:
-12
参考答案:
D
[单选题]设n=10,i=4;则赋值运算n%=i+1执行后n的值是()
A:
0
B:
3
C:
2
D:
1
参考答案:
A
[单选题]设intm=1,n=2;则表达式++m==n的值是()
A:
0
B:
1
C:
2
D:
3
参考答案:
B
[单选题]表达式(1,2,3,4)的值是(
A:
1
B:
2
C:
3
D:
4
参考答案:
D
[单选题]下面程序的输出结果是()。
#include
voidmain()
{printf("%d",null);}
A:
输出0
B:
因变量无定义,编译出错,没有输出
C:
输出-1
D:
输出0
参考答案:
B
[单选题]若有如下程序,要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是()。
#include
voidmain()
{inta1,a2;
charc1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);}
A:
020AB
B:
1020AB
C:
1020AB
D:
1020AB
参考答案:
D
[单选题]有如下程序,输入数据12345
#include
voidmain()
{intx;floaty;
scanf("%3d%f",&x,&y);}
A:
12.000000
B:
45.000000
C:
12345.000000
D:
0.000000
参考答案:
B
[单选题]执行下述程序后,输出的结果是()。
#include
#defineSQR(X)X*X
voidmain()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d",a);}
A:
10
B:
1
C:
9
D:
0
参考答案:
B
[单选题]设x,y,z,t均为int型变量,则执行x=y=z=1;t=++x||++y&&++z;语句后,t的值为()
A:
不定值
B:
2
C:
1
D:
0
参考答案:
C
[单选题]下面程序的输出结果是()。
#include
voidmain()
{intx=-1,y=4;
intk;
k=x++<=0&&!
(y--<=0);
printf("%d,%d,%d",k,x,y);}
A:
0,0,3
B:
1,1,2
C:
1,0,3
D:
1,1,2
参考答案:
C
[单选题]下面程序的输出结果是()。
#include
voidmain()
{inta,b,c=241;
a=c/100%9;b=-1&&-1;printf("%d,%d",a,b);}
A:
2,0
B:
2,1
C:
6,1
D:
0,-1
参考答案:
B
[单选题]语句while(!
e)中的条件!
e等价于()
A:
e==0
B:
e!
=1
C:
e!
=0
D:
~e
参考答案:
A
[单选题]对于for(表达式1;;表达式3)可理解为()
A:
for(表达式1;0;表达式3)
B:
for(表达式1;1;表达式3)
C:
for(表达式1;表达式1;表达式3)
D:
for(表达式1;表达式3;表达式3)
参考答案:
B
[单选题]对于下面程序输出结果的判断中,正确的是()。
#include
voidmain()
{intx;
for(x=1;x<=100;x++)
if(++x%2==0)
if(++x%3==0)
if(++x%5==0)
printf("%d,",x);}
A:
输出31,61,91
B:
输出30,60,90,
C:
不输出任何内容
D:
输出29,59,89
参考答案:
C
[单选题]下面程序的执行结果是()。
#include
#include
voidmain()
{charx[]="1234567",y[12]="1234567";
printf("%d,%d,%d",strlen(x),sizeof(x),sizeof(y));}
A:
7,7,7
B:
7,8,8
C:
7,8,12
D:
8,8,8
参考答案:
C
[单选题]下列运算符的操作数必须是整型的是()
A:
/
B:
!
C:
%
D:
=
参考答案:
C
[单选题]可用于C语言用户标识符的是()
A:
void,define
B:
2c,DO
C:
For,-abc
D:
as_b3,_123
参考答案:
D
[单选题]函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是()
A:
3
B:
4
C:
5
D:
6
参考答案:
A
[单选题]设inta=0,b=1;,下列语句错误的是()
A:
a=b=10;
B:
a++;
C:
b+=a;
D:
(a+b)++;
参考答案:
D
[单选题]能正确表达数学关系式0≤x<20的C语言表达式是()
A:
0<=x<20
B:
x>=0||x<20
C:
x>=0&&x<20
D:
!
(x<=0)&&x<20
参考答案:
C
[单选题]正确的C语言字符常量是()
A:
‘\’
B:
‘65’
C:
“A”
D:
‘/n’
参考答案:
A
[单选题]关于函数,下列叙述正确的是()
A:
一个函数中可以定义其它的函数
B:
C程序总是从main()函数开始执行
C:
main()函数也可以被其它函数调用
D:
一个C程序可以有多个main()函数
参考答案:
B
第四次作业
[论述题] 1.设floata,b,c;,若a、b和c分别为三角形的三条边长,它们"能构成等边三角形”的逻辑表达式是_____(a+b=c)&&(a+c=b)&&(b+c>a)_______。 2.设inti;floatf=3.14;,执行i=(int)f;后,变量f的值是_____3.14_______。 3.设chars[]=”\t\'Name\\Address\n”;,s的长度是____15________。 4.设intx=1,y=3,z;,执行z=x>y? ++x: y++;后,z的值是____3________。 5.设intm=3;floatn=12.6;charch='a';,若用输入语句实现上述三个变量的初始化结果且键入数据形式为: 3,12.6a<回车换行>,则scanf语句应是___scanf("%d,%f%c”,&m,&n,&ch);_________。 6.若定义函数时类型缺省,则该函数默认的类型是____extern________。 7.设inta[5]={l,3,5,7,9},*p=&a[2];,则++(*p)的值是___6____ 8.以下程序的功能是: 从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 请填空。 main() {floatx[1000],sum=0.0,ave,a; intn=0,i; printf("Entermark: \n”);scanf("%f”,&a); while( (1) a>=0 ) {sum___ (2)_sum+a___;x[n]=a ;n++; scanf("%f”,&a);} ave=____(3)sum/n___; printf("Output: \n”); printf("ave=%f\n”,ave); for(i=0;i } 9.下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。 请填空: #include"stdio.h" voidmain() {inta[10],i,max; for(i=0;i<10;i++) scanf("%d",&a[i]); for( (1)i=1,max=0或max=i=0;i<10;i++) if(a[i]>a[max]) (2)max=i; printf("最大值为: %d,下标是: %d",(3)a[max],max); } 10、下列程序的功能是: 从键盘输入10数,找出其中的素数并按降序输出这些素数。 请根据给定的程序和程序的功能完善该程序。 (每空2分,共6分)。 #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0039 语言