二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。
16.设int a=2,b=3;float x=3.5,y=2.5;,表达式(float)(a+b)/2+(int)x%(int)y的值是______。 17.设int i;,语句for(i=l;i=10;i++)++i;循环的次数是______。 l8.数组名作为实参传给被调用的函数时,形参获得的是______。 19.设int x=9;,执行语句printf(\%d\\n\,x<<2);后的结果是______。
20.设char c[5]={'c','d','\\0','e','\\0'};,执行语句printf(\%s\\n”,c);后的结果是______。 21.设int a[2][3],p;,将数组a的最后一个元素赋值给变量P的正确语句是______。 22.字符串\在内存中占用的字节数是______。
23.设int x=l,y=1;,则执行表达式--x&&y++后,y的值是______。 24.函数的自我调用被称为______调用。
25.设char w;int x;float y;double z;,则表达式w*x+z-y的值的类型是______。 三、程序分析题(本大题共4小题,每小题4分,共1 6分) 阅读下列程序,将输出结果写到各题右侧的空白处。 26.
void main() {
int n=9;
if(n++ } 27. void fun(int x, int y, int z) { z=x*x+y*y; printf(\ } void main() { int a=31; fun(5,2,a); printf(\ } 28. void main() 第 36 页 { int a[]={O,9,8,7,6,5,4,3,2,1},*p=a; printf(\%d,%d\n\,*p+9,*(p+9)); } 29. func(int a) { static int m=O; m+=a; printf(\%d\\n\,m); } void main() { int k=4; func(k);func(k); } 四、程序填充题(本大题共3小题,每小题6分,共18分) 请将下列程序横线处缺少的部分补上,使其能正确运行。 30.求数组a的所有元素之和。 #define N 3 void main() { int i,j,sum=0; int a[N][N]={2,4,6,8,10,12,14,16,18}; for(i=0;i } 31.键入一个字符串(不超过80个字符)存至字符数组s中并对各元素升序排序。 #include int i,j,len; char s[81],t; gets(s); 第 37 页 puts(s); len=strlen(s); for(i=O;i for(j=i+1;j { t=s[i] s[i]=s[j]; ______; /*第三空*/ } puts(s); } 32.输入一个正整数,若是素数(或称质数)则输出“Yes”,否则输出“No”。 void main() { int i,n; scanf(\%d\,______); /*第一空*/ printf(\%d\,n); for(i=2;i if(n%i==O)______; /*第二空*/ if(______)printf(\\n\; /*第三空*/ else printf(”No\\n”); } 五、程序设计题(本大题共2小题,每小题8分,共16分) 33.从键盘输入一串字符(!作为结束标志),保存到文件“user.dat”中。 34.某幼儿园入园分班规定如下: ?若1~3岁进入小班,输出标志\??若4岁进入中班,输出标志\ ?若5~6岁进入大班,输出标志\??其它年龄不得入园,输出标志\'t enter\?输入某个孩子的年龄后,输出其分班情况(要求使用switch语句)。 第 38 页 2011年10月全国自考高级语言程序设计(一)参考答案 第 39 页 第 40 页