高级语言程序设计自考题12.docx

上传人:b****0 文档编号:9781199 上传时间:2023-05-21 格式:DOCX 页数:15 大小:18.89KB
下载 相关 举报
高级语言程序设计自考题12.docx_第1页
第1页 / 共15页
高级语言程序设计自考题12.docx_第2页
第2页 / 共15页
高级语言程序设计自考题12.docx_第3页
第3页 / 共15页
高级语言程序设计自考题12.docx_第4页
第4页 / 共15页
高级语言程序设计自考题12.docx_第5页
第5页 / 共15页
高级语言程序设计自考题12.docx_第6页
第6页 / 共15页
高级语言程序设计自考题12.docx_第7页
第7页 / 共15页
高级语言程序设计自考题12.docx_第8页
第8页 / 共15页
高级语言程序设计自考题12.docx_第9页
第9页 / 共15页
高级语言程序设计自考题12.docx_第10页
第10页 / 共15页
高级语言程序设计自考题12.docx_第11页
第11页 / 共15页
高级语言程序设计自考题12.docx_第12页
第12页 / 共15页
高级语言程序设计自考题12.docx_第13页
第13页 / 共15页
高级语言程序设计自考题12.docx_第14页
第14页 / 共15页
高级语言程序设计自考题12.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

高级语言程序设计自考题12.docx

《高级语言程序设计自考题12.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计自考题12.docx(15页珍藏版)》请在冰点文库上搜索。

高级语言程序设计自考题12.docx

高级语言程序设计自考题12

高级语言程序设计自考题-12

(总分:

100.00,做题时间:

90分钟)

一、单项选择题(总题数:

15,分数:

30.00)

1.可以作为自定义标识符的是()

A.2xB.break

C.m-nD.m_n

(分数:

2.00)

 A.

 B.

 C.

 D. √

解析:

[解析]主要考查的知识点为自定义标识符。

[要点透析]A项以数字开头,B项为保留字,C项含有非字母、数字、下划线的字符,只有D项是正确的。

2.在定义inta[6][5]之后,对a中元素的引用正确的是()

A.a[2][5]B.a[6][0]

C.a[0][1]D.a[0,0]

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

[解析]本题主要考查的知识点为对二维数组元素的引用。

[要点透析]a[6][5]的行下标的取值范围是0~5,列下标的取值范围是0~4,超出此范围的错误。

D项的格式错误。

3.设inta=4,b;则执行b=a<<1;语句后,b的结果是()

A.8B.2

C.16D.10

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

[解析]本题主要考查的知识点为位移位运算符。

[要点透析]“<<”为左移运算符,移位时将数据看成二进制数,题中表达式表示将a左移1位,0100左移一位后所对应的十进制数是8。

4.执行表达式x=(y=1,z=2,k=3)后,x的值为()

A.6B.3

C.2D.1

(分数:

2.00)

 A.

 B. √

 C.

 D.

解析:

[解析]本题主要考查的知识点为逗号表达式。

[要点透析]在逗号表达式中,最后一个表达式的值为逗号表达式的值。

5.表达式的值为0的是()

A.5/5%5B.5>2

C.14D.0x7&7

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

[解析]主要考查的知识点为各种运算符的使用。

[要点透析]A项中“/”和“%”的优先级相同,最终值为1。

B项为关系运算,结果为真,即1。

D项为位逻辑运算,结果仍为7。

6.执行下列程序段后的输出结果是()

intx=12;while(--x>10)printf("k");

A.kkkkB.kkk

C.kkD.k

(分数:

2.00)

 A.

 B.

 C.

 D. √

解析:

[解析]本题主要考查的知识点为自减运算符--。

[要点透析]--运算符作前缀时的运算规则是先减一,后使用对象,所以当程序执行完第一次以后x的值是11,再执行第二次时x的值为10,条件不成立,程序不再执行。

此循环只能被执行一次。

7.设intx=6;,执行语句x+=x-=x*;后,x的值是()

A.-60B.0

C.6D.36

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

8.下列程序的运行结果是()

