c语言试题带答案.doc_第1页
c语言试题带答案.doc_第2页
c语言试题带答案.doc_第3页
c语言试题带答案.doc_第4页
c语言试题带答案.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

C语言模拟题二C语言模拟题二一、单项选择题1.程序中定义以下宏 #define S(a,b) a*b若定义 int area; 且令area=S(3+1,3+4),则变量area的值为_A 10 B 12 C 21 D 282.正确的标识符是_A if B a=2 C a.3 D a_33.表达式1&3&5&7的值为_A 1 B 3 C 5 D 74.语句printf(st)的输出结果为_A st B st C s D s5. 执行下列语句后,sum变量的值是_int sum=0;for(int i=0;i10;i+,sum+=i);A 45 B 55 C 0 D 编译错误6.已知有共用体变量data1定义如下:union data int i;char ch;float f; data1; 则变量data1所占的内存存储空间可表示为_A sizeof(int) B sizeof(char) C sizeof(float)Dsizeof(int)+sizeof(char)+sizeof(float)7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示_A 已读到此文件末尾 B 未读到此文件的末尾C 此文件已关闭 D此文件尚未被打开8.以下c语言函数声明中,不正确的是_A void fun (int x, int y); B fun (int x, int y);C int fun (int x,y); D char *fun (char *s);9.若有语句if(x=0) y=5;则与条件x=0等价的表达式为_A x B !x C x!=1 D 以上都不对10.在执行以下程序时,如果从键盘上输入:ABCdef,则输出为A)ABCdef B)abcDEF C)abc D)DEF#includemain( ) char ch;while(ch=getchar( )!=n) if(ch=A & ch=a & chz)ch=ch-32;printf(%c,ch);printf(n); 11.下面不能正确进行字符串赋值操作的语句是_A)char s5=ABCDE;B)char s5=A、B、C、D、E;C) char *s;s=ABCDEF;D)char *s;scanf(%s,s);12.若x=4,则x*=x+2的值为_A 36 B 24 C 18 D 2013.函数调用语句func(exp1,exp2),(exp3,exp4,exp5);中,实参的个数为_A 1 B 2 C 4 D 514.设a为5,执行下列语句后,b的值不为2的是_A b=a/2 B b=6-(-a) C b=a%2 D b=a32?2:115.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是_A p2=*p1 B p2=*&p1 C p2=*p1 D p2=&*p116.以下运算符中,运算对象必须是整型的是_A / B %= C != D=17.以下关于typedef的叙述中错误的是_A用typedef可以增加新的类型B用typedef可以定义各种类型名,但不能用来定义变量C用typedef只是将已有的类型用新的标识符来代表D使用typedef有利于程序的通用和移植18.若执行完成下列语句:int a=3,b=6,c;c=ab=4. 设float x=11.0,y=12.0; 下列语句中发生错误的是:( )A+xB. y=(x%2)/10 C. y*=x+1; D. y=(int) x/105设变量a,b,c,d,m,n均为0, 执行(m=a= =b)| (n=c= = d)后m,n的值分别是( ) A0,1B. 1, 1C. 1, 0 D. 0, 06. 设int i=0,j=1,k=2,a=3,b=4,c=5; 执行表达式(a=ik)&(c=i, j, k)后,a,b,c的值分别是:( ) A 1,0,5B. 1,0,2C. 3, 4, 57. 设x、y和z是int型变量,且x=3,y=4,z=5, 则下面表达式中值为0的是:( ) Ax & yB. x=yC. x|y+z &y-zD. ! (x8.能将数学表达式a=c=b表示为正确的c表达式的是:( ) A a=c=bB. c=b C. c=a & c=a | c=D.%=10. 已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是 ( ) A 1B. 2C. 2.0D. 2.5二、多项选择题1以下叙述正确的是( )A. 一个C程序的执行一定是从main函数开始,并且结束于main函数。B一个C程序的执行是从第一个函数开始执行,到本程序的最后一个函数结束。C一个C程序中必须包含一个main函数。D在C程序中,main函数必须位于最开始的位置。2在C语言中,合法的整型数据是( )A. 0x2afB. 029C.2e3D. 0743. 下面能正确计算x绝对值y=|x|的语句是( )Aif(x=0)y=x;if(x=0 ? x : -xC.y=x;if(x=0) y=x;else y=-x; 4. 下面程序为无限循环的是( )Afor( ; 2=0; );B. while (3/5, 3+5);C. for( ; 0; );D. while (1);5. int a; 下列赋值后a的值为十进制数10的是( ) Aa=0xa;B. a=012;C. a=10-0;D. a=10.76;三、判断题1. 在C语言中,虽然有逻辑运算,但没有逻辑型变量。( )2若S为C语句,while(1) S必定是无限循环。( )3在对一个C程序进行编译的过程中,可以发现注释中的拼写错误。( )4C语言本身没有输入输出语句,是用输入输出函数实现输入输出操作。( )5C程序的基本组成单位是函数。( )四、填空题1设有定义int n=1,s=0; 则执行语句while(s=s+n,n+,n=10); 后变量s的值为_。2表达式1+4/5+5y) m=y; else m=x; 等效的表达式语句是:_。五、阅读程序,将输出结果写到题后的横线上1main () int n=4,i,a; for(,a=1,i=1; i6) n-;printf(“%d”,n); _3main() int x=2,y; switch(x) case 1: y=x ; break;case 2: y=-x ;case 3: y=x*3 ; break;case 4: y=4*x; printf(“%dn”,y);_ 4. main() int i, j ;for(i=j=1; j=10) break; if (i%2) i+=5; continue; i-=3;printf(“%dn”,j);, , _六、现给出实现下列问题的程序,将横线处缺少的部分补上,使其能正确运行。1.计算和:sum=1-1/2+1/4-1/6+.。要求直到最后一项的绝对值小于10-5为止。求绝对值的函数为fab()。#_main() float sum, t, s=1,n=0;_ /*初始化累加项t*/while (_ ) sum=_; n=_; s=-s; t=s/n;printf(“%fn”, sum);2.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。main() int n1,n2,n3,n4; char c; _;while ( (c=_) !=n) if (c=a _) n1+; else if (c=0 _)n2+; else if( c= ) n3+; else _; printf( “%d %d %d %dn”,n1,n2,n3,n4); 七、程序设计1、程序实现在屏幕上输出下图(位置在屏幕中间输出)。 A B B B C C C C C D D D D D D D C C C C C B B B A2、编程把输入的任意十进制整数转换为二进制数。3、验证哥德巴赫猜想:任意大于6的偶数均可表示两个素数之和。4、用迭代法求a的平方根,迭代公式为:Xn+1 =1/2*(Xn +a/Xn),要求前后两次求出的x的差的绝对值小于10 5。C语言模拟题四C语言模拟题四一、选择题1 _是构成c语言程序的基本单位。A)函数B)过程c)子程序 D)子例程2可以在C语言中用做用户标识符的是_。A)voidB)as_b3C)forD)2cdefine_123 -abcDoWORD Ifcas SIG3若有以下类型说明语句:char w;int x;float y,z;则表达式w*x+z-y的结果为_类型。A)floatB)char C)int D)double4 main()float x=123.456;printf(-52fn,x);以上程序输出的结果是_。A)1234B)1235C)12345D)123465下面语句的输出结果是_。Printf(dn,strlen(t065xffn);A)14B)8C)5 D)输出项不合法,无正常输出6下列程序的输出结果是_。main()int a=0,b=0,c=0;if(+a0|+b0)+c;printf(na=d,b=d,c=d,a,b,c);A)a=0,b=0,c=0 B)a=l,b=l,c=1C)a=l,b=O, c=I D)a=0, b=1c=17下列程序的输出结果是_。Main()int i;for(i=1;i+l;i+)if(i4)printlf(d,i+);break;printf(d,i+);A)55B)56c)程序错误,没有输出D)循环条件永远为真,死循环8下列程序的输出结果是_。#define A 100main()int i=O,sum=O;doif(I=(i2)*2)continue;sum+=i;while(+i;printf(dn,sum);A)2500B)2550C)4D)O9下列程序的输出结果是_。main()int I=3;switch(i) case 1:case 2:printf(d,i);case 3:case 4:break;default:printf(OK);A)0B)3C)OKD)没有任何输出10下列程序执行后的输出结果是_。main()int m3=1,4,7,2,5,8,3,6,9;int i,k=2:for(I=0;i3;i+)printf(d,mki);A)456B)258C)369D)78911设已定义k为int类型变量,则以下for循环语句_。for(i=0;k=-1,k=1;i+,k+)printf(*n);A)判断循环结束的条件不合法B)是无限循环C)循环一次也不执行D)循环只执行一次12 C语言函数返回值的类型是由_决定的。A)return语句中的表达式类型B)调用函数的主调函数类型c)调用函数时临时 D)定义函数时所指定的函数类型13下列程序执行后输出的结果是_。int d=l:fun(int p)int d=5;d+=p+;printf(d,d);main()int a=3;fun(a);d+=a+:printf(dn,d);A)8,12B)9,13C)8,4D)9,514 定义int *swap()指的是_。A)一个返回整型值的函数swap()B)一个返回指向整型值指针的函数swap()C)一个指向函数swap()的指针,函数返回一个整型值D)以上说法均错15以下程序段的输出结果是_。main() char s110,s210,s310;scanf(s,s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);输入数据如下:(此处代表回车符)aaabbbA)aaaB)aaaC)aaa0bbb0D)aaabbb bbb bbb bbb16 下述函数功能是_。Int fun(char*x)char*y=x;while(*y+);return y-x-l;A)求字符串的长度B)求字符串存放的位置C)比较两个字符串的大小D)将字符串x连接到字符串y后面17以下程序的输出结果是_。main() char str12=s,t,r,i,n, g;printf(dn,strlen(str);A)6B)7C)llD)1218请读程序段:char str=ABCD,*p=str;printf(dn,*(p+4);程序段的输出结果是_。A)68 B)0C)字符D的地址D)不确定的值19若有定义:int a410;,则以下选项中对数组元素aij引用错误的是_。(0=i4,0=j10)A)*(aOO+10*i+j) B)*(a+i)+jC)*(*(a+i)+j) D)*(ai+j)20请读程序:#include#includemain()char*sl=AbCdEf,*s2=aB;s1+;s2+;printf(dn,strcmp(s1,s2);上面程序的输出结果是_。A)正数B)负数C)零D)不确定的值21下面程序的输出是_。char s=ABCD;main()char*p;for(p=s;p;p+)printf(sn,p);A)ABCDB)AC)DD)ABCD BCD BC ABC CDCB AB D DA A22以下程序输出的结果为_。main()char* alpha6=ABCD,EFGH,IJKL,MNOP,QRST,UVwX;char*p;int i:p=alpha;for(I=0;i4;i+)printf(s,pI);A)ABCDEFGHIJKLB)ABCDC)ABCDEFGHIJKLMNOPD)AEIM23若一个外部变量的定义形式为static int x;,那么,其中static的作用应该是_。A)将变量存储在静态存储区B)使变量x可以由系统自动初始化c)使x只能在本文件内引用D)使x的值可以永久保留24下面是对宏定义的描述,不正确的是_。A)宏不存在类型问题,宏名无类型,它的参数也无类型B)宏替换不占用运行时间C)宏替换时先求出实参表达式的值,然后代入形参运算求值D)宏替换只不过是字符替代而已25若有如下说明,则_的叙述是正确的。struct stint a;int b2l;a;A结构体变量a与结构体成员a同名,定义是非法的B程序只在执行到该定义时才为结构体st分配存储单元c程序运行时为结构体st分配6个字节存储单元D类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)26若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;A)examplex=10B)example v2x=10C)struct v2;v2x=lOD)struct example v2=10;27下列程序的执行结果是_。#includehunion unint i;char c2;void main() union un x;xc0=10:xc1=1:printf(nd,xi);A266BllC265D13828 已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是_。main()unsigned int a=32,b=66;printf(cn,atb);A)66B)98C)bD)B29 C语言库函数gets(str,n,fp)的功能是_。A)从fp指向的文件中读取长度n的字符串存入str指向的内存B)从fp指向的文件中读取长度不超过n-l的字符串存入str指向的内存C)从fp指向的文件中读取n个字符串存Xstr指向的内存D)从str读取至多n个字符到文件fp30下述程序向文件输出的结果是_。#includehvoid main()FILE*fp=fopen(TEST,wb);fprintf(fp,d50fcd,58,762730,-,2278);fclose(fp);A)58 76273-2278B)5876273000000-2278c)5876273-2278 D)因文件为二进制文件而不可读二、填空题1若有定义int m=5,y=2,则执行表达式y+=y-=m*=y后,y的值为_。2若x和y都是double型变量,ix的初值为30,y的初值为20,则表达式pow(y,fabs(x)的值为_。3下列程序执行后输出的结果是_。f(int a)static c=0;C=a+C+:return(c);main()int a=2,i,k;for(i=O;i2;i+)k=f(a+);printf(dn,k);4下面程序执行后输出的结果是_。int m=13:int fun(int x,int y)int m=3;return(x*y-m);main()int a=7,b=5;printf(dn,fun(a,b)m);5下列程序执行后输出的结果是_。main()nt arr10,i,k=0;for(I=0;i;i+)arrI=i;for(I=1;ix);7下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个print语句的输出结果是_。main() int a 10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(Xn,p);printf(xn,p+9);8以下函数的功能是计算s=l+l2!+l3!+ln!,请填空.double fun(int n)double s=OO,fac=1O;int i,k=1;for(i=l;i3:printf(x=o,x);10函数delete(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。void delete(char s,int i,int n)int j,k,length=O;while(s1ength)_;-i:j=i;if(_)k=i+n;if(i+n=length)while(ksj+=sk+;sj=0;三、编程题1、 从键盘上输入若干个学生的成绩,统计并输出最高和最低成绩、平均分及各分数段的人数,当输入负数时结束输入。2、 输入若干个学生的信息(包括学号,姓名,性别,年龄,入学成绩),将每一个学生的信息作为一个接点,形成一个先进先出的单向链表,并输出此链表。C语言模拟题五 C语言模拟题五一 、选择题 1. 一个c语言源程序中 。 A.、必须有一个主函数。 B、可以有多个主函数。 C、必须有主函数和其他函数。 D、可以没有主函数。2 .以下选项中合法的用户标识符是_。A、 long B、 _2Test C、 3Dmax D、 A.dat3 .已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量103是_。A、 字符C B、字符a C、字符e D、非法的常量4 .已知i、j、k为int型变量,若从键盘输入:1 2 3 ,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。A、 scanf(%2d%2d%2d,&i,&j,&k);B、 scanf(%d %d %d,&i,&j,&k);C、 scanf(%d,%d,%d,&i,&j,&k);D、 scanf(i=%d,j=%d,k=%d,&i,&j,&k);5. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是_。A、 6 B、 0 C、2 D、 16. 以下选项中,与k=n+完全等价的表达式是_。A、 k=n,n=n+1 B、 n=n+1,k=n C、k=+n D、 k+=n+17. C语言中,函数的存储属性可以缺省,此时函数的隐含存储属性是_。A、 auto B、 static C、extern D、register8. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是_。A、 p=q; B、 *p=*q; C、 n=*q; D、 p=n;9. 有以下程序int f(int n) if (n=1) return 1;else return f(n-1)+1;main()int i,j=0;for(i=1;i3;i+) j+=f(i);printf(%dn,j);程序运行后的输出结果是_。A、4 B、3 C、2 D、110. .若变量已正确定义并赋值,表达式_不符合C语言语法。A、a*b/c; B、3.14*5%2 C、2, b D、a/b/c11 .在 C 程序中,用_表示逻辑值“真”。A、1 B、非 0 的数 C、非 1 的数 D、 大于 0 的数12. _把x、y定义成float类型变量,并赋同一初值3.14。A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14;13 .若变量已正确定义,表达式_的值不是2。A、2&3 B、1b) k=0; else k=1;”和_等价。 A、k=(ab)?1:0; B、k=ab;C、k=a=b; D、a=b ? 0 : 1;15 .设变量定义为“int x, *p=&x;”,则&*p

温馨提示

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

评论

0/150

提交评论