浙江省计算机二级c语言上机考试真题(三)程序编写
- 格式:docx
- 大小:34.65 KB
- 文档页数:21
第二部份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 <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语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。
根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。
A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。
程序调试题+ 程序设计题(浙江省二级C语言上机考试题库)1.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:运行时输入n,输出n的所有质数因子(如n=13860,则输出2、2、3、3、5、7、11)。
#include <stdio.h>void main(){int n,i;scanf("%d",&n);/****** 1 ******/i=1; i=2while(n>1);if(n%i==0){ printf("%d\t",i); n/=i; }else/******** 2 *******/n--; i++}1.i=2;i++;2.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如‘a’变成‘f’,‘w’变成‘b’。
#include <stdio.h>void main(){char c;c=getchar();if(______N_____)c=c+5;else if (c>='v' && c<='z')_____N____putchar(c);}2.c<'v'c=c-'v'+'a'3.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
浙江省高等学校计算机等级考试试卷(二级C)2010-2007笔试部分真题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;sum = sum + (2) C ;(3)C ;count++;}while( (4)B );}【供选择的答案】(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 )}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语言考试真题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. intB. floatC. returnD. void答案:D2. 若有定义 int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式的值不为5?A. a[4]B. a[5]C. a[0]D. *(a + 4)答案:B3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. %B. /C. *D. ^答案:C4. 下面哪个选项不是C语言中的控制结构?A. 顺序结构B. 选择结构C. 循环结构D. 递归结构答案:D5. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A6. 若有定义 int x = 10;,则以下哪个表达式的值不为10?A. x++B. ++xC. x--D. --x答案:D7. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A8. 下面哪个选项不是C语言中的存储类别?A. autoB. staticC. registerD. volatile答案:D9. 在C语言中,以下哪个函数用于打开一个文件?A. fopen()B. fclose()C. fgetc()D. fprintf()答案:A10. 若有定义 int a[3][2] = {{1, 2}, {3, 4}, {5, 6}};,则以下哪个表达式的值不为4?A. a[1][1]B. a[2][0]C. a[0][1]D. a[1][0]答案:B二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是__65__。
2. 若有定义 int a = 10;,则表达式 a % 3 的值是__1__。
浙江省大学计算机二级c试题及答案一、选择题1. 下面哪个不是C语言的保留字?A. ifB. whileC. forD. main答案:D2. 在C语言中,以下哪个字符常量表示换行符?A. \nB. \rC. \tD. \b答案:A3. 下面哪个选项中的变量会在程序执行期间保持固定不变的值?A. constB. staticC. externD. volatile答案:A4. 在C语言中,以下哪个关键字不属于循环结构的控制语句?A. breakB. continueC. gotoD. return答案:D5. 在C语言中,以下哪种数据类型存储大小最大?A. shortB. intC. longD. long long答案:D二、编程题1. 编写一个C程序,实现计算从1到100的所有整数的和,并输出结果。
答案:```c#include<stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("从1到100的和为:%d\n", sum);return 0;}```2. 编写一个C程序,判断一个输入的整数是否为素数,并输出判断结果。
答案:```c#include<stdio.h>int isPrime(int num) {if (num <= 1) {return 0; // 不是素数}for (int i = 2; i*i <= num; i++) { if (num % i == 0) {return 0; // 不是素数}}return 1; // 是素数}int main() {int num;printf("请输入一个整数:"); scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num); } else {printf("%d不是素数\n", num);}return 0;}```三、填空题1. C语言中,sizeof运算符返回的结果是________。
浙江省计算机二级c语言上机考试真题一、题目描述下面是浙江省计算机二级C语言上机考试的真题,请根据题目要求完成对应的代码。
1. 题目一编写程序,实现求100以内所有素数的功能。
2. 题目二编写程序,实现字符串逆序输出的功能。
3. 题目三编写程序,实现判断一个整数是否是回文数的功能。
二、题目一解析及代码题目描述:编写程序,实现求100以内所有素数的功能。
解析:素数是只能被1和自身整除的数,大于1的正整数。
通过循环检测每个数是否能被2到该数的平方根之间的数整除,来确定是否为素数。
代码:```c#include <stdio.h>int isPrime(int num) {if(num < 2)return 0;for(int i = 2; i <= sqrt(num); i++) { if(num % i == 0)return 0;}return 1;}int main() {printf("100以内的素数有:\n"); for(int i = 2; i < 100; i++) {if(isPrime(i))printf("%d ", i);}printf("\n");return 0;}```三、题目二解析及代码题目描述:编写程序,实现字符串逆序输出的功能。
解析:可以使用一个循环,从字符串的最后一个字符开始逐个输出,实现字符串逆序输出的效果。
代码:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for(int i = length - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");}int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin);printf("逆序输出的字符串为:");reverseString(str);return 0;}```四、题目三解析及代码题目描述:编写程序,实现判断一个整数是否是回文数的功能。
浙江省二级C语言笔试真题()【程序说明】输入一个整数,求它的各位数字之和及位数。
例如,17的各位数字之和是8,位数是2。
运行示例:Enteraninteger:-153sum=8,count=3【程序】#includemain(){intcount=0,in,sum=0;printf(“Enteraninteger:“);scanf (“%d“,if(D)in=-in;do{sum=sum+(2)C;(3)C;count++;}while((4)B);pr intf(“sum=%d,count=%d\n“,sum,count);}【供选择的答案】(1)A、in==0B、in>0C、in!=0D、in=0printf(“%d\n“,number);}【问题】(17)程序1运行时,第1行输出(17)。
A、3B、4C、1D、2(18)程序1运行时,第2行输出(18)。
A、12B、11C、10D、9(19)程序2运行时,第1行输出(19)。
A、2B、27C、23D、16(20)程序2运行时,第2行输出(20)。
A、19B、140C、147D、26阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】#includemain(){inti,j;charch,*p1,*p2,*s[4]={“four“,“hello“,“peak“,“apple“};for(i=0;i=1E-3[B]fabs(item)=0.0001[D]fabs(item)(b)?(a):(b )intf1(charch){intgrade;switch(ch){case“A”:grade=95;break;case“B ”:grade=85;break;case“C”:grade=75;case“D”:grade=65;break;default:grade=0;}returngrade;}intf2(){staticintk=1,s;s=s+k;k++;returns;}in tf3(intn){if(n==1)return2;elsereturnf3(n-1);}main(){inti;printf(“%d\ n”,f1(‘C’));for(i=1;i=j;i--)flag=a[i][j];printf(“%d\n”,flag);}程序2#includemain(){charstr[10]=”4Ae2E”;inti;for(i=0;str[i]!=’\0’;i++)if(str[i]>=’a’putchar(‘\n’);}【问题】(17)程序1运行时,第1行输出(17)[A]0[B]1[C]8[D]9(18)程序1运行时,第2行输出(18)[A]9[B]7[C]5[D]1(19)程序2运行时,第1行输出(19)[A]AeE[B]a[C]ae[D]e(20)程序2运行时,第2行输出(20)[A]4Ae2E[B]42[C]AeE[D]aEe6.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
浙江省高等学校二级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 mod10C、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是素数。
浙江省2011年秋季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);运行结果: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。
(三)程序编写1,求3元方程解设计程序:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式"%d"输出。
说明:若a、b、c是1个解,则a、c、b也是1个解,等等。
*/#include "stdio.h"int main(){int x,y,z,k=0;/** 考生在这里添加代码*/return 0;}∙#include <stdio.h>∙int main()∙{∙int x,y,z,k=0;∙for(x=0;x<=50;x++)∙ {∙ for(y=0;y<=50;y++)∙ {∙ for(z=0;z<=50;z++)∙ {∙ if(x*x+y*y+z*z==2000)∙ {k++;}∙ }∙ }∙ }∙printf("%d",k);∙}2,求距离和设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"输出。
#include#include "math.h"int main(){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;/** 考生在这里添加代码*/return 0;}∙#include<stdio.h>∙#include<math.h>∙int main()∙{ 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.000004;∙ float sx,sy;∙ for(i=0;i<10;i++)∙ {∙ sx=(x[i]-1.0)*(x[i]-1.0);∙ sy=(y[i]-1.0)*(y[i]-1.0);∙ s+=sqrt(sx+sy);∙ }∙ printf("%.6f",s);∙ return 0;∙}3,字符权重设计程序:在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"输出。
#include "stdio.h"#include "math.h"int main()int n=1,k=1;/*考生在这里添加代码*/printf("%d\n",n);return 0;}∙#include <stdio.h>∙#include <math.h>∙int main()∙{int j=1;∙ while(1)∙ if(j%3==1&&j%5==3&&j%7==5&&j%9==7) ∙ {∙ printf("%d\n",j+1);break;∙ }∙ else j++;∙}4,pow设计程序:将满足条件pow(1.05,n)<1e6值以格式"%d,%.0f"输出#include "stdio.h"#include "math.h"int main(){ float y=1.05; int n=1; FILE *p;/** 考生在这里添加代码*/printf("%d,%.0f",n,pow(1.05,n));return 0;}∙#include <stdio.h>∙#include <math.h>∙int main()∙{ float y=1.05; int n=1,p;∙ while((pow(y,n)<1e6))∙ {∙ n++;∙ }∙ n--;∙ printf("%d,%.0f",n,pow(1.05,n));∙ return 0;∙}5,sin多项式设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+……+a9*sin(x*x*x*x*x*x*x*x*x)的值,并将其值格式"%.6f"输出*/#include "stdio.h"#include "math.h"void main(){int i; float x=2.345,t=1.0,y=0.0;float a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};/** 考生在这里添加代码*/}∙#include<stdio.h>∙#include<math.h>∙int main()∙{ int i; float x=2.345,t=1.0,y=0.0;∙ float a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};∙ y=y+a[0];∙p=fopen("design.dat","w");∙for(i=1;i<10;i++)∙{ t=t*x;∙y+=a[i]*sin(t);}∙fprintf(p,"%.6f",y);∙fclose(p);∙}6,x多项式设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...+a9*x*x*x*x*x*x*x*x*x的值,并将其值以格式"%f"输出n.dat中。
*/#include "stdio.h"#include "math.h"void main(){ 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};/***考生这里添加代码*****/printf("%f",y);}∙include<stdio.h>∙#include<math.h>∙int main()∙{ int i; float x=1.279,t=1.0,y=0.0;∙ floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};∙ y=a[0];∙ for(i=1;i<=9;i++)∙ {t=t*x; y=y+a[i]*t; }∙ printf("%f",y);∙}7,最小的x1y1设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间[0,10]的整数,找出使z取最小值的x1,y1,并将x1、y1以格式"%d,%d"输出#include "stdio.h"#include "math.h"int main(){int x,y,x1,y1;float z,z1;/** 考生在这里添加代码*/return 0;}#include<stdio.h>#include<math.h>void main(){FILE *p;int x,y,x1,y1; float z,z1;/*考生在这里添加程序*/p=fopen("design.dat","w");z1=0;for(x=0;x<=10;x++)for(y=0;y<=10;y++){ z=10*cos(x-4)+5*sin(y-2);if(z<z1){z1=z;x1=x;y1=y;}}fprintf(p,"%d,%d",x1,y1);fclose(p);}8,大于数组平均和设计程序:在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式"%.5f"输出#include "stdio.h"int main(){int i;float a[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0;/**** 在这里添加代码***/printf("%.5f,%.5f",v,sum);}∙#include <stdio.h>∙ #include <math.h>∙int main()∙{∙ int i,k=0;∙ floatx[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum=0,v=0;∙ for(i=0;i<10;i++)∙ {v+=x[i];}∙ v=v/10;∙ for(i=0;i<10;i++)∙ {∙ if(x[i]>=v)∙ {sum+=x[i];}∙ }∙ printf("%.5f",sum);∙}9,百鸡问题设计程序:求解百鸡问题。
已知公鸡每只5元、母鸡每只3元、小鸡1元3只。
求出用100元买100只鸡的解。
将得到的解按公鸡、母鸡和小鸡的只数以"%d,%d,%d\n"的格式输出。
#include "stdio.h"void main(){int cock,hen,chick;/***考生在这里添加代码**/printf("%d,%d,%d",cock,hen,chick);}∙#include <stdio.h>∙int main()∙{ int cock,hen,chick; FILE *p;∙ for(cock=20;cock>=0;cock--)∙ for(hen=0;hen<33;hen++)∙ {chick=100-cock-hen;∙ if(cock*5+hen*3+chick/3.0==100)∙ printf("%d,%d,%d\n",cock,hen,chick);∙ }∙}10,函数区间最大值设计程序:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z 取最小值的x1、y1,并将x1、y1以格式"%d,%d"输出。