函数首部为long cmk(int m, int k)
41. 在一个二维数组(定义为int a[5][5];)中形成并按下列形式输出矩阵各元素的值。 1 0 0 0 0 2 1 0 0 0 3 2 1 0 0 4 3 2 1 0 5 4 3 2 1
2005年10月自考高级语言程序设计(一)试卷参考答案
一、l.D 2.A 3.C 4.D 5.B 6.A 7.A 8.C 9.A l0.C ll.C l2.B l3.D l4.D l5.C l6.B 17.D l8.A l9.B 20.A
二、21.return或返回语句 22.3
23.auto型或自动型 24.break 25.一3 26.10 27.100 28.本文件 29.4 30.值 三、31.103 102
32.2 5 9 14 33.LiHUfl:18 WangXin:25 LiuGu0:21 34.10 25
25 25 35.5523
第 26 页
37.第一空:&n 第二空;i>=0&&i<=9
第三空:i
40.(1)long fac(int n)
第 27 页
全国2010年10月高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.用户自定义标识符正确的是( ) A.3ab B.int C.fa2_a D.sin(x) 2.关于C语言程序描述正确的是( ) A.函数必须要有return语句 B.主函数必须位于程序的开头 C.程序中每行只能写一条语句 D.一个程序中只能有一个主函数 3.设int i=8,a,b;double x=1.42,y=5.2;,正确的表达式是( ) A.a+=(b=4)*(a=3) B.a=a*3=2 C.x%(-3)+y* *3 D.y=float(i) 4.设int a[][2]={1,2,3,4,5,6,7};,其中缺省的行长度的最小值是( A.2 B.3 C.4 D.5 5.设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( A.0和1 B.1和0 C.1和65 D.2和66 6.设typedef char STRING[255];STRING*s;,则s是( ) A.字符数组 B.字符变量 C.字符指针数组 D.字符指针变量 7.设int x=6;,执行语句X+=X-=X*X;后,x的值是( ) A.-60 B.0 C.6 D.36 8.设int i=3,j=3;,表达式i+++j的值是( ) A.6 B.7 C.8 D.9 9.下列为C语言保留字的是( ) A.real B.long C.pointer D.integer 10.设int a=2,b=6,c=8;,表达式(a,b),(c,10)的值是( ) A.2 B.6 C.8 D.10 11.变量定义并初始化正确的是( ) A.int a=l,*p=a; B.int a=2,p=*a; C.int a=3,p=&a; D.int a=4,*p=&a; 12.使用递归函数计算n!(n=0,1,2,,3,....)的是( ) A. fac(int n) B. fac(int n) {int i,f=- 1; { if(n==0) return 1; if(n==0‖n==1) return 1; else for(i=1 ;i<=n;i++) f*=i; else return n*fac(n-1); return f; }
第 28 页
) )
}
C. fac(int n) D. fac(int n) {int i=l,f=l; {int i=1,f=1; if(n==0) return l; if(n==0) return 1; else while(i<=n) f*=i++; else do { f*=i;}while (i++ A.stu.age B.p->age C.*p.age D.(*p).age 14.设int a[2]={1,2},*p=a;,则*p是( ) A.元素a[0]的值 B.元素a[0]的地址 C.元素a[1]的值 D.元素a[1]的地址 15.设int a[10];,对数组元素引用正确的是( ) A.a[10] B.a[′0′] C.a(6) D.a[10-10] 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 16.执行语句printf(\%d\\n\,strlen(\后,输出结果是_______。 17.设int a,b,c;,表达式a=2,b=5,b++,a+b的值是__________。 18.设int a=1,b=2,m=2,n=2;,执行表达式(m=a int x=3; do{ptintf(\%5d\,x-=2);}while(!(--x)); 21.执行语句for(i=10;i>0;i--,);后,变量i的值是___________。 22.设int x,y;,循环语句for(x=0,y=0;(y!=10)&&(x<5);x++);执行的次数是______。 23.若函数内定义变量的存储类别是static,该变量被称为___________静态变量。 24.设int x=3;,执行语句printf((x%2)?(\%d\n\:(\%d\\n\,x);后,输出结果是__________。 25.设char s[3]=\,*p=s;,则*(p+2)的值是_______。 三、程序分析题(本大题共4小题,每小题4分,共16分) 阅读下列程序,将输出结果写到各题右侧的空白处。 26. void main( ) { int i=0,j =0,k=0; while (i< 10) i++; while (j++ printf (\} 27. int a; 第 29 页 fun(int i) { a+=2*i; return a; } void main( ) { int a=10; printf(\} 28. void main( ) ( int a=0, b=0, d=0; char *s=\for(; *s!= ′\\0′; s++) switch(*s) { case ′a′: a++; break; case ′b′: b++; break; default: d++; } printf(\} 29. #define M 2<3 ? 5:6 void main( ) { int i=3, j, k; j=i+M; k=i+(M); printf (\} 四、程序填充题(本大题共3小题,每小题6分,共18分) 请将下列程序横线处缺少的部分补上,使其能正确运行。 30.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。 void main( ) { int i,j; int a[3][4],max, min, sum=0; for(i=0;i<3 ;i++) for(j =0 ;j <4 ;j ++) scanf(\第一空*/ max=min=a[0][0]; for(i=0;i<3 ;i++) for(j =0 ;j <4 ;j ++) { ______;/*第二空*/ 第 30 页