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