2018年4月自考高级语言程序设计(00342)真题及答案
-
(1)编写函数 int move(int b[],int n,int m),将整型数组b的n个元素循环右移m个位置。 例如:n=10,m=2时,移动前、后数组b中的数据如题34图所示。
(2)编写主函数,从键盘输入数组元素及n和(0<m<n<20)的值,调用move函数,输出移动前后的全部数组元素。
-
从文本文件old、txt读取字符,将其中的数字字符'0'、'1'、'2'…'9'分别用英文字母字符'Z'、'Y'、'X'、'W'、'V'、'U'、'T'、'S'、'R'、'Q'替换其余字符不变,结果写入文本文件new.txt,并分别将两个文件的内容输出到屏幕。
-
键入一串字符,以回车换行符为结束标志,分别统计并输出其中英文字母和数字的个数。
#include< stdio.h>
int main(void)
{
________;/*第一空*/
int letter =0, digital =0;
while((ch=getchar())!='________')/*第二空*/
if( ch >='A'&&ch ='Z'I Ich >='a'&&ch<='z') letter++;
else if(__________ ) digital++;/*第三空*/
printf("Letter=%d, Digital =%d\n", letter, digital);
return 0;
}
-
从键盘为二维数组元素输入数据,计算并输出全部元素之和。
#include< stdio.h>
#define N5
int main(void)
{
int i,j;
float a[N][N],sum=__________;/*第一空*/
for(i=0;i<N;i++)
for(j=0: j<N;j++)
{
scanf("%f",&a[i][j]);
sum= sum+__________ ;/*第二空*/
}
printf("sum =% 3f\n", __________);/*第三空*/
return 0;
}
-
#include< stdio.h>
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=0;i<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< stdio.h>
#include< string.h>
typedef 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( stremp( 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,=2;
switch(ch)
{
case'+':a+=b;
case'-':a-=b;
case'*':a* =b; break;
case'/': a/=b;
}
printf("%d\n",a);
return 0;
}
-
#include< stdio.h>
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< stdio.h>
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()时,用到的文件包含命令是_______。
-
设char s[]="\\1234";,执行语句printf("%d,%d\n", sizeof(s), strlen(s));后输出结果是_______。
-
系统函数getchar()的功能是_______。
-
设int a=1,b=2,c=3;,表达式a‖b-a&&c+!a的值是_______。
-
设int x=2;,执行语句printf("%d",x++);后输出结果是_______。
-
设int s[5]={2,4,6,8},*p=s;,执行语句printf("%d,%d\n",s[2],*(p+4));后输出结果是_______。
-
设int a;float b=1.9;,执行语句a=(int)b;后变量a和b的值分别是_______。
-
设int n=5;,执行语句printf(%d\n",(n=3*4,n*5,n+1));后输出结果是_______。
-
设int x=4,y=2;,表达式(x>>y)+(x<
-
设int a=11;,表达式a%3+a4的值是_______。
-
设intm=5,*p;,下列语句正确的是()
- A.p=&m;
- B.p=m;
- C.*p=&m;
- D.*p=*m;
-
当文件未结束时,系统函数feof的返回值是()
- A.-1
- B.0
- C.1
- D.非0
-
设int x=1,y=2;,下列语句错误的是()
- A.x++=y;
- B.for(x =0;x<y;x++);
- C.while(x<y);
- D.if(x<y);else x=x+y;
-
不是变量存储类型关键字的是()
- A.auto
- B.stdout
- C.static
- D.register
-
下列二维数组定义正确的是()
- A.char a(10,10);
- B.char n=10,a[n][n];
- C.#define N 10
- char a[N][N ];
- D.int n;
- char a[n][n];
-
调用递归函数func(1),返回值为3的是()
- A.int fune(int n) {
- if(n<=0)return;
- else return func(n-1)+n; }
- B.int fune( int n) {if(n<=0)return;
- else return func(n-1)+3; }
- C.int fune( int n) {
- if(n==0)return 0;
- else return func(n-1)*n; }
- D.int func( int n) {
- if(n==0) return0;
-
设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]
-
关于函数不正确的说法是()
- A.可以没有返回值
- B.可以没有形式参数
- C.返回值可以是指针类型
- D.一个函数中可以定义另一函数
-
下列变量定义正确的是()
- A.int a6;
- B.double -a6;
- C.float 6a;
- D.char Ab*;
-
设int a=1,b=2,c=3;,不能将变量c的值赋给变量a和b的表达式是()
- A.a=c,b=c
- B.a=(b=c++)
- C.(a=)‖(b=c)
- D.(a=c)&&(b=c)
-
设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++);
-
当循环语句 while(表达式);结束时,“表达式”的值是()
- A.0
- B.1
- C.-1
- D.非0
-
错误的表达式是()
- A.20%5
- B.20/5
- C.20.8%5
- D.20.8/5
-
设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