资源描述:
《08~09学年第一学期c程序设计b卷答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、领导审批并签名B卷广州大学2008-2009学年第一学期考试卷课程《C语言程序设计》考试形式(闭卷,考试)物理与电子工程学院电子、物理系电子、物理专业学号姓名题号一二三四总分评卷人1234100分数30152268910评分一、选择题(每题2分,共30分)下列每题A、B、C、D四个选项中,只有一个选项是正确的。1.以下说法正确的是:(C)A)C语言程序中是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开
2、始部分2.(D)是合法的用户自定义标识符。A、b-bB、floatC、D、_isw3.若x是单精度实型变量,表达式(x=10/4)的值是(B)。A、2.5B、2.0C、3D、24.若变量已正确定义且k的值是4,计算表达式(j=k--)后,(D)。A、j=3,k=3B、j=3,k=4C、j=4,k=4D、j=4,k=35.表达式strlen(”hello”)的值是(B)。A、4B、5C、6D、76. 设变量定义为“inta,b;”,执行下列语句时,输入(D),则a和b的值都是10。scanf("a=%d,b=%d",&a,&
3、b);A、1010B、10,10C、a=10b=10D、a=10,b=107.假设定义:intx=3,y=3;则复合赋值表达式x/=1+y的值为(A)。A.0B.0.75C.6D.以上都错3.下列程序的输出结果是:(A)#includemain(){inta=0,b=0,c=0;if(a++>0&&b++>0)++c;printf(“a=%d,b=%d,c=%d”,a,b,c);}A.a=1,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=19.下列程序段执行后s值为
4、(C)。inti=1,s=0;do{if(!(i%2))continue;s+=i;}while(++i<10);A.1B.45C.25D.以上均不是10.c定义为字符型常量,则下列语句中正确的为:(C)A.c=’97’B.c=”97”C.c=97D.c=”a”11. 数组定义为inta[][2]={1,2,3,4,5,6},数组元素(B)的值为6。A、a[3][2]B、a[2][1]C、a[1][2]D、a[2][3]12.表达式strcmp(“China”,“Chinese”)的值是一个(B)。A、正数B、负数C、0D、不确
5、定的数13.如下程序的输出结果是:(B)#includemain(){intx=0,a=0,b=0;switch(x){case0:b++;case1:a++;break;case2:a++;b++;}printf(“a=%d,b=%d”,a,b);}A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=214.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是:(C)A.(*p)max(a,b);B.*pmax(a,b)C.(*p)(a,b);D
6、.*p(a,b);15.若已建立如图所示的单向链表结构,指针p,q分别指向如图所示的节点,则以下可以将q所指节点从链表中删除并释放该节点的语句组是:(D)348datanexthead……pqA.free(q);p->next=q->next;B.q=q->next;p->next=q;p=p->next;free(p);C.q=(*q).next;(*p).next=q;free(q);D.(*p).next=(*q).next;free(q);一、给出下列程序的运行结果(每题3分,共15分)1.下列程序段的输出是(*#*#)。
7、main(){intk;for(k=1;k<5;k++){if(k%2)printf("*");elsecontinue;printf("#");}}2.执行以下程序后,s的值为:(17)staticinta[]={5,3,7,2,1,5,4,10};ints=0,k;for(k=0;k<8;k+=2)s+=*(a+k);3. 写出下列程序段的输出结果。(13,d)charstr[]="hellotworld";printf("%d,%c",sizeof(str),*(str+10));4.写出下列程序段的输出结果
8、(58)。#includeintf(intx){staticy=1;y++;x+=y;returnx;}voidmain(){intk;k=f(3);printf("%d%d",k,f(k));}5.写出下列程序段的输出结果(