首页 > 其他分享 >C语言期末必练题目——part 5

C语言期末必练题目——part 5

时间:2024-11-09 12:43:48浏览次数:5  
标签:return 函数 int 必练 C语言 part func printf main

9

 #include “stdio.h”

  func(int  b[ ])

  {  int  j;

     for(j=0;j<4;j++)

       b[j]=j;

  }

  main( )

  {  int  a[4], i;

     func(a);

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

        printf(“%2d”,a[i]);

  }

运行结果为:

       0 1 2 3

详见教材P194

定义函数func

函数头:未定义函数的类型,则系统默认为int型。函数func的形参为整型数组名,即只接收整型数组地址。

函数体:定义整型变量j

                循环变量初值(表达式1)j=0, 使得循环条件(表达式2)j<4成立,执行循环体

第1次循环           

执行b[j]=j; 即b[0]=0;

执行循环变量自增(及表达式3) j++,j为1,使得j<4成立,继续执行循环体

第2次循环

b[1]=1;

j++,j为2,使得j<4成立,继续执行循环体

第3次循环

b[2]=2;

j++,j为3,使得j<4成立,继续执行循环体

第4次循环

b[3]=3;

j++,j为4,使得j<4不成立,结束循环

main函数:

        定义整型变量i和数组a,其长度为4,

        func(a);表示调用函数func,并以数组名a作为调用的实参(数组名在C语言中表示数组所在内存空间的首地址,在以数组名作为实参时,形参与实参公用存储空间,因此对数组b的操作,即对数组a的操作。)

10.

#include <stdio.h>

main()

{float fun(float x[])            

float ave,a[3]={4.524}   

ave=funa;                    

printf(“ave=%7.2f”,ave);

}

float funfloat x[]              

 {int j;

float aver=1

for (j=0;j<3;j++)

aver=x[j]*aver;

  returnaver);

}

运行结果为:

ave=   36.00

11.

#include <stdio.h>

main()

{int a[2][3]={{1,2,3},{4,5,6}};

int b[3][2],i,j;

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

{for(j=0;j<=2;j++)

         b[j][i]=a[i][j];

}

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

   {for(j=0;j<=1;j++)

          printf("%5d",b[i][j]);

    }

 }

运行结果为

    1    4    2    5    3    6

12

#include <stdio.h>

f(int  b[],int  n)

{int  i,r;

 r=1;

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

r=r*b[i];

 return (r);

}

main()

 {int x,a[]={1,2,3,4,5,6,7,8,9};

  x=f(a,3);

  printf(“%d\n”,x);

}

运行结果为

 24   

13.

#include"stdio.h"

main()

{int j,k;

 static int x[4][4],y[4][4];

for(j=0;j<4;j++)

  for(k=j;k<4;k++)

     x[j][k]=j+k;

for(j=0;j<4;j++)

  for(k=j;k<4;k++)

     y[k][j]=x[j][k];

for(j=0;j<4;j++)

  for(k=0;k<4;k++)

     printf("%d,",y[j][k]);

}

运行结果为

0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6

函数

1.

#include <stdio.h>

int Sub(int a, int b)

{return (a- b);}

main()

{int  x, y, result = 0;    

scanf("%d,%d", &x,&y );

result = Sub(x,y ) ;

printf("result = %d\n",result);

}

当从键盘输入:6,3运行结果为

result =3 

2.

#include <stdio.h>

int  min( int x, int y ) 

