《专升本C语言历年考试题及答案8.pdf》由会员分享,可在线阅读,更多相关《专升本C语言历年考试题及答案8.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、专升本 C 语言历年考试题及答案江西财经大学2005 年专升本选拔考试C 语言程序设计试卷(考试时间 120 分钟,总分 100分)一、用语言描述下列命题(共16 分,每小题 2 分)1、a、b 和 c 均为整型变量,a和 b 中有一个大于 c。2、数学公式:aacb242b的语言表达式(注:sqrt()为开方函数)。3、写出 100 内的自然数 x,能被 3 或 7 整除的表达式。4、写出判断字符变量ch 是阿拉伯数字字符的表达式。5、写出满足 x60 或 90 x 100 的 C 语言表达式。6、写出平面上的点(x,y)落在单位圆内的表达式。7、数组 p10的各元素用于保存指向char型的
2、指针,写出该数组的定义。8、有名为 max 的函数,其功能是对两个int 型参数 x、y 进行计算,返回其中的较大者,写出该函数的说明部分。二、根据要求画出流程图或-图(共 10 分,每小题 5 分)1、用流程图或 N-S 图表示以下算法。输入 x 的值,按下列函数计算y 的值,并输出 y 的值。000101xxxy当当当2、画出打印以下图案的算法流程图或N-S 图。&三、程序阅读题(共20 分,每小题 4 分)1、#include void main()int i,sum=0;for(i=1;i0)x=x+y;if(ab)x=2*y;else if(a=b)y=5;else y=x+y;pr
3、intf(x=%d,y=%dn,x,y);假设输入为:2-3,则程序运行后的输出结果为:3、void main()int a33=2,4,6,8,10,12,14,16,18;int sum=0,i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(i=j)sum+=aij;printf(“sum=%dn”,sum);请叙述上面程序的功能,并写出程序的运行结果。4、void main()int i=0;int x,s1,s2,s3;s1=s2=s3=0;while(i+10)scanf(%d,&x);switch(abs(x)%3)case 0:s1+;break;case 1
4、:s2+;break;default:s3+;printf(s1=%d,s2=%d,s3=%d,s1,s2,s3);请叙述上面程序的功能。5、int fun(int n)if(n=0)return 0;else if(n=1)return 1;return n*n+fun(n-1);void main()printf(“Result is:%d”,fun(5);请叙述上面程序中fun 函数的功能并写出程序的运行结果。四、程序填空(共28 分,每空 2 分)1、以下函数用于求出一个34 矩阵中的最小元素值。int min_value(int m3)int i,j,min;min=m00;for(
5、i=0;i+)for(j=0;j+)if(min)min=;return(min);2、程序的功能是:从键盘输入一串字符(以回车换行符结束),统计其中大写英文字母的个数,将结果保存在变量count 中。void main()int count=0;char c;while(c!=n)if();c=getchar();printf(have typed%d upper letters,count);3、以下函数的功能是:在第一个循环中给前n 个数组元素依次赋值1n;在第二个循环中使a数组的 n 个元素值对称互换,变成n、n-1?4、3、2、1。void fun(int a,int n)int i
6、;int temp;for(i=1;i=n;i+)ai-1=i;for(i=0;in/2;i+)temp=;ai=;=temp;4、以下程序是实现如图1 所示图案的打印。void main()int i,j,k;char ch;for(i=1,ch=;i=;i+)for(j=1;j=4-i;j+)putchar();/*表示空格符*/for(k=1;kc|bc 2、(-b+sqrt(b*b-4*a*c)/(2*a)3、(x=1&x=0&ch=95、x=90&x=100 6、x*x+y*y=0 T T F y=1 y=0 y=-1 x0 2、三、程序阅读题(共20 分,每小题 4 分)1、输出:
7、sum=165 功能:求 30 内能被 3 整除的数的和。2、输出:x=2,y=3 3、输出:sum=30 功能:求 3*3 矩阵对角线上元素之和。4、功能:输入 10 个数,分别求出其中能被1、2、3 整除的数的和并打印。5、输出:Result is:55 fun 函数的功能:求12+22+.+n2 四、程序填空(共28 分,每空 2 分)1、i3 j=A&c=Z count+3、ai an-i-1 an-i-1 4、A 4 2*i-1 ch+五、程序设计题(共26 分,8+8+10)1、void main()int a,b,c;for(a=1;a=9;a+)for(b=0;b=9;b+)f
8、or(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=14 j=1 i 打印&字符换行2、#include void main()int i,s,sum=0;for(i=1,s=0;i=10;i+)s=s+i;sum=sum+s;printf(Result is:%6d,sum);3、#include#include typedef struct/*定义描述学生的结构体类型*/int num;/*成员变量 num 表示学号*/char name20;/*姓名*/float score3;/*成绩*/
9、stud;void input(stud s,int n)int k;char t10;for(k=0;kn;k+)printf(No:);gets(t);sk.num=atoi(t);printf(name:);gets(sk.name);printf(score1=?);gets(t);sk.score1=atof(t);printf(score2=?);gets(t);sk.score2=atof(t);printf(score3=?);gets(t);sk.score3=atof(t);void output(stud s,int n)int k;printf(%10s%20s%8s%
10、8s%8sn,no,name,score1,score2,score3);for(k=0;kn;k+)printf(%10d,sk.num);printf(%20s,sk.name);printf(%8.2f,sk.score1);printf(%8.2f,sk.score2);printf(%8.2fn,sk.score3);void print_average(stud s,int n)int k;printf(nn%10s%20s%12sn,no,name,ave_score);for(k=0;k 3/5 成立的最小的 N 值并输出。三、单项选择题(共5 分,每小题 1 分)1.以下说法
11、中正确的是()A.C 语言程序总是从第一个定义的函数开始执行;B.C 语言程序中至少有一个main 函数;C.C 语言程序总是从 main 函数开始执行;D.C 语言程序中的 main 函数必须放在程序的开始部分;2.C 语言中,下列正确的叙述是()A.C 程序中的关键字必须小写,其他标识符不区分大小写B.C 程序中的所有字母都不区分大小写C.C 程序中的所有字母都必须小写D.所有的 C 语言关键字必须小写3.已知 int i=10;表达式 20-5=i=9 的值是()A.0 B.1 C.19 D.20 4.以下不正确的描述是()A.break语句不能用于循环语句和switch 语句外的其它语
12、句B.在 switch 语句中使用 break语句或 continue语句的作用相同C.在循环语句中使用continue语句是为了结束本次循环D.在循环语句中使用break语句是为了使流程跳出循环体5.对二维数组的正确说明是()A.int a=1,2,3,4,5,6;B.int a2=1,2,3,4,5,6;C.int a3=1,2,3,4,5,6;D.int a2,3=1,2,3,4,5,6;四、程序阅读题(共20 分,每小题 4 分)1、#include void main()int i=15;while(i0)if(-i%3!=2)continue;else printf(%d,i);程
13、序运行后的输出结果为:2、#include int func(int n)if(n=0)return 0;else if(n=1)return 1;else return n*n+func(n-2);void main()printf(%5d%5dn,func(3),func(5);程序运行后的输出结果为:3、#include void main()int a,b,s,t;a=b=s=0,t=1;while(t=4)t=t+1;switch(t%3)case 1:a=a+t;break;case 2:b=b+t;break;default:s=s+3;printf(a=%d,b=%d,s=%d
14、n,a,b,s);程序运行后的输出结果为:4、#include#include int f1(int x)int y=0;static int z=2;y+=1;z+;return(x+y+z);void main()int x=1,i;char s110=“Visual”,s210=“C+”,s10;for(i=0;i3;i+)printf(%d,f1(x);printf(“n”);if(strcmp(s1,s2)strcpy(s,s1);puts(s);strcat(s2,s1);printf(“%d,%sn”,strlen(s2),s2);程序运行后的输出结果为:5、#include#d
15、efine MAX 100 void main()int fMAX,i,j,k=2,m=5;for(i=0;i=m;i+)fi=1;fk-1=2;for(i=k;i=m;i+)for(j=i-k;j=i-1;j+)fi+=fj;printf(%d%5d%5dn,k,m,fm);程序运行后的输出结果为:五、程序填空(共24 分,每小题 6 分)1、求 10000内的完数,一个数所有因子的和与该数相等即为完数,如 6=1+2+3,所以 6 是完数。#include void main()int m,k,i,sum;for(m=6;m=10000;m+)if(n%10=0)printf(n);for
16、(i=2;i=pj-1);else t=pj;pj=pj-1;pj-1=t;3、#include void swap(int )int max,i,*q=p;for(i=1;i4;i+)if(*q*(p+i)q=p+i;max=*q;*q=*(p+3);*(p+3)=max;void main()int a34,i,j,*p=a0;for(i=0;i3;i+)for(j=0;j4;j+)scanf(“%d”,p+);for(p=&a00;pa0+12;)swap(p);for(i=0;i3;i+)for(j=0;j4;j+)printf(“%3d”,*p+);printf(“n”);_ _ _
17、 4、设某单位将一商品四个季度的销售数据以数字串的形式放在一数组中,下面的程序实现对四个季度产品销售额的求和,请在空处填上适当表达式。#include void main()char sales410=8139.45,6245.2,1234,8937.85,*p4;int i,j,dec_dig;float sale,totle=0;for(i=0;i4;i+);for(i=0;i4;i+)sale=0;dec_dig=0;for(j=0;pij!=;j+)if(pij=.)dec_dig=1;/小数点出现,作标记if(!dec_dig)sale=10*sale+pij-0;/处理整数部分el
18、se sale=;/处理小数部分 total=total+sale;printf(totle=%fn,totle);_ _ _ 六、程序设计题(共30 分)1、编写递归函数,求n 以内的自然数的和,要求主函数中只是输入n 以及打印递归函数的计算结果。(8 分)2、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?(10分)3、有两个磁盘文件 A 和 B,各存放一行字母,要求把这
19、两个文件中的信息合并(按字母顺序排列),输出到一个新文件C 中。(12分)六、具有报名资格的考生,请于2010 年 6 月 3 日至 4 日到江西财经大学教务处办公室(蛟桥园校区第五教学楼二楼)领取准考证。七、考试时间安排1、英语:6 月 5 日上午 9:0011:00(全省统考,含听力,请自备好调频收音机频率为:FM86.225)2、综合课程:6 月 5 日下午 14:0016:00 3、C 语言程序设计:6 月 5 日下午 14:0016:00 4、大学语文:6 月 5 日下午 14:0016:00 5、微积分:6 月 6 日上午 9:0011:00 6、英语听力:6 月 6 日上午 9:0011:00(请自备好调频收音机,频率为:FM86.225)7、软件技术基础:6 月 6 日下午 14:0016:00