C语言程序设计实验及代码

更新时间:2023-08-09 02:24:01 阅读量: 综合文库 文档下载

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

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

西南林业大学

C语言程序设计实验题、代码、输出结果

编写目的:学生的痛,大家都明白,特别是学渣的痛。呃,不过我渐渐从学渣成功逆袭,所以最

后才会整理下这些信息,为了让后面的人在面对这C语言时不会那么脑大,不用像我们开始时候的茫然。 认真享受在课堂上GET知识的过程,接下去的事:作业考试也是水到渠成的事情,有的课程的却要花点时间,但就像那句话说的:No pain,no get. 付出不一定会有收获,但是不付出一定会让你后悔。所以,认真听课,不仅仅只是C语言,还有其他的课程。

实验题目及代码、输出结果

实验题目目录

目录 P1-----------------------P6

Printf简单输出三角形-------------------------------------------------------P6

给定圆半径值为5,编程求圆面积和圆周长---------------------------P6

编写一个摄氏温度与华氏温度之间的转换程序-------------------P6

编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。-----------P7(有主函数子函数----------P26)

使用两种指定的方法打印正三角形数阵-----------------------------P7

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推),然后求3个整数的平均值。-------------------------------------P8

从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。------------------------P8(指针变量----------------P19)

输入三角形的三条边长,求三角形的面积。--------------------P9

从键盘任意输入3个整数,选出其中的最大数并打印。--P10

从键盘输入三个正整数,判断否能构成三角形的三边?---P10

从键盘输入一个合法的算术运算符(+、-、*、/)及两个实数,使用if语句编写程序,根据输入的运算符判断对这两个实数进行何种运算,并打印运算结果(要求结果保留两位小数)。---------------------P11(有主函数子函数------------------P21)

从键盘输入一个年份和一个月份,使用switch语句编程判断并打印该月的天数-----------------------------------------------P12

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

从键盘输入1个整型的分数,使用switch语句编程,判断如果分数介于0 ~ 59分之间就打印“不及格”;如果介于60 ~ 79分之间就打印“及格”;如果介于80 ~ 89之间就打印“良好”;如果介于90 ~ 100之间就打印“优秀”。----------------------------------P13

使用while语句编程求100以内能被5整除但不能同时被7整除的数,并统计找到的数的个数。-----------------------------------P13

从键盘输入一个正整数,使用while语句编程求该整数是一个几位数。---------------------------------------------------------------------------P14

使用while语句编程求an= n1n项和---------------------------P14

n1

使用for语句编程求an= n1 的前n项和--------------------------P15

使用for语句编程求an=

使用for语句的嵌套结构编程打印九-九乘法表--------------------P16

定义一个大小为10的整型一维数组,初始化所有数组元素,编程查找数组中的所有奇数,并统计奇数的个数-----------------P17

1

i=0n

n项和-----------------------------P16

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

定义一个大小为10的整型一维数组,初始化其中的9个元素,这9个元素已经按照降序排列。从键盘再输入1个整数,将该整数插入到已有的元素中,需保证这10个数仍然按照降序排序。--------------------------------------------------------------P18

利用指针编程,其功能是求电阻的并联值和串联值。---------P18

利用指针编程,其功能是利用“除号”和“求余号”将输入的两个两位的正整数组合成一个新的四位的正整数。---------P16

定义一个大小为10的整型一维数组并初始化数组元素,再定义一个指针变量让其指向该数组,利用指针编程查找数组中的所有奇数。--------------------------------P20

输入三角形的三条边长,定义一个子函数fun( )求三角形的面积--------------------P21

定义一个子函数fun( )打印菱形。--------------------P22

定义一个子函数fun( ),其功能是求1累加到100的和-----------P23

1定义一个子函数fun( ) ,求表达式an=的前n项和---------P23

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

定义一个fun( )函数,其功能是:求两个整数的和、差、积、商。----------------P26

在主函数中输入一元二次方程ax2+bx+c=0的三个系数a、b、c,求方程的实根。定义三个子函数 fun1( )、fun2( )、fun3( ) 分别处理方程有无实根、有两个相同实根、有两个不同实根的情况----------------------------------------------------------------P27

从键盘上输入一个的字符串,输出所有ASCII码为奇数的字符,并统计这些字符的个数。------------------------------P28

从键盘上输入一个由大写字母、小写字母、数字字符、其它字符构成的字符串,统计字符串中的大写字母个数、小写字母个数、数字字符个数、其它字符个数。------------------------------P28

