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

合集下载

浙江省计算机二级c语言上机考试真题(二)程序填空

浙江省计算机二级c语言上机考试真题(二)程序填空

(二)程序填空1,求最大公约数,下面程序中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。

#include <stdio.h>void main(){ int m,n,k;while(scanf("%d%d",&m,&n), _______1______ );for( ____2____; n%k!=0||m%k!=0; k--);printf("%d\n",k);}•#include <stdio.h>•void main()•{int m,n,k;•while(scanf("%d%d",&m,&n)!=EOF&&m<=0||n<=0);•{for(k=m; n%k!=0||m%k!=0; k--);• printf("%d\n",k);•}•}2,分别统计字符串中各字符下面程序中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:分别统计字符串中英文字母、数字和其他字符出现的次数。

#include <stdio.h>#include <string.h>void main(){ char a[80]; int n[3]={0},i;gets(a);for(i=0;a[i]!='\0';i++){ if (/*-------1---------*/) /*统计字母个数*/n[0]++;else if (/*------2------*/) /*统计数字个数*/n[1]++;elsen[2]++;}for(i=0;i<3;i++) printf(/*------3------*/);}•#include<stdio.h>•#include<string.h>•int main()•{ char a[80]; int n[3]={0},i;•gets(a);•for(i=0;a[i]!='\0';i++)•{ if (a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')•n[0]++;•else if (a[i]>='0'&&a[i]<='9')•n[1]++;•else•n[2]++;•}•for(i=0;i<3;i++) printf("%d\n",n[i]);•}3,求相邻两元素和下面程序中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

浙江省计算机二级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分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. intD. void答案:D2. 若有定义int a=5; 则执行以下语句后,变量a的值是多少?A. a=(a++)+(++a)+a;B. a=a--+(++a)+a;C. a=(a++)+(++a)+a--;D. a=(a++)+(++a)+a--;答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. /B. %C. *D. ^答案:C4. 下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 在C语言中,以下哪个选项是合法的数组声明?A. int a[5];B. int a[];C. int a[5][5];D. int a[5,5];答案:A6. 若有定义int x=10; 则执行以下语句后,变量x的值是多少?A. x=x+++x;B. x=++x+x--;C. x=x--+x++;D. x=x+++x--;答案:B7. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下哪个选项是合法的指针声明?A. int *p;B. int *p[];C. int (*p)();D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do{}while(0)D. all of the above答案:D10. 在C语言中,以下哪个选项是合法的函数声明?A. int func();B. void func(int a);C. int func(int a, int b);D. all of the above答案:D11. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. all of the above答案:A12. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. all of the above答案:D13. 在C语言中,以下哪个选项是合法的字符串操作函数?A. strcpyB. strncpyC. strcatD. all of the above答案:D14. 在C语言中,以下哪个选项是合法的动态内存分配函数?A. mallocB. callocC. reallocD. all of the above答案:D15. 在C语言中,以下哪个选项是合法的位操作运算符?A. &B. |C. ^D. all of the above答案:D16. 在C语言中,以下哪个选项是合法的预处理指令?A. #includeB. #defineC. #ifdefD. all of the above答案:D17. 在C语言中,以下哪个选项是合法的类型转换运算符?A. (int)xB. (float)xC. (char)xD. all of the above答案:D18. 在C语言中,以下哪个选项是合法的条件运算符?A. ?B. :C. ||D. &&答案:A19. 在C语言中,以下哪个选项是合法的多维数组声明?A. int a[5][5];B. int a[][5];C. int a[5][];D. int a[][];答案:A20. 在C语言中,以下哪个选项是合法的枚举类型声明?A. enum color {red, green, blue};B. enum {red, green, blue};C. enum color {0, 1, 2};D. all of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用关键字________声明一个函数。

浙江省计算机二级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时的值。

浙江省高等学校二级C语言(笔试部分真题2008-2010年)

浙江省高等学校二级C语言(笔试部分真题2008-2010年)

浙江省高等学校计算机等级考试试卷(二级C)2010-2008笔试部分真题2010年春浙江省高等学校计算机等级考试试卷(二级C)一、程序阅读与填空(24小题,每小题3分,共72分)1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入一个整数,求它的各位数字之和位数。

例如,17的各位数字之和是8,位数是2。

运行示例:Enter an integer:-153sum = 8, count = 3【程序】#include <stdio.h>main(){int count = 0, in, sum = 0;printf("Enter an integer:");scanf("%d", &in);if( D ) in = -in;do{sum = sum + (2) C ;(3)C ;count++;}while( (4)B );printf("sum = %d, count = %d\n", sum, count);}【供选择的答案】(1) A、in == 0 B、in > 0C、in != 0D、in < 0(2) A、in /10 B、in mod 10C、in % 10D、in(3) A、in = in % 10 B、in /10C、in = in /10D、in % 10(4) A、in % 10 != 0 B、in != 0C、!inD、in / 10 != 02. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输出50到70之间的所有素数。

要求定义和调用函数isprime(m)判断m是否为素数,若m 为素数则返回1,否则返回0。

素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

运行示例:53 59 61 67【程序】#include <stdio.h>#include <math.h>main(){ int i; int isprime(int m);for(i = 50; i <= 70; i++)if( (5) B )printf("%d ", i);}int isprime(int m){int i, k;(6)Bk = (int)sqrt((double)m);for(i = 2; i <= k; i++)if(m % i == 0) (7) A ;(8)A ;}【供选择的答案】(5) A、isprime (m) != 0 B、isprime (i) != 0C、isprime (m) == 0D、isprime (i) == 0(6) A、if(m != 1) return 1; B、if(m == 1) return 0;C、;D、if(m == 1) return 1;(7) A、return 0 B、return 1C、return i <= kD、return(8) A、return 1 B、return 0C、returnD、return i <= k3. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

二级C语言上机真题及答案(最新完整版)

二级C语言上机真题及答案(最新完整版)

