欢迎您访问重庆自考网!  今天是
当前位置: 主页 > 历年真题 >

全国2011年1月自考(课程代码:00342)高级语言程序设计(一)试题参考答案

2018-06-12 13:21来源:重庆自考网
全国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);
return  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列的二维整型数组,输出其每一行的最小值。
 
 
 
参考答案:
一、单项选择题
1-5 CDADC  5-10 ABBAC  11-15 BACBD
二、填空题
16、1                               17、3
18、le                              19、6
20、1.0/(x+y)+sqrt(2*x*y)           21、28
22、10,4                            23、值传递
24、#include<math.h>                25、文本文件
三、程序分析题
26、%#
27、15,-5
28、6
29、30,10
四、程序填充题
30、a[j+1]、k、a[j]
31、c、f(1)或1、i
32、"r"、fin、ch>='0' && ch<='9'
五、程序设计题
33、/* 思路:输入两个数之后,使用if语句依次判断它们所属的象限 */
#include<stdio.h>
void main()
{
int x,y;
scanf("%d%d",&x,&y);  /* 输入x和y的值  */
if(x>0 && y>0) 
printf("A\n");  /* 属于第一象限  */
else if(x<0 && y>0)
printf("B\n");  /* 属于第二象限  */
else if(x<0 && y<0)
printf("C\n");  /* 属于第三象限  */
else if(x>0 && y<0)
printf("D\n");   /* 属于第四象限  */
else
printf("E\n");  /* 不属于任何象限  */
}
34、/* 思路:先用一个双重循环输入4行5列的数据。然后再用一个双重循环读取数组中的每一个元素,在读取每行数据时,先假设每行的第1个数为最小的,然后用该行的每个数与最小的比较,从而找出每行的最小值。 */
#include<stdio.h>
void main()
{
int i,j,a[4][5],min;
for(i=0;i<4;i++)  /* 输入4行5列的数据 */
{
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
{
min=a[i][0]; /* 假设每行的第1个数为当前最小的 */
for(j=1;j<5;j++) /* 依次读取每行的其他元素,如果比当前最小的值小,则更新min */
{
if(a[i][j]<min)
min=a[i][j];
}
printf("第%d行最小数为%d\n",i+1,min);
}
}
自考试题参考答案WORD文档:
全国2011年1月自考(课程代码:00342)高级语言程序设计(一)试题参考答案

上一篇:全国2010年1月自考(课程代码:00342)高级语言程序设计(一)试题参考答案

下一篇:全国2011年10月自考(课程代码:00342)高级语言程序设计(一)试题参考答案