从键盘输入两个字符串,分别存到字符数组a和字符数组b中,编程将第二个字符串连接到第一个字符串末尾,形成一个新字符串。(不使用#include<string.h>库函数)-----------------------P29

使用while语句编程求an=从0开始)前n项值,直到某一项

n!

xn

的值小于10-6就结束循环。------------------------------------------P30

使用for语句的嵌套结构编程打印行数为奇数的对称三教菱形

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

----------------------------------------------P31

从键盘输入一个正整数x,编程求比x大的,最临近x的n个素数,例如,为x和n分别输入数值10和15,就表示求出比10大的,最临近10的15个素数。--------------------------------------------------P31

题目及答案

printf( )函数的编程练习——格式1 编程输出如图所示的三角形。

void main() { printf("*\n "); printf("**\n "); printf("***\n "); printf("****\n "); }

给定圆半径值为5,编程求圆面积和圆周长 提示:

(1)本题需定义三个浮点型变量,如 double r = 5, s, l; (2)输出浮点型数据的格式说明符是 %lf

(3)C语言中没有∏这个符号,编写程序时直接使用3.14159 (4)C语言中没有求次方的运算符,求次方可用连乘的方法

#include<stdio.h> #define PI 3.14159 int main() { float r=5; printf("圆半径=%lf\n圆面积=%f\n圆周长=%f\n",r,PI*r*r,2*PI*r);

}(其中一个数的n次方可以用数学运算来算pow(r,n),“r”为底数,n为次数)

scanf( )函数、运算符编程练习

编写一个摄氏温度与华氏温度之间的转换程序,转换

9公式是: F C 32

提示:该公式中的“5C”是一个从键盘输入的已知量;“F”是通过公式计算并打印出来的未知量。

#include <stdio.h>

void main()

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

double F,C; printf("请输入一个摄氏温度值:",C); scanf("%lf",&C); F=1.8*C+32;//或F=9/5*C+32若定义类型为int,则需要变为F=9.0/5*C+32或F=9/5.0*C+32或用强制类型转换F=(double)(9/5)*C+32;原因是除号“/”在运算时为整型运算 printf("对应的华氏温度值是:%.2lf",F); }

编写程序,从键盘上输入两个电阻值,求它们并联电阻值和串联电阻值,输出结果保留两位小数。运行结果如图所示: 注:并联和串联的电阻值计算公式如下。

R1*R2

(1)并联电阻 RP = R1+R2

(2)串联电阻 RS = R1+R2 提示:

(1)scanf( )函数可以写成 scanf("%d,%d", &r1, &r2); (2)结果保留两位小数的格式说明符是“%.2lf”。

#include <stdio.h> void main() {

double R1,R2,RP,RS; printf("请输入两个电阻值:",R1,R2); scanf("%lf,%lf",&R1,&R2); RP=(R1*R2)/(R1+R2); RS=R1+R2;

printf("并联电阻值:%.2lf \n串联电阻阻值:%.2lf",RP,RS); }

字符的输入和输出

1、使用两种指定的方法打印如图所示图形。

方法一:使用printf( )函数的“%c”格式打印图形。 提示:一个“%c”只能打印一个字符。 方法二:使用printf( )函数的“%d”格式打印图形。

方法一:

#include<stdio.h> void main() { printf("%4d\n %4d\n %d\n",1,222,33333); }

方法二:

#include<stdio.h>

void main() {

char a,b,c; a='1'; b='2'; c='3'; printf(" %c\n", a);

printf(" %c%c%c\n", b,b,b);

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

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

方法二的类似(运用ASCLL码) #include<stdio.h> void main() {

int a,b,c; a=49; b=50 c=51;

printf(" %c%c%c\n", b,b,b);

printf("%c%c%c%c%c\n",c,c,c,c,c); }

1、从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推),然后求3个整数的平均值。运行结果如图所示:

提示:本题的变量定义可参考如下:

char a, b, c; //变量a,b,c保存输入的3个数字字符

int x, y, z; //变量x,y,z保存转换后的3个整数

double aver; //变量aver保存求出的平均值

#include<stdio.h> #include<math.h> void main(void) {

double a,b,c,d;

printf("请输入三个数字字符:"); scanf("%lf,%lf,%lf",&a,&b,&c); d=(a+b+c)/3;

printf("平均值=%lf\n",d); }

从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。例如:输入12和34,组装成的四位数是1324。运行效果如右图所示: 提示:

