模拟测试试卷(三).doc_第1页
模拟测试试卷(三).doc_第2页
模拟测试试卷(三).doc_第3页
模拟测试试卷(三).doc_第4页
全文预览已结束

下载本文档

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

文档简介

C语言模拟测试试卷(三)一、填空题(20分) 1、char (*pa)10;说明pa是_。 2、表达式98&8&31&1的值为_。 3、printf(%5.3fn,123456.12345);输出为_。 4、表达式3&(2&34)的值为_。 5、若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为_。 6在C语言中,指针变量的值增1,表示指针变量指向下一个_,指针变量中具体增加的字节数由系统自动根据指针变量的_决定。 7语句printf(%dn,strlen(t5xffn);的输出结果是_ 。 8假设所有变量均为整型,表达式 (a=2,b=5,ab? a+:b+,a+b)的值是 。 9在C语言中,能代表逻辑值真的是 。 10为表示关系x=y=z,应使用C语言表达式 。 二、选择题(20分) 1、设有int i;则表达式i=1,+i,+i|+i, i的值为 ( ) A.1 B.2 C.3 D.4 2、设有int i;则表达式(i=1,i=10)?i+|+i:+i的值为 ( ) A.1 B.2 C.3 D.10 3、设有int a =10,11,12,*p=&a0;则执行完*p+;*p+=1;后a0,a1,a2的值依次是 ( ) A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12 4、设有int i, j, k; 则表达式i=1,j=2,k=3, i&j&k 的值为 ( ) A.1 B.2 C.3 D.0 5、设有说明int s2=0,1,*p=s; 则下列错误的C语句是 ( ) A.s+=1; B.p+=1; C.*p+; D.(*P)+; 6、设有以下定义: int a431,2,3,4,5,6,7,8,9,10,11,12; int (*prt)3a, * pa0; 则下列能够正确表示数组元素a12的表达方式是 A) * (* prt+1)2) B) * (* (prt+5) C) (*prt+1)+2 D) * (* (a+1)+2) 7、下列程序输出结果是 A)xyabcAB B)abcABz C)abavcz D)xycdBCD main() char * pl,* p2,str50xyz; plabcd; p2ABCD; strcpy(str2,strcat(pl2,p21); printf(d,str); 正确的应该是:#include stdio.h#include string.hmain() char *pl,*p2,str50=xyz,a=abcd,b=ABCD; pl=a; p2=b; strcpy(str+2,strcat(pl+2,p2+1); printf(%s,str); 8、设有以下语句: char str412= str412=aaa,bbb,ccc,ddd; char *strp4; int i; for(i=0;i4;i+)strpi=stri; 若0k4,下列选项中对字符串的非法引用是: (A) strp (B) strk (C) strpk (D) *strp 9、在C语言程序中 (A) 函数的定义可以嵌套,但函数的调用不可以嵌套 (B) 函数的定义不可以嵌套,但函数的调用可以嵌套 (C) 函数的定义和函数的调用均不可以嵌套 (D) 函数的定义和函数的调用均可以嵌套 10、以下叙述中不正确的是: (A) 在函数中,通过return语句传回函数值 (B) 在函数中,可以有多条return语句 (C) 在C中,main后的一对圆括号中也可以带有形参 (D) 在C中,调用函数,必需在一条独立的语句中完成 三、程序分析,给出下列各程序的执行结果(20分) 1、#include int f(int n) int s=1; while(n) s*=n-; return s; main() int i,j; i=f(3); j=f(5); printf(nThe output of 5.1. is: n); printf(i=%d j=%d n,i,j); 2、#include trans(int m,int n) int i; if (mn) i=m%n;trans(m/n,n); else i=m; if (i,21); trans(21,2); printf(n%d-,123); trans(123,16); 3、#include stdio.hint a10=1,2,3,4,5,6,7; rev (int *m,int n) int t; if (n1) t=*m;*m=*(m+n-1);*(m+n-1)=t; rev(m+1,n-2); main() int i; printf(nThe output of 5.5 is:nn); rev(a+2,6); for(i=0;i10;i+) printf(%5d,ai); printf(n); rev(a,5); for(i=0;i10;i+) printf(%5d,ai); printf(n); 四、在下面程序中横线处填上适当字句,使其能正确执行(20分) 1已知数组a中的元素按由小到大顺序排列。以下程序的功能是将输入的一个数插入数组a中,插入后,数组a 中的元素仍然由小到大顺序排列。 #include main() int a10=0,-1,12,96,188,249,800; / * a0为工作单元,从a1开始存放数据 * / int x,i,j=6;/* j为元素个数 */ printf(Enter a number:); scanf(%d,&x); a0=x; ; while ( ) ai+1=ai; a+i=x; j+;for(i=1;i=j;i+) printf(%8d,ai); printf(n); 3下面程序把文件file1.dat中的内容复制到一个名为file2.dat新的文件中。 #include stdio.h FILE *fp1, *fp2; main() char ch; if(fp1=fopen(file1.dat, )=NULL);exit (0); if(fp2=fopen(file2.dat, )= =NULL) exit (0); while(feof(fp1)!=0) ch=fgetc(fp1); fputc (ch, fp2); fclose(fp1); fclos

温馨提示

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

评论

0/150

提交评论