欢迎您访问重庆自考网! 今天是 登录注册 | 免费课程 | 学习中心

重庆自考网

自考热线
当前位置: 网站首页 > 历年真题 >

全国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)高级语言程序设计(一)试题参考答案

重庆自考网声明:
(一) 由于各方面情况的调整与变化,本网所提供的考试信息仅供参考,敬请以权威部门公布的正式信息为准。
(二) 本网注明来源为其他媒体的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如有内容、版权等问题请与本网联系。联系方式:邮件 2293429207@qq.com
自考网校为您量体裁衣,制定个性化网上辅导课程,课程免费试听!
以年份查找历年真题
2018年   4月  10月 
2017年   4月  10月 
2016年   1月  4月  7月  10月 
2015年   1月  4月  7月  10月 
2014年   1月  4月  7月  10月 
2013年   1月  4月  7月  10月 
2012年   1月  4月  7月  10月 
2011年   1月  4月  7月  10月 
2010年   1月  4月  7月  10月 
2009年   1月  4月  7月  10月 
2008年   1月  4月  7月  10月 
2007年   1月  4月  7月  10月 
2006年   1月  4月  7月  10月 
2005年   1月  4月  7月  10月 
2004年   1月  4月  7月  10月 
2003年   1月  4月  7月  10月 
2002年   1月  4月  7月  10月 
2001年   4月  10月 
2000年   4月  10月 
重庆自考网微信群



重庆自考微信交流群

(扫一扫加入)