(1)首先利用“除号”和“求余号”分别把两个两位正整数的十位数、个位数分离开;再经过数学运算组装成一个四位数。 (2)scanf( )函数可以写成 scanf("%d%d", &a, &b);

#include<stdio.h> #include<math.h> void main(void) {

int a,b,z;

#include <stdio.h> void main(void) { char a,b,c; int x,y,z; double aver; printf("请输入三个数字字符:"); scanf("%c,%c,%c",&a,&b,&c); x=a-48; y=b-48; z=c-48; aver=(x+y+z)/3.0; printf("平均值为:%2lf",aver)

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

printf("请输入两个两位数的正数:"); scanf("%d %d",&a,&b);

z=a/10*1000+b/10*100+a%10*10+b%10; printf("合成的四位正整数是:%d\n",z); }

数学函数的使用

1、输入三角形的三条边长,求三角形的面积。运行结果如图所示: 提示:

(1)本题的变量定义可参考如下:

int a, b, c; double x, s;

(2)scanf( )函数可以写成

scanf("%d,%d,%d", &a, &b, &c);

(3)计算三角形面积的公式是:

1 x (a b c)其中

s x(x a)(x b)(x c)2

(4)求x的开方值的库函数是 sqrt(x),使用时需包含头文件 math.h

#include<stdio.h> #include<math.h> void main(void) { int a,b,c; double x,s; }

printf("请输入三角形的三边:"); scanf("%d %d %d",&a,&b,&c); x=(a+b+c)/2;

s=sqrt((x-a)*(x-b)*(x-c)*x); printf("s=%lf\n",s);

单分支if语句编程练习

从键盘任意输入3个整数,选出其中的最大数并打印。

提示:

(1) 要判断最大数,需对每两个数作两两比较。 (2) 可以使用3个单分支if语句编写程序。

(3) 从键盘输入2个整数到变量a、b中,编程总是把较小的数放入a中,较

大的数放入b中。

#include <stdio.h> void main() {

int a,b,c,t;

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

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\n",a); }

#include <stdio.h>

void main() { int a,b,t; printf("请输入两个整数到变量a,b中"); scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); if(a>b) { t=a; a=b; b=t; printf("运行结果:a=%d,b=%d\n",a,b); } else printf("运行结果:a=%d,b=%d\n",a,b); }

从键盘输入三个正整数,判断否能构成三角形的三边?如果能,就按照以下提示的数学公式计算三角形的面积;如果不能,就输出“不能构成三角形”的提示信息。提示:

(1) 该题属于“双分支if-else语句”结构。

(2) 能构成三角形的逻辑条件是:任意的两边之和均要大于第三边。 (3) 计算三角形面积的公式是:

1 x (a b c)其中 s x(x a)(x b)(x c) 2

(4)本题的变量定义可参考如下:int a, b, c; double x, s;

(5)本题要用到求x开方值的数学库函数sqrt(x),需包含头文件 math.h

#include<stdio.h> #include<math.h> void main(void) { int a,b,c,m,n,t; double x,s; printf("请输入三角形的三边:"); scanf("%d %d %d",&a,&b,&c); m=a+b; n=b+c; t=a+c; if(m>c&&n>a&&t>b) { x=(a+b+c)/2; s=sqrt((x-a)*(x-b)*(x-c)*x); printf("构成的三角形面积是:%.2lf\n",s); } else printf("不能构成三角形\n");

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

}

从键盘输入一个合法的算术运算符(+、-、*、/)及两个实数,使用if语句编写程序,根据输入的运算符判断对这两个实数进行何种运算,并打印运算结果(要求结果保留两位小数)。程序运行效果如下图所示:

提示:

(1)该题属于“多分支if语句”结构。 (2)本题的变量定义可参考如下:

char fu; //fu变量用来存放运算符

double x, y, z; //x、y变量用来存放输入的2个实数,z存放运算结果 (3)输入字符型数据的格式说明符是 %c,实型数据的格式说明符是 %lf。 (4)输出实数保留2位小数的格式说明符是 %.2lf。

(5)本题可参考教材P61例3.7,但是不允许使用switch语句编写该题程序。

#include<stdio.h> void main() { char fu; double x,y,z; int t,a; printf("请输入一个算数运算符和两个浮点数"); scanf("%c %lf %lf",&fu,&x,&y); t=47-fu; if(t==4) { z=x+y; printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z); } else if(t==5) { z=x*y; printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z); } else if(t==2) { z=x-y; printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z); } else if(t==0) { z=x/y; printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z); } else printf("运算符非法,无法参与运算\n"); }

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

