c语言上机试题1(数学计算)
C语言上机练习题及答案
1输入三个整数*,y,z,把这三个数由小到大输出。
# include <stdio.h>void main(){int *,y,z,a;scanf ("%d,%d,%d",&*,&y,&z);if(*>y) {a=*; *=y;y=a;}if(*>z) { a=*; *=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",*,y,z);}2输入圆的半径,输出圆的周长和面积。
# include<stdio.h># define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# include<stdio.h>void main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# include<stdio.h>int main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
计算机四级C语言上机题
类型一数列规律编程1、编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)例如:若n的值为11时,函数的值为1.833333。
#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <string.h>float fun(int n){}void main(){int n;float s;system("CLS");printf("\nPlease enter N: ");scanf("%d",&n);s=fun(n);printf("The result is:%f\n " , s);}【参考答案】float fun(int n){int i,s1=0;float s=0.0;for(i=1;i<=n;i++){s1=s1+i; /*求每一项的分母*/s=s+1.0/s1; /*求多项式的值*/}return s;}【解析】本题中s1用来表示式中每一项的分母,而每一项的分母都是由前一项分母加项数。
注意:由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。
2、请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.005,即某项小于0.005时停止迭代)。
π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1)) 程序运行后,如果输入精度0.0005,则程序输出3.14…。
#include <stdio.h>#include <conio.h>#include <math.h>double fun(double eps){}void main(){double x;printf("Input eps: ");scanf("%lf",&x);printf("\neps=%1f,PI=%1f\n",x,fun(x));}【参考答案】double fun(double eps){double s=1.0,s1=1.0;int n=1;while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/{s1=s1*n/(2*n+1); /*求多项式的每一项*/s=s+s1; /*求和*/n++;}return 2*s;}【解析】从第2项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s来表示求和后的结果。
C语言上机题参考答案
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);
C语言程序设计上机题目与参考答案
C语言程序设计题目与参考答案(1——9章)1.(课本第84页第7题)设圆半径r=1.5,圆柱的高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
请编程序:#include <stdio.h>int main()#define p 3.1416int main(){double r,h,l,s,S,v,V;scanf("%lf %lf",&r,&h);l=2*p*r;s=p*r*r;S=4*p*r*r;v=4/3*p*r*r*r;V=p*r*r*h;printf("l=%7.2f\ns=%7.2f\nS=%7.2f\nv=%7.2f\nV=%7.2f\n",l,s,S,v,V);return 0;}2.把560分钟化成小时和分钟。
#include<stdio.h>main(){int t,h,m;t=560;h=t/60;m=t%60;printf("560分钟等于%d小时%d分钟\n",h,m);}3.第112页第6题)有一个函数y=x(x<1),y=2x-1(1<=x<10),y=3x-11(x>=1写程序,输入x的值,输出y相应的值。
#include<stdio.h>int main(){float x,y;scanf("%f",&x);if(x<1) y=x;elseif(x<10) y=2*x-1;else y=3*x-11;printf("%f\n",y);}4.(第113页第11题)输出4个整数,要求按由小到大的顺序输出。
#include<stdio.h>int main(){float a,b,c,d,t;scanf("%f,%f,%f,%f",&a,&b,&c,&d);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(a>d) {t=a;a=d;d=t;}if(b>c) {t=b;b=c;c=t;}if(b>d) {t=b;b=d;d=t;}if(c>d) {t=c;c=d;d=t;}printf("%f,%f,%f,%f",a,b,c,d);}5.(第113页第12题)有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这四个塔的高度为10米,塔以外无建筑物。
c语言上机题答案
6. 求 sinclude <stdio.h>
#include <math.h>
void main(){
int n;
int sum1;
int sum2;
int total;
total=sum1+sum2;
for(n=1;n<=10;n++){printf("%6d\n",n);}
12. 编写一个求 0~100 之间全部奇数之积的程序。 #include <stdio.h> #include <math.h> void main(){ int i;double ji; for(i=1,ji=1;i<101;i++){ if(i%2==1){ji=ji*i;}} printf("ji=%f\n",ji);}
数之和。 #include <stdio.h> #include <math.h> void main(){ int a,b;int sum; scanf("%d%d",&a,&b); sum=a+b; printf("%d\n",sum);} 9. 编写一个求三个整数之和的程序,用求两个整数之和的函数实现。 #include <stdio.h> #include <math.h> void main(){ int a,b,c; int he; int sum(int,int); scanf("%d%d%d",&a,&b,&c); he=sum(sum(a,b),c); printf("%d",he);} int sum(int x,int y) {int z; z=x+y; return(z);} 10. 编写一个求 a + | b | 的程序, a,b 为两个整数。 #include <stdio.h> #include <math.h> void main(){ int a,b,z; int sum; scanf("%d%d",&a,&b); if(b>0){z=b;} else{z=-b;} sum=a+z; printf("%d",sum);}
C语言上机考试题目
1、编写一个C 程序,比较任意三个整数的大小,然后输出其中的最大值。
方法不限。
2、计算圆的面积和周长。
要求:使用符号常量定义圆周率为3.14。
3、输入某学生三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。
要求:有输入数据和输出结果的提示。
4、输入三角形的三边长,求三角形的面积。
三角形的三边长用变量a,b,c, 其中s=(a+b+c)/2。
提示:求某个数x 的平方根函数为sqrt(x),当直接用此函数时,需要在main 函数上面加入头文件:math.h 。
5、输入一个四位的正整数(如果不是,提示“输入错误”),对其个、十、百、千位四位数字求和并实现个位数与百位数、十位数与千位数的互换然后将这个数输出。
例如,输入一个四位正整数1234,通过你的程序,如何输出和10以及新的数3412。
6、求ax 2+b x+c=0方程的根。
a ,b ,c 由键盘输入。
提示:众所周知,一元二次方程式的根为:x1= x2= 可以将上面的分式分为两项:p= ,q= x1=p+q, x2=p -q 。
注意:在b 2-4ac>0的条件下,才可以求方程的根,否则提示a,b,c 的值输入错误。
7、输入三角形的三条边长,判断能否构成三角形,若能输出YES 并且输出三角形的面积,若不能则输出NO 。
8、任意输入三个整型数,要求按照从大到小的顺序输出。
9、从键盘输入一个四位数的年份,判断其是否为闰年。
aac b b 242-+-a ac b b 242---a b 2-aac b 242-10、有一个函数:写出程序,输入x的值,输出对应的y的值。
要求加上相应的文字说明。
11、编程实现大小字母的转换。
从键盘输入一个字符,要求使用getchar()函数读入字符。
如果输入的是一个小写字母,转换为大写字母;如果输入的是一个大写字吗,转换为小写字母;如果输入的是一个非字母符号,照原样输出。
要求有文字说明。
12、判断从键盘输入的是数字字符、大写字母、小写字母、空格还是其他字符。
C语言程序设计上机考试试题和参考答案
printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:
c语言上机考试题及答案
c语言上机考试题及答案1. 编写一个C程序,实现求两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```2. 编写一个C程序,实现从键盘输入一个整数,判断该数是否为质数,并输出结果。
```c#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个整数:");scanf("%d", &num);for (i = 2; i <= num / 2; i++) {if (num % i == 0) {flag = 1;break;}}if (num == 1) {printf("1既不是质数也不是合数。
\n"); } else {if (flag == 0) {printf("%d是质数。
\n", num);} else {printf("%d不是质数。
\n", num);}}return 0;}```3. 编写一个C程序,实现对数组元素进行冒泡排序,并输出排序后的结果。
```c#include <stdio.h>void bubbleSort(int arr[], int size) {int i, j, temp;for (i = 0; i < size - 1; i++) {for (j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j+1]) {temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}int main() {int arr[] = {5, 2, 8, 3, 1};int size = sizeof(arr) / sizeof(arr[0]);int i;printf("排序前的数组:");for (i = 0; i < size; i++) {printf("%d ", arr[i]);}bubbleSort(arr, size);printf("\n排序后的数组:");for (i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;}```4. 编写一个C程序,实现计算给定数的阶乘,并输出结果。
C语言上机测试题目(完整版)
1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>void main(){int i,j,k;for(i=1;i<=4;i++)for(j=1;j<=4;j++)for(k=1;k<=4;k++)if(i!=j&&i!=k&&j!=k)printf("%d%d%d ",i,j,k);printf("\n");}2.企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?#include <stdio.h>main(){ long i;float bonus, bon1, bon2, bon4, bon6, bon10;int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润i:");scanf("%ld",&i);c=i/100000;if(c>10) c=10;switch(c){ case 0: bonus=1*0.1;break;case 1: bonus=bon1+(i-100000)*0.075;break;case 2 :case 3: bonus=bon2+(i-200000)*0.05; break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015;break;case 10: bonus=bon10+(i-1000000)*0.01;}printf("奖金是%10.2f",bonus);}3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include<stdio.h>#include<math.h>void main(){int a,b,c;for(a=0;;a++){ b=sqrt(a+100);c=sqrt(a+268);if(b*b==a+100 && c*c==a+268){printf("%d\n",a);break;}}}4.输入某年某月某日,判断这一天是这一年的第几天?main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;}sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1;elseleap=0;if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++;printf("It is the %dth day.",sum);}5.输入三个整数x,y,z,请把这三个数由小到大输出。
c语言20题上机题目
c语言20题上机题目1.计算球体积Problem Description根据输入的半径值,计算球的体积。
Input输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
Sample Input1 1.5Sample Output4.189 14.1372.成绩转换Problem Description输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:90~100为A;80~89为B;70~79为C;60~69为D;0~59为E;Input输入数据有多组,每组占一行,由一个整数组成。
Output对于每组输入数据,输出一行。
如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input56 67 100 123Sample OutputE D A Score is error!3.第几天?Problem Description给定一个日期,输出这个日期是该年的第几天。
Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input1985/1/20 2006/3/12Sample Output20 714.求奇数的乘积Problem Description给你n个整数,求他们中所有奇数的乘积。
Input输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
Output输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
Sample Input3 1 2 34 2 3 4 5Sample Output3 155.平方和与立方和Problem Description给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
C语言上机试题1-20套
C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){float…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}解答:#include <conio.h> #include <stdio.h> double fun( int n ) { double s=0; int i; for(i=1;i<n+1;i++) s+=1.0/(i*(i+1)); return s; } main() /*主函数 */ { system("cls"); printf("%f\n",fun(10)); }说明:主函数中的clrscr()函数为TC 下使用的清屏函数,在VC 中不能使用,在本题中可以直接删除或改为system("cls")2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?解答:#include <stdio.h>int main(void){int max,num=0;int i,j;for(i=10000;i<20001;i++){for(j=2;j<i;j++)if( i%j==0 )break;if( j==i && i%10==7){num++;max=i;}}printf("num=%d,max=%d\n",num,max);return 0;}3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。
c语言上机考试题及答案
c语言上机考试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个是合法的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A2. 下列哪个选项是正确的C语言标识符?A. 2variableB. variable2C. variable-2D. variable_2答案:D3. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A4. 在C语言中,以下哪个是正确的函数声明?A. int myFunction(int a);B. int myFunction();C. int myFunction(int);D. int myFunction(int a, int b);答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D二、填空题(每题3分,共15分)1. 在C语言中,用于定义整型变量的关键字是________。
答案:int2. 若有定义 int a = 10;,则表达式 a++ 的值为________。
答案:103. C语言中,用于表示逻辑“与”的运算符是________。
答案:&&4. 在C语言中,以下代码段的输出结果是________。
```c#include <stdio.h>int main() {int x = 5;printf("%d", x++);return 0;}```答案:55. 若有定义 float b = 3.14;,则表达式 b * 100 的值为________。
答案:314.0三、编程题(每题20分,共40分)1. 编写一个C程序,计算并输出以下数列的前10项之和:1 + 1/2 + 1/3 + ... + 1/10。
c语言上机考试题库
c语言上机考试题库1. 编写一个程序,从键盘输入两个整数,然后交换它们的值并输出。
```c#include <stdio.h>int main(){int num1, num2, temp;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);temp = num1;num1 = num2;num2 = temp;printf("交换后的值为:%d %d\n", num1, num2);return 0;}```2. 编写一个程序,输入一个整数,判断该数是奇数还是偶数,并输出对应结果。
```cint main(){int num;printf("请输入一个整数:");scanf("%d", &num);if(num % 2 == 0){printf("%d是偶数\n", num);}else{printf("%d是奇数\n", num);}return 0;}```3. 编写一个程序,输入一个大写字母,将其转换为小写字母并输出。
```cint main(){char upperCase, lowerCase;printf("请输入一个大写字母:");scanf("%c", &upperCase);lowerCase = upperCase + 32;printf("转换为小写字母:%c\n", lowerCase);return 0;}```4. 编写一个程序,输入一个字符串,然后判断该字符串是否为回文,并输出对应结果。
```c#include <stdio.h>#include <string.h>int main(){char str[100];int i, j, flag = 1;printf("请输入一个字符串:");gets(str);for(i = 0, j = strlen(str) - 1; i < j; i++, j--) {if(str[i] != str[j]){flag = 0;break;}}if(flag == 1){printf("该字符串是回文\n");}else{printf("该字符串不是回文\n");}return 0;}```5. 编写一个程序,输入一个整数n,计算并输出1到n的累加和。
c上机考试试题
c上机考试试题# C上机考试试题一、单项选择题(每题2分,共20分)1. 下列关于C语言基本数据类型的说法中,错误的是()。
- A. `int` 类型通常用于表示整数- B. `float` 类型用于表示单精度浮点数- C. `double` 类型用于表示双精度浮点数- D. `char` 类型用于表示一个字符或整数2. 在C语言中,用于定义数组的关键字是()。
- A. `define`- B. `array`- C. `list`- D. `int[]`3. C语言标准输入输出使用的库函数是()。
- A. `<stdio.h>`- B. `<math.h>`- C. `<stdlib.h>`- D. `<iostream>`4. 下列哪个是C语言中的合法标识符?()- A. `class`- B. `case`- C. `2b`- D. `user_name`5. C语言中,用于实现字符串连接的函数是()。
- A. `strcpy()`- B. `strcat()`- C. `strlen()`- D. `strncpy()`6. 在C语言中,`printf` 函数的返回类型是()。
- A. `int`- B. `float`- C. `char`- D. `void`7. 下列关于C语言函数的描述中,错误的是()。
- A. 函数可以返回一个值- B. 函数可以没有返回值- C. 函数必须有返回值- D. 函数可以有多个返回值8. 在C语言中,用于计算两个整数的最大值的宏定义在哪个头文件中?()- A. `<math.h>`- B. `<stdlib.h>`- C. `<limits.h>`- D. `<stdio.h>`9. C语言中,`break` 语句的作用是()。
- A. 跳出整个循环- B. 跳出最近的一个循环- C. 跳出整个程序- D. 继续下一次循环10. 下列关于C语言结构体的描述中,错误的是()。
C语言上机考试试题
1.给定程序modi.c中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中,若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
程序如下:#include <stdio.h>#define SIZE 20fun(double *s,double *w){ int k,i; double sum;for (k=2,i=0;i<SIZE;i++){s[i]=k; k+=2;}sum=0.0;for(k=0,i=0;i<SIZE;i++){sum+=s[i];if ((i+1)%5==0) //说组的第一个为s[0],则应该加1后就行除5//{ w[k]=sum/5;sum=0;k++;} }return k;}main(){ double a[SIZE],b[SIZE/5];int i,k;k=fun(a,b);printf("The original data:\n"); for (i=0;i<SIZE;i++){if(i%5==0) printf("\n");printf("%4.0f",a[i]);}printf("\n\nThe result:\n");for(i=0;i<k;i++){printf("%6.2f",b[i]);}printf("\n\n");}2.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符串长度相同,则返回第一个字符串。
例如,输入beijing <CR> shanghai <CR>(<CR>为回车键)函数将返回shanghai。
c语言上机题目(1——30)
个数加1,并将该3位数及4位数添加到和值中。 【参考答案】
void countValue() {
int i,j; int s2; int n2,n3,n4; for(i=100;i<1000;i++) {
for(j=1000;j<10000;j++) {
if(i*3==j*2) { s2=i%100/10; n4=j/1000; n3=j%1000/100; n2=j%100/10; if(s2==n3&&n2==n4) { cnt++; sum+=i+j; } }
if(j>half)
/*如果是素数*/
{
cnt++;
/*计算这些素数的个数cnt*/
sum+=i;
/*计算这些素数值的和sum*/
}
}
}
}
【易错提示】 素数的判断算法使用错误,分解整数各个数位的方法错误,if判断语句中逻 辑表达式错误。
第六套【考点分析】 本题考查结构体数组的排序。考查的知识点主要包括:结构体成员运
第一套【考点分析】 本题考查对4位整数的排序。考查的知识点主要包括:数组元素的排
序算法,if判断语句和逻辑表达式,以及求余算术运算。
【解题思路】 此题属于4位数排序问题。本题需主要解决3个问题:问题1如何取4位数的后
3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果
【参考答案】
void jsSort() {
int i,j; int temp;
/*定义循环控制变量*/ /*定义数据交换时的暂存变量*/
for(i=0;i<199;i++)
c语言上机试题1(数学计算)
1整型、实型1.1实型四舍五入请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。
例如:实型数为 1234.567, 则函数返回1234.57;实型数为 1234.564, 则函数返回 1234.56。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>int NONO(void);float fun ( float h ) {}int main(void) {float a;printf ("Enter a: ");scanf ( "%f", &a );printf ( "The original data is : " );printf ( "%f \n\n", a );printf ( "The result : %f\n", fun ( a ) );NONO( );return 1;}int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。
*/ int i ;float a ;FILE *rf, *wf ;rf = fopen("./05/in.dat","r") ;wf = fopen("./05/out.dat","w") ;for(i = 0 ; i < 20 ; i++) {fscanf(rf, "%f", &a) ;fprintf(wf, "%f\n", fun(a)) ;}fclose(rf) ;fclose(wf) ;return 1;}答案1:long i=h*1000;if(i%10<5)return (i/10)/100.0;elsereturn (i/10+1)/100.0;答案2:long temp=a*1000,temp2;temp2=temp/10;temp=temp%10;float result; //被除数定义成floatif(temp>4)result=temp2+1;elseresult=temp2;return result/100;1.2根据公式求圆周率#include <stdio.h>#include <math.h>double fun ( double eps) {}main( ) {double x;printf("Input eps:") ;scanf("%lf",&x);printf("\neps = %lf, PI=%lf\n", x, fun(x));NONO();}NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
_《C语言》机试题(成-部分答案)
上机试题(一)1 已知A,B为正整数, A<B, A*B=且要求A+B取最小值,求满足上述条件的A值。
答案:5632 编写程序,求三位数的偶数中,所有各位数字之和是15的倍数的数的和。
答案:20454………………………………………………………………………………………………上机试题(二)1 编写程序,求三位数的奇数中,所有各位数字之和是12的倍数的数的和。
答案:202922 把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案?答案:205……………………………………………………………………………………………上机试题(三)1 编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。
答案:2 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1 if n=1F(2)=1 if n=2F(n)=F(n-1)+F(n-2) if n>2试求F(1)+F(3)+F(5)+……+F(49)值。
提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。
答案:…………………………………………………………………………………………………上机试题(四)1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。
答案:162一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。
求出200到500之间所有的完数之和。
答案:496…………………………………………………………………………………………………上机试题(五)1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1整型、实型1.1实型四舍五入请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。
例如:实型数为1234.567, 则函数返回1234.57;实型数为1234.564, 则函数返回1234.56。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>int NONO(void);float fun ( float h ) {}int main(void) {float a;printf ("Enter a: ");scanf ( "%f", &a );printf ( "The original data is : " );printf ( "%f \n\n", a );printf ( "The result : %f\n", fun ( a ) );NONO( );return 1;}int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。
*/ int i ;float a ;FILE *rf, *wf ;rf = fopen("./05/in.dat","r") ;wf = fopen("./05/out.dat","w") ;for(i = 0 ; i < 20 ; i++) {fscanf(rf, "%f", &a) ;fprintf(wf, "%f\n", fun(a)) ;}fclose(rf) ;fclose(wf) ;return 1;}答案1:long i=h*1000;if(i%10<5)return (i/10)/100.0;elsereturn (i/10+1)/100.0;答案2:long temp=a*1000,temp2;temp2=temp/10;temp=temp%10;float result; //被除数定义成float if(temp>4)result=temp2+1;elseresult=temp2;return result/100;1.2根据公式求圆周率#include <stdio.h>#include <math.h>double fun ( double eps) {}main( ) {double x;printf("Input eps:") ;scanf("%lf",&x);printf("\neps = %lf, PI=%lf\n", x, fun(x));NONO();}NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/ FILE *fp, *wf ;int i ;double x ;fp = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(fp, "%lf", &x) ;fprintf(wf, "%lf\n", fun(x)) ;}fclose(fp) ;fclose(wf) ;}答案1:double i=1,a=1,b=1,c=1,s=0;while(c>=eps) {s+=c;a*=i;b*=2*i+1;c=a/b;i++;}return s*2;答案2:double n=1.0,m,s1,s2;m=2*n+1;s1=n;s2=m;double temp=s1/s2,sum=0.0;while(temp>=eps){sum+=temp;n+=1;m+=2;s1*=n;s2*=m;temp=s1/s2;}return (sum+1)*2;1.3求阶乘#include <stdio.h>float fun(int m, int n) {}int main(void) /* 主函数*/ {printf("P=%f\n", fun (12,8));//NONO();return 1;}int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/ FILE *fp, *wf ;int i, m, n ;float s;fp = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(fp, "%d,%d", &m, &n) ;s = fun(m, n) ;fprintf(wf, "%f\n", s) ;}fclose(fp) ;fclose(wf) ;return 1;}答案:float result;int x,y,z,o=1,p=1,q=1;for(x=1;x<=m;x++){o=o*x;}for(y=1;y<=n;y++){p=p*y;for(z=1;z<=m-n;z++){q=q*z;}result=o/(p*q);return result;尝试建立一个专门求阶乘的函数。
1.4求公式#include <stdio.h>double fun( int n ) {}int main(void) /* 主函数*/ {printf("%f\n", fun(10));//NONO();return 1;}int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/ FILE *fp, *wf ;int i, n ;double s ;fp = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(fp, "%d", &n) ;s = fun(n) ;fprintf(wf, "%f\n", s) ;}fclose(fp) ;fclose(wf) ;return 1;}int i;double m,sum=0.0;for(i=1;i<=n;i++){m=i*(i+1);sum+=1/m;}return sum;1.5整数分解函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。
合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12。
调用该函数后,c=5241。
注意: 部分源程序存在文件PROG1.C中。
数据文件IN.DAT 中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>void NONO(void);long fun(int a, int b) {}int main(void) {int a,b;long c;printf("Input a, b:");scanf("%d%d", &a, &b);c=fun(a, b);printf("The result is: %ld\n", c);NONO();return 0;}void NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/FILE *rf, *wf ;int i, a,b ;long c ;rf = fopen("./44/in.dat","r") ;wf = fopen("./44/out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%d,%d", &a, &b) ;fun(a, b, &c) ;fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;}fclose(rf) ;fclose(wf) ;}答案:long i1=(a%10)*1000;printf("aa=%d,bb=%d",b%10,b/10);long i2=(b%10)*100;long i3=a/10*10;long i4=b/10;//return a%10*1000+b%10*100+a/10*10+b/10; return i1+i2+i3+i4;1.6数学公式#include <stdio.h>/************found************/fun(int m){double y = 0, d;int i ;/************found************/for( i = 100;i < m;i += 100 ) {d = (double)i * (double)i ;y += 1.0 / d ;}return (y);}main( ) {int n = 2000 ;printf( "\nThe result is %lf\n", fun ( n ) ) ;}答案:double fun ( int m ) {for( i = 100;i <=m;i += 100 ) {1.7数学公式修正:当k=1时,第一项为4/1*3#include <stdio.h>#include <math.h>float fun(int k){}main ( ) {printf("%f\n", fun (10));}答案1:int n;float s, w, p, q;n = 1;s = 1.0;while ( n <= k ) {w = 2.0 * n;p = w - 1.0;q = w + 1.0;s = s * w *w/p/q; n++;}return s;改错:int i;float sum=1.0;for(i=2;i<=k;i++){sum*=(2*i * 2*i)/((2*i+1)*(2*i-1)); //注意数据类型}return sum;1.8最小公倍数给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。