1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值1.int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i-0;i<m;i++)aver+=score[i];aver/=m;for(i=0,i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书2.void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0//i%11==0))&i%77!=0)a[j++]=i;*n=j;}3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按3. void fun(int x, int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,4. void fun(char *tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while (*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数5. void fun(int m,int k,int xx[]){int g=0,i,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<i;j++){if (i%j!=0)flag=1;else{flag=0;break;}}if (flag==1&j>=i){if (k>0){xx[g++]=i;k--;}elsebreak;}}}6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。

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

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

浙江省计算机二级C语言历年试卷一、程序填空(1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1b=i%100/10;a*a*a+b*b*b+c*c*c = = i(2)输入1个整数后,输出该数的位数。

(例:输入3214则输出4,输入-23156则输出5)。

n!=0n=n/10(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

if (n<0) n=-n;s+=n%10;(4)调用函数f,将一个整数首尾倒置。

例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

return -y ;m=m/10 ;(5)调用函数f,从字符串中删除所有的数字字符。

strcpyelse(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)%26+'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 *pbif ( a>b )(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6*m = *m-1;f (x, &n) ;(12)调用函数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)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1b=i%100/10;a*a*a+b*b*b+c*c*c = = i(2)输入1个整数后,输出该数的位数。

(例:输入3214则输出4,输入-23156则输出5)。

n!=0n=n/10(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

if (n<0) n=-n;s+=n%10;(4)调用函数f,将一个整数首尾倒置。

例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

return -y ;m=m/10 ;(5)调用函数f,从字符串中删除所有的数字字符。

strcpyelse(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)%26+'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 *pbif ( a>b )(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6*m = *m-1;f (x, &n) ;(12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江省二级c语言上机考试真题介绍:浙江省二级c语言考试分为笔试和上机考试两块.取笔试和上机中分数较低的那个作为计算机二级的最终成绩,最后证书上按档次划分等级,其中60-79及格,80-89良好,90-100优秀。

笔试部分分两块,一块是24道选择题(六道程序题,每题中间有四个空,每空有四个选项供选择),浙江省的计算机笔试选择题不考概念性内容,所以大家不用费心,另一块是程序编写,手写两个完整程序,一道循环数组(结合),一道是函数或指针。

上机部分分两块,一块是计算机基本操作,即从access,ppt,excel,outlook,word,网页制作,文件夹操作中随机选择四道,另一块是编程,编程题可以打开编程软件c-free来做,编程中共五道题,一道改错,两道填空,最后两道是编写程序。

(一)程序改错:1,10个数求最大最小值该程序中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。

#includevoid 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 <stdio.h>•int main()•{ float x,max,min; int i;•/******** 1 *******/•for(i=1;i<=10;i++) {•scanf("%f",&x);•/******* 2 ********/•if(i==1) { max=x;min=x;}•if(x>max) max=x;•if(x<min) min=x;•}•printf("%f,%f\n",max,min);•}2,字符串反序连接下面程序中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t 的后面。

例如:输入"ABCD",则字符串t为"ABCDDCBA"。

# include# includevoid fun(char *s,char *t){int i,sl;sl=strlen(s);for(i=0;it[i]=s[i];for(i=0;i/********1********/t[sl+i]=s[sl-i];/********2********/t[sl]="\0";}void main(){char s[100],t[100];scanf("%s",s);fun(s,t);printf("%s",t);}•#include <stdio.h>•#include <string.h>•void fun(char *s,char *t) •{•int i,sl;•sl=strlen(s);•for(i=0;i<sl;i++)•t[i]=s[i];•for(i=0;i<sl;i++)•t[sl+i]=s[sl-1-i];•/********2********/•t[2*sl]='\0';•}•void main()•{•char s[100],t[100];•scanf("%s",s);•fun(s,t);•printf("%s",t);•}3,求n的所有质数因子下面程序中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。

#includevoid main(){ int n,i;scanf("%d",&n);/****** 1 ******/i=1;while(n>1)if(n%i==0) {printf("%d\t",i);n/=i;}else/******** 2 *******/n++;}•#include<stdio.h>•void main()•{ int n,i;•scanf("%d",&n);•/****** 1 ******/•i=2;•while(n>1)•if(n%i==0) {•printf("%8d",i);•n/=i;•}•else•/******** 2 *******/•i++;•}4,数字转字符下面程序中“/ ***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串"123456"。

#includevoid itoa(long i,char *s){if(i==0)return;/****** 1 ******/*s = '1'+i%10;itoa(i/10,s-1);}void main(){long n;char str[7]="";scanf("%ld",&n);/****** 2 ******/itoa(n,str+6);printf("%s",str);}•#include<stdio.h>•void itoa(long i,char *s) •{•if(i==0)•return;•/****** 1 ******/•*s ='0'+i%10;•itoa(i/10,s-1);•}•int main()•{•long n;•char str[7]="";•scanf("%ld",&n);•/****** 2 ******/•itoa(n,str+5);•printf("%s",str);•}6,删除非英文字母下面程序中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

例如:输入"abc123+xyz.5",应输出"abcxyz"。

#include#includevoid main(){char str[256];int i,j,k=0,n;gets(str);n=strlen(str);for(i=0;i/********1********/if (str[i] >='a' && str[i]<='z') {/********2********/str[k]=str[i]; i++;}str[k]='\0';printf("%s\n",str);}•#include <stdio.h>•#include <string.h>•void main()•{ char str[256];•int i,j,k=0,n;•gets(str);•n=strlen(str);•for(i=0;i<n;i++)•/********1********/•if ((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))•{•str[k]=str[i]; k++;•}•str[k]='\0';•printf("%s\n",str);•}7,距离坐标原点下面程序中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

#include "stdio.h"#include "math.h"#include "stdlib.h"void main(){int i,n;/***** 1 *****/struct axy { float x;float y; } a[n]; scanf("%d",&n);a=(float*) malloc(n*2*sizeof(float)); for(i=0;i/***** 2 *****/scanf("%f,%f",a[i].x,a[i].y);for(i=0;iif(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5) printf("%f,%f\n",a[i].x,a[i].y);}#include <stdio.h>#include <math.h>#include <stdlib.h>void main(){int i,n;/***** 1 *****/struct axy { float x,y; } a;scanf("%d",&n);a=(float*) malloc(n*2*sizeof(float));for(i=0;i<n;i++)/***** 2 *****/scanf("%f%f",a[i].x,a[i].y);for(i=0;i<n;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));8,多项式值下面程序中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

相关文档
最新文档