全国高等教育自学考试高级语言程序设计一考试试题Word文件下载.docx
《全国高等教育自学考试高级语言程序设计一考试试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《全国高等教育自学考试高级语言程序设计一考试试题Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
4.设longi=65539;
执行语句printf("%d",i);
后的输出结果是( )
A.-3B.3
C.65539D.数据不确定
5.设floatc,f;
将数学表达式C=
(F-32)能正确表示成C语言赋值表达式的是( )
A.c=5*(f-32)/9B.c=5/9(f-32)
C.c=5/9*(f-32)D.c=5/(9*(f-32))
6.设inti=10;
表达式30-i<
=i<
=9的值是( )
A.0B.1
C.9D.20
7.以下不能看作一条C语句的是( )
A.{;
}B.a=5,b=5,c=5;
C.if(x>
=0&
&
y=0);
D.if(x==0)a=5;
b=10;
8.在函数调用时,以下说法正确的是( )
A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里
9.设intx=7;
执行语句x=x<
<
2;
后,变量x的值是( )
A.1B.3
C.14D.28
10.执行语句printf("|%9.4f|\n",12345.67);
A.|2345.6700|B.|12345.6700|
C.|12345.670|D.|12345.67|
11.以下说法中正确的是( )
A.字符型变量可以存放字符串
B.递归调用是指函数调用自己
C.所有的外部函数只能在本文件中被调用
D.在循环体中break语句和continue语句的作用都是结束循环
12.设chars[6],*ps=s;
则正确的赋值语句是( )
A.s="12345";
B.*s="12345";
C.ps="12345";
D.*ps="12345";
13.设inta[]={1,2,3,4,5},*p=a;
则数组元素的正确表示是( )
A.a[2]B.&
(a+1)
C.a[5]D.&
p
14.对二维数组的正确定义是( )
A.inta[][]={1,2,3,4,5,6};
B.inta[2][]={1,2,3,4,5,6};
C.inta[][3]={1,2,3,4,5,6};
D.inta[2,3]={1,2,3,4,5,6};
15.字符数组s不能作为字符串使用的是( )
A.chars[]="happy";
B.chars[]={"happy"};
C.chars[6]={'h','a','p','p','y'};
D.chars[4]={'h','a','p','p','y'};
16.若定义函数:
fun(inta,floatb)
{returna+b;
}
则该函数的数据类型是( )
A.intB.void
C.floatD.不确定
17.设
structst
{inta;
floatb;
}s,*p=&
s;
则正确的引用是( )
A.(*).s.aB.(*p).a
18.设enumcolor{red,yellow=2,blue,white,black}r=white;
执行printf("%d",r);
C.3D.4
19.以下说法中错误的是( )
A.共用型数据中所有成员的首地址都是同一个
B.可以用已定义的共用型来定义数组或指针变量的类型
C.共用型数据中的成员可以是结构型,但不可以是共用型
D.用typedef定义新类型取代原有类型后,原类型仍可有效使用
20.设#defineL(x)2*3.14*x
则L(x)是( )
A.函数名B.函数调用
C.无参的宏名D.带参的宏名
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
21.设inta[10];
则数组a的首元素是__________________。
22.设inta=0,b=0,c;
则执行c=(a-=b-5),(a=b,b=3);
后变量c的值是__________________。
23.设inta=0,b=0,c=2,d=4;
则执行(c=a==b)||(d=b==a);
后变量d的值是__________________。
24.设inta[]={1,2,3,4,5,6,7,8},*s=a;
则*(s+1)的值是__________________。
25.设chars[]="apple";
则数组s的长度是__________________。
26.被调用函数执行结束时,此函数中定义的__________________类型的变量不被释放。
27.表达式的运算对象可以是常量、函数调用和__________________。
28.设intx;
则将x强制转换为双精度类型应写成__________________。
29.语句if(!
k)a=3;
中!
k与__________________等价。
30.函数调用时,若形参是一个指针变量,而对应的实参是一个数组名,则函数参数的传递方式是__________________传递。
三、程序分析题(本大题共5小题,每小题5分,共25分)
阅读下列程序,将输出结果写到各题右侧的空白处。
31.main()
{
inta[3][3]={{1},{2},{3}};
intb[3][3]={1,2,3};
printf("%5d",a[1][0]+b[0][1]);
printf("%5d\n",a[0][1]+b[1][0]);
}
32.inta=10;
structdata{inta,b;
}s;
main()
{intc;
s.a=20;
s.b=30;
c=f(s.a+s.b);
printf("%d,%d,%d\n",s.a,s.b,c);
f(intb)
printf("%d,%d\n",a,b);
return(a+b);
33.#include<
stdio.h>
fun()
{inty=1;
staticintz=4;
z++;
++y;
return(y*z);
{inti;
for(i=1;
i<
3;
i++)
printf("%5d\n",fun());
34.main()
{char*p,s[]="6543210";
for(p=s;
*p!
='\0';
)
{printf("%s\n",p);
p++;
if(*p!
='\0')p++;
elsebreak;
35.main()
longf();
printf("%5ld\n",f(5));
longf(intb)
if(b==1||b==2)return1;
elsereturnf(b-1)+f(b-2);
四、程序填充题(本大题共3小题,每小题6分,共18分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36.键入10个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。
intneg=0,pos=0,zero=0;
voidsele(intnum)
if(num>
0)neg++;
elseif(num<
0)pos++;
else______________;
/*第一空*/
inti,a[10];
for(i=0;
i<
10;
i++)
{
scanf("%d",&
a[i]);
printf("%5d",a[i]);
self(_________________);
/*第二空*/
printf("\nneg=%d,pos=%d,zero=%d\n",_______________);
/*第三空*/
37.输入一个学生的成绩(在0~100分之间,超出此范围显示错),进行五级评分并显示。
intscore;
scanf("%d",&
score);
printf("%d->
",score);
if(__________________)/*第一空*/
switch(___________________)/*第二空*/
case9:
case10:
printf("Excellent\n");
break;
case8:
printf("Good\n");
case7:
printf("Middle\n");
break;
case6:
printf("Pass\n");
_______________;
/*第三空*/
default:
printf("Nopass\n");
elseprintf("Inputerror!
\n");
38.键入一个字符串(换行作为结束标志),将该字符串分别写到文本文件(te.dat)和二进制文件(bi.dat)中。
#include<
stdio.h>
_______________;
/*第一空*/
charstr[80];
gets(str);
puts(str);
te=fopen("te.dat"_______________);
bi=fopen("bi.dat",_______________);
fputs(str,te);
fwrite(str,sizeof(str),1,bi);
fclose(te);
fclose(bi);
五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。
39.输入一个圆半径(r),计算并输出圆的面积(s)和周长(l).
40.计算当sum=1+
时,输出N的值。
41.用循环语句输出下列字母编排的三角形。
a
ab
abc
abcd
………
abcde………xyz