欧阳老师 发表于 2017-11-20 09:51:43

电子科技大学17年11月《高级语言程序设计(C)》作业考核试题参考

学习中心/函授站_                                                

姓 名                               学 号                        

西安电子科技大学网络与继续教育学院
2017学年下学期
《高级语言程序设计(C)》期末考试试题
(综合大作业)
题号
一
二
三
四
五
总分

题分
40
10
10
20
20


得分








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

选择题(本题共20道小题,共40分。)
特别注意:请将本题选择的答案填在下表中,不填不计成绩
题号
1
2
3
4
5
6
7
8
9
10

答案











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

答案












1. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是
A)把x和y按从大到小排列             B)把x和y按从小到大排列
C)无确定结果                         D)交换x和y中的值

2. 下面程序的输出是
void prtv(int *x)
{ printf("%d\n", ++(*x));}
main()
{int a=25;
prtv(&a);}
A) 23         B) 24                   
C) 25         D) 26

3. int x=10, y=20, z=30;
if(x>y)z=x;   x=y;y=z;
以上语句执行后x, y, z的值是
A) x=10,y=20,z=30     B) x=20,y=30,z=30
C) x=20,y=30,z=10     D) x=20,y=30,z=20

4. 设有以下宏定义:
#define N 3
#define Y(n) ((N+1)*n)
则执行语句:z=2 *(N+Y(5+1))后,z的值为
A)出错    B)42   C)48      D)54

5. 逻辑运算符两侧运算对象的数据类型是()。
A) 只能是0或1
B) 只能是0或非0正数
C) 只能是整型或字符型数据
D) 可以是任何类型的数据


6. 当执行以下程序段时
x=-1;
do { x=x*x;}
while(!x);
A)循环体将执行一次         B)循环体将执行两次
C)循环体将执行无限次       D)系统将提示有语法错误


7.int x=3;
do
{    printf("%3d",x-=2);}
while(!(--x));
以上程序段的输出结果是
A) 1                 B) 3 0               C) 1-2         D) 死循环

8. main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
以上程序段的输出结果是
A)k=11,k=12,k=11           B)k=11,k=13,k=13          
C)k=11,k=013,k=0xb           D)k=11,k=13,k=b

9.以下程序的输出结果是(   )。
main()
{int num=0;
while(num<=2)
{ num++; printf(“%d\n”,num);}
}
A)1     B) 1     C) 1     D) 1
    2      2      2
    3      3
    4

10. 表示关系x≤y≤z的c语言表达式为
A)(X<=Y)&&(Y<=Z)
B)(X<=Y)AND(Y<=Z)
C)(X<=Y<=Z)
D)(X<=Y)&(Y<=Z)

11. 执行x=((5>1+2)&&2||((2*4<4)-!0))后,x的值为
A) -1     B) 0     C) 1     D) 5

12. 有以下程序
main()
{
char a[]="programming", b[]="language";
char *p1,*p2;
int i;
p1=a;p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))
printf("%c",*(p1+i));
}
输出结果是
A)gm   B)rg   C)or   D)ga

13. 以下程序的输出结果是
# include <stdio.h>
# include <string.h>
main()
{char str={'s','t','r','i','n','g'};
   printf("%d\n",strlen(str));
}
A) 6           B) 7           C) 11           D) 12

14. 运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为
main ( )
{
int m,n;
printf("Enter m,n:");
scanf("%d%d,&m,&n");
while(m!=n)
{
while(m>n) m-=n;
while(n>m) n-=m;
}
printf("m=%d\n",m);
}
A)m=3   B)m=2    C)m=1    D)m=0

15. char ch=’A’;
   ch=(ch>=‘A’&&ch<=‘Z’)?(ch+’a’-‘A’):ch;
表达式运算后,ch的值是
A) a     B) ‘a’     C) A     D) “a”


16. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A) k=*p1+*p2;     B) p2=k;     
C) p1=p2;        D) k=*p1*(*p2);

