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

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

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

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

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

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

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

(总分:

99.00,做题时间:

90分钟)

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

15,分数:

29.00)

1.下列不属于C语言保留字的是()

A.charB.while

C.typedefD.look

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

2.以下关于结构型变量成员地址的引用方法中错误的是()

A.&结构型变量名.成员名B.结构型变量名.成员名

C.&结构型变量名D.&结构型变量名.成员数组[下标]

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

3.以下说法中正确的是()

A.#define和printf都是C语句B.#define是C语句,而printf不是

C.printf是C语句,但#define不是D.#define和printf都不是C语句

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

[解析]#define是宏命令,而不是C语句

4.设有数组定义:

chararray[]="china";,则数组array所占用的空间为()

A.4个字节B.5个字节

C.6个字节D.7个字节

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

5.不属于字符型常量的是()

A."s"B.'8'

C.'A'D.'/n'

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

6.一个源文件中定义的全局变量的作用域为()

A.本文件的全部范围B.本程序的全部范围

C.本函数的全部范围D.从定义该变量开始至本文件结束

(分数:

2.00)

 A.

 B.

 C.

 D. √

解析:

[解析]本题主要考查的知识点为全局变量的作用域。

[要点透析]全局变量的作用域是从定义点到整个程序结束,既从定义该变量时开始到该程序结束,全局变量都产生作用。

7.有以下程序()

main()

char*p[10]="abc","aabdfg","dcdbe","abbd","cd";

printf("%d/n",strlen(p[4]));

执行后输出结果是

A.2B.3

C.4D.5

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

[解析]输出的数据是第五个字符串的字符个数。

p[4]传递给函数strlen()的址第五个字符串的首地址。

8.C语言早期规定建立文件缓冲区采用的形式是()

A.缓冲文件系统B.非缓冲文件系统

C.分页文件系统D.A&B

(分数:

2.00)

 A.

 B.

 C.

 D. √

解析:

9.当C的值不为0时,在下列选项中能正确将C的值赋给变量a和b的是()

A.c=a=bB.(a=c)||(b=c)

C.(a=c)&&(b=c)D.a=c=b

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

[解析]因表达式"(a=c)"和"(b=c)"的值分别是a和b的值(a,b都不为0)。

当获得"a=c"不为0的判定后,表达式"(a=c)||(b=c)"中的"(b=c)"将不会被执行。

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

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.

解析:

11.运算符优先级符合由高到低排列的一组是()

A.+、!

=、&&、=B.&&、!

=、+、=

C.!

=、+、=、&&D.&&、=、!

=、+

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

[解析]运算符的优先级由高到低为:

算术运算符、关系运算府、双目逻辑运算符、赋值运算符,故本题选A。

12.设int*p[4];,则标识符p是()

A.整型数组名B.指针数组名

C.指针函数名D.指向整型变量的指针

(分数:

2.00)

 A.

 B. √

 C.

 D.

解析:

[解析]指针数组的定义格式为:

数据类型*指针数组名[长度],…其中,指针数组名是标识符,前面必须有“*”号,故本题选B。

13.若当前文件目录为C:

/tc,在C语句中下列能表示文件tc.c的是

A.tc.cB.C:

tc/tc.c

C.C/tc/tc.cD.C/tc.c

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

14.下列语句中,正确的是()

A.typedefv1int;B.typedefv2=int;

C.typedefintv3;D.typedefint=v4;

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

15.设inta[2]=1,2,*p=a;,则*P是()

A.元素a[0]的值B.元素a[0]的地址

C.元素a[1]的值D.元素a[1]的地址

(分数:

2.00)

 A. √

 B.

 C.

 D.

解析:

[解析]*p、*(p+0)、p[0]均相当于a[0]的值。

二、填空题(总题数:

10,分数:

20.00)

16.设inta=1,b=2,m=2,n=2;,执行表达式(m=a<b)||++n后,n的值是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

2)

解析:

17.设floatx=23.65;,则执行语句printf("%d/n",(int)(x+0.5));后输出结果是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

24)

解析:

18.用来定义寄存器类型变量的C语言保留字是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

register)

解析:

19.设

intx=5;

x+==x-=x*x;

则x的值是______。

(分数:

2.00)

填空项1:

__________________ (正确答案:

-40)

解析:

20.设charw;intx;floaty;doublez;,则表达式w*x+z-y的值的类型是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

double(或双精度))

解析:

21.设intx=3;,执行语句printf((x%2)?

("**%d/n"):

("##%d/n"),x);后,输出结果是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

**3)

解析:

22.设inta,b,c;则执行a=(b=3,c=5,b=10);后变量a的值是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

10)

解析:

23.设inta=12;,语句printf("%d/n",(a/3,a%3,a/10>0));的输出结果是1。

(分数:

2.00)

填空项1:

__________________ (正确答案:

1)

解析:

24.1是C语言中唯一的一个三目运算符,它是由两个符号组成。

(分数:

2.00)

填空项1:

__________________ (正确答案:

条件运算符)

解析:

25.C语言标识符的第一个字符只能字母或1

(分数:

2.00)

填空项1:

__________________ (正确答案:

下划线)

解析:

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

4,分数:

16.00)

26.main()

inta[3][4]=1,3,5,7,12,14,16,18,9,6,4,2,j,k,m,n,x;x=m=n=0;

for(j=2;j>-1;j--)

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

if(x<a[j][k])

x=a[j][k],m=j,n=k;

printf("a[%d][%d]=%d/n",m,n,x);

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(a[1][3]=18)

解析:

27.#include<stdio.h>

main()

inti,j,row,col,max;

inta[3][4]=1,2,3,4,,10,4,20,6,,0,-1,-3,-5,;

