第一范文网 - 专业文章范例文档资料分享平台

C语言实验指导(不含答案)

来源:用户分享 时间:2025/5/28 0:56:26 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

函数

(1) 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。

①不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。

②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。

(2)写一个函数,输入一个n进制数m,输出相应的十进制数。 

例如:当n=5,m=3204时,则调用该函数输出429。因为(3*53+2*52+0*51+4*50=429)。

当n=2,m=10100时,则调用该函数输出20。 int n2dec (int n, int m) {… } (3)编写程序求:1K+2 K +3 K +…+n K ,假定n为6,k为4。要求使用函数的嵌套调用。设计一个主函数main( )完成数据的输出,设计一个求m n的函数,设计一个求1K+2 K +3 K +…+n K之和的函数。

(4) 用递归法求n阶勒让德多项式,递归公式为:

1 (n=0) Pn(x)= x (n=1) ((2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x))/n (n>1)

(5)写一函数convert,使给定的一个二维数组(3* 3)转置。 

void convert(int x[3][3]) {… }

*(6)已知abc+bcc=1333,其中 a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。

提示:对于a、b、c取值范围(0-9)内任意的组合,设计一个函数,判断给定方程abc+bcc=1333是否成立。

实验8 指针

一、 实验目的

1、通过实验进一步掌握指针的概念,会定义和使用指针变量;

2、能正确使用数组的指针和指向数组的指针变量; 3、能正确使用字符串的指针和指向字符串的指针变量;

二、实验内容和步骤 1、改错

(1)指出下面程序错误的原因. main( ) {

int x=10,y=5,*px,*py; px=py; px=&x; py=&y;

printf(\}

(2)下面的程序试图有如下运行结果:

which style you want to :

Capital ( c ) or uncapital ( a ):c ↙ COMPUTER

Which sytle you want to :

Capital ( c ) or uncapital ( a ) : u↙ computer

请调试下面的程序,使其有如上执行结果. #include main () {

char s*; char c;

printf(\printf(\

c=getchar();

if(c='c')strcpy(s,\else strcpy(s,\put(s); }

分析出错原因。

(3)下面的程序能获得上述运行结果吗 main() {

char *S=\char c;

printf(\printf(\c=getchar(); if(c='c') put(s); else {

s=\puts(s); } }

分析出错原因.

(4)设计一个C程序,用以测试下列各表达式的运算. (1) y=*px++ (2) y=*++py (3) y=(*py)++ (4) y=--*ppx++

(5)想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的 swap(int *p1,int *p2) {

int *p;

p=p1;p1=p2;p2=p; }

main()

{

int a,b;

scanf(\pt1=&a;pt2=&b; if(a

printf(\}

上机调试此程序.如果不能实现题目要求,指出原因,并修改之.

2、程序填空:

(1)一维数组和指针。分别采用下标法、数组名法和指针法访问数组元素,求出10 个数中的最大值。

下标法:

# include void main()

{ int a[10],i,max; for ( )

scanf (“%d”, ); for ( ) if ( ) max=a[i]; printf (“MAX=%d\\n”,max); }

数组名法:

#include void main()

{ int a[10],i,max; for ( ) scanf (“%d”, a+i); for ( ) if ( ) max=*(a+i); printf (“MAX=%d\\n”,max); }

指针法:

#include void main() { int a[10]; int *p, max;

搜索更多关于: C语言实验指导(不含答案) 的文档
C语言实验指导(不含答案).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0zhbv1ltrt036aw5ujx0_11.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top