您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 09-10年第二学期C程序设计期末考试试卷(C
第1页共9页南昌大学2009~2010学年第二学期期末考试试卷试卷编号:(C)卷课程编号:T61050002课程名称:C程序设计考试形式:闭卷适用班级:全校姓名:学号:班级:学院:专业:考试日期:题号一二三四五六七八九十总分累分人签名题分30203515100得分考生注意事项:1、本试卷共9页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。注意:试卷共分四大题,后面有答题卡,答案须写在答题卡上,否则不给分。..................................一、选择题(每题1分,共30分)得分评阅人1、以下叙述正确的是________。A)在C程序中main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的错误2、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是________。A)7B)8C)6D)23、在C语言中,逻辑值“假”用表示。A)0B)1C)非零值D)非零整数4、不能正确表示数学关系0a10的C语言表达式是。A)a0&&a10B)!(a=0)&&!(a=10)C)0a10D)0a&&a105、C语言中的标识符只能由字母、数字、下划线三种字符组成,且第一个字符_____。A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字、下划线中任意一种字符第2页共9页6、下面四个选项中,均是合法转义字符的选项是_______。A)‘\‘‘‘\\‘‘\n‘B)‘\‘‘017‘‘\;;‘C)‘018‘‘f‘‘xab‘D)‘\\0‘‘\101‘‘xlf‘7、在定义inta[5][4];之后,对a的正确引用是。A)a[2][4]B)a[5][0]C)a[0][0]D)a[0,0]8、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf(%d,(x,y));上面程序片段的输出结果是。A)200B)100C)100200D)输出格式符不够,输出不确定的值9、若有以下声明chararray[]=hello;则sizeof(array)的值是。A)5B)6C)4D)710、有以下定义,则正确的叙述是charx[]=abcde;chary[]={’a’,’b’,’c’,’d’,’e’};A)数组x的长度大于数组y的长度B)数组x和数组y的长度相同C)数组x和数组y等价D)数组x的长度小于数组y的长度11、以下叙述中正确的是________A)分号是C语句之间的分隔符,不是语句的一部分B)花括号{和}只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)C程序中注释部分可以出现在程序中任意合适的地方12、有定义语句:intb;charc[10];,则正确的输入语句是_____。A)scanf(%d%s,&b,&c);C)scanf(%d%s,b,c);B)scanf(%d%s,&b,c);D)scanf(%d%s,b,&c);13、设有程序段:intk=10;while(k)k=k-1;则下面描述中正确的是_____。A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次第3页共9页14、以下正确的描述是_____。A)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用goto语句15、执行下列语句中,sum变量的值是_____。intsum=0;for(i=0;i10;i++,sum+=i);A)45B)55C)0D)编译错误16、下列描述中不正确的是_____。A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值17、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是____。A)if(s1s2)S;C)if(strcmp(s2,s1)0)S;B)if(strcmp(s1,s2))S;D)if(strcmp(s1,s2)0)S;18、以下叙述正确的是_____。A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在19、以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是_____。A)switch(a){case1:a=b;break;default:a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){default:a++;break;case1:a=b;}D)switch(a==1){case1:a=b;break;case0:a++;}第4页共9页20、下列语句组中,正确的是。A)char*s;s=Olympic;B)chars[7];s=Olympic;C)char*s;s={Olympic};D)chars[7];s={Olympic};21、以下对C语言函数的有关描述中,正确的是。A)调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)C程序中有调用关系的所有函数必须放在同一个源程序文件中22、下面程序段运行结果_____。chara[3],b[]=China;a=b;printf(%s,a);A)运行后将输出ChinaC)运行后将输出ChiB)运行后将输出ChD)编译出错23、函数调用语句func((exp1,exp2,exp3,expD,exp5));中,实参的个数为_____。A)1B)2C)4D)524、若有定义int(*pt)[3];,则下列说法正确的是_____。A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组25、若有定义和语句,则输出结果是_____。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%d,%d\n,*p,**pp);A)10,10B)10,20C)20,10D)20,2026、若有以下定义和语句,则输出结果是_____。char*s1=12345,*s2=1234;printf(%d\n,strlen(strcpy(s1,s2)));A)4B)5C)9D)1027、若有以下说明:第5页共9页inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是_____。A)*p+6B)*(p+6)C)*p+=5D)p+528、若有定义:intaa[8];。则以下表达式中不能代表数组元aa[1]的地址的是_____。A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+129、设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是_____。A)struct结构体类型的关键字B)example是结构体类型名C)x,y,z都是结构体成员名D)structex是结构体类型30、假定所有变量均已正确说明,下列是程序段运行后x的值是______。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A)35B)34C)4D)3二、填空题(每空2分,共20分)得分评阅人1、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为【1】。2、在以下一组运算中:.=、=、%、&&,优先级最高的运算符是___【2】。3、若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是【3】。inta,b;scanf(a=%d,b=%d,&a,&b);4、若二维数组a有n行m列,则数组a的元素共有【4】个。5、程序中定义以下宏#defineS(a,b)(a)*(b)若定义inta=3,b=4;则S(a++,b++)的值为【5】。第6页共9页6、表达式!13+2*5+4%3=___【6】。7、循环中break语句的作用是__【7】。8、在C语言中,对文件的读写都是通过【8】实现的,它们包含都在【9】文件中。9、函数fopen()的作用是【10】。三、程序阅读题(每题5分,共35分)得分评阅人1、以下程序的输出结果是______。#includestdio.hvoidmain(){inta=5,b=0,c=0;if(a=b+c)printf(***\n);elseprintf($$$);}2、以下程序的输出结果是______。#includestdio.hvoidmain(){inti,j;for(i=0;i10;i++){j=i*10+6;if(i%3!=0)continue;printf(%5d,j);}}3、以下程序输出结果是______。#include“stdio.h”voidmain(){inti,n[]={0,0,0,0,0};for(i=1;i=4;i++){n[i]=n[i-1]*2+1;printf(%d,n[i]);}}第7页共9页4、以下程序输出结果是______。#include“stdio.h”voidmain(){inti,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)for(j=i+1;j3;j++)a[j][i]=0;for(j=0;j3;j++)printf(%3d,a[2][j]);}5、以下程序的输出结果是______。#includestdio.hfun(intx,inty,int*z){*z=x*x+y*y;}voidmain(){inta=31;fun(5,2,&a);printf(a=%d,a);}6、以下程序输出结果是_____。#include“stdio.h”main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf(s[2]=%d\n,s[2]);}7、有以下程序#includestdio.h#includestring.hvoidfun(char*str){chartemp;intn,i;n=strlen(str);temp=str[n-1];for(i=n-1;i0;i--)str[i]=str[i-1];str[0]=temp;}voidmain(){chars[50];scanf(%s,s);fun(s);printf(%s\n,s);第8页共9页}程序运行后输入:abcdef回车,则输出结果是。四、程序设计题(第1小题6分,第2小题9分,共15分)得分评阅人1、设计一个程序,计算1到100之间同时能被3和7整除的数的和。(6分)2、利用一维数组,实现从键盘输入10个整数,输出其中的最小数。(9分)第9页共9页2009~2010学年第二学期C程序设计期末考试试卷C参考答案一、选择题(每题1分,共30分)1C2B3A4C5C6A7C8A9B10A11D12B13A14B15B16C17D18B19B20A21A22D23D24D25D26A27C28C29B30C二、填空题(每空2分,共20分)三、程序阅读题(每题5分,共35分)四、程序设计题(第1小题6分,第2小题9分,共15分)参考程序:1、#include“stdio.
本文标题:09-10年第二学期C程序设计期末考试试卷(C
链接地址:https://www.777doc.com/doc-5183933 .html