C语言模拟试题II_第1页
C语言模拟试题II_第2页
C语言模拟试题II_第3页
C语言模拟试题II_第4页
C语言模拟试题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=0x2c.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;1int k,j;for(k=1;k4;k+)ak+;fo

3、r(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. 0x5040210.若有说明int a22; 那么,下面正确的c 赋值语句是:a.a=2;b.a1=2;c.a1=1,2;d.a01=a10;11. 设 x

4、 为 int 型变量 ,则执行以下语句后 ,x 的值为 x=10; x+=x-=x-x;a 10b 20c 40d 3012. 已知 x=43,ch=a,y=0; 则表达式( x=y&chb&!y)的值是:a 0b语法错c 1d 假13. 下面能正确进行字符串 赋值操作的语句是:a char s5=abcde;b char s=a,b,c,d,e;c char *s; s=abcdef;d char *s; scanf( %s , s) ;14.已知 :int a34, *p=&a00; p+=6;那么 *p 和 _的值相同 .a (a+6)b *(&a0+6)c a22d *(&a00+6)

5、15. 设有以下说明和定义 :typedef union longi; intk4;charc; date;struct date int cat; da te cow;doubledog; too;datemax;则下列语句的执行结果是printf (%d,sizeof (struct date ) +sizeof(max);a 26b 30c 18d 816. 设有如下定义 :int *(*ptr)();则以下叙述中正确的是a ptr 是指向一维组数的指针变量b ptr 是指向 int 型数据的指针变量c ptr 是指向函数的指针,该函数返回一个int 型数据d ptr 是指向函数的指针,

6、该函数的返回值是指向int 型数据的指针17. 若二维数组 a 有 m 列,则在 aij 之前的元素个数为 _a j*m+ib i*m+jc i*m+j-1d i*m+j+1318. 以下程序运行后,输出结果是a 13b 51c 11d 53int 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,则输出结果为a 4b 7c 6d 5#include#includefunc(char str ) int num =0; while

7、(*(str+num)!=0) num+;return(num);main( )char str10,*p=str;gets(p); printf(%dn,func(p);20. 执行以下程序段后 ,m 的值为inta23= 1,2,3,4,5,6 ;intm,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);a 15b 14c 13d 1221. 已知定义了两个结构体变量,下面是正确的语句是: struct int x; char name10; float mark; s1,s2;a. s1=5, ” yang ”, 90.5;b. s1=s2;c. s1.x=s2.x ;

8、 s1.name=s2.name ; s1.mark=s2.mark;d. strcpy(s1,s2);422. 下面这段程序运行的结果是:inta=0x4145;char *p;p=(char *)&a;*p+=1;printf( “%x ” , *p);a. 46b. 42c.4146d.424523. 下面这段程序运行的结果是:charstr = ”%#x ”;int a=50;printf(str,a+);a.50b.0x33c.0x32d.有语法错24. 下面哪个语句是函数的原型声明a. int(*f)(int a , int b);b. intf(int a , 5);c. int

9、f(int a , int b);d. intf(int a=5, int b=6);25.已知 int a=0xf11f , b;执行完下面的操作后,a 的值是多少?b=(a&0xff00)4;a. 0x0ff1b. 0xf11fc.0xff10d. 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.10b.9c.7d.827.设有以下语句:typedef structs int g; charh;t

10、;则下面叙述中正确的是。a. 可用 s 定义结构体变量b. 可以用 t 定义结构体变量c.s 是 struct 类型的变量d.t 是 structs 类型的变量28.有以下程序:main()5 unsigned char a,b; a=4|3;b=4&3;printf(%d %dn,a,b);执行后输出结果是。a. 70b.07c.11d.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

11、,5,6,7,8,9,10,i;sort(k,10);for(i=0;i10;i+)printf(%d,ki);printf(n);其输出结果是。a 1,2,3,4,5,6,7,8,9,10,b 10,9,8,7,6,5,4,3,2,1,c 9,2,7,4,5,6,3,8,1,10,d 1,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);执行后输出结果是。a 5,4,3,2,1,b 5,2,3,4,1,c 1,2,3,4,5,d 1,2,3,4,5,二、阅读程序,将运行结果写在右边空白处(共2 道题,每题5 分,共 10 分)程序 1#include 6int 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);7程序 2#include #include struct data_tagint x

13、;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.h void main()int a,b;scanf( %d%d ,&a,b);f=float(a/b);printf( a/b=%d ,f);程序 28#include stdio.h #include conio.h int comparei

14、nt(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:

温馨提示

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

评论

0/150

提交评论