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

下载本文档

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

文档简介

1、模拟试题三一、选择题(本大题30分,每小题2分)1 .下列有关C程序的说法中,正确的是:。A) 一个C程序中只能有一个主函数且位置任意;B) 一个C程序中可有多个主函数且位置任意;C) 一个C程序中只能有一个主函数且位置固定;D) 一个C程序中可以没有主函数。2 .以下叙述中不正确的是:。A)在C程序运算符中,逗号运算符优先级最低;B) C程序中,AHP和ahp代表两个不同的变量;C) C程序中,整数和实数在内存中存放形式相同;D)在C程序中,是只能用于整数运算的运算符.ch是字符型变量,下面不正确的赋值语句是:。A)ch=0'B)ch='a+b'C)ch='7

2、'+'9'D)ch=7+9intx=10,y=5,z;贝U语句printf("%dn",z=(x+=y,x/y);的输出结果是。A)1B)0C)4D)35 .设有如下定义:charch='z',则执行下面语句后变量ch是值为:。ch=(A'<=ch&&ch<=Z')?(ch+32):chA)AB)aC)ZD)z6 .若x和y都为float型变量,且x=3.6,y=5.8执行下列语句后输出结果为:。printf(%f”,(x,y);A)3.600000B)5.800000C)3.600000,

3、5.800000D)输出符号不够,输出不正确值Beijing"、China”分别存放在字符数组stn10,str210中,下面语句中能把China”连接到Beijing”之后的为:。A) strcpy(str1,str2);B) strcpy(str1,China");C) strcat(str1,China")D) strcat(Beijing”,str2);8 .以下对一维整型数组a的正确说明是。A) inta(10);B) intn=10,an;C) intn;scanf("%d't&ni);inD) #defineSIZE10in

4、taSIZE;9 .设有如下程序段,则其执行结果为:。staticinta=1,2,3,4,*p;inti;p=a;(p+3)+=2;printf(%d”,*(p+3);A)0B)6C)a3地址D)不正确的值10.若I为整型变量,则下列程序段的运行结果为。1=322;if(I%2=0)printf(#")elseprintf(*");A)#B)#*C)*D)有语法错误,无法输出结果11 .已知intx=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为:。if(x>y|x<z&&y>z)z=x;x=y;y=z;A)x=50,y

5、=80,z=80B)x=50,y=30,z=30C)x=30,y=50,z=80D)x=80,y=30,z=5012 .下面程序段的运行结果是:。x=y=0;while(x<15)y+,x+=+y;printf("%d:,y,x);A)20,7B)6,12C)20,8D)8,2013.若有语句int*point,a=45;point=&a;下面均代表同一变量地址的一组选项是:。A) &apoint*&aB) &*a&a*pointC) point&point&aD) &a,&*pointpoint14 .以

6、下程序的运行结果是:。main()inta=2,i;for(i=0;i<3;i+)printf(%4d”,f(a);f(inta)intb=0;staticintc=3b+;c+;return(a+b+c);A)71013B)777C)7911D)78915 .若有如下定义:inta33=1,2,3,4,5,6,7,8,9,i;则下列语句的输出结果是:。for(i=0;i<=2;i+)printf(%d",ai2-i);A)357B)369C)159D)147二、判断题(本大题10分,每小题1分)1 .C语言本身没有输入输出语句,输入输出操作都是通过调用库函数来实现的。(

7、)2 .在C语言中,int、char和short三种类型数据在内存中所占用的字节数都是由用户自己定义的。()3 .在C程序中一行内可以写几个语句,一个语句可以分写在多行上。因此,并不是每一条C语句都必须有一个分号的。()4 .在C语言的if语句中,用作条件判断的表达式只能是关系和逻辑表达式。()5 .在C语言中break和continue都是循环中途退出语句,其中break语句用来跳出一层循环结构;continue语句用来结束一次循环。()6 .C语言中while和do-while循环的主要区别是while语句的循环体至少会被执行一次,而do-while语句的循环体则可能一次也不执行。()7

8、.数组首地址不仅能通过数组中第一个元素的地址表示,也可以通过数组名来表示。()8 .在C语言中,只有在两个字符串所包含的字符个数相同时,才能比较大小。如字符串“That”与“The”就不能进行大小比较。()9 .函数的返回值类型是由函数的类型和return语句中表达式的类型共同决定的,当这两类型不一致时最终起决定作用的是return中表达式的类型。()10 .定义指针变量时指定的类型称为基类型,基类型是指针变量所指向变量的类型,因此指针变量被定义之后都只能指向某一类型的变量。()三、程序填空题(本大题12分,每小题2分)1 .输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则

9、变成大写字母;其它字符不变。请填空:main()charch;scanf("%c',&ch);if(1)ch=ch+32;elseif(ch>'a'&&ch2)z);)(printf("%n”,ch;2 .以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。请填空:main()inta34=7,5,-2,3,1,0,-3,4,6,8,0,2;intb34=5,-1,7,6,-2,0,1,4,2,0,8,6;inti,j,c34;for(i=0;i<3;i+)for(j=0;j<4;j+)cij=一;

10、for(i=0;i<3;i+)for(j=0;j<4;j+)printf(%3d",cij);一(4)一;3 .以下程序使用递归法求n!,请填空:floatfac(intn)floatf;if(n<0)printf(n<0"dataerror);f=-1;elseif(n=0|n=1)f=1;elsef=(5);return(f);main()intn;floaty;printf(inputaintegernumber");scanf(%d",&n);y=(6);printf(“:n,y);四、写出下面程序的执行结果(本大

11、题24分,每小题4分)1 .main()floata=3.14,b=3.14159;printf("f,%5i3fa,b);2 .main()chara55,i,j;for(i=0;i<5;i+)for(j=0;j<5;j+)if(i=0|i+j=4)aij='*'elseaij=''for(i=0;i<5;i+)for(j=0;j<5;j+)printf("%c",aij);printf("n");3 .main()intx,i;for(i=1,x=1;i<=50;i+)if(x&

12、gt;=10)break;if(x%2=1)x+=5;continue;x-=3;printf(%dn”,i);4 .func(intx,inty)intz;z=a+b;return(z);main()inta=6,b=7,c=8,r;r=func(a-,b+,a+b),c-)printf(%d",r);5 .#include<STDIO.H>voidincrement(void);voidmain(void)increment。;increment。;voidincrement(void)staticintx=8;x+;printf("x=%dn",

13、x);6.#include<stdio.h>voidmain(void)staticchara="ABCDEFGH",b="abCDefGh"char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k+)if(*(p1+k)=*(p2+k)printf("%c”,*(p1+k);printf("n");五.编程题(共30分)1 .有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。"x2(x<0)y=J-0.5X+10(0x<10)jx-fx(x10)2

14、 .若有如下公式:22+21222+0000。+32试根据上述公式编程计算的近似值(精确到10-6)。3.编一程序,首先将一个包含10个数的数组按照升序排列,然后将从一指定位置m开始的n个数按照逆序重新排列,并将新生成的相互组输出。要求使用指针控制方法实现上述功能。模拟试题三答案一、选择题(本大题30分,每小题2分)15ACBDD610BCDDA1115ADDDA二、判断题(本大题10分,每小题1分)1a/2.X3.X4.X5a/6.X7a/8.X9.X10.V三、程序填空题(本大题12分,每小题2分)评分标准:全对的满分,半对半错的给一半分,全错的不得分。1. (1)ch>='

15、A'&&c<='Z'(2) ch=ch-322. (3)aij+bij(4) printf(h")3. (5)n*fac(n-1)( 6) ac(n)四、写出下面程序的执行结果(本大题24分,每小题4分)评分标准:全对的满分,半对半错的给一半分,全错的不得分。2.*3.85.x=9x=106.CDG五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1. #include<math.h>main()floatx,y;scanf(“%f”,&x);if(x<0)y=x*x;elseif(x>=0&a

16、mp;&x<10)y=-0.5*x+10;elsey=x-sqrt(x);printf(“y=%f”,y);2. 17.main()floata=1,b,pi,t=1;while(t>=1e-6)pi=pi+t;a+;b=a*a;t=1/b;pi=pi*6;printf(“pi=%f”,pi);3. #include<stdio.h>main()intdata10,m,n,j,*p1,*p2,temp;printf(“nInput10integern”);for(j=0;j<10;j+)scanf(“%d”,&dataj);printf(“Inpu

17、tmandn:n”);scanf(“%d%d”,&m,&n);if(m<1|m>10|n<1|n>10|(m+n)>11)printf(“InputError!n”);exit(0);sort(data,10);printf(“Resultofsortis:n”);for(j=0;j<10;j+)printf(“%d”,dataj);printf(“n”);p1=data+m-1;p2=data+m+n-2;for(;p1<data+m-1+n/2;p1+,p2-)temp=*p1;*p1=*p2;*p2=temp;printf(“Fi

18、nalResultis:n”);for(j=0;j<10;j+)printf(“%d”,dataj);sort(int*p,intn)inti,j,temp;for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(*(p+i)>*(p+j)temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;C语言程序设计教程实验与练习(第二版)模拟试题II及答案一、单项选择题(每题2分,30道题,共60分)1 .下面的程序将输出:main()floatf;intx=1,y=2.5;f=x/y;printf(",y=%#X",

19、f,y);A.f=0.0,y=2,y=0X2,y=0X2D.f=0.5,y=22 .下面的程序将输出:#include""main()intlen;charstr="ab042350"len=strlen(str);printf("%d",len);A.10B.5C.63 .下面的程序将输出:main()inta=0x31;char*str="thisisone.","thisistwo."charch;ch=+a-0;switch(ch)case 1: printf("%s"

20、;,str0);case 2: printf("%s",str1);default:printf("noway!");A.thisisone.B.thisistwo.C.noway!4 .下面的程序将输出:main()inta5=1,2,3;intk,j;for(k=1;k<4;k+)ak+;for(j=0;j<5;j+)printf("%d",aj);A.13410B.23410C.234005 .已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是inta10;int*p;p=a;A.a2=1;B.p1=1;C.

21、*(p+)=1;D.7D.thisistwo.noway!D.13400D.*(+a)=1;6 .下面程序将输出:voidadd(inta)a+;return;main()intk;k=3.4;add(k);printf("%d",k);A.3.4B.C.3D.47.下列循环结构中,不是无限循环的是:A.for(i=1,s=0;i+)B.i=10;s=s+i;while(1)i=i%10+1;D.i=100;while(+i%2)i+;if(i>10)break;C.inti=0;do+i;while(i>=0);8. 若已知inta34,*p;p=(int*)

22、a;那么对数组a的第2行第2列的正确引用是:A.a22B.p5C.a5D.p119. 已知:int(*p)20;且p的值是0X5000,请问表达式p+2的值是多少?A.0X5050B.0X5002C.0X5004D.0X5040D.a01=a10;D3010. 若有说明inta22;那么,下面正确的C赋值语句是:A.a=2;B.a1=2;C.a1=1,2;11. 设x为int型变量,则执行以下语句后,x的值为x=10;x+=x-=x-x;A10B20C4012. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&

23、amp;&!y)的值是:A.0B.语法错C.1D."假"13. 下面能正确进行字符串赋值操作的语句是:Achars5="ABCDE"Bchars='A','B','C','D','E'Cchar*s;s="ABCDEF"Dchar*s;scanf("%s",s);14. 已知:inta34,*p=&a00;p+=6;那么*p和的值相同.A(a+6)B*(&a0+6)Ca22D*(&a00+6)15. 设有

24、以下说明和定义:typedefunionlongi;intk4;charc;DATE;structdateintcat;DATEcow;doubledog;too;DATEmax;则下列语句的执行结果是printf("%d",sizeof(structdate)+sizeof(max);A26B30C18D816. 设有如下定义:int*(*ptr)();则以下叙述中正确的是Aptr是指向一维组数的指针变量8 ptr是指向int型数据的指针变量Cptr是指向函数的指针,该函数返回一个int型数据Dptr是指向函数的指针,该函数的返回值是指向int型数据的指针17. 若二维数

25、组a有m列,则在aij之前的元素个数为Aj*m+iBi*m+jCi*m+j-1Di*m+j+118. 以下程序运行后,输出结果是D53A13B51C11intd=1;fun(intp)intd=5;p=d;printf("%d",p);main()inta=3;fun(a);d=a;printf("%dn",d);19.以下程序运行后,如果从键盘上输入A4B7#include<stdio.h>#include<string.h>func(charstr)intnum=0;while(*(str+num)!='0')

26、num+;return(num);main()charstr10,*p=str;gets(p);printf("%dn",func(p);ABCDE<回车>,则输出结果为C6D20. 执行以下程序段后,m的值为inta23=1,2,3,4,5,6;intm,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);A15B14C13D1221. 已知定义了两个结构体变量,下面是正确的语句是:structintx;charname10;floatmark;S1,S2;A. S1=5,”yang”,90.5;B. S1=S2;S1.mark=S2.m

27、ark;D.strcpy(S1,S2);22.下面这段程序运行的结果是:inta=0x4145;char*p;p=(char*)&a;*p+=1;printf(%X",*p);23 .下面这段程序运行的结果是:charstr="%#X"inta=50;printf(str,a+);A.50B.0X3324 .下面哪个语句是函数的原型声明A.int(*f)(inta,intb);C.intf(inta,intb);25.已知inta=0XF11F,b;执行完下面的操作后,b=(a&0xFF00)>>4;A.0X0FF1B.0XF11F26

28、.有以下程序:inta=2;intf(int*a)return(*a)+;main()ints=0;inta=5;s+=f(&a);s+=f(&a);printf("%dn",s);执行后输出结果是。A.10B.927 .设有以下语句:typedefstructSintg;charh;T;则下面叙述中正确的是A.可用S定义结构体变量C.S是struct类型的变量28 .有以下程序:main()C.0X32B.intf(inta,5);D.intf(inta=5,intb=6);a的值是多少?C.0XFF10D.0XFFF1C.7D.8B.可以用T定义结构体变

29、量D.T是structS类型的变量unsignedchara,b;a=4|3;b=4&3;printf("%d%dn",a,b);执行后输出结果是。A.70B.07C.11D.43029.有以下程序voidsort(inta,intn)inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(ai<aj)t=ai;ai=aj;aj=t;main()intk10=1,2,3,4,5,6,7,8,9,10,i;sort(k,10);for(i=0;i<10;i+)printf("%d,"

30、;,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.有以下程序:voidf(inta口,inti,intj)intt;if(i<j)t=ai;ai=aj;aj=t;f(a,i+1,j-1);main()inti,k5=1,2,3,4,5;f(k,0,4);for(i=0;i<5;i+)printf("%d,",ki);printf("n"

31、;);执行后输出结果是。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<stdio.h>intf(intn)staticints=1;while(n)s*=n-;returns;main()inti,j;i=f(3);j=f(5);printf("nTheoutputis:n");printf("i=%d,j=%dn",i,j);#include<stdio.h>#include<con

32、io.h>structdata_tagintx;structdata_tag*next;;typedefstructdata_tagDATA;voidmain()DATANode5;DATA*p;inti;clrscr();for(i=0;i<5;i+)Nodei.x=i*2+1;Node0.next=&Node3;Node3.next=&Node2;Node2.next=&Node4;Node4.next=&Node1;Node1.next=NULL;p=Node;while(p!=NULL)printf("%d",p->

33、x);p=p->next;三、改错题(每道题有5个错,每改对一个给2分,共3道题,30分)程序1#include""voidmain()inta,b;scanf("%d%d",&a,b);f=float(a/b);printf("a/b=%d",f);程序2#include#include""intCompareInt(inta,intb)if(a>b)return1;elseif(a=b)return0;elseif(!a>=b)return-1;voidmain()inta,b;unsignedintk;printf("inputtwonumber,likethis"12,13":");scanf("%d,%d",&a,&b);k=CompareInt(a,b);switch(k)case1:printf("%d>%d",a,b);case0:printf("%d=%d",a,b);break;case-1:prin

温馨提示

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

评论

0/150

提交评论