您好,欢迎访问三七文档
2002-2003学年第2学期C语言期末考试题一.单项选择题。(每小题2分,共50分)1.在C语言中合法的变量名是()A)switchB)a_2C)2aD)int2.在C语言中,合法的字符常量是()A)’\X43’B)’\084’C)’ab’D)“\0”3.若已定义x和y为float类型,则逗号表达式:(x=1,y=x+3.0/2.0)的值是()A)1B)2C)2.500000D)2.0000004.合法的数组定义是()A)inta[]=”string”;B)inta[]={0,1,2,3,4,5};C)chars=”string”;D)chara[6]={0,1,2,3,4,5,6};5.若w=1,x=2,y=3,z=4,则表达式wx?w:yz?y:z结果为()A)4B)3C)2D)16.以下不是无限循环的是()A)for(y=4,x=1;xy;x+=2)B)for(;;x++)C)while(1)x++;D)for(i=10;;i--)sum+=i;7.设a,b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b);后要使a值为’A’,b值为’B’则从键盘的正确输入是()A)’A’’B’B)’A’,’B’C)A=A,B=BD)a=A,b=B8.若有定义和语句:int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(“%d,%d\n”,*p,**pp);则输出结果是()A)10,20B)10,10C)20,10D)20,209.若有以下定义和语句:intu=010,v=0x10,w=10;printf(“%d,%d,%d\n”,u,v,w);则输出结果是()A)8,16,10B)10,10,10C)8,8,10D)8,10,1010.若有以下定义:chars[20]=”programming”,*p=s;则不能正确表示s[2]元素的表达式是()A)p+2B)*(s+2)C)p[2]D)p+=2,*p11.#defineS(x)x则表达式w=2*S(1+5)的值是()A)12B)7C)表达式有错D)2*S612.若有以下定义和语句:char*s1=”12345”,*s2=”1234”;printf(“%d\n”,strlen(strcpy(s1,s2)));则输出结果是()A)4B)5C)9D)1013.若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能正确表示a数组元素的表达式是()A)*pB)a[10]C)*aD)a[p-a]14.以下可以作为文件打开函数fopen中的第一个参数的正确格式是()A)”c:\\user\\f1.dat”B)c:\user\f1.datC)c:user\f1.datD)”c:\\user\f1.dat15.当c值不为0时,下列选项能正确将c值赋给变量a,b的是()A)c=b=a;B)(a=c)||(b=c);C)(a=c)&&(b=c);D)a=c=b;16.有如下定义:structnum{inta;intb;floatf;}n={1,3,5.0};structnum*p=&n;则表达式(*p).a+p-f的值是()A)6B)6.0C)5.0D)517.若有以下的定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是()A)p+=2,*(p++)B)p+=2,*++pC)p+=3,*(p++)D)p+=2,++*p18.假定所有变量均已正确说明,下列程序段运行后x的值是()a=b=c=0;x=35;if(!a)x--;elseif(c)x=3;elsex=4;A)4B)34C)35D)319.在以下一组运算中,优先级最高的运算符是()A)=B)=C)%D)&&20.若有以下定义和语句:intw[2][3],(*p)[3];p=w;则对w数组元素非法引用是()A)*(w[0]+2)B)*p[2]C)p[0][0]D)*(p[1]+2)21.若有以下程序段:charstr[]=”ab\n\012\\\t”;printf(“%d”,strlen(str));上面程序片段的输出结果是()A)3B)4C)6D)1222.主函数main()带参数的正确形式是()A)main(int*argc,charargv)B)main(intargc,charargv[])C)main(intargc,charargv)D)main(intargc,char*z[])23.以下叙述中不正确的是()A)在C语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。B)在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容。C)在C语言中,外部变量的隐含类别是自动存储类别(auto)。D)在C语言程序中,main()函数只能有一个。24.设有如下程序,运行结果是()main(){inty=9;for(;y0;y--)if(y%3==0)printf(“%d”,--y);}A)852B)963C)1063D)74125.设有以下定义,则共用体变量v在内存中占的字节数是()uniongong{longa;intb;charc;}v;A)2B)4C)6D)7二、填空题(每题2分,共14分)1.如下程序计算1-100之内(包括100)所有偶数之和,请将程序补充完整。main(){inti=1,sum=0;while((1)){if(i%2==0)(2);i=i+1;}printf(“sum=%d\n”,(3));}2.在一维数组a中找出最大值及最小值,分别存放在max和min变量中,并输出max和min。main(){inta[10],i,max,min;for(i=0;i10;i++)scanf(“%d”,(1));max=a[0];(2);for(i=1;i10;i++)if((3))max=a[i];for(i=1;i10;i++)if(mina[i])(4);printf(“%d,%d”,max,min);}三、读程序写出运行结果(共26分)1.inta=9,b=8;(5分)max(inta,intd){intc=6;if(ad)c=a;b++;returnc;}main(){inta=7,c;c=max(a,b);printf(“%d,%d,%d”,a,b,c);}答案:2.main()(5分){inti,j,k;for(i=0;i4;i++){for(j=0;j=2-i;j++)printf(“”);for(k=0;k=2*i;k++)printf(“*”);printf(“\n”);}}答案:3.main()(3分){charc1,c2;c1=’a’;c2=’c’;c1=c1-32;c2=c2-32;printf(“%c,%c”,c1,c2);}答案:4.main()(4分){inta,b,c;a=4;b=6;c=8;if(a++=b--){a=b;b=c;}c=a;printf(“%d,%d,%d”,a,b,c);}答案:5.f(intx)(5分){inta=1;staticintb=2;b+=1;a++;return(a+b+x);}main(){inti=0;for(;i3;i++)printf(“%d”,f(i));}答案:6.main()(4分){inti,s=0;for(i=0;i10;++i){if(i%2==0)continue;s=s+i;}printf(“s=%d\n”,s);}答案:四、编程题(每小题5分,共10分)1.输出1~100之间的所有素数2.如下程序在主函数中有二维数组a,并存放12个数,函数average计算12个数的平均值,请将程序补充完整。floataverage(intb[3][4],intn){填写语句}main(){inta[3][4]={2,6,4,12,45,4,7,8,14,56,63,87};floataver;aver=average(a,3);printf(“%f\n”,aver);}一、选择题。(1)B(2)A(3)C(4)B(5)D(6)A(7)D(8)D(9)A(10)A(11)B(12)A(13)B(14)A(15)C(16)B(17)A(18)B(19)C(20)B(21)C(22)D(23)C(24)A(25)B二、填空题。1。(1)i=100(2)sum+=i;(3)sum2。(1)&a(2)min=a[0];(3)maxa(4)min=a;三、读程序写出运行结果。1。7,9,72。****************3。A,C4。5,5,55。5796。s=25四、编程题。1。#includestdio.h#includemath.hmain(){intn,i,j,k;for(j=1,n=0;j100;j++){if(n%10==0)printf(\n);k=sqrt(j);for(i=2;i=k;i++)if(j%i==0)break;if(i=k+1){n=n+1;printf(%6d,j);}}}2。floataverage(intb[3][4],intn){inti,j;floatsum=0.0,av=0.0;for(i=0;in;i++)for(j=0;j4;j++)sum=sum+b[j];av=sum/(i*j);returnav;}长安大学2003-2004学年第2学期C语言期末考试题B卷一.单项选择题。(每小题2分,共50分)1.C语言适合于()A)数据处理B)算法描述C)应用程序设计D)系统程序设计2.在C语言中合法的变量名是()A)_aB)2mC)a-bD)do3.在C语言中,合法的字符常量是()A)'\018’B)'\\'C)'ab'D)\04.若已定义a为整型,并赋值为10,则a+=a-=a*=a的值是()A)0B)-80C)-90D)-1005.一个可执行C程序的开始执行点是()A)程序的第一行语句B)程序的第一个函数C)名为main()的函数D)包含文件的第一个函数6.要使a=123,b=456,则对应于语句scanf(%d:%d,&a,&b);正确的输入是()A)123456B)123456C)123,456D)123:4567已知inta=1,b=2,c=3;则以下语句执行后a,b,c的值是()if(ab)a=b;b=c;c=a;Aa=1,b=2,c=3B)a=2,b=3,c=1C)a=1,b=3,c=1D)a=1,b=3,c=28.C语言的if语句中,用作判断的表达式为()A)任意表达式B)算术表达式C)关系表达式D)逻辑表达式9.下列程序段中的循环体()intn=20;do{n/=2;}while(n--);A)执行2次B)执行3次C)执行4次D)不确定10.合法的数组定义是(A)inta(5)={1,2,3,4,5};B)inta[][3]={{0,1,2},{},{9,8,7}};C)chara[5]=Iamaboy!;D)inta[]=boy;11.有如下语句,则输出结果为()intlen;staticcharstr[20]={\n\t%%\x1b\092uv\122};len=strlen(str);printf(%d,len);A)20B)5C)6D)912.以下程序段的输出结果是()staticcharstr[]={1,2,3,4};printf(%c,str[3]);A)1,2,3,4B)4C)2D),13.若有x=1,y=2,z=3,则表达式((xy)?x:y)==z++值是()A)0B)1C)2D)314.以下正确的函数定义形式是()A)floathsu(inta,intb)B)floathsu(inta;intb)C)floathsu(inta,intb);D)floathsu(inta,b)15.C语言规定,函数返回值的类型是由()A)调用该函数时系统临时决定B)调用该函数时的主调函
本文标题:c语言试题
链接地址:https://www.777doc.com/doc-2908515 .html