长安大学2018-2019学年C语言程序设计试卷_第1页
长安大学2018-2019学年C语言程序设计试卷_第2页
长安大学2018-2019学年C语言程序设计试卷_第3页
长安大学2018-2019学年C语言程序设计试卷_第4页
长安大学2018-2019学年C语言程序设计试卷_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

长安大学2018-2019学年第二学期试卷(A)站名课程名称C语言程序设计学生姓名学号成绩一、单项选择题(每小题2分,共30分)1、下面标识符中,均为不合法的用户标识符为()A)AB、x_0、for B)float、1a0、_YC)x-y、goto、123 D)_123、tmp、CHAR2、C语言中,int型数据在内存中的存储形式是()A)ASCII码 B)原码C)反码 D)补码3、执行printf(“%x”,100);后的输出结果为()A)100 B)0x100C)0x64 D)644、能表示条件-100≤x≤100的C语言表达式是()A)-100<=x<=100 B)x>=-100,x<=100C)-100≤x≤100 D)x>=-100&&x<=1005、C程序中,注释部分的位置()A)必须在一行的开始B)必须在语句之后C)必须在一行的最后D)以上三种都可以6、对数组的描述正确的是()A)数组一旦定义其大小是固定的,但数组元素的类型可以不同B)数组一旦定义其大小是固定的,但数组元素的类型必须相同C)数组一旦定义其大小是可变的,但数组元素的类型可以不同D)数组一旦定义其大小是可变的,但数组元素的类型必须相同7、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是()A)132(回车)B)1,3,2(回车)C)a=1b=3c=2(回车)D)a=1,b=3,c=2(回车)8、已知ch是字符型变量,下面正确的赋值语句是()A)ch='123'; B)ch='\xff';C)ch="\08"; D)ch="\";9、以下程序的输出结果是:() main() { intx=2,y=-1,z=2; if(x<y) if(y<0)z=0; elsez+=1; printf("%d\n",z); }A)3 B)2 C)1 D)010、下面程序段的运行结果是:() a=1;b=2;c=3; while(a<b<c) {t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,111、下述对C语言字符数组的描述中错误的是()A)字符数组可以存放字符串B)字符数组的字符串可以整体输入或输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较12、以下正确的函数定义形式(即定义函数时函数首部的形式)是()A)doublefun(intx,inty)B)doublefun(intx;inty)C)doublefun(intx,y)D)doublefun(intx,inty);13、C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为()类型。A)void B)double C)int D)char14、下面程序段输出结果是() charstr[]="adcd",*ps=str; printf("%d\n",*(ps+4));A)100B)0 C)字符'd'的地址D)不确定15、下面四个程序中,被调用函数的实参、形参使用正确的是()A)B)C)D)main()main()main()main(){inta[10],*p;{inta[10],*p;{inta[10],*p;{inta[10],*p;p=a;p=a;p=a;p=a;f(&p);f(p);f(p);f(&p);}}}}f(int*x)f(int*x)f(intx)f(intx[]){.....}{.....}{.....}{.....}二、判断题(对的打“√”,错的打“×”,每小题1分,共10分)1、C程序执行的入口是main函数,所以main函数必须放在程序的开头。2、注释内容太多会影响程序的执行效率。3、若i,sum都为整型,则语句:for(i=1,sum=0;i<=100;i++){sum=sum+i;}执行完毕之后i为100。4、若定义inta[5][10],则数组中最后一个有效元素是a[5][10]。5、若运行时输入:100(回车)时,下面的程序运行结果是:no main() { inta; scanf(“%d”,&a); printf(“%s”,(a%2)!=0?“no”:“yes”); }6、字符串“that”小于字符串“The”。7、若调用一个函数,且此函数中没有return语句,则没有返回值。8、若i为整型变量,则以下循环体执行次数是0次。 for(i=2;i==0;) printf(“%d”,i--);9、对于“do{循环体}while(循环条件);”,这个循环结构有可能一次循环体的内容都无法执行。10、当定义了一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和。三、程序填空题(每小题2分,共分20分)1、下面程序的功能为:从字符串"ComputerandC"中删去所有空格,请填空。 #include<string.h> main() { charstr1[80]="ComputerandC",str2[80];inti,j=0;for(i=0;i<(1);i++)if(str1[i](2)''){str2[j]=str1[i];(3);}str2[j]='\0';printf("%s",str2); }2、下面程序的功能为:把100~200之间的不能被3整除的数输出,请填空。 main() { intn;for((4);(5);(6)){ if(n%3==0)(7);printf("%d\n",n);}}3、下面程序的功能为:求两个同心圆面积差,请填空。 structpoint { floatx; floaty; } structcircle { structpointdot; floatr; }main(){ structcirclecir1,cir2; floatarea1,area2; printf(“Pleaseinputthefirstcircleinformation:\n”); scanf(“%f,%f,%f”,&cir1.dot.x,(8),&cir1.r); printf(“Pleaseinputthesecondcircleinformation:\n”); scanf(“%f,%f,%f”,&cir2.dot.x,&cir2.dot.y,&cir2.r); area1=3.14*cir1.r*cir1.r; area2=(9); if(area1>=area2) printf(“Area=%f\n”,(10)); else printf(“Area=%f\n”,area2-area1);}四、读程序写结果题(每小题4分,共20分)1、有下列程序运行时,从键盘输入:ah2MA_Aha(回车)(注:_代表空格),请写出该程序的运行结果。提示:小写字母的ASCII码减去32为对应大写字母的ASCII码,反之,大写字母的ASCII码加上32为对应小写字母的ASCII码。#include“stdio.h”main(){ chars[80],c=’a’; inti=0; scanf(“%s”,s); while(s[i]!=‘\0’) { if(s[i]==c) s[i]=s[i]-32; elseif(s[i]==c-32) s[i]=s[i]+32; i++; } puts(s);}运行结果:2、请写出下面程序的运行结果。#include“stdio.h”main(){ inta,s,n,count; a=2;s=0;n=1;count=1; while(count<=5) { n=n*a; s=s+n; count++; } printf(“s=%d”,s);}运行结果:3、当从键盘键入abcd(回车)时,请写出下面程序的输出结果。 #include“stdio.h” try_me() {charch;scanf(“%c”,&ch);if(ch!=‘\n’){ try_me(); printf(“%c”,ch);} } main() {try_me(); }运行结果:4、 请写出下面程序的输出结果。func(intx){ x=1;return(x);}main(){ intx=3;func(x);printf("%d,%d\n",x,func(x));}运行结果:5、 请写出下面的C程序段输出结果。intx1=3,x2=4;main(){ intx3=1,x4=2; sub(x3,x4); sub(x1,x2); printf(“x1=%d,x2=%d,x3=%d,x4=%d”,x1,x2,x3,x4);}sub(intx,inty){ intx1; x1=x; x=y; y=x1;}运行结果:五、编程题(每小题10分,共20分)1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。(10分)提示:对于一个三位数n,百位数i=n/100;十位数j=n/10%10;个位数k=n%10。2、编写函数实现下面问题。题意要求:输入若干整数,其值均在1至4范围内,用-1做为输入的结束标志,请编写函数f用于统计每个整数的个数。#defineM50main(){ inta[M],c[5]={0},n=0,i,x; printf(“Enter1or2or3or4,toendwith-1\n”); scanf(“%d”,&x); while(x!=-1) { if(x>=1&&x<=4) { a[n]=x; n++; } scanf(“%d”,&x); } f(a,c,n); /*调用函数f*/ printf(“Outputtheresult:\n”); for(i=1;i<=4;i++) printf(“%d:%d\n”,i,c[i]); printf(“\n”);}f(inta[],intc[],intn){ ……}1)请补充f函数,将f函数实现完整。f函数的功能:对a数组的前n个元素进行统计,为1的个数存放在c[1]中,……,为4的个数存放在c[4]中,c[0]弃之不用。(6分)2)请用流程图(或N-S流程图)描述出f函数的实现流程。(4分)长安大学2018-2019学年第二学期试卷(B)站名课程名称C语言程序设计学生姓名学号成绩一、填空题(每小题2分,共10分)1.计算机软件分为系统软件与应用软件,UNIX属于_______________.2.以下程序运行后的输出结果是______。main(){intp=30;printf("%d\n",(p/3>0?p/10:p%3));}3.C语言中唯一的一个三目运算符的表达形式为_______________。4.C语言的所有基本语句按照结构可分为___________、____________、____________、____________。5.C语言提供的三个无条件转向语句,分别是___________、____________、____________。二、选择题(每小题2分,共70分)注意:请务必把该题的答案按照顺序写在下面的表中!12345678910111213141516171819202122232425262728293031323334351.C语言规定,程序中各函数之间________。A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用2.在使用程序流程图来表示算法时,菱形用来表示________。A)输入与输出B)子程序C)判断分支D)循环边界3.C语言中下列叙述正确的是________。A)不能使用do…while语句构成的循环B)do…while语句构成的循环,必须用break语句才能退出C)do…while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do…while语句构成的循环,当while语句中的表达式值为零时结束循环4.以下选项中属于C语言的数据类型是________。A)复数型B)逻辑型C)双精度型D)集合型5.在C语言中,不正确的int类型的常数是________。A)32768B)0C)037D)0xAF6.以下程序输出的结果是________。main(){inta=65535;printf("%d%u",a,a);}A)-1-1B)6553565535C)-165535D)65535-l7.下列描述中不正确的是________。A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出c)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值8.以下程序的输出结果是________。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(I=0;i<4;i+=2)printf("%d",p[I]);}A)52B)5lC)53D)979.下列可用于C语言标识符的一组是________。A)voidWORDdefineB)a6$sysForC)2asizeofabcD)Intdefinesizeof10.以下程序的运行结果是__________。#include"stdio.H"main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p十5);printf("%d%d、n",'p,*q);}A)运行后报错B)66C)612D)5511.以下说法中正确的是_________。A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义c)c语言程序总是从main()函数开始执行D)c语言程序中的main()函数必须放在程序的开始部分12.有如下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));}程序运行后的输出结果为__________。A)编译出错B)9C)21D)9.013.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。A)(a>=‖b>=0)&&(a<O‖b<O)B)(a>=0&&b>=O)&&(a<0&&b<O)C)(a+b>0)&&(a+b<=0)D)a*b>014.若己定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式是__________。A)p+lB)a+lC)a++D)++p15.以下程序的输出结果是__________。main(){inta==-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}A)-1lB)0lC)10D)0016.以下选项中可作为C语言合法整数的是________A)10110BB)0386C)0XffaD)x2a217.以下不能定义为用户标识符的是__________A)scanfB)VoidC)_3com_D)int18.有以下程序main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序运行后的输出结果是___________A)16516.5B)1651.56.5C)1651.06.5D)2651.56.519.以下选项中非法的表达式是_________A)0<=x<100B)i=j==0C)(char)(65+3)D)x+1=x+120.有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是___________A)0,0B)0,1C)1,0D)1,121.设有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));则以下叙述中正确的是_____________A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为200322.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是____________A)x=x*100+0.5/100.0;B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;23.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是___________A)if(c<a)x=1;B)if(a<3)x=3;elseif(b<a)x=2;elseif(a<2)x=2;elsex=3;elsex=1;C)if(a<3)x=3;D)if(a<b)x=b;if(a<2)x=2;if(b<c)x=c;if(a<1)x=1;if(c<a)x=a;24.有以下程序main(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是__________A)-1B)-3C)-5D)025.有以下程序main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);}程序运行后的输出结果是________________A)1,1B)2,2C)3,3D)4,426.要求以下程序的功能是计算:s=main(){intn;floats;s=1.0;for(n=10;n>1;n--)s=s+1/n;printf("%6.4f\n",s);}程序运行后输出结果错误,导致错误结果的程序行是_________________A)s=1.0;B)for(n=10;n>1;n--)C)s=s+1/n;D)printf("%6.4f\n",s);27.已定义ch为字符型变量,以下赋值语句中错误的是______________A)ch='\';B)ch=62+3;C)ch=NULL;D)ch='\xaa';28.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参29.已定义c为字符型变量,则下列语句中正确的是____________A)c='97';B)c="97";C)c=97;D)c="a";30.以下不能正确定义二维数组的选项是_________A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};C)inta[2][2]={{1},2,3};D)int

温馨提示

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

评论

0/150

提交评论