c++第一次上机考试试题
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语言程序设计上机考试试题和参考答案

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 上机题目及答案1

第一周上机题1.以下语句描述了包含数学成绩的学生信息结构体及其数组a:struct student{ char name[20]; float math; };student a[10] = {{"张三", 90},{"李四",85},{"王五",73}};int count=3; // 数组中包含的学生数编写两个函数分别实现在a数组中添加和删除学生信息。
要求:1) 原数组已按数学成绩排序(降序),添加和删除学生信息后数组应仍为降序;2)以下数据用于添加:{"赵二", 96}, {"钱六",65},{"孙七",80}3) 注意:添加,删除后count数据要相应变化。
#include<iostream.h>#include<string.h>struct student{char name[20];float math;};int count=3;void add(student a[10]);void dele(student a[10]);void print(student a[]);void main(){student a[10] = {{"张三", 90},{"李四",85},{"王五",73}};int n=0;do{cout<<".................学生信息处理系统.................."<<"\n 1-删除"<<"\n 2-增加"<<"\n 3-结束\n"<<"\n请选择: ";cin>>n;if(n==1) dele(a);else if(n==2) add(a) ;else cout<<"谢谢使用本系统!\n";}while(n!=3);}void add(student a[10]){student stu;int i=0,n=count;cout<<"请输入需增加的学生信息(姓名,成绩): ";cin>>>>stu.math;while(stu.math<a[i].math && i<n) i++;//找插入的位置for(;n>i;n--) a[n]=a[n-1]; //腾位置a[i]=stu; //插入count++;print(a);}void dele(student a[10]){char name[20];int i=0,n=count;print(a);cout<<"请输入需删除学生的姓名: ";cin>>name;while(strcmp(name,a[i].name)!=0 && i<n) i++;//找人if(i>=n) cout<<"查无此人!\n";else {for(;i<n-1;i++) a[i]=a[i+1]; //删除count--;print(a);}}void print(student a[]){cout<<"\n最新学生信息: \n";for(int i=0;i<count;i++)cout<<a[i].name<<'\t'<<a[i].math<<'\n';}2.定义描述三维坐标点(x,y,z)的结构体类型变量,完成坐标点的输入和输出,并求两坐标点之间的距离。
C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
C语言上机考试系统试题及答案(上机系统部分)

