您好,欢迎访问三七文档
C语言期末测试样题1---------------------------------------------------------------------------------------------------------------一、选择题(每小题1分,共30分)1.以下叙述正确的是()。A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误2.一个C语言程序的基本单位是()A)函数B)子程序C)过程D)命令3.一个C语言的语句必须使用的结束符号是()A),B)。C):D);4.下列选项中,可以作为C语言标识符的是()A)3stuB)#stuC)stu3D)stu.35.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()A)floatB)charC)intD)double6.下列叙述正确的是()A)赋值语句中的“=”是表示左边变量等于右边表达式B)赋值语句中左边的变量值不一定等于右边表达式的值C)赋值语句是由赋值表达式加上分号构成的D)x+=y;不是赋值语句7.若x为int型变量,则执行x=6;x+=x-=x*x;语句后,x的值为()A)36B)-60C)60D)-248.若有a=2,b=3,c=4,则表达式a==3和a=3的值分别为()A)0和0B)1和3C)3和3D)0和39.使条件表达式(year%4==0&&year%100!=0)||(year%400==0)结果为假的值是()A)1950B)2000C)1996D)200410.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为()。x=(i=4,j=16,k=32)A)4B)16C)32D)5211.逻辑运算符两侧运算对象的数据类型()A)只能是0和1B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据12.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()A)A%2==1B)!(A%2==0)C)!(A%2)D)A%213.语句while(!E);中的表达式!E等价于()。A)E==0B)E!=1C)E!=0D)E==114.下面程序段的运行结果是()a=1;b=2;c=2while(ab&&ac){t=a;a=b;b=t;c--;}printf(%d,%d,%d”,a,b,c);A)1,2,0B)2,1,0C)1,2,1D)2,1,115.以下程序段()x=-1;do{x=x*x;C语言期末测试样题2}while(!x);A)是死循环B)循环执行二次C)循环执行一次D)有语法错误16.以下正确的函数原形说明语句是()A)voidfun(intx);B)floatfun(voidy);C)doublefun(x);D)int(charch);17.在C语言中,形参必须是()A)常量B)变量C.)数值D)表达式18.C语言的函数()A)可以嵌套调用,不能递归调用B)可以嵌套定义C)既可以嵌套调用,也可以递归调用D)不可以嵌套调用19.合法的数组定义是()A)inta[]=”string”;B)inta[5]={0,1,2,3,4,5};C)chara=”string”;D)chara[]={0,1,2,3,4,5};20.表达式strlen(“string”)+strlen(“C”)的运算结果为()A)9B)10C)7D)821.若有定义和语句:chars[10];s=“abcd”;printf(“%s\n”,s);则结果是()(以下u代表空格)A)abcdB)aC)abcduuuuuD)编译不通过22.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()A)p+1B)a+1C)a++D)++p23.若有intx,*pb;则正确的赋值表达式是A)pb=&xB)pb=x;C)*pb=&x;D)*pb=*x24.设有程序段:chars[]=”china”;char*p;p=s;则下面叙述正确的是()A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)*p与s[0]相等D)s数组长度和p所指向的字符串长度相等25.下面对结构变量的叙述中错误的是()A)相同类型的结构变量间可以相互赋值B)通过结构变量,可以任意引用它的成员C)结构变量中某个成员与这个成员类型相同的简单变量间可相互赋值D)结构变量与简单变量间可以赋值26.若有结构类型定义如下:structbd{intx;floaty;}r,*p=&r;那么,对r中的成员x的正确引用是()A)(*p).r.xB)(*p).xC)p-r.xD)p.r.x27.在一个函数里不能说明()A)全局变量B)静态变量C)局部变量D)静态局部变量C语言期末测试样题328.以下关于文件包含的说法中错误的是()A)文件包含是指一个源文件可以将另一个源文件的全部内容包含进来。B)文件包含处理命令的格式为#include“包含文件名”或#include包含文件名C)一条包含命令可以指定多个被包含文件D)文件包含可以嵌套,即被包含文件中又包含另一个文件。29.下列语句中,将C定义为文件型指针的是()A)FILEc;B)FILE*c;C)filec;D)file*c;30.下面对typedef的叙述中不正确的是()A)用typedef可以定义各种类型名,但不能用来定义变量B)用typedef可以增加新类型C)用typedef只是将已存在的类型用一个新的标识符来代表D)使用typedef有利于程序的通用和移植二、写出下列程序的运行结果(每小题3分,共24分)1.以下程序的输出结果是。#includestdio.hmain(){intx=3;switch(x){case1:case2:printf(x3\n);case3:printf(x=3\n);case4:case5:printf(x3\n);break;default:printf(xunknow\n);}}2.以下程序的输出结果是。#includestdio.hvoidmain(){inti,j,x=0;for(i=0;i2;i++)for(j=0;j3;j++){if(j%2)continue;x++;C语言期末测试样题4}printf(“x=%d\n”,x)}3.以下程序的输出结果是。#includestdio.hstaticintx=20;voidf1(intx){x+=10;printf(“%d…f1()\n”,x);}voidf2(){x+=10;printf(“%d…f2()\n”,x);}voidmain(){intx=10;f1(x);f2();rintf(“%d…main()\n”,x);}4.以下程序的输出结果是。#includestdio.h#defineS‘’voidmain(){intn=5,i,j;for(i=1;i=n;i++){for(j=1;j=10;j++)putchar(S);for(j=1;j=n-i;j++)putchar(S);for(j=1;j=i;j++){putchar(‘*’);}putchar(‘\n’);}}5.以下程序的输出结果是。#includestdio.hvoidmain(){staticinta[]={5,7,9};int*p=a;++p;printf(“%d%d%d%d\n”,*a,*(a+2),*(p+1),p[1]);}6.下面程序的运行结果是()#include“stdio.h”voidmain(){chara[]=“ab12cd34ef”;C语言期末测试样题5inti,j;for(i=j=0;a[i];i++)if(a[i]=’a’&&a[i]=’z’)a[j++]=a[i];a[j]=’\0’;printf(“%s\n”,a);}7.下面程序的运行结果是()#include“stdio.h”voidmain(){int*p,i;i=100;p=&i;i=*p+10;printf(“%d%d\n”,I,*p);}8.下面程序的运行结果是()voidmain(){structcmplx{intx;inty;}cnum[2]={1,3,2,7};printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);}三、程序填空:(根据题意,将空缺的语句补上。每空3分,共30分)1.以下程序对输入的两个整数,按从大到小顺序输出。请填空。main(){intx,y,z;scanf(“%d,%d”,&x,&y);if((1)){z=x;(2)}printf(“%d,%d\n”,x,y);}2..以下程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。#includestdio.hmain(){(3)i=1,sum=0;for(;i=10;){sum+=i;(4)}C语言期末测试样题6printf(%d\n,sum);}3.下面程序的功能是用函数递归调用的方法定义函数intf(intm,intn)求mn。请填空。intf(intm,intn){ints;if((5))s=1;elses=(6);return(s)}4.以下程序的功能是求数组num中小于零的数据之和。请填空。#includestdio.hvoidmain(){intnum[20]={10,20,1,-20,23,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20};intsum=0,i;for(i=0;i=19;i++){if((7))sum=(8);}printf(“sum=%d”,sum);}5.以下程序将数组a中的数据按逆序存放,请填空。#defineM8main(){inta[M],i,j,t;for(i=0;iM;i++)scanf(%d,a+i);i=0;j=M-1;while(ij){t=*(a+i);(9);*((10))=t;i++;j--;}for(i=0;iM;i++)printf(%3d,*(a+i));}四、编写程序(第1题7分,第2题9分,共16分)1.编一个程序,判断输入的整数x是否既是5又是7的整数倍。若是,则输出yes,否则输出no。2.编一个程序,要求:输入整数n,求整数n的各位数字的平方和并输出。(如输入数是n=234,则计算2*2+3*3+4*4=29并输出)
本文标题:C语言期末考试样题
链接地址:https://www.777doc.com/doc-2908040 .html