练习2 答案

  • 格式:doc
  • 大小:49.00 KB
  • 文档页数:7

练习二
一、选择题
1.int a[4];这句话中数组的下标最小的值是()。

A.-1
B.0
C.1
D.2 2.设x=2.5,y=4.2,a=2;(int)(x+y)+a;的值是()。

A. 8
B. 8.7
C.9
D.10 3.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是().
A.float
B. long
C. int
D.double
4.以下程序输出结果是()。

fun(int x, int y, int z)
{z=x*x+y*y;} 5*5+2*2
main( )
{ int a=31;
fun(5,2,a);
printf(”%d”,a);
}
A.0
B.29
C.31
D.无定值
5.整型变量的存储空间是()。

A.1B
B.2B
C.4B
D.8B
6.以下说法中正确的是()。

A.C语言程序总是从第一个的函数开始执行
B.在c语言程序中,要调用的函数必须在main函数中定义
C.c语言程序总是从main()函数开始执行
D.c语言程序中的main()函数必须放在程序的开始部分
7.给出以下定义
Char x[5]=”abcd”;
Char y[4]={…a‟,‟b‟,‟c‟,‟d‟};
则以下各项中,正确的叙述是()。

A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x长度大于数组y的长度
D.数组x长度小于数组y的长度
8.下面运算符优先级最高的是()。

A.+
B.<
C.&&
D.=
9.如果是以读的方式打开文件,那么其打开方式应该是()。

A.w
B.a
C.b
D.r
10.建立函数的目的之一是()。

A.提高程序的执行效率
B. 减少程序文件所占内存
C.减少程序的篇幅
D.提高程序的可读性
二、看程序写出运行结果
1.#include<stdio.h>
main()
{ int i;
for(i=1;i<=5;i++)
{ if(i%2) printf("*");
else continue;
printf("#");
}
printf("$\n");
} 运行结果:
2. #include <stdio.h>
void func1(int x),func2(int x);
main()
{ int x=10;
func1(x);
printf("%d\n",x);
}
void func1(int x)
{ x=20;
func2(x);
printf("%d\n",x);
}
void func2(int x) 运行结果:
{ x=30;
printf("%d\n",x);
}
3. #include<stdio.h>
fun(int x)
{ int p;
if(x==0||x==1) return 3;
else
{ p=x-func(x-2)
return(p);
}
}
main() 运行结果:
{ printf("%d\n",func(9));}
4. #include <stdio.h>
int a=5;int b=7;
main()
{
int a=4,b=5;
int c;
int plus(int ,int);
c=plus(a,b);
printf("A+B=%d\n",b); 运行结果:a+b=5 }
int plus(int x,int y)
{
int z;
z=x+y;
return(z);
}
5. #include <stdio.h>
int func(int a,int b)
{ return(2*a+b);}
main() 运行结果:
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
三、程序填空题
1.交换两数。

#include <stdio.h>
main()
{
int x,y,z;
scanf("%d,%d",&x,&y);
if(x<y)
{ z=x;
x=y;
y=z;
}
printf("%d,%d",x,y);
}
2.从键盘输入若干学生成绩,求最高成绩,当输入负值时结束输入。

#include<stdio.h>
main()
{
int score,max;
scanf(“%d”,&score);
max=score;
while( score>=0 )
{ if(max<score)
max=score
scanf("%d",&score);
}
printf("%d",max);
}
3.求阶乘的递归调用函数。

#include <stdio.h>
int facto(int n)
{ if(n==1) return 1;
else return return n*facto(n-1);
}
main()
{
int x;
scanf("%d",&x);
printf("%d", facto(x) );
}
4.打开一个文件,写入apple,banana,pear字串,以#结束。

#include <stdio.h>
#include<process.h>
void main()
{
int ch;
if((fp=fopen("result.txt", ))==NULL)
{ printf("file created error.\n");
exit(0);
}
do
{ch=getchar();fputc(ch,fp);
}while(ch!='#');
}
四、编程题
1. 定义一个函数int f(int)判断x是否是奇数,如果是则函数返回1,否则
返回0.
main()
{
int x,m;
scanf(“%d”,&x);
m=f(x);
if(m) printf(“%d是一个奇数!”,x);
else printf(“%d是一个偶数!”,x);
}
int f(int x)
{
if(x%2==0) return0;
else return 1;
}
2.用switch语句或if实现。

给出一个百分制成绩,要求输出成绩等级A、B、C、
D、E。

90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。

1.用IF语句实现。

main()
{
int score;
scanf(“%d”,&score);
if(score >=90) printf(“A”);
if (score >=81&&score<=89) printf(“B”);
if (score >=70&&score<=80) printf(“C”);
if (score >=60&&score<=69) printf(“D”);
if (score <60) printf(“E”);
}
1.用SWITCH语句实现。

main()
{
int score,i;
scanf(“%d”,&score);
i=score/10;
switch(i)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5: printf(“E”);break;
case 6: printf(“D”);break;
case 7: printf(“C”);break;
case 8: printf(“B”);break;
case 9: printf(“A”);break;
}
}。