例如,输入下面矩阵:
1 2 3
4 5 6
7 8 9
其转置矩阵为:
1 4 7
2 5 8
3 6 9
则程序输出:
2 6 10
6 10 14
10 14 18
注意:部分源程序已给出,并保存在考生文件夹下的 prog1.c 文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。
#include <stdio.h>
#include<conio.h>
void fun (int a[3][3], int b[3][3])
{
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",t[i][j]);
printf("\n");
}
}【参考答案】
程序填空题:第9行 bb[i]=0 第24行 bb[5]++ 第26行 p++;【 ++p; p=p+1; p+=1; 】
for (i=0;i<3;i++)
{for (j=0;j<3;j++)
printf("%7d ",array[i][j]);
printf("\n ");
}
fun(array);
printf("Converted array:\n ");
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语言上机实验试题及答案
一、实验方式:一人一机 二、实验目的:
1、掌握 C 语言的数据类型。 2、学会使用 C 语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。
1、输入 r1、r2,求出圆形垫片面积。(实验指导书 P84) 2、输入华氏温度 h,输出摄氏温度 c。(实验指导书 P85) 3、从键盘输入一个 3 位整数,将输出该数的逆序数。(实验指导书 P89) 4、输入并运行以下程序,分析运行结果。
(实验指导书 P104) 2、输入某一年月,输出该月的天数。(实验指导书 P105) 3、有一函数: x (x<1)
y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编写程序,输入 x 值,输出 y 值。
4、从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符 为大写字母,则转换为小写字母输出;如果为其他字符,原样输出。(书 P94)
/*求 x 的百位数*/
b=(x-a*100)/10; /*求 x 的十位数*/
c=x-a*100-b*10; /*求 x 的个位数*/
y=c*100+b*10+a;
printf(“%d:%d\n”,x,y);
}
4、运行结果:9,11
8,10
9,8
8,8
5、#include <stdio.h>
#include <math.h>
scanf(“%d%d%d%d”,&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(“排序结果如下:\n”); printf(“%d,%d,%d,%d\n”,a,b,c,d); }
大一c语言上机考试题及答案
大一c语言上机考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C2. C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. defD. void答案:D3. C语言中,哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列哪个选项是C语言中正确的字符串定义?A. char str[] = "Moonshot";B. char str[] = {"Moonshot"};C. char str[] = 'Moonshot';D. char str[] = "Moonshot'';答案:A5. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. ==D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:int _______;。
答案:变量名2. 在C语言中,使用________运算符可以将字符串连接起来。
答案:+3. C语言中,________关键字用于定义一个结构体。
答案:struct4. 使用________函数可以输出格式化的字符串。
答案:printf5. C语言中,________函数用于计算字符串的长度。
答案:strlen三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有奇数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。
C语言上机考试题
C语言上机考试题(第一套)1. #include <conio.h>#include <stdio.h>double fun( int n ){double sum=0,a=1;for(;n>0;n--,a++)sum=sum+1/(a*(a+1));return sum;}main(){clrscr();printf("%f\n", fun(10));}2.#include <stdio.h>main(){int k,m,s=0,i,b=0;for(k=10000;k<=20000;k++){if(k%10==7){for(i=2,b=0;i<k;i++)if(k%i==0)b++;if(b==0)m=k,s++;}}printf("这样的素数有%d个。
\n 其中最大的一个是%d\n",s,m);}3.#include <stdio.h>main(){int a;printf("请输入一个需要判断的年份:\n");scanf("%d",&a);if(a%4==0&&a%100!=0)printf("是闰年\n");elseif(a%400==0)printf("是闰年\n");elseprintf("不是闰年\n"); }C语言上机考试题(第二套)1. #include <conio.h>#include <stdio.h>double fun( int n ){double sum=0,a=1;for(;n>0;n--,a++)sum=sum+1/(a*(a+1));return sum;}main(){// clrscr();printf("%f\n", fun(10));}2.#include <stdio.h>fun(int n){int i,j=0;for(i=2;i<n;i++)if(n%i==0)j++;return j;}main(){int a,b=0,d,e,k;for(k=1;k<10;k++)if(fun(k)==0)a=k,b++;for(k=10;k<100;k++)if(fun(k)==0){e=k%10,d=k/10;if(e==d)a=k,b++;}for(k=100;k<=1000;k++)if(fun(k)==0){e=k%10,d=k/100;if(e==d)a=k,b++;}printf("[1,1000]之内既是回文数,又是素数的最大整数:%d\n",a);printf("[1,1000]以内既是回文数,又是素数的整数有%d个\n",b);}3.#include <stdio.h>#include <string.h>main(){char str[81];int i,j=0,w=1,s=0;printf("请输入一串字符:\n");gets(str);for(i=0;i<strlen(str);i++){if(str[i]==' ')s++;if(str[i]==' '&&str[i+1]!=' ')w++;}if(str[0]==' ')w--;if(str[strlen(str)-1]==' ')w--;printf("单词个数为:%d\n空格个数为:%d\n",w,s);}C语言上机考试题(第三套)1.//#include "conio.h"#include "math.h"#include "stdio.h" int fun(int t){int a=0,b=1,c,k;for(k=1;;k++){c=b;b=a+b;a=c;if(a>t)break;}return a;}main(){int n;//clrscr();n=1000;printf("n = %d, f = %d\n",n, fun(n));}2.#include "stdio.h"main(){int a[3][3],i,j,s=0;printf("请依次输入一个3*3矩阵:\n");for(i=0;i<3;i++)for(j=0;j<3;j++){scanf("%d",&a[i][j]);if(i==j||i+j==2)s=s+a[i][j]*a[i][j];}printf("对角线平方和为:%d\n",s);}3.#include<stdio.h>#include<string.h>#define N 81fun(char str[]){int i=0,j;while(i<N){if(str[i]<=57&&str[i]>=48)for(j=i;j<N;j++)str[j]=str[j+1];elsei++;}puts(str);}main(){char str[N];printf("请随意输入字符:");gets(str);fun(str);}C语言上机考试题(第四套)1.//#include "conio.h"#include "math.h"#include "stdio.h"double fun( int n){double s=0;int i;for(i=1;i<n;i++)if(i%21==0)s+=i;return sqrt(s);}main(){// clrscr();printf("s=%f\n", fun (1000) ); }2.#include "stdio.h"main(){int a,b,k;for(;;){printf("请输入两数:\n");scanf("%d%d",&a,&b);if(a>0&&b>0)for(k=a;k>=1;k--)if(a%k==0&&b%k==0)break;if(a%k==0&&b%k==0)break;}printf("这两个数的最大公约数是:%d\n",k);}3.#include<stdio.h>main(){double a=1,b=1,i,j,s=0;for(i=1,j=3;;i++,j=j+2){a=a*i;b=b*j;s=s+a/b;if(a/b<0.00005)break;}printf("%f\n",2*(s+1));}C语言上机考试题(第五套)1.#include <conio.h>#include <stdio.h>int fun(int array[3][3]){int a[3][3],i,j;int b[3][3];for(i=0;i<3;i++){for(j=0;j<3;j++)a[i][j]=array[j][i];}for(i=0;i<3;i++)for(j=0;j<3;j++)array[i][j]=a[i][j];}main(){int i,j;intarray[3][3]={{100,200,300},{400,50 0,600},{700,800,900}};// clrscr();for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}fun(array);printf("converted array:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}}2.#include <stdio.h>main(){float x,y,s=0;int n;for(x=1;x<=100;x++){n=x;if(n%2==0)y=-1/x;elsey=1/x;s=s+y;}printf("前n项和为:%f\n",s); }3.#include<stdio.h> main(){int a[101]={0},i,n,s=0,t;for(n=2;n<=100;n++){for(t=0,i=2;i<n;i++){if(n%i==0)t++;}if(t==0)a[n]=n;}for(n=2;n<=100;n++)if(a[n]!=0&&a[n+2]!=0)s++;printf("2~100中的所有的亲密素数对的个数为:%4d\n",s);}C语言上机考试题(第六套)1.#include "stdio.h"main(){int a,b,c,s,k;printf("请输入一个大于2小于1000的数:\n");scanf("%d",&k);printf("它的所有质因子是:\n");for(a=2;a<=k;a++)if(k%a==0){for(s=0,b=2;b<a;b++)if(a%b==0)s++;if(s==0)printf("%5d",a);}printf("\n");}2.//#include "conio.h"#include "stdio.h"int fun (int n){int s=0,k;for(k=2;k<n;k++)if(n%k==0)s+=k;return s;}main(){//clrscr();printf("%d\n", fun (120));}3.#include<stdio.h>main(){double a=1,b=1,i,j,s=0;int n;printf("请输入求和项数N:\n");scanf("%d",&n);for(i=1;i<=n;i++)s+=1/(i*(i+1));printf("数列前%d项求和为:%f\n",n,s);}C语言上机考试题(第七套)1.//#include <conio.h>#include <stdio.h>#include <math.h>double fun(double x , int n){double a=1,c,s=0,i;c=x;for(i=1;i<=n+1;i++){a=a*i;s=x/a+s;x=x*c;}s=s+1;return s;}main(){//clrscr();printf("%f\n", fun(0.3,10));}2.#include<stdio.h>main(){int a,b,c,d,k;for(k=100;k<=999;k++){a=k/100;b=(k-a*100)/10;c=k-a*100-b*10;d=a*a*a+b*b*b+c*c*c;if(k==d)printf("%5d",k);}printf("\n");}3.#include<stdio.h>#include<math.h>main(){float a,b,c,t,p;for(;;){printf("请正确输入三角形三边长:\n");scanf("%f%f%f",&a,&b,&c);if(a<b)t=a,a=b,b=t;if(b<c)t=b,b=c,c=t;if(a<b)t=a,a=b,b=t;if(a<b+c&&c>0)break;else continue;}p=(a+b+c)/2;t=sqrt(p*(p-a)*(p-b)*(p-c));printf("面积为:%f\n",t);}C语言上机考试题(第八套)1.#include <conio.h>#include <stdio.h>#include <string.h>float fun(int n){int i,s=0;float p=0;for(i=1;i<=n;i++){s+=i;p+=1.0/s;}return p;}main(){int n;float s;// clrscr()printf("\nPlease enter N:");scanf("%d", &n);s = fun(n);printf("the result is: %f\n", s); }2.#include<stdio.h>main(){int i;float h=100,s=100;for(i=1;i<=10;i++){h=h/2;s+=h*2;}printf("第10次落地时,共经过:%f米\n",s);printf("第10次反弹的高度为:%f米\n",h);}3.#include<stdio.h>double fun(){double a=1,b=1,i,j,s=0;for(i=1,j=3;;i++,j=j+2){a=a*i;b=b*j;s=s+a/b;if(a/b<0.000001)break;}s=2*(s+1);return s;}main(){printf("%f\n",fun());}C语言上机考试题(第九套)1.#include "conio.h"#include "stdio.h"void fun( int m, int k ){int a,b,e=1,s=0;for(b=m;;){a=b%k;b=b/k;s+=a*e,e=e*10;if(b<k){s+=b*e;break;}}printf("该数为:%d\n",s);}main( ){int b,n;//clrscr();printf("\nPlease enter a number and a basen\n");scanf("%d%d",&n,&b);fun(n,b);printf("\n");}2.#include "stdio.h"main(){int a,b;for(a=1;a<10;a++){b=a*a;if(b%10==a)printf("%4d\n",a);}for(a=10;a<100;a++){b=a*a;if(b%100==a)printf("%4d\n",a);}for(a=100;a<=1000;a++){b=a*a;if(b%1000==a)printf("%4d\n",a);}}3.#include<stdio.h>main(){float f1,f2,f;f1=2*(-1)*(-1)+3*(-1)+4;f2=-2*5.0*5.0+3*5.0-4;if(f1+f2<=2)f=2*(f1+f2)*(f1+f2)+3*(f1+f2) +4;elsef=-2*(f1+f2)*(f1+f2)+3*(f1+f2) -4;printf("计算结果为:%f\n",f); }C语言上机考试题(第十套)1.#include <conio.h>#include <stdio.h>long fun (int a, int n){long b,e,temp,t,k=1,sum=0;if(a<10&&a>0&&n>1&&n<10){temp=a;for(;k<=n;k++){for(b=0,e=1,t=1;t<=k;t++){a=temp;a=e*a;e=e*10;b+=-a;}sum+=b;}sum+=-2*b;return sum;}else printf("输入有的A或者N 有问题求和结果不正确\n");}main( ){int a, n;//clrscr() ;printf("\nPlease enter a and n:\n ") ;scanf("%d%d",&a,&n) ;printf("The value of function is: %1d\n",fun(a,n));}2.#include <stdio.h>fun(int n){int k,a=0;for(k=2;k<n;k++)if(n%k==0)a++;return a;}main(){int i,j,k,n,t,a,b;for(n=4;n<=100;n=n+2){for(i=2;i<n;i++){j=n-i;if(fun(i)==0&&fun(j)==0)break;}printf("%d=%d+%d\n",n,i,j);}}3.#include <stdio.h>main(){int k,l,m,s=0;for(k=0;k<=10;k++)for(l=0;l<=5;l++)for(m=0;m<=2;m++)if(100==k*10+l*20+m*50)s++;printf("共有%d 种不同的兑换方法\n",s);}C语言上机考试题(第十一套)1.#include<conio.h>#include <stdio.h>double fun ( int x[ ]){int a[1000];int i,j=0,k=0;double s=0;while(x[j]!='\0'){if(x[j]>0){a[k]=x[j];k++;}j++;}for(i=0;i<k;i++)s+=a[i];return s/k;}main( ){int x[1000]; int i=0;// clrscr();printf("\nPlease enter some data (end with 0) ");do{scanf("%d",&x[i]);}while(x[i++] !=0);printf("%f\n",fun ( x ));}2.#include<stdio.h>#include<string.h>#define N 10main(){char str[N];int i=0,flag=0;long num=0;printf("请输入连续数字字符(最多10为数字) :");gets(str);while(str[i]!='\0'&&str[i]!='a'){if(str[i]=='-')flag=1;elseif(str[i]=='+')flag=0;elsenum=num*10+(str[i]-'0');i++;}if(flag==1)num=-num;printf("由数字字符串转化成整数是:%ld\n",num);}3.#include<stdio.h>main(){int a,b,c,s=0;for(a=0;a<=33;a++)for(b=0;b<=50;b++)for(c=0;c<=100;c=c+2)if(100==3*a+2*b+c/2&&a+b+c ==100)s++;printf("共有驼法:%d种\n",s);}C语言上机考试题(第十二套)1.#include <conio.h>#include <stdio.h>float fun(int m, int n){float t,p,j,i,k,o;if(m<n)t=m,m=n,n=t;for(p=1,j=1,i=1,o=m;p<=m-n;o--,p++){j=o*j;i=p*i;}k=j/i;return k;}main() /*主函数*/{// clrscr();printf("P=%f\n", fun (12,8)); }2.#include<stdio.h>main(){int x,y,z,i;printf("1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数:\n");for(i=1;i<=1000;i++){x=i%7,y=i%11;if(x==0&&y!=0||y==0&&x!=0)printf("%4d",i);}printf("\n");}3.#include<stdio.h>main(){int a[3][3],i,j,sum=0;for (i=0;i<3;i++){for (j=0;j<3;j++)scanf("%d",&a[i][j]);}for (i=0;i<3;i++){for (j=0;j<3;j++){if(i+j==2||i==j)sum=sum+a[i][j];}}printf("%d",sum);}C语言上机考试题(第十三套)1.#include <stdio.h>double fun(int n){double a=1,b=2,c,sum=0;for(;n>0;n--){sum=a/b+sum;c=a+b;a=b;b=c;}return sum;}main(){int n;printf("Enter n: ");scanf("%d", &n);printf("\nThe result : %f \n", fun(n));}2.#include <stdio.h>#include <string.h>main(){char str[81];int i,j=0,w=1,s=0;printf("请输入一串字符:\n");gets(str);for(i=0;i<strlen(str);i++){if(str[i]==' ')s++;if(str[i]==' '&&str[i+1]!=' ')w++;}if(str[0]==' ')w--;if(str[strlen(str)-1]==' ')w--;printf("单词个数为:%d\n空格个数为:%d\n",w,s);}3.#include <stdio.h>main(){int k=1,sum=0;for(;k<200;k=k+2)sum=sum+k;printf("sum=%d\n",sum);}C语言上机考试题(第十四套)1.#include "conio.h"#include "stdio.h" #include "math.h"float fun(int n){float a=0,b=0,c=1,d,e,s=0,k;for(k=1;k<=n;k++){s+=sqrt(a);d=a+b+c;a=b,b=c;c=d;}return s;}main ( ){int n;//clrscr( );printf("Input N=");scanf("%d", &n);printf("%f\n", fun(n));}2.#include<stdio.h>fun(int s[10]){int i,j;for(i=1;i<10;i++)for(j=0;j<10-i;j++)if(s[j]<s[j+1]){int temp;temp=s[j];s[j]=s[j+1];s[j+1]=temp;}printf("这10个数按从大到小排列为:\n");for(i=0;i<10;i++)printf("%d",s[i]);}main(){int s[10],i=0;printf("请输入10个整数:");for(;i<10;i++)scanf("%d",&s[i]);fun(s);printf("\n");}3.#include<stdio.h>fun(int s[10]){int i;float a=0;for(i=1;i<9;i++)if(s[i]>s[i+1]){int temp;temp=s[i];s[i]=s[i+1];s[i+1]=temp;}printf("这10个数中最大的为:%d\n",s[9]);for(i=0;i<10;i++)a+=s[i];printf("平均数为:%.1f",a/10);}main(){int s[10],i=0;printf("请输入10个整数:");for(;i<10;i++)scanf("%d",&s[i]);fun(s);printf("\n");}C语言上机考试题(第十五套)1.#include"conio.h"#include"stdio.h"double fun(int m){double a=1,b,j,s=0;for(j=1;j<=m;j++){a=a*j;b=1/a;s+=b;}return s;}main(){int n;//clrscr();printf("Enter n ");scanf("%d", &n);printf("\nThe result is%1f\n", fun(n));}C语言上机考试题(第十六套)1.#include <math.h>#include <stdio.h>float fun(float num){float i=3.0,j=-1.0,k=1.0;while(fabs(1.0/i)>num){k=k+j/i;j=-j;i+=2;}return k*4;}main(){ float n1,n2;//clrsct( );printf("Enter a float numder:");scanf("%f",&n1);n2=fun(n1);printf("%6.4f\n",n2);}2.#include <stdio.h>#include <stdlib.h>void md(int num,int b[20]){int i;for(i=0;i<num;i++)b[i]=rand()%32768;}main(){ int a[20],n,i,j,temp;//clrsct();printf("Enter a int numder:");scanf("%d",&n);md(n,a);for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}printf("%8d",a[i]);}}3.#include <stdio.h>void main(){int i,j,k;for(i=2;i<=1000;i++){for(j=1,k=0;j<i;j++)if(i%j==0)k+=j;if(k==i)printf("%6d",k);}}C语言上机考试题(第十七套)1.#include "stdio.h"fun(int x,int y , int z ){int j=1;for(;;j++)if(j%x==0&&j%y==0&&j%z= =0)break;return j;}main( ) {int x1,x2,x3,j ;printf("Input x1 x2 x3:\n");scanf("%d%d%d",&x1,&x2,&x 3 ) ;printf("x1=%d, x2=%d, x3=%d\n",x1,x2,x3);j = fun(x1,x2,x3);printf("The minimal common multiple is:%d\n",j);}2.#include "stdio.h"main(){int a,b,sa,sb,k,t;for(a=1;a<=1000;a++){sa=0,sb=0;for(k=1;k<a;k++)if(a%k==0)sa+=k;if(sa<=1000)b=sa;for(t=1;t<b;t++)if(b%t==0)sb+=t;if(a==sb&&a!=b)printf("a=%d\ nb=%d\n\n\n",a,b);}}3.#include "stdio.h"main(){int a,b,c,s=0,k;for(k=100;k<1000;k++){a=k/100,b=k/10%10,c=k%10;if(a!=b&&a!=c&&b!=c)s++;}printf("这样的三位数有%d个\n",s);}C语言上机考试题(第十八套)1.#include<conio.h>#include<stdio.h>#include<math.h>int fun(int a){int i,b=0;for(i=2;i<=a;i++)if(a%i==0)b++;if(b==1)return 1;elsereturn 0;}main(){int x;// clrscr();printf("\nPlease enter a number:");scanf("%d", &x);printf("%d\n", fun(x));}2.#include<stdio.h>main(){int w=1,i;printf("求W=1+21+22+23+…+210\n");for(i=21;i<=210;i++)w+=i;printf("求得:w= %d\n",w);}3.#include<stdio.h>main(){int i,j,s=0,p=0,k=1,t[21];for(j=1;j<=21;j++){s=0;for(i=1;i<=2*j-1;i++)if((2*j-1)%i==0)s++;if(s==2){p++;t[k]=j;k++;}}printf("在[1,21]范围内梅森尼数个数为:%d\n",p);printf("其中最大的一个是:%d\n",t[p]);}C语言上机考试题(第十九套)1.#include <conio.h>#include <stdio.h>long fun ( int k){int i;long s=1;for(i=1;i<=k;i++)s *= i;return s;}main(){int k = 10 ;// clrscr();printf("%d!=%ld\n" , k, fun ( k )) ;}2.#include<stdio.h>main(){int i,j,s=0,w=0,p=0;for(i=2;i<=98;i++){s=0;w=0;for(j=2;j<=i;j++)if(i%j==0)s++;for(j=2;j<=i+2;j++)if((i+2)%j==0)w++;if(s==1&&w==1)p++;}printf("亲密素数个数为:%d\n",p);}3.#include<stdio.h>int add(int n){int j,p=0;for(j=1;j<=n;j++)p+=2*j-1;return p;}main(){int n,i,s=0;printf("数列为:S=1+(1+3)+(1+3+5)+…+(1+3+5+…+(2n-1))\n");printf("请输入项数n= ");scanf("%d",&n);for(i=1;i<=n;i++)s=s+add(i);printf("数列n项和s= %d\n",s); }C语言上机考试题(第二十套)1.#include<stdio.h>int fun(int n){return n*(n+1);}main(){int n,i;float s=0;printf("please enter n=");scanf("%d",&n);for(i=1;i<=n;i++)s=s+1.0/fun(n);printf("s=%f\n",s);} 3.#include<stdio.h>#include<math.h>main(){float a,b,c,d,x1,x2;printf("请输入a的值:");scanf("%f",&a);printf("请输入b的值:");scanf("%f",&b);printf("请输入c的值:");scanf("%f",&c);d=b*b-4*a*c;if(d>0){printf("x1=%4.2f\n",(-b+sqrt(d) )/(2*a));printf("x2=%4.2f\n",(-b-sqrt(d)) /(2*a));}elseif(d==0)printf("x1=x2=%4.2f\n",(-b)/(2 *a));else{printf("x1=%4.2f+%4.2fi\n",(-b )/(2*a),sqrt(-d)/(2*a));printf("x2=%4.2f-%4.2fi\n",(-b) /(2*a),sqrt(-d)/(2*a));}}。
程序设计基础(C语言)上机考试题 第一套
程序设计基础(C 语言)上机考试题 第一套2003~2004学年冬学期 2004年2月注意: 1. 请先双击Windows98桌面上的“C 上机考登录”图标,进入“程序设计基础(C语言)上机考试考生登录”框,正确输入或选择你的学号、姓名、学院、教师、考场、试题套号、机号和卷类等。
登录成功,在你考盘中会形成一个文件夹,文件夹名是你的学号。
2. 座机号末位是双数,考A 卷;座机号末位是单数,考B 卷。
3. 源程序必须存入考盘上以你学号命名的文件夹中。
源程序文件名必须为:套号-卷类-题号。
如:2-B -3是第二套B 卷第3题的源程序。
4. 必须严格按题目要求的输出格式来输出。
5. 阅卷时以程序的运行结果为准。
A 卷1.从键盘输入三角形边长,编程计算三角形面积,并输出。
程序要能对不合理输入打印出提示:Input error 。
已知三角形的三边长a ,b ,c ,则该三角形的面积公式为:))()((c s b s a s s area ---= 其中:)(21c b a s ++=2.钢球从100米高处落下,着地后弹起的 最高点为初始高度的2/3,再着地后弹起的最高点仍是上次最高点的2/3,如此继续运动下去。
问第十次弹起的最高点是多少,到第十次触地为止钢球运动经过多少路程。
依次打印输出这两个结果。
3.从键盘输入一个正整数(小于1000),将它表示成1和质因子(即素数因子)的连乘积。
如:输入45,输出45=1*3*3*5。
B 卷1.从键盘输入三角形边长,鉴别出这三角形是等边三角形(输出1)、等腰三角形(输出2)、直角三角形(输出3)、还是任意三角形(输出4),或构不成三角形(输出0)。
2.编程计算分数序列:2/1,3/2,5/3,8/5,13/8,21/13 ……的前20项之和,并输出。
3.从键盘输入一个正整数(大于1000),将它表示成1和质因子(即素数因子)的连乘积。
如: 输入60306,输出60306=1*2*23*23*57。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》过程考核大纲
第一单元类和对象
一、考核目标
主要考察类、对象、类的组合、友元等概念和使用方法,通过考试,使学生掌握类和对象的概念和语法;掌握面向对象的基本概念和对象的使用方法。
掌握构造函数和析构函数的作用和语法。
掌握类的组合,利用组合进行面向对象程序设计,掌握组合情况下的构造和析构函数,掌握友元函数的意义和用法。
二、考核内容
1.类的编写和对象的创建。
2.通过对象调用成员函数。
3.构造函数和析构函数。
4.类的组合,组合时构造函数的调用。
5.友元函数。
6.类的静态成员。
三、考试要求
1.不允许携带U盘和教材等进入考场。
2.考试过程中保持安静,独立按要求完成考试题目。
3.考试结束后,请坐在座位上,等待监考老师确认你的考题之后方可签字离开。
4.在桌面上新建一个文件夹,以“学号+姓名”形式命名,如:20130102张三。
该文件夹中应该包含两个子文件夹(文件夹名分别为:第一题第二题),分别存放两道题的相关工程文件以及测试结果等。
《面向对象程序设计》第一次过程考核A卷
(学号尾号为单数的学生完成A卷)
1.已知一个名为Complex的复数类,这个类包含:
(1)私有成员:实部、虚部,且均为int 型
(2)公有的带默认形参值的构造函数、复制构造函数
(3)公有成员函数Display,其作用为显示复数
要求:
(1)实现满足上述属性和行为的Complex类定义;
(2)设计函数AddComplex,函数AddComplex功能为实现两个复数相加,要求该函数的形参为复数类的常引用;
(3)保证如下主函数能正确运行,
int main(){
Complex c0(2,-3);
Complex c1(c0);
cout<<"c1 is: ";
c1.Display();
Complex c2(3,4);
cout<<"c2 is: ";
c2.Display();
Complex c3;
c3 = AddComplex(c1,c2);
cout<<"c3 is: ";
c3.Display();
return 0;
}
且输出结果如下:
c1 is: 2-3i
c2 is: 3+4i
c3 is: 5+1i
2.2.已知表示点的类CPoint和表示线段的CLine类,
类CPoint包含:(1)表达点位置的私有数据成员x,y
(2)构造函数及复制构造函数
类CLine包含:
(1)两个CPoint的点对象(该两点分别为线段的两个端点)
(2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化)
(3)公有成员函数GetLen,其功能为返回线段的长度
(4)类属性成员count用于记录创建的CLine类对象的个数,及用于显示count 值的ShowCount函数;
要求:
(1)实现满足上述属性和行为的CPoint类及CLine类定义;
(2)保证如下主函数能正确运行,
#include <iostream>
using namespace std;
int main(){
CPoint p1(1,1);
CPoint p2(4,5);
CLine line1(p1,p2);
cout<<"the length of line1 is: "<<line1.GetLen()<<endl;
CPoint p3(0,0);
CLine line2(line1);
cout<<"The count of line is: "<<CLine::ShowCount()<<endl;
return 0;
}
且输出结果如下:
The length of line1 is: 5
The count of Line is: 2
《面向对象程序设计》第一次过程考核B卷
(学号尾号为双数的学生完成B卷)
1. 已知一个名为Complex的复数类,这个类包含:
(1)私有成员:实部、虚部,且均为int 型
(2)公有的带默认形参值的构造函数、复制构造函数
(3)公有成员函数Display,其作用为显示复数
要求:
(1)实现满足上述属性和行为的Complex类定义;
(2)设计函数SubComplex,函数SubComplex功能为实现两个复数相减,要求该函数的形参为复数类的常引用;
(3)保证如下主函数能正确运行,
int main(){
Complex c0(2,-3);
Complex c1(c0);
cout<<"c1 is: ";
c1.Display();
Complex c2(3,4);
cout<<"c2 is: ";
c2.Display();
Complex c4;
c4 = SubComplex(c1,c2);
cout<<"c4 is: ";
c4.Display();
return 0;
}
且输出结果如下:
c1 is: 2+3i
c2 is: 3+4i
c4 is: -1-1i
2.已知表示点的类CPoint和矩形类CRectangle类,
类CPoint包含:(1)表达点位置的私有数据成员x,y
(2)构造函数及复制构造函数
类CRectangle包含:
(1)两个CPoint的点对象(该两点分别为矩形左上角点及右下角点)
(2)构造函数(提示:构造函数中用初始化列表对内嵌对象进行初始化)
(3)公有成员函数GetArea,其功能为返回矩形面积
(4)类属性成员count用于记录创建的CRectangle类对象的个数,及用于显示count值的ShowCount函数;
要求:
(1)实现满足上述属性和行为的CPoint类及CRtangle类定义;
(2)保证如下主函数能正确运行,
#include <iostream>
using namespace std;
int main(){
CPoint p1(1,1);
CPoint p2(4,5);
CRectangle rec1(p1,p2);
cout<<"The area of rec1 is: "<<rec1.GetArea()<<endl;
CPoint p3(2,2);
CRectangle rec2(rec1);
cout<<"The count of rectangle is: "<<CRectangle::ShowCount()<<endl;
return 0;
}
且输出结果如下:
The area of rec1 is: 12
The count of rectangle is: 2。