17. 若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(“%d,%d,%d\n”,u,v,w);
则输出结果是
A) 8,16,10    B) 10,10,10    C) 8,8,10    D) 8,10,10

18.能正确表示a≥10或a≤0的关系表达式是
A)a>=10 or a<=0               B)a>=10│a<=0
C)a>=10││a<=0                   D)a>=10 ││a<=0

19. main( ) {int x=1,a=0,b=0; switch(x)
{    case 0: b++;    case 1: a++;    case 2: a++;b++;    } printf(“a=%d,b=%d\n”,a,b); } 程序的输出结果是
A) a=2,b=1     B) a=1,b=1     C) a=1,b=0     D) a=2,b=2


20.以下说法中正确的是
   A) #define和printf都是C语句      
B) #define是C语句,而printf不是
   C) printf是C语句,但#define不是   
D) #define和printf都不是C语句


二、填空题(每空1分,共10分。)
1. 为表示关系:x≤y≤z ,应使用的C语言表达式是_____________。

2. C语言本身没有输入输出语句。其输入输出是由____________来完成。

3. 有函数调用fun1(x+y,(y,z),10,fun((x,y―1)));函数fun1有_______个参数。

4. C程序注释是由_________ 和________所界定的文字信息组成的。

5. 表达式x=x+1表示成增量表达式为___________。

6. while语句和do-while语句的区别是_______________________。

7. 结构化程序设计中的三种基本结构是_________、__________、___________。

三、判断题(本题共10道小题,共10分。)
1. 在不得已的情况下(例如提高程序运行效率),才使用goto语句( )
2. C程序的注释只能是一行()
3. 在有参函数中,形参在整个程序一开始执行时便分配内存单元( )
4. C语言不允许混合类型数据间进行运算()
5. 实参和与其对应的形参共占用一个存储单元( )
6. 在C程序中对用到的所有数据都必须指定其数据类型( )
7. 函数的定义和函数的调用均不可以嵌套( )
8. 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明( )
9. 在不同函数中可以使用相同名字的变量( )
10. if语句中的表达式不限于逻辑表达式,可以是任意的数值类型( )


四、程序分析题(用列表法列出关键变量在运行过程中的值)(本题3道小题,共20分)
1. (8分)分析程序,填出表中内容
#define   N   3
#define   M   3
select(inta,int*n)
{
inti,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a>a){ row=i; colum=j; }
*n= row;
return ( a);
}
main()
{ inta={9,11,23,6,1,15,9,17,20},max,n;
   max=select(a,&n);
   printf("max=%d,line=%d\n",max,n);
}



0
1
2

a
0
9




1





2





i
0
1
2

j
0
1
2
0
1
2
0
1
2

a
9









row
0









colum
0










2. (6分)列表分析下面程序的运行步骤和中间结果,给出最后的输出结果
#include <stdio.h>
main()
{        int i=5;
        char c="abcd";
        do
        {
          c=c;
        }while(――i>0);
        puts(c);
}

?
i
5
4
3
2
1
0

语句c=c
执行前
C
0







C
0






输出结果



3. (6分) 列表分析下面程序的功能
main( )
{inti,j;
   for(i=1;i<=4;i++)
    {for(j=1;j<=4-i;j++) printf(" ");
       for(j=1;j<=2*i-1;j++) printf("*");
       printf("\n");
    }
}

i
1
2
3
4

for j
4




printf
□□□




for j
2




printf
*





注:□表示空格

五、编程题(本题共2道小题,每题10,共20分。)
编程题要求:
(1)先给出伪代码,然后再写出源码,重要变量和语句要加注释;
(2)若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。

1. 编写一程序,求100之内的素数。   
2. 我们需要一个小程序,输入两个整数,输出这两个数的平方和与平方差,要求:
(1)主函数负责接收这两个整数
(2)将计算代码独立做成子函数math
(3)在主函数中调用math函数并输出结果到屏幕上




无忧答案网整理发布
页: [1]
查看完整版本: 电子科技大学17年11月《高级语言程序设计(C)》作业考核试题参考