[离线作业] 2016年11月《高级语言程序设计(C)》作业考核试题答案

[复制链接]
发表于 2016-11-3 14:10:02 | 显示全部楼层 |阅读模式
学习中心/函授站_
                                                         
西安电子科技大学网络与继续教育学院
2016学年下学期
《高级语言程序设计(C)》期末考试试题
(综合大作业)
附件就是标准答案,需要的请自助下载
  
题号
  
总分
题分
40
21
22
17
得分





考试说明:
1、大作业于2016年10月20日下发,2016年11月5日交回;
2、考试必须独立完成,如发现抄袭、雷同均按零分计;
3、答案须手写完成,要求字迹工整、卷面干净。

一、选择题(每题2分,共40分)
注意:须将本题的答案填入下表,否则不计分数。
  
题号
  
1
2
3
4
5
6
7
8
9
10
答案











题号
11
12
13
14
15
16
17
18
19
20
答案










1、以下有4组用户标识符,其中合法的一组是
A.For   -sub  Case    B.4d   DO  Size
C.f2_G3   IF  abc     D.WORD   void  define
2、若有下面的程序片段:
int a[12]={0}, *p[3], **pp, i;
for(i=0; i<3; i++)
p=&a[i*4];
pp=p;
则对数组元素的错误引用是
A.pp[0][1]  B.a[10]  C.p[3][1]  D.*(*(p+2)+2)
3、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A.a<>0   B.!a   C.a=0   D.a
4、若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
其中0≤i≤9, 则对a数组元素不正确的引用是
A.a[p-a]   B.*(&a)   C.p   D.a[10]
5、以下程序的输出结果是
      int main(   )
     {    int    x=10y=10I
           for(i=0x>8y=++i)
              printf("%d%d "x--y)
     }
A.10 1 9 2  B.9 8 7 6  C.10 9 9 0  D.10 10 9 1
6、下面程序的输出是
void prtv(int *x)
printf("%d\n", ++*x);}
int main()
{  int a=25;
prtv(&a);
return 0;
}
A.23   B.24   C.26   D.28
7、下面能正确进行字符串赋值操作的语句是
A.char s[5]={"ABCDE"};
B.char *s;s="ABCDEF";
C.char s[5]={'A'、'B'、'C'、'D'、'E'};
D.char *s; scanf("%s",s);
8、设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;t=++x||++y&&++z;
A.不定值   B.2   C.1   D.0
9、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A.k=*p1+*p2;  B.k=*p1 *(*p2);  C.p1=p2;  D.p2=k;
10、请读程序:
#include<stdio.h>
#define SUB(X,Y) (X)*Y
int main()
{
int a=3, b=4;
printf("%d", SUB(a++, b++));
return 0;
}
上面程序的输出结果是
A.12   B.15   C.16   D.20
11、sizeof(float)的结果是:
A.4   B.6   C.8   D.不确定
12、若执行下面的程序时从键盘上输入3和4,则输出是
inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);
A.14   B.16   C.18   D.20
13、以下程序的输出结果是
# include <stdio.h>
int main()
{
printf("%d\n",NULL);   
return 0;
}
A.不确定的(因变量无定义)  B.0  C.-1  D.1
14、读程序:
#include<stdio.h>
f(char *s)
{
char *p=s;
while( *p!='\0') p++;
return(p-s);
}
int main()
{
printf("%d\n",f("ABCDEF"));
   return 0;
}
上面程序的输出结果是
A.3   B.6   C.8   D.0
15、下面各语句行中,能正确进行赋字符串操作的语句行是
A.char st[4][5]={"ABCDE"}; B.chars[5]={'A','B','C','D','E'};
C.char *s; scanf("%s",s);  D.char *s;s="ABCDE";
16、若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A.*p=&a;       scanf("%ld",p);
B.p=(long *)malloc(8); scanf("%ld",p);
C.scanf("%ld",p=&a);
D.scanf("%ld",&a);
17、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是
A.p+1  B.a+1  C.a++  D.++p
18、下面程序的输出是
enumteam {my,your=4,his,her=his+10};
printf("%d%d %d %d\n",my,your,his,her);
A.0 1 2 3   B.0 4 0 10   C.0 4 5 15   D.1 4 5 15
19、以下程序输出结果是
intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
A.7   B.6   C.5   D.4
20、以下程序运行后,输出结果是 int d=1;
fun(int p)
{
int d=5;
d+=p++;
printf("%d",d);
}
int main()
{
int a=3;
fun(a);
d+=a++;
printf("%d\n",d);
return 0;
}
A.95   B.99   C.84   D.44
二、判断题(每题3分,共21分)
判断对错,并给出解析(判对错占1分,解析占2分)
1、虽然goto语句能提高程序运行效率,但为防止程序结构混乱应该禁用。(  )
2、条件表达式可以取代if语句,或者用if语句取代条件表达式。(  )
3、在C程序中对用到的所有数据都必须指定其数据类型。(  )
4、可以对字符型数组进行整体输入、输出。(  )
5、函数中的静态变量在函数每次调用时,都会重新设置初值。(  )
6、实参和与其对应的形参共占用一个存储单元。(  )
7、一个实型变量的值肯定是精确的。(  )
三、程序分析题(22分)
注:当有循环语句,若已经出了循环无对应的值时,可填“无”或“循环结束”。
1、(每空1分,共6分)
int main()
{  int i=5;
    char c[6]="abcd";
   do
   {
       c=c[i―1];
   }while(――i>0);
   puts(c);
}
  
i
  
5
4
3
2
1
0
c
’\0’





puts(c)输出

2、(每空1分,共6分)
int main( )
{
int a[3][3]={1,2,3,4,5,6,7,8,9},i,s=0;
for(i=0;i<=2;i++)
s=s+a
printf("s=%d\n",s);
}
  
i
  
0
1
2
3
a
1


s



循环结束
程序输出

3、(每空1分,共10分)
设n=24
voidprnt(int n, int aa[ ])
{
int i;
 for(i=1;i<=n; i++)
  {
printf("%6d",aa);       // (1)
if(!(i%5))printf("\n");   // (2)
}
printf("\n");
}
  
i
  
5
10
15
20
25
(1)printf执行次数
5




(2)printf执行次数





最后一行打印数据个数

四、编程题(17分)
编程题要求:
(1)先给出伪代码,然后再写出源码,重要变量和语句要加注释;
(2)若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。
1、(8分)从键盘输入一个一维数组,将这个数组逆序输出。
2、(9分)编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asdas zx67 asd mklo,子字符串为:as,则应输出6。

2016年11月考试《高级语言程序设计(C)》作业考核试题答案.rar

19.43 KB, 下载次数: 12, 下载积分: 贡献 1

售价: 50 金币  [记录]

标准答案

快速回复 返回顶部 返回列表