高级语言程序设计(一)2013年10月真题及答案解析
-
(1)写一个函数计算自然数n的阶乘(函数头为long fac(int n));
(2)由键盘输入两个自然数a和b且a≤b,调用上述函数计算并输出
的值。
-
从键盘输入x的值,按下列公式计算并输出y的值。
-
利用递归法,按下列公式计算并输出函数fx的值。
-
利用选择排序法实现对数组元素的升序排序。
-
#include
struct country
{
int no;
char name[20];
}a[]={1,"China",2,"Russia",3,"America"},*p=a;
void main()
{
p++;
printf("%d,%s", (*p).no, (*p).name);
p--;
printf("%d\n,%s", p->no, p->name);
printf("%d,%s\n", a[2].no, a[2].name);
}
-
从键盘输入一系列正(负数作为结束),写入二进制文件data.dat。
-
#include
void main()
{
int i, j, s, a[][3]={{1,2,3},{4,5},{6}};
for(s=0,i=0; i<3; i++)
switch(i)
{
case 0:
case 1:
case 2: for(j=0; j<3; j++) s+=a[i][j]; break;
}
printf("s=%d\n",s);
}
-
#include
void main()
{ int i;
for(i=10; i>0; i--)
{
if(i%3!=0) continue;
printf("%2d", i);
}
printf("\n");
}
-
若局部变量的存储类型缺省,其默认类型是_________。
-
#include
int f(int a)
{
static int d=10;/*静态变量*/
d+=a;
return d;
}
void main()
{
printf("f1=%d", f(3));
printf("f2=%d\n", f(5));
}
-
设char str[]="book\n";,执行语句printf("%d",sizeof(str));后的输出结果是_________。
-
设char *p="abcd";,执行语句printf("%C", *(p+2));后的输出结果是_________。
-
设float x=3.1;,执行语句printf("%.1f", 3.2+(int)x);后的输出结果是_________。
-
设FILE *fp;,若fp指向文件尾部,则feof(fp)的返回值是_________。
-
在C语言中,运算符优先级最低的是_________。
-
设int a=3;,执行语句printf("%d", a<<2);后的输出结果是_________。
-
设int n;,“n为偶数”的C语言逻辑表达式是_________。
-
实(浮点)型分为单、双精度两种,其类型保留字分别是_________。
-
实现字符串拷贝的系统函数是_________。
-
结构型变量所占内存量应是( )
- A.第一个成员占用的内存量
- B.最后一个成员占用的内存量
- C.所有成员占用内存量的总和
- D.成员中占用内存量最大者所需的容量
-
设int a[10], *p=a;,与数组元素a[0]等价的是( )
- A.*p
- B.p
- C.&a
- D.a
-
关于函数叙述正确的是( )
- A.函数必须有形参
- B.函数的形参可以是常数
- C.函数中只能出现一个return语句
- D.函数类型为void时,该函数无返回值
-
设typedef float REAL;则REAL是( )
- A.变量名
- B.常量名
- C.函数名
- D.类型名
-
设char s[10];,将字符串输入至数组s的正确语句是( )
- A.s=gets();
- B.getchar(s);
- C.scanf("%s", s);
- D.scanf("%s", &s[10]);
-
设int a[3][5];,该数组两个下标的取值范围分别是( )
- A.0~3和0~4
- B.0~3和3~5
- C.0~2和0~4
- D.3~5和0~5
-
定义数组并初始化正确的是( )
- A.int a[]=(2,4,6,8);
- B.int a[]={2,4,6,8};
- C.int a[3]={2,4,6,8};
- D.int *a[4]={2,4,6,8};
-
设int m=0;,语句while(m!=0) m++;的循环次数是( )
- A.0
- B.1
- C.2
- D.无限
-
设int a=3;,值为1的表达式是( )
- A.a%3
- B.3-++a
- C.(a++)%3
- D.a>3?2:1
-
设int a=0, b=5, c;,执行语句c=(a==b)||++a;后c的值是( )
- A.0
- B.1
- C.4
- D.5
-
设float x; -1≤x<3正确的C语言表达式是( )
- A.-1<=x<3
- B.-1<=x||x<3
- C.x>=-1&&x<3
- D.!(x>=-1)&&(x<3)
-
下列不是C语言运算符的是( )
- A.< >
- B.^
- C.!
- D.&=
-
表达式5+6!=0的值是( )
- A.0
- B.1
- C.6
- D.11
-
正确的C语言常数是( )
- A.012
- B.'abc"
- C.0xfp
- D.2e1.25
-
正确的自定义标识符是( )
- A.2xy
- B.int
- C.root%x
- D.total