b)s);if(b>c)s);if(______2_____" />

浙江省秋季C语言二级考试上机编程试题及答案

浙江省秋季C语言二级考试上机编程试题及答案
浙江省秋季C语言二级考试上机编程试题及答案

浙江省2011年秋季C语言二级考试上机编程试题及答案1.三个数比较大小。

#include

void s) //int *pa,int *pb

{ /*交换两个数的位置*/

int temp; temp = *pa; *pa = *pb; *pb = temp; }

void main()

{ int a,b,c,temp;

scanf("%d%d%d",&a,&b,&c);

if(a>b) s);

if(b>c) s);

if(______2______) //a>b

s);

printf("%d,%d,%d",a,b,c); }

2.表达式求和。

#include #include

void main()

{ FILE *fp;

float n=1,t=1,pi=0;

int i;

// 从以下开始答题

i=1;

while(fabs(t)>=1e-6)

{ pi=pi+t; i= -i; n=n+2; t=i/n; }

fp=fopen("Design1.dat","w");

fprintf(fp,"%.6f",4*pi);

fclose(fp); }

运行结果:3.141594

3.字母后移循环输出。

#include

void main()

{ char c; c=getchar();

if(______1______) // c>='a' && c<'v'

c=c+5;

else

if (c>='v' && c<='z')

______2______ // c=c-21;

putchar(c); }

4.求满足条件的数。

#include

#include

void main()

{ float y=1.05; int n=1; FILE *p;

// 以下开始做答

while(!(pow(y,n)<1e6 && pow(y,n+1)>1e6)) n++;

p=fopen("Design2.dat","w");

fprintf(p,"%d,%.0f",n,pow(1.05,n));

fclose(p); }

运行结果:283,992137

5.求满足条件的数。

#include

void main()

{ int m=0,t=1,n;

while( _____ 1 ________); // (scanf("%d",&n),n<=0)

while(!(t<=n&&t*2>=n)){

_____ 2 _____ // t=t*2;

m++; }

printf("%d\n",m); }

6.求平面点间的最短距离。

#include #include

#define len(x1,y1,x2,y2) sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) void main()

{ FILE *p; int i,j; float c,minc;

float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};

float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};

minc=len(x[0],y[0],x[1],y[1]);

p=fopen("Design1.dat","w");

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if((c=len(x[i],y[i],x[j],y[j]))

minc=c;

fprintf(p,"%f",minc);

fclose(p); }

运行结果:1.457944

7.Fibonacci数列求值问题。

#include

_______1______ // long f(int n);

void main()

{ printf("%ld\n",f(30)); }

long f(int n)

{ if( ______2______ ) // n==1 || n==2

return 1;

else

return f(n-1)+f(n-2); }

运行结果:832040

8.多项式求和问题。

#include #include

void main()

{ FILE *p; int i; float x=1.279,t=1,y=0;

float a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; p=fopen("Design2.dat","w");

y=a[0] ;

for(i=1;i<10;i++)

{ t=t*x; y=y+t*a[i]; }

fprintf(p,"%f",y);

fclose(p); }

运行结果:98.722542

9.整数转换为字符串。

#include

void itoa(long i,char *s)

{ if(i==0) return;

/****** 1 ******/

*s = '1'+i%10; //*s='0'+i%10

itoa(i/10,s-1); }

void main()

{ long n; char str[7]=""; scanf("%ld",&n);

/****** 2 ******/

itoa(n,str+6); // itoa(n,str+5);

printf("%s",str); }

10.Fibonacci数列求值问题。

#include

void main()

{ FILE *p; int i; float f1=1.0,f2=2.0,t1=2.0,t2=3.0,s; float f,t;

s=t1/f1+t2/f2;

p=fopen("Design1.dat","w");

for(i=3;i<40;i=i+2)

{ t1=t1+t2; t2=t1+t2; f1=f1+f2; f2=f1+f2; s=s+t1/f1+t2/f2; } fprintf(p,"%.6f",s); fclose(p); }

运行结果:65.020950

11.数组赋值。

#include

void main()

