当前位置:首页 >> IT认证 >>

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


专升本 C 语言历年考试题及答案 江西财经大学 2005 年

专升本选拔考试《C 语言程序设计》试卷
(考试时间 120 分钟,总分 100 分)
一、用C语言描述下列命题(共 16 分,每小题 2 分) 1、a、b 和 c 均为整型变量,a 和 b 中有一个大于 c。
2 2、数学公式: ? b ? b ? 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 型的指针,写出该数组的定义。 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 <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); } 请叙述上面程序的功能,并写出程序的运行结果。 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-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++) {

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"); } } 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 分)

专升本选拔考试《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 T y=1 x>0 x>=0 F y=0 y=-1 T

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("%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("Result is:%6d",sum); } 3、 #include <stdio.h> #include <stdlib.h> 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("%8.2f",s[k].score[1]); printf("%8.2f",s[k].score[2]); printf("%8.2f\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("%8.2f\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 的判断表达式。 2.写出 a、b 之差的绝对值大于 x、小于 y 的判断表达式。 3.如图所示电路中 A=1 表示开关合上(B,C 也相同),写出能使得灯亮的表 达式。
A A

B

C

4.把下列数学表达式转换为 C 语言表达式:

D ? b2 ?

cos( A) 3? y

5.写出判断字符变量 ch 是阿拉伯数字符号的表达式。 6.定义一个枚举类型 season 描述一年的四个季节(spring, summer, autumn, winter) 。 7.函数 fun 可以接收字符串的地址作为实际参数,计算后能够返回一个字 符指针,写出该函数的声明。 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. B. C. C 程序中的关键字必须小写,其他标识符不区分大小写 C 程序中的所有字母都不区分大小写 C 程序中的所有字母都必须小写

D. 所有的 C 语言关键字必须小写 3.已知 int i=10;表达式 20-5<=i<=9 的值是( ) A. 0 B. 1 C. 19 D. 20 4. 以下不正确的描述是( ) A. break 语句不能用于循环语句和 switch 语句外的其它语句 B. 在 switch 语句中使用 break 语句或 continue 语句的作用相同 C. 在循环语句中使用 continue 语句是为了结束本次循环 D. 在循环语句中使用 break 语句是为了使流程跳出循环体 5. 对二维数组的正确说明是( ) A. int a[][]={1,2,3,4,5,6}; B. int a[2][]={1,2,3,4,5,6}; C. int a[][3]={1,2,3,4,5,6}; D. int a[2,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; else return n*n+func(n-2); } void main(){ printf("%5d%5d\n",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=%d\n",a,b,s); } } 程序运行后的输出结果为: 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 s1[10]=“Visual”,s2[10]=“C++”,s[10]; 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,%s\n”,strlen(s2),s2); } 程序运行后的输出结果为: 5、#include <stdio.h> #define MAX 100 void main() { int f[MAX],i,j,k=2,m=5; for(i=0;i<=m;i++) f[i]=1; f[k-1]=2; for(i=k;i<=m;i++) for(j=i-k;j<=i-1;j++) f[i]+=f[j]; printf("%d%5d%5d\n",k,m,f[m]); } 程序运行后的输出结果为: 五、程序填空(共 24 分,每小题 6 分) 1、求 10000 内的完数,一个数所有因子的和与该数相等即为完数,如 6=1+2+3, 所以 6 是完数。 #include <stdio.h> void main() { int m,k,i,sum; for(m=6;m<=10000;m++) { if(n%10==0) ①; for(i=2;i<=②;i++) if(m%i==0) ③; if( sum==m ) { printf("%d ",m);n++;} } } ①__________ ②__________ ③ __________ printf("\n");

2、下面的函数 sort 按照交换排序的思想,实现对 n 个整型数的非递减排序。 void sort(int p[], int n) {

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 <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 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<a[0]+12; ② ) swap(p); ③ ; for(i=0;i<3;i++) { for(j=0;j<4;j++) printf(“\n”);} } ①__________ ②__________ ③ __________ printf(“%3d”,*p++); ② ③

4、设某单位将一商品四个季度的销售数据以数字串的形式放在一数组中, 下面的程序实现对四个季度产品销售额的求和,请在空处填上适当表达式。 #include<stdio.h> void main(){ char sales[4][10]={ "8139.45","6245.2","1234","8937.85" },*p[4];

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("totle=%f\n",totle); } ①__________ ②__________ ③ __________

六、程序设计题(共 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


相关文章:
专升本C语言历年考试题及答案9
专升本C语言历年考试题及答案9_IT/计算机_专业资料。计算机专升本考试大纲和历年试题专升本 C 语言历年考试题及答案章与第三章练习题 1. 个 C 程序的执行...
专升本C语言历年考试题及答案10
专升本 C 语言历年考试题及答案一、单项选择题(1~30 题每小题 1 分,31~45...1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 8. 设变量...
专升本C语言历年考试题及答案1
专升本C语言历年考试题及答案1专升本C语言历年考试题及答案1隐藏>> 专升本 C 语言...1:0; C、k=a<=b; 8. 10。 scanf("a=%d, b=%d",&a, &b); A...
专升本C语言历年考试题及答案3
专升本 C 语言历年考试题及答案 语言描述下列命题(共 8 小题,每小题 3 分,计 24 分) 一、用 C 语言描述下列命题 1..y 为 int 型,满足能同时被 3,5...
专升本C语言历年考试题1
专升本 C 语言历年考试题 1 、单项选择题 1. ___是合法的用户自定义标识...0 : 1; 8.设变量定义为“int a, b;” ,执行下列语句时,输入___,则 a...
专升本C语言历年考试题及答案5
专升本C语言历年考试题及答案5_IT/计算机_专业资料。专升本 C语言考试题及答案 希望能帮助您取得好成绩。专升本 C 语言历年考试题及答案、主要知识点 (...
专升本C语言100题及答案
专升本C语言历年考试题及答... 13页 免费如要投诉违规内容,请到百度文库投诉中心...2E0 D. 1.3E 8. 在 C 语言中,合法的实型常数是( ) A. 1.2E0.5 B...
专升本C语言历年考试题及答案2
C 语言源程序文件经过 C 编译程序编译连接之后生成一个后缀为__C___的文件。...“%d%d%d”,a[2],a[5],a[8]); 专升本 C 语言历年考试题及答案 ??} ...
专升本C语言程序设计试卷
专升本C语言程序设计试卷_研究生入学考试_高等教育_教育专区。专升本 C 语言程序...0 : 1; A、k=(a>b)?1:0; C、k=a<=b; 8. 设变量定义为...
2014《C语言程序设计》专升本练习题
2014《C语言程序设计》专升本练习题_研究生入学考试_...8 页 专升本C 语言》练习题二 第 9 页 第 ...C 语言源程序文件经过编译连接之后生成一个后缀为__...
更多相关标签: