全国2011年1月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列运算符的操作数必须是整型的是( )
A./ B.! C.% D.=
2.可用于C语言用户标识符的是( )
A.void,define B.2c,DO C.For,-abc D.as_b3,_123
3.函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是( )
A.3 B.4 C.5 D.6
4.设int a=0,b=1,下列语句错误的是( )
A.a=b=10; B.a++; C.b+=a; D.(a+b)++;
5.能正确表达数学关系式0≤x<20的C语言表达式是( )
A.0<=x<20 B.x>=0||x<20 C.x>=0&&x<20 D.!(x<=0)&&x<20
6.正确的C语言字符常量是( )
A.‘\\’ B.‘65’ C.“A” D.‘/n’
7.设char s[ ]=“1234567”;,执行printf(“%d,%d\n”,strlen(s),sizeof(s));后的输出结果是( )
A.7,7 B.7,8 C.8,7 D.8,8
8.设int a[ ]={12,34,56,78},*p=a;,下列表达式的值为56的是( )
A.p[1+2] B.*(a+2) C.a[3] D.*(p+3)
9.对二维数组正确定义并初始化的是( )
A.int a[ ][3]={1,2,3,4,5,6>; B.int a[3][3]=(1,2,3,4,5,6);
C.int a[3][ ]={{l,2,3>,{4,5,6}}; D.int a[3][3]={a,b,c,d,e,f,g};
10.设double x=5.168;,执行printf(“%5.3f\n”,(int)(x*10+0.5)/10.0);后的输出结果是( )
A.5.218 B.5.210 C.5.200 D.5.168
11.关于函数,下列叙述正确的是( )
A.一个函数中可以定义其它的函数 B.C程序总是从main()函数开始执行
C.main()函数也可以被其它函数调用 D.一个C程序可以有多个main()函数
12.设char ch=‘a’;,执行printf(“%d,%c\n”,ch,ch+2);后的输出结果是( )
A.97,c B.97,99 C.a,c D.a,a+2
13.下列叙述正确的是( )
A.continue语句的作用是跳出循环体
B.while循环语句的循环体至少执行一次
C.do-while循环语句的循环体至少执行一次
D.switch语句中的每个case语句组必须含有break语句
14.设struct{int x;int y;}m[2]={7,3,2,1};,执行printf(“%d\n”,m[0].x/m[1].x*m[0].y);
后的输出结果是( )
A.10.5 B.9 C.8.0 D.7
15.设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( )
A.0 B.1 C.2 D.3
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
16.表达式3 !=6的值是 _______________。
17.设int a=15;,执行printf(“%d\n”,a>>2);后的输出结果是____________。
18.设char*str=“People”;,执行printf(“%s\n”,str+4);后的输出结果是____________。
19.执行下面程序段,输出“FIFA”的行数是____________。
int i,j;
for(i=0;i<5;i++)
for(j=1;j<i;j++)printf(“FIFA\n”);
20.的C语言表达式是____________。
21.设int year=2010,days;,执行
days=year%4==0&& year%100!=0 || year%400==0?29:28;后days的值是________。
22.设int x=10,y=3;,执行printf(“%d,%d\n",x--,++y);后的输出结果是_______。
23.在C语言中,形参和实参的传递方式分为地址传递和_______。
24.使用系统函数pow( )时,在程序开始应包含的预处理命令是_______。
25.在C语言中,文件分为二进制文件和_______。
三、程序分析题(本大题共4小题,每小题4分,共16分)
阅读下列程序,将输出结果写到各题右侧的空白处。
26.
#include<stdio.h>
void main()
{ int a=0,b=2,c=3;
switch (a)
{ case 0:switch (b==2)
{ case l:printf(“*”);break;
case 2: printf (“%”);break;
}
case 1: switch (c)
{ case l:printf(“$”);break;
case 2: printf (“&”);break;
default: printf (“#”);
}
}
printf (“\n”);
}
27.
# include<stdio.h>
void fun(int *a,int *b,int x,int y)
{ *a=x+y;*b=x-y;}
void main ()
{ int c=8,d=4;
fun (&c,&d,5,10);
printf(“%d,%d\n”,c,d);
}
28.
# include<stdio.h>
int fun (int x)
{ int p;
if(x==1) return 2;
else p=x-fun (x-2);
rerurnm p;
}
void main ()
{ printf(“%d\n”,fun (9));}
29.
# include<stdio.h>
int a=10;
void f()
{ int a=30;
printf (“%d,”,a);
}
void main()
{ f ();
printf (“%d\n”,a);
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
请将下列程序横线处缺少的部分补上,使其能正确运行。
30.将数组a中元素按下图循环左移一位并输出。
a[0] a[1] a[2] a[3] a[4]
执行前 |
1 |
2 |
3 |
4 |
5 |
执行后 |
2 |
3 |
4 |
5 |
1 |
# include <stdio.h>
void main ( )
{ int j,k,a[5]={1,2,3,4,5};
k=a[0];
for(j=0;j<5;j++)
a[j]=______;/*第一空*/
a[4]=______;/*第二空*/
for ( j=0;j<5;j++)
printf (“%5d’’,_______);/*第三空*/
printf (“\n’’);
}
31.计算并输出1!+2!+3!+4!+5!的值。
# include<stdio.h>
int f (int a)
{ static int c=1;
c=c*a;
return_____;/*第一空*/
}
void main ()
{ int i,k;
k=_________;/*第二空*/
for (i=2;i<=5;i++) k+=f(________);/*第三空*/
printf (“%d\n”,k);
}
32.将文本文件fin.dat中的数字字符找出并写入文本文件fnum.dat中。
#include<stdio.h>
void main ()
{
char ch;FILE*fin,*fnum;
fin=fopen (“fin.dat”,________);/*第一空*/
fnum=fopen (“fnum.dat”,“w’’);
while(!feof(_______))/*第二空*/
{
ch=fgetc(fin);
if(______)fputc (ch,fnum);/*第三空*/
}
fclose (fin);
fclose(fnum);
}
五、程序设计题(本大题共2小题,每小题8分,共16分)
33.从键盘输入代表平面上某点的横坐标x和纵坐标y,输出x和y的值并按下列要求输出相应的标志。
当x>0且y>0,属于第一象限,输出标志“A’’
当x<0且y>0,属于第二象限,输出标志“B”
当x<0且y<0,属于第三象限,输出标志“C”
当x>0且y<0,属于第四象限,输出标志“D”
当x=0或y=0,不属于任何象限,输出标志“E”
34.从键盘输入一个4行5列的二维整型数组,输出其每一行的最小值。
自考试题WORD文档下载地址: