高级语言程序设计(一)2013年1月真题及答案解析
-
从键盘输入一个正整数n,若能同时被3、5和7整除,则输出“Yes”,否则输出“No”。
-
利用循环结构输出以下图形。
-
从键盘输入5个字符串,将其写到文本文件fs.txt中。
#include
#include
void main()
{
FILE *fp;
char str[5][10];
int i;
for(i=0; i<5; i++) gets(str[i]); /* 输入字符串 */
if((fp=fopen("fs.txt",_____①____)==NULL) /* 第一空 */
{ printf("Can’t open file!\n"); exit(0); }
for(i=0; i<5; i++) /* 写入文件 */
{
fputs(_____②____, fp); /* 第二空 */
fputs("\n", fp);
}fclose(_____③____); /* 第三空 */
}
-
计算1!+2!+3!+4!+5!的值并输出。
#include
int f(int a)
{
static int c=1;
c=c*a;
return(_____①____); /* 第一空 */
}
void main()
{
int i, k;
k=-1;
for(i=2; i<=5; i++) k+=_____②____; /* 第二空 */
printf("_____③____\n", k); /* 第三空 */
}
-
设有30名学生,由键盘分别输入每个学生的姓名和两门课成绩,计算每个学生的总分,并输出总分最高者的姓名和总分。
-
#include
int power(int n) /* 递归函数 */
{
if(n==0) return 1;
else return 2*power(n-1);
}
void main( )
{ printf("%d\n", power(5)); }
-
#include
int x=1; /* 全局变量 */
void fx(int p)
{ x=p+x; p++; }
void main( )
{
int a=3;
fx(a); x++;
printf("%d,%d\n", a, x);
}
-
#include
void sub (int x, int y, int *z)
{ *z=x+y; }
void main( )
{ int a=2, b=5, c;
sub(a, b, &c);
printf("%d,%d,%d\n", a, b, c);
}
-
在C语言中,将圆周率(PI=3.1415926)定义为常量的宏定义命令是__________。
-
#include
void main()
{ char op;
int a=10, b=20;
for(op='a'; op<='d'; op+=2)
switch(op)
{
case 'a': printf("a+b=%d\n", a+b); break;
case 'b': printf("a-b=%d\n", a-b); break;
case 'c': printf("a*b=%d\n", a*b); break;
case 'd': printf("a/b=%d\n", a/b); break;
}
}
-
在C语言中,表示逻辑“假”的值是__________。
-
设int n=123;,执行语句printf("%d", n/10%10);后的输出结果是__________。
-
设char ch='A';,执行语句printf("%c,%d",ch+32,ch);后的输出结果是__________。
-
设int a,b;,与a*=5-b;等价的赋值语句是__________。
-
系统函数sqrt()应使用的文件包含命令是__________。
-
运算符+=、!和&&中优先级最高的是__________。
-
设float x, y, z;,的C语言算术表达式是__________。
-
执行语句printf ("%d",3^5);后的输出结果是__________。
-
在C语言的文件使用中,EOF的值是__________。
-
表示“回车”的转义字符是( )
- A.'\r'
- B.'\t'
- C.'\0'
- D.'\n'
-
下列二维数组定义并初始化正确的是( )
- A.int a[3][3]=[0,3];
- B.int a[2][]={{3,4},{5,6}};
- C.int a[2,3]={2,3,4,5,6,7,8,9};
- D.int a[][4]={{1,2,4,5},{2,3},{3,4,9}};
-
设char s1[20]="China",s2[10]="Beijing";,执行下列语句后的输出结果是( )strcat(s1, s2); printf("%s,%d\n",s1,strlen(s1));
- A.China,5
- B.Beijing,7
- C.ChinaBeijing,12
- D.BeijingChina,12
-
设typedef int ARRAY[10];,与语句ARRAY a, b;等价的是( )
- A.int a,b;
- B.int a,b[10];
- C.int a[10],b;
- D.int a[10],b[10];
-
下列叙述正确的是( )
- A.while语句中的循环体至少被执行一次
- B.do-while语句中的循环体至少被执行一次
- C.switch语句中每个case后必须有break语句
- D.continue和break在循环语句中的作用是相同的
-
设char s[2*5]="1234567";,数组s的长度是( )
- A.10
- B.9
- C.8
- D.7
-
设int m[]={5,4,3,2,1} ,i=2;,其值为1的数组元素是( )
- A.m[i+2]
- B.m[i+3]
- C.m[i-1]
- D.m[m[i]]
-
设float a,b,c;,函数调用语句f(((a,b),a+c),5);中参数的个数是( )
- A.1
- B.2
- C.3
- D.4
-
设int x=10,*p;,指针p指向x的正确语句是( )
- A.p=x;
- B.*p=*x;
- C.*p=&x;
- D.p=&x;
-
设int a=-1, b=3;,执行表达式++a&&(b=5)后,a和b的值分别是( )
- A.-1,3
- B.0,3
- C.0,5
- D.-1,5
-
正确的实型常数是( )
- A.0
- B.e2
- C.0.871
- D.3e-1.5
-
设int a=2, b=3, c;,正确的赋值语句是( )
- A.(a+b)++;
- B.b=a%2.5;
- C.a+=b+=5;
- D.c=a+b=5;
-
设int a=1, b=3, c;,执行语句c=(a!=b)?++a:b++;后,c的值是( )
- A.1
- B.2
- C.3
- D.4
-
表达式3.6-1/2+5%2的值是( )
- A.2.6
- B.3.6
- C.4.1
- D.4.6
-
正确的自定义标识符是( )
- A.2c
- B.x#y
- C.case
- D.Word_2