max=a[0][0];

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

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

if(a[i][j]>max)

max=a[i][j];row=i;col=j;)

printf("max=%d,row=%d,col=%d/n",max,row,col);

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(max=20,row=1,col=2)

解析:

[解析]

#include<stdio.h>

main()

{inti,j,row,col,max;

inta[3][4]={{1,2,3,4,},{10,4,20,6,},{0,-1,-3,-5,}};/*初始化数组a[3][4],没有初始化的元素默认为"0"*/

max=a[0][0];

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

for(j-0;j<4;j++)

if(a[i][j]>max)

{max=a[i][j];row=i;col=j;}/*用每个元素和max对比,比max大的将其值赋于max并记录其横、纵两个下标的值*/

printf("max=%d,row=%d,col=%d/n",max,row,col);

}

28.#include<stdio.h>

main()

char*a="12134211";

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;k<=strlen(a);k++)

switch(*a++)

default:

v4++;

case'1':

v1++;

case'3':

v3++;

case'2':

v2++;)

printf("v1=%d,v2=%d,v3=%d,v4=%d/n",v1,v2,v3,v4);

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(v1=3,v2=5,v3=4,v4=1

解折:

#include<stdio.h>

main3()

{char*a="12131211";

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;k<strlen(a);k++)/*,循环被终止的条件是k的值大于字符串a的长度8*/

switch(*a++)/*选择的条件是数组a的元素,并且a作为于指针变量有一个自增1运算*/

{default:

v4++;

case'1':

v1++;

case'3':

v3++;

case'2':

v2++}/*因没有break语句,从符介条什的语句开始,每一行case语句都会被执行*/

printf("vt=%d,v2=%d,v3=%d,v4=%d/n",v1,v2,v3,v4);

})

解析:

29.intfm(inta,intb)

if(b==1)returna;

elsereturna+fm(a,b-1);

main()

printf("%d/n",fm(4,3));

(分数:

4.00)

__________________________________________________________________________________________

正确答案:

(12)

解析:

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

3,分数:

18.00)

30.求f(x[0,10])的累加和,其中f(x)=2x+1。

#include<stdio.h>

intF(intx)

return______;)/*第一空*/

intSumFun(intn)

intx,s=0:

for(x=0;x<n;x++)______;/*第二空*/

returns;

main()

printf("Thesum=%d/n",______);/*第三空*/

(分数:

6.00)

填空项1:

__________________ (正确答案:

x*x+1/*笫一空。

此为函数式"f(x)=2x+1的C语言表达式*/

s+-=F(x)/*第二空。

求函数式"f(x)"的累加*/

SumFum(10)/*第三空。

调用函数"StunFun()求累加值"*/)

解析:

31.以下程序用来统计从终端输入的字符中大写字母的个数。

以"$"作为输入结束标记。

#include<stdio.h>

#include<ctypc.h>

main()

intnum[126],i;charc;

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

num[i]=0;

while((______)!

='$')/*第一空*/

if(isupper(c))num[c-65]+=1;

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

if(______)/*第二空*/

printf("%c:

%d/n",______,num[i]);/*第三空*/

(分数:

6.00)

填空项1:

__________________ (正确答案:

c=getchar()/*第一空。

得到从键盘输入的值,并判断是不是结束标志"$"*/

num[i]/*第二空。

判断用以记录个数的数组元素是否为0,如为0则不输出*/

i+65/*第三空。

从语句"num[c-65]+=1;"可知数组对字符的记录是通过下标和字符的ASCⅡ值之间的关系进行的。

故此处应填上与之相应的换算关系*/)

解析:

32.根据迭代公式

,求a的平方根(精度要求|x1-x0|<10-6)。

#defineEPS1E-6

#include______/*第一空*/

voidmain()

floata,x0,x1=1.0;

scanf("%f",&a);

do

x0=x1;

x1=______;/*第二空*/

while(fabs(x1-x0)>=______);/*第三空*/

printf("sqrt=%.6f/n|",x1);

(分数:

6.00)

填空项1:

__________________ (正确答案:

第一空:

<math.h>(或"math.h")

第二空:

(x0+a/x0)/2

第三空:

EPS(或1E-6))

解析:

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

2,分数:

16.00)

33.输入一个整数n(n<10),如果n=3,则输出

1

222

33333

222

1

以此类推。

(分数:

8.00)

__________________________________________________________________________________________

正确答案:

(#include<stdio>

#include<stdlib.h>

main()

{

intn,i,s=1,k;

scanf("%d",&n);

if(n>10)exit(0);/*判定输入变量值是否超过10,如超过则自动终止程序运行*/

k=2*n-1;/*确定输出最长行输出的数字个数*/

while(k!

=0)/*确定输出模式,并循环输出*/

{

for(i=0;i<n-1;i++)primf("");

for(i=0;i<2*s-1;i++)printf("%d",s);

printf("/n");

if(s<k){--n;++s;--k;}/*当s<k时输出为增量形式输出*/

else{++n;--s;--k;}/*当s>k时输出为减量形式输出*/

}

})

解析:

34.编写程序,输入一个3×4的矩阵和一个4×3的矩阵,分别存入数组a和b,然后求它们的乘积存入数组c,输出数组c中的矩阵。

矩阵中的数据均为整型。

(分数:

8.00)

__________________________________________________________________________________________

正确答案:

(main()

{inta[3][4],b[4][3],c[3][3],i,j,k;

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

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

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

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

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

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

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

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

{c[i][j]=0;

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

c[i][j]+=a[i][k]*b[k][j];}

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

{printf("/n");

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

printf("%10d",c[i][j]);

})

解析:

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

当前位置:首页 > 法律文书 > 调解书

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

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