c语言机试经典编程题(重点资料)!!!!!!

合集下载

c面试试题及答案

c面试试题及答案

c面试试题及答案一、自我介绍你好,我是XXX,很高兴有机会参加C面试。

我具备扎实的编程基础和丰富的项目经验,在此次面试中,我将展示我的能力和潜力。

谢谢!二、C语言基础知识1. 请解释C语言中的指针(pointer)是什么?指针是一种变量,它存储了内存地址。

通过指针,我们可以直接访问和修改内存中的数据。

指针的灵活性使得我们可以在C语言中进行高效的内存管理和操作。

2. 请描述C语言中的动态内存分配的过程及对应的函数。

动态内存分配是在程序运行时按需分配和释放内存的过程。

在C语言中,使用malloc函数动态分配内存,使用free函数释放已分配的内存。

具体分配内存的大小和释放内存的时机需要根据具体需求来决定。

3. 什么是结构体(struct)?如何定义和使用结构体?结构体是一种自定义的数据类型,它可以将不同类型的数据按照一定的组织方式打包在一起。

在C语言中,我们可以使用struct关键字定义结构体,并通过点操作符(.)来访问结构体成员。

4. C语言中的位运算符有哪些,分别用于什么场景?C语言中常用的位运算符有按位与(&)、按位或(|)、按位异或(^),它们用于对二进制数进行位级操作。

位运算可以在一些特定场景中提高程序的运行效率,如位掩码、位标记等。

