您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 苏州科技学院c语言期末考试笔试试卷
1苏州科技学院c语言期末考试笔试试卷A(考试时间:120分钟,满分100分)使用专业电子,电科,计算机02级各班系:电子专业:班级:学号:姓名:一、单项选择题((1)-(20)题每题1分)对下面各题,从给出的A,B,C,D,四个可选答案中,选一个正确的答案。1.当a的值为5,b的值为4时,逻辑表达式a<=6&&a+b>8的值为___C____。A.trueB.falseC.非0整型值D.整型值02.外部变量对程序中的任一函数而言,它们是_____B____。A.存在的B.可直接存取的C.不可见的(局部和静态)D.不可直接存取的3.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是____B_____。A.地址传递B.值传递C.实参数传给形参,并由形参传回来给实参D.由用户指定传递方式4.以下说法中正确的是_____C_____。A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分5..变量的有效范围与其定义位置有关,____B____,其作用域在整个源程序文件中都有效。A.在第一个函数中定义的变量B.在定义第一个函数之前所定义的变量C.在主函数中定义的变量D.在函数中定义的静态变量6.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是___C___A.c=b=a;B.(a=c)||(b=c);C.(a=c)&&(b=c);D.a=c=b;7.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_____C_____A.p+1B.a+1C.a++D.++p8.以下程序运行后,输出结果是___A____.main(){char*s=abcde;s+=2;printf(%s\n,s);}A.cde2B.字符c的ASCII码值C.字符c的地址D.出错9.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为___B___.if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;A.1B.2C.3D.610.当执行以下程序段时___A___.x=-1;do{x=x*x;}while(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误11.以下程序执行后sum的值是____C______main(){inti,sum;for(i=1;i6;i++)sum+=i;printf(“%d\n”,sum);}A.15B.14C.不确定D.012.若变量c为char类型,能正确判断出c为小写字母的表达式是____D_____A.‘a’=c=‘z’B.(c=‘a’)||(c=‘z’)C.(‘a’=c)and(‘z’=c)D.(c=‘a’)&&(c=‘z’)13.以下程序的输出结果是_____C_____.fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(“%d”,a);}A.0B.29C.31D.无定值14.列程序的输出结果是______C_____main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);3}A.非法B.a[4]的地址C.5D.315.下列程序的运行结果是_____B________voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(“%d%d”,a,b);}A.63B.36C.编译出错D.0016.下面程序的输出结果是_______C________main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(“%d\n”,*p+9);}A.0B.1C.10D.917.若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是____C___.intt[3][3],*pt[3],k;for(k=0;k3;k++)pt[k]=&t[k][0];A.t[2][0]B.t[2][2]C.t[l][2]D.t[2][l]18.当调用函数时,实参是一个数组名,则向函数传送的是___B___.A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值19.以下程序的输出结果是______C______.intd=1;fun(intp){staticintd=5;d+=p;printf(%d,d);return(d);}main(){inta=3;printf(%d\n,fun(a+fun(d)));}A.699B.669C.61515D.661520.以下程序的输出结果是_____C______.#definef(x)x*x4main(){inta=6,b=2,c;c=f(a)/f(b);printf(%d\n,c);}A.9B.6C.36D.18二、填空题(每空2分,共50分)1.register变量存储在____寄存器____;(程序存储区,静态存储区,寄存器,磁盘)如定义时给变量赋初值,则对于静态变量是在____编译____(编辑,编译,连接,运行)时赋初值,对于动态变量是在_____运行______(编辑,编译,连接,运行)时赋初值;如定义时没有赋初值,则对于int类型的静态变量其初值为______0______,对于int类型的动态变量其初值为________不确定________。2.请读程序:f(intb[],intn){inti,r;r=1;for(i=0;in;i++)r=r*b[i];return(r);}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(“%d\n”,x);}上面程序输出结果是_____24(2*3*4)_____3..请读程序:#includestring.h#includestdio.hchar*fun(char*s){chara[10];strcpy(a,STRING)s=a;returns;main(){char*p=ok;fun(p);printf(%s\n,p);}上面程序的输出结果是_____ok_____4.以下函数的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。exchange(int*x,int*y){intt;t=*y;5*y=___*x____;*x=___t____;}5.设一个C程序中的如下定义:staticcharline[]=china;char*ptr=line;则ptr中为_____line[0]_____的地址,line[1]中为___h____,line[5]中为_____\0___。6.以下程序的输出结果是_____10_____。main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf(“%d\n”,*(p+3));}7.下面程序的输出是_____15_____.unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=35;printf(“%d\n”,fun(n));}8.请读程序:#includestdio.hmain(){staticcharb[]=“Goodbye”;char*chp=&b[7];while(--chp!=&b[0])putchar(*chp);putchar('\n');}上面程序的输出结果是___eybdoo_______9.下列程序的输出结果是______56____。intt(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;}main(){inta=4,b=3,c=5,d=6;t(a,b,c,d);printf(%d%d\n,c,d);6}10.下面程序的输出是____AB____。main(){inti=3,j=2char*a=DCBA;printf(%c%c\n,a[i],a[j]);}11.以下程序的输出结果第一行是___6_____,第二行是___12____。#includestdio.hintfun(intx,inty){staticintm=0,i=2;i=m+1;m=i+x+y;returnm;}main(){intj=4,m=1,k;k=fun(j,m);printf(%d\n,k);k=fun(j,m);printf(%d\n,k);}12.以下fun函数的功能是:累加数组元素的值。n为数组中元素的个数。累加的和值放入x所指的存储单元中。请填空。fun(intb[],intn,int*x){intk,r=0;for(k=0;kn;k++)r=___r+b[k]___;___*x___=r;}13..以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。main(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf(Entermark:\n);scanf(%f,&a);while(a=0.0&&n1000){sum+___=a_________;x[n]=_______a________;n++;scanf(%f,&a);}ave=______sum/n________;printf(Output:\n);7printf(ave=%f\n,ave);for(i=0;in;i++)if(__x[i]ave_____)printf(%f\n,x[i]);}8三、编程题1.计算1!+2!+3!+……+20!。要求将n!的计算写成一个函数,主函数通过调用这个函数计算每一个数的阶乘并累加。(10分)#includestdio.hintjiecheng(intxq){inti,sum1=1,sum=0;for(i=1;i=xq;i++){sum1=sum1*i;sum=sum+sum1;}returnsum;}voidmain(){intx,y;scanf(%d,&x);y=jiecheng(x);printf(阶乘值的和为:%d\n,y);}请编写函数fun(char*str,intnum[10]),它的功能是:分别找出字符串中每个数字字符(0,1,2,3,4,5,6,7,8,9)的个数,用num[0]来统计字符0的个数,用num[1]来统计字符1的个数,用num[9]来统计字符9的个数。字符串由主函数从键盘读入。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*str,int*num){/*答题开始*/9/*答题结束*/}main()/*主函数*/{chars[81];intnum[10],i;clrscr();printf(″\nPleaseenter1linestrings(1--9):\n″);gets(s);fun(s,num);for(i=;i<10;i++=printf(″%d:%3d%d:%3d\n″,i,num[i],i+1,num[i+1]);)10c语言期末考试笔试试卷A参考答案一、选择题12345678910CBBCBCCABA11121314151617181920CDCCBCCBCC
本文标题:苏州科技学院c语言期末考试笔试试卷
链接地址:https://www.777doc.com/doc-2121763 .html