全国2009年1月高等教育自学考试高级语言程序设计(一)考试试题 下载本文

全国2009年1月高等教育自学考试高级语言程序设计(一)试题

一、单项选择题(本大题共15小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1. 设int a,b;,则表达式(b=2, a=5, b++, a+b)的值是( ) A. 2 B. 5 C. 7 D. 8 2. 设int a=7; float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是(A. 2.75 B. 3.5 C. 2.5 D. 0.0

3. 设char cl; , 则cl中为小写英文字母字符的正确表达式为( )

A. ’a’<=c1=’z’

B. (cl>=’a’)&&(cl<=’z’) C. (cl>=a)&&(c1<=z)

D. (’a’<=c1)| |(’z’>=c1)

4. 一维数组a的正确说明语句为( ) A. int a(10); B. int n=10, a[n]; C. int n;

D. #define SIZE 10 scanf(″%d″,&n); int a[SIZE]; int a[n];

5. 已知字符’A’的ASCII码值是65,且char cl=’A’, c2=’D’;

则执行语句printf(″%d,%d\\n″,cl,c2-2);后的输出结果是( ) A. A, D B. A, B C. 65, 68

D. 65, 66 6. 正确的条件语句为( ) A. if((a=b;)>0)t=a; B. if((a=b)>0)then t=a; C. if(a>b)t=a; D. if(a

int x=l, y=2;x=x+y;y=x-y;x=x-y; 则执行后x和y的值分别为( ) A. 1和2 B. 2和2 C. 2和1

D. 1和1

8. 设int k,a,b;unsigned long w=5;double x=1.42;

则不.

符合类型要求的表达式是( ) A. x%(-3) B. w+=2

C. k=(a=2,b=3) D. a+=(b=4)*(a=3) 9. 设int a=3,b=4;,则printf(‘‘%d,%d,”(a,b),(b,a));的输出结果是( A. 3,4 B. 4,3 C. 3,4,4,3

D. 4,3,3,4

10. 设int i=l, k=2;, 则错误..

的循环语句是( ) A. for(i=0,k=-1;i++,k++); B. for(;k-1;i++); C. for(i=1,k=4;k--;i++); D. for(;k--;);

11. 设typedef struct{int a;char s[10];} TYPE;

TYPE u1;

)则printf(‘‘%d\\n”,sizeof(u1));的输出结果是( ) A. 2 C. 14

A. strcpy(s1, “string1”); C. strcpy(“string2”,s2); A. char a[10]={“string”}; C. char a={“string”}; A. break C. exit A. 软盘 C. 显示器

B. 12 D. 16

B. strcpy(s4, “string2”); D. strcpy(s3, “string1”); B. int a[5]={0,1,2,3,4,5}; D. int a[ ]={x,y,z}; B. continue D. return B. 硬盘 D. 键盘

12. 设char sl[ ]=“string1”,s2[8], *s3, *s4=“string2”;,则对系统函数strcpy的错误调用是( ) ..

13. 正确的数组定义及初始化的是( )

14. 在循环体中用来强制继续循环的语句是( )

15. 在C语言中,标准的输入设备stdin是指( )

二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。

16.设有宏定义#define X 10-4,则printf(“%d\\n”,6*X);的输出结果是___________。 17.设double x:,则表达式x=5,(x+5)/2的值是___________。 18.能正确表述“2

19.设有循环语句for(i=-1;i<=5;i++)i++;,则其循环体执行的次数是___________。 20.调用系统函数strcmp(),必须在程序的开头写上一条文件包含命令是___________。

21.设char s[15]=(“programming”);,则printf(“%d\\n”,strlen(s));的结果是___________。 22.设float a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。 23.设char a[20]={‘‘Switch”},*p=a:,则*(p+2)的值是___________。

24.在函数间传递数据时,函数的形参和调用时的实参都是数组,传递方式为___________。 25.若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是___________。 三、程序分析题(本大题共4小题,每小题4分,共16分) 阅读下列程序,将输出结果写到各题右侧的空白处。 26.main()

{ int x=1,a=0,b=0; switch(x) {

case 0: a++; break; case l: b++;

case 2: a++; b++; break; case 3: a++; b++; }

printf(″a=%d,b=%d\\n″,a,b); )

27.main()

{ int a=10,b=20,*p1=&a,*p2=&b; *p1=20;*p2=40;

if(*p2>*p1)*p1=*p2;

printf(″a=%d,b=%d\\n″,a,b);

} 28.f(int b) { static int y=3; return(b+y++); } main() { int a=2,i,k; for(i=0;i<2;i++)

printf(″%d\\n″,f(a++)); }

29. int funs(int n)

{ if(n= =1 ||n= =2) return 2; else return n+funs(n-1); } main() { int x=4;

printf(″S=%d\\n″,funs(x)); }

四、程序填充题(本大题共3小题,每小题6分,共18分) 请将下列程序横线处缺少的部分补上,使其能正确运行。 30. 从键盘输入10个整数,用“冒泡排序法”由小到大进行排序。 #define N 10 main() { int i,j,t,a[N];

for(i=0;i

for(j=N-1;j>=i+1;______ ) /*第一空*/ if(a[j]

{ t=a[j];________;a[j-1]=t;} /*第二空*/

for(i=0;i

31. 统计文本文件file.dat的行数(提示:以’\\n’作为每行的结束)。 #include #include main()

{ int lines=_________; /*第一空*/ char ch; FILE *fp;

fp=fopen(″file.dat″,″r″);

while(_______) /*第二空*/ { ch=fgetc(fp);

if (ch _____ ’\\n’) lines++: /*第三空*/ }

printf(″Lines=%d\\n″,lines);