系专业班学号姓名┉┉┉┉┉┉┉┉┉┉┉密┉┉┉┉┉┉┉┉┉┉封┉┉┉┉┉┉┉┉┉┉线┉┉┉┉┉┉┉┉┉┉试卷类型:A苏州科技学院程序设计及C语言试卷使用专业年级计算机07级民办考试方式:开卷()闭卷()共10页题号合计得分一、选择题(每题2分,共20分)1.给出定义:charx[]=abcde;chary[]={'a','b','c','d','e'};正确的叙述为:C。A)数组X和数组Y等价.B)数组x和数组Y的长度相同.C)数组X的长度大于数组Y的长度.D)数组X的长度小于数组Y的长度.2.以下说法中,正确的是:D。A)函数可直接引用其它函数中的static类别的局部变量.B)在函数体中至少需要一个return语句。C)在函数体中可以定义另一个函数。D)在函数体中可以调用函数自身。3.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是____D____A)a=10ora=0B)a=0|a=10C)a=10&&a=0D)a=10‖a=04.在C程序中,若对函数类型未加说明,则函数的隐含类型为:____int____。A)intB)doubleC)voidD)char5.表达式strlen(“hello””)的值是B。A、4B、5C、6D、76.若有语句inta[9];则下述对a的描述正确的是_____A____。A)定义了一个名称为a的一维整型数组,共有9个元素B)定义了一个数组a,数组a共有10个元素C)说明数组a的第9个元素为整型变量D)以上说法都不对7.在C程序中,用来返回逻辑值“真”的是:____A______。A)1B)非0的数C)非1的数D)大于0的数8.设字符变量ch的取值是小写的英文字母,将它转换为相应的大写英文字母的表达式是___B。A)ch+32B)ch-32C)ch+26D)ch-269.以下程序运行后的输出结果是_____A___main(){inti,n[]={0,0,0,0,0};for(i=1;i=4;i++){n[i]=n[i-1]*2+1;printf(%d,n[i]);}}A)13715B)1357C)15913D)不确定的值10.已知字符A的ASCII码为十进制的65,下面程序的输出是__C___main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf(%d,%c\n,ch1,ch2);}A)C,DB)B,CC)67(C),DD)不确定的值┉┉┉┉┉┉┉┉┉┉┉密┉┉┉┉┉┉┉┉┉┉封┉┉┉┉┉┉┉┉┉┉线┉┉┉┉┉┉┉┉┉┉二、阅读程序题。仔细阅读程序,写出程序的运行结果。(每小题4分,共32分)1.#includestdio.hinta=4,b=5;(全局变量)intfun(intx,inty){inta=2,b=3,c;c=ab?a:b;returnc+x+y}main(){printf(“%d”,fun(a,b));}结果:122.#includestdio.hmain(){chara[]=”book”,t;inti,k=0;for(i=1;i=3;i++)if(a[k]a[i])k=i;t=a[k];a[k]=a[3];a[3]=t;puts(a);}结果:bkoo3.#includestdio.hmain(){intw[10]={1,2,3,4,5,6,7,8,9,10},i,t;for(i=0;i10;i++){t=w[i];w[i]=w[i]*w[i]%10;if(w[i]==t)break;}printf(%d,w[5]);}结果:64.#includestdio.hmain(){intx[8]={37,43,56,28,90,13,55,79},i,j,t;i=0,j=7;while(ij){t=x[i];x[i]=x[j];x[j]=t;i++;j--;}for(i=0;i3;i++)printf(%5d,x[i]);}结果:7955135.#includestdio.hmain(){charw[5]={'a','b','c','d','e'};inti;for(i=0;i2;i++)w[i]=w[i+2]-32;w[i]=w[i]-30;w[i+1]=w[i+1]-30;for(i=0;i5;i++)printf(%c,w[i]);}结果:CDEFe┉┉┉┉┉┉┉┉┉┉┉密┉┉┉┉┉┉┉┉┉┉封┉┉┉┉┉┉┉┉┉┉线┉┉┉┉┉┉┉┉┉┉6.#includestdio.hmain(){inti,j;for(i=0;i5;i++){j=i*10+6;if(j%3!=0)continue;printf(%d\n,j);}}结果:6367.#includestdio.hvoidfun(int*a,int*b){int*t;t=a;a=b;b=t;(*a)++;(*b)+=2;}main(){inta=1,b=10;fun(&a,&b);printf(“%d,%d\n”,a,b);}结果:3118.#includestdio.hvoidfun(int*p){int*a,i=0;for(a=p;ap+4;a++)*a=2*p[i++];}main(){inta[]={2,4,6,8,10};fun(a);printf(“%d\n”,a[3]);}结果:16三、填空题(每空3分,共9分)1.下列程序输出数组中的最大值,由s指针指向该元素,请填空在if语句中的判断表达式.#includestdio.hmain(){inta[10]={6,7,2,9,1,10,5,8,4,3},*p,*s;for(p=a,s=a;p-a10;p++)if(*s*p)s=p;printf(Themaxnumberis%d\n,*s);}2.以下定义链表的结点和输入函数,请填空.#includestdio.h#includestdlib.hstructstudent{intnum;charname[10];structstudent*next;};structstudent*Adds(structstudent*head){structstudent*p;p=(structstudent*)malloc(sizeof(structstudent));//申请空间scanf(%d%s,&(p-num),p-name);while(p-num!=0){p-next=head;head=p;p=(structstudent*)malloc(sizeof(structstudent));scanf(%d%s,&(p-num),p-name);}free(p);returnhead;}┉┉┉┉┉┉┉┉┉┉┉密┉┉┉┉┉┉┉┉┉┉封┉┉┉┉┉┉┉┉┉┉线┉┉┉┉┉┉┉┉┉┉四、编程题(共39分,第1题9分,其余每小题10分)1.编程求多项式1+1/2+1/3+1/4+1/5+……+1/n的前50项之和并输出。#includestdio.hvoidmain(){floati,sum=0;for(i=1;i=50;i++)sum=1/i+sum;printf(多项式前50项和为:%f\n,sum);}2.用穷举法解“韩信点兵”的问题:“今有物不知其数:三三数之余二,五五数之余三,七七数之余二,问物几何?”。试输出在10000---50000范围内所有符合条件的数。#includestdio.hvoidmain(){inti;for(i=10000;i=50000;i++)if((i%3==2)&&(i%5==3)&&(i%7==2))printf(%d\n,i);}┉┉┉┉┉┉┉┉┉┉┉密┉┉┉┉┉┉┉┉┉┉封┉┉┉┉┉┉┉┉┉┉线┉┉┉┉┉┉┉┉┉┉3.输入任意10个实数,编成按从小到大的顺序输出该10个数。#includestdio.hvoidmain(){intxq[10],i,j,n;printf(请输入任意十个整数:);for(i=0;i10;i++)scanf(%d,&xq[i]);for(i=0;i10;i++)for(j=0;j10;j++)if(xq[j]xq[i]){n=xq[i];xq[i]=xq[j];xq[j]=n;}for(i=0;i10;i++)printf(%d,xq[i]);printf(\n);}4.键盘接收一串字符串,统计并输出该字符串中包含的大写英文字母的总个数。要求用函数调用的方式完成编程,其中自定义函数count()实现字符串中包含的大写英文字母的总个数并返回该值;主函数完成其余功能。#includestdio.hintcount(chara[]){inti,b=0;for(i=0;a[i];i++)if(a[i]='A'&&a[i]='Z')b++;returnb;}voidmain(){chara[20];gets(a);printf(%d\n,count(a));}