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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专升本选拔考试《C 语言程序设计》参考答案及评分标准
一、用C语言描述下列命题(共 16 分,每小题 2 分)
8、有名为 max 的函数,其功能是对两个 int 型参数 x、y 进行计算,返回 其中的较大者,写出该函数的说明部分。
二、根据要求画出流程图或N-S图(共 10 分,每小题 5 分)
1、用流程图或 N-S 图表示以下算法。 输入 x 的值,按下列函数计算 y 的值,并输出 y 的值。
1
y


return( min ) ; }
2、程序的功能是:从键盘输入一串字符(以回车换行符结束),统计其 中大写英文字母的个数,将结果保存在变量 count 中。
void main( ){ int count=0; char c; ① while(c!='\n'){ if ( ② ) ③ ; c=getchar(); } printf("have typed %d upper letters", count);
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++)
} 请叙述上面程序的功能,并写出程序的运行结果。
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);
0
1
当x 0 当x 0 当x 0
2、画出打印以下图案的算法流程图或 N-S 图。 & && &&& &&&&
三、程序阅读题(共 20 分,每小题 4 分)
1、# include <stdio.h>
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);
四、程序填空(共 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= ④ ;
专升本 C 语言历年考试题及答案
江西财经大学 2005 年
专升本选拔考试《C 语言程序设计》试卷
(考试时间 120 分钟,总分 100 分)
一、用C语言描述下列命题(共 16 分,每小题 2 分)
1、a、b 和 c 均为整型变量,a 和 b 中有一个大于 c。 2、数学公式: b b2 4ac 的C语言表达式(注:sqrt( )为开方函数)。
2a
3、写出 100 内的自然数 x,能被 3 或 7 整除的表达式。 4、写出判断字符变量 ch 是阿拉伯数字字符的表达式。 5、写出满足 x<60 或 90≤x≤100 的 C 语言表达式。 6、写出平面上的点(x,y)落在单位圆内的表达式。 7、数组 p[10]的各元素用于保存指向 char 型的指针,写出该数组的定义。
putchar(ch); ④ printf("\n"); } } A BBB CCCCC DDDDDDD
(图 1)
五、程序设计题(共 26 分)
1、设一个三位数可以表示为 abc,若其能满足条件 a3+b3+c3=abc,则称其 为水仙花数,编程求出所有的水仙花数。(8 分)
2、编程求数列 1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。(8 分) 3、设有 10 个学生的信息,包括学号、姓名和三门功课的成绩,试编写 学生信息输入函数、学生信息输出函数、打印每一学生平均分函数,最后编写 主函数,并在主函数中调用测试这些函数。(10 分)
}
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<n/2; i++) {
} 请叙述上面程序的功能,并写出程序的运行结果。
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) ;
}
请叙述上面程序的功能。
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 函数的功能并写出程序的运行结果。
相关文档
最新文档