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

合集下载

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

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

1.程序填空题在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。

下列给定程序中,函数fun的功能是:输出数组元素中小于平均值的元素。

例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <conio.h>#include <stdio.h>void fun(___1___,int n){double count=0.0;double average=0.0;int i=0;for(i=0;i<n;i++)___2___;average=___3___;for(i=0;i<n;i++)if(a[i]<average){if(i%5==0)printf("\n");printf("%d,",a[i]);}}main(){int a[1000];int i=0;printf("\nPlease enter datas(end with 0):");do{scanf("%d",&a[i]);}while(a[i++]!=0);fun(a,i-1);}【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n2.程序修改题给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)例如:若m中的值为5,则应输出1.463611。

请改正程序中的错误,使其能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(int m){double y=1.0;int I;/**********found**********/for(i=2;i<m;i++)/**********found**********/y+=1/(i*i);return(y);}main(){int n=5;printf("\nThe result is %lf\n", fun(n));}【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);3.程序设计题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。

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

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

(二)上机编程题1. 程序设计题:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d" 写入到考生目录下新建文件design.dat。

#include <stdio.h>void main(){ FILE *p; float f(int x,int y),min;int x,y,x1,y1;// 此处起要求考生自己编制程序min=100;p=fopen(“design.dat”, “w”);for(x=1;x<6;x++)for(y=1;y<6;y++)if(f(x,y)<min){ min=f(x,y); x1=x; y1=y; }fprintf(p, “%d,%d”,x1,y1); // 答案:x1=1, y1=5fclose(p); // 或若x<=6及y<=6 则x1=1, y1=6}float f(int u,int v){ return (3.14*u-v)/(u+v); }4.程序设计题:对x=1,2,...,10,求函数 f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式"%.3f"写到考生目录下新建文件design.dat。

#include <stdio.h>#include <math.h>void main(){ FILE *p; float f(float),max,x;// 此处起要求考生自己编制程序p=fopen(“design.dat”, “w”);max=f(1);for(x=2;x<=10;x++)if(max<f(x))max=f(x);fprintf(p,”%.3f”,max); // 答案:21.111fclose(p);}float f(float y){ y=y-10*cos(y)-5*sin(y);return (y);}6. 程序设计题:数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中同处在圆(x-1)*(x-1)+(y+0.5)*(y+0.5)=25 和 (x-0.5)*(x- 0.5)+y*y=36内的点数k,并将变量k的值以格式"%d"写到考生目录下新建文件design.dat。

计算机二级C上机考试题库及答案

计算机二级C上机考试题库及答案

计算机二级C上机考试题库及答案一、单项选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};C. char str[] = {"Hello, World!"};D. char str[] = "Hello, World!";答案:A2. 下列哪个函数用于将字符串s1复制到s2中?A. strcat(s1, s2);B. strcpy(s1, s2);C. strcmp(s1, s2);D. strncpy(s1, s2, n);答案:B3. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A4. 如果一个变量被声明为static int,那么这个变量的生命周期是?A. 只在函数调用期间B. 程序运行期间C. 只在程序启动时D. 只在程序结束时答案:B5. 在C语言中,以下哪个运算符用于计算两个整数的差?A. +B. -C. *D. /答案:B6. 以下哪个选项不是C语言中合法的标识符?A. _myVarB. my_varC. 2ndVarD. var$name答案:C7. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};答案:A8. 以下哪个选项是正确的C语言注释方式?A. /* This is a comment */B. // This is a commentC. //* This is a commentD. /* This is a comment */答案:A9. 在C语言中,以下哪个选项是正确的多行字符串定义方式?A. char str[] = "Line1\nLine2";B. char str[] = 'Line1\nLine2';C. char str[] = "Line1\nLine2";D. char str[] = "Line1\nLine2";答案:A10. 在C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50] = "John Doe";};D. struct Student {int id;char name[];};答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以对变量进行自增操作。

计算机二级《C语言》上机操作试题及答案

