专升本C语言历年考试题及答案8

更新时间:2024-06-24 16:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

专升本C语言历年考试题及答案

江西财经大学2005年

专升本选拔考试《C语言程序设计》试卷

(考试时间120分钟,总分100分)

一、用C语言描述下列命题(共16分,每小题2分)

1、a、b和c均为整型变量,a和b中有一个大于c。 2、数学公式:

?b?b2?4ac的C语言表达式(注:sqrt( )为开方函数)。

2a3、写出100内的自然数x,能被3或7整除的表达式。 4、写出判断字符变量ch是阿拉伯数字字符的表达式。 5、写出满足x<60或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的值。

?1?y??0??1?当x?0当x?0当x?0

2、画出打印以下图案的算法流程图或N-S图。 & & & & & & & & & &

三、程序阅读题(共20分,每小题4分)

1、# include void main( ) {

int i,sum=0;

for(i=1;i<=30;i++)

if(i%3!=0) continue; else sum=sum+i; printf(“sum=%d\\n”,sum); }

请叙述上面程序的功能,并写出程序的运行结果。

2、void main( ) {

int a,b,x=1,y=1;

scanf(\ if (a>0) x=x+y; if (a

else if (a==b) y=5; else y=x+y;

printf(\ }

假设输入为: 2 -3, 则程序运行后的输出结果为:

3、void main() {

int a[3][3]={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+=a[i][j]; printf(“sum=%d\\n”,sum) ; }

请叙述上面程序的功能,并写出程序的运行结果。

4、void main( ){ int i=0;

int x,s1,s2,s3; s1=s2=s3=0; while(i++<10){

scanf(\ switch(abs(x)%3){ case 0:s1++;break; case 1:s2++;break; default:s3++; } }

printf(\ }

请叙述上面程序的功能。

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、以下函数用于求出一个3×4矩阵中的最小元素值。 int min_value(int m[][3]) { int i, j, min; min=m[0][0];

for (i=0; ① ; i++) for (j=0 ; ② ; j++) if ( ③

2、程序的功能是:从键盘输入一串字符(以回车换行符结束),统计其中大写英文字母的个数,将结果保存在变量count中。

void main( ){

int count=0; char c; ①

while(c!='\\n'){

if ( ② ) ③ ; c=getchar(); }

printf(\

}

3、以下函数的功能是:在第一个循环中给前n个数组元素依次赋值1~n;在第二个循环中使a数组的n个元素值对称互换,变成n、n-1 ? ? ? 4、3、2、1。

void fun ( int a[ ],int n){ int i; int temp;

for(i=1; i<=n; i++) a[i-1]= i; for(i=0; i

temp= ① ; a[i]= ② ; ③ =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;k<= ③ ;k++) putchar(ch); ④ printf(\ } }

A

B B B

C C C C C

D D D D D D D

(图1)

五、程序设计题(共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、a>c||b>c 2、(-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<=100 6、x*x+y*y<=1 7、char *p[10]; 8、int max(int x,int y)

二、根据要求画出流程图或N-S图(共10分,每小题5分)

1、

F x>=0 T x>0 T F y=1 y=0 y=-1 2、

i=1~4 j=1~ i 打印’&’字符 换行 三、程序阅读题(共20分,每小题4分)

1、输出: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、① i<3 ② j<4 ③ 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、

void main() { 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(\}

int i, j, t;

for (i=1; ① ; i++) for (j=i; ② ; j--)

if (p[j]>=p[j-1]) ③ ;

else { t=p[j]; p[j]=p[j-1]; p[j-1]=t; } }

① ② ③ 3、

#include 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 main()

{ int a[3][4],i,j,*p=a[0]; for( i=0;i<3;i++ ) for(j=0;j<4;j++)

scanf(“%d”,p++); for( p=&a[0][0];p

③ ; for(i=0;i<3;i++)

{ for(j=0;j<4;j++) printf(“=”,*p++); printf(“\\n”);}

}

①__________ ②__________ ③ __________

4、设某单位将一商品四个季度的销售数据以数字串的形式放在一数组中,下面的程序实现对四个季度产品销售额的求和,请在空处填上适当表达式。 #include void main(){

char sales[4][10]={ \

int i, j, dec_dig;

float sale, totle=0; for(i=0;i<4;i++) ①; for(i=0;i<4;i++){ sale=0;dec_dig=0;

for(j=0;p[i][j]!= ②;j++){

if(p[i][j]==’.’) dec_dig=1; //小数点出现,作标记 if(!dec_dig)

sale=10*sale+p[i][j]- '0'; //处理整数部分 else

sale=③; //处理小数部分 }

total=total+sale; }

printf(\}

①__________ ②__________ ③ __________

六、程序设计题(共30分)

1、编写递归函数,求n以内的自然数的和,要求主函数中只是输入n以及打印递归函数的计算结果。(8分)

2、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?(10分)

3、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。(12分)

六、具有报名资格的考生,请于2010年6月3日至4日到江西财经大学教务处办公室(蛟桥园校区第五教学楼二楼)领取准考证。

七、考试时间安排

1、英语:6月5日上午9:00—11:00(全省统考,含听力,请自备好调频收音机频率为:FM86.225)

2、综合课程:6月5日下午14:00—16:00 3、C语言程序设计:6月5日下午14:00—16:00 4、大学语文:6月5日下午14:00—16:00 5、微积分:6月6日上午9:00—11:00

6、英语听力:6月6日上午9:00—11:00(请自备好调频收音机,频率为:

FM86.225)

7、软件技术基础:6月6日下午14:00—16:00

本文来源:https://www.bwwdw.com/article/w453.html

Top