浙江理工大学C程序设计试题10_第1页
浙江理工大学C程序设计试题10_第2页
浙江理工大学C程序设计试题10_第3页
浙江理工大学C程序设计试题10_第4页
浙江理工大学C程序设计试题10_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江理工大学C程序设计试题(十)选择题(40分)1..当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______Ac=b=a;B(a=c)‖(b=c);C(a=c)&&(b=c);Da=c=b;2.在C语言中,不正确的int类型的常数是________A32768B0C037D0xAF3.以下程序的输出结果是________main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}A-11B01C10D004.在C语言类型中,int,char,short等类型的长度是_________A.固定的B.由用户自己定义C.任意的D.与机器字长有关5.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为___________A4B3C2D16.下列说法错误的是______________结构体变量可以被整体赋值.B.可以取结构体变量的地址C.可以取结构体变量成员的地址结构体类型的成员可以定义成该结构体类型的指针类型7.设有如下定义:intx=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是____A1B0C-1D28..设有程序段:t=6;a=7;b=8;if(a=b)t=a;,这段程序执行后,t的结果是______A.6B.7C.8D.09.下列描述中不正确的是________A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值若a为二维数组,它有m列,则a[i][j]在数组中的位置是_________A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+111.下列语句中符合C语言语法的赋值语句是__________Aa=7+b+c=a+7;Ba=7+b++=a+7;C)a=7+b,b++,a+7Da=7+b,c=a+7;12.若a为二维数组,则a[1][3]等价于_________A.*((a+1)+3)B.*(a[1]+3)C.(*(a+1)+3)D.&a[1]+3下面程序段不是死循环的是_____________intj=100;while(1){j=j%100+1;if(j>100)break;}for(;;);intk=0;do{++k;}while(k>=0);ints=36;while(s);--s;14.下列表达式中,错误的是______.A.2>1?a:bB.i+++jC.4.0%2.0D.x*=y+815.a,b为整数且b!=0,则表达式(a/b)*b+a%b的值为______的值.A.aB.bC.a被b除的余数部分Da被b除商的整数部分16.若以数组元素作为函数的实参,则实参向形参传送的是______.A.数组元素的地址B.数组元素的值C.数组的首地址B.数组名17.设有如下的共用体定义:uniondata{inti;longb;floatf;}a;则a所占的内存单元为______个字节.A.4B.6C.8D.1018.语句:printf("%d",(a=2)&&(b=-2);的输出结果是________A无输出B结果不确定C-1D119.下列选项中不是C语言main函数正确表达形式的是________?main(intargc,char*argv[]);B.main(ac,av)intac;char**av;main(c,v)intc;char*v[];D.main(argc,argv)intargc;charargv[];20.执行for(j=1;j++<4;);语句后变量j的值是_________A.3B.4C.5D.不定二.填充(20分)C语言的数据类型中,构造类型包括:数组,__________和__________.2.设x,y,z,t均为int型变量,则执行以下语句后,t的值为_________x=y=z=1;t=++x||++y&&++z;C语言的运算符要确定的两个方面分别是__________和__________.在函数内使用static是_________,在函数外使用static是________。5.对于语句:scanf("%3d%3d",&a,&b);,若输入123456,则a和b的值分别为_______和_______.6.设有二维数组inta[2][2],*p;,则a[I][j]三种其他表示是______________,____________,___________。7.字符串的长度是_________________,它的存储空间大小是_______。8.静态变量赋初值是________赋值,动态变量赋初值是___________赋值。9.链表中每个结点至少应包括二个部分,它们是__________和__________.10.用数组名作函数参数时,形参和实参的结合是采用__________,因为数组名是数组的__________.三.程序分析题(20分)阅读下面程序,给出输出结果。main()

{inti,j,k;

for(i=1;i<10;i++)

{printf(“\n”);if(i<=5){for(j=1;j<=i;j++)

{for(k=1;k<=5-i;k++)

printf(“”);printf(“*“);}

elsefor(j=1;j<=10-i;j++){for(k=1;k<=i-5;k++)printf(“”);

printf(“*”);}}}阅读下面程序,指出函数所实现的功能。voidins(chars[],intstart,chart[])

{intm,n,i,k;

n=0;m=0;for(i=0;s[i]!=’\0’;i++)m++;

for(i=0;t[i]!=’\0’;i++)n++;for(k=1;k<m-start;k++)s[m+n-k]=s[m-k];

for(k=start;k<start+n;k++)s[k]=t[k-start];s[m+n]=’\0’;

}阅读下面程序,指出下面程序所完成的功能voidst(char*a[],intn)

{inti,j,k;char*m;

for(i=1;i<n;i++)

{m=a[i];k=i;

for(j=i+1;j<=n;j++)

if(strcmp(a[k],a[j])>0),k=j;)

m=a[i];a[i]=a[k];a[k]=m;}

for(i=1;i<=n;i++)

printf(“%s”,a[i]);}4.分析以下程序:#include“string.h”;main(){charc,string[81];inti,a=0,b=0;gets(string);for(i=0;(c=string[i])!='\0';i++)if(c=='')a=0;elseif(a==0){a=1;b++;}printf("%d\n",b);}该程序的作用是_________________.若输入:abc,则程序运行后,输出结果为______,且c的值为______,a的值为______.阅读下面程序,指出函数所实现的功能。voidlnsort(intL[],intn)

{inti,j;

for(i=2;i<=n;i++)

{L[0]=L[i];j=i-1;while(L[0]<L[i]){L[j+1]=L[j];j--;}L[j+1]=L[0];}}四.完成下列程序(20分)1.下面程序是查找学生的成绩,完成该程序。main()

{voidsearch(float(*p)[3],inti);

floatscore[4][3]={{75,78,82},{66,72,77},{85,90,81},{74,89,68}};

while(1)

{scanf(“%d”&i);

if(___1____)break;

search(_____2_______);}}

voidsearch(float(*p)[3],inti)

{intk;

print(“ThescoreofNo%dare\n”,i);

for(_____3_______)

printf(“%5.2f”,_____4_________);}2.已知两个线性表的元素按非递减排列,合并两表得到一新表,仍然是按非递减排列,两个线性表以-1为结束标志。以函数来完成该操作,函数如下,完成所缺语句。

voidLL(intla[],intlb[],intlc[])//la,lb是已知二表//

{intpa,pb,pc;

pa=0;pb=0;pc=0;

if(la[pa]<lb[pb]{___5_____}

else{________6__________}

while(_______7___________)

{if(la[pa]<=lb[pb])

{lc[pc]=la[pa];__8___;__9___;}

else{____10_________}}

while(_____11________)

____12___;

while(____13________)____14______;

}3.在一数组里装数取数,从数组中所装的数的最后一项的下一个空单元装数,从数组中所装的数的最後一个取数,取数后该单元成空单元,如果取数已到数组空,-1表示未取到,以下是对数组的一次取数操作,函数值是所取的值,完成该函数。

defineMAX100

intpop(ints[],inttop){if(___15______)return(-1);

top=___16________;

return(____17_______);}4.在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个[程序1.2]#include〈stdio.h〉#defineN100inta[N][N];voidmain(){introw,col,max,min,n;

/*输入合法n(〈100〉,和输入n×n个整数到数组a的代码略*/

for(row=0;row<n;row++){

for(max=a[row][0],col=l;col<n;col++)

if(__18_)max=a[row][col];

if(__19__)min=max;

elseif(__20__)min=max;

}

printf("Theminofmaxnumbersis%d\n",min);}五.编程题(50分)有函数f(x)=cos(x)可展开成:f(0)+f’(0)x/1!+f”(0)x/2!+…编写函数程序求cos(x),使误差小于0.0000001。有一个链表,输出所有结点的数值,确定该链表的长度,并将链表的头结点与尾结点连接.编写完成这样操作的函数。这里的结点定义为

typedefstructnode{intdata;

structnode*next;}Node;3.将一个整数a左循环移位n次,求位移后的这个数.写出子函数4.写函数,将一个十进制数转换成一个十六进制数,并输出.5.如果有n个棋子,甲、乙两方轮流取棋子,每方至少取一个棋子,最多取m个棋子谁最后取剩下的一个棋子,谁就输,如果甲方先取,请给出甲方赢的算法.(写出函数)《C程序设计》试题2考试答案与评分标准(一)、单选题(每小题1分,满分10分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)CCBDDABCCA(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)DBBCADADDB(二)、填充题(每小题2分,满分20分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)结构体、共用体2优先级、运算类型局部变量、全局变量123、456*(a+2*i+j)、*(a[i]+j)、*(a+2*j+i)strlen(str)、sizeof(str)一次、多次数据域、指针域地址传递、首地址三.程序分析题(20分)程序1程序2*************************把s数组里面的字符顺序后移start个位置,然后再用t数组的前面start个字符顺序填充s数组的前面start个位置程序3程序4对*a[]从a[1]开始进行按字典排序输出单词的数目、3、‘\0’、1程序5按从小到大的顺序进行插入排序四.完成下列程序(20分)(1)i<0;(2)search(score,i);(3)k=0;k<3;k++;(4)score[i][k];(5)lc[pc++]=la[pa++];(6)lc[pc++]=la[pb++];(7)la[pa]!=-1&&lb[pb]!=-1;(8)pc++;(9)pa++;(10)lc[pc++]=la[pb++];(11)la[pa]!=-1;(12)lc[pc++]=la[pa++];(13)la[pb]!=-1;(14)lc[pc++]=la[pb++];(15)pop==0;(16)top-1;(17)s[top];(18)max<a[row][col];(19)row==0;(20)max<min五、程序设计题(每小题10分,满分20分)1、doublefun(doublex){doublef[11];inti,tag;doubleCos=0;memset(f,0,sizeof(f));//初始化f的元素为0f[0]=1;for(i=1;i<=10;i++)f[i]=f[i-1]*i;for(i=0,tag=1;i<=5;i++){Cos+=(x/f[i*2])*tag;tag*=-1;}returnCos;}2、typedefstructnode{intdata;structnode*next;}Node;intFun(Node*Head){Node*p;intlen=0;p=Head;while(p!=NULL){p=p->nest;len++;}p->next=Head;returnlen;}3、intFun(inta,intn){ints[20]={0};inti;intj;intlen=0;intt=a;intres=0;while(t){s[len]=t%10;t/=10;len++;}for(i=0,j=len-1;i<j;i++,j--){t=s[i];s[i]=s[j];s[j]=t;}for(i=0;i<n;i++){s[i]=0;}for(i=n;i<len+n;i++){res=res*10+s[i];}returnres;}4、int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论