您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 专升本C语言历年考试题及答案8[1]
专升本C语言历年考试题及答案江西财经大学2005年专升本选拔考试《C语言程序设计》试卷(考试时间120分钟,总分100分)一、用C语言描述下列命题(共16分,每小题2分)1、a、b和c均为整型变量,a和b中有一个大于c。2、数学公式:aacb242b的C语言表达式(注:sqrt()为开方函数)。3、写出100内的自然数x,能被3或7整除的表达式。4、写出判断字符变量ch是阿拉伯数字字符的表达式。5、写出满足x60或90≤x≤100的C语言表达式。6、写出平面上的点(x,y)落在单位圆内的表达式。7、数组p[10]的各元素用于保存指向char型的指针,写出该数组的定义。8、有名为max的函数,其功能是对两个int型参数x、y进行计算,返回其中的较大者,写出该函数的说明部分。二、根据要求画出流程图或N-S图(共10分,每小题5分)1、用流程图或N-S图表示以下算法。输入x的值,按下列函数计算y的值,并输出y的值。000101xxxy当当当2、画出打印以下图案的算法流程图或N-S图。&&&&&&&&&&三、程序阅读题(共20分,每小题4分)1、#includestdio.hvoidmain(){inti,sum=0;for(i=1;i=30;i++)if(i%3!=0)continue;elsesum=sum+i;printf(“sum=%d\n”,sum);}请叙述上面程序的功能,并写出程序的运行结果。2、voidmain(){inta,b,x=1,y=1;scanf(%d%d,&a,&b);if(a0)x=x+y;if(ab)x=2*y;elseif(a==b)y=5;elsey=x+y;printf(x=%d,y=%d\n,x,y);}假设输入为:2-3CR,则程序运行后的输出结果为:3、voidmain(){inta[3][3]={2,4,6,8,10,12,14,16,18};intsum=0,i,j;for(i=0;i3;i++)for(j=0;j3;j++)if(i==j)sum+=a[i][j];printf(“sum=%d\n”,sum);}请叙述上面程序的功能,并写出程序的运行结果。4、voidmain(){inti=0;intx,s1,s2,s3;s1=s2=s3=0;while(i++10){scanf(%d,&x);switch(abs(x)%3){case0:s1++;break;case1:s2++;break;default:s3++;}}printf(s1=%d,s2=%d,s3=%d,s1,s2,s3);}请叙述上面程序的功能。5、intfun(intn){if(n==0)return0;elseif(n==1)return1;returnn*n+fun(n-1);}voidmain(){printf(“Resultis:%d”,fun(5));}请叙述上面程序中fun函数的功能并写出程序的运行结果。四、程序填空(共28分,每空2分)1、以下函数用于求出一个3×4矩阵中的最小元素值。intmin_value(intm[][3]){inti,j,min;min=m[0][0];for(i=0;①;i++)for(j=0;②;j++)if(③min)min=④;return(min);}2、程序的功能是:从键盘输入一串字符(以回车换行符结束),统计其中大写英文字母的个数,将结果保存在变量count中。voidmain(){intcount=0;charc;①while(c!='\n'){if(②)③;c=getchar();}printf(havetyped%dupperletters,count);}3、以下函数的功能是:在第一个循环中给前n个数组元素依次赋值1~n;在第二个循环中使a数组的n个元素值对称互换,变成n、n-14、3、2、1。voidfun(inta[],intn){inti;inttemp;for(i=1;i=n;i++)a[i-1]=i;for(i=0;in/2;i++){temp=①;a[i]=②;③=temp;}}4、以下程序是实现如图1所示图案的打印。voidmain(){inti,j,k;charch;for(i=1,ch=①;i=②;i++){for(j=1;j=4-i;j++)putchar('□');/*□表示空格符*/for(k=1;k=③;k++)putchar(ch);④printf(\n);}}五、程序设计题(共26分)1、设一个三位数可以表示为abc,若其能满足条件a3+b3+c3=abc,则称其为水仙花数,编程求出所有的水仙花数。(8分)2、编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。(8分)3、设有10个学生的信息,包括学号、姓名和三门功课的成绩,试编写学生信息输入函数、学生信息输出函数、打印每一学生平均分函数,最后编写主函数,并在主函数中调用测试这些函数。(10分)专升本选拔考试《C语言程序设计》参考答案及评分标准一、用C语言描述下列命题(共16分,每小题2分)1、ac||bc2、(-b+sqrt(b*b-4*a*c)/(2*a)3、(x=1&&x=100)&&(x%3==0||x%7!=0)4、ch=’0’&&ch=’9’5、x60||x=90&&x=1006、x*x+y*y=17、char*p[10];8、intmax(intx,inty)二、根据要求画出流程图或N-S图(共10分,每小题5分)1、ABBBCCCCCDDDDDDD(图1)Fx=0TTFy=1y=0y=-1x02、三、程序阅读题(共20分,每小题4分)1、输出:sum=165功能:求30内能被3整除的数的和。2、输出:x=2,y=33、输出:sum=30功能:求3*3矩阵对角线上元素之和。4、功能:输入10个数,分别求出其中能被1、2、3整除的数的和并打印。5、输出:Resultis:55fun函数的功能:求12+22+...+n2四、程序填空(共28分,每空2分)1、①i3②j4③a[i][j]④a[i][j]2、①c=getchar()②c='A'&&c='Z'③count++3、①a[i]②a[n-i-1]③a[n-i-1]4、①'A'②4③2*i-1④ch++五、程序设计题(共26分,8+8+10)1、voidmain(){inta,b,c;for(a=1;a=9;a++)for(b=0;b=9;b++)for(c=1;c=9;c++)if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)printf(%5d,100*a+10*b+c);}i=1~4j=1~i打印’&’字符换行2、#includestdio.hvoidmain(){inti,s,sum=0;for(i=1,s=0;i=10;i++){s=s+i;sum=sum+s;}printf(Resultis:%6d,sum);}3、#includestdio.h#includestdlib.htypedefstruct{/*定义描述学生的结构体类型*/intnum;/*成员变量num表示学号*/charname[20];/*姓名*/floatscore[3];/*成绩*/}stud;voidinput(studs[],intn){intk;chart[10];for(k=0;kn;k++){printf(No:);gets(t);s[k].num=atoi(t);printf(name:);gets(s[k].name);printf(score1=?);gets(t);s[k].score[1]=atof(t);printf(score2=?);gets(t);s[k].score[2]=atof(t);printf(score3=?);gets(t);s[k].score[3]=atof(t);}}voidoutput(studs[],intn){intk;printf(%10s%20s%8s%8s%8s\n,no,name,score1,score2,score3);for(k=0;kn;k++){printf(%10d,s[k].num);printf(%20s,s[k].name);printf(%8.2f,s[k].score[1]);printf(%8.2f,s[k].score[2]);printf(%8.2f\n,s[k].score[3]);}}voidprint_average(studs[],intn){intk;printf(\n\n%10s%20s%12s\n,no,name,ave_score);for(k=0;kn;k++){printf(%10d,s[k].num);printf(%20s,s[k].name);printf(%8.2f\n,(s[k].score[1]+s[k].score[2]+s[k].score[3])/3);}}voidmain(){studst[10];input(st,3);output(st,3);print_average(st,3);}C语言与程序设计试题一、用C语言描述下列命题(共16分,每小题2分)1.x为整数,写出x能被3除尽,且被5除余2的判断表达式。2.写出a、b之差的绝对值大于x、小于y的判断表达式。3.如图所示电路中A=1表示开关合上(B,C也相同),写出能使得灯亮的表达式。4.把下列数学表达式转换为C语言表达式:2cos()3ADby5.写出判断字符变量ch是阿拉伯数字符号的表达式。6.定义一个枚举类型season描述一年的四个季节(spring,summer,autumn,winter)。7.函数fun可以接收字符串的地址作为实际参数,计算后能够返回一个字符指针,写出该函数的声明。8.有定义FILEfp;请写出以只读方式打开一个二进制文件file.dat的相关AABC语句。二、根据要求画出NS图(共5分)求解使得不等式1-(1/2)+(1/3)-…+(1/N)3/5成立的最小的N值并输出。三、单项选择题(共5分,每小题1分)1.以下说法中正确的是()A.C语言程序总是从第一个定义的函数开始执行;B.C语言程序中至少有一个main函数;C.C语言程序总是从main函数开始执行;D.C语言程序中的main函数必须放在程序的开始部分;2.C语言中,下列正确的叙述是()A.C程序中的关键字必须小写,其他标识符不区分大小写B.C程序中的所有字母都不区分大小写C.C程序中的所有字母都必须小写D.所有的C语言关键字必须小写3.已知inti=10;表达式20-5=i=9的值是()A.0B.1C.19D.204.以下不正确的描述是()A.break语句不能用于循环语句和switch语句外的其它语句B.在switch语句中使用break语句或continue语句的作用相同C.在循环语句中使用continue语句是为了结束本次循环D.在循环语句中使用break语句是为了使流程跳出循环体5.对二维数组的正确说明是()A.inta[][]={1,2,3,4,5,6};B.inta[2][]={1,2,3,4,5,6};C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6};四、程序阅读题(共20分,每小题4分)1、#includestdio.hvoidmain(){inti=15;while(i0)if(--i%3!=2)continue;elseprintf(%d,i);}程序运行后的输出结果为:2、#includestdio.hintfunc(intn){if(n==0)return0;elseif(n==1)return1;elsereturnn*n+func(n-2);}voidmain(){p
本文标题:专升本C语言历年考试题及答案8[1]
链接地址:https://www.777doc.com/doc-4221087 .html