自学考试高级语言程序设计历年真题和答案.docx

上传人:b****4 文档编号:3998688 上传时间:2022-11-27 格式:DOCX 页数:49 大小:207.45KB
下载 相关 举报
自学考试高级语言程序设计历年真题和答案.docx_第1页
第1页 / 共49页
自学考试高级语言程序设计历年真题和答案.docx_第2页
第2页 / 共49页
自学考试高级语言程序设计历年真题和答案.docx_第3页
第3页 / 共49页
自学考试高级语言程序设计历年真题和答案.docx_第4页
第4页 / 共49页
自学考试高级语言程序设计历年真题和答案.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

自学考试高级语言程序设计历年真题和答案.docx

《自学考试高级语言程序设计历年真题和答案.docx》由会员分享,可在线阅读,更多相关《自学考试高级语言程序设计历年真题和答案.docx(49页珍藏版)》请在冰豆网上搜索。

自学考试高级语言程序设计历年真题和答案.docx

自学考试高级语言程序设计历年真题和答案

2001年10月自考高级语言程序设计

(一)试题

第一部分选择题

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.C语言程序编译时,程序中的注释部分

A.参加编译,并会出现在目标程序中

B.参加编译,但不会出现在目标程序中

C.不参加编译,但会出现在目标程序中

D.不参加编译,也不会出现在目标程序中

2.下列表达式的值为0的是()

A.3%5B.3/5.0C.3/5D.3<5

3.正确的C语言用户自定义标识符是()

A.printB.floatC.when?

D.random%2

4.设inta=3;则表达式a<1&&--a>1的运算结果和a的值分别是()

A.0和2B.0和3C.1和2D.1和3

5.下列叙述中,正确的是()

A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致

B.宏名必须用大写字母表示

C.宏替换不占用运行时间,只占编译时间

D.在程序的一行上可以出现多个有效的宏定义

6.下列保留字中用于构成循环结构的是()

A.ifB.whileC.switchD.default

7.与语句if(a>b)if(c>d)x=1;elsex=2;等价的是()

A.if(a>b){if(c>d)x=1;elsex=2;}

B.if(a>b){if(c>d)x=1;}elsex=2;

C.if((a>b)&&(c>d))x=1;elsex=2;

D.if(a<=b)x=2;elseif(c>d)x=1;

8.设charx='a';则printf("x=%c,y=%c\n",x,97);的输出是

A.x=a,y=97B.x=97,y=aC.x=97,y=97D.x=a,y=a

