语言模拟试题II_第1页
语言模拟试题II_第2页
语言模拟试题II_第3页
语言模拟试题II_第4页
语言模拟试题II_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计教程 实验与练习(第二版)模拟试题II及答案一、 单项选择题(每题2分,30道题,共60分)1. 下面的程序将输出:main() float f; int x=1,y=2.5; f=x/y; printf(f=%1.1f,y=%#X, f, y ); A.f=0.0 , y=2B.f=0.5 , y=0X2 C.f=0.0 , y=0X2D.f=0.5 , y=22. 下面的程序将输出:#include string.hmain() int len; char str=ab042350; len=strlen(str); printf(%d,len); A. 10B. 5C. 6

2、D. 73. 下面的程序将输出:main() int a=0x31; char *str=this is one. ,this is two. ; char ch; ch=+a-0; switch(ch) case 1: printf (%s, str0); case 2: printf (%s, str1); default: printf (no way! ); A.this is one.B.this is two.C.no way!D.this is two.no way!4. 下面的程序将输出:main() int a5=1,2,3; int k,j; for(k=1;k4;k+)

3、ak+; for(j=0;j10) break; C. int i=0;D. i =100; do +i ; while(i=0); while(+i%2) i+;8. 若已知int a34,*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:A.a22B.p5C.a5D.p119. 已知:int (*p)20; 且p的值是0X5000,请问表达式p+2的值是多少?A. 0X5050B. 0X5002C. 0X5004D. 0X504010. 若有说明int a22;那么,下面正确的C赋值语句是:A.a=2;B.a1=2;C.a1=1,2;D.a01=a10;11. 设x为in

4、t型变量,则执行以下语句后,x的值为 x=10; x+=x-=x-x; A10 B20 C40 D3012. 已知x=43,ch=A,y=0;则表达式(x=y&chB&!y)的值是:A0 B语法错 C1 D假13. 下面能正确进行字符串赋值操作的语句是:Achar s5=ABCDE;Bchar s=A,B,C,D,E;Cchar *s;s=ABCDEF; Dchar *s;scanf(%s,s);14. 已知:int a34, *p=&a00; p+=6; 那么*p 和_的值相同.A(a+6) B*(&a0+6) Ca22 D*(&a00+6)15. 设有以下说明和定义:typedef uni

5、on long i; int k4; char c; DATE;struct date int cat; DATE cow; double dog; too;DATE max;则下列语句的执行结果是printf (%d,sizeof (struct date ) +sizeof(max);A26 B30 C18 D816. 设有如下定义:int *(*ptr)();则以下叙述中正确的是Aptr是指向一维组数的指针变量Bptr是指向int型数据的指针变量Cptr是指向函数的指针,该函数返回一个int型数据Dptr是指向函数的指针,该函数的返回值是指向int型数据的指针17. 若二维数组a 有m列

6、,则在aij之前的元素个数为_Aj*m+i Bi*m+j C i*m+j-1 Di*m+j+118. 以下程序运行后,输出结果是A13 B51 C11 D53 int d=1; fun (int p) int d=5; p=d; printf(%d,p); main() int a=3; fun(a); d=a; printf(%dn,d);19. 以下程序运行后,如果从键盘上输入ABCDE,则输出结果为A4B7 C6 D5#include#includefunc(char str ) int num =0;while(*(str+num)!=0) num+;return(num);main(

7、 )char str10,*p=str; gets(p); printf(%dn,func(p); 20. 执行以下程序段后,m的值为int a23= 1,2,3,4,5,6 ;int m,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);A15 B14 C13 D1221. 已知定义了两个结构体变量,下面是正确的语句是: struct int x; char name10; float mark; S1,S2;A. S1=5, ”yang”, 90.5;B. S1=S2;C. S1.x=S2.x ; S1.name=S2.name ; S1.mark=S2.mark;D. s

8、trcpy(S1,S2);22. 下面这段程序运行的结果是: int a=0x4145; char *p; p=(char *)&a; *p+=1; printf(“%X” , *p);A. 46B. 42 C.4146D.424523. 下面这段程序运行的结果是: char str =”%#X”; int a=50; printf(str,a+); A.50B.0X33C.0X32 D.有语法错24. 下面哪个语句是函数的原型声明A. int (*f)(int a , int b);B. int f(int a , 5);C. int f(int a , int b);D. int f(in

9、t a=5, int b=6);25. 已知int a=0XF11F , b; 执行完下面的操作后,a的值是多少? b=(a&0xFF00)4;A. 0X0FF1B. 0XF11F C.0XFF10 D. 0XFFF126. 有以下程序:int a=2;int f(int *a)return (*a)+;main( ) int s=0; int a=5; s+=f(&a); s+=f(&a); printf(%dn,s); 执行后输出结果是 。A.10 B.9 C.7 D.827. 设有以下语句:typedef struct S int g; char h; T;则下面叙述中正确的是 。A.可

10、用S定义结构体变量 B.可以用T定义结构体变量C.S是struct类型的变量 D.T是struct S类型的变量28. 有以下程序:main() unsigned char a,b; a=4|3; b=4&3; printf(%d %dn,a,b); 执行后输出结果是 。A. 7 0 B.0 7 C.1 1 D.43 029. 有以下程序void sort(int a,int n) int i,j,t; for(i=0;in-1;i+=2) for(j=i+2;jn;j+=2) if(aiaj) t=ai;ai=aj;aj=t;main() int k10=1,2,3,4,5,6,7,8,9,

11、10,i; sort(k,10); for(i=0;i10;i+) printf(%d,ki); printf(n); 其输出结果是 。A1,2,3,4,5,6,7,8,9,10, B 10,9,8,7,6,5,4,3,2,1,C9,2,7,4,5,6,3,8,1,10, D1,10,3,8,5,6,7,4,9,2,30. 有以下程序:void f(int a,int i,int j) int t; if(ij) t=ai; ai=aj;aj=t; f(a,i+1,j-1); main() int i,k5=1,2,3,4,5; f(k,0,4); for(i=0;i5;i+) printf(

12、%d,ki); printf(n); 执行后输出结果是 。A5,4,3,2,1, B5,2,3,4,1, C1,2,3,4,5, D1,2,3,4,5,二、 阅读程序,将运行结果写在右边空白处(共2道题,每题5分,共10分)程序1#include int f(int n)static int s=1; while(n) s*=n-; return s; main()int i,j; i=f(3); j=f(5); printf(nThe output is:n); printf(i=%d,j=%d n,i,j);程序2#include #include struct data_tag int

13、x; struct data_tag *next; ;typedef struct data_tag DATA;void main() DATA Node5; DATA *p; int i; clrscr(); for(i=0;ix); p=p-next; 三、改错题(每道题有5个错,每改对一个给2分,共3道题,30分)程序1#include stdio.hvoid main() int a,b; scanf(%d%d,&a,b); f=float(a/b); printf(a/b=%d,f); 程序2#include stdio.h#include conio.hint CompareInt

14、(int a,int b) if(ab) return 1; else if(a=b) return 0; else if(!a=b) return -1; void main() int a,b; unsigned int k; printf(input two number,like this 12,13:); scanf(%d,%d,&a,&b); k=CompareInt(a,b); switch(k) case 1: printf(%d%d,a,b); case 0: printf(%d=%d,a,b);break; case -1:printf(%d%d,a,b);break; getch(); 程序3long StrToNum(char *str) int k;long result=0; k=0; while(strk!=0) result=result*10+strk; return result; void main() char *str; int i; long l; for(i=0 , ib) return 1; else if(a=b) return 0; else if(a%d,a,b);break; case 0: printf(%d=%d,a,b);break; case -1:printf(%d%d

温馨提示

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

评论

0/150

提交评论