main()

inta=3,c=6;

printf("a=%d,b=%d/n",a,c);

A.a=%3,b=%6B.a=d,b=d

C.a=3,b=6D.a=%d,b=%d

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

9.以下说法中不正确是()

A.使用while循环时,循环变量初始化的操作应在循环语句之前完成

B.while循环是先判断表达式,后执行循环体语句

C.do-while和for循环均是先执行循环体语句,后判断表达式

D.for,while和for-while循环中的循环体均可以由空语句构成

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

[解析]本题主要考查的知识点为for、while和do-while循环的特点。

[要点透析]for循环是先判断表达式,后执行循环体语句。

10.设intb[][5]=1,2,3,4,5,6,7;,则元素b[1][2]的值是()

A.0B.2

C.6D.7

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

[解析]主要考查的知识点为二维数组元素的初始化。

[要点透析]在数组中,没有被赋初值的元素的默认值为零。

11.在C语言中,引用数组元素时,其数组下标的数据类型允许是()

A.整型常量B.整型表达式

C.整型常量或整型表达式D.任何类型的表达式

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

[解析]本题主要考查的知识点为数组下标的数据类型。

[要点透析]引用数组元素时,数组下标必须是整型,可以是常量,也可以是表达式。

12.存储整数-12345时,在二进制文件和文本文件中占用的字节数分别是()

A.2和2B.2和6

C.6和6D.6和2

(分数:

2.00)

 A.

 B. √

 C.

 D.

解析:

[解析]本题主要考查的知识点为二进制文件和文本文件的存储。

[要点透析]二进制文件中数据都是按其二进制方式存放的,文本文件中数据都是将其转换成对应的ASCII代码字符来存放的。

题中-12345属于短整型,所以以二进制文件存储时占用2个字节。

13.执行下列程序段后输出的结果是()

intx,y,z=1;

for(x=1,y=-1;x<y;x++,y--)z++;

printf("%d/n",z);

A.1B.2

C.5D.6

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

14.运行下列程序后,输出结果是()

voidfun(intx,inty,int*cp,int*dp)

*cp=x+y;*dp=x-y;

main()

inta=6,b=2;

fun(a+b,a-b,&a,&b);

printf("%d,%d/n",a,b);

A.6,2B.8,4

C.12,4D.8,2

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

15.fread(buf,32,2,fp)的功能是()

A.从fp文件流中读出整数32,并存放buf中

B.从fp文件流中读出整数32和2,并存放在buf中

C.从fp文件流中读出32个字节的字符,并存放在buf中

D.从fp文件流中读出2个32个字节的字符,并存放在buf中

(分数:

2.00)

 A.

 B.

 C.

 D. √

解析:

[解析]本题主要考查的知识点为fread函数的功能。

[要点透析]该函数是用来从fp所指向的文件当前位置读取2个32字节长的数据,存入以buf为首的内存区。

二、填空题(总题数:

10,分数:

20.00)

16.设a=6,b=5,c=4,则a>b>c的值为1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

0)

解析:

17.使用系统函数getchar1,必须在程序的开头写2命令。

(分数:

2.00)

填空项1:

__________________ (正确答案:

#include<stdio.h>)

解析:

18.函数中的形参和调用时的实参都是数组名时,传递方式为1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

地址传递)

解析:

19.设inta,b=5;,则执行表达式a=b-2==3后a的值是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

1)

解析:

20.设floata[6][4];则数组a中第一维下标的最大值是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

5)

解析:

21.对于数组x[8],其地址可以写成x或1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

&x[0])

解析:

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

(分数:

2.00)

填空项1:

__________________ (正确答案:

0)

解析:

23.设shorta[5][3];如果数组a首地址为1000,则a[1][0]的地址为1(按行存储)。

(分数:

2.00)

填空项1:

__________________ (正确答案:

1006)

解析:

24.若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

3)

解析:

25.设有数据定义语句structcharn[20];longm[20];x;,则为变量x所分配的内存字节数是1个。

(分数:

2.00)

填空项1:

