高级语言程序设计(一)2016年4月真题及答案解析
-
(1)编写函数负fa,计算并输出直角三角形的面积;
(2)编写函数fb,计算并输出梯形的面积;
(3)编写主函数,键入直角三角形的底(d)和高(h),调用函数fa计算并输出该直角三角形的面积;键入梯形的上底(a)、下底(b)和高(c),调用函数fb计算并输出该梯形的面积。(输出结果保留两位小数)
-
从文本文件old.txt读取字符,将其中的英文字母'a'、'b'、'c'、'd'和'e'分别替换为'+'、'-'、'*'、'/'和'%',其余字符不变,然后写入文本文件 new.txt。
-
键入一串字符,以回车换行符为结束标志,统计并输出其中大写英文字母的个数。
#include
void main()
{
char a;
int s=_______; /*第一空*/
while((c=getchar()!='\n')
if(_______) s++; / *第二空*/
printf("大写英文字母个数s=%d\n",_______); /*第三空*/
}
-
从键盘为二维数组输入数据,分别计算并输出两条对角线元素值之和。
#include
#define N 4
void main()
{
int [N][N], i, j, sum1=0, sum2=0;
for(i=0; i
for(j=0; j
for(i=0; i
{
sum1=sum1+_______; /*第二空*/
sum2=sum2+a[i][N-1-i];
}
printf("sum1=%d sum2=%d\n",_______); /*第三空*/
}
-
#include
void main()
{
int i;
char *st="CHINA";
for(i=0; i<5; i+=2) printf ("%c", *(str+i));
printf("\n");
}
-
从键盘输入某个职工的工号、姓名和工资保存至结构型变量并输出。
#include
typedef struct employee
{
int number;
char name[20];
float salary;
}_______; /*第一空*/
void main()
{
EMP em;
scanf("%d%s%f", &em.number, _______, &em.salary); /*第二空*/
printf("Number: %d\nName: %s\nSalary: %.1f\n", _______); /*第三空*/
}
-
#include< stdio.h>
int z=2;
int fun(int x)
{
static int y=0;
return(--y+x+z);
}
void main()
{
int i;
for(i=1; i<3; i++) printf("%d#",fun(5);
printf("\n");
}
-
#include
void main()
{
int i;
char *country[ ]={"Brazil", "Russia", "India", "China", "SouthAfrica"};
for(i=1; i<4; i+=2) printf("%s\n", country [i]);
}
-
#include
void main()
{
int a=10, b=0;
while(1)
{
a+=2; b+=a;
if(b>20) break;
};
printf("a=%d, b=%d\n", a, b);
}
-
若函数的形式参数和实际参数均为数组类型,则函数调用时参数的传递方式是_______。
-
系统函数double fabs(double x)的功能是_______。
-
使用系统函数sin()时,用到的文件包含命令县_______。
-
设int x=3, y=2, z=1;,表达式!x>-y>=z的值是_______。
-
设struct{ float x, y; }z, *p=&z;,用指针引用成员x的方式是(*p).x或_______。
-
设float a;,执行表达式(double)a后,a的类型是_______。
-
设char s[10]= "peace";,执行语句printf("%d\n", strlen(s));后输出结果是_______。
-
设int x=10, y=20;,执行语句printf("%d\n", x>y?x:y);后输出结果是_______。
-
设int x=100;,表达式x%2=(x+1)%2的值是_______。
-
设int a=2, b-3; 表达式a<
-
设int s=5, t=6, *p, *q;,下列程序段正确的是( )
- A.p=&s; q=p;
- B.p=&s; q=*p;
- C.p=&s; q=t;
- D.p=&s; q=&t; *p=q;
-
当文件结束时,系统函数feof()的返回值是( )
- A.-1
- B.0
- C.1
- D.非0
-
设int x=1, y=2, z=3;,下列for语句正确的是( )
- A.for(; ; );
- B.for(z=0; z
- C.for(z=0; z
- D.for(z=0, z
-
正确定义一维数组的是( )
- A.float r(6);
- B.float n=6,r[n];
- C.#define N 6
- float r[N];
- D.int n; scanf("%d", &n);
- float r[n];
-
设int x;,与x==0等价的表达式是( )
- A.x==1
- B.!x
- C.x!=0
- D.x!=1
-
设int a[2][3]={1, 2, 3, 4, 5};,值为0的数组元素是( )
- A.a[1][2]
- B.a[1][1]
- C.a[0][1]
- D.a[0][0]
-
下列是递归函数的是( )
- A.int f(int n) { if(n!=0) return 1;
- else return 0; }
- B.int f(int n) { if(n%2==0) return 0;
- else return 1; }
- C.int f(int n) { if(n==0) return 0;
- else return n+f(n-1); }
- D.int f(int n) { if(n==0) return =;
- else return (--n); }
-
下列函数头正确的是( )
- A.void fun(a, b)
- B.void fun(int a, b)
- C.void fun(int a, int b)
- D.void fun(var int a, var int b)
-
设int a=1, b=2, c=3;,能将c的值同时赋给a和b的表达式是( )
- A.a=b=c
- B.a==b=c
- C.(a=c)ll(b=c)
- D.a==b==c
-
在一个文件的不同函数中不能重名的是( )
- A.函数名
- B.形式参数
- C.auto型内部变量
- D.register型内部变量
-
设int a=0,循环次数为0的语句是( )
- A.while(1);
- B.for(; a!=0; );
- C.for(a; a==0; a++);
- D.do{ a++; }while(1);
-
if(表达式)中“表达式”的类型是( )
- A.逻辑的
- B.关系的
- C.算术的
- D.任意的
-
设int x=2;,执行语句printf("%d\n", x++);后输出结果是( )
- A.2
- B.3
- C.4
- D.5
-
错误的C语言常数是( )
- A.0
- B.3E0
- C."d"
- D.'123'
-
C语言的保留字(又称关键字)是( )
- A.sum1
- B.main()
- C.continue
- D.integer