浙江省计算机二级C语言模拟试题.docx
- 文档编号:8936113
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:12
- 大小:20.59KB
浙江省计算机二级C语言模拟试题.docx
《浙江省计算机二级C语言模拟试题.docx》由会员分享,可在线阅读,更多相关《浙江省计算机二级C语言模拟试题.docx(12页珍藏版)》请在冰点文库上搜索。
浙江省计算机二级C语言模拟试题
浙江省计算机二级考试(C语言)模拟考试题
试题1(每小题3分,共12分)
阅读下列程序说明和程序,在没小题提供的若干可选答案中,挑选一个正确答案.
【程序说明】
求1-2/3+3/5-4/7+5/9-…的前20项之和.
运行示例:
sum = 0.386453
【程序】
#include
void main()
{
int i,b=1;
double s;
(1)
for(i=1;i<=20;i++){
if(i%2)
s=s+
(2) ;
else
s=s-
(2) ;
(3)
}
printf("(4)",s);
}
【供选择的答案】
(1)A、S=0 B、S=1
C、S=-1 D、S=2
(2)A、i/b B、double(i)/double(b)
C、b=b+2; D、(double)i/(double)b
(3)A、; B、b=2*i-1;
C、b=1.0*b; D、b=b+2;
(4)A、"sum=%d\n" B、"s=%c\n"
C、"sum=%f\n" D、"s=%s\n"
试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题供的若干可选答案中,挑选一个正确答案.
【程序说明】下列程序运行时,输入n个学生的姓名和3门功课成绩,然后根据3门功课的平均成绩从高分到低分显示每个学生的姓名,3门功课成绩以及平均成绩.
【程序】
#include
(5)
void main()
{ struct student { char name[9]; int a[3]; float v; } temp,*s;
int i,j,k;
scanf("%d",&n); s=(student*)malloc(n*sizeof(student));
for( (6) ) {
scanf("%s",s[i].name); s[i].v=0;
for(j=0;j<3;j++) { scanf("%d",&s[i].a[j]); (7) ; }
}
for(i=0;is[k].v) k=j;
temp=s[i]; s[i]=s[k]; s[k]=temp;
}
for(i=0;i s[i].name,s[i].a[0],s[i].a[1],s[i].a[2],s[i].v);
}
(5) A,#include B,#include
C,#include D,#include
(6) A,i=1;i<=n;i++ B,i=1;i C,i=0;i0;--i
(7) A,s[i].v=s[i].v+s[i].a[j] B,s[i].v+=s[i].a[j]/3
C,s+i->v=s+i->v+s+i->a[j]/3 D,s+i->v+=s+i->a[j]/3
(8) A,j=i-1;j C,j=i+1;j试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题供的若干可选答案中,挑选一个正确答案.
【程序说明】
从键盘输入一批以 -1结束的整数,将其中的奇数写入当前目录下的文本文件res.txt.
#include
#include
void main()
{ int x;
(9) ;
if((fp=fopen("res.txt","w"))==NULL) {
printf("不能打开文件");
exit(0);
}
scanf("%d", &x);
while( (10) ){
if(x%2!
=0) (11) ;
(12) ;
}
fclose(fp);
}
(9) A,FILE fp B,FILE *fp
C,file fp D,file *fp
(10) A,x == -1 B,feof(fp)
C,!
feof(fp) D,x!
=-1
(11) A,fprintf(fp, "%d ", x) B,printf( "%d ", x)
C,fprintf("%d ", x, fp) D,break
(12) A,printf("%d ", x) B,fscanf(fp,"%d", &x)
C,fprintf("%d ", x, fp) D,scanf("%d", &x)
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每个小题提供的若干可选答案中,挑选一个正确的答案.
【程序】
#include "stdio.h"
void main( )
{ int j, k, n, s, a[6][6];
scanf("%d",&n);
for(k=0; k for(j=0; j a[k][j]=j*n+k;
printf("a[0][1]=%d\n", a[0][1]);
s=0;
for (k=0; k s +=a[k][k];
printf("sum1=%d\n", s);
for (k=0; k s +=a[n-k-1][k];
printf("sum2=%d\n", s);
for (k=0; k s +=a[k][2];
printf("sum3=%d\n", s);
}
(13)程序运行时,输入3后,第一行输出____
A a[1][0]=6 B a[0][1]=6 C a[1][0]=3 D a[0][1]=3
(14) 程序运行时,输入3后,第二行输出______
A sum1=22 B sum1=21 C sum1=12 D sum1=11
(15) 程序运行时,输入6后,第一行输出______
A sum2=210 B sum2=211 C sum2=200 D sum2=120
(16) 程序运行时,输入6后,第二行输出______
A sum3=279 B sum3=927 C sum3=297 D sum3=277
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每个小题提供的若干可选答案中,挑选一个正确的答案.
【程序】
#include
void main()
{
int i=0,n;
char s[10]="95682h01";
n=0;
for(i=0;s[i]!
=’\0’;i++)
if(s[i]=’0’)
{
n=n*10+(s[i]-’0’);
printf("%d\n",n);
}
else
break;
}
(17)程序运行时,第2行输出____(17)____.
A,9 B,95 C,5 D,59
(18)程序运行时,第3行输出____(18)____.
A,956 B,659 C,965 D,96
(19)程序运行时,第4行输出____(19)____.
A,9586 B,5896 C,5698 D,9568
(20)程序运行时,第5行输出____(20)____.
A,92568 B,95682 C,68295 D,58629
试题6(每小题3分,共12分)
#include
struct student
{
char * name;
char *sex;
int age;
float score;
};
void initial(struct student st[], char *xm[ ], char *xb[ ],int nl[],float cj[])
{ int i;
for (i=0; i<4; i++){
st[i].name = xm[(i+3)%4];
st[i].sex = xb[(i+3)%4];
st[i].age = nl[(i+3)%4];
st[i].score = cj[(i+3)%4];
}
}
void show(struct student st[])
{ int i;
printf("学生信息如下:
\n");
for (i=0; i<4; i++)
printf("姓名:
%s\t性别:
%s\t年龄:
%d\t成绩:
%f\n",st[i].name,st[i].sex,st[i].age,st[i].score);
}
void main( )
{ struct student st[4];
char * xm[ ]={"张三", "李四","小周","小吴"};
char *xb[ ]={"男", "男","女","女"};
int nl[]={18,17,17,18};
float cj[]={85,86,80,84};
initial(st, xm, xb,nl,cj);
show (st);
}
(21)程序运行时,第1行输出____(21)____.
A,姓名:
小吴 性别:
女 年龄:
18 成绩:
84.000000
B,姓名:
李四 性别:
男 年龄:
17 成绩:
86.000000
C,姓名:
张三 性别:
男 年龄:
18 成绩:
85.000000
D,姓名:
小周 性别:
女 年龄:
17 成绩:
80.000000
(22)程序运行时,第2行输出____(22)____.
A,姓名:
小吴 性别:
女 年龄:
18 成绩:
84.000000
B,姓名:
李四 性别:
男 年龄:
17 成绩:
86.000000
C,姓名:
张三 性别:
男 年龄:
18 成绩:
85.000000
D,姓名:
小周 性别:
女 年龄:
17 成绩:
80.000000
(23)程序运行时,第3行输出____(23)____.
A,姓名:
小吴 性别:
女 年龄:
18 成绩:
84.000000
B,姓名:
李四 性别:
男 年龄:
17 成绩:
86.000000
C,姓名:
张三 性别:
男 年龄:
18 成绩:
85.000000
D,姓名:
小周 性别:
女 年龄:
17 成绩:
80.000000
(24)程序运行时,第4行输出____(24)____.
A,姓名:
小吴 性别:
女 年龄:
18 成绩:
84.000000
B,姓名:
李四 性别:
男 年龄:
17 成绩:
86.000000
C,姓名:
张三 性别:
男 年龄:
18 成绩:
85.000000
D,姓名:
小周 性别:
女 年龄:
17 成绩:
80.000000
试题7 (14分)
编写程序,求出数组a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行3个元素的形式输出.
试题8 (14分)
编写程序,找出100~999之间所有的Armstrong数.所谓Armstrong数是指这个3位数各位上数字的立方和等于自身.例如:
371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数.
练习题
二、按要求回答问题(每小题4分)
1.写出下列循环语句所对应的数学式子。
n=55;
t=1;
do{
t+=n; n-=2;
while(n>0);
2.写出程序实现的数学模型。
#include
voidmain()
{floatx,y;
printf("enterx:
");
scanf("%f",&x);
if(x<0.0)y=0.0;
elseif((x<5.0)&&(x!
=2.0))y=1.0/(x+2.0);
elseif(x<10.0)y=1.0/x;
elsey=10.0;
printf("\n%f\n”,y);
}
3.运行下面程序后的w值为多少?
intf(intx)
{inty=0;
staticz=3;
y++; z++;
return(x+y+z);
}
voidmain()
{intw=2,k;
for(k=1;k<3;k++)w=f(w);
printf("%d\n",w);
}
4.简述下列程序完成的功能
voidmain()
{inta[10],*p,*s,i;
for(i=0;i<10;i++)
scanf(%d”,a+i);
for(p=a,s=a;p-a<10;p++)
if(*p>*s)s=p;
printf(“max=%d,index=%d\n”,*s,s-a);
}
5.简述下列程序完成的功能。
#include
voidmain()
{char ch;
ch=getchar();
if(ch>="A"&&ch<="Z")ch+=32;
if(ch>=97&&ch<=122)ch-='a'-'A';
printf("%c",ch);
}
6. 写出下列程序的结果。
include"stdio.h"
voidmain()
{intx[]={1,3,5};
ints=1,k=0,*p=x;
for(;k<3;k+=2)
s*=*(p+k);
printf("%d\n",s);
}
7.下列程序的执行结果
intf(inth)
{switch(h)
{case0:
return0;
case1:
case2:
return1;
}
return-10;
}
voidmain()
{intk;
k=f(-1);
printf(“%d\n”,k);}
8.下列程序段运行后x的值是多少?
a=b=c=0; x=500;
if(!
a)x--;
elseif(b)
if(c)x=3;
elsex=4;
9.简述下列程序的功能
#include
voidf(int*s,intn1,intn2)
{inti,j,t;
i=n1; j=n2;
while(i {t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; i++;j--;} } 10.执行以下程序段后,m的值是多少。 int a[]={2,4,3,1,10}; intm=10,k,*p=a; for(k=0;k<5;k++) m=(*(p+k) *(p+k): m); 11.写出下面程序的运行结果。 voidmain() {inti=1; while(i<10) if(++i%3==2)continue; elseprintf("%d",i); } 12.写出下面程序的运行结果。 #include intfun(inta,intb) {b=a+b; returnb; } voidmain() {intx=6,y=7,z=8,r; r=fun((x--,y++,x+y),z--); printf("%d %d %d %d\n",x,y,z,r); } 13.写出程序的运行结果 #include intd=1; intfun(intp) {staticintd=3; d+=p; printf("%3d",d); return(d); } voidmain() {printf("%3d\n",fun(3+fun(d)));} 14.写出程序的输出结果。 voidmain() (inti,j; for(i=6;i>0;i--) { for(j=0;j<10-i;j++)printf(""); for(j=0;j<=2*i-1;j++)printf("*"); printf("\n"); } } 15.写出程序的输出结果。 voidmain() (inti,j; for(i=1;i<8;i++) { for(j=0;j<10-i;j++)printf(""); for(j=0;j<=2*i-1;j++)printf("#"); printf("\n"); } } 16.写出下列程序段的输出结果。 char a[]="language",b[]="programe"; char*p1=a,*p2=b; intk; for(k=0;k<7;k++) if(*(p1+k)==*(p2+k))putchar(*(p1+k)); 17.voidmain() {intn1,n2; scanf("%d",&n2); while(n2! =0) {n1=n2%10; n2=n2/10;} printf("%d",n1); } 若键盘输入12345,则程序的运行结果是多少? 18.阅读程序,回答问题。 voidmain() {inta,b,m,n; scanf("%d%d",&a,&b); m=1;n=1; if(a>0)m=m+n; if(a elseif(a==b)n=5; elsen=m+n; printf("m=%d n=%d\n",m,n); } 问题: 当输入为: -1 -2时,程序的运行结果是 19.调用fun函数后,由指针变量p所指向的数组中的十个元素值是多少? voidfun(int*p) {int k; for(k=1;k<=10;k++)*(p+k-1)=k+10; for(k=0;k<5;k++)*(p+9-k)=*(p+k); } 20.写出程序的输出结果 #include"stdio.h" void ast(intx,inty,int*cp,int*dp) {*cp=x=x+y; *dp=y=x-y; } voidmain() { inta,b,c,d; a=4;b=3; ast(a,b,&c,&d); printf(“%d %d %d %d\n”,a,b,c,d); } 三.编写程序(每小题10分) 1.求分段函数值。 2.求S=X-X2/2+X3/3-X4/4+…-X10/N 3.求S=1! +(1! +2! )+(1! +2! +3! )+…(1! +2! +…+8! ) 4.用台劳级数求e的近似值,直到最后一项小于10-6 e=1+1/1! +1/2! +1/3! +…… 5.求出100~1000之间能被7整除的数,要求以一行8个数的形式输出这些数,最后输出这些数的总和。 6.任意输入x[10][10]个数,找出并输出其中的最大数和最小数,以及它们的下标。 7.任意输入a[N][N]个数,求出行下标加列下标之和为奇数的这些元素之和。 8.任意输入50个数,求出其中的偶数之和、奇数之和,以及分别求出它们的个数。 9.编程对数组A[N]中的数据进行从小到大顺序排列。 10.编写一个函数,将两个字符串连接起来。 (不能用strcat函数)。 11.写一个判断素数的函数,并要求在主函数中输入一个整数并输出相应的判断信息("YES"或者"NO")。 12.设数组A[n]中是一组有序数,编程完成从键盘任意输入一个数x,若数组A[n]中存在x则将它们删除,并将数组长度压缩(即后面元素向前移动,元素顺序不能改变。 不能引人新数组);若数组A[n]中不存在x则显示“not found! ”。 13.设有2个字符串S1与S2,编程实现将S1中的第n个到第m个字符的内容复制到S2串的尾部。 (n、m由键盘输入) 14.编写一个函数intcomp(char*s1,char*s2),比较字符串S1和S2的大小,若S1大于S2则返回1,若S1等于S2则返回0,若S1小于S2则返回-1。 (不能用strcmp函数) 15.编写一函数: intsubstring(char*str,char*sub),判断字符串sub是否是字符串str的子串,若是子串,则返回子串的位置,否则返回-1。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江省 计算机 二级 语言 模拟 试题