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

付费下载

下载本文档

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

文档简介

1、专 升 本 C 语 言 历 年 考 试 题 及 答 案江西财经大学2005年专升本选拔考试C语言程序设计试卷(考试时间120分钟,总分100分)、用C语言描述下列命题(共16分,每小题2 分)1、a、b和c均为整型变量,a和b中有一个大于c。2、 数学公式:-13八Mac的c语言表达式(注:sqrt()为开方函数)。2a3、写出100内的自然数x,能被3或7整除的表达式。4、写出判断字符变量ch是阿拉伯数字字符的表达式。5、写出满足x<60或90$<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 <stdio.h> void main( ) int i,sum=0; for(i=1;i<=30

3、;i+) if(i%3!=0) con ti nue; 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 ma

4、in() int a33=2,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=n%”d,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+;b

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

6、, min;min=m00;for (i=0;i+)for (j=0 ;j+)if ( <min ) mi n=;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+) 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(ch);

8、prin tf("n");A五、程序设计题BCB共g C6分)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&

9、gt;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、三、1、2、3、4、5、x>=0x>0y=-1y=1i=y4y=-1程序阅读题1

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

11、; 4 2*i-1 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 <stdio.h>void main()int i,s,sum=0;for(i=1,s=0;i<=10;i+)s=s+i; sum=sum+s;printf("Resul

12、t is:%6d",sum);3、#include <stdio.h>#include <stdlib.h>typedef struct /* 定义描述学生的结构体类型 */int num;/*成员变量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

13、:"); gets();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%8s%8sn","no","name",&quo

14、t;score1","score2","score3"); for (k=0; k<n; k+) printf("%10d",sk.num);printf("%20s",);printf("%8.2f",sk.score1);printf("%8.2f",sk.score2);printf("%8.2fn",sk.score3);void prin t_average(stud s,i nt n)int k;prin tf(&

15、quot;nn%10s%20s%12sn"," no"," name","ave_score");for (k=0; k<n; k+) prin tf("%10d",sk. nu m);prin tf("%20s",sk. name);prin tf("%8.2fn",(sk.score1+sk.score2+sk.score3)/3);void mai n()stud st10;in put(st,3);output(st,3);prin t_average

16、(st,3); _C语言与程序设计试题一、用C语言描述下列命题(共16分,每小题2分)1. x为整数,写出x能被3除尽,且被5除余2的判断表达式。2写出a、b之差的绝对值大于x、小于y的判断表达式。3.如图所示电路中A=1表示开关合上(B,C也相同),写出能使得灯亮的表达式C 空B / C /4. 把下列数学表达式转换为C语言表达式:5. 写出判断字符变量ch是阿拉伯数字符号的表达式。6. 定义一个枚举类型 seas on描述一年的四个季节(spri ng, summer, autum n, wi nte)。7. 函数fun可以接收字符串的地址作为实际参数,计算后能够返回一个字符指针,写 出该

17、函数的声明。8. 有定义FILE fp;请写出以只读方式打开一个二进制文件file.dat的相关语句。二、根据要求画出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 程序中的所有字

18、母都不区分大小写C. C 程序中的所有字母都必须小写D. 所有的 C 语言关键字必须小写3. 已知int i=10 ;表达式20-5<=i<=9的值是()A. 0B. 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=

19、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 <stdio.h> void main() int i=15; while (i>0) if (-i%3!=2) continue;else printf("%d ",i);程序运行后的输出结果为 :2、#include <stdio.h>int func(int n) if (n=0)return 0; else if (n=1) return 1;

20、 else return n*n+func(n-2);void main() printf("%5d%5dn",func(3),func(5); 程序运行后的输出结果为 :3、#include <stdio.h>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); 程序运

21、行后的输出结果为 :4、#include <stdio.h>#include <string.h> 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;i<3;i+)printf("%d ",f1(x); printf( n“” ); if(strcmp(s1,s2) strcpy(s,s1); puts(s); strcat(s2,s

22、1); printf( “ %d,n%”s,strlen(s2),s2); 程序运行后的输出结果为 :5、#include <stdio.h>#define MAX 100void 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内的完数,一个数所有因子

23、的和与该数相等即为完数,如6=1+2+3,所以 6 是#in elude <stdio.h>void mai n() int m,k,i,sum; for(m=6;m<=10000;m+) if(n %10=0)prin tf("n");;for(i=2;i<=;i+)if(m%i=0);if( sum=m ) printf("%d ",m) ; n+; n个整型数的非递减排序。2、下面的函数sort按照交换排序的思想,实现对 void sort(i nt p, int n) int i, j, t;for (i=1;i+)for

24、 (j=i;;j-)if (pj>=pj-1);else t=pj; pj=pj-1; pj-1=t; 3、#i nclude <stdio.h>void swap(int ) int max, i, *q=p;for(i=1;i<4;i+)if(*q<*(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; )swa

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

温馨提示

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

最新文档

评论

0/150

提交评论