资源描述
更多优质自考资料,请访问自考乐园俱乐部
2023年上半年全国自考高级语言程序设计真题
一、单项选择题(每小题1分,共15分)在每小题的四个备选答案中选出一个对的答案
,并将其代码写在题干后面的括号内。不选、错选或多选者,该题无分。
1. 下列字符中属于键盘符号的是()
A. \
B. \n
C. \t
D. \b
答案:A
2. 字符串“ABC”在内存占用的字节数是()
A. 3
B. 4
C. 6
D. 8
答案:B
3. 设m,n,a,b,c,d均为0,执行(m=a==b)‖(n=c==d)后m,n的值是()
A. 0,0
B. 0,1
C. 1,0
D. 1,1
答案:C
4. 表达式“10!=9”的值是()
A. 2true
B. 非零值
C. 0
D. 1
答案:D
5. 设有int i=010,j=10;则printf(″%d,%d\n″,++i,j--);输出是()
A. 11,10
B. 9,10
C. 010,9
D. 10,9
答案:B
6. 循环语句for(x=0,y=0;(y!=123)‖(x<4);x++);的循环执行()
A. 无限次
B. 5次
C. 4次
D. 3次
答案:A
更多优质自考资料,请访问自考乐园俱乐部
7. 设int x=-1;执行表达式++x‖++x‖++x后,x的值是()
A. 0
B. 1
C. 2
D. 3
答案:B
8. 设char x=′a′;则printf(″x=%c,y=%c\n″,x,97);的输出是()
A. x=a,y=97
B. x=97,y=a
C. x=97,y=97
D. x=a,y=a
答案:D
9. 执行下列程序
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
main()
{printf(″%d\n″,a[1][0]+b[0][0]);}
后输出结果是()
A. 0
B. 1
C. 2
D. 3
答案:D
10. 若有以下定义,则数值为4的表达式是()
int w[3][4]={{0,1},{2,4}{5,8}},(*p)[4]=w;
A. *w[1]+1
B. p++,*(p+1)
C. w[2][2]
D. p[1][1]
答案:D
11. 全局变量的存储类可以定义为()
A. auto或static
B. extern或register
C. auto或extern
D. extern或static
答案:D
12. 设有定义语句
struct
{int a;float b;}d[3]={{1,4},{2,5},{6,7}};
则printf(″%3.1f\n″,d[2].a);的输出是()
A. 2.5
B. 2.0
C. 8.0
D. 6.0
答案:D
13. 根据下面的定义,能打印出字母M的语句是
struct person{char name[9];int age;};
更多优质自考资料,请访问自考乐园俱乐部
struct person c[10]={″John″,17,″Paul″,19,″Mary″,18,″Adam″,16};()
A. printf(″%c″,c[3].name)
B. printf(″%c″,c[3].name[1])
C. printf(″%c″,c[2].name[1])
D. printf(″%c″,c[2].name[0])
答案:D
14. 若文献型指针fp已指向某文献的末尾,则函数feof(fp)的返回值是()
A. 0
B. -1
C. 非零值
D. NULL
答案:C
15. 标准库函数fputs(p1,p2)的功能是()
A. 从p1指向的文献中读出一个字符串存入p2指向的内存
B. 从p2指向的文献中读出一个字符串存入p1指向的内存
C. 从p1指向的内存中读出一个字符串存入p2指向的文献
D. 从p2指向的内存中读出一个字符串存入p1指向的文献
答案:C
二、多项选择题(每小题2分,共10分)在每小题的五个备选答案中选出二至五个对的
答案,并将其代码写在题干后面的括号内。多选、少选、不选或错选者,该题无分。
1. 下列说法中错误的是()
更多优质自考资料,请访问自考乐园俱乐部
A. 主函数可以分为两个部分:主函数说明部分和主函数体
B. 主函数可以调用任何非主函数的其他函数
C. 任何非主函数可以调用其他任何非主函数
D. 程序可以从任何非主函数开始执行
E. 任何非主函数可以调用主函数
答案:D^E^
2. 对的的C语言用户自定义标记符是()
A. print
B. float
C. when?
D. random%2
E. abc
答案:A^E^
3. 下列语句中,对的的是()
A. char a[3][]={′abc′,′1′}
B. char a[][3]={′abc′,′1′}
C. char a[3][]={′a′,″1″}
D. char a[][3]={″a″,″1″}
E. char a[][3]={″A″,″1″}
答案:D^E^
4. 若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是()
A. i=*p
B. *p=*&j
C. i=*&j
D. i=**p
E. i=&j
答案:B^C^
5. 设有定义struct ru{long x;float y;}time,* timep=&time;则对time中成员x的对的引用
是()
A. ru.time.x
B. timep.x
C. (*timep).x
D. time.x
E. time->x
答案:C^D^
三、填空题(每小题2分,共22分)
1. 设a=3,b=2,c=1,a>b>c的值为___。
答案:0
更多优质自考资料,请访问自考乐园俱乐部
2. 设x和y均为int型的变量,且x=1,y=2,则表达式1.0+x/y的值为___。
答案:1.0
3. C语言中逻辑值“真”是用___表达的。
答案:非0
4. 结构化程序设计规定的三种基本结构是___结构、选择结构和循环结构。
答案:顺序
5. 设i,j,k均为int型变量,则执行完毕下的for的循环后,k的值为___。
for(i=0,j=10;i<=1;i++)k=i+j;
答案:11
6. 设有定义语句“static int a[3][4]={{1},{2},{3}}”,则a[2][1]值为
___。
答案:0
7. *后跟指针变量名,表达该指针变量___。
答案:指向的变量
8. 全局的外部变量和函数体内定义的局部变量重名时,___变量优先。
答案:局部
9. 下面函数规定计算两个整数x、y之和,并通过形参z传回该和值,请填空。
Void add(int x,int y,int *z)
{___=x+y;return;}
答案:*z
10. 若有以下说明和定义语句,则变量W在内存中所占字节数是___。
union aa{float x;float y;char c[6];};
struct st{union aa v;float w[5];double ave;}w;
答案:34
11. “FILE”是在___头文献中定义的。
答案:stdio.h
四、程序分析(阅读下列程序,将输出结果写到各题右侧的空白处。每小题5分,共
35分)
1. main()
{
long sum=0,i;
for(i=1;i<11,i++)
sum+=i;
printf(″sum=%d\n″,sum);
}
输出结果为?
答案:55
2. main()
{
int a=3,b=4,c=10;
if(a>b)a=b;
if(a>c)a=c;
printf(″%d,%d,%d″,a,b,c);
}
答案:3,4,10
3. main()
{
int y=9;
for(;y>0;y--)
if(y%3==0)
printf(″%d″,y);
}
答案:963
4. void s(int a);
main()
{
int i,j;
for(i=1;i<=5;i++)
s(i+1);
printf(″\n″);
}
void s(int a)
{
printf(″%d″,a);
}
答案:23456
5. main()
{
int a[2][2],i,j;
for(i=0;i<2;i++)
更多优质自考资料,请访问自考乐园俱乐部
for(j=0;j<2;j++)
{
a[i][j]=i*j;
printf(″%d″,a[i][j]);
}
}
答案:0001
6. main()
{static char a[]={′*′,′*′,′*′,′*′};
int i,j,k;
for(i=0;i<5;i++)
{
printf(″\n″);
for(j=0;j<i;j++)printf(″%c″,′′);
for(k=0;k<5;k++)printf(″%c″,a[k]);
}
}
答案:*****
****
*****
*****
*****
7. #define N 7
main()
{
int i,j,temp,a[N]={1,2,3,4,5,6,7};
for(i=0;i<N2;i++)
{
j=N-1-i;
temp=a[i];a[i]=a[j];a[j]=temp;
}
for(i=0;i<N;i++)printf(″%5d″,a[i]);
}
答案:7653321
五、程序设计题(每小题6分,共18分)
1. 用当型循环结构实现并输出1+2+3+…+100.
答案:main()
{
更多优质自考资料,请访问自考乐园俱乐部
long sum=0,i;
i=1;
while(i<101)(3分)
sum+=i++;
printf(″sum=%d\n″,sum);(6分)
}
2. 从键盘上输入10个字符,然后按顺序输出。
答案:main()
{
char a[10];
int i;
for(i=0;i<10;i++)(3分)
scanf(″%c″,&a[i]);
for(i=0;i<10;i++)
printf(″%c″,a[i]);(6分)
}
更多优质自考资料,请访问自考乐园俱乐部
3. 编函数计算kkk…kk(共n个k,n>0)的值,并计算sl=2+22+222+2222+22222.
答案:long f(k,n)
long k,n;
{
long m=0;
int i;
for(i=1;i<n+1;i++)
m=m*10+k;
return(m);
}(3分)
main()
{
long s1=01,s2=01,i;
for(i=1;i<6;i++)
s1=s1+f(21,i);
printf(″s1=%ld\n″,s1);(6分)
}
展开阅读全文