计算机二级《C语言》上机操作试题及答案

计算机二级《C语言》上机操作试题及答案计算机二级考试是全国计算机等级考试,四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。

下面是店铺收集整理的计算机二级《C语言》上机操作试题及答案,仅供参考,希望能够帮助到大家。

(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。

A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA(2)下列叙述中正确的是( )。

A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的'(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)(4)下列叙述中正确的是( )。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是( )。

A.控制流B.事件驱动C.模块调用D.数据流(6)在软件开发中,需求分析阶段可以使用的工具是( )。

A.N—s图B.DFD图C.PAD图D.程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是( )。

A.一致性B.分类性C.多态性D.标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。

A.一对一B.一对多C.多对一D.多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。

全国计算机等级考试二级C语言上机题库(全)

全国计算机等级考试二级C语言上机题库(全)

int i; for(i=1;i<strlen(ss);i+=2) {if(ss[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,它的功能是:根据以下公
for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s)b[n++]=a[i]; return n; } 第九套 1. 程序填空 给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平 均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至 数据的前部,大于等于平均数的移至 x 所指数组的后部,平均值作为 函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;i<N;i++) av+=x[i]/N 第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计字符串各元音字母 (即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0;

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

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

第二部份 C程序设计上机操作题 (2)一、数列求和 (2)二、最大公约数、最小公倍数 (6)三、排序算法 (7)四、数组 (8)五、求整数n的各位数字及各数字之和 (11)六、平面上各点之间的距离 (13)七、数制转换 (16)八、字符串处理 (17)九、最大值与最小值 (23)十、斐波那契(Fibonacci)数列 (26)十一、水仙花、完数、回文数与亲密数 (27)十二、方程求根 (29)十三、回文数、因子、质因子、素数 (32)十三、其他算法 (33)第二部份 C程序设计上机操作题一、数列求和1、程序调试题试题一该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。

#include <stdio.h>#include <math.h>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)<eps); // < --→ >=printf("%f\n",s);}试题二该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333#include <stdio.h>void main(){ int i,a,n; long t=0;/********* 1 *******/s=0; //s=0--→long s=0scanf("%d%d",&a,&n);for(i=1;i<=n;i++) {/******* 2 ******/t=t*10+i; //i-→1s=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时的值。

2010-2016年浙江省高等学校计算机等级考试(二级c语言)理论考试+上机题库

2010-2016年浙江省高等学校计算机等级考试(二级c语言)理论考试+上机题库

理论部分参考答案2010春答案一、1-6DCCB BBAA AADD ABCD DCCB ABCD二、1#include <stdio.h>main(){ int i,a[100];long s=0;for(i=0;i<100;i++){scanf("%d",&a[i]);if(a[i]%2!=0) s=s+a[i];}printf("数组a中的奇数之和为%ld\n",s);}二、2#include <stdio.h>int total(int n){ int i,s=0;for(i=1;i<=n;i++)s=s+i;return s;}main(){ int i,n;float s=0;printf("请输入正整数n:");scanf("%d",&n);for(i=1;i<=n;i++)s=s+1.0/total(i);printf("表达式的值为%f\n",s);}2010秋答案AABB BBAA CDDC CDDC #include <stdio.h>void main(){ int a[100], x, i, count=0 ;printf("Input 100 integers:n");for ( i=0; i<100; i++)scanf("%d", a+i);printf("Input integer x:n");scanf("%d", &x);for ( i=0; i<100; i++)if ( a[i] == x ) count++;printf( "count=%d\n", count);}二、2double fact (int n){ int i ;double s=1 ;for ( i=1; i<=n; i++)s *= i ;return s;}#include <stdio.h>void main(){ double s=0;int n, i ;do scanf("%d", &n); while (n<=0);for ( i=1; i<=n; i++)s += (n-i+1)/fact(i);printf("s=%f\n", s);}11春答案一、ABCD DCBA AABB CCDD CDCD BBAA 二、1 #include<stdio.h>void main(){ int a[100],x,i,s=0;for(i=0;i<100;i++) scanf("%d",&a[i]);scanf("%d",&x);for(i=0;i<100;i++) if(a[i]>=x) s++;printf("%d\n",s);}2 #include<stdio.h>double f(int n){ int i; double s=1;for(i=n;i<=2*n-1;i++) s=s*i;return s; }void main(){ double s=0;int n,i;do scanf("%d",&n); while(n<=0);for(i=1;i<=n;i++) s+=1/f(i);printf("%f\n",s);}11秋答案:一、AAAB CDDC BABB DDCC DCBA DCBA二、1 #include<stdio.h>void main(){ int i,n=0;float a[100];for(i=0;i<100;i++){ scanf(“%f”,&a[i]);if(a[i]<60) n++; }printf(“不及格人数是:%d。

浙江省高等学校(C语言)试卷及参考答案

浙江省高等学校(C语言)试卷及参考答案
(3)A、item=item*i C、item=item-i
(4)A、+=item C、1.0/item
B、sum=-1 C、sum=n
B、i>n D、i>=n
B、item=item+i D、item=item/i B、item D、sum+item
ቤተ መጻሕፍቲ ባይዱ
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】先输入一个正整数 n(1≤n≤10),再输入 n 个从小到大有序排列的整数,并
n= (9) ; for(i=0;i<n;i++){ [j]!='\0';j++){
for( (10) ;str
putchar(str[j]);
} for( (11) ;j<i;j++){ pu tchar(str[j]);
C 程序设计试卷第 2 页(共 6 页)
} (12) ;
} }
【供选择的答案】
一、程序阅读与填空(24 小题,每小题 3 分,共 72 分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个正整数 n,计算并输出 1 + 1/2!+ /3! + … + 1/n! 的值。
【程序】
#include <stdio.h> void main()
else low=mid+1; } if(low<=high) printf("Index is %d \n",mid); else printf("Not Found\n"); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二级考试(C语言)上机试题1.三个数比较大小。

#include <stdio.h>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>bswap(&a,&b);printf("%d,%d,%d",a,b,c); }2.表达式求和。

#include <stdio.h> #include <math.h>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.1415943.字母后移循环输出。

#include <stdio.h>void main(){ char c; c=getchar();if(______1______) // c>='a' && c<'v'c=c+5;elseif (c>='v' && c<='z')______2______ // c=c-21;putchar(c); }4.求满足条件的数。

#include <stdio.h>#include <math.h>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,9921375.求满足条件的数。

#include <stdio.h>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 <stdio.h> #include <math.h>#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)minc=c;fprintf(p,"%f",minc);fclose(p); }运行结果:1.4579447.Fibonacci数列求值问题。

#include <stdio.h>_______1______ // long f(int n);void main(){ printf("%ld\n",f(30)); }long f(int n){ if( ______2______ ) // n==1 || n==2return 1;elsereturn f(n-1)+f(n-2); }运行结果:8320408.多项式求和问题。

#include <stdio.h> #include <math.h>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.7225429.整数转换为字符串。

#include<stdio.h>void itoa(long i,char *s){ if(i==0) return;/****** 1 ******/*s = '1'+i%10; //*s='0'+i%10itoa(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<stdio.h>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.02095011.数组赋值。

#include <stdio.h>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<stdio.h> #include<math.h>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.67944713.十进制数转换为二进制数。

#include <stdio.h>void dec2bin(int m){ int bin[32],j;for(j=0;m!=0;j++){ bin[j]= ______1______; //m%2m=m/2; }for(;j!=0;j--)printf("%d", ______2______ ); //bin[j-1] }void main(){ int n;scanf("%d",&n);dec2bin(n); }14.求符合条件的数列之和。

#include <stdio.h>#include <math.h>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.33615.在字符串中删除数字字符。

#include <stdio.h> #include <string.h> #include <ctype.h> 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.求满足条件的数。

相关文档
最新文档