高级语言程序设计(一)2017年10月真题及答案解析
-
利用循环结构输出下列乘法表。
1
2 4
3 6 9
……
9 18 27 36 …… 81
-
利用递归法,按下列公式计算并输出函数fx的值。
-
从键盘任意输入三个正实数,若能构成三角形,计算并输出三角形的周长;否则输出“No Triangle!”。
-
利用冒泡排序法实现数组元素的降序排序。
#include
#define N 10
void main()
{
int i,j,t,aN];
for( i=0; i for(i=0; i
for(i=0; i
{
for(j=0;j
if(_______) /*第一空*/
{ t=a[];
_______; /*第二空*/
a[j+1]=t;
}
}
for(i=0; i
printf("\n");
}
-
从键盘输入一串字符(以回车换行符作为结束标志)并写入文本文件note.txt
#include< stdio.h>
void main()
{
FILE *fp;
char ch;
fp= fopen("note.txt",_______); /*第一空*/
do
{
ch=getchar();
_______; /*第二空*/
} while(ch!= _______); /*第三空*/
fclose(fp);
}
-
#include
struct city
{
int num;
char name[20];
float temp;
}a[]={{1,"Beijing",15.5},{2,"Tianjin",16.2},{3,"Jinan",17.3}},*p=a;
void main()
{
int i;
for(i=0;i<3;i++,p+)
printf("%d,%s,%.1fn",(*p).num, p->name, a[i].temp);
}
-
#include< stdio.h>
void main()
{ int i;
for(i=18;i>0;i--)
{ if(i%7==0) break;
printf(" %5d",i);
}
printf("\n");
}
-
#include
void main()
{
int i,j,s,a[][3]={{1,2,3},{4,5,6},{7,8,9}};
for(s=0,i=0;i<3;i++)
switch (i)
{
case 1: break;
default: for(j=0;j<3;j++) s+=a[i][j]; break;
}
printf("s=%dn"s);
}
-
#include
int f(int a)
{ static int s=1; /*静态变量*/
s+=a*2;
retum s;
}
void main()
{ printf("f1=%d\n",f(3));
printf("f2=%d\n", f(5));
}
-
设 char s[ ]="Nobel_Prize\n";,执行语句 printf("%d\n",sizeof(s));,后的输出结果是_______。
-
设FILE *fp;,若fp指向文件尾部,则feof(fp)的返回值是_______。
-
设int a=2;,表达式a,a+1,a+2的值是_______。
-
设char *q="facebook";,执行语句printf ("%s\n",q+4)后的输出结果是_______。
-
设 float m=1.9,n=0.8;,执行语句 printf("%1.f\n" ,(int)m+n);后输出结果是_______。
-
设int a=12;,表达式a>>2的值是_______。
-
条件运算符(?:)的结合性是_______。
-
设 float a,b,c,x;,将的值赋予c的赋值语句是_______。
-
连接两个字符串的系统函数名是_______。
-
静态型和寄存器型的存储类型符分别是_______。
-
关于结构型说法正确的是( )
- A.成员不能为数组
- B.结构型不允许嵌套
- C.所有成员的类型必须是整型
- D.结构型变量占用的内存量是所有成员占用内存量总和
-
设int b[10],*p=b;,与数组元素b[0]等价的是( )
- A.*p
- B.p
- C.&b
- D.b
-
下列叙述正确的是( )
- A.全局变量和局部变量不能同名
- B.程序的执行必须从主函数开始
- C.break只能出现在 switch语句中
- D.一个函数中只能出现一个 return语句
-
设 char strl[10]="World",*p=str;,能正确输出字符串的语句是( )
- A.str=puts();
- B.putchar(str);
- C.printf("%s\n",p);
- D.printf("%c\n",*p);
-
定义数组并初始化正确的是( )
- A.int a[]=(2,4,6,8);
- B.int *a[3]={2,4,6,8};
- C.int b[][3]={2,4,6,8};
- D.int b[4][]={2,4,6,8};
-
设int p[5][6];,该数组两个下标的取值范围分别是( )
- A.0~4和0~5
- B.0~5和0~6
- C.1~5和1~6
- D.1~4和1~5
-
设 typedef double Q[10];,与语句Q q;等价的是( )
- A.double q;
- B.double *q;
- C.double *q[10];
- D.double q[10];
-
设int s=3;,表达式值为0的是( )
- A.s/2
- B.3-++s
- C.(s++)%3
- D.s>3?2:5
-
设int m=0;,语句do{m++;}while(!m);执行的循环次数是( )
- A.0
- B.1
- C.2
- D.无限
-
设int a=4,b=5,c;,执行语句c=(a==b)||++a;后,a和c的值分别是( )
- A.1,4
- B.0,5
- C.4,1
- D.5,1
-
表达式1+5==0的值是( )
- A.0
- B.1
- C.5
- D.6
-
设 float x;,能正确表达x属于区间(-5,10]的表达式是( )
- A.-5
- B.-5
- C.x>-5&&x<=10
- D.!(x>-5)&&(x<=10)
-
正确的用户自定义标识符是( )
- A.3ab
- B.float
- C.root-x
- D.s_1
-
错误的C语言常数是( )
- A.012
- B.'abc '
- C.0x2f
- D.1.2e3
-
下列属于C语言运算符的是( )
- A.?:
- B.#
- C.?=
- D.<>