高级语言程序设计自考题2.docx
- 文档编号:4037595
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:13
- 大小:19.16KB
高级语言程序设计自考题2.docx
《高级语言程序设计自考题2.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计自考题2.docx(13页珍藏版)》请在冰豆网上搜索。
高级语言程序设计自考题2
高级语言程序设计自考题-2
(总分:
100.00,做题时间:
90分钟)
一、单项选择题(总题数:
15,分数:
30.00)
1.设inta=2,b=6,c=8;,表达式(a,b),(c,10)的值是()
A.2B.6
C.8D.10
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]逗号的同级结合性为自左向右,逗号表达式的值为最后一个表达式的值。
(a,b)的值为6,(c,10)的值为10,故整个表达式的值为10。
2.以下程序的运行结果是()
#include<stdio.h>
main()
inta[]=1,2,3,4,5,6,7,8,9,10,11,12;
int*p=&a[5],*q=NULL;
printf("%d%d/n",*p,*q);
A.运行后报错B.60
C.612D.55
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]
#include<stdio.h>
main()
{
inta[]={1,2,3,4,5,6,7,8,9,10,11,12};
int*p=&a[5],*q=NULL;
printf("%d%d/n",*P,*q);/*被置空的指针不能参与"*"运算*/
}
3.以下属于C语言保留字的是()
A.defineB.put
C.fcloseD.extern
(分数:
2.00)
A.
B.
C.
D. √
解析:
4.下面程序的功能是输出以下形式的金字塔图案:
[*]
#include<stdio.h>
main()
inti,j;
for(i=1;i<=4;i++)
for(j=1;j<=4-i;j++)printf("");
for(j=1;j<=______;j++)printf("*");
printf("/n");
在下划线处应填入的是()
A.iB.2*i-1
C.2*i+1D.i+2
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]应填入控制打印"*"的个数,其个数与行数i的关系是2*i-1的关系。
5.下列属于C语言保留字的是()
A.IntB.typedef
C.ENUMD.Union
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]本题主要考查的知识点为C语言的保留字。
[要点透析]C语言的保留字都是以小写字母组成的。
6.数组定义及初始化正确的是()
A.chara[5]=;B.inta[5]=0,1,2,3,4,5;
C.chara="string";D.chara[]='0','1','2','3','4','5';
(分数:
2.00)
A.
B.
C.
D. √
解析:
7.若定义inti,*p;使p指向i的赋值语句是()
A.p=&i;B.*p=&i;
C.*p=i;D.p=*&i;
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]本题主要考查的知识点为指针变量的赋值。
[要点透析]i是一个整型变量,p是一个指针变量,p中存放的只能是i在内存中的地址值。
8.执行以下程序段后,m的值是()
inta[2][3]=1,2,3,4,5,6);
intm,*ptr;
ptr=&a[0][0];
m=(*ptr)*(*(ptr+2))*(*(ptr+4));
A.15B.24
C.45D.不确定
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]"*ptr"、"*(ptr+2)"和"*(ptr+4)"的值分别是1、3和5,故答案选A。
9.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为()
A.0B.3
C.2D.5
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]本题主要考查的知识点为函数的参数。
[要点透析]此函数的实参只有两个,即两个逗号表达式(exp1,exp2)和(exp3,exp4,exp5)。
10.下列数据定义语句中正确的是()
A.structintx;x1B.structxxintx;;
C.structxxintx;D.structxxintxx1。
(分数:
2.00)
A.
B. √
C.
D.
解析:
11.包含用户类型符"FILE"的定义的头文件是()
A.string.hB.file.h
C.stdio.hD.stdlib.h
(分数:
2.00)
A.
B.
C. √
D.
解析:
12.以下是对二维数组的正确说明的是()
A.int[3][]B.floata(3,4)
C.doublea[1][4]D.floata(3)(4)
(分数:
2.00)
A.
B.
C. √
D.
解析:
13.设typedefdoubleDB;,则与DBu[5];的等价形式是()
A.doubledb[5];B.doubleDB[5];
C.doubleu;D.doubleu[5];
(分数:
2.00)
A.
B.
C.
D. √
解析:
14.若x=100;,则表达式x++>100?
x+20:
x+10的值是()
A.110B.120
C.130D.101
(分数:
2.00)
A.
B.
C.
D. √
解析:
15.有以下程序()
#include<stdio.h>
main()
unsignedchara,b;
a=4|3;
b=4&3;
printf("%d%d/n",a,b);
执行后输出结果是
A.70B.07
C.11D.430
(分数:
2.00)
A. √
B.
C.
D.
解析:
二、填空题(总题数:
10,分数:
20.00)
16.设intx=2,y=1;则表达式x---y的值是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
1)
解析:
17.设floata[6][4];则数组a中第一维下标的最大值是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
5)
解析:
18.如果形参是数组名,则传递方式称为"1"。
(分数:
2.00)
填空项1:
__________________ (正确答案:
地址传递方式)
解析:
19.设charstring[]="this_is_a_book!
";,则数组的长度应是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
16)
解析:
20.设inta,*p=&a;,通过指针变量p为a输入值的scanf语句是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
scanf("%d",P);)
解析:
21.设intx=-9,y;,则执行y=x>=0?
x:
-x;后y的值是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
9)
解析:
22.语句printf("a/bre/'hi/'y//bou/n");输出的结果是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
re'hi'you)
解析:
23.从计算机的角度来讲,1是计算机程序中解决问题的方法步骤。
(分数:
2.00)
填空项1:
__________________ (正确答案:
算法)
解析:
24.设intx=9;,执行语句printf("%d/n",x<<2);后的结果是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
36)
解析:
25.读字符串函数是1。
(分数:
2.00)
填空项1:
__________________ (正确答案:
fgets---|||________|||---)
解析:
三、程序分析题(总题数:
4,分数:
16.00)
26.输入数据:
2743<回车>。
#include<stdio.h>
main()
intc;
while((c=getchar())!
='n')
switch(c-'2')
case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
case4:
putchar(c+2);break;
printf("/n");
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
(66877)
解析:
[解析]
#include<stdio.h>
main()
{intc;
while((c=getchar())!
='/n//*从键盘获得字符*/
{switch(c-'2')/*开始进行分支选择*/
{case0:
case1:
putchar(c+4);/*如果此行语句被执行,则其下面的一行语句将被无条件执行。
*/
case2:
putchar(c+4);break;/*如果此行语句被执行,则仅执行这一行。
*/
case3:
putchar(c+3);/*同casel*/
case4:
putchar(c+2);break;}/*同case3*/
}
printf("/n");}
27.intf(intn)
staticintf=1;
f=f*n;
returnf;
main()
inti;
for(i=1;i<5;i++)
printf("%d,",f(i));
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
(1,2,6,24,)
解析:
28.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)
解析:
29.#include<stdio.h>
main()
charb[]="ABCDEFG";
char*chp=e&b[7];
while(--chp>&b[0])
putchar(*chp);
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
(GFEDCB)
解析:
[解析]
#include<stdio.h>
main()
{charb[]="ABCDEFG";
char*chp=&b[7];/*指针变量chp获得数组元素b[7]的值*/
while(--chp>&b[0)/*逆序输出*/
putchar(*chp);
}
四、程序填充题(总题数:
3,分数:
18.00)
30.下面程序通过函数average()计算数组中各元素的平均值。
floataverage(______,intn)/*第一空*/
inti;
floatavg=0.0;
for(i=0;i<n;i++)
avg=avg+______;/*第二空*/
avg=______;/*第三空*/
returnavg;
main()
inti,a[5]=2,4,6,8,10);
floatmean;
mean=average(a,5);
printf("%f/n",mean);
(分数:
6.00)
填空项1:
__________________ (正确答案:
int*pa/*第一空。
定义形参变量,main()函数调用average()函数的笫一个实参变量是指针变量,故此处应定义一个指针变量*/
pa[i]/*第二空。
将数组各个元素加;因函数调用采用地址传递参数的方式,故可以这样引用*/
avg/n/*第三空。
求平均值*/)
解析:
31.下列给定程序中,函数fun()的功能是:
读人一个字符串(长度<20),将该字符串中的所有字符按ASCⅡ码降序排序后输出。
#include<stdio.h>
voidfun(chart[])
charc;
inti,j;
for(i=0;______;i++)/*第一空*/
for(j=i+1;j<=strlen(t);j++)
if(______)/*第二空*/
c=t[j];
t[j]=t[i];
t[i]=c;
main()
chars[81];
printf("Pleaseenteracharacterstring:
/n");
gets(s);
printf("/n/nBeforesorting:
/n%s",s);
______;/*第三空*/
printf("/nAftersortingdecreasingly:
/n%s/n",s);
(分数:
6.00)
填空项1:
__________________ (正确答案:
i<=strlen(t)/*第一空。
设定循环上限,以减少不必要的比较束提高程序效率*/
t[i]<t[j]/*第二空。
如果t[i]内所包含的字符变量的ASCⅡ值小于t[j]内所包含的字符变量的ASCⅡ,则执行后面语句以交换其位置。
*/
fun(s)/*第三空。
对函数fun(s)进行调用进行排序,参数传递方式采用地址传递方式。
*/)
解析:
32.下面程序输出两个字符串对应位置相等的字符。
main()
chara[]="students",b[]="study";
inti=0;
while(a[i]!
='/0'&&______)
if(a[i]==b[i])printf("%c",______);
else
______;
(分数:
6.00)
填空项1:
__________________ (正确答案:
b[i]!
='/0'
a[i++]
i++)
解析:
五、程序设计题(总题数:
2,分数:
16.00)
33.在同一程序中,用三种循环语句分别显示1~9的平方值。
(分数:
8.00)
__________________________________________________________________________________________
正确答案:
(#include<stdio.h>
main()
{inti;
for(i=1;i<=9;i++)
printf("%d,",i*i);
printf("/n");
i=1;
while(i<=9)
{printf("%d,",i*i);i++;}
printf("in");
i=1;
do{printf("%d,",i*i);i++;}
while(i<=9);
})
解析:
34.
(1)编写一个计算梯形面积的函数。
函数头是:
floatarea(floatt,floatb,floath)其中变量t、b和h分别表示梯形的上底、下底和高。
(2)编写主函数从键盘输入梯形的上底、下底和高的值,调用上述函数输出梯形面积(保留小数点后两位)。
(分数:
8.00)
__________________________________________________________________________________________
正确答案:
(#include<stdio.b>
floatarea(floatt,floatb,floath)
{
return(t+b)*h*0.5;
}
main0
{floatt1,b1,h1;
scanf("%f%f%f",&t1,&b1,&h1);
printf("area=%7.2f/n",area(t1,b1,h1));
})
解析:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 考题