高级语言程序设计(一)2017年4月真题及答案解析
-
(1)编写函数fa,计算并输出圆的面积;
(2)编写函数fb,计算并输出圆的周长;
(3)编写主函数,键入圆的半径R和运算标志m。使用 switch语句,当m=1时调用fa;当m=2时调用fb;当m=3时调用fa和fb。输出结果保留两位小数
-
将26个大写英文字母写入新建的文本文件 ch.txt。
-
为二维数组输入数据,输出其中最小的元素值及对应的两个下标。
include
#define M 3
#define N 4
void main()
{
int a[M][N],i,j, row, col, ___①____; /*第一空*/
for(i=0;i
for(j=0; j
min=a[0][0];
row=col=___②____; / *第二空*/
for(i=0; i
for(j=0; j
if(a[i][j]
{ min=___③____; /*第三空*/
row=i; col=j;
}
printf("min=%d, row-=%d, col=%d\n", a[row][col], row, col);
}
-
键入一串字符,以回车换行符为结束标志,统计并输出其中数字字符的个数。
include
void main()
{
char ch; int n=0;
ch=getchar();
while(ch!='\n')
{
if(___①____) n+; /*第一空*/
___②____; / *第二空*/}
printf("n=%d\n",___③____); / *第三空*/
}
-
将从键盘输入的某个学生的学号、姓名和成绩保存至结构型变量并输出。
include
typedef struct student
{
int no;
char name[20];
float score;
}___①____; /*第一空*/
void main()
{
STU st;
scanf("%d%s%f", &st.no,___②____,&st.score); /*第二空*/
printf("No:%d\nName:%s\nScore:%.1f\n",___③____); /*第三空*/
}
-
void main()
{
int a=10,y=0;
do {
a+=2; y+=a;
if(y>30) break;
}while(-1);
printf("a=%d, y=%d\n", a,y);
}
-
void main()
{
int k;
char *s=" ABCDE";
for(k=0;k<5;k+=2) pint("%s\n",s+k);
}
-
int i=1;
int f(int j)
{
static int k=0;
return(++k+j+i);
}
void main()
{
int j;
for(j=1; j<=3; j++) printf("%5d",f(10));
printf ("\n");
}
-
void main()
{
int n;
char *city[]={"Beijing","Tianjin","Shanghai","Chongqing"};
for(n=0; n<4; n+=2) printf("%s\n",city[n]);
}
-
执行语句 print("%sn","1+2+3\0=6");后输出结果是_______。
-
若在函数内部定义变量时省略存储类型,则默认的存储类型是_______。
-
设int a=3,b=2,c=1;,表达式a>b>c的值是_______。
-
若函数的类型为void,则函数_______返回值。
-
设 struct{ int a; char c;}m,*p=&m;,用指针引用成员a的形式是(*p).a或_______。
-
设 char a,b;,与表达式a^=b-2等价的另一表达形式是_______。
-
设int a[5]={1,2,3,4};,元素a['E'-A]的值是_______。
-
设 char s[20]= "China";,执行语句 printf( "%d\n",strlen(m));输出结果是_______。
-
C语言的三种逻辑运算符分别是&&、‖和_______。
-
设int s=6;,表达式s%2+(s+1)%2的值是_______。
-
当文件未结束时,系统函数feof的返回值是( )
- A.-1
- B.0
- C.1
- D.非0
-
设int m=5,n,*p1,*p2;,下列程序段正确的是( )
- A.p1=&m; p2=p1;
- B.p1=&m; p2=*p1;
- C.p1=&m; p2=&p1;
- D.p1=&m; p2=&n; *p1=p2;
-
设 char ch;,下列语句错误的是( )
- A.ch="a=b";
- B.ch='\0';
- C.ch='7'+'9';
- D.ch=7+9;
-
正确定义一维数组的是( )
- A.int a(10);
- B.int n=10, a[n];
- C.#define N 10
- int a[N];
- D.int n; scanf("%d", &n);
- int a[n];
-
下列为递归函数的是( )
- A.int func(int n) { if(n==0) return 0;
- else return(n-1); }
- B.int func(int n) { if(n==0) return 0;
- else return func(n-1); }
- C.int func(int n) { if(n==0) return 0;
- else return sqrt(sqrt(n)); }
- D.int func(int n) { if(n==0) return 0;
- else return(--n); }
-
设int x=1,y=2,z=3;下列语句错误的是( )
- A.if(x
- B.for(z=0;z
- C.for(z=0,z
- D.if(x
-
函数中定义的变量,其作用域是( )
- A.本函数
- B.本程序的所有文件
- C.本文件的所有函数
- D.本文件的第一个函数
-
关于函数正确的说法是( )
- A.必须有返回值
- B.必须有形式参数
- C.返回值的类型可以是指针
- D.一个函数中可以定义另一函数
-
设int a[3][4]={1,2,3,4,5,6};,值为1的数组元素是( )
- A.a[0][0]
- B.a[0][1]
- C.a[1][0]
- D.a[1][1]
-
if(表达式)和while(表达式)中的“表达式”( )
- A.只能是逻辑的
- B.只能是关系的
- C.只能是算术的
- D.可以是任意的
-
设int a=1,b=2,c=3;,能将c的值同时赋给a和b的表达式是( )
- A.a=b==c
- B.a==(b=c)
- C.(a=c)||(b=c)
- D.(a=c)&&(b=c)
-
错误的实型(又称浮点型)常数是( )
- A.2E0
- B.0.0
- C.0E0
- D.0E+0.0
-
设 int a, b;,表达式a=2,b=5,b++,a+b--的值是( )
- A.2
- B.6
- C.7
- D.8
-
设int a;,循环次数为无限的语句是( )
- A.for(a=0;a;a++);
- B.for(a=0;a==0;);
- C.for(a=0;a=0;a++);
- D.for(a=0;a==0;a++);
-
C语言的保留字(又称关键字)是( )
- A.sum
- B.main
- C.double
- D.longint