浙江省二级C语言程序编写题库
- 格式:doc
- 大小:185.00 KB
- 文档页数:20
(二)上机编程题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 程序设计题 1一、要求说明:1. 在考生文件夹的Paper/CD1 子文件夹中,已有CD1.c 文件2. 该程序中标有部分为考试需要程序设计部分的标志。
考生需根据程序的功能设计编写程序,并调试运行程序;3. 单击“回答”按钮后进行程序设计;二、注意事项:1. 在设计时,不得删除设计部分标志;2. 不得对设计部分标志以外的程序内容进行加行、减行、加句、减句。
三、程序功能:1#include <stdio.h>#include <math.h>void main(){ FILE *fp; double a=1.05; long n=1;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf("%d %.4f\n",n,a);fp=fopen("CD1.dat","wb");fwrite(&a,8,1,fp);fclose(fp);}2用for循环找出所有两个数乘积等于20的数据对。
[提示:判断20能否被i整除的条件可以写作“20.0/i==(int)(20/i)”]。
#include <stdio.h>void main(){ FILE *fp; long i,n=0,x[10][2];/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/for(i=0;i<n;i++)printf("%ld %ld\n",x[i][0],x[i][1]);fp=fopen("CD1.dat","wb");fwrite(&x,4,2*n,fp);fclose(fp);}3计算并显示表达式 1 + 2! + 3! + ... + 12! 的值。
程序改错在“/*****N*****/”的下一行中有错误,请改正。
(注意:不得加行、减行、加句、减句,否则后果自负)1.程序功能:用递归法将一个六位整数n转化成字符串。
(例如:输入123456,应输出字符串“123456”)#include<stdio.h>void 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);}2.程序功能:输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
(例如:输入“abc123+xyz.5”,应输出”abcxyz”)#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 (tolower(str[i])<'a' || tolower(str[i])>'z'){/********2********/str[n]=str[i]; n++;}str[k]='\0';printf("%s\n",str);}3.程序功能:运行时输入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;while(n>1)if(n%i==0) {printf("%d\t",i);n/=i;}else/******** 2 *******/n++;}4.程序功能:运行时输入n,输出n各位数字之和。
第二部份 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程序设计上机操作题 (2)一、数列求和 (2)二、最大公约数、最小公倍数 (7)三、排序算法 (8)四、数组 (9)五、求整数n的各位数字及各数字之和 (12)六、平面上各点之间的距离 (14)七、数制转换 (17)八、字符串处理 (19)九、最大值与最小值 (26)十、斐波那契(Fibonacci)数列 (28)十一、水仙花、完数、回文数与亲密数 (30)十二、方程求根 (32)十三、回文数、因子、质因子、素数 (35)十三、其他算法 (36)第二部份 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语言考试真题及答案一、单项选择题(每题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程序设计上机操作题.............................. 错误!未定义书签。
一、数列求和............................................. 错误!未定义书签。
二、最大公约数、最小公倍数............................... 错误!未定义书签。
第二部份 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; 6f写入到考生目录中Paper子目录下的新建文件中。
#include<>#include<>void main(){FILE *p;int i; float x=,t=,y=;float a[10]={,,,,,,,,,};.6f.的值,并将其以格式"%f"写到考生目录中Paper子目录下的新建文件中。
#include <>#include <>void main(){ FILE *p; int i; float x=,t,y;float a[10]={,,,,,,,,,};.+12!的值,并将计算结果以格式"%ld" 写入到考生目录中Paper子目录下的新建文件中#include <>void main(){ FILE *p; long s=1,k=1; int i;.的值,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件中。
一、程序填空(1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1(2)输入1个整数后,输出该数的位数。
(例:输入3214则输出4,输入-23156则输出5)。
(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
(4)调用函数f,将一个整数首尾倒置。
例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
(5)调用函数f,从字符串中删除所有的数字字符。
(6)调用find函数在输入的字符串中查找是否出现"the"这个单词。
如果查到返回出现的次数,如果未找到返回0。
(7)输入的一个小写字母,将字母循环后移5个位置后输出。
例如:"a"变成"f","w"变成"b"。
(8)将字符串s中所有的字符'c'删除。
(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。
(10)输入三个整数,按由小到大的顺序输出这三个数。
(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6(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时的值。
(13)分别统计字符串中英文字母、数字、和其他字符出现的次数。
(14)将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。
(15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
(16)数列的第1、2项均为1,此后各项值均为该项前二项之和。
计算数列第30项的值。
(17)该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。
(18)输入m、n(要求输入数均大于0)。
输出它们的最大公约数。
(19)求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。
例如:b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。
(20)输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。
二、程序改错(1)输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
(2)输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。
例如:输入"ABCD",则字符串t为"ABCDDCBA"。
(3)运行时输入10个数,然后分别输出其中的最大值、最小值。
(4)用选择法对10个整数按升序排序。
(5)输入x和正数eps,计算多项式1-x+x*x/2-x*x*x/3!+……的和直到末项的绝对值小于eps为止。
(6)运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333。
(7)用递归法将一个六位整数n转换称字符串。
例如:输入123456,应输出字符串"123456"。
(8)输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。
(9)运行时输入n,则输出n的所有质数因子。
例如:n=13860,则输出2、2、3、3、5、7、11。
三、编写程序(1)在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。
(2)若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。
如:220、284是1对亲密数,284、220也是1对亲密数。
在6~5000内找出所有的亲密数对,并将每对亲密数用语句fprintf( p, "%6d, %6d\n", a, b)写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(3)设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII 码值的乘积。
位置值从1开始依此递增。
将每个字符的权重值,以格式"%d "写入到源程序目录中Paper子目录下的新建文件design.dat中。
(4)将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。
(5)z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(6)z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x、y取值为区间[0,10]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(7)设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写到源程序目录中Paper子目录下的新建文件design.dat中。
(8)设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。
(9)对x=1,2,…10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式".3f"写入到考生文件夹中Paper 子文件夹下的新建文件Design1.dat。
(10)将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生文件夹中Paper 子文件夹下的新建文件Design2.dat。
(11)在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"每行3个数写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。
(12)计算多项式a0+a1*x+a2*x*x+a3*x*x*x+…+a9*x*x*x*x*x*x*x*x*x的值,并将其值以格式"%f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(13)利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。
(π/4的结果不包含此项)将计算结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。
(14)计算表达式1+2!+3!+…+12!的值,并将计算结果以格式"%ld"写入考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(15)计算数列1,-1/3!,1/5!,-1/7!,1/9!,……的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。
(16)计算多项式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"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。
(17)有数列:2/1,3/2,5/3,8/5,13/8,21/13,......求出数列的前40项的和。
将计算结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。
(18)累加a字符串各个字符的ASCII码值,然后将累加和以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。
(19)计算2的平方根、3的平方根、……、10的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\n"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。
(20)x[i],y[i]分别表示平面上的一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(21)在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。
(22)寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。
说明:所谓回文数是指各位数字左右对称,例如121、676、94249等。
满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。
请编制函数int JSValue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。
最后把结果写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(23)数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆(方程为:(x-1)*(x-1)+(y+0.5)*(y+0.5)=25)内的点数k,并将变量k的值以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。
(24)某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万件的年份,结果由函数Year返回。
分别计算当x=20和x=30时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。
(25)求斐波那契(Fibonacci)数列中其前40项之和,(斐波那契数列的定义为后一项为前两项之和),并将求和的结果以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。
(26)求斐波那契(Fabonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,其中斐波那契数列F(n)的定义为:F(0)=0, F(1)=1F(n)=F(n-1)+F(n-2)分别计算当t=1000和t=3000时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。