1、2008 年下半年全国自考(高级语言程序设计)真题试卷及答案与解析一、单项选择题1 在一个 C 语言程序中( )(A)主函数只能有一个(B)主函数可以有多个(C)非主函数只能有一个(D)主函数和非主函数都可以有多个2 正确定义无符号整型变量 m 的语句是( )(A)int m;(B) unsigned int m;(C) signed int m;(D)unsigned signed m;3 不属于字符型常量的是( )(A)“s“ (B) 8(C) A(D)n4 设 intx=2, y=4;,值为非 0 的表达式是( )(A)1/x*y(B) 1/(x*y)(C) 1.0/x/y(D)1/x/
2、(double)y5 设 int a=2,b=5;,结果为 0 的表达式是( )(A)a%b(B) a(C) a=-a;(D)(-a)+;7 设 int a=1,b=2,c=3,d=4,f;,执行语句 f=(a!=b)?c+:d+;后 f 的值是( )(A)2(B) 3(C) 4(D)58 设 int m=5;,语句 while(m=0)printf(“%d“,m-=2);的循环体执行的次数是( )(A)0(B) 1(C) 2(D)无限9 下列运算符优先级最高的是( )(A)+=(B) ,(C) !(D)?:10 定义二维数组并初始化,正确的是( )(A)int a3=1,2,3,4,5,6
3、;(B) int a3=1,2, 3,4,5,6;(C) int a33=1,2,3 ,4,5,6;(D)int a=1,2,3,4,5,6 ;11 有关变量的叙述,正确的是( )(A)形式参数是全局变量(B) a 和 A 在 C 语言中是同一个变量(C)函数体内定义的变量为全局变量(D)在所有函数之外定义的变量为全局变量12 若定义的函数为 float*fun(),则函数的返回值是( )(A)float 型数据(B) void 型数据(C) float 型指针(D)void 型指针13 设 int a10,*p=a;,数组元素 a4的正确引用是( )(A)*(p+4)(B) p+4(C) *
4、p+4(D)a+414 合法的用户标识符是( )(A)default(B) #define(C) a+b(D)book15 使用系统函数 sqrt()时,应在程序开头写上的编译预处理命令是( )(A)#includestdio,h (B) #includestring,h(C) #includemath.h(D)#includestdlib.h 二、填空题16 赋值运算符的结合性是_。17 设 char ch;,判断 ch 为数学字符的逻辑表达式是_。18 设 typedef float REAL;REAL x=1 ;,表达式 x/2 的值是_。19 转义字符n的含义是_ 。20 设 int
5、a=12;,语句 printf(“%dn“,(a/3,a%3 ,a/100) ;的输出结果是_。21 函数中未指定存储类型的局部变量,其隐含的存储类型是_。22 若全局整型变量未初始化,则默认的初始值是_。23 设 int a,*p= for(pa=a+7; *pa!=0; pa+)putchar(*pa); putchar(n): 29 #includestdio.h #define N 6 void main() int aN=2,5,-6,4,-9,10 ,i; for(i=0;i N;i+) if(ai0)continue; printf(“%3d“,ai); printf(“n“):
6、 四、算法阅读题30 输入 100 名学生的出生月份,统计并输出每个月份过生日的学生人数。 #includestdio.h #define N 100 void main() int i,month; int birth13=0;/*birth1birth12 分别保存 112 月过生日的学生数*/ for(i=1;i =N;i+) scanf(“%d“,_); /*第一空*/ if(month=1&month =12)birthmonth+; for(i=1;_;i+) /*第二空*/ printf(“%d month_n“,i,birthi); /*第三空 */ 31 输入 n(n1),计
7、算 1+(1+2)+(1+2+3)+(1+2+n)的值。 void main() int i,n; long sum=0;long cal(int); scanf(“%d“,&n) ; for(i=1;i =n;i+)sum=sum+cal(_); /*第一空*/ printf(“1+(1+2)+(1+2+n)=%1dn“,sum); long cal(_) /*第二空*/ static long s=0; s=s+m: _;/*第三空*/ 32 将文件 data1.txt 的内容复制到文件 data2.txt 中。 #includestdio.h void main() char ch; F
8、ILE*f1,*f2; f1=fopen(“data1.txt“,“_“) ; /*第一空*/ f2=fopen(“data2.txt“,“w“); do _=fgetc(f1); /*第二空 */ fputc(ch,_); /*第三空 */ while(!feof(f1); fclose(f1);fclose(f2); 五、算法设计题33 输入 x 的值,按下列公式计算并输出 y 的值(保留两个小数)。34 输入 10 个整数到数组 a 中并输出,将数组各元素依次向后循环移动一个位置(如下图) ,输出移动后的数组 a。2008 年下半年全国自考(高级语言程序设计)真题试卷答案与解析一、单项选
9、择题1 【正确答案】 A2 【正确答案】 B3 【正确答案】 A4 【正确答案】 C5 【正确答案】 B6 【正确答案】 D7 【正确答案】 B8 【正确答案】 A9 【正确答案】 C10 【正确答案】 B11 【正确答案】 D12 【正确答案】 C13 【正确答案】 A14 【正确答案】 D15 【正确答案】 C二、填空题16 【正确答案】 自右向左(或右结合)17 【正确答案】 ch =0&ch =918 【正确答案】 0.519 【正确答案】 回车换行20 【正确答案】 121 【正确答案】 auto(或自动型)22 【正确答案】 023 【正确答案】 scanf(“%d“,P);24
10、【正确答案】 WWW25 【正确答案】 21三、解答题26 【正确答案】 227 【正确答案】 2028 【正确答案】 200829 【正确答案】 2 5 4 10四、算法阅读题30 【正确答案】 &month i=12(或 i13) %d31 【正确答案】 i int m retum s(或 retum(s)32 【正确答案】 r ch f2五、算法设计题33 【正确答案】 #includestdio.h #includemath.h void main() float x,y; scanf(“%f“, &x); if(x0)y=sqrt(2*x); else if(x0)y=1.0/(3*exp(x); else y=0; prinff(“y=%7.2fn“,y); 34 【正确答案】 #includestdio.h void main() int a10,i,temp ; for(i=0;i 10;i+) scanf(“%d“,&ai) ; printf(“%5d“,ai); printf(“n“); temp=a9; for(i=9;i 0;i-)ai=ai-1; a0=temp; for(i=0;i 10;i+)printf(“%5d“,ai); printf(“n“);
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1