高级语言程序设计(一)2010年1月真题及答案解析
-
(1)编写一函数,将指针变量p1和p2所指向的整数值交换。
其中:函数头是void swap (int *p1, int *p2)
(2)编写一个主程序,从键盘输入两个整数,调用上述函数实现两个数据的交换并输出。
-
从键盘输入三个整数a、b和c,按照由小到大的顺序输出。
-
从键盘输入一串字符(以“?”作为结束标志),保存到文本文件text.txt中。
#include "stdio.h"
void main()
{
FILE _______; /*第一空*/
char ch;
if( (fp=fopen ("text.txt", _______) )==NULL) exit(0); /*第二空*/
while( (ch=getchar( ))!=′?′) fpute (ch, _________); /*第三空*/
fclose(fp);
}
-
用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
-
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
for(i=0;i<=1;i++)
{ for (j=0;j<=2;j++)
{ printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for (i=0;i<=2;i++)
for (j=0;j<=1;j++)
printf("%5d",b[i][j]);
}
-
从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。
-
void main()
{ int color=2;
switch(color)
{
case 1: printf("red\n"); break;
case 2: printf("yellow\n");
case 3: printf("blue\n");
}
}
-
void main()
{
float x=3.6;
int i;
i=x;
printf("x=%5.3f, i=%d\n",x,i);
}
-
void main()
{ int m,n;
for(m=1;m<=3;m++)
{
for(n=1;n<=2*m-1;n++) printf( "*");
printf("\n");
}
}
-
设int a[5]={1,3,5,7,9},*p=&a[2];,则++(*p)的值是_______。
-
若定义函数时类型缺省,则该函数默认的类型是_______。
-
设int x=1,y=3,z;,执行z=x>y?++x:y++;后,z的值是_______。
-
单目运算符的结合性是_______。
-
设int m=3; float n=12.6; char ch=′a′;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a<回车换行>,则scanf语句应是_______。
-
执行printf("%d\n",3&&2&5);后的结果是_______。
-
算术运算符的优先级比关系运算符的优先级_______。
-
设char s[]="\t\’Name\\Address\n";,s的长度是_______。
-
设float a,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是_______。
-
设int i; float f=3.14;,执行i=(int)f;后,变量f的值是_______。
-
关于编译预处理命令,叙述正确的是( )
- A.预处理命令都以“#”开头
- B.预处理命令必须位于程序的首部
- C.预处理命令只能实现宏定义和条件编译的功能
- D.每个程序必须在开头使用预处理命令#include
-
下列程序段正确的是( )
- A.char s[ ]={′xyz′}; scanf("%s",s);
- B.float *p,i; p=*p+i;
- C.char s[5]=′word′; puts(s);
- D.int a[5]={0},*p=a; *p=*(p+1);
-
设char k=′a′; float j=2.0;,执行k+=5/j; printf("%c",k);后,输出结果是( )
- A.a
- B.b
- C.c
- D.d
-
设int a[ ][4]={1,2,3,4,5,6,7};,则a[1][3]的值是( )
- A.0
- B.3
- C.4
- D.7
-
若定义一个只限本源文件使用的全局变量,则该变量的存储类别是( )
- A.extern
- B.register
- C.static
- D.auto
-
实现字符串连接的系统函数名是( )
- A.strcat
- B.strcmp
- C.strcpy
- D.strlen
-
若实参是一个数组名,在调用函数时,实参向形参传递的是( )
- A.数组的长度
- B.数组的首地址
- C.数组每个元素的值
- D.数组每个元素的地址
-
下列程序段中循环体执行的次数是( )
int x=-1;
do
{
x=x*x;
}while(!x);
- A.0
- B.1
- C.2
- D.无限
-
下列用户自定义标识符正确的是( )
- A.4a
- B.b_1
- C.-&
- D.*p
-
下列关于函数定义正确的是( )
- A.fun(int x,y){int z; return z;}
- B.void fun(int x, int y){ return x+y;}
- C.fun(x,y){int x,y; double z; z=x+y; return z;}
- D.double fun(int x, int y) {double z; z=x+y; return z;)
-
设char c=′A′;int i=1, j;,执行j=!c&&i++;后,i和j的值分别是( )
- A.1和0
- B.1和1
- C.2和0
- D.2和1
-
设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是( )
- A.1和2
- B.2和3
- C.3和4
- D.4和5
-
下列不属于保留字的是( )
- A.default
- B.register
- C.sruct
- D.unsign
-
设typedef long class;,则class是( )
- A.整型变量
- B.长整型变量
- C.长整型数据类型的新标识符
- D.新的而非长整型数据类型的标识符
-
下列不能作为常量的是( )
- A.0582
- B.0xa5
- C.′\n′
- D.2.5e-2