三、编程题请编写一个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, 9, 3, 7};int size = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, size);printf("排序结果:");for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;}```这个程序实现了冒泡排序算法,将数组中的元素按照升序排列,并输出排序结果。

C语言机考习题

C语言机考习题

C语⾔机考习题2010-2011学年第⼀学期程序设计基础机试题库⼀、选择结构程序设计部分1.从键盘接收两个整数,屏幕输出其中较⼤的⼀个。

2.从键盘接收三个整数,屏幕输出最⼤的⼀个。

3.从键盘接收⼀个字母,如果接收的是‘y’或者‘Y’,则输出“正确”。

否则输出“错误”4.从键盘上接收⼀个⼗进制整数,转换成⼆进制输出。

5.从键盘上接收⼀个⼗进制整数,转换成⼋进制输出。

6.从键盘上接收⼀个⼗进制整数,转换成⼗六进制输出。

7.从键盘接收⼀个字符,如果是字母,输出其对应的ASCII码,否则给出提⽰信息“输⼊的不是字母”。

8.从键盘接收⼀个三位数的整数,求出每⼀位数字并按逆序输出,如输⼊的数位123,输出的⼀个数位321。

9.要将“china”译成密码。

密码规律是:⽤原来的字母后⾯第4个字母代替原来的字母。

例如,字母“A”后⾯第4个字母中“E”,⽤“E”代替“A”。

因此,“china”应译为“glmre”。

请编⼀程序,⽤赋初值的⽅法使c1. c2.c3.c4.c5 5个变量的值分别为’c’. ‘h’. ‘i’. ‘n’.‘a’,经过运算,使c1. c2 c3 c4 c5 的值分别变为’G’. ‘I’ . ‘m’‘r’‘e’, 并输出。

10.从键盘接收⼀个⾃然数,判断它是奇数还是偶数。

11.设圆的半径R=1.5,圆柱⾼H=3,求圆周长.⾯积.球表⾯积.球体积.圆柱体积.⽤scanf输⼊数据,输⼊数据,输出计算结果,输出时要求⽂字说明,取⼩数点后2位数字.请编程序。

12.输⼊⼀个华⽒温度,要求输出摄⽒温度,公式为C=5/9(F-32)输出要有⽂字说明,取两位⼩数。

13.编写⼀个程序,求a+|b|,其中a,b为两个整数。

14.编写程序实现交换两个变量的值。

15.从键盘上接收⼀个整数n,判断该数能否同时被3和5整除。

16.从键盘上输⼊⼀个年份,判断是否为闰年。

17.从键盘上输⼊三个数,判断是否可以由他们组成三⾓形,如果能,计算三⾓形的⾯积,否则给出提⽰信息“不能构成三⾓形”。

计算机系C语言编程10题及答案

计算机系C语言编程10题及答案

计算机系C语言编程10题及答案1)/* 输入10个数,分别统计其中正数、负数、零的个数。

*/#include "stdio.h"#define N 10main(){int i,zsum=0,fsum=0,lsum=0;float x;for(i=1;i<=N;i++){printf("请输入第%d个数:",i);scanf("%f",&x);if(x>0)zsum++;else if(x==0)lsum++;elsefsum++;}printf("有%d个正数,%d个负数,%d个零",zsum,fsum,lsum);}2)/* 先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。

(设N为100)*/ #include "stdio.h"#include "stdlib.h"#include "time.h"#define N 100main(){int i,x;randomize();for(i=1;i<=N;i++){x=random(900)+100;printf("%d\t",x);if(x%3==0&&x%5==0&&x%7==0)printf("\n*%d*\n",x);}}3)/* 计算:1/2-2/3+3/4-4/5……,前100项和*/#include "stdio.h"main(){int i,t=1;float sum=0;for(i=1;i<=100;i++){sum=sum+(t*i*1.0)/(i+1);t=-t;}printf("%f",sum);}4)/* 打印出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其各位数字立方之和等于该数本身*/#include "stdio.h"#include "math.h"main(){int i,gw,sw,bw;for(i=100;i<=999;i++)gw=i%10;sw=i/10%10;bw=i/100%10;if(i==pow(gw,3)+pow(sw,3)+pow(bw,3))printf("%d\n",i);}}5)/* 把100~200之间的不能被3整除的数输出。

c语言编程题库100题

c语言编程题库100题

c语言编程题库100题C语言是一门广泛应用于计算机领域的高级编程语言。

对于学习者来说,掌握C语言编程是一项必修课程。

为此,我们为大家整理了100道C语言编程题,供大家练练手,锻炼编程能力。

以下是题目列表:##### 基础篇1、编写一个C程序,输出“Hello, World!”。

2、编写一个C程序,输入两个数,求和并输出结果。

3、编写一个C程序,输入三个数,求平均值并输出结果。

4、编写一个C程序,输入三个数,比较大小并输出最大值。

5、编写一个C程序,输入一个数,判断奇偶性并输出结果。

6、编写一个C程序,输入一个数,判断是否为质数并输出结果。

7、编写一个C程序,输入一个数,判断是否为闰年并输出结果。

8、编写一个C程序,输入一个字符,判断是否为字母并输出结果。

9、编写一个C程序,输入一个数,判断是否为回文数并输出结果。

10、编写一个C程序,输入一个年份和月份,输出该年该月的天数。

##### 数组篇11、编写一个C程序,输入一个整数数组,求所有元素之和并输出结果。

12、编写一个C程序,输入一个数组,找出最大值并输出结果。

13、编写一个C程序,输入一个数组,找出最小值并输出结果。

14、编写一个C程序,输入一个数组,计算平均值并输出结果。

15、编写一个C程序,输入一个数组,判断是否为升序或降序排列并输出结果。

16、编写一个C程序,输入一个数组,将数组元素逆序排列并输出结果。

17、编写一个C程序,输入两个数组,将两个数组合并后按照升序或降序排列并输出结果。

18、编写一个C程序,输入一个数组,输出数组中出现次数最多的元素。

19、编写一个C程序,输入一个数组,删除指定位置上的元素并输出结果。

20、编写一个C程序,输入一个数组和一个数,将该数插入到数组中并输出结果。

##### 字符串篇21、编写一个C程序,输入一个字符串,统计字符串中的字符个数并输出结果。

22、编写一个C程序,输入一个字符串,统计字符串中的单词个数并输出结果。

C语言经典程序100题(完整版)

C语言经典程序100题(完整版)

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

#include "stdio.h"#include "conio.h"main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}getch();}==============================================================【程序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"#include "conio.h"main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0. 1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);getch();}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

C语言编程题带答案

C语言编程题带答案

C语言编程题带答案题目 1:求两个整数的最大值```cinclude <stdioh>int max(int num1, int num2) {if (num1 > num2) {return num1;} else {return num2;}}int main(){int num1 = 10, num2 = 20;int maxValue = max(num1, num2);printf("最大值为: %d\n", maxValue);return 0;}```分析:在这个程序中,我们定义了一个名为`max` 的函数,它接受两个整数参数`num1` 和`num2` 。

通过使用条件判断语句`if` 来比较这两个数的大小,如果`num1` 大于`num2` ,则返回`num1` ,否则返回`num2` 。

在`main` 函数中,我们给定了两个整数`num1` 和`num2` 的值,并调用`max` 函数来获取它们中的最大值,最后使用`printf` 函数将最大值输出到控制台。

题目 2:计算一个整数数组的平均值```cinclude <stdioh>float average(int arr, int size) {int sum = 0;for (int i = 0; i < size; i++){sum += arri;}return (float)sum / size;}int main(){int arr ={10, 20, 30, 40, 50};int size = sizeof(arr) / sizeof(arr0);float avg = average(arr, size);printf("平均值为: %2f\n", avg);return 0;}```分析:在这个程序中,首先在`average` 函数里,我们初始化一个变量`sum` 为 0 ,用于存储数组元素的总和。

c语言机试题库

c语言机试题库1. 编程题一请编写一个C程序,要求实现从键盘输入两个整数,然后计算并输出这两个整数的和、差、积、商以及余数。

```c#include <stdio.h>int main() {int num1, num2;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);printf("和:%d\n", num1 + num2);printf("差:%d\n", num1 - num2);printf("积:%d\n", num1 * num2);if (num2 != 0) {printf("商:%d\n", num1 / num2);printf("余数:%d\n", num1 % num2);} else {printf("除数不能为0!\n");}return 0;}```2. 编程题二请编写一个C程序,要求实现计算一个整数n的阶乘,并输出结果。