从键盘输入一个年份和一个月份,使用switch语句编程判断并打印该月的天数。程序运行效果如下所示: 提示:

(1)本题先使用if语句判断年份和月份是否有效。

(2)如果年份和月份有效,再嵌套switch语句判断每个月份的天数。

(3)对于2月份的处理需要判断闰年,闰年的判断方法请参考教材P62例3.8。

#include<stdio.h> void main() { int year,month,day; printf("请输入一个年份和一个月份:"); scanf("%d %d",&year,&month); if(month>0&&month<=12) { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("%d月有31天\n",month); break; case 4: case 6: case 9: case 11: printf("%d月有30天\n",month); break; default: if((year%4==0&&year%100!=0)||(year%400==0)) printf("2月有29天\n"); else printf("2月有28天\n"); break; } } else printf("输入的月份值无效!"); }

从键盘输入1个整型的分数,使用switch语句编程,判断如果分数介于0 ~ 59分之间就打印“不及格”;如果介于60 ~ 79分之间就打印“及格”;如果介于80 ~ 89之间就打印“良好”;如果介于90 ~ 100之间就打印“优秀”。

#include<stdio.h> void main()

{

int a,b;

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

printf("请输入一个分数介于<0 ~ 100>间:"); scanf("%d",&a); if(a>0&&a<=100) { b=a/10; switch(b) { case 6: case 7: printf("及格\n"); break; case 8:

}

case 10:

printf("优秀\n"); break; default:

printf("不及格\n");

break;

} } else

printf("输入的分数份值无效!\n");

printf("良好\n"); break; case 9:

使用while语句编程求100以内能被5整除但不能同时被7整除的数,并统计找到的数的个数。 提示:

(1)该题变量可定义为:int i=1, n=0; // i 是循环变量, n是统计个数的变量 (2)整除问题应使用求余号“%”,而不能使用除号“/”。

#include<stdio.h> void main() { int i,n,b,c; i=1; n=0; printf("100以内能被5整除但不能同时被7整除的数是:\n"); while(i<=100) { b=i%5; c=i%7;

\n",n); }

{ }

if(b==0&&c!=0) printf("%d ",i); n=n+1;

i++;

}

printf("符合条件的数有%d个

从键盘输入一个正整数,使用while语句编程求该整数是一个几位数。程序运行效果如下所示: 提示:

(1)该题变量可定义为 int x, n=0, m; 其中,x保存输入的正整数,n统计位数,m暂存x的值。 (2)每次循环将x的值缩小10倍,直到x缩小为0即结束循环,循环次数就是整数的位数。

#include<stdio.h> void main() {

int x,n,m,i;

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

}

printf("请输入一个正整数:");

scanf("%d",&x); i=x;

while(m!=0) { m=x/10; n++; x=m; }

printf("%d 是一个 %d 位数\n",i,n);

使用while语句编程求以下表达式的值,程序运行结果如图所示:

sum 1

111 ... 1 21 2 31 2 ... 10

提示:

(1)该题变量可定义为:int i;

double mu, t, sum;

(2)本题的循环体里有3个通式:①分母的通式、②当前项的通式、③求和的通式、④i自增的通式。

#include<stdio.h> void main() { int i; double mu,t,sum; mu=1; t=0; i=1; while(i<=10) {

}

sum=1/mu+t; t=sum; i++; mu=mu+i; }

printf("表达式的值为:\n"); printf("sum= %f\n",sum);

for语句编程练习

1、使用for语句编程求以下表达式的值,如果从键盘输入20赋值给变量n,则运行效果如图所示: 提示:

(1)该题变量可定义为int i, n; double t, sum;

(2)本题需用到求开方值的数学函数sqrt( ),并包含头文件 math.h

S 1 (1 2) (1 2 3)

(1 2

#include<stdio.h>

#include<math.h> void main() {

3 n)

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

}

double t,sum,b=0;

printf("请输入整数值:"); scanf("%d",&n);

sum=0;

for(i=0;i<=20;i++) { t=sqrt(i,2); b=b+t; sum=sum+b; }

printf("sum=%lf\n",sum);

使用for语句编程求以下表达式的值,程序运行结果如图所示:

111

sum 1 ...

1 21 2 31 2 ... 10

提示:

(1)注意观察可知相邻两项中,后一项的分母是前一项的分母加 i 值。 (2)该题变量可定义为:int i;

double mu, t, sum;

