专升本C语言历年考试题及答案Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#专升本C语言历年考试题及答案江西财经大学2005年专升本选拔考试《C语言程序设计》试卷(考试时间120分钟,总分100分)一、用C语言描述下列命题(共16分,每小题2分)1、a、b和c均为整型变量,a和b中有一个大于c。
2、数学公式:a acb24 2-+-b的C语言表达式(注:sqrt( )为开方函数)。
3、写出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的值。
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("%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=%d\n",x,y);}假设输入为: 2 -3<CR>, 则程序运行后的输出结果为: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("%d",&x);switch(abs(x)%3){case 0:s1++;break;case 1: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、以下函数用于求出一个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 ( ③ <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个数组元素依次赋值1~n;在第二个循环中使a数组的n个元素值对称互换,变成n、n-14、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<n/2; 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("\n");}} 五、程序设计题(共26分) 1、设一个三位数可以表示为abc ,若其能满足条件a 3+b 3+c 3=abc ,则称其为水仙花数,编程求出所有的水仙花数。
(8分)2、编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。
(8分)3、设有10个学生的信息,包括学号、姓名和三门功课的成绩,试编写学生信息输入函数、学生信息输出函数、打印每一学生平均分函数,最后编写主函数,并在主函数中调用测试这些函数。
(10分)专升本选拔考试《C 语言程序设计》参考答案及评分标准一、用C语言描述下列命题(共16分,每小题2分)1、a>c||b>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 *p[10]; 8、int max(int x,int y)二、根据要求画出流程图或N-S图(共10分,每小题5分)1、2、4分)1 234、功能:输入10个数,分别求出其中能被1、2、3整除的数的和并打印。
5、输出:Result is:55fun 函数的功能:求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、AB B BC C C C CD D D D D D D (图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("%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",sum);}3、#include <>#include <>typedef struct{ /*定义描述学生的结构体类型*/int num; /*成员变量num表示学号*/char name[20]; /*姓名*/float score[3]; /*成绩*/}stud;void input(stud s[],int n){int k;char t[10];for (k=0; k<n; 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);}}void output(stud s[],int n){int k;printf("%10s%20s%8s%8s%8s\n","no","name","score1","score2","score3"); for (k=0; k<n; k++) {printf("%10d",s[k].num);printf("%20s",s[k].name);printf("%",s[k].score[1]);printf("%",s[k].score[2]);printf("%\n",s[k].score[3]);}}void print_average(stud s[],int n){int k;printf("\n\n%10s%20s%12s\n","no","name","ave_score");for (k=0; k<n; k++) {printf("%10d",s[k].num);printf("%20s",s[k].name);printf("%\n",(s[k].score[1]+s[k].score[2]+s[k].score[3])/3);}}void main(){stud st[10];input(st,3);output(st,3);print_average(st,3);}C语言与程序设计试题一、用C语言描述下列命题(共16分,每小题2分)1.x为整数,写出x能被3除尽,且被5除余2的判断表达式。