您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > c语言期末测试题(附答案)
计算机技术基础试题第1页(共8页)装订线内答题无效**************************装**********************订********************线**********************课程代码:A100002座位号:《计算机技术基础(C语言)》试卷A姓名:学号:专业:学院:班级:20年月日题号一二三四五六七总分得分第一部分选择题(共30分)一、单项选择题(本大题共15小题,每题只有一个正确答案,答对一题得2分,共30分)1、以下关于C语言标识符的描述中,正确的是【】。A)标识符可以由汉字组成B)标识符只能以字母开头C)关键字可以作为用户标识符D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。inti,j,k;scanf(“%d,%3d%d”,&i,&j,&k);printf(“%d,%d,%d\n”,i,j,k);A)12345678B)123,456,78C)123,45678D)123,*456783、判断char类型的变量c1是否为数字字符的正确表达式为【】。A)(c1=0)&&(c1=9)B)(c1=’0’)&&(c1=’9’)C)’0’=c1=’9’D)(c1=’0’)||(c1=’9’)4、若有语句inta=1,b=2,c=3;则以下值为0的表达式是【】。A)’a’&&’b’B)a=bC)((ab)||(bc)D)(!(a+b)==c&&a)5、已知:inta[2][3];则对数组元素的非法引用是得分评卷人计算机技术基础试题第2页(共11页)【】A.*(a[0]+2)B.a[1][3]C.a[1][0]D.*(*(a+1)+2)6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环B)继续执行break语句之后的循环体各语句C)结束本次循环,进行下次循环D)终止程序运行7、执行语句for(i=10;i0;i--);后,变量i的值为【】。A)10B)9C)0D)18、若有int*p1,*p2,k;不正确的语句是【】A.p1=&kB.p2=p1C.*p1=k+12D.k=p1+p29、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】A.静态(static)B.外部(extern)C.自动(auto)D.寄存器(register)10、如下程序的输出结果是【】main(){intx=2,a=0,b=0;switch(x){case2:a++;b++;case1:++a;b--;break;case0:b++;}printf(a=%d,b=%d\n,a,b);}A.a=2,b=0B.a=2,b=1C.a=1,b=1D.a=1,b=011、表示关系ab=c的C语言表达式为【】A.(ab)&&(b=c)B.(ab)AND(b=c)C.(ab=c)D.(ab)&(b=c)12、有以下程序#includestdio.hmain(){intx;scanf(“%d”,&x);if(x=3);elseif(x!=10)printf(“%d\n”,x);}计算机技术基础试题第3页(共8页)装订线内答题无效**************************装**********************订********************线**********************程序运行时,输入的值在哪个范围才会有输出结果。【】A.不等于10的整数B.大于3且不等于10的整数C.大于3或不等于10的整数D.小于3的整数13、break语句的正确用法是【】A.无论在任何情况下,都中断程序的执行,退出到系统下一层。B.在多重循环中,只能退出最靠近的那一层循环语句。C.跳出多重循环。D.只能修改控制变量。14、若a,b,c,d均为整型变量,执行以下程序段后的t的值为【】#defineMAX(A,B)(A)(B)?(A):(B)................a=5;b=3;c=3;d=4;t=MAX(a+b,c+d)*10;A.70B.7C.8D.8015、执行以下程序段后,m的值为【】inta[6]={1,2,3,4,5,6},m,*p;p=&a[0];m=(*p)*(*(p+2))*(*(p+4));A)15B)14C)13D)12第二部分非选择题(共70分)二、判断题(本大题共10小题,每题1分,共10分,答T表示说法正确.答F表示说法不正确,本题只需指出正确与错误,不需要修改)16.字符型数据不可以进行加减运算。【】17.函数定义与函数的声明是一回事。【】18.在C语言中函数能嵌套调用,也能嵌套定义。【】19.在C语言中switch语句必须使用break语句。【】20.for循环中的三个表达式都可以省略。【】21.do-while循环是先进行循环体语句,后判断表达式。【】22.只能在main()函数中定义静态变量。【】23.char*s1=“Ilovechina”;定义了一个指针变量s1,它的初值为字符串“Ilovechina”的首地址。【】24.int*p[4];与int(*p)[4];的作用相同,都是定义了一个指向数组的指针。【】25.预处理命令行最后也是以分号(;)结尾的。【】得分评卷人计算机技术基础试题第4页(共11页)三、填空题(本大题共6小题,每题3分,共18分。)26、在C语言中*作为单目运算符时表示____________,作为双目运算符时表示__________,而作为一种标记时表示______________。27、表达式(a=3*5,a*4),a+5中a的值是__________,整个表达式的值是_________。28、设有如下的类型说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;若数组所占内存单元的起始地址为446且整型数据占2个字节,则p+5=_______,*(p+5)=______。29、若定义了如下的共用体类型变量x和结构类型变量y,则x和y所占用的内存字节数分别为_________和__________。unionstu1structstu2{intnum;{intnum;charname[5];charname[5];chars;}x;chars;}y;30、在TC中CTRL+F9的功能是__________、__________和_____________。31、有以下程序#includestdio.hmain(){charc1,c2;scanf(“%c”,&c1);while(c165||c196)scanf(“%c”,&c1);c2=c1+32;printf(“%c,%c”,c1,c2);}程序运行输入65回车后,能否输出结果。(请回答能或不能)______。四、简答题(本大题共2小题,每题3分,共6分。)32、C语言中变量的存储类别有几种?局部变量的缺省存储类别是哪种。得分评卷人得分评卷人得分评卷人计算机技术基础试题第5页(共8页)装订线内答题无效**************************装**********************订********************线**********************33、请解释以下与一个C程序有关的3种文件(需要说明这些文件是什么文件、如何形成的):(1)file.c(2)file.obj(3)file.exe五、阅读程序回答问题(本大题共4小题,每题5分,共20分)34、#includestdio.hvoidmain(){inta=10,b=18;fun1(a,b);}intfun1(intx,inty){if(xy)printf(ab\n);elseif(xy)printf(ab\n);elseprintf(a==b\n);}问题:(1)写出程序的运行结果;(2)分别列出形参和实参;(3)解释#includestdio.h。得分评卷人计算机技术基础试题第6页(共11页)35、intfun(inta){intb=0;staticintc=3;b=b+1;c=c+1;return(a+b+c);}main(){inta=2,i;for(i=0;i3;i++)printf(“%d”,fun(a));}问题:(1)写出该程序的运行结果;(2)如果将staticintc=3;语句改写成intc=3;,则运行结果如何变化?为什么?36、main(){inta[2][3]={1,2,3,4,5,6},b[3][2],i,j;printf(“arraya:\n”);for(i=0;i=1;i++){for(j=0;j=2;j++){printf(“%5d”,a[i][j]);b[j][i]=a[i][j];}/*第七行*/printf(“\n”);}printf(“arrayb:\n”);for(i=0;i=2;i++){for(j=0;j=1;j++)printf(“%5d”,b[i][j]);printf(“\n”);}}问题:(1)写出程序的运行结果;(2)如果将第七行中的b[j][i]=a[i][j];语句改写成b[i][j]=a[i][j];,则结果如何变化。计算机技术基础试题第7页(共8页)装订线内答题无效**************************装**********************订********************线**********************37、#includestdio.hvoidfun(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;}voidmain(){intx,y;int*p1,*p2;scanf(%d%d,&x,&y);p1=&x;p2=&y;if(xy)fun(p1,p2);printf(x=%d,y=%d,x,y);}问题:(1)该程序的功能是什么;(2)程序中的*和&分别代表什么运算符?(3)若输入53,则运行结果如何?六、编写程序(本大题共1小题,共10分。)38、输入两个正整数m和n,求其最大公约数和最小公倍数。(先画N-S图,然后再编写程序代码)得分评卷人得分评卷人计算机技术基础试题第8页(共11页)七、程序填空(本大题共1小题,共6分。)39、invert()函数的功能是将一个字符串str的内容倒序存放。例如:字符串str原内容为:abcde,函数调用后变为:edcba。voidinvert(charstr[]){inti,j,k;j=______________;for(i=0;istrlen(str)/2;i++,j--){k=str[i];str[i]=str[j];str[j]=_____________;}}main(){chartest[]=abcde;invert(test);printf(%s\n,test);}课程代码:A100002座位号:得分评卷人计算机技术基础试题第9页(共8页)装订线内答题无效**************************装**********************订********************线**********************《计算机技术基础(C语言)》试卷A标准答案学院:班级:20年月日第一部分选择题(共30分)一、单项选择题(本大题共15小题,每题只有一个正确答案,答对一题得2分,共30分)1、D2、C3、B4、D5、B6、A7、C8、D9、C10、A11、A12、B13、B14、A15、A第二部分非选择题(共70分)二、判断题(本大题共10小题,每题1分,共10分,答T表示说法正确.答F表示说法不正确,本题只需指出正确与错误,不需要修改)16、F17、F18、F19、F20、T21、T22、F23、T24、F25、F三、填空题(本大题共
本文标题:c语言期末测试题(附答案)
链接地址:https://www.777doc.com/doc-4078677 .html