其中i是循环变量,mu保存每一次循环的当前项的分母,t保存每一次循环的当前项,sum保存N项式的总和。

#include<stdio.h> void main() { int i; double t=0,sum=0,mu=0; for(i=1;i<=10;i++) {

}

mu=mu+i; t=1/mu; sum=sum+t; }

printf("表达式值为:\n"); printf("sum = %lf\n",sum);

循环的嵌套编程练习

使用for语句的嵌套结构编程打印九-九乘法表,程序运行效果如图所示:

#include<stdio.h> void main() { int i,m,n;

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

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

}

}

for(m=1;m<=i;m++) { n=i*m;

printf("%d*%d=%d ",m,i,n); } printf("\n");

定义一个大小为10的整型一维数组,初始化所有数组元素,编程查找数组中的所有奇数,并统计奇数的个数。运行效果如图所示: 提示:

(1) 本题变量定义可参考如下

int a[10]={2,4,5,6,9,11,13,16,17,19}, i, sum=0; (2) 首先用一个for循环打印10

(3) 再用一个for循环嵌套if

(1)源程序粘贴在此处。 #include<stdio.h> //#define N 10 void main() { int a[10]={2,4,5,6,9,11,13,16,17,19}, i,n=0; printf("数组中的初始值是:"); for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n"); printf("\n");

}

printf("数组中的奇数是:"); for(i=0;i<=10;i++) {

if(a[i]%2!=0) { printf("%d ",a[i]); n++; } }

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

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

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

定义一个大小为10的整型一维数组,初始化其中的9个元素,这9个元素已经按照降序排列。从键盘再输入1个整数,将该整数插入到已有的元素中,需保证这10个数仍然按照降序排序。程序运行效果如下图所示: 提示:

(1)本题变量定义可参考如下

int a[10]={ 20, 18, 15, 12, 10, 9, 7, 5, 2}, i, j, t;

(2)本题使用冒泡法排序,先将键盘输入的1个整数放到数组元素a[9]中,然后使用排序算法对这10个数进行降序排序。

#include<stdio.h> //#define N 10 void main() { int a[9]={ 20, 18, 15, 12, 10, 9, 7, 5, 2}; int i,j,t;

printf("数组中前面9个元素是:\n"); for(i=0;i<9;i++) { printf("%d ",a[i]); } printf("\n"); printf("\n"); printf("请输入一个整数:"); scanf("%d",&a[9]); printf("\n"); printf("数组中的10个元素是:\n"); for(i=0;i<10;i++) { printf("%d ",a[i]);

}

printf("\n"); printf("\n"); for(i=0;i<10;i++) { for(j=0;j<9-i;j++) { if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } printf("降序排序后的整数为:"); for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n");

利用指针编程,其功能是求电阻的并联值和串联值。程序运行效果如图所示:

要求:输入电阻值;计算并联串联值;打印结果都必须使用指针完成。 提示:

(1)该题的变量可定义为

int r1, r2, *p1, *p2; double rp, rs, *pp, *ps;

其中指针p1、p2用来指向并操作变量r1、r2;指针pp、ps用来指向并操作变量rp、rs。

(2)在利用指针编程之前,应将指针指向对应的变量。

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

#include<stdio.h> void main() {

int r1, r2, *p1, *p2; double rp, rs, *pp, *ps;

printf("请输入两个电阻值"); scanf("%d %d",&r1,&r2); p1=&r1; p2=&r2;

rp=(double)(*p1 * *p2) / (double)(*p1 + *p2); rs=*p1+*p2;

pp=&rp; ps=&rs;

printf("并联电阻组织 = %lf\n",*pp); printf("串联电阻组织 = %lf\n",*ps); }

利用指针编程,其功能是利用“除号”和“求余号”将输入的两个两位的正整数组合成一个新的四位的正整数。

要求:输入整数值;计算;打印结果都必须使用指针完成。 提示:该题的变量可定义为

int a, b, c, *pa, *pb, *pc;

其中指针pa、pb、pc分别用来指向并操作变量a、b、c。变量a、b用来存放输入的两个两位正整数,变量c用来存放组合后的四位的正整数。

{方法一}

#include<stdio.h> void main() {

int a,b,c,*pa,*pb,*pc; printf("请输入两个两位数的正整数:"); scanf("%d %d",&a,&b); pa=&a; pb=&b; c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10; pc=&c; printf("组合成的四位正整数是:%d\n",*pc); }

{方法二}

