专升本C语言历年考试题及答案_第1页
专升本C语言历年考试题及答案_第2页
专升本C语言历年考试题及答案_第3页
专升本C语言历年考试题及答案_第4页
专升本C语言历年考试题及答案_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

1、专升本C语言历年考试题及答案江西财经大学 2005年专升本选拔考试C语言程序设计试卷(考试时间120分钟,总分100分)、用C语言描述下列命题(共16分,每小题2 分)1、 a、b和c均为整型变量,a和b中有一个大于c。2、 数学公式:亠八4ac的c语言表达式(注:sqrt()为开方函数)。2a3、写出100内的自然数x,能被3或7整除的表达式。4、写出判断字符变量ch是阿拉伯数字字符的表达式。5、写出满足x<60或90< x< 100的C语言表达式。&写出平面上的点(x,y)落在单位圆内的表达式。7、数组p10的各元素用于保存指向char型的指针,写出该数组的定义。

2、8、有名为max的函数,其功能是对两个int型参数x、y进行计算,返回其中的 较大者,写出该函数的说明部分。、根据要求画出流程图或N - S图(共10分,每小题5分)1、用流程图或N-S图表示以下算法。输入x的值,按下列函数计算y的值,并输出y的值2、画出打印以下图案的算法流程图或 N-S图。&&&& & && & & &三、程序阅读题(共20分,每小题4 分)1、# in elude <>void main( ) int i,sum=0;for(i=1;i<=30;i+)if(i%3!=0) c

3、ontinue; else sum=sum+i;printf( “n”,sum);请叙述上面程序的功能,并写出程序的运行结果2、void main( ) int a,b,x=1,y=1; scanf("%d%d",&a,&b); if (a>0) x=x+y; if (a<b) x=2*y; else if (a=b) y=5; else y=x+y; printf("x=%d,y=%dn",x,y);假设输入为 : 2 -3<CR>, 则程序运行后的输出结果为 :3、void main() int a33=2,4

4、,6,8,10,12,14,16,18; int sum=0, i, j;for ( i=0; i<3; i+) for ( j=0; j<3; 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:s2+;break;

5、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、以下函数用于求出一个3X4矩阵中的最小元素值。int min_value(int m3) int i, j, mi n

6、;min=m00;for (i=0;;i+)for (j=0 ;;j+)if ( <min) min= ;return( min );2、程序的功能是:从键盘输入一串字符(以回车换行符结束),统计其中大写英文字母的个数,将结果保存在变量count中。void mai n( )int coun t=0;char c;while(c!='n')if ();c=getchar();prin tf("have typed %d upper letters", coun t);3、 以下函数的功能是:在第一个循环中给前n个数组元素依次赋值1n;在第 二个循环中使

7、a数组的n个元素值对称互换,变成n、n-1 ? ? ? 4 、3、2、1。void fun ( int a ,i nt n)int i;int temp;for(i=1; i<=n; i+) ai-1= i;for(i=0; i<n/2; i+) temp=;ai=;=temp;4、以下程序是实现如图1所示图案的打印。void mai n() int i,j,k;char ch;for(i=1,ch=:i<=:i+)for(j=1;j<=4-i;j+) putchar(' '); /*表示空格符 */for(k=1;k<=:k+)putchar(c

8、h);prin tf("n");A五、程序设计题BB d g6分)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、a>c|b&g