{ int a[10],b[10],i;

printf("\ninput 10 numbers: ");

for (i=0; i<10;i++) /* 数组输入 */

scanf("%d", &a[i]);

for (i=1; i<10; i++)

b[i]=______1______; // b[i]=a[i]+a[i-1];

for (i=1; i<10; i++)

{ printf("%3d",b[i]);

if (______2______) printf("\n"); // i%3==0 } } 12.求各点距离和。

#include #include

void main()

{ FILE *p; int i;

float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};

float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4}; float s=0.0;

p=fopen("Design2.dat","w");

for(i=0;i<10;i++)

s=s+sqrt(pow(x[i]-1, 2)+pow(y[i]-1, 2));

fprintf(p,"%.6f",s); fclose(p); }

运行结果:52.679447

13.十进制数转换为二进制数。

#include

void dec2bin(int m)

{ int bin[32],j;

for(j=0;m!=0;j++)

{ bin[j]= ______1______; //m%2

m=m/2; }

for(;j!=0;j--)

printf("%d", ______2______ ); //bin[j-1] } void main()

{ int n;

scanf("%d",&n);

dec2bin(n); }

14.求符合条件的数列之和。

#include

#include

void main()

{ FILE *p; float s=0,a=81;int i;

p=fopen("Design2.dat","w");

for(i=1;i<=30;i++)

{ s=s+a;

a=sqrt(a); }

fprintf(p,"%.3f",s);

fclose(p); }

运行结果:121.336

15.在字符串中删除数字字符。

#include #include #include void f(char *s)

{ int i=0;

while(s[i]!='\0'){

if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy

___2___ i++;} // else }

void main()

{ char str[80];

gets(str); f(str); puts(str); }

16.求满足条件的数。

#include

void main()

{ FILE *p; float f(float x,float y),min;

int x,y,x1,y1;

p=fopen("Design1.dat","w");

min=f(1,1);

for(x=1;x<=6;x++)

for(y=1;y<=6;y++)

if (f(x,y)

fprintf(p,"%d,%d",x1,y1);

fclose(p); }

float f(float u,float v)

{ return (3.14*u-v)/(u+v); }

运行结果:1, 6

17.去除数组中的负数。

#include

void f(int *a,int *m)

{ int i,j;

for(i=0;i<*m;i++)

if(a[i]<0) {

for(j=i--;j<*m-1;j++) a[j]=a[j+1];

_____1_____; // *m=*m-1; } }

void main()

{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______; // f(x,&n);

for(i=0;i

printf("\n"); }

运行结果:1 3 4 6

18.二维数组中的运算。

#include #include

void main()

{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE *p; float x; int i,j;

for(i=0;i<3;i++)

{ x=fabs(a[i][0]);

for(j=1;j<3;j++)

if(fabs(a[i][j]>x)) x=fabs(a[i][j]);

for(j=0;j<3;j++)

a[i][j]=a[i][j]/x; }

p=fopen("Design2.dat","w");

for(i=0;i<3;i++) {

for(j=0;j<3;j++) fprintf(p,"%10.6f",a[i][j]);

fprintf(p,"\n"); }

fclose(p); }

运行结果:0.361111 0.750000 1.000000

0.425532 0.638298 1.000000

0.750000 1.000000 0.317500

19.平面上各点距离计算。

#include #include #include

void main()

{ int i,n;

/***** 1 *****/

struct axy { float x,y; } a; // struct axy{ float x; float y;} *a; scanf("%d",&n);

a=(float*) malloc(n*2*sizeof(float));

for(i=0;i

/***** 2 *****/

scanf("%f%f",a[i].x,a[i].y); // scanf("%f%f",&a[i].x,&a[i].y); for(i=0;i

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y); }

**试题本身有错误,a=(struct axy *) malloc(n*2*sizeof(float)); 20.从a数组中找出偶数放入b数组。

#include

void main()

{ FILE *p;

int i,j,temp,n=0;

int a[10]={7,6,20,3,14,88,53,62,10,29},b[10];

for(i=0;i<10;i++)

if(a[i]%2==0) b[n++]=a[i];

for(i=0;i

for(j=0;j

if(b[j]>b[j+1]) {temp=b[j];b[j]=b[j+1];b[j+1]=temp;} p=fopen("Design1.dat","w");

for(i=0;i

{ fprintf(p,"%3d",b[i]);

if ( (i+1)%3==0) fputc (p, ‘\n’); }

fclose(p); }

运行结果:6 10 14

20 62 88

21.求输入整数的各位数字之和。

#include #include

void main()

{ int n,s=0;

scanf("%d",&n);

______ 1 ______ // n=fabs(n);

while(n!=0) {

______ 2 ______ // s+=n%10;

n=n/10; }

printf("%d\n",s); }

22.关于生产能力的数学应用题。

#include

int year(int x)

{ float p=11.5; int y=1999;

while(p<=x)

{ p=p*(1+0.098); y++; }

return y; }

void main()

{ FILE *p;

p=fopen("design.dat","w");

fprintf(p,"%d,%d",year(20),year(30)); fclose(p); } 运行结果:2005,2010

23.穷举法求解方程。

#include

void main()

{ FILE *p; int x,y,z,k=0;

p=fopen("Design1.dat","w");

for(x= -45;x<45;x++)

for(y= -45;y<45;y++)

for(z= -45;z<45;z++)

if(x*x+y*y+z*z==2000) k++;

fprintf(p,"%d",k); fclose(p); }

运行结果:144

24.字符串排序。

#include #include

void main()

{ FILE *p; char *s="634,.%@\\w|sq2",c;

int i,j,k,n=strlen(s);

p=fopen("Design2.dat","w");

for(i=0;i

for(j=i+1;j

if( *(s+j)<*(s+i) ) {c=*(s+i); *(s+i)=*(s+j); *(s+j)=c; } for(i=0;i

fclose(p); }

运行结果:%,.2346@\qsw|

25.将整数首尾倒置。

二级(C语言程序设计)上机题汇总

二级(C语言程序设计)上机题汇总 一、程序调试题 (一)程序填空 练习一: /*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/ #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ____ max=f(1);____ for(x=2;x<=10;x++) ___if( max void swap(__int *pa, int *pb____) { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(__a>b___) swap(&a,&b); printf("%d,%d,%d",a,b,c); } 练习三: /*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/ #include

void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= __m%2___; m=m/2; } for(;j!=0;j--) printf("%d", ____bin[j-1]_ _____ ); } void main() { int n; scanf("%d",&n); Dec2Bin(n); } 练习四: /*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6*/ #include void f(int *a,int *m) { int i,j; for(i=0;i<*m;i++) if(a[i]<0) { for(j=i--;j<*m-1;j++) a[j]=a[j+1]; ___*m=*m-1;___ } } void main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; _ f(x,&n);_____ for(i=0;i void main() { int i,j,s; for(i=6;i<=1000;i++) { ___s=1;___

浙江省计算机二级c语言上机考试真题版

浙江省二级c语言上机考试真题 介绍:浙江省二级c语言考试分为笔试和上机考试两块.取笔试和上机中分数较低的那个作为计算机二级的最终成绩,最后证书上按档次划分等级,其中60-79及格,80-89良好,90-100优秀。 笔试部分分两块,一块是24道选择题(六道程序题,每题中间有四个空,每空有四个选项供选择),浙江省的计算机笔试选择题不考概念性内容,所以大家不用费心,另一块是程序编写,手写两个完整程序,一道循环数组(结合),一道是函数或指针。 上机部分分两块,一块是计算机基本操作,即从access,ppt,excel,outlook,word,网页制作,文件夹操作中随机选择四道,另一块是编程,编程题可以打开编程软件c-free来做,编程中共五道题,一道改错,两道填空,最后两道是编写程序。 (一)程序改错: 1,10个数求最大最小值

该程序中“/***** N ***** /”的下一行中有错误, 请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。#include void main() { float x,max,min; int i; /******** 1 *******/ for(i=0;i<=10;i++) { scanf("%f",&x); /******* 2 ********/ if(i=1) { max=x;min=x;} if(x>max) max=x; if(x } printf("%f,%f\n",max,min); } ?#include ?int main() ?{ float x,max,min; int i; ?/******** 1 *******/

C语言上机试题

1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能就是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2:第2题请编写函数fun,它的功能就是:求出1到100之内能北7或者11整除,但不能同时北7与11整除的所有证书,并将她们放在a所指的数组中,通过n返回这些数的个数。 3:第3题请编写函数void fun(int x,int pp[],int *n),它的功能就是:求出能整除x且不就是偶 数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"至U "z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能就是:将大于整数m且 紧靠m的k各素数存入xx所指的数组中。 6:第6题请编写一个函数void fun(char a[],char[],int n),其功能就是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 7:第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下 标并存放在k所指的储存单元中。 8:第8题编写函数fun,功能就是:根据以下攻势计算s,计算结果作为函数值返回『通过形参 传入。S=1 + 1/(1+2)+1/(1+2+3)+ ??…、+1/(1+2+3+4+ ??…+n) 9:第9题编写一个函数fun,它的功能就是:根据以下公式求p的值,结果由函数值带回。M 与n为两个正整数,且要求m>n。p=m!/n!(m-n)! 10:第10题编写函数fun,它的功能就是:利用以下的简单迭代方法求方程cos(x)-x=0的一个 实根。 迭代步骤如下:(1)取x1初值为0、0;⑵x0=x1,把x1的值赋各x0; (3) x1=cos(x0),求出一个新的x1; (4) 若x0-x1的绝对值小于0、000001,则执行步骤(5),否则执行步骤(2); (5) 所求x1就就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0、739085。 11:第11题下列程序定义了nx n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能就是:使数组左下半三角元素中的值全部置成0。 12:第12题下列程序定义了n x n的二维数组,并在主函数中赋值。请编写函数fun,函数的 功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt 指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之与,作为函数值返回。二 维数组中的值在主函数中赋予。 15:第15题请编写一个函数unsigned fun(unsigned w),w 使一个大于10的无符号整数,若w 使n(n>2)位的整数,则函数求出w后n-1位的数作为函数值返回。 16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树, 并对第三位进行四舍五入(规定h中的值位正数)。 17:第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。 19:第19题编写函数fun,该函数的功能就是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能就是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

03年浙江省计算机等级考二级(C语言)

2003年秋浙江省高校非计算机专业学生 计算机等级考试试卷(二级C) 说明:⑴考生应将试题一至试题三的答案涂在答题卡上,将第四、五题的答案填写在答卷上,否则作无效处理; ⑵请将你的准考证号的后四位填写在答卷右下角的指定位置内; ⑶考试时间为120分钟。 试题一、计算机基础题(本题共15分) (一)单选题(每小题1分,共10分) (1)计算机网络最突出的优点是(1)。 A、运算速度快 B、精度高 C、共享硬件、软件和数据资源 D、内存容量大 (2)在微型计算机的设备中,访问速度最快的是(2)。 A、软盘 B、硬盘 C、内存储器 D、CD-ROM (3)操作系统的主要功能是(3)。 A、对计算机系统的所有资源进行控制与管理 B、实现多用户及分布式处理 C、扩充计算机的功能 D、对硬件资源进行分配、控制、调度和回收 (4)Internet与WWW的关系是(4)。 A、都是因特网,只是名称不同 B、Internet就是WWW C、Internet与WWW完全没有关系 D、WWW是Internet上的一个应用(5)在Windows 98环境下,下面关于附件中应用程序的说法,(5)是不正确的。 A、写字板可以编辑文本文件 B、写字板的缺省扩展名为.DOC C、计算器中的计算结果,可以粘贴到文档文件中 D、记事本中设置的显示字体,将保存在文本文件中,当使用Word读入该文件时, 仍具有所设置的字体 (6)在Word编辑文本时,将文档中所有的“memory”都改成“存储器”,最快捷的方法是采用(6)操作。 A、中英文转换 B、替换 C、改写 D、翻译 (7)以下几种关于消除计算机病毒的说法中,正确的是(7)。 A、专门的杀毒软件并非总是有效的 B、删除所有带毒文件能消除所有病毒 C、对感染上病毒的软盘,格式化既能消除病毒,又能使数据不受破坏 D、要一劳永逸地使计算机不感染病毒,最好的方法是装上防病毒卡 (8)实现汉字字形表示的方法,一般可分为(8)两大类。

C语言二级考试试题及答案

1.若i,j和k都是int型变量,则表达式(i=4,j=16,k=32,i=j)的值为 A. 4 B. 16 C. 32 D. 52 2.若有函数内部说明:int a[3][4];则数组a中各元素 A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值 D. 可在程序的编译或运行阶段得到初值0 3.一个C语言程序是由 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 4.若有说明 int a[2][4];则a数组元素的非法引用是 A. a[0][2*1] B. a[1][3] C. a[4-3][0] D. a[0][4] 5.阅读下面程序,则执行后的输出结果是___。 #include "stdio.h" main() {int x,y,z; x=1;y=2;z=3; if(x>y)if(x>z)printf("%d",x); else printf("%d",y); printf("%d\n",z); } A. 0 B. 1 C. 2 D. 3 6.下面程序的输出结果为 main() { int a,b;b=(a=3*5,a*4,a*5); printf("%d",b ;} A. 60 B. 75 C. 65 D. 无确定值 7.下列选项中不是结构化程序基本结构的是 A. 顺序结构 B. 跳转分支结构 C. 选择结构 D. 循环结构 8.所有C函数的结构都包括的三部分是 A. 语句、花括号和函数体 B. 函数名、语句和函数体 C. 函数名、形式参数和函数体 D. 形式参数、语句和函数体 9.设int a=5,b=6,表达式(--b==6)?++a:--b的值是___ A. 5 B. 6 C. 7 D. 4 10.下列叙述中不是C语言的特点的是______。 A. 简洁、紧凑,使用方便、灵活,易于学习和应用 B. C语言是面向对象的程序设计语言 C. C语言允许直接对位、字节和地址进行操作 D. C语言数据类型丰富、生成的目标代码质量高 11.下列关于C语言注释的叙述中错误的是______。 A. 以“/*”开头并以“*/”结尾的字符串为C语言的注释符 B. 注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义 C. 程序编译时,不对注释作任何处理 D. 程序编译时,需要对注释进行处理 12.s1和s2已正确定义并分别指向两个字符串。 若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 A. if(s1>s2)S; B. if(strcmp (s1,s2))S; C. if(strcmp(s2,s1)>0) S; D. if(strcmp (s1,s2)>0)S; 13.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。 for(i=0, j=10; j>=i; i++, j--) k=i+j; A. 10 B. 20 C. 8 D. 0 14.已知:int c[3][4];则对数组元素引用正确的是 A. c[1][4] B. c[1.5][0] C. c[1+0][0]

浙江计算机二级考试(C语言)上机试题

二级考试(C语言)上机试题1.三个数比较大小。 #include void swap(______1______) //int *pa,int *pb { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(______2______) //a>b swap(&a,&b); printf("%d,%d,%d",a,b,c); } 2.表达式求和。 #include #include void main() { FILE *fp; float n=1,t=1,pi=0; int i; // 从以下开始答题 i=1; while(fabs(t)>=1e-6) { pi=pi+t; i=-i; n=n+2; t=i/n; } fp=fopen("Design1.dat","w"); fprintf(fp,"%.6f",4*pi); fclose(fp); } 运行结果:3.141594 3.字母后移循环输出。

#include void main() { char c; c=getchar(); if(______1______) // c>='a' && c<'v' c=c+5; else if (c>='v' && c<='z') ______2______ // c=c-21; putchar(c); } 4.求满足条件的数。 #include #include void main() { float y=1.05; int n=1; FILE *p; // 以下开始做答 while(!(pow(y,n)<1e6 && pow(y,n+1)>1e6)) n++; p=fopen("Design2.dat","w"); fprintf(p,"%d,%.0f",n,pow(1.05,n)); fclose(p); } 运行结果:283,992137 5.求满足条件的数。 #include void main() { int m=0,t=1,n; while( _____ 1 ________); // (scanf("%d",&n),n<=0) while(!(t<=n&&t*2>=n)){ _____ 2 _____ // t=t*2; m++; } printf("%d\n",m); } 6.求平面点间的最短距离。

C语言上机考试题

考试时间120分钟题目中所有要求统计或输出的地方都要用printf函数输出相关内容要求:新建一个以自己中文姓名命名的文件夹,将如下题目的答案保存在该文件夹中,各题命名要求Exam1.c,Exam2.c,Exam3.c,Exam4.c,Exam5.c 只需提交每个题目的源文件 1.定义一个字符数组s[50],从键盘输入如下字符串给s数组中,统计其中数字字符的个数和英文字母的个数以及特殊字符的个数。(要求:输入的字符为:“123ABCDhijkop#&%*&!”)(本题5分) 输入功能,3个统计 2.从键盘输入10个元素给数组a,然后将这些元素逆向复制到数组b中(要求:输入的这10个数为:1,2,3,4,5,6,7,8,9,10)。(本题5分) 输入,逆序2个功能,错一个扣2分 3.使用循环嵌套,打印输出如下图形结果(提示使用两次循环嵌套)。 (本题5分) 没有中文后面扣1分 实现一半扣2分 4.从键盘上输入一个字符,如果是’M’,输出Mondey,’T’输出Tuesday,’W’输出Wednesday,’R’输出Tursday,’F’输出Friday,’S’输出Saturday,’U’输出Sunday,否则输出Error(本题5分)输入字符,switch语句,细节有错扣0.5 5.从键盘上输入10个学生的数学成绩,使用冒泡排序实现对成绩的排序功能(排序后的成绩按从低到高排列,效果如下), 输出排序后的学生成绩,输出最高成绩,输出最低成绩,将55-60之间的成绩(含55,不含60)修改为60,并统计被修改的成绩个数,统计及格人数,统计95(含95,优秀)分以上的学生成绩人数,输出及格率和优秀率(>=60,及格,>=95优秀)。(要求:输入的10个

浙江省计算机二级C语言历年试卷

浙江省计算机二级C语言历年试卷

一、程序填空 (1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1 b=i_x0010_0/10;

a*a*a+b*b*b+c*c*c = = i (2)输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。 n!=0 n=n/10 (3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。if (n<0) n=-n; s+=n_x0010_; (4)调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。 return -y ; m=m/10 ; (5)调用函数f,从字符串中删除所有的数字字符。 strcpy else

(6)调用find函数在输入的字符串中查找是否出现the这个单词。如果查到返回出现的次数,如果未找到返回0。 j=0; j<3; j++ j>=3

(7)输入的一个小写字母,将字母循环后移5个位置后输出。例如:a变成f,w 变成b。 c>='a'&&c<='u' c=(c-'a'+5)&+'a'; (8)将字符串s中所有的字符'c'删除。s[i] != '\0' j++; (9)对x=1,2,……,10,求 f(x)=x*x-5*x+sin(x)的最大值。max=f(1); if (f(x)>max) max=f(x); (10)输入三个整数,按由小到大的顺序输出这三个数。 int *pa, int *pb if ( a>b ) (11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6

浙江省高校计算机等级考试大纲(二级 C语言程序设计大纲

二级C程序设计考试大纲 基本要求 1.掌握C语言的基本知识,包括C语言的功能和语法;2.基本具备C语言程序设计能力,能熟练地阅读、理解和编写简短的C程序; 3.掌握一种C语言的编译和编程环境,能熟练地调试程序;4.熟练掌握结构化程序设计的方法; 5.掌握程序设计中常用的基本算法。 考试范围 一、数据的定义 1.基本类型(整型,实型,字符型) (1)常量 各种表示形式的整数、实数和字符(串)常量,符号常量 的定义和使用,包括整数的十进制、八进制和十六进制 的表示形式、长整型常量的表示形式,实数的浮点表示 法和科学记数法,字符的转义序列,常用符号常量的含 义(如NULL、EOF等); (2)变量 变量的定义和初始化。

2.构造类型 (1)数组 一维和二维数组的定义和初始化,数组元素的引用,包括一维字符数组和字符串,二维字符数组和字符串数组。 (2)结构 结构类型的定义,结构变量的定义和初始化,结构变量成员的引用。 3.指针 (1)指针和地址的概念; (2)指针变量的定义和初始化; (3)通过指针引用指向实体。 4.构造类型和指针类型的混合定义及应用 (1)指针、数组和地址间的关系; (2)指针数组; (3)结构数组; (4)结构指针; (5)结构中含指针或数组; (6)指向指针的指针(即二级指针)。 5.空类型的定义和使用 6.变量的存储类别、作用域和生存期 (1)变量的存储类别,包括auto自动型、static静

态型、extern外部参照型; (2)全局变量和局部变量,包括自动局部变量和静态局 部变量、全局变量和静态全局变量、外部变量。 二、运算及流程控制 1.基本运算 运算符的功能,运算符的优先级、结合性和目数,隐式类型转换和强制类型转换。 2.表达式 各类表达式的组成规则和计算过程。 3.语句 (1)表达式语句、空语句、复合语句; (2)简单控制语句(break、continue、return); (3)选择控制语句(if、switch); (4)重复控制语句(for、while、do—while)。 三、程序结构和函数 1.程序结构 main函数与其他函数之间的关系,包括标准库函数和自定义函数。 2.函数的定义 (1)函数定义的ANSI C格式;

C语言上机试题

1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。 3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。 6: 第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n 中存放指定的下标。 7: 第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。 8: 第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n) 9: 第9题编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)! 10: 第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。 迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋各x0; (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0.739085。 11: 第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 12: 第12题下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13: 第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数

2008--2010浙江省二级C语言考试真题__史杨杨

2008年春浙江省高校 计算机等级考试试卷(二级C) 试题1(每小题3分,共12分) 【程序说明】 输入一个整数n(n>=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,……,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。 运行示例: Enter n:10 1 1 2 3 5 8 13 21 34 55 #include main() {int count,i,n,x1,x2,x; printf("Enter n:"); scanf("%d",&n); x1=x2=1; printf("%6d%6d",x1,x2); (1); for(i=1;i<=n-2;i++) { (2); printf("%6d",x); count++; if( (3))printf("\n"); x1=x2; (4); } } 【供选择的答案】 (1)A、count=2 B、count=0 C、count=1 D、count=-1 答案:A (2) A、x=x1-x2 B、x=x1+x2 C、x=x1 D、x=2 答案:B (3) A、count/6==0 B、count%6!=0 C、count%6==0 D、count/6!=0 答案:C (4) A、x=x1+x2 B、x2=x1 C、x=x2 D、x2=x 答案:D 试题2(每小题3分,共12分) 【程序说明】 输入2个正数m和n(1<=m

二级C语言上机编程题答题技巧

二级C语言上机编程题技巧 一、技巧的原理 首先使用这个技巧必须了解上机编程题的评分原理。以上机题的第5套编程题为例。二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出: 在考生文件夹下存在一个名为in.dat的文件。首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。然后使用fscanf 语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。将结果用fprintf语句输入到out.dat文件中。其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。

所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。 二、使用技巧的条件 当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。使用这个技巧必须具备两个条件: 1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面 含有in.dat文件。 2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。例如 本题:

它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。那么这种技巧就不能使用。 三、步骤 确定了这个技巧可以使用后,我们就可以开始操作了。一般分为以下几步: 1、建立out.dat文件 上面可以看到我们的考生文件夹中是没有out.dat这个文件的。所以我们需要自己新建。最好的方法就是打开编程题直接编译、链接、执行。这样将程序执行一遍后我们的考生文件夹里就自动生成了我们需要的out.dat文件。(注意:这里生成了out.dat 文件后就不要再运行我们的程序了,因为每运行一次程序就会将程序生成的答案写入out.dat文件中,这样即算我们改成了正确答案,你如果再次运行程序,就会将我们修改的正确结果覆盖掉。) 2、修改答案

浙江省计算机二级C语言历年试卷

浙江省计算机二级C语言历年试卷. 一、程序填空 (1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1

b=i_x0010_0/10; a*a*a+b*b*b+c*c*c = = i (2)输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。 n!=0

n=n/10 (3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 if (n<0) n=-n; s+=n_x0010_; (4)调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。return -y ; m=m/10 ; (5)调用函数f,从字符串中删除所有的数字字符。 strcpy else (6)调用find函数在输入的字符串中查找是否出现瑜敨这个单词。如果查到返回出现的次数,如果未找到返回0。

j=0; j<3; j++ j>=3 (7)输入的一个小写字母,将字母循环后移5个位置后输出。例如:慜变成晜,睜变成扜。 c>='a'&&c<='u'

c=(c-'a'+5)&+'a'; (8)将字符串s中所有的字符'c'删除。 s[i] != '\0' j++; (9)对x=1,2,……,10,求 f(x)=x*x-5*x+sin(x)的最大值。 max=f(1); if (f(x)>max) max=f(x); (10)输入三个整数,按由小到大的顺序输出这三个数。 int *pa, int *pb if ( a>b ) (11)调用函数f,去除数组中的负数,输入数6 4 3 1 ,输出结果为:x[7]组. *m = *m-1; f (x, &n) ; (12)调用函数f计算代数多项式

浙江省计算机二级C语言上机题库

第二部份C程序设计上机操作题 (2) 一、数列求和 (2) 二、最大公约数、最小公倍数 (7) 三、排序算法 (7) 四、数组 (9) 五、求整数n的各位数字及各数字之和 (12) 六、平面上各点之间的距离 (14) 七、数制转换 (17) 八、字符串处理 (19) 九、最大值与最小值 (25) 十、斐波那契(Fibonacci)数列 (28) 十一、水仙花、完数、回文数与亲密数 (29) 十二、方程求根 (31) 十三、回文数、因子、质因子、素数 (34) 十三、其他算法 (35)

第二部份C程序设计上机操作题 一、数列求和 1、程序调试题 试题一 该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。 #include #include void main() { float x,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps); do { /***** 1 *****/ t=-t*x/++i; //++i--→i++ s+=t; /***** 2 *****/ } while(fabs(t)= printf("%f\n",s); } 试题二 该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include void main() { int i,a,n; long t=0; /********* 1 *******/ s=0; //s=0--→long s=0 scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { /******* 2 ******/ t=t*10+i; //i-→1 s=s+t; } s=s*a; printf("%ld\n",s); } 2、程序填空题 试题一 程序功能:调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

计算机二级C语言上机题库复习小抄(最新校正,精美排版)

计算机二级C语言上机题库复习小抄 (最新校正,精美排版) 第一套 1.程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处struct student t; 第二处for(i=0;i0) 2程序修改 给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。 /**found**/ q=p+i; /**found**/ while(q>p) 3程序设计 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 int fun(STREC *a,STREC *b,int l,int h) {int i,j=0; for(i=0;i=1&&a[i].s<=h) b[j++]=a[i]; return j; } 第二套 1.程序填空 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 第一处free(q); 第二处q=p->next; 第三处q=q->next; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 /**found**/ p=j; /**found**/ p=i; 3. 程序设计 请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处for(i=0;idata==ch)return n; 第三处k=fun(head,ch); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。 /**found**/ for(i=0,t=0;p[i];i++) /**found**/ c[t]=?\0?; 3. 程序设计 请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *ss) { int i; for(i=1;i=?a?&&ss[i]<=?z?) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10 的时,函数返回:9.6125588。 第一处s=0; 第二处for(i=1;i<=n;i++) 第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==?\0?) 3. 程序设计 请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为 3.14…。 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2.0*n+1) ;} return(s*2.0); } 第六套 1. 程序填空 给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处t[j]=s[i];j++; 第二处for(i=0;iscore[i]+=1; 第三处return a; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。 /**found**/ char *fun(char (*sq)[M]) /**found**/ return sp; 1

相关文档
最新文档