【ZZJ网上考试系统 v10.1】本套软件使用权属于:郑州大学远程教育学院(学期:131)考试课程:6517.C语言程序设计(第3次考试)考试时间:120分钟考场:123.15.57.116考试日期:2013-10-16考号:130********姓名:曹光辉剩余时间:55:23保存交卷帮助
本卷共有3大题。
一、单项选择题(10道小题,共10分)
1、C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是(B):(1分)
A、有些不同类型的变量可以在一个表达式中运算
B、大写字母和小写字母的意义相同
C、在赋值表达式中赋值号(=)左边的变量和右边的值可
D、同一个运算符号在不同的场合可以有不同的含义
以是不同类型
2、对于16位系统中,C语言中整数 -8在内存中的存储形式是(D):(1分)
A、1111 1111 1111 1000
B、1000 0000 0000 0000
C、1000 0000 0000 1000
D、1111 1111 1111 0111
3、设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是(D)(1分)
A、把x和y按从大到小排列
B、把x和y按从小到大排列
C、x中为原来x和y的值的和
D、交换x和y中的值
4、在C语言中,不正确的常量是(B)(1分)
A、0xf6
B、0876
C、.5e-6
D、+3e+2
5、以下程序的输出结果是:main(){int x, y=0; for(x=1;x<10;x++) for(x=10;x<10;x++) y++; printf("%d\n",y);}A(1分)
A、0B、1
C、2
D、10
6、以下不合法的表达式是(C):(1分)
A、x=y=200;
B、5+(x=10);
C、5+x=10;
D、y+x==10;
7、以下程序运行后,main() {char *s="abcde"; s+=2; printf("%d\n",s); },输出结果是(D)(1分)
A、cde
B、字符c的ASCII码值
C、字符c的地址
D、值不确定
8、在以下关于C语言的叙述中,正确的说法是(B):(1分)
A、C语言比汇编语言快
B、C语言比FORTRAN语言快
C、C语言比FORTRAN语言和汇编语言都快
D、C语言比FORTRAN语言慢
9、已说明int a=256,执行语句printf(”%x” ,a);的结果是(A)(1分)
A、100
B、256
C、0ffe
D、00ff
10、以下程序的输出结果是:main(){int x; for(x=1;x<10;x++) for(x=10;x<10;x++); printf("%d\n",x);}B (1分)
A、11
B、10
C、12
D、9
二、简答题(6道小题,共30分)
1、如何理解指针?
(5分)
指针是C语言的精华部分,通过利用指针,能很好的利用内存资源,使其发挥最大的效率。有了指针技术,可以描述复杂的数据结构,对字符串的处理可以更灵活,对数组的处理更方便,使程序的书写简洁,高效。
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
2、C语言标识符的命名规则是什么?请举例说明。
(5分)
命名规则:以字母或下划线开始,由字母、数字或下划线组成的符号串。如abc,_a12等
3、你是如何理解C语言中的变量的?
(5分)
其值可以改变的量叫做变量。一个变量应该有一个名字(标识符),它表示内存中的某个存储单元,在该存储单元中存放变量的值。
4、文件包含的两种格式是什么?有什么区别?
(5分)
#include<*.h> 从缺省的系统库文件中查找头文件
#include"*.h" 先从用户工作目录中查找,没有找到再从系统库文件中找
5、静态变量有什么特点?
(5分)
静态局部变量
它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它
函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。
2.静态全程变量
Turbo C2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护。静态全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。
特点一:静态变量的值是共享。特点二:不需要对象实例化就可以使用。
6、函数原型有什么作用?
(5分)
1.抽象函数。如果能找到原型,可以知道问题的结果,我们从而朝着那个方向努力。
比如f(ab)=f(a)+f(b)原型是对数函数。我们可以知道f(1)=0,还可以知道函数定义域肯定在(0,正无穷。
2.构造函数。比较大小之类的
3.解决实际应用题。
三、编程题(6道小题,共60分)
1、编写程序,计算并输出下面级数前n项(n=50)的部分和。
1*2+2*3+3*4+4*5+……+n*(n+1)+…
(10分)
请将你解答本题所写的源程序粘贴到下面
void main()
{
int i,n,q,sum;
printf("请输入要计算的项数:");
scanf("%d",&n);
for(i=2,sum=0;i<=n;i++)
{
q=i*(i+1);
sum+=q;
i++;
}
printf("项数和sun=%d\n",sum);
}
2、写函数完成将已按升序排好的两个字符串 a 和 b 中的字符按升序归并到字符串 c 中。
(10分)
请将你解答本题所写的源程序粘贴到下面
# include
# include
void main()
{
char a[]="acegikm";
char b[]="bdfhjlnpq";
char c[80],*p;
int i=0,j=0,k=0;
while(a[i]!='\0'&&b[j]!='\0')
{ if(a[i]
else c[k]=b[j++] ;
k++;
}
c[k]='\0';
if(*(b+j)!=’\0’ )p=b+j;
else p=a+i;
strcat(c,p);
puts(c);
}
3、用起泡法对数组中15个实数进行排序。
(10分)
请将你解答本题所写的源程序粘贴到下面
#include
void main()
{
int i,j,q,a[15];
printf("请输入要排列的数:");
for(i=0;i<15;i++)
scanf("%d",&a[i]);
for(i=0;i<15;i++)
for(j=0;j<15-i;j++)