计算机国二C语言考试试题 第三套.doc_第1页
计算机国二C语言考试试题 第三套.doc_第2页
计算机国二C语言考试试题 第三套.doc_第3页
计算机国二C语言考试试题 第三套.doc_第4页
计算机国二C语言考试试题 第三套.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三套1.对下面程序描述正确的一项是(每行程序前面的数字表示行号)( ) main() float a3=0.0; int i; for(i=0;i3;i+)scanf(%d,&ai); for(i=1;i6)n-;printf(%d,n);该程序的输出结果是( ) A.987 B.876 C.8765 D.9876分析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪个选项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n-运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A和D。由循环条件n6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环体时输出为6,由此可以排除选项C。16.若已定义函数有返回值,以下关于该函数调用叙述中错误的是( ) A.函数调用可以作为独立的语句存在 B.函数调用可以作为一个函数的实参 C.函数调用可以出现在表达式中 D.函数调用可以作为一个函数的形参分析:本题综合考查函数的调用方式。函数的形参和实参具有以下特点:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值.实参和形参在数量上,类型上,顺序上应严格一致,否则会发生“类型不匹配”的错误。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化17.若有以下调用语句,则不正确的fun函数的首部是( )main() int a50,n; fun(n,&a9); A.void fun(int m,int x ) B.void fun(int s,int h41) C.void fun(int p,int *s) D.void fun(int n,int a)分析:函数定义的一般形式为:类型说明符 函数名() 类型说明 语句根据fun函数的调用语句可知,fun函数的第二个参数是一个地址值。18.若运行时给变量x输入12,则以下程序的运行结果是( )main() int x,y; scanf(%d,&x); y=x12?x+10:x-12; printf(%dn,y); A.0 B.22 C.12 D.10分析:本题考查的是三目运算符的用法,三目运算符形式为(表达式1)?(表达2):(表达式3)。当(表达式1)的值为真时,求(表达式2)的值为整个表达式的值;如果(表达式1)的值为假,则求(表达式3)的值为整个表达式的值。题中,表达式x12的结果为假,所以执行的语句是x-12,最终y的值应该是0。19.有以下程序#define F(X,Y) (X)*(Y)main() int a=3,b=4; printf(%dn,F(a+,b+);程序运行后的输出结果是( ) A.12 B.15 C.16 D.20分析:本题考查了带参数的宏定义,参数只是简单的替换而不是把其值求出后替换形式参数。本题中用a+替换X,用b+替换Y,再求(a+)*(b+)的值。20.若有下面的程序段char s =china;char *p;p=s;则下列叙述正确的是( ) A.s和p完全相同 B.数组s中的内容和指针变量p中的内容相等 C.s数组长度和p所指向的字符串长度相等 D.*p与s0相等分析:字符型指针变量p中存放的是“china”的首地址,所以选项A和B错误。s数组长度为6,而p所指向的字符串长度为5,二者不相等,排除选项C。21.以下程序的运行结果是( )#include stdio.hmain() struct date int year,month,day;today; printf(%dn,sizeof(struct date); A.6 B.8 C.10 D.12分析:在解答本题时应该考虑两个问题:结构体变量的长度及sizeof()求字节数的运算符。结构体变量的长度是其内部成员总长度之和,本题中,struct date中包含year,month,day三整型变量。一个整型变量所占的字节数为2。22.下列关C语言数据文件叙述正确的是( ) A.文件由ASCII码字符序列组成,C语言只能读写文本文件 B.文件由二进制数据序列组成,C语言只能读写二进制文件 C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件分析:C语言是把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。23.一个C语言程序是由( ) A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成分析:C程序是由函数构成的。一个C源程序至少包括一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。24.以下不正确的叙述是( ) A.在C程序中,逗号运算符的优先级最低 B.在C程序中,APH和aph是两个不同的变量 C.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变 D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值分析:在C语言所有的运算符中,逗号运算符的优先级最低。C语中区分大小,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数和整型数值等。25.下面程序的运行结果是( )#include main() int y=10; doy-;while(-y); printf(%dn,y-); A.-1 B.1 C.8 D.0分析:本题考查“+”和“-”运算符,运算符“+”是操作数加1,而“-”则是操作数减1。例如:x=x+1 可写成x+,或+xx=x-1 可写成x-,或-xx+(x-)与+x(-x)在上例中没有什么区别,但x=m+和x=+m却有很大差别。X=m+表示将m的值赋给x后,m加1。X=+m表示m先加1后,再将新值赋给x。当y=2时,首先执行y-,使y值变为1。接着执行-y,y值变为0,循环结束。最后执行输出语句,注意先输出此时y-的值0,在再使y值减1变为-1。26.有如下程序int a10=1,2,3,4,5,6,7,8,9,10; int *p=&a3,b;b=p5;则b的值是( ) A.5 B.6 C.9 D.8分析:p=&a3将指针指向数组a的第4个元素,p5指向数组a的第9个元素,而a8=9,所以b=9。27.下列程序的输出结果是( )int b=2;int func(int *a) b+=*a;return(b);main() int a=2,res=2; res+=func(&a); printf(%dn,res); A.4 B.6 C.8 D.10分析:在函数体语句中的b+=*a;的*是指针运算符(也称间接访问运算符),*a就是main函数中a的值。28.若已定义int a =0,1,2,3,4,5,6,7,8,9,*p=a,i;其中0i9,对a数组元素不正确引用是( ) A.ap-a B.*(&ai) C.pi D.a10分析:通常,引用一个数组元素可以用下标法,如ap-a形式,或指针法,如*(&ai)形式。本题中a9=9,a10显然超出了数组范围,注意,数组的下标是从0开始的。29.若有以下程序#include int a =2,4,6,8;main() int i; int *p=a; for(i=0;i4;i+)ai=*p; printf(%dn,a2);上面程序输出结果是( ) A.6 B.8 C.4 D.2分析:本题的知识点主要是:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组首地址,因而执行循环赋值语句后数组各元素的值均变为2。30.以下程序有语法错误,有关错误原因说法正确的是( )main() int G=5,k; void prt_char(); k=prt_char(G); A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母 C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线分析:在C语言中,对于返回值是其他类型的函数,若把函数定义放在调用之后,应该在调用之前对函数进行说明,或称为函数原型说明。函数说明句中的类型必须与函数返回类型一致,函数说明可以是一条独立的语句,也可以与普通变量一起出现在同一个语句中。31.有以下程序:#include union pw int i; char ch2;a;main()a.ch0=13;a.ch1=0;printf(%dn,a.i);程序的输出结果是( ) A.13 B.14 C.208 D.209分析:本题中,首先定义了一个共用体pw,其中有两个域:整型变量i和字符数组ch,因为共用体中的域是共享内存空间的,又有数组的元素有低到高存储:ch0在低字节,ch1在高字节。整型变量i占两个字节,高位与ch1共用存储空间,低位与ch0共用存储空间。而高位ch1的值为0,所以输出的成员变量i的值就是ch0的值1332.下面程序的运行结果是( )#include main() int a=1,b=10; do b-=a;a+;while(b-2)return(fib(n-1)+fib(n-2); else return(2);main() printf(%dn,fib(3);该程序的输出结果是( ) A.2 B.4 C.6 D.8分析:本题考查函数的递归调用。fib(3)=fib(2)+fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib(3)的值为4。34.函数rewind的作用是( ) A.使文件位置指针重新返回文件的开始位置 B.将文件位置指针指向文件中所要求的特定位置 C.使文件位置指针指向文件的末尾 D.使文件位置指针自动移至下一个字符位置分析:函数rewind的功能是将文件指针重新指向一个流的开头。用法如下:int rewind(FILE *stream);并且无返值。35.以下叙述中正确的是( ) A.构成C程序的基本单位是函数 B.可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论