1华南农业大学期末考试试卷(B卷)2004学年第1学期(2005.1)考试科目:程序设计考试类型:(闭卷)考试时间:120分钟班级学号姓名考试须知:1.答案必须写在“答题卡”上,写在试卷上不得分。2.考试结束时,只回收答题卡,不回收试卷。3.必须在答题卡上正确填写班级、学号、姓名等内容,否则没有考试成绩。一、单项选择题(每小题2分,共30分)1、下面标识符中,不合法的用户标识符为()A)PadB)a_10C)_12abD)int2、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()A)10,20B)a=10,b=20C)10:20D)10203、能表示条件0≤x≤100的表达式是()A)0=x=100B.x=0,x=100C)0≤x≤100D)x=0&&x=1004、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&&(n=cd)后n的值为()A)0B)1C)2D)35、下面不正确的字符串常量是()A)'abc'B)12'12C)0D)6、对字符串“Cat”进行完整赋值的操作是()A)chars[3]={'C','a','t'};B)chars[]=Cat;C)chars[3]={Cat};D)chars[3];s=Cat;7、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()A)–3B)9C)–12D)68、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);()A)10,3B)9,3C)9,2D)10,229、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的存储始于()A)2002B)2004C)2006D)200810、在C语言中,引用数组元素时,其数组下标的数据类型允许是()A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式11、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()A)1B)2C)3D)412、用数组名作为函数的实参时,传递给形参的是()A)数组的首地址B)数组的第1个元素C)数组中的全部元素D)数组的元素个数13、以下程序的输出结果是()main(){charch[3][5]={AAAA,BBB,CC};printf(“%s”,ch[1]);}A)AAAAB)BBBC)BBBCCD)CC14、有以下程序段intk=0;while(k=1)k++;while循环执行的次数是()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次15、设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是()A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名3二、判断题(对的打“√”,错的打“×”,每小题1分,共10分)1、C程序执行的入口是main函数,所以main函数必须放在程序的开头。2、注释内容太多会影响程序的执行效率。3、C语言规定,标识符中的字母一般区分大、小写。4、字符常量是用一对双引号括起来的一个字符。5、若定义的函数没有参数,则函数名后的圆括号可以省略。6、在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。7、循环体中continue语句的作用是结束整个循环的执行。8、函数的实参和形参可以是相同的名字。9、对于“do{循环体}while(循环条件);”,这个循环结构有可能一次循环体的内容都无法执行。10、字符数组中的最后一个字符必须是'\0'。三、写出下列程序段的输出结果(每小题5分,共20分)1、有下列程序段,请写出运行结果。main(){intsum,j;for(j=1;j=10;j++){sum=5;sum=sum+j;}printf(“sumis%d”,sum);}2、有下列程序段,请写出运行结果。intf1(intx){staticintz=3,y=0;y++;z++;return(x+y+z);}main(){inta=1,k;for(k=0;k3;k++)printf(“%4d”,f1(a));}43、有下列程序段,请写出运行结果(注:“_”代表空格)main(){chara[]=This_is_a_C_program.;char*p=a;p=p+8;printf(“%s”,p);}4、有下列程序段,请写出运行结果。main(){inta=0,i;for(i=0;i5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf(“%5d”,a);}}四、程序填空题(每空2分,共20分)1、以下程序的功能是找出x、y、z三个数中的最小值。main(){intx=4,y=5,z=8;intu,v;u=xy?___①__;v=uz?__②___;printf(“%d”,v);}52、打印9×9乘法表。输出格式要求为:1*1=12*1=12*2=43*1=33*2=63*3=9………………………………………main(){intm,n;for(m=1;m=9;m++){for(n=1;____③____;n++)printf(“④”,m,n,m*n);_____⑤______;}}3、下面程序读入10个学生的成绩,统计及格学生的个数并计算平均分。请填空:main(){inti,count=0;floata[10],sum=0,ave;for(i=0;i10;i++)scanf(“%f”,⑥);for(i=0;i10;i++){if_____⑦____count=count+1;____⑧___;}ave=sum/10;printf(“count=%d,ave=%f”,count,ave);}64、下面程序的功能是求出数组a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。例如:a[0]+a[1]的值存入b[1],a[1]+a[2]的值存入b[2]……,b[0]不用。请填空。main(){inta[10],b[10],i;for(i=0;i10;i++)scanf(“%d”,&a[i]);for(i=1;i10;i++)_____⑨_____for(i=1;i10;i++){printf(“%3d”,b[i]);if(___⑩_____==0)printf(“\n”);}}五、编程题(20分)1、有数列sum=1+2+3+4+5+6+……,编程实现:1)编写一个函数,求sum的前n项和。例如:n=3时,sum=1+2+3=6。2)在主函数中输入n,调用上面的函数并输出结果。2、输入一串字符(长度小于80个字符),编程实现:1)统计其中字母的个数并输出结果。2)将其中的数字字符对应的整数值加起来,并输出结果。如:a45b8&*3,则是4+5+8+3,结果为20。要求画出实现此功能的流程图。(传统流程图与N-S流程图任选其一)提示:0的ASCII码为48,9的ASCII码为57。7华南农业大学期末考试试卷(B卷)2004学年第1学期考试科目:程序设计考试类型:(闭卷)考试时间:120分钟班级学号姓名题号一二三四五总分得分评阅人一、单项选择题(每小题2分,共30分)1D2A3D4C5A6B7C8D9B10C11D12A13B14A15C二、判断题(对的打“√”,错的打“×”,每小题1分,共10分)1×2×3√4×5×6√7×8√9×10×三、写出下列程序段的输出结果(每小题5分,共20分)1、sumis15评分细则:直接写15,给4分2、6810评分细则:写对一个数给1分,三个全对给5分。83、a_C_program.4、1018263641评分细则:写对一个数给1分。四、程序填空题(每空2分,共20分)1、①x:y②u:z2、③n=m④%d*%d=%-3d评分细则:以下形式也给全对:%d*%d=%nd(n为整数)%d*%d=%d⑤printf(“\n”)3、⑥&a[i]⑦(a[i]=60)评分细则:无括号也给全对⑧sum=sum+a[i]4、⑨b[i]=a[i]+a[i-1]⑩i%3五、编程题(20分)1、10分main()9{intsumall(inta);intn,sum;printf(Pleaseinputn:);scanf(%d,&n);sum=sumall(n);printf(Theresultis:%d,sum);}intsumall(inta){inti,sum=0;for(i=1;i=a;i++)sum=sum+i;return(sum);}评分细则:第一问5分,第二问5分;如程序都正确但没有使用函数形式则扣2分。2、10分#includestdio.hmain(){inti,zm=0,num=0;charch[80];printf(\nInputastring:);gets(ch);for(i=0;ch[i]!='\0';i++){if(ch[i]='a'&&ch[i]='z'||ch[i]='A'&&ch[i]='Z')zm++;if(ch[i]='0'&&ch[i]='9')num=num+ch[i]-48;}printf(Theletter'samountis:%d\n,zm);printf(Thefigureis:%d,num);}评分细则:第一问3分,第二问4分,流程图3分。10N-S流程图:i=0ch[i]!=’\0’num=num+ch[i]-48i=i+1传统流程图:i=i+1i=0ch[i]!=’\0’ch[i]=’0’&&ch[i]=’9’num=num+ch[i]-48真真假假真假ch[i]=’0’&&ch[i]=’9’