C语言上机题目 珍藏版

更新时间:2023-12-02 13:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【编程 1-3】编写程序输入圆柱体的底面半径radius和高度height,计算并输出圆柱体的表面积S和体积V。

要求:把π定义为宏PI,结果保留2位小数,按下列格式输出: Radius=???.?? Area=??

volumn=???.??

#include #define PI 3.1416 void main(void) {

float radius; float height; float S; float V;

printf(\请输入圆柱体的底面半径:\ scanf(\ printf(\请输入高度:\ scanf(\

S=2*PI*radius*radius+2*PI*radius*height; V=PI*radius*radius*height;

printf(\ printf(\ printf(\}

【编程 2-3】若某企业根据销售人员的销售额发放提成,计算公式如下(s代表销售额): s<200 没有提成 200≤s<400 提成5% 400≤s<1200 提成8% 1200≤s<2400 提成8% 2400≤s<4000 提成8%

s≥4000

请分别使用if和switch语句结构分别编写程序,实现从键盘上输入销售额,即输出销售额和提成。要求程序具有纠错能力,如输入负数就输出非法数据的提示信息并结束程序。 if…else-if语句 #include #include void main(void) {

float s; float income;

printf(\请输入销售额:\

scanf(\ if(s<0) {

printf(\这是非法数据!\\n\ exit(1); }

else if(s<200) {

printf(\没有提成!\\n\ exit(1); }

else if(s<400)

income=(s-200)*0.05; else if(s<1200)

income=(s-400)*0.08+200*0.05; else if(s<2400)

income=(s-1200)*0.1+800*0.08+200*0.05; else if(s<4000)

income=(s-2400)*0.15+1200*0.1+800*0.08+200*0.05; else

income=(s-4000)*0.18+1600*0.15+1200*0.1+800*0.08+200*0.05; printf(\销售额是:%.0f,提成是:%.0f\\n\}

Switch…case语句 #include #include void main(void) {

float s; float income;

printf(\请输入销售额:\ scanf(\ if(s<0) {

printf(\这是非法数据!\\n\ exit(1); }

if(s<200) {

printf(\没有提成!\\n\ exit(1); }

switch((int)(s/400)) {

case 0:

income=(s-200)*0.05;break; case 1: case 2:

income=(s-400)*0.08+200*0.05;break; case 3: case 4: case 5:

income=(s-1200)*0.1+800*0.08+200*0.05;break; case 6: case 7: case 8: case 9:

income=(s-2400)*0.15+1200*0.1+800*0.08+200*0.05;break; default:

income=(s-4000)*0.18+1600*0.15+1200*0.1+800*0.08+200*0.05;break; }

printf(\销售额是:%.0f,提成是:%.0f\\n\}

【编程 3-4】编写程序输出m~n之间的素数(n>m>3),m和n由用户从键盘上输入。 #include void main(void) {

int m,n,i,j,count=0;

printf(\请输入m,n两个数(n>m>3):\ scanf(\

printf(\~%d之间的素数(n>m>3):\\n\ for(i=m;i<=n;i++) {

for(j=2;j

printf(\ count++;

if(count%8==0) printf(\ } }

printf(\}

【编程 4-3】若数组score[10]中存放了10个人的成绩,请编写程序实现如下功能: (1) 对score数组中的成绩按由高到低排序,并输出排序后的成绩。

(2) 统计低于平均分的人的人数并输出。

要求:10个成绩用rand()函数随机产生,范围为0~100。 #include #include #include void main(void) {

int i,j=0,count=1,score[10],temp; float aver=0;

srand(time(NULL));

printf(\个人的成绩原始排列:\\n\ for(i=0;i<10;i++) {

score[i]=rand()1; printf(\ }

printf(\成绩由高到低排序:\\n\ while(j<10&&count>0) {

count=0;

for(i=9;i>0;i--)

if(score[i]>score[i-1]) {

temp=score[i];

score[i]=score[i-1]; score[i-1]=temp; count++; } j++; }

for(i=0;i<10;i++)

printf(\ printf(\ for(i=0;i<10;i++) aver+=score[i]; aver/=10; count=0;

printf(\低于平均分的成绩排列:\\n\ for(i=0;i<10;i++) if(score[i]

printf(\ count++; }

printf(\低于平均分的人数:%d\\n\}

1. 上机编程

【编程 5-1】编写程序实现从键盘上输入一个整数和一个小数,求他们的乘积并输出(结果保留2位小数)。

要求:数据的输入通过两个一级指针间接操作,求乘积通过一个二级指针间接操作。 #include void main(void) {

int a; float b; int *pa=&a; float *pb=&b; float **ppb=&pb;

printf(\ scanf(\

printf(\ scanf(\

**ppb=*pa**pb;

printf(\}

【编程 5-2】编写程序实现求一维数组(10个元素)的平均值并输出,要求用指针实现。 #include

void main(void) {

int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=a; int i;

float aver=0; for(i=0;i<10;i++) aver+=*(p+i); aver/=10;

printf(\}

【编程 6-2】使用指针编写程序,实现*s1指向的串中指定的字符删除。要求:原始的串和要删除的字符从键盘上输入。 #include void main(void) {

char str[256];//定义一个字符数组用于存储字符串

本文来源:https://www.bwwdw.com/article/ijtt.html

Top