高级语言程序设计(一)2018年4月真题及答案解析
-
从文本文件old.txt读取字符,将其中的数字字符'0'、'1'、'2'、……'9'分别用英文字母字符'Z'、'Y'、'X'、'W'、'V','U'、'T'、'S'、'R'、'Q'替换,其余字符不变,结果写入文本文件new.txt,并分别将两个文件的内容输出到屏幕。
-
(1)编写函数 int move(int b[],int n, int m),将整型数组b的n个元素循环右移m个位置。例如:n=10,m=2时,移动前、后数组b中的数据如下图所示。
(2)编写主函数,从键盘输入数组元素及n和m(0
-
从键盘为二维数组元素输入数据,计算并输出全部元素之和。
#include
#define N 5
int main(void)
{
int i,j;
float a[N][N],sum=_______; /*第一空*/
fox(i=0;i
for (j=0;j
{
scanf("%f",&a[i][j]);
sum=sum+_______; /*第二空*/
}
printf("sum=%.3f\n",_______); /*第三空*/
return 0;
}
-
键入一串字符,以回车换行符为结束标志,分别统计并输出其中英文字母和数字的个数。
#include
int main(void)
{
_______; /*第一空*/
int letter=0,digital=0;
while((ch=getchar())!='_______') /*第二空*/
if(ch>='A'&&ch<='z'|| ch="">='a'&&ch<='z') letter++;
else if(_______) digital++; /*第三空*/
printf("Letter=%d,Digital=%d\n",letter,digital);
return 0;
}
-
十个人参加选举,有三个候选人,每人投一票。输出每位候选人的姓名和得票数。
#include
#include t
ypedef struct person
{
char name[20];
int count;
}PER;
int main( void)
{
int i,j; char NAME[20];
PER leader[3]={{"Li",0},{"Liu",0};{"Wang",0}};
for(i=0;i<_______;i++) /*第一空*/
{
scanf("%s",NAME);
for(j=0;j<3;j++)
if(strcmp(NAME,leader[j]-name)==0)
_______; /*第二空*/
}
for(i=0;i<3;i++)
printf("%s,%d\n",_______,leader[i].count); /*第三空*/
return 0;
}
-
#include
int main(void)
{
char ch='-';
int a=1,b=2;
switch(ch)
{
case '+': a+=b;
case '-': a-=b;
case '*': a*=b;
case '/': a/=b;
}
printf("%d\n",a);
return 0;
}
-
#include
int main(void)
{
int a[10]={10,9,8,7,6,5,4,3,2,1},i,j=9,temp;
int *p=a;
for(i=0i<5;i++)
{
temp=a[i];
a[i]=a[j];
a[j--]=temp;
}
for(i=0;i<10;i++)
printf("%d ",*p++);
printf("\n");
return 0;
}
-
#include
int main(void)
{
int x,y=3;
for(x=1;x<=10;x++)
{
if(y>=10) break;
if(y%3==2)
{
y=y+3;
continue;
}
y=y-1;
}
printf("%d,%d\n",x,y);
return 0;
}
-
#include
int main(void)
{
int i=0;
char *Brics[]={"Brazil","Russia","India","China", "South Africa"};
do
{
printf("%s\n",Brics[i]);
i=i+2;
}while(i<6);
return 0;
}
-
使用系统函数strcat()时,用到的文件包含命令是_______。
-
系统函数 getchar()的功能是_______。
-
设chr s[ ]="\\1234";,执行语句 printi("%d,%d\n",sizeof(s),strlen(s));后输出结果是_______。
-
设int x=2;,执行语句pim("%d",x++);后输出结果是_______。
-
设int a=1,b=2,c3;,表达式a||b-a&&c+!a的值是_______。
-
设int n=5;,执行语句 printi("%d\n",n=3*4,n*5,n+1));后输出结果是_______。
-
设int s[5]={2,4,6,8},*p=5;,执行语句 printf("%d,%d\n",s[2],*(p+4));后输出结果_______。
-
设 int a;float b=1.9;,执行语句a=(int)b;后变量a和b的值分别是_______。
-
设int a=11;,表达式a%3+a/4的值是_______。
-
设int x=4,y=2;,表达式(x>>y)+(x<<9)的值是_______。
-
当文件未结束时,系统函数feof的返回值是( )
- A.-1
- B.0
- C.1
- D.非0
-
设int m=5,*p;,下列语句正确的是( )
- A.p=&m;
- B.p=m;
- C.*p=&m;
- D.*p=*m;
-
下列二维数组定义正确的是( )
- A.char a(10,10);
- B.chr n=10,a[n][n];
- C.#define N 10
- char a[N][N];
- D.int n;
- char a[n][n];
-
不是变量存储类型关键字的是( )
- A.auto
- B.stdio
- C.static
- D.register
-
设int x=1,y=2;,下列语句错误的是( )
- A.x++=y;
- B.for(x=0;x
- C.while(x
- D.if(x
-
关于函数不正确的说法是( )
- A.可以没有返回值
- B.可以没有形式参数
- C.返回值可以是指针类型
- D.一个函数中可以定义另一函数
-
设int a[3][4]={1,2,3,4,5,6};,值为4的数组元素是( )
- A.a[0][1]
- B.a[0][2]
- C.a[0][3]
- D.a[1][1]
-
调用递归函数func(1),返回值为3的是( )
- A.int func(int n) {
- if(n<=0) return 0;
- else return func(n-1)+n; }
- B.int func(int n) {
- if(n<=0) return 0;
- else return func(n-1)+3; }
- C.int func(int n) {
- if(n==0) return 0;
- else return func(n-1)*n; }
- D.int func(int n) {
-
下列变量定义正确的是( )
- A.int a6;
- B.double -a6;
- C.float 6a;
- D.char Ab*;
-
设int a=1,b=2,c3;,不能将变量c的值赋给变量a和b的表达式是( )
- A.a=c,b=c
- B.a=(b=c++)
- C.(a=c)||(b=c)
- D.(a=c)&&(b=c)
-
当循环语句while(表达式);结束时,“表达式”的值是( )
- A.0
- B.1
- C.-1
- D.非0
-
设int a;,循环次数为10的语句是( )
- A.for(a=0;a=10;a++);
- B.for(a=0;a==10;a++);
- C.for(a=0;a<10;a++);
- D.for(a=0;a<=10;a++);
-
设int x=10,y=5;,表达式x++,x+y++的值是( )
- A.10
- B.11
- C.15
- D.16
-
C语言的关键字是( )
- A.strcpy
- B.printf
- C.stdio
- D.float
-
错误的表达式是( )
- A.20%5
- B.20/5
- C.20.8%5
- D.20.8/5