__________________ (正确答案:

100)

解析:

三、程序分析题(总题数:

4,分数:

16.00)

26.main()

inta=1,b=2,c=3;

if(a<=c)

if(b==c)printf("a=%d/n",a);

elseprintf("b=%d/n",b);

printf("c=%d/n",c);

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(b=2

c=3)

解析:

27.intf(intn)

staticintm=8;

return++m+n;

main()

inti;

for(i=0;i<2;i++)printf("%5d",f(i));

printf("/n");

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(911)

解析:

28.main()

inta[]=1,2,3,4,5,6;

int*p;

inti;

p=a:

*(P+3)+=1;

printf("%d,%d/n",*p,*(p+3));

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(1,5)

解析:

29.structstuintx;

int*px;

a[4],*p=a;

main()

inti,y[4]=10,11,12,13;

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

a[i].x=i,a[i].px=y+i;

printf("%d/n",++P->x);

printf("%d/n",(++p)->x);

printf("%d/n",++(*p->px));

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(1

1

12)

解析:

四、程序填充题(总题数:

3,分数:

18.00)

30.将8个数输入数组中,找出其中最大数和最小数并输出。

main()

inti,max,min,a[8];

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

scanf("%d",&a[i]);

max=a[0];

min=a[0];

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

if(a[i]>max)

max=______;

if(a[i]<min)

______;

printf("max=%d,min=%d/n",______);

(分数:

6.00)

填空项1:

__________________ (正确答案:

a[i]

min=a[i]

max,min)

解析:

31.下列程序的功能是寻找二维数组中的鞍点,找到则输出其行、列下标;找不到则输出“no!

”,请填空。

提示,鞍点是指行上最大、列上最小的数组元素。

main()

inta[3][5],i,j,k,max_j,flag;

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

for(j=0;j<5;j++)

scanf("%d",______);

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

max_j=0;

for(j=0;j<5;j++)

if(a[i][max_j]<a[i][j])______;

flag=1;

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

if(a[k][max_j]<a[i][max_j])

flag=0;break;

if(flag==1)______;

if(flag==1)

printf("%d,%d/n",i,max_j);

else

printf("no!

/n");

(分数:

6.00)

填空项1:

__________________ (正确答案:

&a[i][j]

max_j=j

break)

解析:

32.从键盘输入一串字符(“*”作为结束标志),将其写入文本文件file.dat中保存。

#include<stdio.h>

#include<stdlib.h>

main()

charch;

FILE*fp;

if((fp=fopen("file.dat","______")):

=NULL)

printf("Cannotopenfile/n");exit(0);

ch=getchar();

while(ch!

='*')

fputc(______,fp);

ch=getchar();

fclose(______);

(分数:

6.00)

填空项1:

__________________ (正确答案:

w

ch

fp)

解析:

五、程序设计题(总题数:

2,分数:

16.00)

33.求10~1000之间的所有素数之和,并输出。

(分数:

8.00)

__________________________________________________________________________________________

正确答案:

(main()

{longs=0L;

intk,m,flag;

for(k=10;k<1001;k++)

{flag=1;

for(m=2;m<=k/2;m++)

if(k%m==0){flag=0;break;}

if(flag)s+=k;

}

printf("s=%1d/n",s);

})

解析:

34.用指针方法实现:

输入8个整数,将其中的最大数和最后一个数交换,最小数和第1个数交换,然后将8个整数倒序输出。

(分数:

8.00)

__________________________________________________________________________________________

正确答案:

(#include<stdio.h>

#defineN8

main()

{inta[N],*p=a,i,d,d1=0,x,x1=0;

for(i=0;i<N;i++,p++)

{scanf("%d",p);

if(i==0){d=*p;x=*p;}

if(d<*p){d=*p;d1=i;}

elseif(x>*p){x=*p;x1=i;}

}

P--;

a[d1]=*p;*P=d;

a[x1]=*(p-7);*(p-7)=x;

for(i=N-1;i>=0;i--,p--)

printf("%d",*p);

})

解析:

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2