高级语言程序设计自考题8.docx
- 文档编号:1432753
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:16
- 大小:20.34KB
高级语言程序设计自考题8.docx
《高级语言程序设计自考题8.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计自考题8.docx(16页珍藏版)》请在冰点文库上搜索。
高级语言程序设计自考题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]);
})
解析:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 考题