专升本C语言历年考试题及答案.docx
- 文档编号:5918236
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:15
- 大小:23.60KB
专升本C语言历年考试题及答案.docx
《专升本C语言历年考试题及答案.docx》由会员分享,可在线阅读,更多相关《专升本C语言历年考试题及答案.docx(15页珍藏版)》请在冰豆网上搜索。
专升本C语言历年考试题及答案
C语言历年考试题及答案专升本2005年江西财经大学C语言程序设计》试卷专升本选拔考试《)
100分120分钟,总分(考试时间2分)一、用C语言描述下列命题(共16分,每小题c。
和b中有一个大于a、b和c均为整型变量,a、12ac?
4b?
b?
、数学公式:
2为开方函数)。
的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的值。
2、画出打印以下图案的算法流程图或N-S图。
&
&&
&&&
&&&&
三、程序阅读题(共20分,每小题4分)
1、#include
voidmain(){
inti,sum=0;
for(i=1;i<=30;i++)
if(i%3!
=0)continue;
elsesum=sum+i;
printf(“sum=%d\n”,sum);
}
请叙述上面程序的功能,并写出程序的运行结果。
2、voidmain(){
inta,b,x=1,y=1;
scanf(%d%d,&a,&b);
if(a>0)x=x+y;
if(a
elseif(a==b)y=5;
elsey=x+y;
牰湩晴尨?
搥礬┽層湜?
?
?
※
}
假设输入为:
2-3
3、voidmain(){
inta[3][3]={2,4,6,8,10,12,14,16,18};
intsum=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、voidmain(){
inti=0;
intx,s1,s2,s3;
s1=s2=s3=0;
while(i++<10){
scanf(%d,&x);
switch(abs(x)%3){
case0:
s1++;break;
case1:
s2++;break;
default:
s3++;
}
}
printf(s1=%d,s2=%d,s3=%d,s1,s2,s3);
}
请叙述上面程序的功能。
5、intfun(intn){
if(n==0)return0;
elseif(n==1)return1;
returnn*n+fun(n-1);
}
voidmain(){
printf(“Resultis:
%d”,fun(5));
}
函数的功能并写出程序的运行结果。
fun请叙述上面程序中
四、程序填空(共28分,每空2分)
1、以下函数用于求出一个3×4矩阵中的最小元素值。
intmin_value(intm[][3]){
inti,j,min;
min=m[0][0];
for(i=0;①;i++)
for(j=0;②;j++)
if(③ return(min); } 2、程序的功能是: 从键盘输入一串字符(以回车换行符结束),统计其中大写英文字母的个数,将结果保存在变量count中。 voidmain(){ intcount=0; charc; ① while(c! ='\n'){ if(②)③; c=getchar(); } printf(havetyped%dupperletters,count); } 3、以下函数的功能是: 在第一个循环中给前n个数组元素依次赋值1~n;在第二个循环中使a数组的n个元素值对称互换,变成n、n-1? ? ? 4、3、2、1。 voidfun(inta[],intn){ inti; inttemp; for(i=1;i<=n;i++)a[i-1]=i; for(i=0;i temp=①; a[i]=②; ③=temp; } } 4、以下程序是实现如图1所示图案的打印。 voidmain(){ inti,j,k; charch; for(i=1,ch=①;i<=②;i++){ for(j=1;j<=4-i;j++)putchar(□);/*□表示空格符*/''for(k=1;k<=③;k++) putchar(ch); ④ printf(\ ); } } A BBB 五、程序设计题(共26分)CCCCC DDDDDDD333,则称其为水仙花数,+c=abcabc1、设一个三位数可以表示为,若其能满足条件a+b1) (图) (8分编程求出所有的水仙花数。 8分)2、编程求数列1+(1+2)+(1+2+3)+…+(1+2+...+10)的和并输出。 (个学生的信息,包括学号、姓名和三门功课的成绩,试编写学生信息输入、设有103函数、学生信息输出函数、打印每一学生平均分函数,最后编写主函数,并在主函数中调用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<=1 7、char*p[10];8、intmax(intx,inty) 二、根据要求画出流程图或N-S图(共10分,每小题5分) 1、 Fx>=0T2、TFx>0y=1i=1~4y=0y=-1 三、程序阅读题(共20分,每小题4分)j=1~i 打印'&'字符1sum=165、输出: 换行3整除的数的和。 内能被功能: 求302、输出: x=2,y=3 3、输出: sum=30 功能: 3*矩阵对角线上元素之和。 4、功能: 输入10个数,分别求出其中能被1、2、3整除的数的和并打印。 5、输出: Resultis: 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、 voidmain(){ inta,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(],100*a+10*b+c); } 2、 #include voidmain(){ inti,s,sum=0; for(i=1,s=0;i<=10;i++){ s=s+i; sum=sum+s; } printf(Resultis: m,sum); } 3、 #include #include typedefstruct{/*定义描述学生的结构体类型*/ intnum;/*成员变量num表示学号*/ charname[20];/*姓名*/ floatscore[3];/*成绩*/ }stud; voidinput(studs[],intn) { intk;chart[10]; for(k=0;k printf(No: );gets(t);s[k].num=atoi(t); printf( ame: );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); } } voidoutput(studs[],intn) { intk; printf(_x0010_ss%8s%8s%8s\n, o, ame,score1,score2,score3); for(k=0;k printf(_x0010_d,s[k].num); printf(s,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]); } } voidprint_average(studs[],intn) { intk; printf(\ \n_x0010_ss_x0012_s\n, o, ame,ave_score); for(k=0;k printf(_x0010_d,s[k].num); printf(s,s[k].name); printf(%8.2f\n,(s[k].score[1]+s[k].score[2]+s[k].score[3])/3); } } voidmain(){ studst[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也相同),写出能使得灯亮的表达式。 AC B 语言表达式: 4.把下列数学表达式转换为C是阿拉伯数字符号的表达式。 5.写出判断字符变量ch。 spring,summer,autumn,winter)6.定义一个枚举类型season描述一年的四个季节(可以接收字符串的地址作为实际参数,计算后能够返回一个字符指针,写fun7.函数出该函数的声明。 file.dat的相关语句。 FILEfp;请写出以只读方式打开一个二进制文件.有定义85分)二、根据要求画出NS图(共值并输出。 成立的最小的…+(1/N)>3/5N求解使得不等式1-(1/2)+(1/3)-分)5分,每小题1三、单项选择题(共() 以下说法中正确的是1.语言程序总是从第一个定义的函数开始执行;CA.main函数;B.C语言程序中至少有一个函数开始执行;C语言程序总是从mainC. 函数必须放在程序的开始部分;mainD.C语言程序中的() 语言中,下列正确的叙述是2.C 程序中的关键字必须小写,其他标识符不区分大小写CA. B.C程序中的所有字母都不区分大小写 C.C程序中的所有字母都必须小写 D.所有的C语言关键字必须小写 3.已知inti=10;表达式20-5<=i<=9的值是() A.0B.1C.19D.20 4.以下不正确的描述是() A.break语句不能用于循环语句和switch语句外的其它语句 B.在switch语句中使用break语句或continue语句的作用相同 C.在循环语句中使用continue语句是为了结束本次循环 D.在循环语句中使用break语句是为了使流程跳出循环体 5.对二维数组的正确说明是() A.inta[][]={1,2,3,4,5,6};B.inta[2][]={1,2,3,4,5,6}; C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6}; 四、程序阅读题(共20分,每小题4分) 1、#include voidmain() {inti=15; while(i>0) if(--i%3! =2) continue; else printf(%d,i); } 程序运行后的输出结果为: 2、#include intfunc(intn){ if(n==0)return0; elseif(n==1)return1; elsereturnn*n+func(n-2); } voidmain(){ printf(]]\n,func(3),func(5)); } 程序运行后的输出结果为: 3、#include voidmain(){ inta,b,s,t; a=b=s=0,t=1; while(t<=4){ t=t+1; switch(t%3){ case1: a=a+t;break; case2: b=b+t;break; default: s=s+3; } printf(a=%d,b=%d,s=%d\n,a,b,s); } } 程序运行后的输出结果为: 4、#include #include intf1(intx) {inty=0; staticintz=2; y+=1;z++; return(x+y+z); } voidmain() {intx=1,i; chars1[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 #defineMAX100 voidmain() {intf[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]]\n,k,m,f[m]); } 程序运行后的输出结果为: 五、程序填空(共24分,每小题6分) 1、求10000内的完数,一个数所有因子的和与该数相等即为完数,如6=1+2+3,所以6是完数。 . #include voidmain() {intm,k,i,sum; for(m=6;m<=10000;m++) {if(n_x0010_==0)printf(\ ); ①; for(i=2;i<=②;i++) if(m%i==0) ③; if(sum==m) {printf(%d,m);n++;} } } ①__________②__________③__________ 2、下面的函数sort按照交换排序的思想,实现对n个整型数的非递减排序。 voidsort(intp[],intn){ inti,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 voidswap(int①) {intmax,i,*q=p; for(i=1;i<4;i++) if(*q<*(p+i)) q=p+i; max=*q;*q=*(p+3);*(p+3)=max; } voidmain() {inta[3][4],i,j,*p=a[0]; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(“%d”,p++);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 历年 考试题 答案