```c#include <stdio.h>int factorial(int n) {if (n == 0) {return 1;} else {return n * factorial(n - 1);}}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num < 0) {printf("输入错误,阶乘不存在!\n");} else {printf("%d的阶乘是:%d\n", num, factorial(num));}return 0;}```3. 编程题三请编写一个C程序,要求实现判断一个整数是否为素数,并输出结果。

2012年3月C语言机试

1函数1. 若x=2.5,函数值为:1.917915填空题:【1】x【2】n【3】fabs(t) 改错题:[1]for(i=1;i<=y;i++)[2]t=t%1000编程:double fun(double x){inti=0; double s=1,a=1;while(fabs(a)>0.000001){a=a*(0.5-i)*/(i+1);s+=a; i++; } return s;}11:计算下式,s=,若形参e的值为1e-3,函数的返回值2.985678.填空题:(1)0 (2)i++ (3)2.*i改错题:[1]void fun(char *s, char *t)[2]t[2*d]=0编程题:void fun(char *s,char t[]){ inti=0,j=0; while(s[i]) {if(i%2==1&&s[i]%2==1){t[j]=s[i]; j++;} i++;} t[j]=0;}18. f(x)的前n项之和。

若x=2.5,n=15时,函数值为:1.917914填空题:(1)1 (2)-1 (3)t改错题:(1)for(i=1;i<=3;i++) (2)if(k>=0&&k<=6)编程题:double fun(int n){int i;double s=1,a=1;for(i=1;i<=n;i++){ a=a/i;s+=a;}return s; }24. 函数,若X=2.5函数值为:12.182494。

