您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > C语言期末考试试题及答案
2008-2009学年第一学期期末考试试卷考试说明:本课程为闭卷考试,可携带书写与修正文具,满分为:100分。考试结束后请将后页答题卡与试卷分开上交....。一、单选题(每题2分,共30分)1.以下叙述正确的是______。A)C程序的每行只能写一条语句B)语言本身没有输入输出语句C)在C程序中,注释说明只能位于一条语句的后面D)在多函数的程序中,main函数必须放在其它子函数的定义之前2.以下不正确的常量表示形式是______。A)0.45B)0XF5C)‘\85’D)32.67E-53.以下不正确的变量名是______。A)R&BB)_maxC)INTD)SUM34.以下正确的一组语句是________。A)intx=y=5;B)intn;scanf(%d,&n);inta[n];C)chara,*p;p=&a;D)chars[10];s=hello;5.若以下变量均已正确定义和赋值,则正确的语句是________。A)a=b==5;B)y=x%2.0;C)x+y=10;D)n=8=2*4;6.下面各组中与给出的程序段功能不等价的是________。if(a0)b=1;elseif(a==0)b=0;elseb=-1;A)if(a0)b=1;B)if(a0)b=1;C)if(a0)b=1;D)if(a=0)if(a==0)b=0;elseif(a==0)b=0;if(a0)b=1;if(a0)b=-1;if(a0)b=-1;elseb=-1;if(a==0)b=0;elseb=0;if(a0)b=-1;7.运行下面程序段,若输入abc#CR,则程序输出是:________。charc;intv1=0,v2=0;while((c=getchar())!='#'){switch(c){case'a':v1++;default:v1++;v2++;case'c':v2++;}}printf(v1=%d,v2=%d\n,v1,v2);A)2,2B)3,5C)3,4D)2,5专业年级学号姓名授课教师选课班上课时间周第节------------------------------------------------装装装------------------------------------------------订订订------------------------------------------------线线线------------------------------------------------共8页第2页中国海洋大学2008-2009学年第一学期期末考试试卷8.对for(表达式1;;表达式3){…}可以理解为:________。A)for(表达式1;1;表达式3){…}B)for(表达式1;表达式1;表达式3){…}C)for(表达式1;0;表达式3){…}D)for(表达式1;表达式3;表达式3){…}9.若有定义chara[]=”china”,b[]={’c’,’h’,’i’,’n’,’a’};则下面正确的叙述为:A)数组a的长度小于数组b的长度B)数组a和b的长度相同C)数组a的长度大于数组b的长度D)数组a和数组b中存储的内容完全一样10.已知a,b,m,n,c,d变量的定义如下,则执行完下列程序段后m,n的值为:_____。inta=3,b=4,m=0,n=0,c=3,d=4;(m=ab)||(n=cd);A)m=1n=1B)m=1n=0C)m=0n=0D)m=0n=111.下面程序的输出结果是:________。voidmain(){chars[20]=”hello\0\t\\”;printf(“%d”,strlen(s));}A)8B)5C)11D)10;12.若有定义inta[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3]=a;则下面能正确引用数组元素的表达式为:________。A)a[3][3]B)*(p+2)+2C)p[2][1]D)*(a+1+1)13.下面正确的函数定义是:________。A)doublefun(intx,inty)B)intfun(intx,y){z=x+y;returnz;}{intz;z=x+y;returnz;}C)doublefun(x,y)D)fun(intx,inty){intx,y;doublez;{intz;z=x+y;returnz;}z=x+y;returnz;}14.若有定义int(*p)();则下面叙述正确的是:________。A)p是指向一维数组的指针变量B)p是指向整型数据的指针变量C)p是一个函数名,该函数的返回值是指向整型数据的指针D)p是指向函数的指针变量,该函数的返回值是整型数据15.设有如下定义语句,则下面的叙述不正确的是______。structA{inta;floatx;}s;A)a和x都是结构体成员名B)s是用户定义的结构体类型名C)structA是用户定义的结构体类型D)struct是结构体类型的关键字二、填空题(每空2分,共20分)1.若要定义一个变量x来存储数据,存储的数据都是正整数,最大值不超过65535,则变量x的定义为_【1】。2.设floatx=3.5,y=4.8;inta=8;则表达式x+a%3*(int)(x+y)%2/4的值是___【2】。3.当执行下述程序段,从键盘上输入hellojack!CR后输出为__【3】__。注:CR表示回车符,表示空格。chara[20];scanf(%s,a);puts(a);4.若i为整型变量,则循环语句for(i=0;i==0;)printf(%d,--i);的执行结果是____【4】____。5.下面程序对从键盘输入的两个串进行比较,输出两个串中第一个不相同字符的ASCII值之差。请将程序补充完整。voidmain(){chara[20],b[20],c;inti=0,s;gets(a);gets(b);while((a[i]==b[i])&&(a[i]!=__【5】__))i++;printf(%d\n,___【6】___);}6.下面程序的功能是调用find函数查找某个串中是否包含指定的字符。若找到显示找到的第一个匹配字符的下标。如输入字符串为:hello,查找字符为l,则输出:position=2请补充程序。#includestdio.hchar*find(char*s,charc){while(*s!='\0'){if(*s==c)___【7】___;s++;}returnNULL;}voidmain(){chara[80],ch,*p;gets(a);scanf(%c,&ch);p=find(a,ch);if(p==NULL)printf(nofind.\n);elseprintf(position=%d\n,___【8】___);}7.下面程序的功能是统计从键盘输入的一行英文中的单词个数,单词之间用空格分隔。请补充程序。voidmain(){inti,num=0,word=0;chars[80];gets(s);for(i=0;s[i]!='\0';i++)if(s[i]=='')___【9】___;elseif(word==0){___【10】__;num++;}printf(%d,num);}三、读程序写结果(每题2分,共20分)1.若系统为int型分配2个字节voidmain(){unsignedintx=0xFFFF;printf(%d,x);}2.voidmain(){inti=1,j;charch='F';j=!ch&&i++;printf(i=%d,j=%d\n,i,j);}3.voidmain(){intx,y;for(x=1,y=2;y=20;y++){if(x=10)break;if(x%2==1){x+=5;continue;}x-=3;}printf(%d,%d,y,x);}4.voidmain(){inta[3],i,j,k;for(i=0;i3;i++)a[i]=0;k=2;for(i=0;ik;i++)for(j=0;jk;j++)a[j]=a[i]+1;printf(%d\n,a[1]);}5.voidswap(int*x,int*y){int*t;t=x;x=y;y=t;}voidmain(){inta=3,b=4;swap(&a,&b);printf(a=%d,b=%d,a,b);}第4页计算6.inta=1;voidfun2(){staticintc=6;a=c++;printf(a=%d,c=%d\n,a,c);}voidmain(){fun2();fun2();}7.#defineN3#defineY(n)((N+1)*n)voidmain(){ints;s=2*(N+Y(5+1));printf(s=%d,s);}8.#includestdio.hvoidf(char**,int);voidmain(){chara[2][10]={China,America},*p[2];p[0]=&a[0][0];p[1]=&a[1][0];f(p,2);}voidf(char**p,intn){inti;for(i=0;in;i++)puts(*(p+i));}9.intfun1(intx,inty){returnx+y;}voidmain(){inta=5,b=8,s;int(*p)(int,int);p=fun1;s=(*p)(a,b);printf(s=%d,s);}10.structS{intx;charn[10];};voidmain(){structSa={1,fox};printf(%d,%s,a.x,a.n);}四、编程题(分值依次为6、7、8、9分,共30分)1.编写程序计算下面分段函数的值并输出。注:x和y都是整型,x通过键盘输入。x+10(x0)y=3x+5(0x15)2x-10(x15)2.编写程序,将键盘输入的一个long型整数逆序构成一个新整数输出。如输入654321,输出123456(假设其逆序数值也在long范围之内)。3.编写程序实现如下功能:(1)输入一个3阶方阵,(2)分别求出并输出该方阵两条对角线上元素之和。例如如下3阶方阵的两条对角线之和分别为15和15。1234567894.下面程序的功能是从多个字符串中寻找最长串输出。请根据给出的主函数内容补充find函数的函数声明和函数定义。#includestdio.h#includestring.h/*find函数声明*/voidmain(){chara[6][20];inti,row;for(i=0;i6;i++)gets(a[i]);row=find(a,6);printf(longeststringis:%s,atrow%d.\n,a[row],row);}/*find函数定义*/答案请答于答题卡上,答题卡上请写清楚考生个人信息与任课教师、选课时间。任课教师按答题卡评分。考试结束后请将答题卡与试卷分开上交....。《C程序设计》答案A2008.12考试说明:本课程为闭卷考试,可携带书写与修正文具,满分为:100分。题号一二三四总分得分一、单选题(每题2分,共30分)(请将所选答案涂黑如ABCD)1.ABCD2.ABCD3.ABCD4.ABCD5.ABCD6.ABCD7.ABCD8.ABCD9.ABCD10.ABCD11.ABCD12.ABCD13.ABCD14.ABCD15.ABCD二、填空题(每空2分,共20分)注意题号与空格号不一致,以空格编号为准【1】___unsignedint__【2】_____3.5____________【3】_____hello______【4】_______-1___________【5】_____’\0’___________【6】______a[i]-b[i]_____【7】___r
本文标题:C语言期末考试试题及答案
链接地址:https://www.777doc.com/doc-2908165 .html