长春工业大学历年C语言期末考试试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

长春工业大学历年C语言期末考试试题2004-12-22由vince整理打印自:长春工业大学三味书屋地址:语言试题1一填空题(15分)1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。2.设inta=7,b=9,t;执行完表达式t=(ab)?a:b后,t的值是()。3.下面程序段的输出结果是()。inta=1234;a=a&0377;printf(“%d%o\n”,a,a);4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。chara[3];5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。#definePR80#definePPPR+4036.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。9.若有inta[3]={10,12,30};则a+1是()的地址,*(a+2)=()。二判断对错(5分,对的划“√”,错的划“×”)1.在TurboC中,整型数据在内存中占2个字节。()2.表达式1/4+2.75的值是3。()3.结构体类型只有一种。()4.函数若无返回值,则它一定无形参。()5.C语言只能处理文本文件和二进制文件。()三选择题(20分)1.设inta=12;表达式a+=a-=a*=a的值是()。A12B144C0D1322.以下程序的输出结果是()。main(){inta=011;printf(“%d\n”,++a);}A12B11C10D93.以下程序的输出结果是()。#defineADD(x)(x)+(x)main(){inta=4,b=6,c=7,d=ADD(a+b)*c;printf(“d=%d”,d);}Ad=70Bd=140Cd=280Dd=804.下面的选项中正确的赋值语句是(chara[5],*p=a;)()。Ap=“abcd”;Ba=“abcd”;C*p=“abcd”;D*a=“abcd”;5.若k为整形,则while循环执行()次。k=2;while(k==0)printf(“%d”,k);k--;printf(“\n”);A10B9C0D16.数组名作为实参传递给形参时,数组名被处理为()。A该数组的长度B该数组的元素个数C该数组的首地址D该数组中各元素的值7.两个指针变量不可以()。A.相加B比较C相减D指向同一地址8.若有以下程序段,则值为6的表达式是()。structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,‘\0’},*p;p=&a[0];Ap++-nBp-n++C(*p).n++D++p-n9.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。Afp=fopen(file,r);Bfp=fopen(file,w);Cfp=fopen(file,r+);Dfp=fopen(file,w+);四写出下列程序的运行结果。(28分)1.main(){inta[6]={10,6,23,-90,0,3},i;invert(a,0,5);for(i=0;i6;i++)printf(“%d,”,a[i]);printf(“\n”);}invert(int*s,inti,intj){intt;if(ij){invert(s,i+1j-1);t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;}}2.f1(inta){intb=0;staticintc=3;b+=1;c++;return(a+b+c);}main(){inta=1,i;chars1[10]=“java”,s2[10]=“basic”,s[10];for(i=0;i3;i++)printf(%d,f1(a));printf(“\n”);if(strcmp(s1,s2)){strcpy(s,s1);puts(s);}printf(“%d,%s\n”,strlen(s2),strcat(s2,s1));}3.#defineMAX100main(){intf[MAX],i,j,k=2,m=5;for(i=0;i=m;i++)f[i]=1;f[k-1]=2;for(i=k;i=m;i++)for(j=i-k;j=i-1;j++)f[i]+=f[j];printf(%d%5d%5d\n,k,m,f[m]);}五阅读下列程序,在处填入适当内容,使程序完整。(32分)1.求100~200间的全部素数。(1)main(){intm,k,i,n=0;for(m=101;m=200;m+=2){if(n%10==0)printf(\n);k=sqrt(m);for(i=(2);i=k;i++)if(m%i==0)(3);if(i==(4)){printf(%d,m);n++;}}}2.用选择法对数组中的10个字符按由大到小排序。voidsort((1))chara[];intn;{inti,j,k;chart;for(i=0;in-1;i++){(2);for(j=i+1;jn;j++)if((3))k=j;t=a[k];a[k]=a[i];a[i]=t;}}main(){chars[10];inti;for(i=0;i10;i++)scanf(“%c”,&s[i]);(4);printf(“thesortedarray:\n”);for(i=0;i10;i++)printf(“%c”,(5));printf(“\n”);}3。main(){inta[3][4],i,j,*p=a[0];for(i=0;i3;i++)for(j=0;j4;j++)scanf(“%d”,p++);for(p=&a[0][0];pa[0]+12;(1))swap(p);(2);for(i=0;i3;i++){for(j=0;j4;j++)printf(“%3d”,*p++);printf(“\n”);}}swap(int(3)){intmin,i,*p2=p1,*p3;(4);for(i=0;i4;i++){if(*p2*p3)p3=p2;(5);}min=*p1;*p1=*p3;*p3=min;}2002试题2一填空题(20分,每空1.5分)1.当执行完以下语句后,变量a的值为(),b的值为(),c的值为()。a=6;b=++a;c=--a;2.已知a=3、b=2,则表达式a*=b+8的值是()。3.下面程序段的输出结果是()。inta=125;printf(“%d\n”,a4);4.a数组定义如下,a数组中可用最小下标值是(),最大下标值是()。chara[3];5.设有以下宏定义,则执行赋值语句a=ADD(4+6)*7;(a为int型变量)后,a的值是()。#defineADD(x)(x)+(x)6.若有以下说明、定义和语句,则对x.b成员的另外两种引用方式是:()和()。structst{inta;structstb;}*p,x;p=&x;7.在C中,文件指针变量的类型只能是()。8.在C中文件结束标志EOF只可用于()文件。9.a数组定义如下,若使数组a中存放字符串“friend”,写出为数组a赋值的语句()。chara[10];二判断对错(10分,每题1分。对的划“√”,错的划“×”)1.在TurboC中,实型数据在内存中占4个字节。()2.被main函数调用的函数只能是库函数。()3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。()4.算术运算符和赋值运算符的结合方向均由左自右。()5.定义在main函数后的任何函数都需在main中进行函数声明。()6.一个函数中只允许有一条return语句。()7.任何数组在使用时必须先定义。()8.在int*p;和语句printf(“%d”,*p);中的*p含义相同。()9.在定义枚举时,枚举常量可以是标识符或数字。()10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。()三选择题(20分,每题2分)1.若有代数式,则错误的C语言表达式是()。Aa*e/c/bBa*e/b/cCa*e/b*cDa/b/c*e2.以下程序的输出结果是()。main(){inta=7,b=5;printf(“%d\n”,b=b/a);}A不确定值B5C1D03.以下程序的输出结果是()。main(){intk1=1,k2=2,k3=3,x=15;if(!k1)x--;elseif(k2)if(k3)x=4;elsex=3;printf(“x=%d\n”,x);}Ax=4Bx=15Cx=14Dx=34.以下程序的输出结果是()。main(){chars1[20]=“China”,s2[20]=“for”,s[10];if(strcmp(s1,s2))printf(“%s\n”,strcat(s2,s1));elseprintf(“%d\n”,strlen(s1));}AChinaforB5CforChinaD35.C语言中函数调用的方式有()。A函数调用作为语句1种B函数调用作为函数表达式1种C函数调用作为语句或函数表达式2种D函数调用作为语句、函数表达式或函数参数3种6.关于return语句,下列正确的说法是()。A可以在同一函数中出现多次B必须在每个函数中出现C只能在除主函数之外的函数中出现一次D在主函数中不能出现7.已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()。structworker{intno;charname[20];charsex;structbirth{intday;intmonth;intyear;}a;};structworkerw;Aday=25;month=10;year=1993;Bw.birth.day=25;w.birth.month=10;w.birth.year=1993;Cw.day=25;w.month=10;w.year=1993;Dw.a.day=25;w.a.month=10;w.a.year=1993;8.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。A存放读入数据项的存储区B存放读入数据的地址或指向此地址的指针C一个指向所读文件的文件指针D一个整形变量,代表要读入的数据项总数9.若有下面的变量定义,以下语句中合法的是()。inti,a[10],*p;Ap=a+2;Bp=a[5];Cp=a[2]+2;Dp=&(i+2);10.若有以下的定义和语句,则值为12的表达式是()。structwc{inta;int*b;}*p;intx0[]={11,12},x1[]={31,32};staticstructwcx[2]={100,x0,300,x1};p=x;A*++p-bB++p-aCp-bD*(p++)-b四写出下列程序的运行结果(25分,每题5分)1.main(){intnumber=0;while(number++=1)printf(*%d,,number);printf(**%d\n,number);}2.#defineN7main(){inti,j,a[N][N];for(i=1;iN;i++){a[i][i]=1;a[i][1]=1;}for(i=3;iN;i++)for(j=2;j=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(j=1;j=4;j++)printf(%2d,a[4][j]);printf(\n);}3.hcf(intu,intv){inta,b,c,r;i

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功