填空:[1]x [2]n [3]t 改错:[1]d=1;s=o; [2]d=d/10;编程:double fun(double x[9]){int i;double s=0;for(i=0;i<8;i++)s+=sqrt((x[i]+x[i+1]/2);return s;}25. 函数前n项.若X=2.5,函数值为:12.182340.填空:[1]1 [2]1 [3]i改错:[1]k=i; [2]c=k;编程:double fun(double x[10]{int i;double s=0,x1=0;for(i=0;i<10;i++)x1+=x[i];x1/=10;for(i=0;i<10;i++) s+=(x[i]-x1)*(x[i]-x1);s=sqrt(s/10);return s;}27. 前n项的和作为,S=,当形参n的值为10时,函数返回: -0.204491. 填空:[1]1 [2]2*i [3](-1)改错:[1]k++; [2]if(m==k)编程:void fun(int a[],int n,int *max,int *d){int i;for(i=1,*max=a[0],*d=0;i<n;i++){if(*max<a[i]){*max=a[i];*d=i;}}}28. 前n项的和S=,当形参n的值为10时, 函数返回:9.612558.填空:[1]0 [2]n [3](t*t)改错:[1]for(i=0;str[i];i++) [2]if(substr[k+1]==0)编程:double fun(double eps){int i=1;double s=1,a=1;while(a>eps){a=a*i/(2*i+1);s+=a; i++;}return s*2;}34. 若,program函数值:6。

C语言机试试卷及答案

试卷编号:480所属语言:C语言试卷方案:C语言测验试卷总分:100分共有题型:3种一、单选共30题(共计60分)第1题(2.0分)题号:5515 难度:中第8章C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(). A:地址传递B:单向值传递C:由实参传给形参,再由形参传回给实参D:由用户指定的传递方式答案:B第2题(2.0分)题号:5448 难度:中第7章若有说明:int a[10];则对a数组元素的正确引用是().A:a[10]B:a[3,5]C:a(5)D:a[10-10]答案:D第3题(2.0分)题号:5291 难度:中第2章下列程序的输出结果是().main(){char c1=97,c2=98;printf("%d %c",c1,c2);}A:97 98B:97 bC:a 98D:a b答案:B第4题(2.0分)题号:5230 难度:中第2章在C语言中,char型数据在内存中的存储形式是().A:补码B:反码C:原码D:ASCII码答案:D第5题(2.0分)题号:5420 难度:中第6章语句while(!E);中的表达式!E等价于().A:E==0B:E!=1C:E!=0D:E==1答案:A第6题(2.0分)题号:5429 难度:中第6章若i为整型变量,则以下循环执行次数是().for(i=2;i==0;) printf("%d",i--);A:无限次B:0次C:1次D:2次答案:B第7题(2.0分)题号:5526 难度:中第8章C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为(). A:voidB:doubleC:intD:char答案:C第8题(2.0分)题号:5233 难度:中第2章下列标识符中,不合法的C语言用户自定义标识符是().A:printfB:enumC:_D:sin答案:B第9题(2.0分)题号:5540 难度:中第8章下列程序运行结果为:#define P 3#define S(a) P*a*amain(){int ar;ar=S(3+5);printf("\n%d",ar);}A:192B:29C:27D:25答案:B第10题(2.0分)题号:5205 难度:易第1章C语言源程序名的后缀是().A:exeB:cC:objD:cp答案:B第11题(2.0分)题号:5426 难度:中第6章有以下程序段int n=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是().A:p的值不等于12345并且n的值小于3B:p的值等于12345并且n的值大于等于3C:p的值不等于12345或者n的值小于3D:p的值等于12345或者n的值大于等于3答案:D第12题(2.0分)题号:5498 难度:中第8章以下正确的函数定义形式是().A:double fun(int x,int y)B:double fun(int x;int y)C:double fun(int x,int y);D:double fun(int x,y);答案:A第13题(2.0分)题号:5437 难度:中第6章C语言中while和do—while循环的主要区别是().A:While的循环控制条件比do—while的循环控制条件严格B:do—while的循环体至少无条件执行一次C:do—while允许从外部转到循环体内D:do—while循环体不能是复合语句答案:B第14题(2.0分)题号:5400 难度:中第5章int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第15题(2.0分)题号:5406 难度:中第5章以下不正确的定义语句是().A:double x[5]={2.0,4.0,6.0,8.0,10.0};B:int y[5]={0,1,3,5,7,9};C:char c1[]={'1','2','3','4','5'};D:char c2[]={'\x10','\xa','\x8'};答案:B第16题(2.0分)题号:5278 难度:中第2章char a[]="This is a program.";输出前5个字符的语句是().A:printf("%.5s",a);B:puts(a);C:printf("%s",a);D:a[5*2]=0;puts(a);答案:A第17题(2.0分)题号:5435 难度:中第6章执行语句 for(i=1;i++<4;); 后变量 i 的值是().A:3B:4C:5D:不定答案:C第18题(2.0分)题号:5257 难度:中第2章下列数据中,为字符串常量的是().A:AB:"house"C:How do you do.D:$abc答案:B第19题(2.0分)题号:5567 难度:中第10章若有int i=3,*p;p=&i;下列语句中输出结果为3的是().A:printf("%d",&p);B:printf("%d",*i);C:printf("%d",*p);D:printf("%d",p);答案:C第20题(2.0分)题号:5271 难度:中第2章若有说明语句:char c='\72';则变量c().A:包含1个字符B:包含2个字符C:包含3个字符D:说明不合法,c的值不确定答案:A第21题(2.0分)题号:5442 难度:易第6章从循环体内某一层跳出,继续执行循环外的语句是().A:break语句B:return语句C:continue语句D:空语句答案:A第22题(2.0分)题号:5277 难度:中第2章以下不正确的叙述是().A:在C程序中所用的变量必须先定义后使用B:程序中,APH和aph是两个不同的变量C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值答案:D第23题(2.0分)题号:5383 难度:中第4章以下不符合C语言语法的赋值语句是().A:a=1,b=2B:++j;C:a=b=5;D:y=(a=3,6*5);答案:A第24题(2.0分)题号:5507 难度:中第8章以下函数调用语句中实参的个数是().exce((v1,v2),(v3,v4,v5),v6);A:3B:4C:5D:6答案:A第25题(2.0分)题号:5416 难度:中第6章下列程序的输出为().main(){ int y=10;while(y--);printf("y=%d\n",y);}A:y=0B:while构成无限循环C:y=1D:y=-1答案:D第26题(2.0分)题号:5449 难度:中第7章下列字符数组长度为5的是().A:char a[]={'h', 'a', 'b', 'c', 'd'};B:char b[]= {'h', 'a', 'b', 'c', 'd', '\0'};C:char c[10]= {'h', 'a', 'b', 'c', 'd'};D:char d[6]= {'h', 'a', 'b', 'c', '\0' };答案:A第27题(2.0分)题号:5208 难度:中第1章以下叙述中正确的是().A:构成C程序的基本单位是函数B:可以在一个函数中定义另一个函数C:main()函数必须放在其它函数之前D:所有被调用的函数一定要在调用之前进行定义答案:A第28题(2.0分)题号:5451 难度:中第7章int a[10];给数组a的所有元素分别赋值为1、2、3、……的语句是().A:for(i=1;i<11;i++)a[i]=i;B:for(i=1;i<11;i++)a[i-1]=i;C:for(i=1;i<11;i++)a[i+1]=i;D:for(i=1;i<11;i++)a[0]=1;答案:B第29题(2.0分)题号:5256 难度:中第2章在C语言中,int、char和short三种类型数据在内存中所占用的字节数(). A:由用用户自己定义B:均为2个字节C:是任意的D:由所用机器的机器字长决定答案:D第30题(2.0分)题号:5262 难度:中第2章以下数据中,不正确的数值或字符常量是().A:0B:5LC:o13D:9861答案:C二、程序填空共2题(共计20分)第1题(10.0分)题号:333 难度:易第6章/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:下面的程序是求1!+3!+5!+……+n!的和。

c语言经典编程试题12例(带答案)

{
int i,num=0;
float a[10],sum=0.0;
printf("请输入10个数\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
if(i>=0)
{
num++;
sum+=a[i];
}
printf("10个数中非负数的个数为:%d\n",num);
void main()
{
char a[50];
char *p,*q;
printf("请输入一个字符串:");
gets(a);
for(p=a;*p!=0;)
if(*p=='a')
{
q=p;
while(*p)
{
*p=*(p+1);
p++;
}
p=q;
}
else
p++;
printf("%s\n",a);
}
12、一个皮球从100米的高度自由落下,每次落地后反弹回原来高度的一半,再落下,在反弹。求当它第10次落地时,共经过了多少米,第十次反弹多高?
printf("100之内偶数的和位: %d\n",sum);
}
7、求1*2*3+3*4*5+…99*100*101的值。
解题思路:
定义一个变量从1到101,再有标志变量j确定乘够3个数之后便重新开始下一次乘积。跳出循环后加上最后一次乘积。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。

(2)考核内容:主要是算法设计与实现。

考题来自本学期布置的作业、例题及一些补充的题目。

(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。

源程序文件明必须是“学号姓名.cpp”,如“2012216827王梓丞.cpp”。

(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。

不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U 盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。

(5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。

(6)其它有关事项由主考教师和监考人员负责处理。

附:考试题集1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为在大奖赛上获奖而加5分,总分不超过100分。

编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。

#include<stdio.h>void main(){int m,n;printf("请输入考试成绩:\n");scanf("%d",&m);printf("请选择获奖情况:1 获奖;2 未获奖\n");scanf("%d",&n);switch (n){case 1: m=m+5;break;case 2: m;}if(m>100)m=100;printf("你的最终成绩为:%d\n",m);}2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。

(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。

#include<stdio.h>int year,a;void main(){printf("请输入年份月份:");scanf("%d%d",&year,&a);if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)printf("这个月有31天\n");else{if(a==2){if((year%4==0)&&(year%100!=0)||(year%400==0))printf("这个月有29天\n");elseprintf("这个月有28天\n");}elseprintf("这个月有30天\n");}}3.求一元二次方程ax2+bx+c=0的根。

(要考虑a、b、c三个系数不同的取值)#include<stdio.h>#include<math.h>void main(){float a,b,c,d;printf("请输入一元二次方程的三个系数a,b,c:\n");scanf("%f%f%f",&a,&b,&c);if(a!=0){d=b*b-4*a*c;if(d>0)printf("x1=%f,x2=%f",(-b+sqrt(d))/2*a,(-b-sqrt(d)/2*a));elseif(d==0)printf("x1=x2=%f",(-b)/2*a);elseprintf("x1=%f+%fi,x2=%f-%fi",-b/2*a,sqrt(-d)/2*a,-b/2*a,sqrt(-d)/2*a);}elseif(b!=0)printf("x=%f\n",-c/b);elseif(c==0)printf("0=0!\n");elseprintf("%f=0矛盾\n",c);}4.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以根据大奖赛的成绩适度加分。

加分规则是:参赛者加5分,三等奖加15分,二等奖加20分,一等奖加30分,总分不超过100分。

编程序,输入某同学的考试成绩,回答在竞赛中获奖等级,计算并输出该某同学的程序设计课成绩。

#include<stdio.h>void main(){int a,b;printf("请输入你的考试成绩:\n");scanf("%d",&a);printf("请选择你程序设计情况:0 未参加1 参赛2 三等奖3 二等奖4 一等奖\n"); scanf("%d",&b);switch(b){case 0:break;case 1:a=a+5;break;case 2:a=a+15;break;case 3:a=a+20;break;case 4:a=a+30;}if(a>100)a=100;printf("你的最终成绩为:%d",a);}5.高速公路每公里的收费标准按不同种类汽车如下:小汽车(car )0.50 元卡车(truck ) 1.00 元大客车(bus ) 1.50 元编程序,为某高速公路收费站计算各种车辆的收费额。

#include<stdio.h>void main(){float a,c;int b;printf("请选择车辆类型:1 小汽车;2 卡车;3 大客车\n");scanf("%d",&b);printf("请输入车辆行驶的公里数:\n");scanf("%f",&a);\switch(b){case 1:c=0.5*a;break;case 2:c=1.0*a;break;case 3:c=1.5*a;}printf("收费额为:%3f元",c);}6.设计一个模拟单步计算器的程序,设该计算器只能作加、减、乘、除运算。

用户输入形如m#n的算式,其中m、n为运算数,#为运算符。

(需考虑运算符不合法,及除数为0的情况)#include<stdio.h>void main(){float m,n;char ch;printf("请输入运算式:m#n\n");scanf("%f%c%f",&m,&ch,&n);if((ch!='+')&&(ch!='-')&&(ch!='*')&&(ch!='/'))printf("您输入的运算符不合法!\n");else{switch(ch){case '+':printf("%2f",m+n);break;case '-':printf("%2f",m-n);break;case '*':printf("%2f",m*n);break;case '/':{if(n!=0)printf("%2f",m/n);elseprintf("分母为0无意义!\n");}}}}7.编写程序,输入一个4位自然数n,判断n是否是降序数。

降序数是指对于n=d1d2…d k有:d1≥d2≥…≥d k#include<stdio.h>void main(){int n,a,b,c,d;printf("请输入一个四位自然数:\n");scanf("%d",&n);a=n/1000;b=n%1000/100;c=n%100/10;d=n%10;if(a>b&&b>c&&c>d)printf("该四位数为降序数!\n");elseprintf("该四位数不是降序数!\n");}8.编写程序,输入一个5位自然数n,判断n是否对称数。

对称数是指正序和反序读都相等的整数,如96769为对称数。

#include<stdio.h>void main(){int n,a,b,c,d,e;printf("请输入一个五位数:\n");scanf("%d",&n);\a=n/10000;b=n%10000/1000;c=n%1000/100;d=n%100/10;e=n%10;if((a==e)&&(b==d))printf("该五位数为对称数");elseprintf("该五位数不是对称数");}9.编写程序,判断给定的3位数是否为Armstrong数。

Armstrong数是指其值等于它每位数字立方和的数,如153就是一个Armstrong数。

#include<stdio.h>void main(){int n,a,b,c;printf("请输入一个三位数:\n");scanf("%d",&n);a=n/100;b=n%100/10;c=n%10;if(n==a*a*a+b*b*b+c*c*c)printf("该三位数为armstrong数");elseprintf("该三位数不是armstrong数");}10.编写程序,输入一个整数,判断它能否被3、5、7整数,并输出如下信息。

(1)能同时被3、5、7整数。

(2)能同时被两个数整数,并指明是被哪两个数整除。

(3)能被一个数整数,并指明这是哪个数。

(4)不能被所有3个数整除。

#include<stdio.h>void main(){int x;printf("请输入一个整数x:");scanf("%d",&x);if((x%3==0)&&(x%5==0)&&(x%7==0))printf("%d能同时被3、5、7整数\n",x);if((x%3!=0)&&(x%5==0)&&(x%7==0))printf("%d能同时被5、7整数\n",x);if((x%3==0)&&(x%5!=0)&&(x%7==0))printf("%d能同时被3、7整数\n",x);if((x%3==0)&&(x%5==0)&&(x%7!=0))printf("%d能同时被3、5整数\n",x);if((x%3!=0)&&(x%5!=0)&&(x%7==0))printf("%d能被7整数\n",x);if((x%3==0)&&(x%5!=0)&&(x%7!=0))printf("%d能被3整数\n",x);if((x%3!=0)&&(x%5==0)&&(x%7!=0))printf("%d能被5整数\n",x);if((x%3!=0)&&(x%5!=0)&&(x%7!=0))printf("%d不能被3、5、7整除\n",x);}11.邮局寄包裹的费用是根据包裹的重量来收取的。

相关文档
最新文档