您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 南昌大学C语言05~06第二学期试卷A及答案
第1页共11页南昌大学2005~2006学年第二学期期末考试试卷试卷编号:(A)卷课程编号:课程名称:C程序设计考试形式:闭卷适用班级:全校理工科姓名:学号:班级:学院:专业:考试日期:题号一二三四总分累分人签名题分50182012100得分考生注意事项:1、本试卷共9页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、单项选择题(每空2分,共50分)(请将各小题正确答案的字母序号填到相应小题的下划线上)得分评阅人1.C语言的运算符按运算对象的数目可以分为。A)单目运算一种B)单目和双目运算符C)单目、双目和三目运算符D)单目、双目、三目运算和四目运算符2.C语言表达式2/5*10的值是。A)0.04B)4C)4.0D)03.已知变量f和i的类型说明如下:floatf=12.34;inti;则以下符合C语言语法的表达式是。A)i=(int)f%5B)i=int(f)%5C)i=f%5D)i=(intf)%54.能正确表示数学式1≤x≤5的C语言表达式是。A)1=x=5B)(x=1)&(x=5)C)(x=1)&&(x=5)D)(1=x)||(5=x)5.设变量c的数据类型是char,i的数据类型是int,f的数据类型是float,则C语言表达式c*i+c*f-i+100值的数据类型为。A)intB)floatC)charD)不确定第2页共11页6.在下列选项中,合法的C语言用户标识符的是。A)intB)sinC)ifD)i+j7.C程序的执行从开始。A)程序中的第1个语句B)程序中的第1个函数C)名为main的函数D)包含文件的第1个函数8.凡在C语言函数中未指定存储类别的变量,其隐含的存储类别为。A)自动(auto)B)静态(static)C)字符串D)字符或字符型变量值9.以下程序运行时要求输入10和20分别存放在变量x和y中,能正确输入数据的是。main(){intx,y;scanf(x=%d,y=%d,&x,&y);printf(x+y=%d,x+y);}(说明:用CR表示换行符,用_表示空格符)A)10_20CRB)x=10,y=20CRC)10CRD)x=10CR20CRy=20CR10.下面程序的运行结果是。main(){inta,b;a=32767;b=a+1;printf(a=%d,b=%d\n,a,b);}A)a=32767,b=-32768B)a=32767,b=32768C)a=32767,b=1D)运行出错11.在C语言中,以下错误的描述是。A)break语句不能用于循环语句和switch语句外的任何其它语句B)在switch语句中使用break语句或continue语句的作用相同C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环12.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是。A)数组首地址B)数组的第一个元素值C)数组中全部元素的值D)数组元素的个数13.C语言编译系统对宏命令是。A)在程序运行时进行替换处理B)在程序连接时进行处理C)和源程序中其它C语句同时进行编译D)在对源程序中其它成份正式编译之前进行处理第3页共11页14.设x、y为整型变量且已赋值,将其中较大的值输出的、正确的if语句是。A)if(xy)printf(“%d”,x);B)if(xy)printf(“%d”,x);printf(“%d”,y);C)if(xy);printf(“%d”,x);elseprintf(“%d”,y);D)if(xy)printf(“%d”,x);elseprintf(“%d”,y);15.对以下程序段描述正确的是。x=10;while(x)x=x/4;A)不执行循环体B)循环体执行一次C)循环体执行二次D)死循环16.在C语言中,引用数组元素时,对数组下标的数据类型以下说法错误的是。A)数组下标可以用整型常量B)数组下标可以用整型变量C)数组下标可以用任意类型的表达式D)数组下标可以用整型表达式17.以下C函数的功能是。intfun(intx,inty){intz=0;z=xy?x:y;returnz;}A)求x和y二者中的最大值B)求x和y二者中的最小值C)返回一个不确定的值D)返回函数值为“0”18.定义数组:ints[10];则数组元素下标的取值。A)最小值为1,最大值为10B)最小值为0,最大值为10C)最小值为0,最大值为9D)最小值为1,最大值为919.已知inti,s[4][5];不能表示数组第3行第3列元素值的是。A)*(*(x))+3B)x[3][3]C)*(*(x+3)+3)D)*(x[3]+3)20.以下C函数的类型是。fun(floatf){printf(“%f\n”,f);}A)intB)floatC)voidD)无法确定21.设char*s1,s2[255]=“programing”;以下操作正确的是。A)*s1=“function”;B)s2=“function”;s1=s2;C)s1=“function”;s2=s1;D)*s2='P';s1=s2;22.设有说明语句:structstudent{intnum,age;};structstudentstu[3]={{6001,20},{6003,21},{6005,19}};structstudent*p=stu;则下面的C语言表达式中,值为6003的是。A)++(p-num)B)(p++)-numC)(*p++).numD)(*++p).num23.已有定义int(*p)();则指针p可以。A)代表函数的返回值B)指向函数的入口地址C)代表函数的类型D)代表函数返回值的类型第4页共11页24.若用下列语句输出26个大写英文字母:(1)for(a='A';a='Z';a++)printf(%c,a);(2)for(a='Z';a='A';a--)printf(%c,a);(3)for(a='A';a='Z';)printf(%c,a++);(4)for(a='A';a++='Z';)printf(%c,a);以下说法正确的是。A)全都能输出B)只有前三个语句可以输出C)只有前两个语句可以输出D)只有第一个语句可以输出25.设以下程序用来求三个元素的数组中,第1个元素与第3个元素之和(程序每行前面的数字表示行号)。1main()2{inta[3]={3*0},i;3for(i=1;i3;i++)scanf(%d,a[i]);4for(i=1;i3;i++)a[0]=a[0]+a[i+1];5printf(%d,a[0]);}则下述说法正确的是。A)第2行有语法错误B)第3行有错误,程序得不到预期结果C)编译时第4行出现语法错误D)可以得到正确结果二、程序阅读题(每小题3分,共18分)(写出以下程序运行的结果)得分评阅人1.#includestdio.hmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%d\n,c,d);}程序运行结果为:2.#includestdio.hmain(){inta=10,b=0;if(a!=0){a=a+1;b=b+1;}else{a=a+2;b=b+2;}printf(“%d,%d\n,a,b);}程序运行结果为:第5页共11页3.#defineV(s)s*s*s#includestdio.hmain(){intvolume;volume=V(1);printf(%d\t,volume);volume=V(2);printf(%d\t,volume);volume=V(1+2);printf(%d\n,volume);}程序运行结果为:4.#includestdio.hmain(){chars[]={12345};voidsub_s1(chars[],intn);voidsub_s2(chars[],intn);sub_s1(s,5);sub_s2(s,6);}voidsub_s1(chars[],intn){inti,j;for(i=0;in;i++){for(j=0;ji;j++)printf(%c,s[j%5]);printf(\n);}}voidsub_s2(chars[],intn){inti,j;for(i=0;in;i++){for(j=i;jn;j++)printf(%c,s[j%5]);printf(\n);}}程序运行结果为:第6页共11页5.#includestdio.hmain(){inti,a;intfun(intm);for(i=0;i2;i++){a=fun(4+i);printf(%d\n,a);}}intfun(intm){staticintn=0;m/=2;m=m*2;if(m){n=n*m;return(fun(m-2));}elsereturn(n++);}程序运行结果为:6.#includestdio.hmain(){inti,k=0,s[10]={1,2,3,4,5,6,7,8,9,10};for(i=0;i10;i++)if(i%2)k+=s[i];for(i=i-1;i=0;i--)if(i%5==0)printf(“%d\t”,s[i]);printf(“%d\n”,k);}程序运行结果为:第7页共11页三、填空题(每空2分,共20分)(请在下划线上填入合适的内容,完成程序或程序段所要求的功能)得分评阅人1.以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,要求在下划线上填入合适的内容,使输入字符串中的‘A’和‘B’转换为字符‘#’输出,其它字符输出为‘*’。#includestdio.hmain(){charc;while((c=getchar())!=________________){switch(c){case'A':case'B':putchar('#');___________________;default:putchar('*');}}}2.以下程序从键盘输入20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。请填空完成。#includestdio.hmain(){inti,a[20],s,n;s=n=0;for(i=0;i20;i++)____________;for(i=0;i20;i++){if(a[i]0)__________________;s+=a[i];n++;}printf(s=%d\t,n=%d\n,s,n);}3.以下函数的功能是删除字符串s中所出现的与变量c相同的字符,请填空完成。voidfun(chars[],charc){inti,j;for(i=j=0;;i++)if(s[i]!=c)___________________;s[j]='\0';}第8页共11页4.以下程序输出1+2+3+……+10的和,请填空完成。#includestdio.hmain(){_______________;i=1;do{s=s+i;i++;}while___________________;printf(%d\n,s);}5.设fp为文件型指针变量,ch为字符变量,以下程序段从键盘输入字符,然后存入磁盘文件,直到输入一个‘#’为止,请填空完成。(注:‘#’不存入文件中)ch=getchar();while(__________){_____________;ch=getchar();}fclose(fp);四、程序设计题(第1小题4分,第2小题8分,共12分)得分评阅人1.编制一个自定义函数,函数的形参为字符数组s1和s2,函数功能是将字符串
本文标题:南昌大学C语言05~06第二学期试卷A及答案
链接地址:https://www.777doc.com/doc-5183963 .html