9、t;c2、(-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、x<60|x>=90&&x<=1006、x*x+y*y<=17、char *p10;8、int max(int x,int y)二、根据要求画出流程图或N - S图(共10分,每小题5分)1、2、t'''nx>=0TFx>0y=1 i=1=0y=-1程序阅读

10、题(共20分,每小题4分)三、1、输出功能2、输出3、输出功能4、功能5、输出m=130内能被3整除的数的和su符求x=2,y=3si换行m=30求3*3矩阵对角线上元素之和。输入10个数,分别求出其中能被1、2、3整除的数的和并打印。Result is:55fun 函数的功能:求12+22+.+n2四、程序填空(共28分,每空2分)1、2、3、4、i<3 j<4c=getchar() ai'A' aij aij c>='A' && c<='Z' count+ a n-i-1 a n-i-1 4 2*i-1

11、 ch+五、程序设计题(共26分,8+8+10)1、void mai n() int a,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);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",su

12、m);3、#include <>#include <>定义描述学生的结构体类型 */成员变量num表示学号*/typedef struct /*int num; /* char name20; /* float score3; /*stud;void input(stud s,int n)int k;char t10;for (k=0; k<n; k+) printf("No:");gets(t); sk.num=atoi(t);printf("name:"); gets();printf("scor

13、e1=?"); 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%8s%8sn","no","name","score1","score2","s

14、core3"); for (k=0; k<n; k+) printf("%10d",sk.num);printf("%20s",);printf("%",sk.score1);printf("%",sk.score2);printf("%n",sk.score3);void prin t_average(stud s,i nt n) _int k;prin tf("nn%10s%20s%12sn"," no"," n

15、ame","ave_score");for (k=0; k<n; k+) prin tf("%10d",sk. nu m);prin tf("%20s",sk. name);prin tf("%n",(sk.score1+sk.score2+sk.score3)/3);void mai n()stud st10;in put(st,3);output(st,3);prin t_average(st,3); _C语言与程序设计试题一、用C语言描述下列命题(共16分,每小题2分)1. x为整数,写出x能

16、被3除尽,且被5除余2的判断表达式。2写出a、b之差的绝对值大于X、小于y的判断表达式。3如图所示电路中A=1表示开关合上(B,C也相同),写出能使得灯亮的表达式4 把下列数学表达式转换为 C语言表达式:5写出判断字符变量ch是阿拉伯数字符号的表达式。6. 定义一个枚举类型 seas on描述一年的四个季节(spri ng, summer, autu mn, win ter )。7. 函数fun可以接收字符串的地址作为实际参数,计算后能够返回一个字符指针, 写出该函数的声明。8. 有定义FILE fp;请写出以只读方式打开一个二进制文件的相关语句。二、根据要求画出NS图(共 5分求解使得不等式

17、1-(1/2)+(1/3)-+(1/N) > 3/5 成立的最小的N值并输出。三、单项选择题(共5分,每小题1分)1. 以下说法中正确的是()A. C语言程序总是从第一个定义的函数开始执行;B. C语言程序中至少有一个main函数;C. C语言程序总是从main函数开始执行;D. C语言程序中的main函数必须放在程序的开始部分;语言中,下列正确的叙述是 ( )A. C程序中的关键字必须小写,其他标识符不区分大小写B. C程序中的所有字母都不区分大小写C. C程序中的所有字母都必须小写D. 所有的C语言关键字必须小写3. 已知 int i=10 ;表达式 20-5<=i<=9

18、 的值是( )A. 0 B. 1 C. 19 D. 204. 以下不正确的描述是 ( )A. break 语句不能用于循环语句和 switch 语句外的其它语句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,6C. int a3=1,2,3,4,5,6; D. int a2,3=1,2,3,4,5,6四、程序阅读

19、题(共 20 分, 每小题 4 分)1、#include <>void main() int i=15;while (i>0) if (-i%3!=2) continue;else printf("%d ",i); 程序运行后的输出结果为 :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); 程

20、序运行后的输出结果为 :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=%dn",a,b,s);程序运行后的输出结果为 :4、#include <> #include <> int f1(int x) int y=0;static int z=2;y+=1; z+;retu

21、rn(x+y+z);void main() int x=1,i;char s110= “Visual ”,s210= “C+”,s10; for(i=0;i<3;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 <> #define MAX 100 void main() int fMAX,i,j,k=2,m=5

22、;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,所以是完数。#in elude <>void mai n() int m,k,i,sum;for(m=6;m<=10000;m+) if(n %10=0) prin tf("n&quo

23、t;);;for(i=2;i<=;i+)if(m%i=0);if( sum=m ) printf("%d ",m); n+; 2、下面的函数sort按照交换排序的思想,实现对 n个整型数的非递减排序。void sort(i nt p, int n) int i, j, t;for (i=1;i+)for (j=i;;j -)if (pj>=pj-1);else t=pj; pj=pj-1; pj-1=t; 3、#in clude <>void swap(i nt) int max, i, *q=p;for(i=1;i<4;i+)if(*q<

24、;*(p+i)q=p+i; max=*q;*q=*(p+3);*(p+3)=max;void mai n() int a34,i,j,*p=a0;for( i=0;i<3;i+ )for(j=0;j<4;j+)scanf( “%d”,p+);for( p=&a00;p<a0+12; )swap(p); ; for(i=0;i<3;i+) for(j=0;j<4;j+) printf(“ %3d” ,*p+);printf( “ n”); 4、设某单位将一商品四个季度的销售数据以数字串的形式放在一数组中,下面的 程序实现对四个季度产品销售额的求和,请在空处填上适当表达式。#include<>void main()char sales410= "","","1234","" ,*p4;int i, j, dec_dig;float sale, totle=0; for(i=0;i<4

温馨提示

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

评论

0/150

提交评论