{ int  m

 if  ( x> y )  m = x

else             m = y

 return(m)   

 main()   {

 int  a=3,b=5,abmin                                           

abmin = min(a,b)                       

printf(“min  is  %d” abmin)

}

运行结果为:

min  is  5

3.

#include<stdio.h>

 func(int x) { 

    x=10;

    printf(“%d, ”,x);

 }

 main( )

 {  int x=20;

    func(x);

    printf(“%d”, x);

 }

运行结果为:

10, 20

4.

#include <stdio.h>

int m=4;

int func(int x,int y)

{  int m=1;

return(x*y-m);

}

main()

{int a=2,b=3;

printf("%d\n",m);

printf("%d\n",func(a,b)/m);

}

运行结果为

4

1

整型变量m在函数外定义,因此m为全局变量,其作用于范围为其定义位置开始,一直到整个程序结束。因此func与main函数都可以访问m

程序首先执行main函数

执行printf("%d\n",m); 即输出m中的值4,并换行。

执行printf("%d\n",func(a,b)/m);即输出表达式func(a,b)/m的值,为了计算该表达式,

需要调用函数func。此时main将a,b中的2和3值作为实参传递给func的x和y

程序开始转向执行func函数,此时func中的x为2,y为3

        执行int m=1; 此句定义了一个局部变量m并赋值为1 。m的作用域为其所在的复合

语句,即func的函数体,因此在func的函数体重,有限访问局部变量m。

执行return(x*y-m);  即return(2*3-1) ;返回的是整数5.

func函数返回至main函数中的被调用处

main函数中func(a,b)的值为5,func(a,b)/m=5/4=1,注意,在main函数中访问的m为全局变量m,此时main函数无法访问func中的m,因为不在func中m的作用域。

5.

#include <stdio.h>

int fun(int a, int b)

{ if(a>b)   return(a);

else    return(b);

}

main()

{ int x=15, y=8, r;

r= fun(x,y);

printf("r=%d\n", r);

}

运行结果为r=15

程序首先执行main函数

执行r= fun(x,y);即将func(x,y)的值赋给r,为了计算该表达式,需要调用函数func。此时main将x,y中的15和8值作为实参传递给func的a和b

程序开始转向执行func函数,此时func中的a为15,b为8

        执行if语句;判断if后面的表达式,a>b成立,因此执行相应的操作return(a);即返回

        a的值 。

func函数返回至main函数中的被调用处

main函数中func(x,y)的值为15,即将15赋给r。

执行printf("r=%d\n", r); 即输出r=15

6.

#include <stdio.h>

int fac(int n)

{ int f=1,i;

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

  f=f * i;

return(f);

}

main()

{ int j,s;

scanf(“%d”,&j);

s=fac(j);

printf("%d!=%d\n",j,s);

}

如果从键盘输入3,  运行结果为: 3!=6

程序首先执行main函数

执行r= fun(x,y);即将func(x,y)的值赋给r,为了计算该表达式,需要调用函数func。此时main将x,y中的15和8值作为实参传递给func的a和b

程序开始转向执行func函数,此时func中的a为15,b为8

        执行if语句;判断if后面的表达式,a>b成立,因此执行相应的操作return(a);即返回

        a的值 。

func函数返回至main函数中的被调用处

main函数中func(x,y)的值为15,即将15赋给r。

执行printf("r=%d\n", r); 即输出r=15

标签:return,函数,int,必练,C语言,part,func,printf,main
From: https://blog.csdn.net/2303_81838541/article/details/143643408

相关文章

  • Air780E软件指南:C语言内存数组(zbuff)
    一、ZBUFF(C内存数组)简介zbuff库可以用c风格直接操作(下标从0开始),例如buff[0]=buff[3]可以在sram上或者psram上申请空间,也可以自动申请(如存在psram则在psram进行申请,如不存在或失败则在sram进行申请)。操作里面的元素时,可以根据光标进行增删改查。偏移方式有三种:从头......
  • BuildCTF-sorin-wp(part)
    BuildCTF部分题目wp队员:sorinEZ_ZIP010查找分析发现压缩包,使用foremost分离疑似套娃压缩包,使用开源软件extractnow或者脚本都可以批量压缩,这里使用extractnow得到flagHEX的秘密16进制每两位截取一次转10进制,对比Build的前几个字符的ascll码发现多了128,脚本如下:defhex_str(str):#......
  • c语言中返回整数值的长度
     001、方法1while循环[root@PC1test]#lstest.c[root@PC1test]#cattest.c##测试c程序#include<stdio.h>intget_length(inta){intlength=0;while(a>0){length++;a/=10;......
  • c语言--数组
    目录1数组创建 1.1定义定长数组1.2定义并初始化数组1.3定义部分初始化的数组2.动态数组(动态分配)2.1使用malloc动态创建数组2.2使用calloc动态创建数组2.3动态数组初始化2.4释放动态数组内存3.变长数组(VLA,VariableLengthArray)4.字符串和字符数组4.1.......
  • c语言学习9选择结构
    结构化编程1选择结构九条语句顺序结构:选择结构: Ifelse switchcase循环结构:While for dowhile跳转结构:Break continue gotoreturn顺序结构:体现CPU执行程序运行规则(路径)①程序从上到下执行②程序逐条执行选择结构 ifelse和switchcase  第......
  • c语言学习10循环结构
    循环结构让程序多次执行,反复执行Whiledowhile for1While循环格式While(表达式){循环体;}当表达式为真时,while执行。另:非0即真死循环while(1)例:水仙花数在100-999中找到所有水仙花数,并打印;个位的三次方+十位的三次方+百位的三次方=本身1将数据遍历inta=10......
  • c语言第九章,结构体
    #define_CRT_SECURE_NO_WARNINGS自定义数据类型,结构体输出学生信息#include<stdio.h>structData{   intyear;   intmonth;   intday;};structStudent{//定义学生数据类型      intage;//年龄   charname[20];//名字   ch......
  • 用c语言来判断闰年
    #include<stdio.h>intYear(intn){  if((n%4==0&&n%100!=0)||(n%400==0)){    return1;  }else{    return0;  }} intmain(){  intyear,flag;  scanf("%d",&year);  flag=Year(y......
  • C语言双向链表
    一、优势 与单链表对比,双向链表的增、删、改无需遍历多次以查找目标节点前一节点与后一节点,效率提高,代码对比*单链表:1.插入:voidinsert(node*head,charName,intphonenumber,inttarget){ node*p=(node*)malloc(sizeof(node));//为新节点分配内存; p->next=sea......
  • C语言 循环高级
    时间:2024.11.6一、学习内容1、无限循环无限循环:循环永远停不下来注意点:无限循环因为永远停不下来,所以下面不能再写其他的代码了2、break跳转控制语句:在循环的过程中,跳到其他语句上执行 #include<stdio.h>intmain(){ intcount=0; inti;//利用for循环去......