全国2003年1月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
第一部分选择题
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有
一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
1. | 属于 C 语言基本数据类型的是 () | ) | |
2. | A. | 指针型B.无符号整型 | |
C.数组型 | D.结构型 | ||
C语言的长整型数值在计算机中占用的字节个数是 | |||
3. | A. | 1B.2 | |
C.3 | D.4 | ||
C语言中,〃 \x3d〃在内存中占用的字节数是( A. 1B.2 C.4 D.5 设int x;则执行printf(“ %x\n〃,〜xAx);的结果是( | |||
4. | |||
5. | A. | 0B.1 | |
C.ff | D.ffff | ||
对于 while 语句,错.误.的.说法是 ( |
A.用条件控制循环体的执行次数
B.循环体至少要执行一次
C.循环体有可能一次也不执行
D.循环体中可以包含若干条语句
6.设inta=9,b=20 ;贝9printf(〃%d,%d\n〃,a--,--b);的输出结果是()
A.9, 19 | B.9, 20 |
|
C.10, 19 | D.10, 20 | |
7. 执行下列语句 | ||
int a=8,b=7,c=6; |
|
if(a<b)if(b>c){a=c;c=b;}
printf(〃%d,%d,%d\n“,a,b,c);
后输出的结果是 ( | ) | ) |
A.6, 7, 7 | B.6, 7, 8 | |
C.8, 7, 6 | D.8, 7, 8 | |
8.设 static char x[ ]= 〃 12345〃 ,y[ ]={ ' T ,' 2 : 3 ,' 4' ,' 5',‘ \0‘ };那么( |
A.x数组的长度等于y数组的长度
B.x数组的长度大于y数组的长度
C.x数组的长度少于 | y 数组的长度 |
D.x数组与y数组的存储区域相同
9. | 设 int i,x[3][3]={1,2,3,4,5,6,7,8,9} | ; |
则下面语句
for(i=0;i<3;i++)
printf(〃 %d〃,x[i][2-i]); |
10.设intb[ ]={1,2,3,4} ,y,*p=b;
则执行语句 y=*p++ ;之后,变量 y 的值为 ( | ) | ( | ) | |||
A.1 | B.2 | |||||
C.3 | D.4 | |||||
11.设int a,*p ;则语句 | p=&a; 中的运算符“ &”的含义是 ( | ) | ||||
A.位与运算 | B.逻辑与运算 | |||||
C.取指针内容 | D.取变量地址 | |||||
12. 若函数能被其它编译单位引用,那么函数定义时的存储类型应选用 | ||||||
A.auto | B.static | |||||
C.extern | D.register | |||||
13. 下面函数定义有错.误.的.是 ( | ) |
A.f1(x1,x2) | B. | f1(x1,x2) int x1;int x2; | { 函数体 } |
int x1,x2; | { 函数体 } | ||
{ 函数体 } | D.f1(int x1,int x2) | ||
C.f1(int x1,x2) | |||
{ 函数体 } | 14. | ||
C语言中计算a3正确的表达是() |
16.设有定义:unionu{int a[4];float b[3]};
A.aA3 | B. | pow(a,3) | |||
C. | a**3 | D. | power(a,3) | ||
15. 下列定义正确的是 ( | ) | B. | enum t{1,2}x; | ||
A.anum t={a,b}x; | |||||
C.anum {' + | ,' - ' }x; | D.enum t{a,b}x; |
charc[16];}aa;
则printf(“%d\n“,sizeof(aa));的输出是( )
A.32 B.16
C. 12 D.8
17.数据-35.78在文本文件中占用的字节个数是( )
A.4
C.
B.5
6 D.8
18.在下列有关宏替换的叙述中,正确的说法是
A.宏替换占用运行时间
B.宏名有类型
C.带参数的宏替换和函数等价
D.宏替换只是字符替换
19.下列程序的运行结果是( )
#define A 5
#define B A+1 main( )
{inta;
a=B;
printf(“%d\n“a--);
}
A.6 | B.5 |
|
C.4 | D. 出错 | |
20 .为了向二进制文件尾部增加数据,打开文件的方式应采用 ( ) |
A.〃ab〃 B.〃rb+〃
C.〃wb〃 D.〃wb+〃
第二部分非选择题
二、填空题(本大题共10小题,每小题2分,共20分)
21.设inty;执行表达式(y=4)||(y=5)||(y=6)后,y的值是________。
22. 设 char ch二=A 贝U printf( 〃 %c〃,(ch>= = A '
&&ch<= ' Z ' )?ch+32:ch);的值是
23. 结构化程序设计的三种基本结构是:选择结构、循环结构和 __________
24. 下列程序
int x=3; do{printf( 〃 %d〃 ,--x);}while(!x);
循环执行的次数是 ______ 。
25. 在C语言中,一个二维数组可以看成若干个 _________数组。
26. 设 int a[3][4]={{1,3,5,7},{2,4,6,8}}; 则*(*a+1)的值为_________。
27. 若函数定义为
int data( )
{ float x=9.9; return(x);
}
贝函数返回的值是 _______。
28. 设 struct student
{int no;char name[12];
float score[3];
{s1,*p=&s1;.
用指针变量p给s1的成员no赋值1234的方法是______________o
29. 判断文本文件是否结束时使用的符号常量30. 设有一个名为〃 myfile.c 〃的C程序,
EOF的值是________o
其主函数为 mian(int argc,char *argv[ ]) 。如果在执行时,输入的命令行为
myfile aa bb /
则形式参数 argc 的值是 ______。
三、程序分析题(本大题共5小题,每小题5分,共25分)阅读下列程序,将输出结果写到各题右侧
的空白处
31.fun(int x)
{
inty=0;
staticint z=3;
z++;++y;
return(x+y+z);
}
main()
{
intI,x=2;
for(i=0;i<2;i++)
printf(〃%5d〃,fun(x++));
}
32.main( )
{
ints=0,i;
for(i=1;;i++)
{
if(s>50)break;
} if(i%2==0)s+=i;
} printf(〃i=%d,s=%d\n〃,i,s);
33.gcd(int m,int n)
{if(m==n)return m;
elseif(m>n) return gcd(m-n,n);
elsereturn gcd(m,n-m);
}
main()
{
printf(〃Gcd=%d\n〃,gcd(24,36));
}
34.# include<stdio.h>
main()
{int i=0;
charc,s[]=" SABC";
while(c=s[i])
{switch(c)
{
case'A':i++;break;
case'B':++i;
default:putchar(c);i++;
}
putchar(‘*');
}
}
35.inta1=300,a2=400;
main()
{inta3=100,a4=200;
sub1(a3,a4);
sub1(a1,a2);
printf(〃%d,%d,%d,%d\n“,a1,a2,a3,a4);
}
sub1(intx,int y)
{a1=x;
x=y;
y=a1;
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36.将十个整数输入数组,求出其平均值并输出。
main()
{inti,a[10],sum=0,*p= _____; /*第一空*/
{scanf( 〃%d“,p);sum+=___; for(i=0;i<10;i++)
printf(“%8.2f\n“,____); /*第三空*/
}
37.输入一个无符号整数后求出它的各位数之和并输出
例如若输入123,则将各位之和6(即1+2+3)输出。
______f(num) /*第一空*/
unsig ned int num;
{un sig ned int k=0;
do
{k+= _____; /*第二空*/
num/=10;
}while( nu m);
______; /*第三空*/
}
mai n() | |
scanf(“%d〃,&n);
printf(〃%u\n〃,f(n));
}
38.为数组输入数据,逆序置换后输出。(逆序置换是指:数组的首元素和末元素置换,第二
个元素和倒数第二个元素置换,.....)
#define N 8
main( )
{int i,j,t,a[N];
for(i=0;i<N,i++)scanf(〃%d〃,a+i);
i=0;j=N-1;
while(i<j)
} | { t=*(a+i); _______; | /* 第一空 */ | |
_____=t; | /* 第二空 */ | ||
i++; _____; | /* 第三空 */ | ||
} |
| ||
for(i=0;i<N;i++)printf( 〃 %5d〃,*(a+i)); |
五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。
39.将100个整数输入数组后按每行 10个数输出。
40.计算e=1+ -1丄的值并输出(设n=20)。
1! | 2! | n! |
41.生成Fibonacci数列的前20项并输出,其中 1 当i0
fi=1 当i2
fii fi2 当i2