9.设inta[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是()

A.2B.3C.4D.无确定值

10.执行下列程序

inta[3][3]={{1},{2},{3}};

intb[3][3]={1,2,3};

main()

{printf("%d\n”,a[1][0]+b[0][0]);}

后输出的结果是

A.0B.1C.2D.3

11.设charstr[100];inti=5;则引用数组元素的错误形式是()

A.str[i+10]B.*(str+i)C.*(str+i-1)D.*((str++)+i)

12.设intx[]={1,2,3,4,5,6},*p=x;则值为3的表达式是()

A.p+=2,*++pB.p+=2,*p++C.p+=3,*pD.p+=2,++*p

13.在函数内,定义变量时存储类型符可省略的是()

A.autoB.staticC.externD.register

14.执行下列程序()

inta=3,b=4;

voidfun(intx1,intx2)

{printf("%d,%d\n",x1+x2,b);}

main()

{inta=5,b=6;fun(a,b);}

后输出的结果是

A.3,4B.11,1C.11,4D.11,6

15.设有定义语句

struct

{inta;floatb;}d[3]={{1,4},{2,5},{6,7}};

则printf("%3.1f\n",d[2].a*d[2].b/d[1].b);的输出是()

A.2.5B.2.0C.8.0D.8.4

16.设有定义语句:

enumt1{a1,a2=7,a3,a4=15}time;()

则枚举常量a2和a3的值分别为

A.1和2B.2和3C.7和2D.7和8

17.将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是()

A.2和2B.2和5C.5和2D.5和5

18.在文件使用方式中,字符串"rb"表示()

A.打开一个已存在的二进制文件,只能读取数据

B.打开一个文本文件,只能写入数据

C.打开一个已存在的文本文件,只能读取数据

D.打开一个二进制文件,只能写入数据

19.执行下列程序()

#defineF(y)15>>y

#definePRINT(a)printf("%d",a)

main()

{

PRINT(F

(2));

}

后输出的结果是

A.3B.3.5C.14D.7.5

20.main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为()

A.intargvB.char*argv[];C.charargv[];D.char**argv[];

第二部分非选择题

二、填空题(本大题共10小题,每小题2分,共20分)

21.初始化值是0.618的双精度变量a的定义形式为____________。

22.表达式!

10!

=1的值是____________。

23.“20

24.表达式a=1,a+=1,a+1,a++的值是____________。

25.设inti=5;则循环语句while(i>=1)i--;执行后,i的值为____________。

26.被调函数在执行结束时,这个函数中定义的____________类型的变量不被释放。

27.设

structstudent

{

intno;

charname[12];

floatscore[3];

}s1,*p=&s1;

用指针法给s1的成员no赋值1234的语句是____________。

28.C语言程序中对文本文件的存取是以____________为单位进行的。

29.设charstring[]="This_is_a_book!

";则数组的长度应是____________。

30.设inta[2][3]={{2},{3}};则数组元素____________的值为3。

三、程序分析题(本大题共5小题,每小题5分,共25分)阅读下列程序,将输出结果写到各题右侧的空白处

31.inta=200;

main()

{inti;

for(i=1;i<=5;i++)

{a++;

printf("%d,",a);

s();

}

}

s()

{staticinta=20;

a++;

printf(%d\n",a);

}

32.#include"stdio.h"

main()

{charc;

c=getchar();

if(c>='a'&&c<='w'||c>='A'&&c<='W')c=c+3;

elseif(c>='x'&&c<='z')||c>='X'&&c<='Z')c=c-23;

printf("%\n",c);

}

设从键盘上输入Next↙

33.#defineN7

main()

{inti,j,temp,a[N]={1,2,3,4,5,6,7};

for(i=0;i

{j=N-1-i;

temp=a[i];a[i]=a[j];a[j]=temp;

}

for(i=0;i

}

34.structporb

{char*name;

intcount;

}x[]={"Lining",19,"Langping",21,"Zhujianhua",20};

main()

{inti;

for(i=0;i<3;i++)

printf("%s:

%d\n",x[i].name,x[i].count);

}

35.main()

{union

{shorta;charch;

}M;

M.a=100;M.ch='A';

printf("%d,%d,%c\n",sizeof(M),M.a,M.ch);

}

四、程序填充题(本大题共3小题,每小题6分,共18分)给出下列程序,将横线处缺少的部分补上,使其能正确运行。

36.以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

voidsort(intb[],intn)

{inti,j,t;

for(i=0;i

for(__;i

if(b[i]___b[j])

{t=b[i];_________;b[j]=t;}

}

main()

{inta[]={5,8,6,2,7,4,1,3};

inti;

sort(a,8);

for(i=0;i<8;i++)

printf("%5d",a[i]);

printf("\n");

}

37.输入一字符串(换行为结束标志)统计其中数字(0,1,2,…,9不单独统计)、空白和其它字符出现的次数。

#include“stdio.h"

main()

{charc;

int_____________;

while((c=getchar())!

='\n')

{

if(________________)digit++;

elseif(c==''||c=='\t')++blank;

else____________;

}

printf("digit=%d,blank=%d,other=%d\n",digit,blank,other);

}

38.先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Notfound!

”标志。

main()

{inti,x,a[10];

for(i=0;i<10;i++)scanf("%d",___);

scanf("%d",&x);printf("%d",x);

for(i=0;i<10;i++)if(____________)break;

if(i___10)printf(“position:

%d\n”,i);

elseprintf("Notfound!

\n",x);

}

五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。

39.求出10至1000之内能同时被2、3、7整除的数,并输出。

40.求1到100之间的奇数之和及偶数之和,并将二者输出。

41.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。

全国2001年10月自考高级语言程序设计

(一)答案

课程代码:

00342

一、单项选择题(本大题共20小题,每小题1分,共20分)

1.D2.C3.A4.B5.C

6.B7.A8.D9.B10.D

11.D12.B13.A14.C15.D

16.D17.C18.A19.A20.B

二、填空题(本大题共10小题,每小题2分,共20分)

21.doublea=0.618

22.1

23.x>20&&x<=30或者(x>20)&&(x<=30)

24.2

25.0

26.静态存储,或者static

27.p->no=1234;或者(*p).no=1234;

28.字节

29.16

30。

a[1][0]

三、程序分析题(本大题共5小题,每小题5分,共25分)

31.201,21

202,22

203,23

204,24

205,25

32.Q(若结果为Qhaw,只得3分)

33.7654321

34.Lining:

19

Langping:

21

Zhujianhua:

20

35.2,65,A

四、程序填充题(本大题共3小题,每小题6分,共18分)

36.

(1)j=i+1

(2)>

(3)b[i]=b[j]

37.

(1)digit=0,blank=0,other=0

(2)c>='0'&&c<='9'

(3)++other或者other++

38.

(1)&a[i]或者a+i

(2)x==a[i]

(3)<

五、程序设计题(第39小题5分,第40、41小题各6分,共17分)

39.main()

{inti;

for(i=10;i<=1000;i++)

if((i%2==0)&&(i%3==0)&&(i%7==0))

printf("i=%d\n",i);

}

40.main()

{inta=0,b=0,i;

for(i=2;i<=100;i+=2)

{a+=i;b+=i-1;}

printf("Sumofevennumber=%d\n",a);

printf("Sumofoddnumber=%d\n",b);

}

41.#include"string.h"

main()

{inti,n;staticcharstr[80];

gets(str);n=strlen(str);

for(i=0;i

if(str[i]!

=str[n-1-i])

{printf("No!

\n");break;}

if(i==n/2)printf("Yes!

\n");

}

 

浙江省2002年1月高等教育自学考试

高级语言程序设计

(一)试题

课程代码:

00342

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

每小题1分,共15分)

1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为()

A.连接、编译B.编译、连接

C.连接、运行D.运行

2.常数的书写格式决定了常数的类型和值,0x1011是()

A.8进制整型常量B.字符常量

C.16进制整型常数D.2进制整型常数

3.C语句“x*=y+2;”还可以写作()

A.x=x*y+2;B.x=2+y*x;

C.x=x*(y+2);D.x=y+2*x;

4.下列格式符中,可以用于以8进制形式输出整数的是()

A.%dB.%8d

C.%oD.%1d

5.下列各语句中,能够且仅输出整型变量a、b中最大值的是()

A.if(a>b)printf(″%d\n″,a);printf(″%d\n″,b);

B.printf(″%d\n″,b);if(a>b)printf(″%d\n″,a);

C.if(a>b)printf(″%d\n″,a);elseprintf(″%d\n″,b);

D.if(a

6.执行语句“for(s=0,i=1;i<=10;i=i+3)s+=i;”后,变量s、i的当前值是()

A.22,13B.12,10

C.22,10D.12,13

7.下列各语句定义了数组,其中一个不正确的是()

A.staticinta[5],b[2][3];

B.charno[30],rec[30,6];

C.intx[]={2,4,6,8,10};

D.intx[10]={1,2,3,4,5};

8.宏定义“#definep(x,y,z)x=y*z;”的宏替换“p(a,x+5,y-3.1)”应为()

A.a=x+5*y-3.1B.a=(x+5)*(y-3.1);

C.a=x+5*y-3.1D.a=(x+5)*(y-3.1)

9.下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的()

A.floatd,*p=d;B.floatd,*p=&d;

C.floatd,p=d;D.float*p=&d,d;

10.执行语句“for(i=0;i<10;++i,++a)scanf(″%d″,a);”试图为int类型数组a[10]输入数据,是错误的。

错误的原因是()

A.指针变量不能做自增运算B.数组首地址不可改变

C.++i应写作i++D.++a应写作a++

11.定义函数时,缺省函数的类型声明,则函数类型取缺省类型()

A.voidB.char

C.floatD.int

12.执行语句“k=5|3;”后,变量k的当前值是()

A.1B.8

C.7D.2

13.执行语句“k=5∧3;”后,变量k的当前值是()

A.15B.125

C.8D.6

14.以“只读”方式打开文本文件a:

\aa.dat,下列语句中哪一个是正确的()

A.fp=fopen(″a:

\\aa.dat″,″ab″);

B.fp=fopen(″a:

\aa.dat″,″a″);

C.fp=fopen(″a:

\aa.dat″,″wb″);

D.fp=fopen(″a:

\\aa.dat″,″r″);

15.写字符到磁盘文件的fpuc函数,其函数原型(头)正确的是()

A.FILE*fputc(char)B.intfputc(FILE*)

C.intfpuc(char,FILE*)D.intfputc(FILE*,char)

二、填空题(每空1分,共15分)

1.设inta=5,b=2;floatc=32.8;,表达式b*(int)c%a的值为______。

2.计算a、b中最小值的条件表达式为______。

3.计算x、y之和的立方根,表达式应写作______。

4.判断变量a、b、c的值是否是等差数列中连续的三项,写作C的表达式为______。

5.判断变量a、b的值均不为0的C表达式为______。

6.执行语句“a=5+(c=6);”后,变量a、c的值依次为______。

7.整型变量x的值为23,语句“printf(″%o\\n″,x);”的输出结果为______。

8.执行语句“n=1;if(n=5)n++;"后,变量n值为______。

9.执行语句“s=0;n=5;while(--n)s+=n;”后,变量s、n值依次为______。

10.执行语句“for(s=0,i=1;i<11;i++){if(i==6)continue;s+=i;}"后,s值为______。

11.若声明“chara[]=″windows″,b[]=″9x″;”,

执行语句“printf(″%s″,strcat(a,b));”的输出结果为______。

12.若声明“chara[15]=″Windows-9x″;”,语句“printf(″%s″,a+8);”的输出结果为______。

13.程序中使用了字符串函数(如strlen),则必须包含的头文件名为______。

14.访问结构体数组元素a[k]的成员b,写作______。

15.a、b都是结构体变量,语句“a=b;”能够执行的条件是______。

三、程序阅读题,读下列程序,在程序旁的划线处写出程序的输出结果。

每行2分,共24分)

1.#include

voidmain()输出结果:

______

{inti;______

for(i=1;i<5;i++)printf(″%d\t%c\n″,i,'A'+i);______

}______

2.#include

voidmain()

{inti,j,a[4][4];

for(i=0;i<4;i++)

for(j=0;j<4;j++)a[i][j]=1+i-j;

for(i=0;i<4;i++){

for(j=0;j<4;j++)输出结果:

______

if(a[i][j]>0)printf(″%3d″,a[i][j]);______

putchar('\n');______

}______

}

3.#include

voidf(floata,floatb,float*c)

{staticfloatx;floaty;

x=(y=a>b?

a:

b)>x?

y:

x;

*c=x;

}

voidmain()

{floata[5]={2.5,-1.5,7.5,4.5,6.5},x;

for(inti=0;i<4;i++){输出结果:

______

f(a[i],a[i+1],&x);______

printf(″%.1f\n″,x);______

}______

}

四、根据下列各编程题题意填空(每空2分,共24分)

1.输入2个整数,输出它们的最小公倍数和最大公约数。

#include

voidmain()

{intm,n,gbs,gys;scanf(

(1));

gbs=m;

while(

(2))gbs=gbs+m;

gys=(3);

(4);

}

2.下列函数sum的返回值为一个整数m的所有因子之和。

(1)

{ints=1;i;

for(

(2);i<=m/2;i++)

if((3))s=s+i;

(4);

}

3.下列函数用于将链表中tabdata类型的、成员num值与形参n相等的结点删除。

structtabdata*de1(tabdata*h,intn)

{structtabdata*p1,*p2;

if(h==NULL){printf(″\nlistnull!

\n″);

(1);}

p1=h;

while(n!

=p1->num&&

(2)){p2=p1;p1=p1->next;}

if((3)){

if(p1==h)h=p1->next;else(4);

printf(″delete:

%1d\n″,n);

}

else

printf(″%1dnotbeenfound!

\n″,n);

returnh;

}

五、编程题(第1小题6分,其他小题各8分,共22分)

1.编程,先输入n,再输入n个实数并分别统计正数的和、负数的和,然后输出统计结果。

2.编程,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1