广东工业大学试卷用纸,共7页,第1页学院:专业:学号:姓名:装订线一、单选题(每题2分,共60分)1.以下描述正确的是CA)C程序的执行是从main()函数开始,到本程序的最后一个函数结束B)编译程序对C源程序编译时不检查语法C)C程序中没有输入输出语句D)在一个C程序中main()函数必须出现在所有函数之前2.结构化程序设计不应该使用BA)自顶向下,逐步细化的方法B)灵活、简洁的goto结构C)模块化设计D)三种基本结构:顺序结构、选择结构、循环结构的编码方法3.将C源程序进行B可得到目标文件。A)编辑B)编译C)连接D)运行4.在C语言中,变量所分配的内存空间大小CA)均为两个字节B)由用户自己定义C)由变量的类型决定D)是随意的5.以下不能定义为用户标识符是DA)minB)_01C)_intD)3a6.以下选项中可作为C语言合法常量的是DA)3e2.0B)081C)e3D)123L7.若有语句charc;,并要将字符a赋给变量c,则下列赋值表达式正确的是B。A)c=aB)c=’a’C)c=”a”D)c=’97’8.有程序段:inta,b;scanf(“%d,%d”,&a,&b);请为之选择运行时正确的输入方法_____B___A)12↙B)1,2↙C)1↙2↙D)1;2↙9.若有语句intx=5;则执行语句x+=x*=10;后,a的值是A。A)100B)55C)60D)10510.下列语句合法的是B。A)4+a=b=0;B)a=++b;C)a=2=b=6;D)a=4++;11.执行以下语句,输出结果是C。intx=2;printf(“%d”,((x=4*5,x*5),x+20));A)120B)100C)40D)2012.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为_C__A)由实参传给形参,再由形参传回给实参B)地址传递C)单向值传递D)由用户指定传递方式广东工业大学试卷用纸,共7页,第2页13.以下选项中非法的表达式是A。A)7.5%2/2B)x=y=0C)(char)(66+1)D)’c’+114.下列程序的输出结果是D。voidmain(){floata=3.2;intb,c;b=1.2;c=(b+3.8)/5.0;printf(“%d\n”,a*c);}A)3B)3.2C)3.07D)015.C语言中用于结构化程序设计的三种基本结构是A。A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue16.执行以下程序,输出结果是D。intx,y=3,z=2;x=(--y==z++)?--y:++z;printf(“x=%dy=%dz=%d”,x,y,z);A)x=4y=2z=4B)x=3y=2z=3C)x=4y=1z=4D)x=1y=1z=317.已有定义:chara[]=abc,b[]={'a','b','c'};以下叙述中正确的是CA)数组a和b的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对18.执行以下程序,输出结果是C。voidmain(){intx=3,y=4,z=2,i;i=x!y&&(z=10)y;printf(“i=%dz=%d”,i,z);}A)i=0z=10B)i=1z=10C)i=0z=2D)i=1z=219.用数组名作为函数调用时的实参,实际上传送给形参的是AA)数组首地址B)数组的第一个元素值C)数组中全部元素的值D)数组元素的个数20.执行如下语句,输出c的值是C。intc=1,x=3;switch(x+1){case4:c++;case6:c++;break;default:c++;}printf(“%d”,c);A)1B)2C)3D)4广东工业大学试卷用纸,共7页,第3页21.若有定义:inta[2][3];则对a数组的第i行j列元素的正确引用为AA)*(a[i]+j)B)*(a+i)+jC)*(a+i+j)D)a[i]+j22.若有如下程序:voidmain(){intx=1,a=0;do{a++;}while(x,x--);}则语句a++;执行的次数是C。A)0B)1C)2D)无限次23.以下程序中,while循环的循环次数是D。voidmain(){inti=0;while(i10){if(i1)continue;if(i==5)break;i++;}……}A)1B)10C)6D)死循环,不能确定次数24.下面能正确定义一维数组的选项是B。A)intnum[];B)#defineN10intnum[N];C)intnum[0..10];D)intN=10;intnum[N];25.在C语言中,函数的隐含存储类别是C。A)autoB)staticC)externD)无存储类别26.以下程序的输出结果是C。voidmain(){charstr[20]=”hell\0o\t”;printf(“%d%d\n”,strlen(str),sizeof(str));}A)97B)720C)420D)202027.下列选项中不正确的语句组是A。A)chars[10];s=“Beijing”;B)chars[]=“Beijing”;C)char*s=“Beijing”;D)char*s;s=“Beijing”;28.有如下程序,执行后输出的结果是C(形参不传给实参)。voidf(intx,inty){intt;if(xy){t=x;x=y;y=t;}}voidmain(){inta=1,b=3,c=2;f(a,b);f(a,c);f(b,c);广东工业大学试卷用纸,共7页,第4页printf(“%d,%d,%d\n”,a,b,c);}A)3,2,1B)1,2,3C)1,3,2D)2,3,129.执行如下程序段后,a的值为C。int*p,a=1,b=2;p=&a;a=*p+b;A)1B)2C)3D)430.下列关于C语言数据文件的叙述中正确的是C。A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件D)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件二、填空题(每空2分,共40分)1.若输入字符串:abcde回车,则以下while循环体将执行(1)0次。while((ch=getchar())==’d’)putchar(ch);2.设有下列定义语句intx[3]={3,4,5},*p1=x,**p2=&p1;则表达式**p2的值是3(2),表达式*(*p2+1)的值是4(3)。3.以下函数的功能是:求x的y次方,请填空。doublefun(doublex,inty){inti;doublez;for(i=1,z=x;iy;i++)z=z*x(4);returnz;}4.若有以下程序段,请填空。structstr{inta;structstr*next;}*p1;p1=(structstr*(5))malloc(sizeof(structstr));5.设有以下定义:structs{intinfo;structs*next;}x,y,z;已建立如下图所示链表结构:请写出删除节点y的赋值语句x.next=y.next;(6)6.以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母(字母A的ASCII码为65,字母a的ASCII码为97),输出到文件test.txt中。#includestdio.hxyz广东工业大学试卷用纸,共7页,第5页voidmain(){FILE*fp;charstr[100];inti=0;if((fp=fopen(“text.txt”,“w”(7)))==NULL){printf(“can’topenthisfile.\n”);exit(0);}printf(“inputastring:\n”);gets(str);while(str[i]){if(str[i]=’a’&&str[i]=’z’)str[i]=str[i]-32(8);fputc(str[i],fp);i++;}fclose(fp);}7.下面程序是对10个数排序(由小到大)#includestdio.hvoidmain(){inta[11];inti,j,t;printf(″input10numbers:\n″);for(i=1;i=10;i++)scanf(%d,&a[i]);printf(\n);for(i=1;i=9;i++)for(j=i+1;j=10;j++)if(a[i]a[j](9)){t=a[i];a[i]=a[j](10);a[j]=t;}printf(″thesortednumbers:\n″);for(i=1;i11;i++)printf(″%d″,a[i]);printf(″\n″);}8.有3个学生,各学3门课,计算总平均分数。#includestdio.hvoidaverage(float*p,intn){floatsum=0,aver;float*p_end;p_end=p+n(11);for(;p<p_end;p++)广东工业大学试卷用纸,共7页,第6页sum=sum+(*p)(12);aver=sum/n;printf(″average=%5.2f\n″,aver);}voidmain(){floatscore[3][3]={{65,67,70},{80,87,90},{90,99,100}};average(*score,9)(13);/*求9个分数的平均分*/}9.执行以下程序,输出结果是4(14)。voidmain(){inta=6,b=5,c=4,d=3;if(abc)printf(“%d\n”,d);elseif((c-1=d)==1)printf(“%d\n”,d+1);elseprintf(“%d\n”,d+2);}10.执行以下程序,输出结果是24(15)。voidmain(){inta[4][4]={{1,2,-3,-4},{0,-5,-6,7},{-8,9,0,-10},{-11,12,-13,0}};inti,j,s=0;for(i=0;i4;i++)for(j=0;j4;j++){if(a[i][j]0)continue;if(a[i][j]==0)break;s+=a[i][j];}printf(”%d\n”,s);}11.执行以下程序,输出结果是125(16)。voidfun(intx){if(x/20)fun(x/2);printf(“%d”,x);}voidmain(){fun(5);}12.执行以下程序,输出结果是357(17)。voidfun(){staticinta=1;a+=2;printf(“%d”,a);}voidmain(){intc;for(c=1;c4;c++)fun();printf(“\n”);}13.执行以下程序,输出结果是6(18)。广东工业大学试卷用纸,共7页,第7页voidmain(){intx[8]={1,2,3,4,5,6,0,0},*s;s=x+3;printf(“%d\n”,s[2]);}14.执行以下程序,输出结果是2,1(19)。voidswap(int*pt1,int*pt2){intp;p=*pt1;*pt1=*pt2;*pt2=p;}voidmain(){inta=1,b=2,*p1,*p2;p1=&a;p2=&b;if(*p1*p2)swap(p1,p2);printf(“%d,%d\n”,a,b);}15.执行以下程序,输出结果是4(20)。voidmain(){inta[4][4]={{10,2,3,4},{1,6,7,8},{19,10,11,12},{1,14,15,16}};int(*p)[4],i;p=a;