#include<stdio.h> void main() { int a,b,c,*pa,*pb,*pc; printf("请输入两个两位数的正整数:"); pa=&a; pb=&b; scanf("%d %d",pa,pb); c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10; pc=&c; printf("%d\n",*pc);

} // Int前不能空行,不然无法识别。

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

定义一个大小为10的整型一维数组并初始化数组元素,再定义一个指针变量让其指向该数组,利用指针编程查找数组中的所有奇数。运行效果如图所示: 提示:

(1) 该题变量可定义为

int a[10]={2,4,5,6,9,11,13,16,17,19}, *p, i;

(2)在使用指针编程之前,应先将指针p指向数组。

要求:使用“下标法”编程,即使用“p[i]”的形式引用数组元素。

[方法一]#include<stdio.h> void main() { int

a[10]={2,4,5,6,9,11,13,16,17,19},*p,i,n=0; p=&a[i];(p=a;) printf("数组中的初始值是:"); for(p=a,i=0;i<10;i++) (for(i=0;i<10;i++)) { printf("%d ",p[i]); } printf("\n"); printf("\n"); printf("数组中的奇数是:"); for(p=a,i=0;i<=9;i++) (for(i=0;i<=9;i++)) { if(p[i]%2!=0) { printf("%d ",p[i]); n++; } } printf("\n"); printf("\n"); printf("奇数个数是:%d\n",n);

[方法二]

#include<stdio.h> void main() { int

a[10]={2,4,5,6,9,11,13,16,17,19},*p,i,n=0; p=a; }

printf("数组中的初始值是:"); for(i=0;i<10;i++) { printf("%d ",p[i]); } printf("\n"); printf("\n"); printf("数组中的奇数是:"); for(i=0;i<=9;i++) { if(p[i]%2!=0) { printf("%d ",p[i]); n++; } }

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

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

输入三角形的三条边长,定义一个子函数fun( )求三角形的面积。运行结果如图所示: 要求:

(1)数据输入和结果打印都必须在main( )函数中完成。 (2)fun( )函数的功能是求三角形的面积。 提示:

(1)计算三角形面积的公式是:

1

x (a b c)

2

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

s x(x

a)(x b)(x c)

其中

计算x的开方值的库函数是 sqrt(x),使用时需包含头文件 math.h (2)fun( )函数的函数首部可参考如下

double fun(int a, int b, int c) //该函数有3个形参,返回值类型为double

#include<stdio.h> #include<math.h>

double fun(int a,int b,int c) { double m; double d,s; d=(a+b+c)/2; s=sqrt((d-a)*(d-b)*(d-c)*d); return(s); }

void main() { int a,b,c; double m; printf("请输入三角形的三边:"); scanf("%d %d %d",&a,&b,&c); m=fun(a,b,c); printf("三角形面积=%lf\n",m); }

定义一个子函数fun( )打印菱形。运行结果如图所示:

要求:菱形的行数在main( )函数中输入,根据输入的行数决定菱形打印几行。 提示:

(1)fun( )函数的函数首部可参考如下 void fun(int x) //该函数有1个形参,无返回值

(2)在fun( )函数内部,首先根据形参x的值计算出正三角和倒三角的行数,然后再执行循环的嵌套结构分别打印正三角和倒三角。

#include<stdio.h> void fun(int x) { int i,j,k; for(i=1;i<=x/2+1;i++)

{

for(k=1;k<=x/2+2-i;k++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*");

在C语言程序设计基础的学习过程中会涉及到的编程问题以及类似问题的解决代码。

printf("\n"); }

for(i=1;i<=x/2;i++) { printf(" "); for(k=1;k<=i;k++) printf(" "); for(j=1;j<=x-2*i;j++) printf("*"); printf("\n");

}

}

void main() { int a;

printf("请输入菱形的行数(注意:行数为奇数):"); scanf("%d",&a); fun(a); }

定义一个子函数fun( ),其功能是求1累加到100的和。 要求:结果在子函数打印。 提示:(1)fun( )函数写在前,main( )函数写在后。

(2)fun( )函数定义为无参、无返回值形式。

#include<stdio.h> void fun() { int i,sum=0; for(i=1;i<=100;i++) sum=sum+i; printf("1+2+3+...+100=%d\n",sum); printf("\n"); }

void main() { fun();

定义一个子函数fun( ) ,求表达式

的值。主函数定义如下所示,请完成fun( )函数。

#include<stdio.h> double fun(int n); void main() { int n; double sum; printf("请输入n的值:"); scanf("%d",&n);

Sn 1 !!!!!

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

Top