人人范文网 范文大全

c语言编程题

发布时间:2020-03-02 09:45:38 来源:范文大全 收藏本文 下载本文 手机版

实验2 数据类型和标准输入与输出

(1)编写程序,输入摄氏温度,转换为华氏温度。转换公式如下: 华氏度 = 32 + 摄氏度 × 1.8 #include \"stdio.h\" void main() { int s;

double h; printf(\"请输入摄氏度\"); scanf(\"%d\",&s); h=32+s*1.8; printf(\"%lf\",h); }

(2)编写一个程序,输入大写字符,转换成对应的小写后输出。

#include \"stdio.h\" void main() { char a,b; printf(\"请输入一个大写字母\"); scanf(\"%c\",&b); a=b+32; printf(\"%c\",a); }

升级版:

#include \"stdio.h\" void main() { char a,b; printf(\"请输入一个大写字母\"); scanf(\"%c\",&b); if(b>\'Z\') printf(\"请重新输入\"); else a=b+32; printf(\"%c\",a);} 升级版:

#include \"stdio.h\" void main() {

char a,b1;

printf(\"请输入一个字母\"); scanf(\"%c\",&b1); if(\'a\'

printf(\"%c\",a);

}

(3)输入一元二次方程的三个系数,计算该方程的根。

/* Note:Your choice is C IDE */ #include \"stdio.h\" #include void main() { double a,b,x1,x2,d,c; printf(\"请输入一元二次方程的三个系数a,b,c\"); scanf(\"%lf,%lf,%lf\",&a,&b,&c); d=b*b-4*a*c; x1=(-b+sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); printf(\"第一个根是%lf,第二个根是%lf\",x1,x2); }

加强版:

#include \"stdio.h\" #include void main() { double a,b,x1,x2,d,c; printf(\"请输入一元二次方程的三个系数a,b,c\\n\"); scanf(\"%lf,%lf,%lf\",&a,&b,&c);

d=b*b-4*a*c; if(d

else { x1=(-b+sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); printf(\"第一个根是%lf,第二个根是%lf\",x1,x2) ;} }

(4)请编一程序,用赋初值的方法使c

1、c

2、c

3、c

4、c5 五个变量的值分别 为’c’、’h’、’i’、’n’、’a’,经过运算,使c

1、c

2、c

3、c

4、c5 分别变为’G’、’l’、’m’、’r’、’e’,并输出,分析是否符合要求。

源代码:

/* Note:Your choice is C IDE */ #include \"stdio.h\" void main() { char c1,c2,c3,c4,c5; c1=\'c\'; c2=\'h\'; c3=\'i\'; c4=\'n\'; c5=\'a\'; printf(\"%c%c%c%c%c\" ,c1,c2,c3,c4,c5); c1=c1-28; c2=c2-28; c3=c3+4; c4=c4+4; c5=c5+4; printf(\"%c\\n\",c1); printf(\"%c\\n\",c2); printf(\"%c\\n\",c3); printf(\"%c\\n\",c4); printf(\"%c\\n\",c5);

实验3-5 选择结构程序设计

}

3、编程判断从键盘上输入的正整数是否既是5又是7的倍数,若是,则输出yes,否则输出no

#include \"stdio.h\" void main() {

} int a,b; printf(\"请输入一个正整数\"); scanf(\"%d\",&a); if(a%5==0&&a%7==0) printf(\"yes\"); else printf(\"no\");

4、输入一个年份,判断是否是闰年?

闰年的条件

能被4整除,但不能被100整除。 能被4整除,又能被400整除 #include void main() {

int a;

printf(\"请输入一个年份\");

scanf(\"%d\",&a);

if((a%4==0&&a%100!=0)||(a%4==0&&a%400==0))

printf(\"是闰年\");

else

printf(\"不是闰年\"); }

5、编写一个程序,从键盘输入三个数a,b,c,编程输出最大的数和最小的数。

#include void main() { int a,b,c,max; printf(\"请输入三个数字\"); scanf(\"%d%d%d\",&a,&b,&c); max=(a>b?a:b); max=(max>c?max:c); printf(\"%d\",max);

用?表达式计算四级成绩是否通过,大于425分则输出通过,否则输出不通过。 源代码:

#include void main() { int a; printf(\"请输入四级成绩\"); scanf(\"%d\",&a); printf(\"%s\",a>425?\"通过\":\"不通过\"); }

2、用?表达式对输入的一个字母进行判断,如果是大写则转换为小写,如果是小写则转换为大写输出。

#include \"stdio.h\" void main() { char a,b; printf(\"请输入一个字母\"); scanf(\"%c\",&a); if(64

{b=(a

else printf(\"请重新输入\"); }

3、从键盘上输入x的值,按下式计算y的值。(要求用两种if结构实现,一种是串行if结构,无论什么数都必须比较三次;一种是多分枝if结构,可以减少比较次数)

x x

#include \"stdio.h\" void main() { double x,y; printf(\"请输入一个x\"); scanf(\"%lf\",&x); if(x=10) y=3*x-11; printf(\"%lf\",y); }

第二种结构

#include \"stdio.h\" void main() { double x,y; printf(\"请输入一个x\"); scanf(\"%lf\",&x); if(x=10) y=3*x-11; printf(\"%lf\",y); }

4、编写程序,给出一个百分制成绩,要求输出相应的等级A、B、C、D、E。90分以上为\'A\',80~89分为\'B\',70~79分为\'C\',60~69分为\'D\',60分以下为\'E\'。(要求用多分枝if结构实现)

#include \"stdio.h\" void main() { int x; char y; printf(\"请输入你的成绩\"); scanf(\"%d\",&x); if(x>90) y=\'A\';

if(x>80&&x

if(x>70&&x60&&x

5、输入三个数,如果能构成三角形,则输出三角形的类型(钝角、锐角、直角),否则输出不能构成三角形。

#include \"stdio.h\" void main() { double a,b,c; printf(\"请输入三角形的三个边\"); scanf(\"%lf%lf%lf\",&a,&b,&c); if(a>b+c||b>a+c||c>a+c) printf(\"不是三角形\"); else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+a*a) printf(\"是直角三角形\"); else if(a*a>b*b+c*c||b*b>a*a+c*c||c*c>b*b+c*c) printf(\"是钝角三角形\"); else if(a*a

printf(\"是锐角三角形\"); }

6、输入三个数a,b,c,要求按由小到大的顺序输出。

#include \"stdio.h\" void main() {

int a,b,c,t; printf(\"请输入三个数\"); scanf(\"%d%d%d\",&a,&b,&c);

if(a>b)

{

t=a;

a=b;

b=t;

} if(a>c) {t=a; a=c; c=t;} if(b>c) {t=b; b=c; c=t;} printf(\"%d %d %d\",a,b,c);

1、运输公司对用户计算运费。

路程(s)越远,每公里运费越低。标准如下:

s<250km

没有折扣

250≤s<500

2%折扣

500≤s<1000

5%折扣

1000≤s<2000

8%折扣

2000≤s<3000

10%折扣

3000≤s

15%折扣 设每公里每吨货物的基本运费为p,货物重为w,距离为s, 折扣为d,则总运费f的计算公式为: f=p*w*s*(1-d)

要求分别用if else if多分支选择结构和switch多分支结构实现。

#include \"stdio.h\" void main() { int p,w,s; double f; printf(\"请由此输入基本运费为p,货物重为w,距离为s\"); scanf(\"%d %d %d\", &p,&w,&s); if(s3000) f=p*w*s*(1-0.15);

printf(\"%f\",f); } 方法2

#include \"stdio.h\" void main() { double p,w,d,f; int s; scanf(\"%lf%lf%d\",&p,&w,&s); switch(s/250) { case 0:d=0;break; case 1:d=0.02;break; case 2: case 3:d=0.05;break; case 4: case 5: case 6: case 7:d=0.08;break; case 8: case 9: case 10: case 11:d=0.1;break; default:d=0.15; } f=p*w*s*(1-d); printf(\"总运费=%f\",f); }

2、编写程序,判断一个学生成绩的R 优、良、中、差R : 假如从键盘输入的字母是‟ A‟ , 输出评语”You are Excellent!”; 如果输入 „B‟ ,输出评语”You are well!” ; 如 果输入‟ C‟ ,输出评语”You are paing!” ; 如果输入‘ D’ ,输出评语“You are notpaing!“ 。 如果输入的不是这四个字母,则出现提示“Input error!” 请编写一个程序,实现该判断功能。要求必须使用switch-case 结构实现。

#include \"stdio.h\" void main() { char a; int b; printf(\"请输入你成绩的等级\"); scanf(\"%c\",&a);

switch(a) { case \'A\': printf(\"You are Excellent!\");

break; case \'B\': printf(\"You are well!\"); break; case \'C\': printf(\"You are paing!\");

break; case \'D\': printf(\"You are notpaing!\"); break; default: printf(\"Input error!\"); break;

} }

3、编写一个简单计算器程序,输入格式为:data1 op data2。其中data1 和data2 是参加运算的两个数,op 为运算符,它的取值只能是+、-、*、/。要求必须使用switch-case 语句实现。

4、用while 完成计算自然数1-N之间的和。要求N从键盘输入,并输出结果。

#include \"stdio.h\" void main() { double s=0; int n,i=0; printf(\"请输入一个整数\"); scanf(\"%d\",&n); while(i

{s=i+s; i++;} printf(\"%f\",s); }

实验6-7 循环结构程序设计

1、分别用while,do while 和for完成计算n!。要求N从键盘输入,并输出结果。

#include \"stdio.h\" void main() { double s=1; int n,i=1; printf(\"请输入一个整数\"); scanf(\"%d\",&n); while(i

{s=i*s; i++;} printf(\"%f\",s); }

2、输入一个正整数n,统计不大于n值的所有偶数的和。(要求必须用do while实现)

#include \"stdio.h\" void main() { int n,i=1; double s=0; printf(\"请输入一个正整数\"); scanf(\"%d\",&n); do { s=2*i+s; i=i+2; }

while(2*i

3、计算 s=1-1/3 + 1/5- 1/7+„1/(2n-1) 的值并输出,(必须使用do while实现)

#include \"stdio.h\" void main() { int n,i=1,t=1; double s=0; printf(\"请输入一个正整数\"); scanf(\"%d\",&n); do { s=t*(1.0/i)+s; t=-1; i=i+2;

}

while(i

4、从键盘输入10个实型数,求其倒数的和并输出。

#include \"stdio.h\" void main() { int i; double s=0,a; printf(\"请输入10个正整数\"); for(i=0;i

printf(\"和为%lf\",s); }

5、编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+„前50 项之和。要求必须 使用for 语句实现。

#include \"stdio.h\" void main() { int i; double s=0;

for(i=1;i

6、输入10 个整数,统计同时能被3 和7 整除的个数,结果存放在变量nCount 中,将nCount 输出。要求必须使用do-while 语句实现。 do While源码:

#include \"stdio.h\" void main() {

int i=1,nCount=0,n; printf(\"请输入10个整数\"); do { scanf(\"%d\",&n); if(n%3==0&&n%7==0) nCount=nCount+1; i++; } while(i

1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3 位数,其各位数字立方和等于该数本身。例如:153 是一水仙花数,因为153=1^3+5^3+3^3.#include \"stdio.h\" void main() {

int i,g,s,b,n=0; for(i=100;i

2、从键盘任意输入一个整数,判断它是否为素数。

#include \"stdio.h\" void main() {

int i,n,k=0; printf(\"请输入一个整数\"); scanf(\"%d\",&n); for(i=2;i

printf(\"%d是素数\",n);}

}

方法2;

#include \"stdio.h\" void main() { int i,m; scanf(\"%d\",&m); for(i=2;i

3、用循环结构程序设计方法,输出一个九九乘法表.

源码:#include \"stdio.h\" void main() { int i,j,s; for(i=1;i

4、从键盘输入10 个整数,统计其中正数、负数和零的个数,并在屏幕上依次输出。要求必须使用while 语句。 #include \"stdio.h\" void main() { int i=1,j=0,s=0,n=0,m; while(i0) j=j+1; else if(m

5、编程求1+(1+2)+..+(1+2+..+n),n 的值由键盘输入。要求使用for 语句实现

源码:

#include \"stdio.h\" void main() { int i,s,t,n; s=0;t=0; scanf(\"%d\",&n); for(i=1;i

实验8-9 数组的应用

(一)

1、从键盘输入10 学生的成绩至数组中,将最低分和最高分的成绩输出,并输出所有成绩。

源码:

#include \"stdio.h\" void main() { int i,n[10],max,min; printf(\"请输入10个整数\"); for(i=0;in[i]) min=n[i]; for(i=0;i

2、定义含有300 个元素的数组x,x[i]=10* tan ((3.0+I*I)/ 5) (i=0,1,2..299),计算该一维数组的平均值,并求出此数组中大于平均值的数据之和,最后输出此数组的平均值及大于平均值的数据之和。

#include \"stdio.h\" #include \"math.h\" void main() { int i; double s,n,a,x[300]; for(i=0;ia) n=n+x[i]; } printf(\"a=%f,n=%f\",a,n); }

3、定义含有300 个元素的数组y,y[i]=10* cos ((3.0+i*i) / 5) (i=0,1,2,…,299),计算一维数组的最大值及其所在位置(即下标),并输出此数组的最大值及其所在位置。

#include \"stdio.h\" #include \"math.h\" void main() { int i,max_i; double y[300],max; for(i=0;i

4、编写程序求出555555 的约数中最大的三位数是多少。要求必须使用do-while 语句实现。

源码:

#include \"stdio.h\" #include \"math.h\" void main() { int n=555555,i=999; do { if(n%i==0)break; else i--; } while(i>=100); printf(\"555555的最大三位数的公约数是i=%d\",i); }}

5、输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出54321。注:1 不得使用数组;2 必须使用while 语句实现。

#include \"stdio.h\" void main() { int n,k; printf(\"请输入整数\"); scanf(\"%d\",&n); while(n) { k=n%10; printf(\"%d\",k); n=n/10; } }

1、从键盘输入10个整数,用起泡法进行排序。

源码:

#include \"stdio.h\" void main() { int a[10],i,j,t; for(i=0;ia[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i

2、有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 二维数组如下:

4 4 34 5 37 3 12 6 5 6 5 7 源码:

#include \"stdio.h\" void main() { int max,i,j,im,jm; int a[3][4]={{4,4,34,5},{37,3,12,6},{5,6,5,7}}; max=a[0][0]; im=0; jm=0; for(i=0;i

3、将一个二维数组行和列元素互换,存到另一个二维数组中并输出这两个矩阵。

原始矩阵如下:

0

3 源码:

#include \"stdio.h\" void main() { int a[3][4]={{1,4,5,6},{3,2,7,8},{7,9,0,3}}; int i,j,b[4][3]; for(i=0;i

for(i=0;i

printf(\"\\n\");} }

4、从键盘输入一个整数,把转换得到的二进制位存放在一维数组中并输出。

源码:

#include \"stdio.h\" void main() { int n,i,j,a[100],t; scanf(\"%d\",&n); t=n; i=0; while(t) { a[i]=t%2; t=t/2; i++; } for(j=i-1;j>=0;j--) { printf(\"%d\",a[j]); } }

5、把200以内的所有素数存放到一维数组中并输出。

源码:

#include \"stdio.h\" void main() { int i,m,j,k; int a[200]; k=0; for(m=199;m>1;m--) { for(i=2;i

if(m%i==0) break; } if(i>=m)

a[k++]=m; } for(j=k-1;j>=0;j--)

printf(\"%d \",a[j]); }

1、从键盘输入长方形的长和宽,计算长方形的面积并输出用*表示的长方形图形。要求面积计算和图形输出分别用函数实现。

源码:

/* Note:Your choice is C IDE */ #include \"stdio.h\" int mianji(int w,int l) //此处的int与return有关,需要携带一个整数返回 { //形参的作用相当于定制式客户提供的尺寸等信息 int area; //函数体内部可以自由使用形参 area=w*l; return area; }

//函数的定义只是一个静态功能,此时不会做任何工作,具体使用要看调用者的函数调用

void printstar(int w,int l) { //void表示函数执行完毕不需要带任何结果回来,不能出现在等号后面,只能单独一条调用语句

int i,j; for(i=1;i

void main() {int len,wid,area; scanf(\"%d%d\",&wid,&len); //mianji(wid,len); //函数名(实参1,实参2)的方式使用函数,就叫函数调用,此时形参分配空间;

//实参的值拷贝给形参;执行函数体语句;最后用return携带结果返回。 area=mianji(wid,len); //把return返回的结果赋值给area变量。只要函数有返回结果,它可以当作表达式来使用, //可以出现在等号后面任何相容的表达式中。 printf(\"area=%d\",area); printf(\"\\n\"); printstar(wid,len);//单独一条调用语句,void函数的标准使用格式 }

2、从键盘输入长方体的长和宽和高,计算长方体的表面积和体积,并在main函数中输出。要求面积计算和体积计算分别用函数实现。

源码:

#include \"stdio.h\" int bmj(int w,int l,int h) //此处的int与return有关,需要携带一个整数返回

{

//形参的作用相当于定制式客户提供的尺寸等信息 int area; //函数体内部可以自由使用形参 area=(w*l+w*h+l*h)*2; return area; }

int tj(int w,int l,int h)

{//形参中的每个变量要分别进行类型定义

int tj=w*l*h; return tj; }

void main() {int len,wid,high,area,vol; scanf(\"%d%d%d\",&wid,&len,&high); area=bmj(wid,len,high); vol=tj(wid,len,high); printf(\"area=%d,vol=%d\",area,vol); }

3、编写一个具有两个整形形参的函数max,返回较大值。在main函数中接受从键盘输入的两个整数,输出较大者。

源码:

#include \"stdio.h\" int maxli(int x,int y) { int max; if(x>y) max=x; else max=y; return max;

} void main() { int max=1,a,b; printf(\"请输入两个整数\"); scanf(\"%d%d\",&a,&b); max=maxli(a,b); printf(\"最大数为%d\",max); }

4、编写一个无参且无返回值的函数,用来打印出所有的“水仙花数”,在、main函数中调用该函数。

所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:153是一水仙花数,因为153=1^3+5^3+3^3.源码:#include \"stdio.h\" void shuixian() {

int i,g,s,b,n=0; for(i=100;i

}

5、通过调用自定义函数来完成求圆柱体的体积(v=3.14*r2*h),要求圆柱体的高和底半径在主函数中做输入,圆柱体的体积在主函数中做输出。

源码:

#include \"stdio.h\" double yuanzhutiji(int r,int h) { double v;

v=3.14*r*r*h; return v;

} void main() { int r,h; double v; printf(\"请输入圆柱体的半径和高\"); scanf(\"%d%d\",&r,&h); v=yuanzhutiji(r,h); printf(\"圆柱的体积是%f\",v);

}

6、通过函数调用求华氏温度,要求在主函数中输入摄氏温度,在主函数中输出华氏温度。(公式f=5/9*c+32)

源码:

#include \"stdio.h\" double huashidu(int c)

{

double h; h=32+c*1.8; return h; } void main() { int c; double h; printf(\"请输入摄氏度\"); scanf(\"%d\",&c); h=huashidu(c); printf(\"%d摄氏度变成华氏度是%f\",c,h); }

4、有两个数组a和b,各有10个元素,将它们对应地逐个相比(即a[0]与b[0]比,a[1]与b[1]比……)。如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大于a数组中相应元素的数目(例如,a[i]>b[i]6次,b[i]>a[i]3次,其中i每次为不同的值),则认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的次数。 要求用函数实现比较并返回结果。 源码:

#include \"stdio.h\" int great(int a,int b) { int f; if(a>b) f=1; else if(a==b) f=0; else f=-1; return f; } void main() { int a[10],b[10],i,j=0,k=0,m=0; printf(\"请输入第一个数组10个元素\\n\"); for(i=0;im) printf(\"数组a大于数组b\"); else printf(\"数组b大于数组a\"); }

界面截图:

5、用选择法对数组中10个整数按由小到大排序。要求主函数输入10个元素存入数组,调用排序函数实现数组元素的排序。

源码:

#include void main() { int s[10]; for (i=0;i

printf(\"%d,s[i]\"); sort(s); printf(\"函数调用后数组元素值\"); for (i=0;i

void sort(int a[10] )

{int i,j,t,b;

for(i=0;i

{if(a[n]>a[j])b=j;}} t=a[i]; a[i]=a[b]; a[b]=t;

}

1、编一函数,统计一维整数组小于数组元素平均值的元素的个数;主函数定义x[50],x[i]=600*cos(i*0.35), 调用函数,输出小于数组元素平均值的元素的个数。 (注:此程序不允许使用全局变量,不允许在avernum函数中输出)

源码:

#include \"stdio.h\" #include \"math.h\" void main() {int avernum(double a[],int n); double x[50]; int i,num; for(i=0;i

int avernum(double a[],int n) {int i,count; double sum,ave; sum=0; for(i=0;i

、求一维整型数组中的最小元素。 要求:主函数定义数组y[50],y[j]=600*sin(j*0.16) (j=0,1,2……49),调用自定义函数qmin求出最小元素,最后在主函数中输出结果。

源码:

#include \"stdio.h\" #include \"math.h\" void main() { double qmin(double a[],int n);

double y[50],min;

int j;

for(j=0;j

y[j]=600*sin(j*0.16);

min=qmin(y,50);

printf(\"最小值为%f\",min); }

double qmin(double a[],int n) {int i; double min; min=a[0]; for(i=0;ia[i]) min=a[i]; } return min;}

3、求一维整型数组中正数的和。 要求:主函数定义数组a[10],从键盘输入十个数,调用自定义函数求出正数的和,然后在主函数中输出结果

源码:

#include \"stdio.h\" #include \"math.h\" void main() { double qsum(double a[],int n);

double a[10],sum;

int j;

for(j=0;j

scanf(\"%lf\",&a[j]);

sum=qsum(a,10);

printf(\"正整数之和是%f\",sum); }

double qsum(double a[],int n) { int i;

double sum;

sum=0;

for(i=0;i

{ if(a[i]>0) sum+=a[i];

} return sum; }

4、编写程序求下式的值:S=2^1*1!+2^2*2!+……+2^n*n!(n

源码:

5、编程验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和,要求用函数实现(选作)

源码:

界面截图:

6、用户从键盘输入一个1—99999之间的数,编写一个函数判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如121

21、3223都是回文数。。(选作)

源码:

1、编一通用函数avermax,计算含有n个数据的一维数组的平均值,并求出此数组中大于平均值的数据之和; 主函数中定义含有300个元素的数组x,x[I]=10* cos ((3.0+I*I) / 5) (I=0,1,2……299),调用上述函数,输出此数组的平均值及大于平均值的数据之和。

(注:此程序不允许使用全局变量,不允许在avermax函数中输出) 源码:

#include #include double avermax(double a[],int n,double *m) { int i; double s,aver; aver=0; for(i=0;iaver) s+=a[i]; } *m=s; return aver; } void main() { double x[300],s,a; int i; for(i=0;i

2、编一通用函数avernum,计算含有n个数据的一维数组的平均值,并统计此数组中大于平均值的数据的个数;

主函数中定义含有100个元素的数组x,x[I]=200*cos(I*0.875)(I=0,1,2……99),调用上述函数,输出此数组的平均值及大于平均值的数据的个数。

(注:此程序不允许使用全局变量,不允许在avernum函数中输出) 源码:

#include #include double avernum(double a[],int n,double *m) { int i; double s,aver; aver=0; for(i=0;iaver) s=s+1; } *m=s; return aver; } void main() { double x[100],s,a; int i; for(i=0;i

3、编一通用函数maxsub,求出含有n个数据的一维数组的最大值及其所在位置(即下标); 主函数中定义含有300个元素的数组x,x[I]=10* cos ((3.0+I*I) / 5) (I=0,1,2……299),调用上述函数,输出此数组的最大值及其所在位置。

(注:此程序不允许使用全局变量,不允许在avermax函数中输出) 源码:

#include #include double maxsub(double a[],int n,double *m) { int i,t,max=a[0]; for(i=0;imax) {max=a[i]; t=i;} } *m=t; return max; } void main() { double x[300],s,a; int i; for(i=0;i

4、编写函数,实现任何整形数组元素的逆置。在主函数调用该函数,完成10个数组元素的逆置。

源码:#include \"stdio.h\" void inverse(int a[],int n) { int i,j,m,t; j=n-1; m=(n-1)/2; for(i=0;i

界面截图:

5、编写程序求下式的值:S=2^1*1!+2^2*2!+……+2^n*n!(n

源码:

#include \"stdio.h\" int nj(int n) { int i=1,s=1; while(i

界面截图:

1、复制下面的程序并运行,观察程序运行的结果,并分析原因(注意程序第2行中有些单引号之间是空格)。

/*

c8-1.c

字符数组的输出*/ #include \"stdio.h\" void main( ) { char a[10]={ ’I’, ’ ’, ’a’, ’m’, ’ ’, ’a’, ’ ’, ’b’, ’o’, ’y’}; printf(\"%s\\n\",a); } 将字符数组a的大小改为11,再运行程序,并将结果与修改前的结果进行比较,分析原因。

界面截图:

结果不一致的原因:%s只针对字符串有效,以’\\0’结束的串或字符数组

2、用gets函数从键盘接收一行字符串,自定义函数strlength计算字符串的长度。 源码: #include #include int strlength(char t[]); void main() {

char s[80];

int len;

gets(s);

len=strlength(s);

printf(\"len=%d\",len); } int strlength(char t[]) { int i; i=0; while(t[i]!=\'\\0\') {i++;}

return i;

}

界面截图:

调用字符串库函数完成同样的功能。 源码:

#include #include void main() {

char s[80];

int len;

gets(s);

len=strleng(s);

printf(\"len=%d\",len); }

界面截图:

3、按照要求编写程序:有一行文字,不超过80个字符,分别统计出其中英文大写字母、小写字母、数字、空格、及其它字符的个数。 源码:

#include #include void count(char *t); void main() {

char s[80];

gets(s);

count(s); }

void count(char *t) {

int u,l,b,d,q ;

u=l=b=d=q=0;

while(*t!=\'\\0\')

{

if(*t>=\'A\'&&*t

else if(*t>=\'a\'&&*t

else if(*t>=\'0\'&&*t

else if(*t==\' \') b++;

else q++;

t++;

}

printf(\"大写字母个数是%d\\n\", u );

printf(\"小写字母个数是%d\\n\",l);

printf(\"数字个数是%d\\n\", d);

printf(\"空格个数是%d\\n\", b);

printf(\"其他个数是%d\\n\",q);}

4、自己定义一个函数strconnect,实现字符串的连接。在主函数中进行测试。

源码:

#include #include void stringcopy(char *s,char *t); void main() {

char s[80],t[40];

gets(s);

gets(t);

stringcopy(s,t);

printf(\"链接后的字符串为%s\",s); }

void stringcopy(char *s,char *t) {

while(*s++!=\'\\0\');

s--;

while(*t=\'/0\')

*s++=*t++;

*s=\'\\0\'; }

5、编写一个函数,把字符串的所有小写字符转换成大写字符。并在主函数中测试。 源码:

界面截图:

6、自己定义一个函数stringcopy,实现字符串的复制。在主函数中进行测试。 源码:

界面截图:

调用字符串库函数完成同样的功能。

源码:

界面截图:

1、用结构体数组建立一张班级成绩单,包括每个学生的姓名、英语、数学、语文三门课程的成绩。用函数编程实现下列功能:

(1) 输入每个学生的各项信息。

函数源码:

#include #include typedef struct grade {char name[20]; int yw; int sx; int yy; } student; void input(student s[],int n) { int i; for(i=0;i

}

void print(student s[],int n) { int i; printf(\"\\t姓名\\t语文\\t数学\\t英语\\n\"); for(i=0;i

printf(\"please input sx\");

printf(\"please input yy\"); printf(\"\\n\"); scanf(\"%d\",&s[i].yw); scanf(\"%d\",&s[i].sx); scanf(\"%d\",&s[i].yy); }

void main() {

界面截图:

(2) 输出每个学生的各项信息。 函数源码:

界面截图:

(3) 修改指定学生的指定数据项的内容。 函数源码:

界面截图:

(4) 统计每个同学的平均成绩(保留2位小数)。 函数源码:

界面截图:

(5) 输出各位同学的学号、姓名、三门课程的总成绩和平均成绩。 函数源码:

界面截图:

student stu[5]; int i; input (stu,5); print(stu,5);

c语言编程题答案

C语言期末考试编程题

C语言编程

C语言经典编程题(推荐)

c语言编程大题

c语言编程练习

c语言编程心得体会(全文)

C语言编程期末试题答案

C语言编程自我总结

《高质量c语言编程》读后感

c语言编程题
《c语言编程题.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档